{"id":368573,"date":"2026-09-13T17:28:47","date_gmt":"2026-09-13T17:28:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/webengine-loyalty-for-woocommerce\/"},"modified":"2026-09-13T17:28:21","modified_gmt":"2026-09-13T17:28:21","slug":"webengine-loyalty-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/webengine-loyalty-for-woocommerce\/","author":23555839,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Webengine Loyalty for WooCommerce","header_author":"Webengine","header_description":"Configurable loyalty program for WooCommerce: earn points on orders, tier-based discounts applied as a coupon, free shipping rewards, points expiration and a full transaction log.","assets_banners_color":"141e4f","last_updated":"2026-09-13 17:28:21","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":51,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"webenginedev","date":"2026-09-13 17:28:21","revision":3694001}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3694000,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3694000,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3694000,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3694000,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3694000,"resolution":"1","location":"assets","locale":"","width":1568,"height":783},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3694000,"resolution":"2","location":"assets","locale":"","width":1568,"height":783},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3694000,"resolution":"3","location":"assets","locale":"","width":1568,"height":783},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3694000,"resolution":"4","location":"assets","locale":"","width":1568,"height":783}},"screenshots":{"1":"Settings: earning rules and discount tiers.","2":"Customers &amp; points with manual adjustment.","3":"Transaction history.","4":"The customer's Loyalty tab in My Account."}},"plugin_section":[],"plugin_tags":[331,3377,2321,294,286],"plugin_category":[45],"plugin_contributors":[277894],"plugin_business_model":[],"class_list":["post-368573","plugin","type-plugin","status-publish","hentry","plugin_tags-discount","plugin_tags-loyalty","plugin_tags-points","plugin_tags-rewards","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-webenginedev","plugin_committers-webenginedev"],"banners":{"banner":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/banner-772x250.png?rev=3694000","banner_2x":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/banner-1544x500.png?rev=3694000","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/icon-128x128.png?rev=3694000","icon_2x":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/icon-256x256.png?rev=3694000","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/screenshot-1.jpg?rev=3694000","caption":"Settings: earning rules and discount tiers."},{"src":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/screenshot-2.jpg?rev=3694000","caption":"Customers &amp; points with manual adjustment."},{"src":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/screenshot-3.jpg?rev=3694000","caption":"Transaction history."},{"src":"https:\/\/ps.w.org\/webengine-loyalty-for-woocommerce\/assets\/screenshot-4.jpg?rev=3694000","caption":"The customer's Loyalty tab in My Account."}],"raw_content":"<!--section=description-->\n<p>Webengine Loyalty adds a simple, configurable points program to your WooCommerce shop:<\/p>\n\n<ul>\n<li><strong>Earning<\/strong>: points per amount spent (taxes included, shipping excluded) or a fixed number per order. Optionally no points when a coupon is used.<\/li>\n<li><strong>Tiers<\/strong>: define discount tiers (\"from N points: X off per group of Y points\"), optionally with <strong>free shipping<\/strong>.<\/li>\n<li><strong>Redemption as a native coupon<\/strong>: the discount is applied as a (virtual) WooCommerce coupon \u2014 correct tax handling, visible in totals, removable by the customer with the native \u2715 button. Works with the <strong>classic shortcode cart\/checkout and the block cart\/checkout<\/strong> (Store API).<\/li>\n<li><strong>Automatic or manual<\/strong>: auto-apply when eligible (customer can opt out), or a \"Use my points\" button on the classic cart\/checkout.<\/li>\n<li><strong>Safety rules<\/strong>: minimum paid orders, minimum cart amount, no combination with other coupons (each rule configurable).<\/li>\n<li><strong>Full lifecycle<\/strong>: points are credited only when the order is paid (processing\/completed); cancellations and refunds claw points back; <strong>partial refunds re-align earned points<\/strong>; redeemed points are restored if the order is cancelled.<\/li>\n<li><strong>Points expiration<\/strong>: optionally expire balances after N months without activity (daily background task).<\/li>\n<li><strong>Admin tools<\/strong>: customers &amp; balances screen with manual adjustments, full transaction log (earned \/ redeemed \/ adjusted \/ reversed \/ expired), points column in the users list, points panel on each order, and a loyalty section on the user profile.<\/li>\n<li><strong>Customer account<\/strong>: a \"Loyalty\" tab in My Account with balance, available discount, progress to the next tier and points history.<\/li>\n<\/ul>\n\n<p>Compatible with High-Performance Order Storage (HPOS).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"when%20are%20points%20credited%3F\"><h3>When are points credited?<\/h3><\/dt>\n<dd><p>When the order reaches a paid status (processing or completed) \u2014 so bank transfer and cheque orders only earn points once you confirm payment. Both hooks are idempotent: points are never credited twice.<\/p><\/dd>\n<dt id=\"how%20is%20the%20discount%20applied%3F\"><h3>How is the discount applied?<\/h3><\/dt>\n<dd><p>As a virtual WooCommerce coupon (code <code>wlfw-\u2026<\/code>). This gives native display everywhere, including the block checkout. The customer can remove it like any coupon; the plugin remembers that choice for the session.<\/p><\/dd>\n<dt id=\"how%20does%20the%20discount%20interact%20with%20taxes%20%28vat%29%3F\"><h3>How does the discount interact with taxes (VAT)?<\/h3><\/dt>\n<dd><p>The advertised discount is what the customer actually saves on the total to pay, taxes included \u2014 whatever your tax setup. When prices are entered excluding tax, the coupon amount is automatically converted to its pre-tax equivalent (using the cart's effective rate, mixed rates included) so the tax-inclusive reduction matches the points' value exactly: the customer never gets less than promised, and the shop never gives away the discount's VAT on top.<\/p><\/dd>\n<dt id=\"does%20free%20shipping%20work%20with%20any%20shipping%20setup%3F\"><h3>Does free shipping work with any shipping setup?<\/h3><\/dt>\n<dd><p>The loyalty coupon carries the native <code>free_shipping<\/code> flag, so a Free Shipping method set to require \"a valid free shipping coupon\" works out of the box. The plugin also makes the Free Shipping method available directly when a free-shipping tier is applied.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20refunds%3F\"><h3>What happens on refunds?<\/h3><\/dt>\n<dd><p>A cancelled or fully refunded order reverses its earned points and restores redeemed ones. A partial refund recalculates the points the order should have earned on the net amount and adjusts the balance accordingly.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20hpos%3F\"><h3>Is it compatible with HPOS?<\/h3><\/dt>\n<dd><p>Yes, the plugin declares HPOS compatibility and uses only CRUD order APIs.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Loyalty points program for WooCommerce: earn points on orders, tier-based discounts applied as a coupon, free shipping rewards and points expiration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368573","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368573"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webenginedev"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368573"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368573"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368573"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368573"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368573"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368573"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}