Leat

Description

Enhance your customer experience with Leat.

Leat’s all-in-one platform empowers you to:

  • Quickly set up a fully customized loyalty program and rewards, with no coding required
  • Effortlessly engage customers using targeted vouchers and promotions
  • Drive growth with real-time analytics and insights
  • Seamlessly manage your loyalty program both online and offline

Key Features

  • Points & Rewards Program – Create a flexible points system where customers earn points for purchases
  • Custom Rewards – Design attractive rewards that keep customers coming back
  • Automated Marketing – Send targeted emails and notifications based on customer behavior
  • Real-time Analytics – Track program performance and customer engagement
  • WooCommerce Integration – Seamlessly works with your existing store
  • Multi-channel Support – Works both online and in physical stores
  • Customer-entered amounts – Let customers choose the amount of a gift card, prepaid top-up or voucher, from a range or a list of amounts you set.

External Services

This plugin requires an API connection to Leat and its business portal (business.leat.eu) for core functionality including reward management, customer tracking, and loyalty point calculations.

Data transmitted includes:
– Customer information (email, name, order history, purchase categories)
– WooCommerce order data (order totals, products purchased, dates)
– Store configuration data
– Reward and voucher definitions
– Store performance metrics and analytics

All data is transmitted securely via HTTPS to Leat’s servers in compliance with GDPR and other applicable privacy regulations. Data processing occurs on both leat.com and business.leat.eu domains.

Users of this plugin should ensure they comply with the terms and privacy policies of Leat before using this plugin:

Screenshots

Blocks

This plugin provides 13 blocks.

  • Referral Rewards Display referral program rewards and sharing options
  • Spend Rules List Display available rewards that users can redeem with their credits
  • Earn Rules List Display available ways to earn loyalty points
  • Add to Wallet Button Link or button to add the loyalty card to a mobile wallet (enrolled members only)
  • Loyalty Heading Dynamic heading that changes based on user enrollment status
  • Coupons List Display user's available coupons from loyalty program
  • Gift Card Balance Let customers check the balance and expiry date of a gift card by entering its code
  • Join Button Button to join the loyalty program
  • Tiers List Display loyalty program tier levels
  • Product Points Display Display points customers can earn on product pages
  • Loyalty Paragraph Dynamic paragraph that changes based on user enrollment status
  • Points Display Display points that customers will earn from their order in the checkout.
  • Rewards (Checkout) Display and redeem available rewards during checkout

Installation

  1. Upload leat-crm-X.Y.Z.zip to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Add your API key in the plugin settings.
  4. Sync your rewards and vouchers with Leat to get started.
  5. Build your loyalty pages with the Leat blocks in the WordPress block editor.
  6. Add the loyalty blocks to any page or post to show points, rewards, and more.

FAQ

How do I get an API key?

Sign up for a Leat account at business.leat.eu. Once logged in, navigate to Settings > API Integration to find your API key.

Can I customize the loyalty dashboard appearance?

Yes! The dashboard can be customized using CSS.

Does this work with my existing WooCommerce store?

Yes, Leat integrates seamlessly with WooCommerce.

How are points calculated?

By default, customers earn 1 point per currency unit spent (e.g., 1 point per $1). This can be customized in your Leat business portal, where you can also set up multipliers for specific products or categories.

Is this GDPR compliant?

Yes, Leat is fully GDPR compliant. We process all data in accordance with EU privacy regulations and provide the necessary tools for handling data subject requests. See our Privacy Policy for more details.

What happens if I uninstall the plugin?

Your customer data and loyalty program settings are safely stored in your Leat account. If you reinstall the plugin later, you can simply reconnect using your API key and all data will be restored.

How do I display loyalty content on my site?

Use the Leat blocks in the WordPress block editor. Add them to any page or post to show the loyalty dashboard, a customer’s point balance, rewards, and more — no shortcodes required.

The legacy [leat_dashboard], [leat_reward_points] and [leat_referral] shortcodes were removed in 5.0.0. If you used them, rebuild those areas with the Leat blocks on a page (preferred), or use a Content Block. See the migration guide: https://leat-docs.vercel.app/wordpress-plugin/migrating-from-shortcodes

General Upgrade Guidelines

Before major updates (x.0.0):

  1. Backup site and database
  2. Test on staging environment
  3. Test purchase flow, points, vouchers, gift cards
  4. Verify loyalty data intact

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Leat” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Leat” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

5.5.0

  • On WordPress 7.1 and later, choose a custom icon for each earn rule from any registered icon collection, including a new Leat collection, while rules without a choice keep their current icon.
  • Add a Gift Card Balance block where customers enter a gift card code to see its balance and expiry date.
  • On WordPress 7.1 and later, upload your own filled SVG icons in the earn rule icon picker and use them on any earn rule.
  • Fully remove the new account when joining the loyalty program fails on a multisite network, so the customer can sign up again with the same email address instead of being told it is already registered.
  • Earn rule icons now follow the --leat-icon-color CSS variable, so a theme can recolor the default icons and picked icons alike instead of the default icons always showing in black.
  • Modernize frontend block assets and registration for more reliable editor and checkout compatibility.
  • Refreshed the WordPress.org plugin page with a new banner and screenshots of earn rules, the loyalty dashboard, tiers and gift cards.
  • The Leat gift card product edit screen no longer shows the Prepaid Top-up checkbox or the “Customer enters an amount” field, and variable products no longer show that amount field either.
  • A gift card product that is also marked as a prepaid top-up now issues only the gift card for a payment, and saving the product or its variations turns the prepaid setting off.
  • Gift card balance lookups now reveal only a card’s status, balance and expiry date and are limited to 10 per IP address every 10 minutes, and classic checkout applies a gift card without a separate balance lookup.
  • Keep loyalty program membership separate for each site in a multisite network, so a customer who joined on one site is no longer treated as a member on every other site.
  • Report when Leat is temporarily unreachable instead of showing a loyalty member as not enrolled, failing their enrollment outright, or presenting an empty loyalty history as if it were real.
  • Confirm compatibility with WordPress 7.1 and WooCommerce 11.2.1.

5.4.0

  • Coupons no longer discount Leat gift card products, including gift card products you convert to the new type, so a gift card is always worth the amount the customer chose.
  • Existing gift card products can be converted to the Leat gift card type in one click from the Products list or the product’s edit screen when their setup maps exactly, and the conversion can be undone.
  • The setup wizard now creates Leat gift card products without needing WPC Name Your Price, and refuses gift card amounts it can’t sell, such as a missing minimum or maximum or a price of 0, instead of creating a product nobody can buy.
  • New Leat gift card product type selling a fixed or promotional amount, a choice of amounts or a customer-entered amount, where customers choose the amount, recipient, message and delivery date on the product page and can edit them in the cart and checkout.
  • Gift card, prepaid and voucher products can now let customers enter their own amount, from a list or a range with an optional minimum and maximum, without the WPC Name Your Price plugin.
  • Stores that used WPC Name Your Price for Leat products are moved to Leat’s own amount field automatically on update, every gift card, top-up and voucher keeps its value, including for orders and carts from before the update, and WPC no longer changes the price of Leat products, even when it is activated later.
  • Saving a gift card, prepaid or voucher product whose customer-entered amounts can’t be sold, such as a maximum below the minimum or a list without a valid amount, now shows a warning explaining what to fix.
  • On multilingual stores the loyalty opt-in checkbox on the block checkout now shows in the visitor’s language, and Leat no longer fills the debug log with “translation loading was triggered too early” and gift card delivery date placeholder notices on every page load.
  • On the block checkout, an order whose gift cards each have their own recipient no longer shows a gift card recipient, message or delivery date that the buyer typed before the checkout recipient fields were hidden.
  • A gift card line whose recipient an admin changed in the delivery panel is now labelled “changed by admin” instead of “chosen by the customer”.
  • The gift card delivery panel only offers “Re-send this line” when that line has an issued gift card that was not cancelled by a refund.
  • The Re-send button in the gift card delivery panel now re-sends only gift cards that were already delivered, so a card scheduled for a later date is no longer sent early.
  • Refunding a gift card order no longer adds a “pending scheduled send cancelled” note when no send was scheduled.
  • A partial refund now cancels the gift card of the order line you refunded instead of the first gift card line of the same product, which may already have been sent to someone else.
  • Editing a product no longer writes a “wc_enqueue_js is deprecated” notice to the debug log on WooCommerce 10.4 and later.
  • Customers now get their credits back automatically when a redeemed reward’s coupon cannot be created, and free product rewards whose products are all unavailable can no longer be redeemed.

5.3.0

  • Gift card recipient addresses can now be corrected from the WooCommerce order. The “Leat: Gift Card Delivery” panel shows which address the card will be delivered to, lets staff fix a mistyped one, and re-sends the same card — same code, balance and message. Every change is recorded as an order note.

5.2.0

  • Gift card and birthday checkout fields now show in the shop’s language. In the Blocks checkout, the gift card fields (recipient email, name, message, scheduled delivery) and the birthday field were registered before WordPress had loaded the plugin’s translations and before multilingual plugins such as Polylang had picked the visitor’s language, so their labels always appeared in English. They are now registered after translations are available, which also removes the “translation loading triggered too early” notice for these fields on WordPress 6.7+. The plugin now also ships German (de_DE), French (fr_FR) and Italian (it_IT) translations alongside the existing Dutch ones.
  • Fixed gift cards being lost when a checkout was submitted twice. A repeated “Place order” click (or a retried payment) could create a second order at the full price while the gift card had already been debited for the first, unpaid order, so customers were asked to pay the full amount at the payment provider and the card balance was gone until staff topped it up manually. The applied gift card now stays with the checkout: a repeated submit resumes the same order at the same reduced total, a card is debited only once per checkout, and when a new order replaces an unpaid one the earlier debit is returned to the card first. Gift card value debited for an order that is cancelled, fails or expires unpaid is now returned to the card automatically, with an order note. If a card’s balance changes before the order is placed, the customer is told and the order total is corrected instead of the difference being absorbed silently; if a card can no longer be charged at all, it is removed from the order, the total is restored and the customer sees why. The Blocks checkout now debits the gift card as well (it previously never did) and no longer subtracts the card twice from the order total. Two submits that arrive at the same moment are now serialised, so a simultaneous double click cannot debit the same card twice; if the gift card is momentarily busy with another attempt at the same order, the checkout stops with a message asking the customer to try again rather than placing an order the card does not back. If Leat cannot be reached to return a card’s value, the return is retried in the background instead of being left to staff. An order that is manually marked as paid but whose gift card can no longer be charged now moves to on-hold, so it is not fulfilled while part of the total is uncollected.

5.1.2

  • Store managers can now filter the WooCommerce Orders list to find orders with scheduled gift card deliveries. The filter works with both High-Performance Order Storage and the legacy order screen, including schedules saved by Checkout Blocks.
  • Viewing or updating the cart is faster, and no longer stalls when Leat is slow to answer. Every single cart request used to make two uncached calls to Leat – one to look up the shopper’s contact, one to estimate the points the order would earn – so a slow connection added that wait to every add-to-cart, coupon and checkout update. Both results are now cached, the calls are skipped entirely for empty carts and stores that aren’t connected, they use a much shorter timeout, and after a failure the plugin pauses for five minutes instead of retrying on every request. Joining the loyalty programme still takes effect immediately.
  • Removed the debug messages the loyalty blocks wrote to the browser console on every page view, including on cart and checkout. Genuine error reporting is unchanged.
  • Redeeming a reward no longer reports “We couldn’t add your reward to the cart automatically” when the cart is actually fine. The block used to read the cart before applying the reward, so a store where any other plugin or theme breaks WooCommerce’s Store API failed at that first read – before the reward had been applied at all. The read is gone: the reward is applied first, and if the response can’t be read back the customer is simply shown their discount code, with links to their cart and checkout, instead of an error and a retry button that can never succeed.

5.1.1

  • The Leat debug panel — the floating panel shop managers can open on an order, a user profile, or the Leat settings screen — now uses a light theme that matches the WordPress admin around it, instead of the dark panel it used before. Text, badges and buttons were recoloured for readable contrast on a light background, and long identifiers such as order and gift card UUIDs now wrap inside the panel rather than running past its edge and overlapping the line beneath them.
  • Gift card recipient details entered in the block-based checkout are now captured reliably. Previously the plugin copied the recipient email, name, message and scheduled delivery date onto the order at a moment when WooCommerce had not yet attached them, so whether they were captured depended on whether the buyer’s last field edit had reached the server before “Place order” was clicked. That race is closed: the details are copied at the point WooCommerce writes them, on every order. Scheduled delivery dates on orders affected by the earlier bug are also honoured now instead of the gift card being sent immediately, and the loyalty opt-in checkbox at block checkout no longer risks being recorded as unticked for the same reason.
  • Gift cards bought through the block-based checkout are no longer stranded without a recipient. WooCommerce stores the recipient address on the order as an additional checkout field, and the plugin keeps its own copy of it; on some orders that copy was never written, and the gift card was then created but never emailed — even though the recipient address was plainly visible on the order in the admin. The recipient address, name and message are now read from WooCommerce’s own field whenever the plugin’s copy is missing.
  • The plugin’s WordPress.org page now lists the full release history under Changelog, instead of only the current and previous release. The complete history had always shipped in the plugin’s changelog.txt, but WordPress.org only renders readme.txt, so older entries were never visible there.

5.1.0

  • The plugin now verifies that the configured Shop ID actually belongs to the connected Leat account. If it doesn’t – for example after switching a site between two Leat accounts – a site-wide admin warning explains the problem and links to the settings, and loyalty syncing and gift card processing are paused (with an explanatory note on affected orders) until the correct shop is selected, instead of every gift card funding and points call silently failing with “Shop not found”.
  • The gift card checkout notice “No gift card products found” no longer floods the plugin log on production sites; it is now only recorded when debug logging is enabled.
  • Gift cards are no longer silently skipped on stores running a persistent object cache. The plugin verifies each step of gift card processing by reading back what it just saved; on busy stores a second request could serve a cached copy of the previous value, so the check failed and the gift card was never issued – leaving only an order note asking for intervention. The check now re-reads past the cache before giving up, and every unverified step is written to the plugin log so it can be found without opening the order.
  • When gift card creation, funding, or delivery fails, or a loyalty order cannot be created or processed, the order note now includes the underlying Leat API error in a collapsible “Technical details” section – so the cause stays diagnosable on the order itself even after the plugin log has rotated.
  • The loyalty points-award call now waits up to 60 seconds instead of 10 before giving up. Awarding points can legitimately take longer than 10 seconds on the Leat side, and aborting early caused “Failed to process loyalty order” notes on stores where the points had actually been awarded. A new leat_api_request_timeout filter also lets any Leat API request’s timeout be tuned per site without a plugin update.
  • Prepaid refunds now reverse the correct top-up transaction for every unit when an order line has a quantity greater than one.
  • Confirm compatibility with WordPress 7.0 and WooCommerce 10.9.4.

5.0.0

  • WordPress 6.6 or newer is now required.
  • Loyalty pages now use Leat blocks or Content Blocks; the legacy loyalty shortcodes have been removed. Sites upgrading from an older version see a one-time migration notice with next steps.
  • Birthday fields can be used during registration, checkout, account editing, and loyalty enrollment, with a new one-time birthday reward option.
  • Free / Discounted Product rewards now support product choice and apply the reward to the selected item only.
  • Spend Rules make product selection clearer and stay updated when rewards change, even after temporary connection issues.
  • Gift cards now process more reliably through checkout and order completion, use the buyer’s email when no recipient is provided, and explain when follow-up is needed.
  • Loyalty data and rewards now load more reliably for signed-in customers, while unrelated orders avoid unnecessary loyalty or gift-card processing.

4.6.0

  • You can now retry syncing an individual order to Leat from its order details.
  • You can now select multiple orders and sync them to Leat in one action.
  • The plugin now clearly flags incomplete setup and waits to sync until it is complete.
  • Retried order syncs now award points correctly when the order qualifies.
  • Gift cards are now consistently cancelled whenever an order is refunded — including when the order is set to Refunded directly or refunded by total amount, in addition to the existing per-line-item refunds.
  • When a single line holds several gift cards, refunding them one at a time now cancels a different card each time, so every refunded card is correctly voided.
  • Gift card refunds now keep card balances accurate when a refund is retried.
  • Rewards that are turned off now correctly appear unavailable.

4.5.0

  • New Customers screen in the Leat admin lets you browse your loyalty members and open any customer to see their details.
  • Rewards now add to the cart more reliably and show clearer next steps.
  • Customers now see newly redeemed reward coupons immediately without refreshing the page when using content blocks.

4.4.1

  • Signing in or joining via the enrollment modal no longer fails with a server error when the email already exists as a Leat contact but has no WordPress account yet — the existing contact is now linked to the new account instead of returning an error.
  • A failed enrollment now returns a readable error and cleanly removes the half-created account, instead of triggering a fatal “critical error” and leaving an orphaned WordPress user.
  • Enrolling without filling in a name no longer overwrites an existing Leat contact’s saved first and last name with blanks.
  • Tiers List block now orders tiers from the entry level up by default, with a new “Tier order” control to reverse it (top tier first).
  • Tiers List block no longer marks a higher tier as “Achieved” while the customer is only on a lower tier.
  • Digital gift cards no longer fail cart validation when Leat returns a zero maximum amount, which now correctly means the program has no maximum.

4.4.0

  • Spend Rules List block can now fall back to the selected product’s photo for “Free / Discounted Product” rewards that don’t have a manually configured reward image. Enable “Show product photo for free/discounted product rewards” in the block’s Display Settings. Uses WooCommerce’s catalog thumbnail size for high-quality square imagery; draft, pending, and private products are excluded.
  • Spend Rules List images now use an aspect ratio preset (Square 1:1, Landscape 4:3, Portrait 3:4) instead of a freeform height + fit control. Keeps reward cards visually consistent across the grid regardless of source image dimensions.
  • Spend Rules List grid is now fixed at 3 columns on desktop, automatically dropping to 2 columns under 1100px and 1 column under 600px. The Grid Columns control has been removed from the block inspector.

4.3.0

  • Unified sign-in, sign-up, and join experience across every loyalty block. Clicking “Sign in”, “Create account”, or “Join program” now opens the same in-page modal instead of redirecting customers to the WordPress login page, so they stay on the page they were browsing.
  • Gift card amounts are now validated against the program’s configured minimum and maximum before checkout — on the cart page, classic checkout, and block checkout. Shoppers see a clear error like “Maximum gift card amount for {product} is {amount}” instead of paying and then having the gift card silently fail to fund due to a program limit.
  • Content Blocks now always open in the Gutenberg block editor, even on sites running Classic Editor or other plugins that disable Gutenberg site-wide.

4.2.1

  • Restored PHP 7.4 compatibility. The gift card service and the bundled PSR logger interface no longer use PHP 8-only syntax (union return types), which had caused a critical fatal error on activation/use for sites running PHP 7.4.

4.2.0

  • Refreshed loyalty Gutenberg patterns with a cleaner, more modern layout — including a redesigned hero section that adapts to logged-in, guest, and enrolled states, a two-card layout showing the customer’s points balance alongside the program intro, and a hero background image option for richer storefront styling.
  • New “Add to Wallet” button block lets enrolled members save their loyalty card to Apple Wallet or Google Wallet from any page where you place the block.
  • Scheduled gift card sending — buyers can pick a future delivery date and time at checkout (classic and block checkout). The gift card is still created and funded at the order’s trigger status as before; only the recipient email is deferred, delivered via a single scheduled job per order (Action Scheduler).
  • New “Minimum gift card lifetime on delivery” setting caps how far ahead delivery can be scheduled, derived from each gift card program’s expiry (cards expire from creation, not from send), and automatically disables scheduling for programs whose lifetime is too short.
  • New “Leat: Gift Card Delivery” panel on the order edit screen shows per-card delivery status and lets staff reschedule, cancel, send now, or re-send (force) scheduled gift cards.
  • Buyers now see their scheduled delivery date on the order-received page.
  • Refunds and gift-card-cancelling order statuses now withdraw individual cards and only cancel a pending scheduled delivery when no deliverable cards remain, so a partial refund leaves the remaining cards on schedule.

4.1.3

  • Gift card code order note is now an internal admin note instead of a customer-facing note, preventing an unwanted order note email being sent to customers

4.1.2

  • Enrollment modal inputs now show placeholder text using the configured label values
  • Body scroll lock now also locks the html element, preventing page scroll behind the modal on themes that scroll via the root element

4.1.1

  • Enrollment modal no longer renders behind sticky headers — overlay z-index raised to 999999 to exceed common theme values (e.g. Divi’s 100000)
  • Enrollment modal input fields now reset theme-injected box-shadow and inherit font-family, preventing themes from overriding field appearance

4.1.0

  • Join Program Button now opens an enrollment modal instead of redirecting guests — handles both guest registration (passwordless, with optional first/last name) and logged-in enrollment in one step, with a success state and automatic cache-busting reload
  • New REST endpoint POST /leat/v1/register-and-join creates a WordPress user, Leat contact, and auth session in a single transactional flow; rate-limited to 10 requests per IP per hour to prevent spam and email enumeration
  • Join Program Button block has 10 new Gutenberg-editable attributes for all modal text, button labels, and field visibility toggles, accessible from two new “Modal Settings” and “Success” sidebar panels
  • LoyaltyHeading block no longer silently creates a Leat contact when a logged-in user loads the block, which was bypassing the auto_enroll_on_registration setting entirely
  • Join Program Button no longer performs a redundant enrollment fetch on the frontend — the server-rendered enrollment status is authoritative and the block only renders for non-enrolled users
  • Passwordless registration via the enrollment modal now uses a session cookie (non-persistent) instead of a remember-me cookie

4.0.1

  • Earn rules action buttons (“Claim”, “Inloggen om te claimen”) now render as underlined text links matching the design, instead of appearing as tiny pills with zero padding caused by block color settings overriding CSS text-link styles
  • Removed the non-functional “Button Colors” inspector panel from the Earn Rules List block

3.6.2

  • Spend Rules List block can now show available rewards to logged-out visitors when “Show rewards to non-enrolled users” is enabled, with a Sign In CTA on each card
  • Reward card descriptions now render consistently across enrolled, non-enrolled, and guest states

3.6.1

  • Settings save no longer blocks with “Shop ID is required” when the user is correcting a bad API key — shop_uuid is only required when the API key isn’t being changed in the same request

3.6.0

  • Add optional gift card recipient name field in classic and Blocks checkout, forwarded to Leat send-by-email API for personalized gift card emails
  • Add “Disable recipient name” setting to hide the recipient name field (coupled with the recipient email toggle)
  • Show gift card recipient name in the admin debug toolbar
  • Tiers List block cards no longer stretch to match the tallest sibling
  • Add missing settings field

3.5.9

  • Add contextual documentation links throughout the admin settings (header, every tab, onboarding steps and empty states) pointing to leat-docs.vercel.app
  • Not showing of per-tier perks in the Tiers List block.
  • Documentation link title attribute could break in translations containing apostrophes

3.5.8

  • Rare fatal error when activating the plugin alongside other plugins using the same dependencies

3.5.7

  • Spend rule type field rendered as read-only text instead of a dropdown select

3.5.6

  • Promotion rules not saving due to missing uuid parameter in REST request

3.5.5

  • Select fields (e.g. Gift Card Order Status) not restoring saved value after page refresh
  • Gift card email errors now show the actual API error reason in WooCommerce order notes instead of a generic failure message

3.5.4

  • Blocks not rendering when loaded via shortcode or outside post content (e.g. ACF fields, page builders)
  • Block default strings (buttons, messages, empty states) not translatable due to wrong text domain and missing i18n wrapping

3.5.3

  • Cache subscription types API response

3.5.2

  • Marketing consent subscription select not rendering its options
  • Add editable empty state text for the Earn Rules List block
  • Earn Rules List empty state styling inconsistent with other blocks

3.5.1

  • dev: Fix build issues

3.5.0

  • Redesigned settings dashboard
  • Credits currency not respecting the “Credits name” setting, always showing “points”
  • Block editor strings not translatable due to incorrect text domain
  • Styling issues around save buttons
  • Refresh translations for nl_NL and nl_BE
  • Redesigned earn rules, webhooks, and promotions settings pages

3.4.1

  • Gift cards not being created correctly on stores with High-Performance Order Storage (HPOS) enabled
  • Vouchers not being created correctly on stores with High-Performance Order Storage (HPOS) enabled
  • Gift cards could be issued multiple times for the same order in some cases
  • Vouchers could be issued multiple times for the same order in some cases
  • Improve performance of loyalty points display in checkout
  • Improve checkout reliability when the loyalty API is slow or unavailable
  • Improve Dutch translations on Gutenberg templates (patterns)

3.4.0

  • Mark rewards as “offline” to indicate to customers that they can claim this on location.
  • Fix debug toolbar assets not loading due to incorrect plugin root path resolution

3.3.1

  • Fix fatal error when moving attendees via Event Tickets — enqueue_admin_scripts now accepts nullable hook argument
  • Replace exact API key length check with a minimum length validation to support variable-length PATs

3.3.0

  • Sell vouchers directly as WooCommerce products.

3.2.6

  • Add [leat_content_block id="X"] shortcode for rendering content blocks in page builders
  • Add “Shortcode” column to content blocks admin list table for easy copying

3.2.5

  • Include tax in order line items instead of sending as separate charge
  • Loyalty points refund errors now show actual API error message in order notes instead of generic failure message
  • Shipping and fee charges now include tax amounts
  • Default reward order parts now includes tax (B2C default)
  • Increase log retention to 30 days

3.2.4

  • Gift card amounts showing as undefined in legacy WooCommerce checkout
  • dev: Decrease logging

3.2.3

  • Improve loyalty points calculation

3.2.2

  • Add leat_reward_order_statuses filter to allow multiple order statuses to trigger points awards

3.2.1

  • Settings not changeable

3.2.0

  • New Rewards Checkout block for displaying and redeeming rewards

3.1.6

  • dev: fix build

3.1.5

  • Promotion rule label not saving when using translatable text format

3.1.4

  • Add referral statistics cards to the Referral Rewards block showing referred and completed counts

3.1.3

  • Tiers List block not highlighting the current tier for enrolled users

3.1.2

  • dev: fix build

3.1.1

  • Remove DI container caching that could cause crashes on some production sites after plugin updates

3.1.0

  • Content Blocks system for displaying Gutenberg blocks at WooCommerce hooks
  • Points display with enrollment invitation for non-members on product pages
  • Referral codes not being attributed when new users sign up via order processing
  • Gutenberg editor not showing up on certain pages
  • Points Display block not rendering on WooCommerce Blocks checkout frontend
  • Resolved Store API namespace collision between PointsExtension and GiftcardExtension
  • Improved security for Content Block rendering

3.0.3

  • Loyalty Dashboard Page setting now enforces Gutenberg block editor even when Gutenberg-disabling plugins are active

3.0.2

  • Improved error handling consistency across all REST API endpoints

3.0.1

  • Fixed gift card discount not being correctly applied to order totals during checkout
  • Resolved issue where WooCommerce would recalculate order totals and remove gift card discounts
  • Resolved dependency injection caching issue that could cause errors with WooCommerce Blocks
  • Improved gift card total calculation logic to prevent double subtraction
  • Enhanced compatibility with payment gateways to ensure correct amounts are charged

3.0.0

  • Added Gutenberg blocks for building custom loyalty dashboards
  • Added block patterns for quickly constructing loyalty pages
  • New Loyalty Heading block with dynamic content based on enrollment status
  • New Loyalty Paragraph block with rich text editing and variable support
  • New Join Program Button block for enrolling customers
  • New Earn Rules List block displaying ways customers can earn points
  • New Spend Rules List block showing available redemption options
  • New Coupons List block for displaying customer vouchers and coupons
  • New Referral Rewards block for sharing referral links
  • New Tiers List block showing loyalty program tiers
  • New Points Display block integration for WooCommerce Blocks checkout
  • New Giftcard Coupon block integration for WooCommerce Blocks checkout
  • Added “Loyalty Hero with Image” pattern for creating hero sections
  • Added “Earn Rules Section” pattern for pre-built earning opportunities layout
  • Added “Spend Rules Section” pattern for pre-built redemption options layout
  • Added “Referral Section” pattern for pre-built referral program layout
  • Added “Coupons List Section” pattern for pre-built vouchers layout
  • Added “Tiers Section” pattern for pre-built loyalty tiers …