🎄Heavy duty 2-in-1 garland and stocking hangers

people are viewing this right now
$22.99
Color:  Black
Buy More Save More:  Buy 1
Quantity

Description

Garland & Christmas Stocking Holders for Mantle

A better way to hang stockings and garlands from your fireplace mantle without using heavy weights and nails! Our Patent-Pending Mantle Hanger adjusts to fit mantles up to 8.5" thick. Traditional Christmas Stocking Holders require weight to hold your stocking but slip, slide, and fall frequently. The stocking holder features a NO-SLIP design that utilizes a protective rubber pad, which prevents your Christmas stockings from falling off your mantle, saving your Christmas!

Slim Mantle
The standard-sized rod is perfect for fireplace mantles 0.5" - 2.25" thick.

Thick Mantle with Extension Rod
The included extended-size rod is perfect for fireplace mantles 2.25" - 8.5" thick.

Hung With Care
The perfect way to display your personalized Christmas stockings and holiday garland. Each hanger holds up to 20 lbs.

About🔥NEW Black & NEW Gold item

  • [TOP AND BOTTOM DUAL HOOK DESIGN] - Hangs garlands and Christmas stockings simultaneously on the top and bottom
  • [High-Quality Iron] - Durable and sturdy for long-lasting use and stability in all your decor
  • [ADJUSTABLE HEIGHT] - Adjust to fit mantles up to 8.5 inches thick
  • [PADDED PROTECTION] - Rubber pad contact points to keep your mantle from being scratched or damaged
  • [NO FALLING] - Cantilever-style design prevents your stocking hangers from slipping off your mantle
  • [FILL YOUR STOCKINGS] - Each hanger holds up to 20 lbs.

About Black & Gold item

  • [FRONT AND BACK DUAL HOOK DESIGN] - Hangs garlands and Christmas stockings simultaneously in front and back
  • [High-Quality Iron] - Durable and sturdy for long-lasting use and stability in all your decor
  • [ADJUSTABLE HEIGHT] - Adjust to fit mantles up to 8.5 inches thick
  • [PADDED PROTECTION] - Rubber pad contact points to keep your mantle from being scratched or damaged
  • [NO FALLING] - Clip-style design prevents your stocking hangers from slipping off your mantle
  • [FILL YOUR STOCKINGS] - Each hanger holds up to 20 lbs.

 

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.