{"id":286603,"date":"2026-03-08T09:39:17","date_gmt":"2026-03-08T09:39:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/carttrigger-quantity-discounts\/"},"modified":"2026-03-08T09:39:13","modified_gmt":"2026-03-08T09:39:13","slug":"carttrigger-quantity-discounts","status":"publish","type":"plugin","link":"https:\/\/kea.wordpress.org\/plugins\/carttrigger-quantity-discounts\/","author":23460456,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.3.2","stable_tag":"2.3.2","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"CartTrigger \u2013 Quantity Discounts","header_author":"Poletto 1976 S.L.U.","header_description":"Cart notice and automatic discount triggered by item quantity, configurable per rule, category, or SKU.","assets_banners_color":"403f40","last_updated":"2026-03-08 09:39:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.me\/polettoespana","header_plugin_uri":"https:\/\/poletto.es\/nuestros-servicios\/eficiencia\/ct-quantity-discount","header_author_uri":"https:\/\/poletto.es","rating":0,"author_block_rating":0,"active_installs":0,"downloads":387,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.3.2":{"tag":"2.3.2","author":"polettoespana","date":"2026-03-08 09:39:13"}},"upgrade_notice":{"2.3.2":"<p>Internal code cleanup to comply with WordPress.org review requirements. No breaking changes for end users.<\/p>","2.3.1":"<p>Notices are now also suppressed in Exclusive and Best modes when a coupon is active. No breaking changes.<\/p>","2.3.0":"<p>New setting: conflict mode for coupon interaction (Stack \/ Exclusive \/ Best). No breaking changes \u2014 existing rules default to Stack (previous behaviour).<\/p>","2.2.0":"<p>New features: SKU filtering, product page notices, discount scope per rule. No breaking changes \u2014 existing rules continue to work unchanged.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3483235,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3483235,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3477351,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3477351,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.3.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3483235,"resolution":"1","location":"plugin"},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3483235,"resolution":"2","location":"plugin"},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3483235,"resolution":"3","location":"plugin"}},"screenshots":{"1":"Admin settings page \u2014 discount rules table with trigger, target, discount type, scope, category\/SKU filters, notice text, position and conflict mode.","2":"Cart page \u2014 notice shown to the customer when the trigger quantity is reached, and discount applied at checkout.","3":"Product page \u2014 notice displayed below the Add to Cart button."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[65683,331,243191,286],"plugin_category":[45],"plugin_contributors":[257309],"plugin_business_model":[],"class_list":["post-286603","plugin","type-plugin","status-publish","hentry","plugin_tags-bulk-discount","plugin_tags-discount","plugin_tags-quantity-discount","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-polettoespana","plugin_committers-polettoespana"],"banners":{"banner":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/assets\/banner-772x250.png?rev=3477351","banner_2x":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/assets\/banner-1544x500.png?rev=3477351","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/assets\/icon-128x128.png?rev=3483235","icon_2x":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/assets\/icon-256x256.png?rev=3483235","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/trunk\/screenshot-1.png?rev=3483235","caption":"Admin settings page \u2014 discount rules table with trigger, target, discount type, scope, category\/SKU filters, notice text, position and conflict mode."},{"src":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/trunk\/screenshot-2.png?rev=3483235","caption":"Cart page \u2014 notice shown to the customer when the trigger quantity is reached, and discount applied at checkout."},{"src":"https:\/\/ps.w.org\/carttrigger-quantity-discounts\/trunk\/screenshot-3.png?rev=3483235","caption":"Product page \u2014 notice displayed below the Add to Cart button."}],"raw_content":"<!--section=description-->\n<p><strong>CartTrigger \u2013 Quantity Discounts<\/strong> is a lightweight WooCommerce plugin that encourages customers to buy more by showing a notice when they reach a trigger quantity, and automatically applying a discount when they hit the target quantity.<\/p>\n\n<p>Each discount rule is fully configurable:<\/p>\n\n<ul>\n<li><strong>Trigger qty<\/strong> \u2014 the cart quantity at which the promotional notice is shown<\/li>\n<li><strong>Target qty<\/strong> \u2014 the quantity that unlocks the automatic discount<\/li>\n<li><strong>Discount type<\/strong> \u2014 percentage (%) or fixed amount<\/li>\n<li><strong>Discount scope<\/strong> \u2014 apply to the entire cart subtotal or only to the matched items' subtotal<\/li>\n<li><strong>Category filter<\/strong> \u2014 limit the rule to one or more product categories (subcategories included automatically)<\/li>\n<li><strong>SKU filter<\/strong> \u2014 target one or more specific products by SKU (takes priority over category)<\/li>\n<li><strong>Notice position<\/strong> \u2014 show on cart\/checkout only, product page only, or both<\/li>\n<li><strong>Custom CSS class<\/strong> \u2014 style each notice independently with your own CSS<\/li>\n<li><strong>Conflict mode<\/strong> \u2014 control how the plugin behaves when other discounts (coupons) are already active in the cart<\/li>\n<\/ul>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li>Multiple rules with independent triggers and targets<\/li>\n<li>Best-discount logic: when multiple rules share the same target and scope, only the highest discount is applied<\/li>\n<li>Product page notices via a dedicated template with its own text and CSS class<\/li>\n<li>Coupon conflict modes: stack, exclusive, or best-discount-wins<\/li>\n<li>Full support for WPML and Polylang (notice text registered as translatable string)<\/li>\n<li>Compatible with WooCommerce HPOS (Custom Order Tables)<\/li>\n<li>No bloat \u2014 zero external dependencies, no JavaScript on the frontend<\/li>\n<\/ul>\n\n<p><strong>Available notice variables:<\/strong><\/p>\n\n<pre><code>{current} \u2014 current quantity in cart\n{missing} \u2014 quantity still needed to reach the target\n{target} \u2014 target quantity\n{discount} \u2014 formatted discount value (e.g. *10%* or *\u20ac5.00*)\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>carttrigger-quantity-discounts<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin directly from the WordPress plugin screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>WooCommerce \u2192 Quantity Discounts<\/strong> to configure your discount rules.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20with%20product%20variations%3F\"><h3>Does the plugin work with product variations?<\/h3><\/dt>\n<dd><p>Yes. When using SKU-based rules, the plugin matches against the variation's own SKU (if set) or falls back to the parent product's SKU.<\/p><\/dd>\n<dt id=\"can%20i%20apply%20the%20discount%20only%20to%20specific%20product%20categories%3F\"><h3>Can I apply the discount only to specific product categories?<\/h3><\/dt>\n<dd><p>Yes. Each rule has a category selector. Selecting a parent category automatically includes all its subcategories.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20two%20rules%20have%20the%20same%20target%20quantity%3F\"><h3>What happens if two rules have the same target quantity?<\/h3><\/dt>\n<dd><p>The plugin automatically applies the highest discount among all matching rules. It will never stack multiple discounts for the same target\/scope group.<\/p><\/dd>\n<dt id=\"can%20i%20show%20a%20different%20message%20on%20the%20product%20page%20and%20in%20the%20cart%3F\"><h3>Can I show a different message on the product page and in the cart?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>Notice position \u2192 Product page notice<\/strong> you can set a separate template (or leave it empty to reuse the cart template).<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20wpml%20and%20polylang%3F\"><h3>Is it compatible with WPML and Polylang?<\/h3><\/dt>\n<dd><p>Yes. The notice templates are registered as translatable strings and can be translated from the WPML String Translation or Polylang String Translations interface.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20customer%20has%20a%20coupon%20in%20the%20cart%3F\"><h3>What happens if a customer has a coupon in the cart?<\/h3><\/dt>\n<dd><p>It depends on the <strong>Conflict mode<\/strong> setting (WooCommerce \u2192 Quantity Discounts \u2192 Coupon behaviour):<\/p>\n\n<ul>\n<li><strong>Stack<\/strong> (default) \u2014 the quantity discount is always applied alongside any active coupons.<\/li>\n<li><strong>Exclusive<\/strong> \u2014 the quantity discount is skipped entirely if any coupon is active.<\/li>\n<li><strong>Best discount wins<\/strong> \u2014 the plugin compares its total discount against the coupon discount total and applies the quantity discount only if it is greater; otherwise the coupon takes precedence.<\/li>\n<\/ul><\/dd>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is it compatible with WooCommerce High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares full HPOS compatibility.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Renamed internal prefix to meet WordPress.org naming requirements.<\/li>\n<li>Moved admin JavaScript to an enqueued external file.<\/li>\n<li>Fixed late escaping on echoed variables.<\/li>\n<li>Fixed folder name in installation instructions.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Conflict mode now also suppresses cart and product page notices when a coupon is active (Exclusive and Best modes) \u2014 prevents showing a discount promise that would not be applied.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Added conflict mode setting: Stack, Exclusive, or Best discount wins \u2014 controls how the plugin interacts with active coupons.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Added SKU-based rule filtering (takes priority over category).<\/li>\n<li>Added product page notices with dedicated template and CSS class.<\/li>\n<li>Added discount scope per rule: entire cart or category subtotal only.<\/li>\n<li>Added HPOS (Custom Order Tables) compatibility declaration.<\/li>\n<li>Added Settings link in the plugin list row.<\/li>\n<li>Improved notice styling: custom CSS class now applied server-side via WooCommerce notice data.<\/li>\n<li>Renamed plugin to CartTrigger \u2013 Quantity Discounts.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added support for WPML and Polylang string translation.<\/li>\n<li>Added conflict warning for rules with the same target but different discount values.<\/li>\n<li>Added per-rule custom CSS class for frontend notices.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Configurable trigger\/target quantity rules.<\/li>\n<li>Percentage and fixed discount types.<\/li>\n<li>Category filtering with automatic subcategory inclusion.<\/li>\n<\/ul>","raw_excerpt":"Show cart notices and apply automatic discounts when customers reach a quantity threshold \u2014 configurable per category, or SKU.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/286603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=286603"}],"author":[{"embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/polettoespana"}],"wp:attachment":[{"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=286603"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=286603"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=286603"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=286603"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=286603"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kea.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=286603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}