{"id":283877,"date":"2026-04-26T16:38:39","date_gmt":"2026-04-26T16:38:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/neogrow-loyalty-points-photo-reviews-ugc-for-woocommerce\/"},"modified":"2026-08-25T09:44:16","modified_gmt":"2026-08-25T09:44:16","slug":"neogrow-loyalty","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/neogrow-loyalty\/","author":13929224,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"NeoGrow: Loyalty Points, Photo Reviews & UGC for WooCommerce","header_author":"MT Pamir","header_description":"Turn your store into a retention engine. Reward customers with points for purchases and photo reviews, redeemable for discounts at checkout.","assets_banners_color":"141129","last_updated":"2026-08-25 09:44:16","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/neogrow-loyalty\/","header_author_uri":"https:\/\/profiles.wordpress.org\/mtpamir\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":409,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mtpamir","date":"2026-04-26 16:38:15"},"1.0.1":{"tag":"1.0.1","author":"mtpamir","date":"2026-05-06 08:17:42"},"1.0.2":{"tag":"1.0.2","author":"mtpamir","date":"2026-05-06 08:17:42"},"1.0.3":{"tag":"1.0.3","author":"mtpamir","date":"2026-05-19 13:21:42"},"1.1.0":{"tag":"1.1.0","author":"mtpamir","date":"2026-08-18 08:24:56"},"1.2.0":{"tag":"1.2.0","author":"mtpamir","date":"2026-08-25 09:44:16"}},"upgrade_notice":{"1.2.0":"<p>Two corrections change how many points new orders award. Points are now calculated on the order subtotal, as documented, so tax and shipping no longer earn. Multi-currency stores were also calculating in the wrong currency. Balances are untouched. NeoGrow has moved to Marketing &gt; NeoGrow.<\/p>","1.1.0":"<p>Important security and billing fix. Review photo uploads now require a logged-in user, and points are no longer over-deducted when more points are redeemed than the cart is worth. Update as soon as possible.<\/p>","1.0.1":"<ul>\n<li>New: Added 500 bonus points for admin first-install. Improved WooCommerce Blocks (Cart\/Checkout) compatibility.<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3515874,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3515874,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.gif":{"filename":"banner-1544x500.gif","revision":3515874,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.gif":{"filename":"banner-772x250.gif","revision":3515874,"resolution":"772x250","location":"assets","locale":"","width":800,"height":259}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.1.0","1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3515874,"resolution":"1","location":"assets","locale":"","width":1200,"height":675},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3515874,"resolution":"10","location":"assets","locale":"","width":1070,"height":731},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3515874,"resolution":"11","location":"assets","locale":"","width":1836,"height":1037},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3515874,"resolution":"12","location":"assets","locale":"","width":1876,"height":1063},"screenshot-13.png":{"filename":"screenshot-13.png","revision":3515874,"resolution":"13","location":"assets","locale":"","width":1894,"height":1038},"screenshot-14.png":{"filename":"screenshot-14.png","revision":3515874,"resolution":"14","location":"assets","locale":"","width":1746,"height":960},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3515874,"resolution":"2","location":"assets","locale":"","width":1688,"height":1029},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3515874,"resolution":"3","location":"assets","locale":"","width":1690,"height":1030},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3515874,"resolution":"4","location":"assets","locale":"","width":1693,"height":1033},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3515874,"resolution":"5","location":"assets","locale":"","width":1200,"height":675},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3515874,"resolution":"6","location":"assets","locale":"","width":1675,"height":981},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3515874,"resolution":"7","location":"assets","locale":"","width":1515,"height":861},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3515874,"resolution":"8","location":"assets","locale":"","width":1200,"height":675},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3515874,"resolution":"9","location":"assets","locale":"","width":1727,"height":911}},"screenshots":{"1":"<strong>Growth Dashboard<\/strong> - Visualize your points economy and retention trends.","2":"<strong>Setup Wizard<\/strong> - 2-minute onboarding to get your program live.","3":"<strong>Point Value Settings<\/strong> - Define your earning and redemption rates.","4":"<strong>Review Reward Rules<\/strong> - Incentivize photos with higher point rewards.","5":"<strong>Branding &amp; Design<\/strong> - Match the plugin's UI to your store's colors.","6":"<strong>Admin Settings<\/strong> - Fine-tune your loyalty program configuration and global rules.","7":"<strong>Manual Points Adjustment<\/strong> - Easily add or subtract points with log notes.","8":"<strong>Global Transaction Log<\/strong> - Full audit trail of every point movement.","9":"<strong>Product Page Nudge<\/strong> - Display potential earnings to drive conversion.","10":"<strong>Frictionless Review Form<\/strong> - Integrated \"Upload Photo\" button in your theme.","11":"<strong>Visual Social Proof<\/strong> - Customer photos displayed neatly below reviews.","12":"<strong>Photo Lightbox Overlay<\/strong> - High-resolution gallery display for UGC.","13":"<strong>Customer Points Hub<\/strong> - Points balance and history in \"My Account\".","14":"<strong>Checkout Redemption<\/strong> - AJAX-powered redemption form for instant discounts."}},"plugin_section":[],"plugin_tags":[29663,149759,73290,14449,286],"plugin_category":[45],"plugin_contributors":[245346],"plugin_business_model":[],"class_list":["post-283877","plugin","type-plugin","status-publish","hentry","plugin_tags-loyalty-program","plugin_tags-photo-reviews","plugin_tags-points-and-rewards","plugin_tags-ugc","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-mtpamir","plugin_committers-mtpamir"],"banners":{"banner":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/banner-772x250.gif?rev=3515874","banner_2x":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/banner-1544x500.gif?rev=3515874","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/icon-128x128.gif?rev=3515874","icon_2x":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/icon-256x256.gif?rev=3515874","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-1.jpg?rev=3515874","caption":"<strong>Growth Dashboard<\/strong> - Visualize your points economy and retention trends."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-2.png?rev=3515874","caption":"<strong>Setup Wizard<\/strong> - 2-minute onboarding to get your program live."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-3.png?rev=3515874","caption":"<strong>Point Value Settings<\/strong> - Define your earning and redemption rates."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-4.png?rev=3515874","caption":"<strong>Review Reward Rules<\/strong> - Incentivize photos with higher point rewards."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-5.jpg?rev=3515874","caption":"<strong>Branding &amp; Design<\/strong> - Match the plugin's UI to your store's colors."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-6.jpg?rev=3515874","caption":"<strong>Admin Settings<\/strong> - Fine-tune your loyalty program configuration and global rules."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-7.png?rev=3515874","caption":"<strong>Manual Points Adjustment<\/strong> - Easily add or subtract points with log notes."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-8.jpg?rev=3515874","caption":"<strong>Global Transaction Log<\/strong> - Full audit trail of every point movement."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-9.png?rev=3515874","caption":"<strong>Product Page Nudge<\/strong> - Display potential earnings to drive conversion."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-10.png?rev=3515874","caption":"<strong>Frictionless Review Form<\/strong> - Integrated \"Upload Photo\" button in your theme."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-11.png?rev=3515874","caption":"<strong>Visual Social Proof<\/strong> - Customer photos displayed neatly below reviews."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-12.png?rev=3515874","caption":"<strong>Photo Lightbox Overlay<\/strong> - High-resolution gallery display for UGC."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-13.png?rev=3515874","caption":"<strong>Customer Points Hub<\/strong> - Points balance and history in \"My Account\"."},{"src":"https:\/\/ps.w.org\/neogrow-loyalty\/assets\/screenshot-14.png?rev=3515874","caption":"<strong>Checkout Redemption<\/strong> - AJAX-powered redemption form for instant discounts."}],"raw_content":"<!--section=description-->\n<p><strong>NeoGrow is a loyalty points and photo reviews plugin for WooCommerce.<\/strong><\/p>\n\n<p>This plugin combines a Loyalty Points System with Photo Reviews (User Generated Content). It allows you to create a rewards program and collect customer photo reviews directly from your WordPress dashboard.<\/p>\n\n<p>NeoGrow includes points for purchases, automated point expiry, and points for photo reviews.<\/p>\n\n<p>https:\/\/youtu.be\/Oq2QNXUuZS4<\/p>\n\n<h3>Core Features<\/h3>\n\n<p><strong>1. Loyalty Points Engine<\/strong>\nDrive repeat sales by automatically rewarding customers for purchases.\n* <strong>Points for Purchases:<\/strong> Award points based on the amount spent (e.g., Earn 1 Point for every $1 spent).\n* <strong>Point Redemption:<\/strong> Customers can redeem their points for discounts directly at the Checkout or Cart page.\n* <strong>Automated Expiry (FIFO):<\/strong> Set points to expire automatically after a set period (e.g., 6 Months).\n* <strong>My Account Integration:<\/strong> Customers can track their live balance and full Transaction History inside their account dashboard.\n* <strong>Correct on Multi-Currency Stores:<\/strong> Points are always calculated against your store's base currency, so the same basket earns the same points whatever currency the customer paid in, and redemption discounts are shown in the currency they are browsing. WooPayments, CURCY and FOX are supported with no configuration; other switchers connect through two documented filters. If a switcher is converting prices and NeoGrow cannot read its rate, it tells you rather than calculating quietly with the wrong one.\n* <strong>HPOS Ready:<\/strong> Fully compatible with WooCommerce High-Performance Order Storage for maximum speed.<\/p>\n\n<p><strong>2. Viral Photo Reviews (UGC)<\/strong>\nBoost conversion rates by incentivizing customers to upload real photos of your products.\n* <strong>Incentivized Uploads:<\/strong> Configure bonus points for photo reviews vs standard text reviews.\n* <strong>Visual Social Proof:<\/strong> Display customer photos in a beautiful, native lightbox overlay on product pages.\n* <strong>Seamless Moderation:<\/strong> Approve or reject reviews directly from the standard WordPress\/WooCommerce comments queue.\n* <strong>Frictionless Form:<\/strong> A clean \"Upload Photo\" button is automatically injected into your theme's existing review form.<\/p>\n\n<p><strong>3. Analytics &amp; Branding<\/strong>\n* <strong>Growth Dashboard:<\/strong> Real-time analytics showing Points Issued, Points Redeemed, and UGC performance trends.\n* <strong>Branding Settings:<\/strong> Customize the core color palette (Primary &amp; Success colors) to match your store's identity.\n* <strong>Audit Trail:<\/strong> A global Points Log keeps a permanent record of every point movement (expiry, earn, spend, or manual adjustment).<\/p>\n\n<h3>Documentation<\/h3>\n\n<p>For detailed setup guides, shortcode lists, and advanced configuration, please visit our official documentation:\n<a href=\"https:\/\/neoplugin.com\/docs\/\">Documentation<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to any external service during normal operation. Your store data, points ledger and review photos never leave your server.<\/p>\n\n<p>There is exactly one optional exception:<\/p>\n\n<p><strong>Deactivation feedback survey (neoplugin.com)<\/strong><\/p>\n\n<p>When you deactivate this plugin from the Plugins screen, a short survey asks why. It is entirely optional \u2014 \"Skip &amp; Deactivate\" and \"Cancel\" send nothing, and selecting \"It's only temporary \/ troubleshooting\" sends nothing.<\/p>\n\n<p>If you choose to submit the survey, your answer is sent from your server to <code>https:\/\/neoplugin.com\/neo-deactivation\/receiver.php<\/code>. The request is made by your site, not by your browser.<\/p>\n\n<ul>\n<li><strong>Always sent when you submit:<\/strong> the plugin slug, the plugin version, the reason you selected, and any free-text comment you typed.<\/li>\n<li><strong>Only sent if you tick the consent box<\/strong> (unticked by default): your site URL, WordPress version, PHP version, WooCommerce version, whether HPOS is enabled, your active theme name, the folder names of your active plugins, your site locale, and the number of days the plugin has been installed.<\/li>\n<\/ul>\n\n<p>No personal data about your customers, no order data and no points data are ever transmitted.<\/p>\n\n<p>This service is provided by NeoPlugin. Terms: https:\/\/neoplugin.com\/terms\/ \u2014 Privacy policy: https:\/\/neoplugin.com\/privacy-policy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/neogrow-loyalty<\/code> directory, or install through the WordPress plugins screen.<\/li>\n<li>Activate the plugin. You will be redirected to the <strong>Setup Wizard<\/strong>.<\/li>\n<li>Follow the 2-minute wizard to set your point values and review rewards.<\/li>\n<li>Navigate to <strong>Marketing &gt; NeoGrow<\/strong> to fine-tune your configuration or design.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20is%20the%20neogrow%20menu%3F\"><h3>Where is the NeoGrow menu?<\/h3><\/dt>\n<dd><p>NeoGrow lives under <strong>Marketing &gt; NeoGrow<\/strong>, alongside WooCommerce's own marketing tools. If the WooCommerce Marketing menu is disabled on your site, it appears under <strong>WooCommerce &gt; NeoGrow<\/strong> instead. Direct links to <code>admin.php?page=neogrow<\/code> keep working either way.<\/p><\/dd>\n<dt id=\"how%20does%20neogrow%20affect%20my%20site%20speed%3F\"><h3>How does NeoGrow affect my site speed?<\/h3><\/dt>\n<dd><p>NeoGrow is built for scale. It uses an optimized custom database table (wp_neogrow_points) to handle point calculations, so even with thousands of active customers your checkout remains snappy and your server resources stay low.<\/p><\/dd>\n<dt id=\"does%20neogrow%20work%20with%20the%20cart%20and%20checkout%20blocks%3F\"><h3>Does NeoGrow work with the Cart and Checkout blocks?<\/h3><\/dt>\n<dd><p>Yes. The redemption panel appears automatically in both the block-based Cart and Checkout and the classic shortcode versions, with no setup needed. Points are applied through the WooCommerce Store API, so the order totals update live without a page reload.<\/p>\n\n<p>The [neogrow_cart_redemption] shortcode is still available if you want to place the form somewhere else, such as a custom landing page.<\/p><\/dd>\n<dt id=\"why%20is%20the%20redemption%20form%20hidden%20for%20some%20users%3F\"><h3>Why is the redemption form hidden for some users?<\/h3><\/dt>\n<dd><p>To maintain a clean and high-converting checkout experience, NeoGrow intelligently hides the redemption form if:<\/p>\n\n<ul>\n<li>The user is a Guest (not logged in).<\/li>\n<li>The user has a 0 point balance.\nWe believe in showing users only the actions they can actually take.<\/li>\n<\/ul><\/dd>\n<dt id=\"can%20i%20customize%20the%20look%20of%20the%20%22redeem%22%20form%3F\"><h3>Can I customize the look of the \"Redeem\" form?<\/h3><\/dt>\n<dd><p>Absolutely. NeoGrow is designed to inherit your theme's styling for buttons and inputs automatically. If you need more granular control, the form is wrapped in unique CSS classes (.neogrow-redemption-wrap), allowing you to apply custom styles without editing core files.<\/p><\/dd>\n<dt id=\"points%20weren%27t%20awarded%20after%20a%20purchase%21\"><h3>Points weren't awarded after a purchase!<\/h3><\/dt>\n<dd><p>Please verify three things:<\/p>\n\n<ul>\n<li>Is the Order Status set to Completed? (Points are issued upon successful completion).<\/li>\n<li>Was the user logged in during checkout? (Guest checkouts cannot track point history).<\/li>\n<li>Have you saved your settings? Ensure you\u2019ve clicked \"Save\" in the NeoGrow dashboard at least once to initialize the engine.<\/li>\n<\/ul><\/dd>\n<dt id=\"images%20aren%27t%20uploading%20to%20reviews%21\"><h3>Images aren't uploading to reviews!<\/h3><\/dt>\n<dd><p>Ensure your <code>\/wp-content\/uploads\/<\/code> directory is writable. Also, check that the image size doesn't exceed your server's maximum upload limit.<\/p><\/dd>\n<dt id=\"why%20don%27t%20my%20dashboard%20stats%20update%20immediately%3F\"><h3>Why don't my dashboard stats update immediately?<\/h3><\/dt>\n<dd><p>To ensure high performance, NeoGrow caches dashboard statistics for <strong>one hour<\/strong>. Your live points data is safe; the analytics just take a moment to refresh.<\/p><\/dd>\n<dt id=\"does%20neogrow%20count%20my%20past%20reviews%20or%20orders%3F\"><h3>Does NeoGrow count my past reviews or orders?<\/h3><\/dt>\n<dd><p>No. NeoGrow starts tracking from the moment it is activated. It is not retroactive. You can use the \"Manual Adjustment\" feature to reward long-time customers if needed.<\/p><\/dd>\n<dt id=\"are%20shipping%2Ftaxes%20included%20in%20points%3F\"><h3>Are Shipping\/Taxes included in points?<\/h3><\/dt>\n<dd><p>No. Points are calculated on the order <strong>subtotal<\/strong> \u2014 the value of the products themselves \u2014 so tax, shipping and fees never earn points. Sale prices are already reflected in the subtotal. Coupon discounts are not, so a coupon does not reduce what a customer earns; the <code>neogrow_earn_base_amount<\/code> filter lets you change that if you would rather it did.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20refund%20an%20order%3F\"><h3>What happens if I refund an order?<\/h3><\/dt>\n<dd><p>Points are not adjusted automatically. Go to <strong>Users &gt; Edit User<\/strong> to add or remove points by hand, with a reason recorded in the Points Log. Automatic adjustment on refund and cancellation is available in NeoGrow Pro.<\/p><\/dd>\n<dt id=\"do%20points%20expire%3F\"><h3>Do points expire?<\/h3><\/dt>\n<dd><p>Yes. Points expire 6 months after they were earned. NeoGrow uses a <strong>FIFO (First-In, First-Out)<\/strong> system, so the oldest points are always spent first. Setting your own expiry window, or turning expiry off entirely, is available in NeoGrow Pro, a separate add-on.<\/p><\/dd>\n<dt id=\"can%20i%20reward%20customers%20for%20their%20birthdays%3F\"><h3>Can I reward customers for their birthdays?<\/h3><\/dt>\n<dd><p>NeoGrow is designed to work seamlessly with <strong><a href=\"https:\/\/wordpress.org\/plugins\/birthday-bash\/\">NeoLite Birthday Bash<\/a><\/strong>. While NeoGrow handles the points engine, Birthday Bash automates the 'Happy Birthday' rewards, creating a complete retention loop for your store.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20my%20theme%3F\"><h3>Is it compatible with my Theme?<\/h3><\/dt>\n<dd><p>Yes. NeoGrow hooks into standard WooCommerce locations and works seamlessly with any well-coded WooCommerce-compatible theme.<\/p><\/dd>\n<dt id=\"still%20have%20questions%3F\"><h3>Still have questions?<\/h3><\/dt>\n<dd><p>Our engineers are here to help! Please open a ticket in the WordPress.org support forum, and we\u2019ll help you get NeoGrow running perfectly on your store.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Fix: Points are now calculated on the order <strong>subtotal<\/strong>, as the documentation has always stated. Earlier versions used the order total, so tax, shipping and fees earned points too. On a store charging tax or postage this reduces what new orders award \u2014 a $50 order with $10 postage now earns 50 points rather than 60. Points already awarded are not changed. Use the <code>neogrow_earn_base_amount<\/code> filter to award on the order total instead, if that is what you want.<\/li>\n<li>Fix: Correct point earning and redemption on multi-currency stores. Points were previously calculated on the order total in the customer's selected currency while the earn rate is configured in the store's base currency, so a store selling in more than one currency awarded too many or too few points by the exchange rate. Orders are now converted back to the base currency (using the exchange rate recorded on the order where available) before points are calculated. Points already awarded by earlier versions are not changed.<\/li>\n<li>Fix: The redemption discount is now converted into the customer's selected currency before it is applied to the cart, so the discount shown and charged matches the rest of the cart instead of being a base-currency figure on a converted total.<\/li>\n<li>Fix: The redemption cap, the product page \"Earn X points\" message and the My Account earn-rate text now convert between the selected and base currency, so the numbers quoted match the points actually awarded.<\/li>\n<li>New: If a currency switcher is converting your prices and NeoGrow cannot read the rate it is using, an admin notice now says so, rather than letting points be silently miscalculated. It names the currency, is dismissible, and disappears on its own once the rate can be read.<\/li>\n<li>New: Native support for three currency switchers, with no configuration needed: the multi-currency built into <strong>WooPayments<\/strong>, <strong>CURCY (Multi Currency for WooCommerce)<\/strong> and <strong>FOX \u2013 Currency Switcher Professional<\/strong> (formerly WOOCS). Other switchers can integrate through the new <code>neogrow_currency_rate<\/code> and <code>neogrow_order_exchange_rate<\/code> filters; with no switcher active, behaviour is unchanged.<\/li>\n<li>Changed: NeoGrow now lives under <strong>Marketing &gt; NeoGrow<\/strong> (or WooCommerce &gt; NeoGrow when the Marketing menu is disabled), following the WooCommerce navigation guidelines, instead of adding its own top-level menu. All existing links and bookmarks to the page keep working.<\/li>\n<li>New: The Plugins screen now offers both a Dashboard and a Settings link for NeoGrow.<\/li>\n<li>Changed: The read-only \"Points Expiry (Months)\" row has been removed from the settings screen. Point expiry is unchanged \u2014 points still expire after 6 months on a FIFO basis; the plugin simply no longer displays a setting that could not be edited. The NeoGrow Pro add-on provides the configurable expiry window.<\/li>\n<li>Changed: Reworded parts of the plugin description and FAQ.<\/li>\n<li>Compatibility: Tested up to WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: Native support for the WooCommerce Cart and Checkout blocks. The redemption panel now appears automatically in both blocks and updates order totals live through the Store API. The old workaround of pasting a shortcode into a Shortcode block is no longer needed, and the notice asking you to do so has been removed.<\/li>\n<li>New: In the Cart and Checkout blocks the redemption panel now sits directly above the \"Add coupons\" row, so points are applied alongside coupons and before shipping, tax and the order total are worked out.<\/li>\n<li>New: The panel now states the discount your points are worth, for example \"You are using 200 points for a $2.00 discount\", formatted in your store's currency.<\/li>\n<li>New: Two filters for add-ons, neogrow_review_media_ids and neogrow_review_media_html, allowing the media shown with a review to be extended or replaced.<\/li>\n<li>New: A documented developer API of hooks and filters, plus the NeoGrow\\API\\Points class, so add-ons can extend earning, redemption, reviews, expiry and the admin screens. See the plugin's HookDocs reference.<\/li>\n<li>New: You can rename \"points\" to anything you like from a single filter.<\/li>\n<li>Security: Review photo uploads now require a logged-in user and are restricted to product reviews. The temporary upload permission granted during an upload is scoped to the review author instead of being granted site-wide.<\/li>\n<li>Fix: Points are no longer over-deducted when the redeemed amount exceeds the cart value. The points debited now always match the discount actually granted, and the balance is re-checked at the moment of purchase.<\/li>\n<li>Fix: Resolved a fatal error on PHP 7.4 caused by a PHP 8.0-only function on the settings screen.<\/li>\n<li>Fix: Resolved a fatal error when cart totals are calculated without a customer session (Store API, cron and WP-CLI).<\/li>\n<li>Fix: The points balance cache now uses a dedicated cache group, preventing collisions with other plugins.<\/li>\n<li>Fix: Applying no points, or fewer than a required minimum, no longer reports \"Applied\" on the classic cart and then quietly leaves the discount off. Both are now refused with an explanation, matching how the Cart and Checkout blocks already behaved.<\/li>\n<li>Fix: Database updates now run on any request rather than only inside wp-admin, so stores administered entirely over WP-CLI or a headless front end are no longer left on an older database version.<\/li>\n<li>Tweak: The redemption form now shows a message when the requested points cannot be applied, and caps the input at the redeemable amount.<\/li>\n<li>Tweak: Removed the 500-point seed previously granted to the administrator who activated the plugin. Existing balances are unaffected.<\/li>\n<li>Tweak: Database tables are now versioned so that future schema changes reach existing installations, and uninstalling now cleans up review photos, review meta and per-site data on multisite.<\/li>\n<li>Performance: The daily expiry job is now batched instead of loading every customer at once, and the review photo lookup no longer runs one query per review on product pages.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Enhancement: Dynamic Admin Colors. settings page now adapts dynamically to match the active WordPress user's selected \"Administration Color Scheme\".<\/li>\n<li>UI: Implemented neo-unified-table striped layouts for both the Loyalty &amp; Rewards Settings page and Design Customization page.<\/li>\n<li>Compatibility: Fully tested and declared compatible with WordPress 7.0.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>New: Dynamic strategy preview in settings (Real-time ROI calculation).<\/li>\n<li>Enhancement: Added decimal support for points-per-dollar ratios.<\/li>\n<li>Stability: Improved input sanitization to prevent calculation errors.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Resolved undefined variable warnings in Frontend Assets.<\/li>\n<li>New: Added FAQ to documentation.<\/li>\n<li>Tweak: Optimized asset loading logic.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Added 500 bonus points for admin users upon first-time installation.<\/li>\n<li>Improved WooCommerce Blocks compatibility (Cart and Checkout support).<\/li>\n<li>Added Official Documentation links in the Guide &amp; Help dashboard.<\/li>\n<li>Fixed minor UI layout issues in the settings panel.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial Release.<\/li>\n<li>Loyalty Points Engine (FIFO Expiry).<\/li>\n<li>Viral Photo Reviews &amp; Lightbox Display.<\/li>\n<li>Full HPOS (High-Performance Order Storage) Compatibility.<\/li>\n<li>Custom Database Table architecture.<\/li>\n<li>Integrated Setup Wizard.<\/li>\n<\/ul>","raw_excerpt":"Loyalty rewards for WooCommerce. Give points for purchases and photo reviews. Customers can redeem points for discounts directly at checkout.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283877"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mtpamir"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283877"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283877"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283877"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283877"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283877"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}