{"id":367298,"date":"2026-09-14T05:04:49","date_gmt":"2026-09-14T05:04:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vazolo-loyalty-for-woocommerce\/"},"modified":"2026-09-14T05:43:42","modified_gmt":"2026-09-14T05:43:42","slug":"vazolo-loyalty-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/vazolo-loyalty-for-woocommerce\/","author":23564245,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.14.1","stable_tag":"1.14.1","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Vazolo Loyalty for WooCommerce","header_author":"Vazolo","header_description":"Award Vazolo loyalty points automatically when a WooCommerce order is paid, using one loyalty account across your shop and webshop.","assets_banners_color":"466338","last_updated":"2026-09-14 05:43:42","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/vazolo.com\/woocommerce","header_author_uri":"https:\/\/vazolo.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.14.0":{"tag":"1.14.0","author":"vazolo","date":"2026-09-14 05:04:32","revision":3694456},"1.14.1":{"tag":"1.14.1","author":"vazolo","date":"2026-09-14 05:43:42","revision":3694485}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3694456,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3694456,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3694456,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3694456,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.14.0","1.14.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3694456,"resolution":"1","location":"assets","locale":"","width":1160,"height":840},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3694456,"resolution":"2","location":"assets","locale":"","width":1160,"height":840}},"screenshots":{"1":"Customers redeem loyalty points for a discount at checkout (classic and block).","2":"Simple settings \u2014 paste your API key, choose when to award points, and go."}},"plugin_section":[],"plugin_tags":[331,3377,2321,294,286],"plugin_category":[45],"plugin_contributors":[280567],"plugin_business_model":[],"class_list":["post-367298","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-vazolo","plugin_committers-vazolo"],"banners":{"banner":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/banner-772x250.png?rev=3694456","banner_2x":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/banner-1544x500.png?rev=3694456","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/icon-128x128.png?rev=3694456","icon_2x":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/icon-256x256.png?rev=3694456","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/screenshot-1.png?rev=3694456","caption":"Customers redeem loyalty points for a discount at checkout (classic and block)."},{"src":"https:\/\/ps.w.org\/vazolo-loyalty-for-woocommerce\/assets\/screenshot-2.png?rev=3694456","caption":"Simple settings \u2014 paste your API key, choose when to award points, and go."}],"raw_content":"<!--section=description-->\n<p>Connect your WooCommerce store to your <a href=\"https:\/\/vazolo.com\/woocommerce\">Vazolo<\/a>\nloyalty program. One loyalty account works across your physical shop and your\nwebshop.<\/p>\n\n<ul>\n<li><strong>Earn<\/strong> \u2014 when an order is paid (completed or processing), points are awarded\nautomatically using your Vazolo earn rate and product rules. The buyer's\nloyalty account is looked up or created by email.<\/li>\n<li><strong>Redeem<\/strong> \u2014 logged-in customers see their points balance on the cart and\ncheckout and can redeem points for a one-time discount, applied instantly.\nWorks on both the classic and the block-based checkout.<\/li>\n<li><strong>Reviews<\/strong> \u2014 optionally award points when a product review is approved, to\nencourage customers to leave feedback (only members earn, once per review).<\/li>\n<li><strong>Product page badge<\/strong> \u2014 optionally show how many points a purchase earns on\neach product page, based on your earn rate, to nudge shoppers to buy.<\/li>\n<\/ul>\n\n<p>The plugin does not modify Vazolo itself; it only calls the public\nVazolo API over HTTPS with your API key. It is compatible with WooCommerce\nHigh-Performance Order Storage (HPOS) and the Cart &amp; Checkout Blocks.<\/p>\n\n<p><strong>Links<\/strong><\/p>\n\n<ul>\n<li><a href=\"https:\/\/vazolo.com\/woocommerce\">How the WooCommerce integration works<\/a><\/li>\n<li><a href=\"https:\/\/vazolo.com\/pricing\">Plans and pricing<\/a><\/li>\n<li><a href=\"https:\/\/vazolo.com\/developers\">API documentation<\/a><\/li>\n<li><a href=\"https:\/\/vazolo.com\/solutions\/woocommerce-loyalty\">Loyalty for WooCommerce stores<\/a><\/li>\n<li><a href=\"https:\/\/vazolo.com\/contact\">Contact us<\/a><\/li>\n<\/ul>\n\n<p><strong>Trademarks.<\/strong> \"Vazolo\" is our own original name for this project and\nservice. \"WooCommerce\" is a trademark of Automattic Inc., used here only to\ndescribe compatibility; this plugin is not affiliated with, endorsed by, or\nsponsored by Automattic or WooCommerce.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your site to <a href=\"https:\/\/vazolo.com\">Vazolo<\/a>, the\nloyalty platform it is built for. Using the API key you configure, it sends data\nto the <a href=\"https:\/\/vazolo.com\/developers\">Vazolo API<\/a> so points can be awarded\nand redeemed:<\/p>\n\n<ul>\n<li>When an order is paid: the buyer's name and email, and the order's line items,\ntotals and a reference id \u2014 to award points.<\/li>\n<li>When a customer views the cart\/checkout or redeems points: the customer's\nemail \u2014 to look up the balance and create a discount voucher.<\/li>\n<li>When an order is cancelled or refunded: a voucher reference \u2014 to refund points.<\/li>\n<\/ul>\n\n<p>When you click \"Connect with Vazolo\": the address of your site and of the\nplugin's settings page are sent to Vazolo, so Vazolo can send you back with a\none-time code. The plugin then exchanges that code with the Vazolo API for an API\nkey, which is stored in your plugin settings.<\/p>\n\n<p>No data is sent until you click \"Connect with Vazolo\" or enter an API key. Use of the\nservice is subject to the <a href=\"https:\/\/vazolo.com\/terms\">Vazolo Terms<\/a> and\n<a href=\"https:\/\/vazolo.com\/privacy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin via Plugins \u2192 Add New Plugin (search for \"Vazolo Loyalty\"), or upload the zip, then activate it.<\/li>\n<li>Go to WooCommerce \u2192 Vazolo and click \"Connect with Vazolo\". Log in to Vazolo or create a free account, confirm, and you are sent back with the plugin switched on.<\/li>\n<li>Prefer to do it by hand? In Vazolo, go to Dashboard \u2192 Settings \u2192 Integrations \u2192 API keys and create a key. Paste it in WooCommerce \u2192 Vazolo, tick \"Enabled\" and save.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20cost%20anything%3F\"><h3>Does it cost anything?<\/h3><\/dt>\n<dd><p>Vazolo has a free plan for webshops. Your customers earn and redeem points in\nyour WooCommerce store, up to a limit of loyalty members. Members who joined\nkeep earning, also once you reach the limit. Paid plans remove the limit and\nadd loyalty in your physical shop, a Google Wallet card and automated emails.\nSee <a href=\"https:\/\/vazolo.com\/pricing\">the Vazolo plans<\/a> for the current pricing.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20customers%20stop%20earning%20points%3F\"><h3>What happens when customers stop earning points?<\/h3><\/dt>\n<dd><p>The plugin tells you. The settings page shows your connection and plan status,\nand a notice appears in your WordPress admin when Vazolo pauses earning (for\nexample when you reach the member limit of the free plan, or when the API key\nis revoked). The \"earn X points\" messages in your store are hidden while\nearning is paused, so shoppers are never promised points they will not get.\nPoints customers already have can always be redeemed.<\/p><\/dd>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. WooCommerce must be installed and active.<\/p><\/dd>\n<dt id=\"where%20are%20points%20and%20vouchers%20stored%3F\"><h3>Where are points and vouchers stored?<\/h3><\/dt>\n<dd><p>In Vazolo. The plugin only talks to the Vazolo API. Redeemed points\ncreate a one-time WooCommerce coupon that is applied to the cart.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20new%20block%20checkout%3F\"><h3>Does it work with the new block checkout?<\/h3><\/dt>\n<dd><p>Yes. The redeem widget renders on both the classic and the block-based checkout.<\/p><\/dd>\n<dt id=\"are%20points%20awarded%20more%20than%20once%20per%20order%3F\"><h3>Are points awarded more than once per order?<\/h3><\/dt>\n<dd><p>No. Awards are guarded by order meta and an idempotency key on the API side.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.14.1<\/h4>\n\n<ul>\n<li>Added links to the Vazolo website, the plans and the API documentation, so the plugin page points to where you can read more.<\/li>\n<li>The API documentation link in the \"External services\" section pointed to a page that did not exist; it now points to the developer documentation.<\/li>\n<\/ul>\n\n<h4>1.14.0<\/h4>\n\n<ul>\n<li>New look: the points panels and the redeem button now use the Vazolo house style, deep green with lime, matching the Vazolo dashboard and app.<\/li>\n<li>The card behind the redeem button got a softer, clearer fill so shoppers spot it sooner.<\/li>\n<li>Themes can still override the colours: set --vz-accent, --vz-on-accent, --vz-accent-ink and the new --vz-accent-tint on .vz-redeem-card or .vz-points.<\/li>\n<\/ul>\n\n<h4>1.13.0<\/h4>\n\n<ul>\n<li>Connect in one click: \"Connect with Vazolo\" logs you in (or creates a free account), and sends you back with the plugin set up. No more copying API keys.<\/li>\n<li>Works on the free Vazolo plan: webshop orders earn points up to the plan's member limit.<\/li>\n<li>New status on the settings page: whether the API key works, and your plan and member count.<\/li>\n<li>A notice in your WordPress admin when customers stop earning points (member limit reached, earning paused, or API key not accepted), which you can hide for 30 days.<\/li>\n<li>The \"earn X points\" messages on product pages, cart and checkout are hidden while earning is paused, so shoppers are never promised points they will not get.<\/li>\n<li>Settings from Vazolo are cached for a few minutes, so busy stores make far fewer API calls and a slow connection no longer holds up every page.<\/li>\n<\/ul>\n\n<h4>1.12.2<\/h4>\n\n<ul>\n<li>Translations are now delivered through translate.wordpress.org instead of being bundled with the plugin.<\/li>\n<\/ul>\n\n<h4>1.12.1<\/h4>\n\n<ul>\n<li>Added the missing translator comments on two strings, so the whole plugin passes Plugin Check without errors.<\/li>\n<\/ul>\n\n<h4>1.12.0<\/h4>\n\n<ul>\n<li>Redemption coupon codes now start with VZ instead of LP, matching the Vazolo name customers see everywhere else.<\/li>\n<li>Declared compatibility with WooCommerce 10.9.<\/li>\n<\/ul>\n\n<h4>1.11.2<\/h4>\n\n<ul>\n<li>The points card on the My Account dashboard now links through to the full Loyalty points page, instead of repeating the same information as a dead end.<\/li>\n<\/ul>\n\n<h4>1.11.1<\/h4>\n\n<ul>\n<li>A customer who does not have enough points yet now reads how many more they need, instead of the misleading \"add more to your cart\".<\/li>\n<\/ul>\n\n<h4>1.11.0<\/h4>\n\n<ul>\n<li>Redesigned the My Account points page: the balance is now the headline, with a progress bar showing how close the customer is to their first discount.<\/li>\n<li>Correct singular and plural everywhere (\"1 point\", not \"1 points\"), in both the classic and the block checkout.<\/li>\n<li>The settings screen now links straight to the points settings in Vazolo, and explains that the earn rate and redemption are configured there.<\/li>\n<\/ul>\n\n<h4>1.10.2<\/h4>\n\n<ul>\n<li>The My Account points page now tells a customer who has not joined yet that they are not a member, instead of showing a misleading \"could not load your points\" error.<\/li>\n<\/ul>\n\n<h4>1.10.1<\/h4>\n\n<ul>\n<li>Fixed: the new \"Loyalty points\" page under My Account returned a 404 after updating the plugin in place, because WordPress had not rebuilt its permalinks. The plugin now rebuilds them once by itself.<\/li>\n<\/ul>\n\n<h4>1.10.0<\/h4>\n\n<ul>\n<li>New \"Loyalty points\" page under My Account, with the customer's balance, how fast they earn, and when they can start redeeming.<\/li>\n<li>Orders in My Account now show the points that order earned.<\/li>\n<li>New setting \"Cart summary line\": show \"you earn X points with this order\" in the cart and checkout totals, next to shipping and tax. Visible to logged-out visitors too, and it works on both the classic and the block cart.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Dutch translation included, and the cart and checkout widgets are now translatable too (they previously showed English regardless of your site language).<\/li>\n<li>Bundled translations are now actually loaded (the plugin was missing load_plugin_textdomain).<\/li>\n<\/ul>\n\n<h4>1.8.5<\/h4>\n\n<ul>\n<li>New setting \"Points value\": show or hide what a customer's points are worth next to their balance at the cart, checkout and My Account. The product page now shows points only, without the euro value.<\/li>\n<\/ul>\n\n<h4>1.8.4<\/h4>\n\n<ul>\n<li>Points values now follow your shop's own price formatting (decimal separator, thousands separator and currency symbol position), so \"0,04\" no longer appears next to a price of \"4,00\". Applies to the product page, My Account, and both the classic and block checkout.<\/li>\n<\/ul>\n\n<h4>1.8.2<\/h4>\n\n<ul>\n<li>Read the current product without touching the global on product pages (code-standards fix).<\/li>\n<\/ul>\n\n<h4>1.8.1<\/h4>\n\n<ul>\n<li>Longer, unique internal prefixes and a trademark\/non-affiliation notice, per WordPress.org plugin guidelines.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Product page badge: optionally show \"earn X points with this product\" under the price, based on your Vazolo earn rate, to encourage purchases.<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Optionally award points when a product review is approved (set points per review; only members earn, matched by the review's email; each review is rewarded once).<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Show the customer's points balance on the WooCommerce My Account page.<\/li>\n<li>Confirm earned points on the order-received (thank you) page.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Aligned the text domain with the plugin slug, added a translation template, and tidied up per WordPress coding standards (input sanitization, translation loading).<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Redeemed points are refunded automatically when the order is cancelled or refunded.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Optional guest redemption: guests can redeem points at the block checkout by entering their email (opt-in setting).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Points are now reserved and only deducted when the order is placed, so an abandoned checkout never costs points.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>Block checkout support for the redeem widget (ExperimentalOrderMeta slot).<\/li>\n<li>Themed, theme-adaptive widget styling with a brandable accent colour.<\/li>\n<li>HPOS and Cart\/Checkout Blocks compatibility declared.<\/li>\n<li>WooCommerce dependency check, translations loading, uninstall cleanup.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Redeem points for a discount on the classic cart\/checkout.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Earn points on paid orders + customer sync.<\/li>\n<\/ul>","raw_excerpt":"Award loyalty points on WooCommerce orders and let customers redeem them for a discount at checkout. One account for shop and webshop.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/367298","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=367298"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vazolo"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=367298"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=367298"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=367298"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=367298"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=367298"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=367298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}