{"id":44655,"date":"2026-07-29T21:42:36","date_gmt":"2026-07-29T21:42:36","guid":{"rendered":"https:\/\/relywp.com\/?p=44655"},"modified":"2026-07-29T21:49:37","modified_gmt":"2026-07-29T21:49:37","slug":"update-2-1-0-simple-points-and-rewards","status":"publish","type":"post","link":"https:\/\/relywp.com\/es\/blog\/update-2-1-0-simple-points-and-rewards\/","title":{"rendered":"Update 2.1.0 &#8211; Simple Points and Rewards: Subscriptions Support, Improved Analytics, Anti-Fraud, and more!"},"content":{"rendered":"<p>Version 2.1.0 of Simple Points and Rewards is now available!<\/p>\n\n\n\n<p>This release adds full WooCommerce Subscriptions support, a rebuilt Reports &amp; Analytics page, new tools for getting your data in and out of the plugin, anti-fraud controls for the referral system, and a lot of hardening work across the points system itself.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">WooCommerce Subscriptions Support<\/h2>\n\n\n\n<p>Simple Points and Rewards now supports <strong>WooCommerce Subscriptions<\/strong> properly, with a dedicated <strong>Subscriptions<\/strong> settings tab that appears whenever WooCommerce Subscriptions is active.<\/p>\n\n\n\n<p>Points are now reliably awarded on <strong>subscription renewal orders<\/strong>. Previously, renewals only earned points if your award timing was set to &#8220;completed&#8221;, and were skipped on the default timing. A lot of stores were not rewarding renewals at all without realising it.<\/p>\n\n\n\n<p>Renewal orders are created in the background and never reach the &#8220;thank you&#8221; page, so they now have their own award timing option. You can grant renewal points:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Matching your <strong>&#8220;Place an Order&#8221; timing<\/strong> (the default).<\/li>\n\n\n\n<li>When the <strong>renewal payment completes<\/strong>.<\/li>\n\n\n\n<li>When the <strong>renewal order is completed<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Renewal earnings are labelled separately in the points activity log, and refunded or cancelled renewals deduct points as normal.<\/p>\n\n\n\n<p>There are also two new options for the initial subscription purchase:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Include sign-up fees in points calculations<\/strong>, so you can decide whether the sign-up fee counts towards the points earned.<\/li>\n\n\n\n<li><strong>Exclude subscription products from earning points<\/strong>, if you would rather only reward one-off purchases.<\/li>\n<\/ul>\n\n\n\n<p>Both are applied consistently everywhere: order awards, cart and checkout previews, and the points messages on product pages.<\/p>\n\n\n\n<p>A third option, <strong>Count renewal orders toward the Bonus after X Orders milestone<\/strong>, stops automatic renewals from pushing customers through your order-count bonus.<\/p>\n\n\n\n<p>In <strong>PRO<\/strong>, a new <strong>Renewal earning rate<\/strong> option lets you award renewal orders a percentage of the regular points (say 50%), or a fixed number of points per renewal, instead of the full regular rate. Useful if you want to reward the initial sign-up more heavily than the renewals that follow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Rebuilt Reports &amp; Analytics Page<\/h2>\n\n\n\n<p>The admin <strong>Reports &amp; Analytics<\/strong> page has been redesigned to give you a much clearer picture of how your loyalty program is performing.<\/p>\n\n\n\n<p>There is a new <strong>date range dropdown<\/strong> with quick presets: All time, Last 7, 30 or 90 days, Last 12 months, or a custom range.<\/p>\n\n\n\n<p>Un nuevo <strong>Points Trend<\/strong> chart plots points earned against points redeemed over time, switching between daily and monthly resolution depending on the range you pick. It makes it easy to see whether customers are spending the points they earn, or just building up a liability.<\/p>\n\n\n\n<p>Un nuevo <strong>Points Redeemed Per Method<\/strong> section breaks down where points are going: reward redemptions, order refunds and cancellations, points expiry, admin adjustments, referral clawbacks, and prize wheel spin purchases. The existing <strong>Points Earned Per Method<\/strong> boxes now show how many times each method was awarded as well as the total, and the stat boxes sit in a tidier grid of up to five per row.<\/p>\n\n\n\n<p>There are also four new metrics in the overview:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Redemption Rate<\/strong>: the share of earned points that have been redeemed in the selected range.<\/li>\n\n\n\n<li><strong>Points Liability<\/strong>: the monetary value of all points currently in circulation, based on your points redemption rate.<\/li>\n\n\n\n<li><strong>Avg Earned \/ Customer<\/strong>: average points earned per active customer in the range.<\/li>\n\n\n\n<li><strong>Outstanding Vouchers<\/strong>: claimed reward vouchers that have not been used or expired yet, including the combined value of fixed-amount vouchers.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"613\" src=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-1024x613.png\" alt=\"\" class=\"wp-image-44661\" srcset=\"https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-1024x613.png 1024w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-300x180.png 300w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-768x460.png 768w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-1536x919.png 1536w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-2048x1225.png 2048w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-18x12.png 18w, https:\/\/relywp.com\/wp-content\/uploads\/2026\/07\/15e08b565ae15858ef88df15ec9d40e7-360x215.png 360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Importing and Exporting Data<\/h2>\n\n\n\n<p>Three new tools make it easier to work with your loyalty data outside of WordPress.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An <strong>Exportar CSV<\/strong> button on the <strong>Customer Points<\/strong> page downloads every customer&#8217;s points balance and lifetime earned total.<\/li>\n\n\n\n<li>An <strong>Exportar CSV<\/strong> button on the <strong>Registro de actividades por puntos<\/strong> page downloads the full log, and respects whatever filters you have applied at the time (date range, customer, action text, points range and type).<\/li>\n\n\n\n<li>An <strong>Import \/ Export Settings<\/strong> section at the bottom of the settings page downloads every plugin setting as a JSON file, and restores it again.<\/li>\n<\/ul>\n\n\n\n<p>That last one is useful for backups, for staging to live workflows, or for copying a configuration you have already got right onto another store. Imported values go through the same validation and sanitisation as a normal settings save, and any settings missing from the file you import (an older export from a previous version, for example) keep their current values rather than being reset.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Points Value Prefix and Points Icon<\/h2>\n\n\n\n<p>Two new options under the <strong>Points Label<\/strong> settings change how points appear to customers.<\/p>\n\n\n\n<p><strong>Points Value Prefix<\/strong> shows a symbol before every points amount. Set it to <code>$<\/code> and 100 points display as &#8220;$100&#8221;. The prefix is applied everywhere points are shown to customers: the rewards dashboard, the floating rewards widget, product pages, cart, checkout and thank you pages, the Claim Rewards page, points history, and customer emails.<\/p>\n\n\n\n<p><strong>Points Icon<\/strong> shows a small icon next to points values. You can pick one of the bundled icons (coin, dollar, star, gem, trophy or gift) or upload your own image from the WordPress media library. You can also choose whether the icon appears only on prominent amounts, like balances and product or cart totals, or on every points value shown to customers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More Control Over Points Redemption<\/h2>\n\n\n\n<p>Two new PRO options give you finer control over what customers can spend their points on.<\/p>\n\n\n\n<p>Under <strong>Rewards &gt; Advanced Settings<\/strong>, <strong>Exclude products from points redemption<\/strong> y <strong>Exclude product categories from points redemption<\/strong> remove the value of any matching cart items from the cart total used to cap the points discount at checkout. Points can no longer be redeemed against those products, which is handy if you want to keep items in a Sale category out of your points discounts.<\/p>\n\n\n\n<p>Under <strong>Rewards &gt; Points Discount on Checkout &gt; Advanced Settings<\/strong>, a new <strong>Minimum cart total required to redeem points<\/strong> option stops customers paying with points until the cart reaches a certain amount. Below the minimum, the redemption slider and &#8220;Add Discount to Cart&#8221; button are disabled and a short note explains why, on both the cart and the checkout.<\/p>\n\n\n\n<p>Both work alongside the existing <strong>Maximum cart percentage for points redemption<\/strong> limit, and both are enforced server side as well as in the interface. An already applied discount is removed automatically if the cart later drops below the minimum, after removing items for example.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Anti-Fraud Controls for Referrals<\/h2>\n\n\n\n<p>Referrals are the easiest part of any loyalty program to abuse, so there are three new controls under <strong>Earn &gt; Referral System<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Only award referral points for new customers<\/strong> limits the referral bonus to a referred customer&#8217;s first order, so their repeat orders stop rewarding the referrer.<\/li>\n\n\n\n<li><strong>Maximum referral bonuses per referrer per day<\/strong> caps how many referral bonuses one customer can earn each day. Set it to 0 for no limit.<\/li>\n\n\n\n<li><strong>Block referral points when the order IP matches the referrer<\/strong> skips the bonus when a referred order is placed from the same IP address as one of the referrer&#8217;s own recent orders.<\/li>\n<\/ul>\n\n\n\n<p>All three are disabled by default, so nothing changes until you switch them on.<\/p>\n\n\n\n<p>Self-referral blocking has also been strengthened. It now matches a referred order&#8217;s billing email against the referrer&#8217;s account and billing email. Previously only the logged-in account was checked, so a customer could get around it by logging out and checking out as a guest with their own email address.<\/p>\n\n\n\n<p>En <strong>Usage Limitation<\/strong> option for referral gift coupons is now enforced too. Gift coupons were previously always created with unlimited uses regardless of the setting. Each referred customer&#8217;s coupon is now limited to a single use, per email address or per user account, unless &#8220;Unlimited uses&#8221; is selected. The limit applies to gift coupons created before this update as well.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Smarter Conditional Rules<\/h2>\n\n\n\n<p>En <strong>Cesta: Cup\u00f3n aplicado<\/strong> conditional rule condition (PRO) gets two upgrades.<\/p>\n\n\n\n<p>It can now be left <strong>blank to match any applied coupon<\/strong>, rather than requiring you to list specific coupon codes. Pair that with the &#8220;Hide\/Disable&#8221; action and you can award no order points on any coupon order. Entering one or more codes still targets only those coupons, as before.<\/p>\n\n\n\n<p>It also has new <strong>Coupon Types<\/strong> checkboxes, so you can choose which types of coupon count towards the condition: <strong>Regular WooCommerce Coupons<\/strong>, <strong>Points Voucher Coupons<\/strong> (including Prize Wheel vouchers) and <strong>Points Referral Coupons<\/strong>. All three are enabled by default, so existing rules behave the same.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Multipliers That Apply Everywhere<\/h2>\n\n\n\n<p>Level points multipliers had a fairly significant gap: they were only ever applied to order-based earning. Daily login, login streak, birthday, signup, review, first order, bonus after X orders, referral and social sharing points all ignored the level multiplier completely. That has been fixed, and the level multiplier (along with any per-earn-type multipliers) now applies to every bonus way to earn.<\/p>\n\n\n\n<p>En <strong>Use different multipliers per earn type<\/strong> option under Levels &amp; Badges now covers everything too, including <strong>Product Offers &amp; Bonuses<\/strong>, the <strong>Daily Prize Wheel<\/strong>, and any developer-registered <strong>Custom Ways to Earn<\/strong>, so each can have its own multiplier.<\/p>\n\n\n\n<p>En <strong>Potential Points<\/strong> figures are more honest as a result. The admin order meta box, the pending points on the customer detail page and the thank you page projections now all use the same final points calculation as the actual award, so level multipliers, earning caps, conditional rules and subscription renewal rates are reflected before the points are granted.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">More Reliable Background Tasks<\/h2>\n\n\n\n<p>The plugin&#8217;s scheduled background tasks (delayed points, points inactivity expiry, birthday bonuses, guest reminder emails, and expired coupon and voucher cleanup) have moved from WP-Cron to <strong>Action Scheduler<\/strong>, which ships with WooCommerce.<\/p>\n\n\n\n<p>WP-Cron only runs when someone visits your site, which makes it unreliable on quiet stores and prone to overlapping runs on busy ones. Action Scheduler is far more dependable, and you can now monitor all of these tasks under <strong>WooCommerce &gt; Status &gt; Scheduled Actions<\/strong>. Existing scheduled events are migrated automatically when you update, the plugin falls back to WP-Cron if Action Scheduler is ever unavailable, and everything is cleared cleanly on deactivation.<\/p>\n\n\n\n<p>Several tasks have been given proper batching as well:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Points inactivity expiry<\/strong> y <strong>guest reminder emails<\/strong> now process customers in batches that continue until they are finished, instead of trying to handle everyone in a single run. That prevents timeouts and memory issues on stores with very large customer bases.<\/li>\n\n\n\n<li><strong>Delayed points<\/strong> are no longer capped at 25 releases per hour. Due points are released in continuing batches until the backlog is clear, so stores awarding a high volume of delayed points no longer build up a growing queue.<\/li>\n\n\n\n<li><strong>Expired reward voucher coupons<\/strong> are deleted on a daily schedule when &#8220;Auto Delete Expired&#8221; is enabled, instead of only being cleaned up when you happen to open the Reward Vouchers page.<\/li>\n<\/ul>\n\n\n\n<p>There is a decent performance win in here too. The floating rewards widget no longer loads the Font Awesome icon library on every page of your site. The widget button&#8217;s icon is now a lightweight inline SVG, and the icon library only loads when a customer opens the widget, which removes a large render-blocking stylesheet and font download from every page load.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A Tidier Settings Layout<\/h2>\n\n\n\n<p>En <strong>Configuraci\u00f3n general<\/strong> tab was getting crowded, so it has been split into three: <strong>Points Label<\/strong> (rewards and points labels, value prefix and points icon), <strong>Product Pages<\/strong> (points messages on product pages and category or shop listings) and <strong>Terms and Conditions<\/strong>.<\/p>\n\n\n\n<p>The &#8220;Settings&#8221; buttons for voucher expiry and auto-delete on the PRO Features tab now jump straight to the <strong>Points Expiry<\/strong> tab where those settings live.<\/p>\n\n\n\n<p>En <strong>Rueda de premios<\/strong> prizes settings have a new <strong>Color<\/strong> column too, so each prize&#8217;s panel colour on the wheel can be customised. Colours default to the wheel&#8217;s existing palette, so existing wheels look the same as before.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Lista de cambios completa<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>New: Added WooCommerce Subscriptions support with a dedicated &#8220;Subscriptions&#8221; settings tab that appears when WooCommerce Subscriptions is active. Points are now reliably awarded on subscription renewal orders \u2014 previously, renewals only earned points when the award timing was set to &#8220;completed&#8221; and were silently skipped on the default timing. Because renewal orders are created in the background and never reach the &#8220;thank you&#8221; page, a dedicated award timing option controls when renewal points are granted: matching your &#8220;Place an Order&#8221; timing (default), when the renewal payment completes, or when the renewal order is completed. Renewal earnings are labelled separately in the points activity log, and refunded or cancelled renewals deduct points as normal.<\/li>\n\n\n\n<li>New: (PRO) Added a &#8220;Renewal earning rate&#8221; option to the Subscriptions settings, to award renewal orders a percentage of the regular points (e.g. 50%) or a fixed number of points per renewal, instead of the full regular rate.<\/li>\n\n\n\n<li>New: Added &#8220;Include sign-up fees in points calculations&#8221; and &#8220;Exclude subscription products from earning points&#8221; options for initial subscription purchases. Both are applied consistently across order awards, cart\/checkout previews, and product page points messages.<\/li>\n\n\n\n<li>New: Added a &#8220;Count renewal orders toward the Bonus after X Orders milestone&#8221; option, so automatic subscription renewals can be excluded from order-count bonuses (the &#8220;Bonus after X Orders&#8221; earning method itself is a PRO feature).<\/li>\n\n\n\n<li>New: Added a &#8220;Points Value Prefix&#8221; option under the Points Label settings tab, letting you show a symbol before every points amount (for example a &#8220;$&#8221; so 100 points display as &#8220;$100&#8221;). The prefix is applied everywhere points are shown to customers, including the rewards dashboard, floating rewards widget, product pages, cart, checkout and thank you pages, the Claim Rewards page, points history and customer emails.<\/li>\n\n\n\n<li>New: Added a &#8220;Points Icon&#8221; option under the Points Label settings tab to show a small icon next to points values. Choose from the bundled icons (coin, dollar, star, gem, trophy or gift) or upload your own image from the WordPress media library, and choose whether the icon appears only on prominent amounts (balances and product\/cart totals) or on every points value shown to customers.<\/li>\n\n\n\n<li>New: (PRO) The &#8220;Use different multipliers per earn type&#8221; option under Levels &amp; Badges now includes every way to earn, including the &#8220;Product Offers &amp; Bonuses&#8221;, &#8220;Daily Prize Wheel&#8221; and any developer-registered &#8220;Custom Ways to Earn&#8221;, so each can have its own multiplier.<\/li>\n\n\n\n<li>New: (PRO) The &#8220;Cart: Coupon Applied&#8221; conditional rule condition can now be left blank to match ANY applied coupon, instead of requiring specific coupon codes. This makes it easy to reduce or disable points whenever a customer uses any discount voucher (for example, pair it with the &#8220;Hide\/Disable&#8221; action to award no order points on any coupon order). Entering one or more codes still targets only those coupons as before.<\/li>\n\n\n\n<li>New: (PRO) The &#8220;Cart: Coupon Applied&#8221; conditional rule condition now includes &#8220;Coupon Types&#8221; checkboxes, letting you choose which coupon types count for the condition: &#8220;Regular WooCommerce Coupons&#8221;, &#8220;Points Voucher Coupons&#8221; (including Prize Wheel vouchers) and &#8220;Points Referral Coupons&#8221;. All types are enabled by default, so existing rules are unchanged.<\/li>\n\n\n\n<li>New: (PRO) Added a &#8220;Color&#8221; column to the Prize Wheel prizes settings, allowing each prize&#8217;s panel colour on the wheel to be customised. Colours default to the wheel&#8217;s existing palette, so existing wheels are unchanged.<\/li>\n\n\n\n<li>New: (PRO) Added &#8220;Exclude products from points redemption&#8221; and &#8220;Exclude product categories from points redemption&#8221; options under Rewards > Advanced Settings. The value of any matching cart items is removed from the cart total used to cap the points discount at checkout, so points can no longer be redeemed against those products (for example, items in a Sale category). Works alongside the existing &#8220;Maximum cart percentage for points redemption&#8221; limit, and is enforced on both the redemption slider and server-side.<\/li>\n\n\n\n<li>New: (PRO) Added a &#8220;Minimum cart total required to redeem points&#8221; option under Rewards > Points Discount on Checkout > Advanced Settings. Customers cannot pay with points until the cart reaches this amount. When the cart is below the minimum, the redemption slider and &#8220;Add Discount to Cart&#8221; button are disabled and an explanatory note is shown beneath the tool on the cart and checkout. The requirement is enforced server-side too, so an already-applied discount is automatically removed if the cart later drops below the minimum (for example, after removing items). Works alongside the existing &#8220;Maximum cart percentage for points redemption&#8221; limit. Set to 0 for no minimum.<\/li>\n\n\n\n<li>New: Redesigned the admin &#8220;Reports &amp; Analytics&#8221; page. Added a date range dropdown with quick presets (All time, Last 7\/30\/90 days, Last 12 months, or a custom range), a new &#8220;Points Trend&#8221; chart showing points earned vs redeemed over time (daily for shorter ranges, monthly for longer ones), and a new &#8220;Points Redeemed Per Method&#8221; section breaking down where points are being spent or deducted (reward redemptions, order refunds\/cancellations, points expiry, admin adjustments, referral clawbacks and prize wheel spin purchases). The &#8220;Points Earned Per Method&#8221; boxes now also show how many times each method was awarded, and the stat boxes are laid out in a tidier grid of up to five per row.<\/li>\n\n\n\n<li>New: Added new metrics to the &#8220;Reports &amp; Analytics&#8221; overview: &#8220;Redemption Rate&#8221; (the share of earned points that have been redeemed in the selected range), &#8220;Points Liability&#8221; (the monetary value of all points currently in circulation, calculated from your points redemption rate), &#8220;Avg Earned \/ Customer&#8221; (average points earned per active customer in the range) and &#8220;Outstanding Vouchers&#8221; (claimed reward vouchers that have not been used or expired yet, including the combined value of fixed-amount vouchers).<\/li>\n\n\n\n<li>New: Added an &#8220;Export CSV&#8221; button to the &#8220;Customer Points&#8221; admin page, allowing every customer&#8217;s points balance and lifetime earned total to be downloaded as a CSV file.<\/li>\n\n\n\n<li>New: Added an &#8220;Export CSV&#8221; button to the &#8220;Points Activity Log&#8221; admin page, allowing the points activity log to be downloaded as a CSV file. The download respects any filters currently applied to the log (date range, customer, action text, points range and type).<\/li>\n\n\n\n<li>New: Added an &#8220;Import \/ Export Settings&#8221; section to the bottom of the plugin settings page. &#8220;Export Settings&#8221; downloads every plugin setting as a JSON file, for backups or for copying your configuration to another site, and &#8220;Import Settings&#8221; restores a previously exported file. Imported values pass through the same validation and sanitisation as a normal settings save, and any settings not present in an imported file (for example an older export from a previous version) keep their current values rather than being reset.<\/li>\n\n\n\n<li>New: Added anti-fraud controls to the referral system under Earn > Referral System. &#8220;Only award referral points for new customers&#8221; limits the referral bonus to a referred customer&#8217;s first order, so their repeat orders no longer keep rewarding the referrer. &#8220;Maximum referral bonuses per referrer per day&#8221; caps how many referral bonuses one customer can earn each day (set to 0 for no limit). An optional &#8220;Block referral points when the order IP matches the referrer&#8221; check skips the bonus when a referred order is placed from the same IP address as one of the referrer&#8217;s own recent orders. All three are disabled by default so existing behaviour is unchanged.<\/li>\n\n\n\n<li>New: (PRO) Expired reward voucher coupons are now automatically deleted on a daily schedule when &#8220;Auto Delete Expired&#8221; is enabled, instead of only being removed when the Reward Vouchers admin page is opened.<\/li>\n\n\n\n<li>Tweak: The &#8220;Potential Points&#8221; in the admin order meta box, the customer detail page pending points, and the order &#8220;thank you&#8221; page projections now use the same final points calculation as the actual award, so level multipliers, earning caps, conditional rules and subscription renewal rates are all reflected consistently before points are granted.<\/li>\n\n\n\n<li>Tweak: Split the &#8220;General Settings&#8221; tab in the plugin settings into three dedicated tabs for easier navigation: &#8220;Points Label&#8221; (rewards\/points labels, value prefix and points icon), &#8220;Product Pages&#8221; (points messages on product pages and category\/shop listings) and &#8220;Terms and Conditions&#8221;. The &#8220;Settings&#8221; buttons for the voucher expiry and auto-delete features on the PRO Features tab now also open the &#8220;Points Expiry&#8221; tab where those settings live.<\/li>\n\n\n\n<li>Tweak: (PRO) Moved the plugin&#8217;s scheduled background tasks \u2014 delayed points, points inactivity expiry, birthday bonuses, guest reminder emails and expired coupon\/voucher cleanup \u2014 from WordPress cron (WP-Cron) to Action Scheduler, which is bundled with WooCommerce. This makes these tasks more reliable and lets you monitor them under WooCommerce > Status > Scheduled Actions. Existing scheduled events are migrated automatically when you update, the plugin falls back to WP-Cron if Action Scheduler is ever unavailable, and all scheduled tasks are cleared cleanly when the plugin is deactivated.<\/li>\n\n\n\n<li>Tweak: (PRO) Points inactivity expiry and guest reminder emails now process customers in batches that continue until finished, instead of handling everyone in a single run, preventing timeouts or memory issues on stores with very large customer bases.<\/li>\n\n\n\n<li>Tweak: (PRO) The floating rewards widget no longer loads the Font Awesome icon library on every page of your site. The widget button&#8217;s icon is now rendered as a lightweight inline SVG, and the icon library is only loaded when a customer opens the widget, removing a large render-blocking stylesheet and font download for faster page loads.<\/li>\n\n\n\n<li>Fix: (PRO) The &#8220;Bonus after X Orders&#8221; milestone now detects WooCommerce High-Performance Order Storage correctly. Previously, stores still using legacy (posts) order storage on modern WooCommerce counted orders from the empty HPOS table, so the milestone could never be reached.<\/li>\n\n\n\n<li>Fix: (PRO) The level points multiplier (and any per-earn-type multipliers) is now correctly applied to all bonus ways to earn. Previously it was only applied to order-based earning, so daily login, login streak, birthday, signup, review, first order, bonus after X orders, referral and social sharing points ignored the level multiplier.<\/li>\n\n\n\n<li>Fix: (PRO) The birthday date entered on the rewards dashboard is no longer shifted back a day (e.g. saved as October 7th but shown as October 6th) on stores whose timezone is behind UTC. The date is now stored and displayed exactly as entered, regardless of the site timezone.<\/li>\n\n\n\n<li>Fix: Hardened all points balance changes against concurrent requests. Balances are now updated atomically at the database level, and reward redemptions, order point awards\/deductions, checkout points discounts, prize wheel spins, spin purchases and social share rewards are serialised, so double-clicks or simultaneous requests can no longer double-spend or double-award points. Manual balance edits on a user&#8217;s profile page are now also recorded in the Points Activity Log.<\/li>\n\n\n\n<li>Fix: Points redeemed as a discount at checkout are now re-checked against the customer&#8217;s current balance both when the discount is applied and when the order is placed. Previously, if the balance no longer covered the points (for example after redeeming those same points for another reward first), the order could still keep the full points discount without the points actually being deducted. The discount is now automatically removed when the points are no longer available, and the checkout deduction refuses rather than reducing to zero, so points can never be spent twice.<\/li>\n\n\n\n<li>Fix: Hardened the referral points award and refund deduction against concurrent requests, so simultaneous order status changes or refund events can no longer award or deduct referral points twice for the same order.<\/li>\n\n\n\n<li>Fix: Strengthened self-referral blocking so it also matches a referred order&#8217;s billing email against the referrer&#8217;s account and billing email. Previously only the logged-in account was checked, so a customer could bypass it by logging out or checking out as a guest with their own email.<\/li>\n\n\n\n<li>Fix: (PRO) The &#8220;Usage Limitation&#8221; option for referral gift coupons is now enforced. Previously gift coupons were always created with unlimited uses regardless of the setting; each referred customer&#8217;s coupon is now limited to a single use (per email address or per user account) unless &#8220;Unlimited uses&#8221; is selected. The limit also applies to gift coupons created before this update.<\/li>\n\n\n\n<li>Fix: Corrected the referrer&#8217;s &#8220;successful referrals&#8221; count being increased more than once for a single coupon-based referral (and when a referred order was later refunded).<\/li>\n\n\n\n<li>Fix: The checkout\/cart rewards box points summary tooltip now shows on the cart page too, not just the checkout page. Previously the summary breakdown was only built on the checkout page, so the tooltip never appeared on the cart even when &#8220;Show points summary&#8221; was enabled.<\/li>\n\n\n\n<li>Fix: (PRO) Delayed points are no longer capped at 25 releases per hour. Due points are now released in continuing batches until the backlog is cleared, so stores that award a large volume of delayed points no longer build up an ever-growing queue of unreleased points.<\/li>\n\n\n\n<li>Fix: (PRO) Opening the &#8220;Reward Vouchers&#8221; or &#8220;Referral Gift Coupons&#8221; admin pages with &#8220;Auto Delete Expired&#8221; enabled could delete vouchers or coupons that had not actually expired yet, because their expiry date was misread. Expiry dates are now read correctly, so only genuinely expired vouchers and coupons are removed.<\/li>\n\n\n\n<li>Fix: (PRO) The &#8220;View Products&#8221; button on the &#8220;Write a Review&#8221; card of the rewards dashboard did nothing when clicked on some sites. The dashboard&#8217;s scripts and stylesheets were being served with a fixed version number that never changed between plugin updates, so browsers, CDNs and caching plugins kept serving an older cached copy from before the button existed. Every plugin script and stylesheet is now versioned with the plugin version, so updated files are always picked up straight after an update \u2014 this also fixes any other feature that appeared to be missing or unresponsive because an outdated file was still cached.<\/li>\n\n\n\n<li>Fix: (PRO) The list of products inside the &#8220;Products to Review&#8221; popup lost its list formatting on the My Account rewards dashboard (it was unaffected on pages using the rewards shortcode). The popup&#8217;s screen reader labelling was also being stripped out. The dashboard&#8217;s HTML filtering now allows list markup and accessibility attributes through, so the popup displays correctly and is announced properly by assistive technology.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Version 2.1.0 of Simple Points and Rewards is now available! This release adds full WooCommerce Subscriptions support, a rebuilt Reports &amp; Analytics page, new tools for getting your data in and out of the plugin, anti-fraud controls for the referral system, and a lot of hardening work across the points system itself. WooCommerce Subscriptions Support [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"https:\/\/relywp.com\/es\/blog\/update-2-1-0-simple-points-and-rewards\/\">Leer m\u00e1s&#8230;<span class=\"screen-reader-text\"> from Update 2.1.0 &#8211; Simple Points and Rewards: Subscriptions Support, Improved Analytics, Anti-Fraud, and more!<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":44661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-44655","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44655","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=44655"}],"version-history":[{"count":7,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44655\/revisions"}],"predecessor-version":[{"id":44664,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/posts\/44655\/revisions\/44664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/media\/44661"}],"wp:attachment":[{"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/media?parent=44655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/categories?post=44655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/relywp.com\/es\/wp-json\/wp\/v2\/tags?post=44655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}