{"id":397585,"date":"2026-11-13T18:51:22","date_gmt":"2026-11-13T18:51:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/happy-subscription\/"},"modified":"2026-11-14T07:48:10","modified_gmt":"2026-11-14T07:48:10","slug":"rinnovo-subscriptions-licenses","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rinnovo-subscriptions-licenses\/","author":23588166,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Rinnovo Subscriptions & Licenses","header_author":"Laghavi Digital","header_description":"Subscription products for WooCommerce with automatic Stripe Billing renewals (and invoice renewals for any other payment method), reminder emails, a better My Account, checkout without a cart page, buyer-only reviews, download counts, and license keys with downloads and automatic updates for the plugins and software you sell.","last_updated":"2026-11-14 07:48:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/laghavi.site\/rinnovo-subscriptions-licenses\/","header_author_uri":"https:\/\/laghavi.site\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":96,"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":"nayan4321","date":"2026-11-13 18:51:00","revision":3801025},"1.1.0":{"tag":"1.1.0","author":"nayan4321","date":"2026-11-14 07:48:10","revision":3801502}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3801025,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3801025,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3801025,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3801025,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3801502,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=rinnovo-subscriptions-licenses\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"features\":{\"networking\":true},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"},\"options\":{\"activate\":true}},{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"rinnovo-subscriptions-licenses\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3801025,"resolution":"1","location":"assets","locale":"","width":1400,"height":950},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3801025,"resolution":"2","location":"assets","locale":"","width":1280,"height":950},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3801025,"resolution":"3","location":"assets","locale":"","width":1280,"height":950},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3801025,"resolution":"4","location":"assets","locale":"","width":1280,"height":950},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3801025,"resolution":"5","location":"assets","locale":"","width":1400,"height":950},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3801025,"resolution":"6","location":"assets","locale":"","width":1400,"height":950}},"screenshots":{"1":"A subscription product with its price, trial and sign-up fee.","2":"The checkout with the recurring total.","3":"My Account: subscriptions with payment history, Cancel and Update card.","4":"My Account: license keys, downloads and activations.","5":"WooCommerce &gt; Subscriptions with monthly recurring revenue.","6":"WooCommerce &gt; Licenses."}},"plugin_section":[],"plugin_tags":[146554,32529,5349,4079,286],"plugin_category":[41,45],"plugin_contributors":[288767],"plugin_business_model":[],"class_list":["post-397585","plugin","type-plugin","status-publish","hentry","plugin_tags-license-manager","plugin_tags-recurring-payments","plugin_tags-stripe","plugin_tags-subscriptions","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-nayan4321","plugin_committers-nayan4321"],"banners":{"banner":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/banner-772x250.png?rev=3801025","banner_2x":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/banner-1544x500.png?rev=3801025","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/icon-128x128.png?rev=3801025","icon_2x":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/icon-256x256.png?rev=3801025","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-1.png?rev=3801025","caption":"A subscription product with its price, trial and sign-up fee."},{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-2.png?rev=3801025","caption":"The checkout with the recurring total."},{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-3.png?rev=3801025","caption":"My Account: subscriptions with payment history, Cancel and Update card."},{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-4.png?rev=3801025","caption":"My Account: license keys, downloads and activations."},{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-5.png?rev=3801025","caption":"WooCommerce &gt; Subscriptions with monthly recurring revenue."},{"src":"https:\/\/ps.w.org\/rinnovo-subscriptions-licenses\/assets\/screenshot-6.png?rev=3801025","caption":"WooCommerce &gt; Licenses."}],"raw_content":"<!--section=description-->\n<p>Rinnovo Subscriptions &amp; Licenses turns WooCommerce into a subscription shop, without a separate subscription plugin. Sell monthly or yearly plans, charge renewals automatically with Stripe, and if you sell software (WordPress plugins and themes, desktop or mobile apps, SaaS), hand out license keys, downloads and updates from the same shop.<\/p>\n\n<h4>Subscription products<\/h4>\n\n<ul>\n<li>Tick \"Subscription\" on a simple product, or on each variation of a variable product.<\/li>\n<li>Variable products: every variation is its own plan, for example Monthly and Yearly, each with its own price, period, trial, sign-up fee and number of payments. Customers pick their plan on one product page.<\/li>\n<li>Bill every N days, weeks, months or years, with an optional sign-up fee, free trial and number of payments (or until cancelled).<\/li>\n<li>Prices show as \"$99.00 \/ month \u00b7 7-day free trial \u00b7 $20.00 sign-up fee\". The button says \"Subscribe\".<\/li>\n<li>One subscription per order; other products can be bought together with it.<\/li>\n<li>Guests are asked to create an account so they can manage their subscription.<\/li>\n<\/ul>\n\n<h4>Payments<\/h4>\n\n<ul>\n<li><strong>Stripe<\/strong> is added under WooCommerce &gt; Settings &gt; Payments. Customers pay on Stripe's secure checkout page (cards, Apple Pay, Google Pay, 3D Secure). Subscriptions become Stripe Billing subscriptions, so Stripe charges each renewal automatically and retries failed cards. Refunds work from the WooCommerce order screen.<\/li>\n<li>The Stripe webhook is created automatically when you save your secret key.<\/li>\n<li><strong>Your own payment plugin, charged automatically:<\/strong> with WooCommerce Stripe Gateway, WooPayments, PayPal Payments, Square, Braintree, Authorize.Net, Mollie, Checkout.com, GoCardless or Paystack, the card (or bank mandate) is saved at the first payment and charged automatically on each renewal date, through that payment plugin. No other subscription plugin is needed. A failed charge is tried again after 1 and 3 days, and the customer gets a \"Pay now\" link.<\/li>\n<li><strong>Any other payment method<\/strong> (bank transfer, cheque, a gateway that doesn't save cards): on each renewal date the customer gets an invoice email with a \"Pay now\" link. Unpaid invoices put the subscription on hold after 7 days and cancel it after 30 (both adjustable).<\/li>\n<\/ul>\n\n<h4>Reminders and emails<\/h4>\n\n<ul>\n<li>Upcoming renewal and trial ending reminders (3 days before, adjustable).<\/li>\n<li>Payment failed, with an \"Update card\" button.<\/li>\n<li>Renewal invoice with \"Pay now\", and an overdue notice.<\/li>\n<li>Cancellation confirmation, for the customer and for you.<\/li>\n<li>Every renewal is a normal WooCommerce order, so the usual order emails and receipts go out too.<\/li>\n<\/ul>\n\n<h4>My Account<\/h4>\n\n<ul>\n<li>An overview dashboard: active subscriptions, next payment, orders and quick links.<\/li>\n<li>A Subscriptions tab with status, amount, next payment, payment history and buttons to Pay now, Update card, Cancel (at the end of the paid period) and Resume.<\/li>\n<\/ul>\n\n<h4>Checkout without a cart page<\/h4>\n\n<ul>\n<li>\"Buy now\" and \"Subscribe\" go straight to checkout; links to the cart open the checkout.<\/li>\n<li>Shoppers change quantities or remove items right in the checkout's order summary.<\/li>\n<li>The checkout shows the sign-up fee and a \"Recurring total \u2026 Next payment on \u2026\" line.<\/li>\n<\/ul>\n\n<h4>License keys for the software you sell<\/h4>\n\n<ul>\n<li>Tick \"Sell a license\" in a product's License tab: every paid order gets a license key, shown on the thank-you page, in the order email and in My Account &gt; Licenses.<\/li>\n<li>Choose what you sell: a WordPress plugin or theme, a desktop or mobile application, a browser extension, a SaaS or web application, a developer product, a game, a digital asset or creative product, or something else.<\/li>\n<li>WooCommerce &gt; License guide explains how each kind of product checks its key, with code examples in JavaScript, Python, C# (Unity, .NET), PHP and cURL.<\/li>\n<li>Upload the file customers download (zip, exe, msi, dmg, apk, pdf and more), or give a download link (App Store, Google Play, cloud storage). Only customers with an active key can download it.<\/li>\n<li>Set how many websites, computers or devices one key can be used on.<\/li>\n<li>For a WordPress plugin or theme, download a ready-made license file made for that product: add it with two lines, and your customers get a license screen and automatic updates under Dashboard &gt; Updates.<\/li>\n<li>Any other software connects with four simple web requests, from any programming language (see \"How does my product check its license key?\" below).<\/li>\n<li>Customers move a key between their websites or devices themselves, in My Account.<\/li>\n<li>Sell one product as several plans on a variable product (1, 5 or unlimited activations), each variation with its own price and number of activations. Combine with subscription variations for yearly or monthly plans.<\/li>\n<li>Keys sold with a subscription follow it: renewals keep the same key, cancelling stops renewals, and the key keeps working until the paid period ends.<\/li>\n<li>WooCommerce &gt; Licenses: search, revoke, restore or reissue keys, add a year, change the activation limit, or create a key by hand.<\/li>\n<li>A small REST API for your product to activate, check and update.<\/li>\n<\/ul>\n\n<h4>Reviews and download counts<\/h4>\n\n<ul>\n<li>Only buyers can review: only logged-in customers who bought a product can review it.<\/li>\n<li>Each review shows when the reviewer bought the product, as month and year: \"Purchased in March 2026\".<\/li>\n<li>Tick \"Show downloads\" on a product to show \"1,234 downloads\" under its price, counted from paid orders. <code>[rinnovo_downloads]<\/code> shows it anywhere.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to <strong>Stripe<\/strong> (stripe.com) to take payments, but only when you enable the Stripe payment method and enter your Stripe secret key.<\/p>\n\n<ul>\n<li>When you save the key, the plugin creates a webhook endpoint in your Stripe account so Stripe can tell your shop about payments.<\/li>\n<li>When a customer pays with Stripe, the plugin sends Stripe the order number, item names, amounts and currency, the customer's email address, and your shop's address (to return to after paying). The customer then enters their card on Stripe's own checkout page.<\/li>\n<li>For subscriptions, renewals, cancellations, refunds and card updates, the plugin sends Stripe the IDs of the subscription, customer or payment involved.<\/li>\n<li>Stripe sends payment events back to your shop's webhook address.<\/li>\n<\/ul>\n\n<p>Stripe's terms: https:\/\/stripe.com\/legal\/ssa and privacy policy: https:\/\/stripe.com\/privacy<\/p>\n\n<p><strong>Mollie<\/strong> (mollie.com) and <strong>Paystack<\/strong> (paystack.com), only when their own WooCommerce payment plugins are installed and a subscription was bought with them: on each renewal date the plugin asks Mollie or Paystack to charge the customer's saved payment method, with the order number, amount, currency and the customer's Mollie customer ID or Paystack card reference and email address, using the API key saved in that payment plugin. Mollie then calls your shop's address (\/wp-json\/rinnovo\/v1\/mollie) with the payment ID, and the payment status is read back from Mollie.\nMollie's terms: https:\/\/www.mollie.com\/legal and privacy policy: https:\/\/www.mollie.com\/privacy\nPaystack's terms: https:\/\/paystack.com\/terms and privacy policy: https:\/\/paystack.com\/privacy<\/p>\n\n<p>Renewals with the other supported payment plugins are charged by those plugins themselves, under their own terms.<\/p>\n\n<p>No other data leaves your site. The license API runs on your own site and is only called by the products you sell.<\/p>\n\n<h3>Rinnovo Pro<\/h3>\n\n<p>Separate Pro plugins add invoices and tax invoices, free trials and first-payment offers, VAT \/ GST for digital goods, \"Ask for price\" products and a currency switcher, plus plugins for subscription boxes, memberships, media, service contracts, sessions and bundles. Everything in this plugin works without them. See https:\/\/laghavi.site\/rinnovo-subscriptions-licenses\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce, then Rinnovo Subscriptions &amp; Licenses. Go to Settings &gt; Permalinks and click Save once.<\/li>\n<li><strong>Stripe:<\/strong> in Stripe go to Developers &gt; API keys and copy the secret key. In WooCommerce &gt; Settings &gt; Payments open \"Stripe\", tick Enable, paste the key and save. The webhook line turns green (\"Connected\"). Try test mode first with the card 4242 4242 4242 4242.<\/li>\n<li><strong>Products:<\/strong> edit a simple product and tick \"Subscription\" in the General tab, then set the billing period. On a variable product, open each variation and tick \"Subscription\" there.<\/li>\n<li><strong>Settings:<\/strong> WooCommerce &gt; Settings &gt; Subscriptions for reminders, grace periods, checkout and reviews.<\/li>\n<li><strong>Selling software:<\/strong> in the product's License tab, tick \"Sell a license\", choose what you sell, enter a Product ID (for a WordPress plugin or theme, its folder name), and upload the file or add a download link. The tab shows how to connect your product.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20rinnovo%20subscriptions%20%26%20licenses%20need%20a%20license%20key%20itself%3F\"><h3>Does Rinnovo Subscriptions &amp; Licenses need a license key itself?<\/h3><\/dt>\n<dd><p>No. Every feature of this plugin works without any key, time limit or usage limit. The license keys are for the plugins or software you sell in your own shop: your shop creates them for your customers, and your own products check them against your site.<\/p><\/dd>\n<dt id=\"do%20i%20need%20another%20subscription%20plugin%3F\"><h3>Do I need another subscription plugin?<\/h3><\/dt>\n<dd><p>No. Rinnovo Subscriptions &amp; Licenses handles the subscription products, renewals, emails and the customer's account pages itself.<\/p><\/dd>\n<dt id=\"which%20payment%20methods%20work%3F\"><h3>Which payment methods work?<\/h3><\/dt>\n<dd><p>All of them. Renewals are charged automatically with Rinnovo's own Stripe, and with these payment plugins when they save cards: WooCommerce Stripe Gateway, WooPayments, PayPal Payments, Square, Braintree, Authorize.Net (official WooCommerce extension), Mollie, Checkout.com, GoCardless and Paystack. WooCommerce &gt; Settings &gt; Subscriptions lists each payment method on your shop and how it renews. Every other payment method works with invoice renewals: the customer gets a \"Pay now\" email on each renewal date.<\/p><\/dd>\n<dt id=\"where%20do%20customers%20find%20their%20license%20key%20after%20a%20renewal%3F\"><h3>Where do customers find their license key after a renewal?<\/h3><\/dt>\n<dd><p>In My Account &gt; Licenses, with Copy and Download buttons. Renewals keep the same key and extend it, so nothing changes on their sites. You can revoke, restore, extend or reissue a key (a new key, emailed to the customer) in WooCommerce &gt; Licenses.<\/p><\/dd>\n<dt id=\"does%20cancelling%20stop%20the%20payments%3F\"><h3>Does cancelling stop the payments?<\/h3><\/dt>\n<dd><p>Yes. A cancellation in My Account or in WooCommerce &gt; Subscriptions also cancels the subscription in Stripe, at the end of the paid period or right away. With other payment plugins nothing is charged after a cancellation, because Rinnovo creates every renewal charge itself.<\/p><\/dd>\n<dt id=\"can%20customers%20cancel%3F\"><h3>Can customers cancel?<\/h3><\/dt>\n<dd><p>Yes, from My Account (you can turn this off). They keep access until the end of the period they paid for, and nothing is charged again.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20checkout%3F\"><h3>Does it work with the block checkout?<\/h3><\/dt>\n<dd><p>Stripe and subscriptions work with the Checkout block. Editing quantities on the checkout page needs the classic checkout (the <code>[woocommerce_checkout]<\/code> shortcode).<\/p><\/dd>\n<dt id=\"how%20does%20my%20product%20check%20its%20license%20key%3F\"><h3>How does my product check its license key?<\/h3><\/dt>\n<dd><p>A WordPress plugin or theme: download the ready-made license file from the product's License tab and follow the two lines at its top.<\/p>\n\n<p>Any other software sends <code>license_key<\/code>, <code>slug<\/code> (the Product ID) and either <code>site_url<\/code> (a website) or <code>instance<\/code> (any device, computer or account ID) to these routes under <code>\/wp-json\/rinnovo-subscriptions-licenses\/v1\/<\/code>:<\/p>\n\n<ul>\n<li><code>POST license\/activate<\/code>, <code>POST license\/deactivate<\/code>, <code>POST license\/check<\/code><\/li>\n<li><code>GET license\/update<\/code> returns the latest version, with a download link for sites allowed to update<\/li>\n<li><code>GET license\/download<\/code> returns the file (or goes to the download link) for activated keys<\/li>\n<\/ul>\n\n<p>Replies are JSON with <code>success<\/code>, <code>status<\/code> (active, expired, revoked, invalid or inactive), <code>expires<\/code> and a <code>message<\/code> for the customer.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20delete%20the%20plugin%3F\"><h3>What happens if I delete the plugin?<\/h3><\/dt>\n<dd><p>Subscription and license records are kept, because they are financial history. Existing Stripe subscriptions keep charging until they are cancelled in Stripe.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Automatic renewals with WooCommerce Stripe Gateway, WooPayments, PayPal Payments, Square, Braintree, Authorize.Net, Mollie, Checkout.com, GoCardless and Paystack: the card or mandate is saved at the first payment and charged on each renewal date, with retries after 1 and 3 days. Every other payment method keeps invoice renewals.<\/li>\n<li>Settings list each payment method on the shop and how it renews.<\/li>\n<li>Licenses: \"Reissue key\" gives a license a new key and emails it to the customer.<\/li>\n<li>Licenses for any product, not only WordPress plugins: themes, desktop and mobile applications, browser extensions, SaaS, developer products, games and digital assets, with a License guide and code examples. Activations can be websites or any device ID, any file type can be uploaded (or a download link given), and the License tab shows how to connect the product.<\/li>\n<li>A ready-made license file for WordPress plugins and themes you sell, with a license screen and automatic updates.<\/li>\n<li>The hourly renewal run can no longer run twice at the same time.<\/li>\n<li>A \"Rinnovo Pro\" screen under WooCommerce.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Subscriptions for WooCommerce with any payment method, automatic Stripe renewals, reminders, and license keys for the software you sell.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/397585","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=397585"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nayan4321"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=397585"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=397585"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=397585"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=397585"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=397585"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=397585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}