=== jyri363 Bonus Pricing ===
Contributors: jyri363
Tags: quantity pricing, tiered pricing, loyalty, discounts, ecommerce, woocommerce
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.3
Stable tag: 0.4.27
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Flexible quantity pricing and loyalty discounts for WooCommerce, with simple and variable product support.

== Description ==

jyri363 Bonus Pricing adds two kinds of pricing logic to WooCommerce:

* 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

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**.

== Frequently Asked Questions ==

= 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.

= Has it been tested with PHP 8.1? =

Yes. Version 0.4.20 records PHP 8.1 as manually tested. The declared minimum PHP version remains 7.3 for broader hosting compatibility.

= 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.

== Screenshots ==

1. Product data tab with quantity pricing rules.
2. Loyalty settings screen under WooCommerce.
3. Quantity pricing table on the product page.
4. Live unit price feedback on the frontend.

== Changelog ==

= 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.

== Upgrade Notice ==

= 0.4.20 =
Adds a global table-position setting and defaults the product quantity table below the add-to-cart form.

= 0.4.13 =
Recommended public-branch cleanup release for WordPress.org preparation, translation hygiene, and branch separation.