Problem Description #
When multiple discount or dynamic pricing plugins are active (or when WooCommerce native coupons meet plugin rules), price rules can conflict, stack unexpectedly, or be applied in the wrong order.
Common symptoms:
- Two discounts apply resulting in larger-than-expected discount.
- The plugin’s quantity discount is ignored or overridden by another discount.
- Rules appear to apply in a wrong order (e.g., category discount overrides specific product rule).
Cause:
Multiple plugins or multiple rule engines are trying to modify product price. The plugin may not have explicit priority settings relative to another discount plugin or to WooCommerce coupon logic. Theme or custom code may also apply price filters.
Solution-step-by-step #
- Identify all active discount/price/coupon handlers
- Go to Plugins → Installed Plugins and note any plugins that mention discounts, pricing, coupons, or price display (including paid add-ons, multi-vendor pricing tools, or theme-integrated discount features).
- Test in isolation
- Temporarily switch to a default theme (Storefront) and deactivate all other plugins except WooCommerce and this plugin.
- Test a quantity discount rule. If it works, there’s a conflict. (Always test on a staging site if available.)
- Re-enable plugins one by one to identify which plugin(s) cause the conflict. Document which plugin plus which rule triggers the behavior.
- Check plugin settings for priority / stacking options
- Look in WPFactory plugin → Settings / Rules for options about stacking, priority, or “stop further rules” (some dynamic-pricing systems include a stop/priority option). Adjust so the intended rule stops further rules when applied.
- If your plugin supports role-based or conditional priority, set specific rules to be “non-stackable” or higher priority.
- Prefer single rule engine where possible
- If two plugins provide similar features, consider consolidating into one (prefer the solution that best fits your needs and is actively maintained).
- If consolidation isn’t possible, add custom priority via a filter (developer)
A developer can hook into price filters to set execution order. Example:
// Example: force our plugin’s price filter to a later priority
remove_filter( ‘woocommerce_get_price’, ‘other_plugin_price_handler’, 10 );
add_filter( ‘woocommerce_get_price’, ‘other_plugin_price_handler’, 50 );
- Important: Only add code like this if you understand WordPress hooks; test on staging.
- Contact plugin authors with a minimal reproducible case
- If you identify a conflict, collect: system status (WooCommerce → Status), exact plugins + versions, and step-by-step reproduction. Contact the WPFactory support team and the conflicting plugin’s support with the info.
- If you identify a conflict, collect: system status (WooCommerce → Status), exact plugins + versions, and step-by-step reproduction. Contact the WPFactory support team and the conflicting plugin’s support with the info.
Prerequisites #
- Admin access to WP dashboard.
- Staging site recommended.
- Ability to deactivate/reactivate plugins and change theme temporarily.
Additional notes / prevention tips #
- Keep documentation of which plugin handles each type of discount.
- For complex stores, prefer one centralized discount system to avoid unexpected stacking.