{"id":394331,"date":"2026-11-04T14:59:01","date_gmt":"2026-11-04T14:59:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/sale-drawer-for-woocommerce\/"},"modified":"2026-11-04T14:58:28","modified_gmt":"2026-11-04T14:58:28","slug":"salesdrawer-sale-products-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/salesdrawer-sale-products-for-woocommerce\/","author":23594714,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SalesDrawer - Sale Products Drawer for WooCommerce","header_author":"Dapper Dev","header_description":"Promote your sale products inside a slide-out drawer with a persistent sale tab. WooCommerce stays the source of truth for prices, sale schedules and stock.","assets_banners_color":"7d98ae","last_updated":"2026-11-04 14:58:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/salesdrawer.com\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"dapperdev","date":"2026-11-04 14:58:28","revision":3784194}},"upgrade_notice":{"1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3784194,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3784194,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3784194,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3784194,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3784194,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3784194,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3784194,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3784194,"resolution":"4","location":"assets","locale":"","width":1440,"height":1070}},"screenshots":{"1":"The sale drawer open on a storefront.","2":"The persistent sale tab.","3":"The Sale Products screen with live WooCommerce pricing.","4":"The campaign editor with its live preview."}},"plugin_section":[],"plugin_tags":[331,206448,2647,5447,286],"plugin_category":[45],"plugin_contributors":[290697],"plugin_business_model":[],"class_list":["post-394331","plugin","type-plugin","status-publish","hentry","plugin_tags-discount","plugin_tags-drawer","plugin_tags-promotion","plugin_tags-sale","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dapperdev","plugin_committers-dapperdev"],"banners":{"banner":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/banner-772x250.png?rev=3784194","banner_2x":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/banner-1544x500.png?rev=3784194","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/icon-128x128.png?rev=3784194","icon_2x":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/icon-256x256.png?rev=3784194","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/screenshot-1.png?rev=3784194","caption":"The sale drawer open on a storefront."},{"src":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/screenshot-2.png?rev=3784194","caption":"The persistent sale tab."},{"src":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/screenshot-3.png?rev=3784194","caption":"The Sale Products screen with live WooCommerce pricing."},{"src":"https:\/\/ps.w.org\/salesdrawer-sale-products-for-woocommerce\/assets\/screenshot-4.png?rev=3784194","caption":"The campaign editor with its live preview."}],"raw_content":"<!--section=description-->\n<p>SalesDrawer finds every product your store currently has on sale and promotes it inside a slide-out drawer. The drawer opens on the schedule you choose, closes into a persistent sale tab, and reopens whenever a shopper taps it.<\/p>\n\n<p>The plugin never stores prices, sale windows or stock levels. It reads them live from WooCommerce behind a short cache, so the drawer can never advertise a price that is no longer available.<\/p>\n\n<h4>Works on activation<\/h4>\n\n<ul>\n<li>Every eligible sale product is promoted automatically \u2014 nothing to sync, nothing to configure<\/li>\n<li>Simple and variable products, including scheduled WooCommerce sales with start and end dates<\/li>\n<li>Products leave the drawer on their own when the sale ends, the price is removed, or the product is unpublished, deleted or out of stock<\/li>\n<\/ul>\n\n<h4>Merchandising<\/h4>\n\n<ul>\n<li>Promote every eligible sale product, or hand-pick exactly which ones with a per-product switch<\/li>\n<li>Pin products to the top<\/li>\n<li>Sort by sale price, dollar savings, percentage discount, name or newest<\/li>\n<li>Cap how many products appear<\/li>\n<li>A Drawer Order view showing exactly which products made the cut, in order<\/li>\n<\/ul>\n\n<h4>The drawer<\/h4>\n\n<ul>\n<li>Slides from the left, the right, or up from the bottom as a sheet; independent widths for desktop, tablet and mobile<\/li>\n<li>Three product layouts \u2014 list, two-column grid, or compact rows<\/li>\n<li>Auto-open rules: every page load, once per session, daily, every X days, first visit only, or never<\/li>\n<li>Launcher as a classic edge tab or a floating bubble, with nine built-in icons, your own icon, and live text tokens like {count} and {max_percent}<\/li>\n<li>A <code>[saledrawer_tab]<\/code> shortcode to place a \"see the deals\" button anywhere<\/li>\n<li>Add to cart from the drawer for simple products; variable products get Choose Options<\/li>\n<li>Cart awareness \u2014 a product already in the cart shows View Cart instead<\/li>\n<li>A tap-to-copy coupon code in the drawer header \u2014 read live from WooCommerce, so an expired or used-up coupon removes itself<\/li>\n<li>Keyboard and screen-reader accessible; works with any WooCommerce-compatible theme<\/li>\n<li>Full appearance control: colours, radius, spacing and shadow<\/li>\n<li>One-click seasonal presets \u2014 Black Friday, Flash Sale, Clearance and Holiday looks, applied before you save<\/li>\n<\/ul>\n\n<h4>Built for speed<\/h4>\n\n<p>Assets load only when the drawer has something to show. Every derived list is cached and invalidated automatically when product or campaign data changes. A deferred rendering mode keeps the drawer accurate on sites behind a full-page cache.<\/p>\n\n<h4>Extending<\/h4>\n\n<p>Every part of the drawer can be extended through documented action and filter hooks (all prefixed <code>saledrawer_<\/code>), and the drawer fires DOM events such as <code>saledrawer:open<\/code>, <code>saledrawer:close<\/code> and <code>saledrawer:add_to_cart<\/code> that themes and tag managers can listen for.<\/p>\n\n<h4>SalesDrawer Pro<\/h4>\n\n<p><a href=\"https:\/\/salesdrawer.com\/pricing\/\">SalesDrawer Pro<\/a> is a separate add-on plugin, sold and hosted outside WordPress.org, that adds features of its own: scheduled campaigns, product rules by category\/tag\/brand, countdown timers, custom ordering, advanced targeting and analytics. This plugin contains none of that code, has no licence checks, and is complete on its own.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it through the Plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to WooCommerce \u2192 SalesDrawer.<\/li>\n<\/ol>\n\n<p>A starter campaign is created on activation and begins promoting your sale products straight away.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20sync%20products%3F\"><h3>Do I need to sync products?<\/h3><\/dt>\n<dd><p>No. The plugin reads WooCommerce's own sale data on every request, behind a short cache that is invalidated whenever a product, variation, price, stock level or campaign changes.<\/p><\/dd>\n<dt id=\"does%20the%20promote%20switch%20change%20the%20sale%3F\"><h3>Does the Promote switch change the sale?<\/h3><\/dt>\n<dd><p>No. It only controls whether a product appears in the drawer. Prices, sale schedules and stock are managed entirely in WooCommerce.<\/p><\/dd>\n<dt id=\"how%20are%20variable%20products%20handled%3F\"><h3>How are variable products handled?<\/h3><\/dt>\n<dd><p>If every variation shares the same sale price, that price is shown. If prices differ, the drawer shows \"From $XX.XX\" using the lowest on-sale variation. Variable products always link through to the product page with a Choose Options button so nothing is added to the cart incorrectly.<\/p><\/dd>\n<dt id=\"i%20use%20a%20page%20caching%20plugin.%20will%20the%20drawer%20go%20stale%3F\"><h3>I use a page caching plugin. Will the drawer go stale?<\/h3><\/dt>\n<dd><p>Switch Settings \u2192 General \u2192 Rendering to \"Deferred\". The cached page then carries only a mount point and the drawer contents are fetched fresh after load.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20nothing%20is%20on%20sale%3F\"><h3>What happens when nothing is on sale?<\/h3><\/dt>\n<dd><p>By default the drawer and the sale tab disappear completely. You can switch to showing a short message instead.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20phone%20home%20or%20track%20my%20shoppers%3F\"><h3>Does the plugin phone home or track my shoppers?<\/h3><\/dt>\n<dd><p>No. The plugin contacts no external service and sets no cookies (the drawer remembers when it last auto-opened in the browser's local storage). It keeps one anonymous counter on your own site, how many times the drawer was opened, to decide when to ask for a review.<\/p><\/dd>\n<dt id=\"can%20i%20add%20custom%20css%3F\"><h3>Can I add custom CSS?<\/h3><\/dt>\n<dd><p>Use the Additional CSS panel in the WordPress Customizer or the Site Editor's Styles panel. The drawer's markup lives under <code>#wsd-root<\/code>.<\/p><\/dd>\n<dt id=\"is%20there%20a%20credit%20link%3F\"><h3>Is there a credit link?<\/h3><\/dt>\n<dd><p>Only if you turn it on. Settings \u2192 Spread the word adds a small link to salesdrawer.com at the foot of the drawer; it is off by default.<\/p><\/dd>\n<dt id=\"is%20this%20an%20official%20woocommerce%20product%3F\"><h3>Is this an official WooCommerce product?<\/h3><\/dt>\n<dd><p>No. This plugin is developed independently and is not affiliated with, endorsed by, or sponsored by Woo or Automattic. WooCommerce is a trademark of WooCommerce, Inc.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Automatic sale detection for simple and variable products, including scheduled sales.<\/li>\n<li>Sale Products screen with search, filtering, per-product promotion and pinning.<\/li>\n<li>Slide-out drawer with a persistent sale tab, configurable auto-open rules and full keyboard support.<\/li>\n<li>Left, right and bottom-sheet placement; tab or floating-bubble launcher; list, grid and compact product layouts.<\/li>\n<li>Tap-to-copy coupon codes, read live from WooCommerce so they can never advertise a dead coupon.<\/li>\n<li>Seasonal appearance presets: Black Friday, Flash Sale, Clearance and Holiday.<\/li>\n<li>Live preview, page targeting, device controls and full appearance settings.<\/li>\n<\/ul>","raw_excerpt":"Promote your sale products in a slide-out drawer with a persistent sale tab. No manual syncing \u2014 WooCommerce stays the source of truth.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/394331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=394331"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dapperdev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=394331"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=394331"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=394331"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=394331"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=394331"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=394331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}