{"id":44741,"date":"2026-09-10T00:02:40","date_gmt":"2026-09-10T00:02:40","guid":{"rendered":"https:\/\/relywp.com\/?p=44741"},"modified":"2026-09-10T12:46:11","modified_gmt":"2026-09-10T12:46:11","slug":"update-2-2-0-simple-points-and-rewards","status":"publish","type":"post","link":"https:\/\/relywp.com\/es\/blog\/update-2-2-0-simple-points-and-rewards\/","title":{"rendered":"Update 2.2.0 \u2013 Simple Points and Rewards: Order Streaks, Admin Redemption, Clearer Order Points"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Version 2.2.0 of Simple Points and Rewards is now available!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This release adds a new Order Streak way to earn in PRO, for rewarding customers who keep ordering to a regular schedule. Points redemption also moves into the admin, so you can spend a customer\u2019s points against an order you are building for them, or redeem a reward on their behalf. The Reward Points panel on the order edit screen has been rebuilt to explain itself properly, and there is a fix for stores whose product pages are built with a page builder, where the product points message was not appearing at all.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Order Streaks (PRO)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">There is a new way to earn under <strong>Earn &gt; Order Streak<\/strong>, aimed at customers who keep ordering to a schedule rather than customers who spend the most in one go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You set the schedule yourself. One order every week, or two orders every month, or whatever matches how often people buy from you. Then you set how many periods in a row a customer has to keep it up before the bonus lands.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Periods run from the order that started the streak rather than from the calendar, so a customer who starts on the 10th always has until the 10th of the next period. Miss a period and the streak ends. Their next order starts a new one.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <strong>Minimum order value<\/strong> setting stops token orders from keeping a streak alive. It is measured the same way as your \u201cPoints for Spending\u201d earning rate, so it behaves like the rest of the plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The bonus can be awarded once per customer, or paid out again every time an unbroken streak reaches the length you set. That is a checkbox under <strong>The bonus<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reminder emails can be switched on to warn customers before a streak runs out. You choose how many days before the period ends to send them, and the minimum streak a customer must have built up to be worth reminding, so first-time customers do not get chased. A customer is emailed at most once per period, and never once they have already placed the orders that period needs. The email itself is edited from the <strong>Email Notifications<\/strong> tab.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"746\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings.jpg\" alt=\"Order Streak settings in Simple Points and Rewards, showing the schedule, bonus and reminder email options\" class=\"wp-image-44747\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings.jpg 1568w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-300x143.jpg 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-1024x487.jpg 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-768x365.jpg 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-1536x731.jpg 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-18x9.jpg 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-settings-360x171.jpg 360w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">On the customer side, the rewards dashboard and the floating rewards widget both show a progress bar with how many periods they have banked and what the current one still needs. It turns amber when the period is about to run out.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"746\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar.jpg\" alt=\"Order Streak progress bar on the customer rewards dashboard, showing one of four weeks completed\" class=\"wp-image-44746\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar.jpg 1568w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-300x143.jpg 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-1024x487.jpg 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-768x365.jpg 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-1536x731.jpg 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-18x9.jpg 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-order-streak-progress-bar-360x171.jpg 360w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The streak works with level multipliers, conditional rules, points delay and the reports breakdown, in the same way as every other way to earn.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Redeeming Points on Orders You Create<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Two new panels cover the case where you are taking an order over the phone, or building one by hand in the admin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Reward Points<\/strong> panel on the order edit screen has a new <strong>Apply Points for Discount<\/strong> section. It stays collapsed to its heading until you open it, and only appears when there is actually something to redeem: the order has to still be editable, and the customer has to have enough points for the order to be worth discounting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entering an amount shows what it is worth as you type it. Applying it deducts the points and adds the discount to the order as the same discount line the checkout produces. The section refreshes as soon as you change the Customer field, so you are always looking at the balance of the customer the order is actually for.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Removing the discount returns the points. And because it is the same line the checkout creates, refunding or cancelling the order returns the points exactly as it does for a redemption the customer made themselves. The \u201cDo not award ANY points on orders where points were redeemed at checkout\u201d setting recognises it too.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"746\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount.jpg\" alt=\"Apply Reward Points for Discount section expanded on a WooCommerce order, showing 4,996 points worth a $49.96 discount\" class=\"wp-image-44743\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount.jpg 1568w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-300x143.jpg 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-1024x487.jpg 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-768x365.jpg 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-1536x731.jpg 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-18x9.jpg 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-apply-points-for-discount-360x171.jpg 360w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Separately, the admin customer page (<strong>Points &amp; Rewards &gt; Customer Points &gt; View Customer<\/strong>) has a new <strong>Redeem a Reward<\/strong> panel. It runs the same redemption the customer would run themselves. Their points come off immediately, the voucher coupon is created and restricted to their email address, and the reward claimed email is sent. You can then apply the code to a manually created order with the WooCommerce \u201cApply coupon\u201d button.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rewards that add a product to the cart are not offered here, because an admin request has no cart. Only voucher and custom rewards can be redeemed this way.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"746\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin.jpg\" alt=\"Redeem a Reward panel on the admin customer page, with a $5 voucher selected\" class=\"wp-image-44745\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin.jpg 1568w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-300x143.jpg 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-1024x487.jpg 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-768x365.jpg 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-1536x731.jpg 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-18x9.jpg 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-redeem-a-reward-admin-360x171.jpg 360w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The Reward Points Panel Now Explains Itself<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The panel on the order edit screen has been redesigned. The customer the order belongs to is shown with their avatar, name, email address and current balance, so it is obvious whose points any action on the panel affects. The potential, awarded and deducted totals are laid out as figures instead of run-on text.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The status message also takes its colour from what it means now: red when something needs attention, green when points have been awarded, amber while an order is still waiting to reach the status that awards them. Previously every state, including outright failures, sat in the same amber box.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1568\" height=\"746\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded.jpg\" alt=\"Reward Points panel on a WooCommerce order, showing 100 points awarded in green with the customer balance\" class=\"wp-image-44744\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded.jpg 1568w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-300x143.jpg 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-1024x487.jpg 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-768x365.jpg 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-1536x731.jpg 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-18x9.jpg 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/09\/spar-220-reward-points-panel-awarded-360x171.jpg 360w\" sizes=\"auto, (max-width: 1568px) 100vw, 1568px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">More usefully, the panel names the actual reason an order has not earned points, instead of showing \u201cPoints not yet awarded\u201d for every case. The reasons it can now give are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The order has no customer account assigned.<\/li>\n\n\n\n<li>The customer is banned from earning points.<\/li>\n\n\n\n<li>Points were redeemed on the order.<\/li>\n\n\n\n<li>The order earns no points.<\/li>\n\n\n\n<li>The order is waiting to reach the status that points are awarded on, which is now named in the panel.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The first one is the most common cause on orders created by hand in the admin, where the Customer field gets left as Guest and there is nobody to credit the points to. Each reason comes with a short note on what to do about it, and the \u201cGrant points now\u201d button reports the same reasons when it cannot award, rather than a generic failure message.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Orders held back by the PRO <strong>Points Delay<\/strong> feature now say so as well. The panel shows how many points are waiting and the date they reach the customer\u2019s balance, so a delayed award no longer looks identical to one that failed. The order records the points as earned while the balance deliberately stays unchanged until the delay is up. Orders with more than one pending release show the combined total and how many parts it arrives in.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Potential Points That Match What Gets Awarded<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Potential Points<\/strong> figure on the order edit screen was worked out from the order\u2019s spend alone. It left out your \u201cMaximum points per order\u201d and \u201cMaximum percentage of total\u201d limits, the customer\u2019s level multiplier, fixed points tiers and any conditional rules. On a store that caps orders at 100 points, a 300.00 order announced 300 points on the panel and then awarded 100, with nothing on screen to explain the difference.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The figure now comes from the same calculation the award itself uses, so what the panel promises is what the customer receives. The \u201cModify\u201d editor still works on the underlying amount, which is the figure those limits are then applied to, and a first order bonus is still added on top rather than being capped along with the order points. Pending points on a customer\u2019s profile are calculated the same way, where they previously left the per-order limits out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A related problem: orders created by hand in the admin could end up fixed at 0 points. The \u201cModify\u201d field was part of the order form, so every \u201cCreate\u201d or \u201cUpdate\u201d click quietly saved whatever figure was on display as a custom points amount for the order. On the \u201cAdd New Order\u201d screen that figure is 0, because the panel is drawn before any products have been added. So the order was fixed at 0, awarded nothing when it was completed, and the panel reported \u201cNo points earned for this order\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Saving an existing order froze the displayed figure in the same way, so products added afterwards no longer counted. On a first-time customer the frozen figure included the first order bonus, which was then awarded a second time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A custom amount is now only saved when it has actually been entered in the \u201cModify\u201d editor, which also opens on the figure it replaces rather than the total including the first order bonus. Otherwise the potential points follow the order\u2019s items. Orders that already carry a custom amount show it as \u201cCustom\u201d, with a \u201cReset\u201d button that returns them to the automatic calculation, and a custom amount of 0 is reported in plain terms rather than as an order that earns nothing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One more thing in the same area. If the status chosen under <strong>Earn &gt; Place an Order &gt; Completed status<\/strong> came from a plugin that is no longer active, the dropdown quietly fell back to displaying \u201cCompleted\u201d while still storing the missing status. No order could ever reach it, so points were never awarded automatically, and nothing on screen explained why. The saved status is now kept in the list and labelled \u201c(status no longer registered)\u201d, with a warning that a valid status needs to be chosen. The order edit screen reports the same problem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Orders Are Only Marked as Awarded When the Points Arrive<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An order could be stamped with an awarded amount even when the points had actually been refused, for example because the customer is banned from earning. The order edit screen then reported \u201cPoints Awarded\u201d while the balance had not changed, and there was no way to put the order right: both the automatic award and the \u201cGrant points now\u201d button treat that stamp as proof the points were given.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An order is now only marked as awarded when the balance actually changed, so affected orders can be granted afterwards once the cause is fixed. Points held back by the PRO points delay feature are unaffected and are still recorded as awarded.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Product Points on Page Builder and Block Theme Product Pages<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If your product pages are built with Elementor, Divi, Bricks, Oxygen, Royal Elementor Addons or a WordPress block theme, \u201cShow points on product pages\u201d appeared to do nothing at all. Those builders construct the product page out of their own widgets and blocks, and never run the WooCommerce hooks the message was attached to.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The message is now placed next to the add to cart button on those templates, respecting whether the display location you chose sits before or after it. Themes that use the standard WooCommerce product template are unaffected and keep using the exact display location from your settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For anything the automatic placement still cannot reach, there is a new <code>[spar_product_points]<\/code> shortcode. Drop it into a page builder shortcode widget or a block on a product template. It uses the product being viewed, or a specific one with <code>[spar_product_points product_id=\"123\"]<\/code>. A matching <strong>Manual placement<\/strong> choice has been added to the \u201cProduct points display location\u201d dropdown, which turns the automatic placement off so the shortcode is the only thing that renders the message.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Updating<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nothing needs changing after you update. Everything new is off until you switch it on, and the Order Streak way to earn starts disabled.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are two things to check if any of the bugs above have affected you. Orders created by hand in the admin that got stuck at 0 points, and orders marked as \u201cPoints Awarded\u201d where the balance never actually changed, can both be put right now with the \u201cGrant points now\u201d button on the order edit screen. And if you use the \u201cCompleted status\u201d setting under Earn &gt; Place an Order, open it once and confirm the status you chose is still registered.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Full Changelog<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>New: (PRO) Added an \u201cOrder Streak\u201d way to earn, for rewarding customers who keep ordering to a regular schedule. Set the schedule under Earn &gt; Order Streak &#8211; for example one order every week, or two orders every month &#8211; along with how many periods in a row a customer must keep it up before the bonus is awarded. Periods run from the order that started the streak rather than from the calendar, so a customer who starts on the 10th always has until the 10th of the next period. Miss a period and the streak ends, and their next order starts a new one. A minimum order value can be set so token orders cannot keep a streak alive, measured the same way as your \u201cPoints for Spending\u201d earning rate. The bonus can be awarded once per customer, or paid out again every time an unbroken streak reaches the length you set. Reminder emails can be turned on to warn customers before a streak runs out: choose how many days before the period ends to send them, and the minimum streak a customer must have built up to be worth reminding, so first-time customers are not chased. A customer is emailed at most once per period, and never once they have already placed the orders that period needs. The reminder email is edited from the Email Notifications tab, and the streak works with level multipliers, conditional rules, points delay, and the reports breakdown like every other way to earn. On the rewards dashboard and in the floating rewards widget, customers get a progress bar showing how many periods they have banked, which one they are working on and what it still needs, which turns amber when the period is about to run out.<\/li>\n\n\n\n<li>New: Added a [spar_product_points] shortcode for placing the product points message by hand, for stores that want it somewhere the automatic placement does not reach. Drop it into any page builder shortcode widget or block on a product template. It uses the product being viewed, or a specific one with [spar_product_points product_id=&#8221;123&#8243;]. A matching \u201cManual placement\u201d choice has been added to the \u201cProduct points display location\u201d dropdown, which turns the automatic placement off so the shortcode is the only thing that renders the message.<\/li>\n\n\n\n<li>New: The \u201cReward Points\u201d panel on the order edit screen now explains why an order has not earned points, instead of showing \u201cPoints not yet awarded\u201d for every case. It names the actual reason: the order has no customer account assigned (the most common cause on orders created by hand in the admin, where the Customer field is left as Guest and there is nobody to credit the points to), the customer is banned from earning points, points were redeemed on the order, the order earns no points, or the order is simply waiting to reach the status that points are awarded on, which is now named in the panel. Each reason comes with a short note on what to do about it, and the \u201cGrant points now\u201d button reports the same reasons when it cannot award, rather than a generic failure message.<\/li>\n\n\n\n<li>New: Added a \u201cRedeem a Reward\u201d panel to the admin customer page (Points &amp; Rewards &gt; Customer Points &gt; View Customer), for redeeming a reward on behalf of a customer, for example when taking an order over the phone. It runs exactly the same redemption the customer would run themselves: their points are deducted immediately, the voucher coupon is created and restricted to their email address, and the reward claimed email is sent, so the code can then be applied to a manually created order with the WooCommerce \u201cApply coupon\u201d button. Rewards that add a product to the cart can still only be redeemed by the customer, because an admin request has no cart, so only voucher and custom rewards are offered here.<\/li>\n\n\n\n<li>New: Added an \u201cApply Points for Discount\u201d section to the \u201cReward Points\u201d panel on the WooCommerce order edit screen, for spending a customer&#8217;s points against an order you are building for them, for example one taken over the phone. It stays collapsed to its heading until you open it, and only appears when there is actually something to redeem: the order has to still be editable, and the customer has to have enough points for the order to be worth discounting. Entering an amount shows what it is worth as you type it, and applying it deducts the points and adds the discount to the order as the same discount line the checkout produces. The section refreshes as soon as you change the Customer field, so you are always looking at the balance of the customer the order is actually for. Removing the discount returns the points. Because the discount is the same line the checkout creates, refunding or cancelling the order returns the points exactly as it does for a redemption the customer made themselves, and the \u201cDo not award ANY points on orders where points were redeemed at checkout\u201d setting recognises it too.<\/li>\n\n\n\n<li>New: (PRO) An order whose points are being held back by the \u201cPoints Delay\u201d feature now says so on the order edit screen. The \u201cReward Points\u201d panel shows how many points are waiting and the date they reach the customer&#8217;s balance, so a delayed award is no longer indistinguishable from one that failed: the order records the points as earned while the balance deliberately stays unchanged until the delay is up. Orders with more than one pending release show the combined total and how many parts it arrives in.<\/li>\n\n\n\n<li>Tweak: Redesigned the \u201cReward Points\u201d panel on the order edit screen. The customer the order belongs to is now shown with their avatar, name, email address and current balance, so it is obvious whose points any action on the panel affects. The potential, awarded and deducted totals are laid out as figures rather than run-on text, and the status message now takes its colour from what it means \u2014 red when something needs attention, green when points have been awarded, amber while an order is still waiting to reach the status that awards them \u2014 where previously every state, including outright failures, was shown in the same amber box.<\/li>\n\n\n\n<li>Fix: The product points message now appears on product pages built with a page builder or a block theme. Elementor, Divi, Bricks, Oxygen, Royal Elementor Addons and WordPress block themes build the product page out of their own widgets and blocks, and never run the WooCommerce hooks the message was attached to, so \u201cShow points on product pages\u201d appeared to do nothing on those stores. The message is now placed next to the add to cart button on such templates, respecting whether the chosen display location sits before or after it. Themes that use the standard WooCommerce product template are unaffected and keep using the exact display location chosen in the settings.<\/li>\n\n\n\n<li>Fix: Points redeemed at checkout are no longer lost on WooCommerce Subscriptions renewal orders. When a customer paid for a renewal manually, WooCommerce Subscriptions removed the points discount from the renewal cart before the order was created, but the points were still deducted \u2014 leaving the customer paying full price with their points spent. The discount is now kept on renewal checkouts and the points are deducted against it as normal.<\/li>\n\n\n\n<li>Fix: Points are never deducted unless the discount actually reaches the order. If anything removes the points discount before an order is created, the points now stay on the customer&#8217;s balance and a note is added to the order explaining what happened, instead of silently charging them.<\/li>\n\n\n\n<li>Fix: A points discount applied when buying a subscription product is no longer included in the subscription&#8217;s recurring total, so it only ever comes off the order it was redeemed on rather than every future renewal.<\/li>\n\n\n\n<li>Fix: The points discount is now correctly recognised on stores using a translation of the plugin, where the discount line was previously not matched by name.<\/li>\n\n\n\n<li>Fix: Points redemption is now captured on the WooCommerce Checkout block at the point the order is placed, rather than relying on the customer reaching the order confirmation page.<\/li>\n\n\n\n<li>Fix: The settings page no longer triggers a fatal error (\u201cUncaught ValueError: Unknown format specifier\u201d) on stores running the plugin in a translated language. Some of the bundled translations had lost the \u201c%s\u201d placeholder from their text \u2014 for example the Italian translation of \u201c%s appear on the customer account page and rewards widget\u201d \u2014 which made PHP fail as soon as the string was displayed and took the whole page down with it. The affected strings in the French, Italian, Japanese, Dutch, Polish, Brazilian Portuguese and Russian translations have been corrected, and a handful that could not be recovered now fall back to English.<\/li>\n\n\n\n<li>Fix: Added a safeguard so a faulty translation can no longer break a page. Every translated string is checked before it is used, and if its placeholders do not match the original text the English original is shown for that string instead. This also protects stores that use their own translations from WordPress.org, Loco Translate, WPML or similar tools.<\/li>\n\n\n\n<li>Fix: The discount value shown next to the points slider now always matches the discount applied to the cart. On stores that display prices including tax, the announced value and the cart line were worked out by two different calculations and could disagree by a cent \u2014 for example, redeeming 500 points at a rate of 120 points per 1.00 announced \u201c5.00\u201d but took 4.99 off the cart. The preview now follows the same steps WooCommerce takes when it taxes a discount, including on carts that mix more than one tax rate, so the value a customer is quoted is always the value they receive.<\/li>\n\n\n\n<li>Fix: The points discount preview in the FunnelKit side cart now includes tax on stores that display prices including tax, where it previously showed the value before tax was applied.<\/li>\n\n\n\n<li>Fix: An order is no longer recorded as having awarded points when the points were actually refused. If the points could not be credited, for example because the customer is banned from earning, the order was still stamped with the awarded amount, so the order edit screen reported \u201cPoints Awarded\u201d while the balance had not changed, and the order could never be put right because both the automatic award and the \u201cGrant points now\u201d button treat that stamp as proof the points were given. The order is now only marked as awarded when the balance actually changed, so affected orders can be granted afterwards once the cause is fixed. Points held back by the PRO points delay feature are unaffected and are still recorded as awarded.<\/li>\n\n\n\n<li>Fix: The \u201cCompleted status\u201d setting under Earn &gt; Place an Order no longer hides a status that has gone missing. If the status chosen there came from a plugin that is no longer active, the dropdown quietly fell back to displaying \u201cCompleted\u201d while still storing the missing status, so no order could ever reach it and points were never awarded automatically, with nothing on screen to explain why. The saved status is now kept in the list and labelled \u201c(status no longer registered)\u201d, with a warning that a valid status needs to be chosen, and the order edit screen reports the same problem.<\/li>\n\n\n\n<li>Fix: The \u201cPotential Points\u201d figure on the order edit screen now matches the points the order will actually earn. It was worked out from the order&#8217;s spend alone, so it left out the \u201cMaximum points per order\u201d and \u201cMaximum percentage of total\u201d limits, the customer&#8217;s level multiplier, fixed points tiers and any conditional rules: on a store that caps orders at 100 points, a 300.00 order announced 300 points on the panel and then awarded 100, with nothing to explain the difference. The figure now comes from the same calculation the award itself uses, so what the panel promises is what the customer receives. The \u201cModify\u201d editor still works on the underlying amount, which is the figure those limits are then applied to, and a first order bonus is still added on top rather than being capped along with the order points. The pending points shown on a customer&#8217;s profile are calculated the same way, where they previously left the per-order limits out.<\/li>\n\n\n\n<li>Fix: Orders created by hand in the admin no longer end up fixed at 0 points. The \u201cModify\u201d field in the \u201cReward Points\u201d panel was part of the order form, so every \u201cCreate\u201d or \u201cUpdate\u201d click quietly saved the figure on display as a custom points amount for the order. On the \u201cAdd New Order\u201d screen that figure is 0, because the panel is drawn before any products have been added, so the order was fixed at 0, awarded nothing when it was completed, and the panel reported \u201cNo points earned for this order\u201d. Saving an existing order froze the displayed figure in the same way, so products added afterwards no longer counted, and on a first-time customer the frozen figure included the first order bonus, which was then awarded a second time. A custom amount is now only saved when it has actually been entered in the \u201cModify\u201d editor, which also now opens on the figure it replaces rather than the total including the first order bonus, and the potential points follow the order&#8217;s items otherwise. Orders that already carry a custom amount now show it as \u201cCustom\u201d, with a \u201cReset\u201d button that returns them to the automatic calculation, and a custom amount of 0 is reported in plain terms rather than as an order that earns nothing, so affected orders can be put right and granted with \u201cGrant points now\u201d.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Version 2.2.0 of Simple Points and Rewards is now available! [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/relywp.com\/es\/blog\/update-2-2-0-simple-points-and-rewards\/\">Leer m\u00e1s&#8230;<span class=\"screen-reader-text\"> from Update 2.2.0 \u2013 Simple Points and Rewards: Order Streaks, Admin Redemption, Clearer Order Points<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":44747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[68],"tags":[],"class_list":["post-44741","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plugin-updates"],"acf":[],"_links":{"self":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44741","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/comments?post=44741"}],"version-history":[{"count":4,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44741\/revisions"}],"predecessor-version":[{"id":44751,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44741\/revisions\/44751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/media\/44747"}],"wp:attachment":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/media?parent=44741"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/categories?post=44741"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/tags?post=44741"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}