Free shipping worldwide over $50
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
10 / 19
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
Disposable Toilet Brush with Storage Holder
40% OFF

Disposable Toilet Brush with Storage Holder

$29.99 $49.99
0 sold
Style
Qty

FEATURES

EFFECTIVE CLEANING: The disposable toilet brush features a three-layer design with a cleaning liquid layer, cloth layer, and absorbent sponge layer. Its powerful cleaner tackles tough stains, including urine scale, limescale, and other residues, ensuring a thorough clean.

DURABLE CONSTRUCTION: The brush handle is made from sturdy material for long-lasting use. The replacement sponges are soft, reaching into edges without scratching ceramic surfaces. The brush head rotates freely to enhance deep cleaning.

EASY TO USE AND SPACE-SAVING: Replacing the disposable brush head is simple—just press the button. The holder can be placed on the floor or mounted on the wall, saving space and keeping your area tidy.

VERSATILE APPLICATIONS: Ideal for various surfaces, this disposable brush is perfect for cleaning toilets, bathtubs, sinks, urinals, floor drains, mop sinks, mirrors, and more. Its versatility makes it a good cleaning tool for any household.

MULTIPLE FRAGRANCE OPTIONS: Choose from Ocean, Lavender, and Lemon flagrance to leave your space smelling fresh and clean. Each brush head adds a pleasant fragrance while you clean.

SPEC

Main Material: Plastic

Size: 5.5cm*40cm+8cm*14cm*25.6cm

Package Include: 1 * Disposable Toilet Brush with Storage Holder

  

NOTES

Ensure the brush head is replaced regularly for optimal cleaning performance. Dispose of used brush heads in the trash, not in toilets or drains.

Keep the brush holder clean and dry to prevent mold growth.

You May Also Like Don't Like These?

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.