Title: jyri363 Bonus Pricing
Author: jyri363
Published: <strong>14 July 2026</strong>
Last modified: 7 October 2026

---

Search plugins

![](https://ps.w.org/jyri363-bonus-pricing/assets/banner-772x250.png?rev=3609724)

![](https://ps.w.org/jyri363-bonus-pricing/assets/icon-256x256.png?rev=3607508)

# jyri363 Bonus Pricing

 By [jyri363](https://profiles.wordpress.org/jyri363/)

[Download](https://downloads.wordpress.org/plugin/jyri363-bonus-pricing.zip)

 * [Details](https://en-gb.wordpress.org/plugins/jyri363-bonus-pricing/#description)
 * [Reviews](https://en-gb.wordpress.org/plugins/jyri363-bonus-pricing/#reviews)
 *  [Installation](https://en-gb.wordpress.org/plugins/jyri363-bonus-pricing/#installation)
 * [Development](https://en-gb.wordpress.org/plugins/jyri363-bonus-pricing/#developers)

 [Support](https://wordpress.org/support/plugin/jyri363-bonus-pricing/)

## Description

jyri363 Bonus Pricing provides the free core pricing tools needed by many WooCommerce
stores. For advanced pricing workflows, [jyri363 Bonus Pricing Pro](https://glasspipers.eu/toode/jyri363-bonus-pricing-pro/)
is available separately and extends the Free edition while Free continues to work
independently.

Core Free features:

 * product-level quantity pricing
 * loyalty pricing based on the customer spending history
 * optional cart subtotal discount tiers
 * live unit-price feedback on the product page
 * support for simple products and variable products with variation-level quantity
   rules
 * WPML-ready custom strings for frontend labels

Version 0.5 establishes the Free plugin as a stable standalone foundation. It does
not lock existing features behind upgrade prompts, and Pro is implemented as a separate
add-on plugin.

Typical use cases:

 * 100–299 pcs = one unit price, 300+ pcs = another unit price
 * a repeat customer gets an automatic loyalty discount
 * an extra discount is shown and applied when the cart subtotal reaches a target
   amount

## Installation

 1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install the
    ZIP from **Plugins  Add New  Upload Plugin**.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Make sure WooCommerce is installed and active.
 4. Open a product in WooCommerce and use the new **Pricing logic** tab inside **Product
    data**.
 5. Configure loyalty settings under **WooCommerce  Bonus Prices**.

## FAQ

### Does this work with variable products?

Yes. Parent-level quantity rules can act as fallback rules, and each variation can
also use its own quantity pricing rules.

### What PHP version is required?

The Free plugin requires PHP 8.3 or newer. Current WooCommerce releases may require
a newer PHP version, so stores should follow the requirements of the WooCommerce
version they use.

### Does it work with ThemeComplete Extra Product Options (EPO)?

The product-page live-pricing script includes EPO-aware handling, including EPO 
price-update events and totals containers. EPO is a separately distributed plugin,
so stores using advanced option pricing should verify their exact EPO configuration
after major WooCommerce or EPO updates.

### Does the plugin remove its data on uninstall?

Yes. The plugin includes an `uninstall.php` file that removes its options, post 
meta, order-item meta, and transient cache entries when the plugin is deleted from
WordPress.

### Is WPML required?

No. WPML integration is optional. The plugin works without WPML.

### Is there a Pro version?

Yes. [jyri363 Bonus Pricing Pro](https://glasspipers.eu/toode/jyri363-bonus-pricing-pro/)
is available separately. The Free plugin works independently and does not require
Pro.

## Reviews

There are no reviews for this plugin.

## Contributors and Developers

“jyri363 Bonus Pricing” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ jyri363 ](https://profiles.wordpress.org/jyri363/)

[Translate “jyri363 Bonus Pricing” into your language.](https://translate.wordpress.org/projects/wp-plugins/jyri363-bonus-pricing)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/jyri363-bonus-pricing/),
check out the [SVN repository](https://plugins.svn.wordpress.org/jyri363-bonus-pricing/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/jyri363-bonus-pricing/)
by [RSS](https://plugins.trac.wordpress.org/log/jyri363-bonus-pricing/?limit=100&mode=stop_on_copy&format=rss).

## Change Log

#### 1.0.1

 * Added the donation link and raised the minimum PHP version to 8.3.

#### 0.6

 * Further security hardening for malformed admin inputs, saved pricing rules, and
   extension-filtered settings.
 * Rejects non-finite or otherwise unsafe numeric pricing values before calculations.
 * Keeps the WordPress 7.1, WooCommerce 11.0, HPOS, EPO-aware frontend handling,
   and separate Pro-edition link introduced in the audited Free branch.
 * Revalidated PHP 8.x syntax and runtime safety without changing the existing Free
   feature set.

#### 0.5.1

 * Security hardening: process only the expected settings fields instead of the 
   complete POST payload.
 * Added strict scalar/type validation for admin inputs, saved pricing rules, and
   filtered settings to avoid malformed-value warnings or unsafe runtime values.
 * Reject non-finite numeric values and cap discount percentages safely before pricing
   calculations.
 * Added stricter validation for percentage values and extension-filtered pricing
   results.
 * Hardened frontend HTML construction for translated labels, units, hints, and 
   currency symbols.
 * Replaced Number.isFinite usage to preserve compatibility with older JavaScript
   environments supported by the Free branch.
 * Updated compatibility metadata for WordPress 7.1 and WooCommerce 11.0.
 * Reviewed HPOS usage and current WooCommerce 11.0 product-editor changes; the 
   plugin uses supported classic product APIs and WooCommerce order APIs.
 * Reviewed the existing ThemeComplete EPO integration against the current EPO 7.6.1
   release notes and retained its EPO-aware frontend update handling.
 * Moved the separate Pro edition link into the opening description while keeping
   Free fully functional on its own.

#### 0.5.0

 * Established the current feature set as the standalone Free edition.
 * Added the official WooCommerce plugin dependency header.
 * Declared compatibility with WooCommerce High-Performance Order Storage (HPOS).
 * Added extension hooks for product settings, effective variation settings, global
   settings, final price calculations, and completed plugin initialization.
 * Kept existing quantity pricing, live pricing, loyalty discounts, cart discount
   tiers, variable-product support, and WPML-ready strings available in Free.
 * Updated package and translation project versions to 0.5.0 and corrected the POT
   header metadata.
 * Added a clear link to the separately available jyri363 Bonus Pricing Pro plugin.

#### 0.4.27

 * Updated all internal function, class, constant, option, shortcode, script and
   CSS prefixes to use the unique jyri363bp prefix.
 * Renamed the cart discount shortcode to jyri363bp_cart_discount_note.

#### 0.4.26

 * Renamed the plugin to jyri363 Bonus Pricing and changed the slug to jyri363-bonus-
   pricing for clearer ownership and distinctiveness.
 * Updated contributors to match the submitting WordPress.org account.
 * Removed the external Plugin URI/Donate link from the package.

#### 0.4.25

 * Renamed the plugin to jyri363 Bonus Pricing to comply with WordPress.org trademark
   and permalink restrictions.
 * Updated slug, main plugin file name, text domain, and language file names.

#### 0.4.24

 * Renamed the public plugin title to jyri363 Bonus Pricing for WordPress.org naming
   compatibility.
 * Updated the plugin folder, main file and text domain to jyri363-bonus-pricing.
 * Removed manual load_plugin_textdomain usage to follow current WordPress.org translation
   handling.

#### 0.4.23

 * Updated Tested up to to WordPress 7.0 for Plugin Check compatibility.
 * Removed the manual load_plugin_textdomain call because WordPress loads plugin
   translations automatically since WordPress 4.6.

#### 0.4.22

 * Fixed remaining Plugin Check errors for missing translator comments.
 * Escaped cart/order discount note output with wp_kses_post().

#### 0.4.21

 * Hardened admin escaping and sanitization in a few product and table-rendering
   paths.
 * Added translator comments for placeholder strings.
 * Reduced Plugin Check warnings around uninstall cleanup and product-meta saving.

#### 0.4.20

 * Added a global quantity table position setting under WooCommerce  Bonus Prices
   Frontend behaviour.
 * Changed the default quantity table position to below the add-to-cart form.
 * Added product-meta nonce and capability checks for a cleaner WordPress.org pre-
   submit pass.
 * Added a PHP 8.1 tested note while keeping the declared minimum PHP version at
   7.3.

#### 0.4.19

 * Small WordPress.org pre-submit cleanup release.
 * Bumped package version to 0.4.19.

#### 0.4.18

 * Lowered the declared minimum PHP version to 7.3 after compatibility audit.
 * Reworked frontend and admin JavaScript for older browser compatibility by removing
   const/let and NodeList.forEach dependencies.
 * Fixed quantity pricing active-tier rendering so it works consistently when live
   JS pricing is enabled, even if plugin CSS is disabled.
 * Renamed the localized product-page JS object to jyri363bpProductPage for cleaner
   plugin branding.

#### 0.4.16

 * Renamed the public plugin title to jyri363 Bonus Pricing for clearer WooCommerce
   positioning.

#### 0.4.13

 * Removed all remaining legacy compatibility references from the public branch.
 * Replaced custom admin translation helper calls with standard WordPress translation
   functions.
 * Moved Estonian and Finnish translations out of source code and into language 
   files.
 * Cleaned helper and class filenames to use the plugin prefix consistently.

#### 0.4.12

 * Added `uninstall.php` cleanup routine.
 * Added WordPress.org format `readme.txt`.
 * Added GPL license file.
 * Added textdomain loading and a starter POT file.
 * Replaced `current_time( 'timestamp' )` usage in loyalty calculations.
 * Added transient caching for loyalty spend and loyalty rate calculations.
 * Split the large helper file into smaller helper modules.

#### 0.4.11

 * Initial renamed package cleanup and branding refresh.

## Meta

 *  Version **1.0.1**
 *  Last updated **20 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.3 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/jyri363-bonus-pricing/)
 * Tags
 * [discounts](https://en-gb.wordpress.org/plugins/tags/discounts/)[ecommerce](https://en-gb.wordpress.org/plugins/tags/ecommerce/)
   [Loyalty](https://en-gb.wordpress.org/plugins/tags/loyalty/)[quantity pricing](https://en-gb.wordpress.org/plugins/tags/quantity-pricing/)
   [tiered pricing](https://en-gb.wordpress.org/plugins/tags/tiered-pricing/)
 *  [Advanced View](https://en-gb.wordpress.org/plugins/jyri363-bonus-pricing/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/jyri363-bonus-pricing/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/jyri363-bonus-pricing/reviews/)

## Contributors

 *   [ jyri363 ](https://profiles.wordpress.org/jyri363/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/jyri363-bonus-pricing/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://glasspipers.eu/toode/toeta-bonus-pricingu-arendust/)