BOGO Select for WooCommerce 1.0.0
Initial release.
Install: download bogo-select-1.0.0.zip below, then Plugins → Add New → Upload Plugin in WordPress. Requires WordPress 6.0+, PHP 7.4+, WooCommerce 7.0+.
Added
- Admin settings screen at WooCommerce → BOGO Select: enable/disable, offer
title, Buy quantity, Get quantity, Buy scope, Get scope, repeat mode, and a
toggle for the site-wide qualification notice. - Independent Buy and Get scopes, each set to All Products or Select
Products with its own AJAX-searched product list. - Arbitrary Buy/Get quantities — any positive integers (Buy 2 Get 2,
Buy 4 Get 8, …). - Customer gift chooser on the cart page: product cards with image, name,
price, stock state, and Select/Change actions, added via AJAX. - $0.00 reward line items — the chosen gift is added as a real cart line with
its price overridden to zero, so WooCommerce reduces stock normally. - Continuous cart re-validation — the gift is removed or its quantity adjusted
automatically when the cart stops qualifying, the offer changes, or stock runs
short, with an explanatory customer notice. - Quantity lock on gift line items (removal still permitted).
- Server-side re-validation of every selection, and again on
woocommerce_check_cart_itemsbefore checkout, so a crafted request cannot
award a free product. - Repeat mode (off by default) awarding one gift set per multiple of the Buy
quantity. - "Free (BOGO)" labelling on cart lines, checkout, order emails, and the admin
order screen. - Developer hooks:
bogo_select_get_products,bogo_select_qualifies,
bogo_select_reward_quantity,bogo_select_reward_added. - HPOS compatibility declaration for WooCommerce High-Performance Order Storage.
- Uninstall routine removing plugin options.
- Project documentation:
README.md,BRIEF.md,INSTRUCTIONS.md,
DECISION.md,OPEN-QUESTIONS.md, andCHANGELOG.md.
Known limitations
- Classic (shortcode) cart and checkout only — Cart/Checkout blocks show the
notice but not the chooser. SeeOPEN-QUESTIONS.mdQ-001. - One offer at a time; offers do not stack.
- Product IDs only — no category, tag, or attribute scoping.
- Variable products cannot be gifts (they remain eligible on the Buy side).
SeeDECISION.mdD-006. - Untested against Subscriptions, Bundles, and Composite Products.