{"id":375916,"date":"2026-09-28T08:46:58","date_gmt":"2026-09-28T08:46:58","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/retention-core-subscription-cancel-saver-for-woocommerce\/"},"modified":"2026-09-28T08:44:47","modified_gmt":"2026-09-28T08:44:47","slug":"msdk-retention-core","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/msdk-retention-core\/","author":23565550,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.7","stable_tag":"1.0.7","tested":"7.1.2","requires":"6.0","requires_php":"8.2","requires_plugins":null,"header_name":"Retention Core: Subscription Cancel Saver for WooCommerce","header_author":"MSDK","header_description":"Intercept subscription cancellations with a lightweight exit survey. Free collects reasons; Pro offers save flows (coupon \/ pause).","assets_banners_color":"666c8a","last_updated":"2026-09-28 08:44:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/msdk.com.au\/retention-core\/","header_author_uri":"https:\/\/msdk.com.au\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.7":{"tag":"1.0.7","author":"matthew1287","date":"2026-09-28 08:44:47","revision":3716675}},"upgrade_notice":{"1.0.7":"<p>Pro: set who qualifies on each win-back offer. VIP-only offers keep their month gate. Coupon offers are no longer hidden by a shop-wide order count.<\/p>","1.0.6":"<p>Pro: skip the next order, tenure rules for discounts, and a dashboard widget for revenue recovered.<\/p>","1.0.5":"<p>Pro: see whether save offers kept the next renewal, and the cash collected after a save.<\/p>","1.0.4":"<p>Fix saving cancel reasons in Settings.<\/p>","1.0.3":"<p>Plugin Check cleanup ahead of the WordPress.org submission.<\/p>","1.0.2":"<p>Tested with WordPress 7.1 and WooCommerce 11.1.<\/p>","1.0.1":"<p>Free thickening: survey branding, admin reason panel, merchant notify email, Reports insight.<\/p>","1.0.0":"<p>Hardening release: Reports, safer packaging for WordPress.org, cycle-scoped tallies.<\/p>","0.1.0":"<p>First public-facing build. Requires WooCommerce Subscriptions.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3716675,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3716675,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3716675,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3716675,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3716675,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3716675,"resolution":"2","location":"assets","locale":"","width":1440,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3716675,"resolution":"3","location":"assets","locale":"","width":1440,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3716675,"resolution":"4","location":"assets","locale":"","width":1205,"height":712},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3716675,"resolution":"5","location":"assets","locale":"","width":1238,"height":437},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3716675,"resolution":"6","location":"assets","locale":"","width":1238,"height":565}},"screenshots":{"1":"Cancel survey on View Subscription.","2":"Win-back offer shown before the cancel goes through (Pro).","3":"Status banner after the subscriber accepts (Pro).","4":"Cancel reason reports.","5":"Win-back offers list (Pro).","6":"Offer setup: reason, type, and recurring coupon (Pro)."}},"plugin_section":[],"plugin_tags":[27130,23979,4079,364,286],"plugin_category":[41,42,45],"plugin_contributors":[78154,282589],"plugin_business_model":[],"class_list":["post-375916","plugin","type-plugin","status-publish","hentry","plugin_tags-cancel","plugin_tags-retention","plugin_tags-subscriptions","plugin_tags-survey","plugin_tags-woocommerce","plugin_category-communication","plugin_category-contact-forms","plugin_category-ecommerce","plugin_contributors-freemius","plugin_contributors-matthew1287","plugin_committers-matthew1287"],"banners":{"banner":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/banner-772x250.png?rev=3716675","banner_2x":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/banner-1544x500.png?rev=3716675","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/icon-128x128.png?rev=3716675","icon_2x":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/icon-256x256.png?rev=3716675","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-1.png?rev=3716675","caption":"Cancel survey on View Subscription."},{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-2.png?rev=3716675","caption":"Win-back offer shown before the cancel goes through (Pro)."},{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-3.png?rev=3716675","caption":"Status banner after the subscriber accepts (Pro)."},{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-4.png?rev=3716675","caption":"Cancel reason reports."},{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-5.png?rev=3716675","caption":"Win-back offers list (Pro)."},{"src":"https:\/\/ps.w.org\/msdk-retention-core\/assets\/screenshot-6.png?rev=3716675","caption":"Offer setup: reason, type, and recurring coupon (Pro)."}],"raw_content":"<!--section=description-->\n<p>Retention Core asks subscribers <em>why<\/em> they are cancelling before WooCommerce Subscriptions completes the cancel on <strong>My Account \u2192 View Subscription<\/strong>.<\/p>\n\n<p>This WordPress.org package is the <strong>free<\/strong> experience:<\/p>\n\n<ul>\n<li>Lightweight cancel survey (vanilla JS \u2014 no jQuery on the modal)<\/li>\n<li>Editable survey title, intro, and button labels<\/li>\n<li>Stable cancel reason IDs stored on the subscription + order note<\/li>\n<li>Cancel reason visible on the subscription edit screen in wp-admin<\/li>\n<li>Optional email to the site admin when a reason is submitted<\/li>\n<li>Reason tallies, top-reason insight, and CSV export under <strong>WooCommerce \u2192 Settings \u2192 Retention Core<\/strong><\/li>\n<li>Editable cancel reasons<\/li>\n<li>Assets load only on the View Subscription screen (no shop\/checkout bloat)<\/li>\n<\/ul>\n\n<p>Pro save flows (win-back offers, status banner, offer email) ship in a <strong>separate premium package<\/strong> via Freemius \u2014 they are not included in this free download.<\/p>\n\n<p>Merchant help: <a href=\"https:\/\/msdk.com.au\/retention-core\/retention-core-user-guide\/\">user guide<\/a><\/p>\n\n<h3>Premium Features<\/h3>\n\n<p>A separate premium package (not in this WordPress.org ZIP) adds:<\/p>\n\n<ul>\n<li>Per-reason save offers (Step 2 modal): recurring coupon, pause, or skip next order<\/li>\n<li>Gates on each offer: minimum orders, minimum months, and stop after months<\/li>\n<li>Apply recurring subscription coupons (<code>recurring_percent<\/code> \/ <code>recurring_fee<\/code>)<\/li>\n<li>Pause next payment by N billing periods, or skip one billing interval (subscription stays active)<\/li>\n<li>Save results on Reports, plus a Dashboard widget for revenue recovered<\/li>\n<li>Status banner on View Subscription while the offer is active<\/li>\n<li>Customer email when an offer is accepted<\/li>\n<li>Marketing \u2192 Win-back offers CPT<\/li>\n<\/ul>\n\n<p>Upgrade: <a href=\"https:\/\/msdk.com.au\/retention-core\/\">msdk.com.au\/retention-core<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce and WooCommerce Subscriptions.<\/li>\n<li>Upload this plugin to <code>\/wp-content\/plugins\/<\/code> or install via Plugins \u2192 Add New.<\/li>\n<li>Activate <strong>Retention Core<\/strong>.<\/li>\n<li>Open <strong>WooCommerce \u2192 Settings \u2192 Retention Core<\/strong> to view reports, customize the Survey, and edit Reasons.<\/li>\n<li>(Optional) Buy Pro and install the premium package \/ activate your license under <strong>WooCommerce \u2192 Retention Core \u2192 Account<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20require%20woocommerce%20subscriptions%3F\"><h3>Does it require WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Yes. The plugin will not boot without WooCommerce Subscriptions.<\/p><\/dd>\n<dt id=\"does%20it%20slow%20down%20the%20shop%20or%20checkout%3F\"><h3>Does it slow down the shop or checkout?<\/h3><\/dt>\n<dd><p>No. Scripts and styles enqueue only on My Account \u2192 View Subscription.<\/p><\/dd>\n<dt id=\"does%20it%20create%20custom%20database%20tables%3F\"><h3>Does it create custom database tables?<\/h3><\/dt>\n<dd><p>No. Settings live in <code>wp_options<\/code>; cancel data is subscription meta and order notes.<\/p><\/dd>\n<dt id=\"will%20cancel%20still%20work%20if%20javascript%20fails%3F\"><h3>Will cancel still work if JavaScript fails?<\/h3><\/dt>\n<dd><p>The native Subscriptions cancel URL remains available; the survey may be skipped for that click.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20phone%20home%3F\"><h3>Does this plugin phone home?<\/h3><\/dt>\n<dd><p>Licensing and optional usage opt-in are powered by Freemius. See the Freemius privacy policy and your site\u2019s Privacy Policy suggested text after activation. You can skip opt-in and still use Free features. Optional merchant cancel-survey emails go to your WordPress admin address only.<\/p><\/dd>\n<dt id=\"how%20do%20i%20upgrade%20to%20pro%3F\"><h3>How do I upgrade to Pro?<\/h3><\/dt>\n<dd><p>Buy Pro at <a href=\"https:\/\/msdk.com.au\/retention-core\/\">msdk.com.au\/retention-core<\/a>, then activate your license under <strong>WooCommerce \u2192 Retention Core \u2192 Account<\/strong> (Freemius delivers the premium package).<\/p><\/dd>\n<dt id=\"what%20coupon%20types%20work%20with%20pro%20offers%3F\"><h3>What coupon types work with Pro offers?<\/h3><\/dt>\n<dd><p>(Pro package only.) WooCommerce Subscriptions recurring coupons: Recurring Product % Discount and Recurring Product Discount.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Pro: Qualifying rules live on each win-back offer (minimum orders, minimum months, stop after months). The shop-wide Offer logic screen is removed.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Pro: Skip next order. The subscription stays active and the next payment moves forward by one billing interval, so that cycle is not charged and does not ship.<\/li>\n<li>Pro: Offer logic. Hide discount coupons until a subscription has enough related orders, and prefer a VIP offer after a tenure threshold.<\/li>\n<li>Pro: WordPress Dashboard widget for revenue recovered, cancellations intercepted, and the top survey reason.<\/li>\n<li>Help page under WooCommerce \u2192 Settings \u2192 Retention Core describing skip, pause, tenure rules, and the dashboard.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Pro: Save results on Reports. Offers shown, accepted, and declined, next renewal kept, cash collected after a save, discount given, and billing deferred for pauses.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fix: Reasons could not be saved. An empty template row blocked the settings form.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Plugin Check: reports CSV no longer uses direct filesystem calls, and the empty languages folder no longer ships a hidden file.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1 and WooCommerce 11.1.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Free: editable survey copy; merchant email on cancel reason; cancel reason on subscription admin; Reports top-reason insight.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Survey idempotency per billing cycle; Free Reports section with bars + CSV export.<\/li>\n<li>WordPress.org \/ Freemius packaging: premium-only strip, prefixed classes (<code>MSDK_RC_*<\/code>), privacy policy text.<\/li>\n<li>Pro (premium package): replace existing subscription coupons with plain-language notice; silent skip invalid coupons.<\/li>\n<li>Pro: pause advances by billing periods with end-date guard; limited-coupon banner hides at remaining 0.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release candidate: cancel survey, tallies, Pro coupon\/pause offers, status banner, offer-accepted email.<\/li>\n<\/ul>","raw_excerpt":"Intercept subscription cancellations with a lightweight exit survey. Free collects reasons and tallies; Pro (separate package) adds save offers.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/375916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=375916"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/matthew1287"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=375916"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=375916"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=375916"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=375916"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=375916"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=375916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}