{"id":245581,"date":"2026-09-28T14:06:12","date_gmt":"2026-09-28T14:06:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/donation-subscriptions-for-wc\/"},"modified":"2026-09-28T15:03:49","modified_gmt":"2026-09-28T15:03:49","slug":"w17-donation-subscriptions-for-wc","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/w17-donation-subscriptions-for-wc\/","author":23296177,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"6.6.9","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"W17 Donation Subscriptions for Product","header_author":"Waseem Usman","header_description":"Transform WooCommerce products into flexible donation subscriptions. Let customers set their own donation amounts with customizable minimums.","assets_banners_color":"c3d2da","last_updated":"2026-09-28 15:03:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/example.com\/w17-donation-subscriptions-for-wc","header_author_uri":"https:\/\/tkvers.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":106,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"waseemusman17","date":"2026-09-28 15:03:49","revision":3717438}},"upgrade_notice":{"1.1.0":"<p>Security and standards hardening release: removes a third-party remote asset request, adds server-side input validation, and fixes a duplicate-save bug. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3717275,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3717275,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3717275,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3717275,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Donation Subscription Settings panel in the WooCommerce product data box.","2":"Donation amount field on the single product page.","3":"Minimum-amount popup shown when a customer enters less than the minimum.","4":"Donation amount displayed in cart and checkout."}},"plugin_section":[],"plugin_tags":[5800,5801,15130,4079,286],"plugin_category":[41,45],"plugin_contributors":[283194],"plugin_business_model":[],"class_list":["post-245581","plugin","type-plugin","status-publish","hentry","plugin_tags-donations","plugin_tags-fundraising","plugin_tags-nonprofit","plugin_tags-subscriptions","plugin_tags-woocommerce","plugin_category-communication","plugin_category-ecommerce","plugin_contributors-waseemusman17","plugin_committers-waseemusman17"],"banners":{"banner":"https:\/\/ps.w.org\/w17-donation-subscriptions-for-wc\/assets\/banner-772x250.png?rev=3717275","banner_2x":"https:\/\/ps.w.org\/w17-donation-subscriptions-for-wc\/assets\/banner-1544x500.png?rev=3717275","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/w17-donation-subscriptions-for-wc\/assets\/icon-128x128.png?rev=3717275","icon_2x":"https:\/\/ps.w.org\/w17-donation-subscriptions-for-wc\/assets\/icon-256x256.png?rev=3717275","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>W17 Donation Subscriptions for Product turns any WooCommerce product into a \"pay what you want\" donation item, with a minimum amount you set per product. It's built for nonprofits, membership programs, and creators who want supporters to choose their own contribution amount instead of a fixed price \u2014 including recurring donations when used together with <a href=\"https:\/\/woocommerce.com\/products\/woocommerce-subscriptions\/\">WooCommerce Subscriptions<\/a>.<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>Enable \"Donation Subscription\" on any product from the standard Product Data panel.<\/li>\n<li>Set a minimum donation amount (and an optional custom message shown to customers).<\/li>\n<li>Customers see an amount field on the product page instead of a fixed price, and cannot add the product to their cart below your minimum.<\/li>\n<li>The donation amount they choose becomes the price of that cart\/order line item, and displays clearly at checkout and on the order.<\/li>\n<li>If the product is a WooCommerce Subscription (via WooCommerce Subscriptions), the customer's chosen donation amount is carried over automatically to each renewal order.<\/li>\n<\/ol>\n\n<h4>Who it's for<\/h4>\n\n<ul>\n<li>Nonprofits and fundraisers running donation drives on WooCommerce.<\/li>\n<li>Membership or supporter programs that want flexible, recurring \"pay what you can\" pricing.<\/li>\n<li>Anyone who wants a simple, no-configuration donation field without a page builder or a full donation plugin.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Works with any existing WooCommerce product \u2014 no new product type to learn.<\/li>\n<li>Per-product minimum donation amount, with a sensible default.<\/li>\n<li>Optional custom message shown above the donation field.<\/li>\n<li>Enforces the minimum both in the browser (with a clear message) and on the server, so it can't be bypassed by disabling JavaScript.<\/li>\n<li>Automatically carries the customer's chosen amount to WooCommerce Subscriptions renewal orders, when WooCommerce Subscriptions is active.<\/li>\n<li>No settings to configure, no external accounts, no tracking.<\/li>\n<\/ul>\n\n<h4>External Services<\/h4>\n\n<p>This plugin does not connect to any external service, API, or third-party server. All processing happens locally within your WordPress installation using WooCommerce's own APIs. No data is sent anywhere outside your site by this plugin.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect analytics, does not set cookies of its own, and does not send data to any third party. The only data it stores is:<\/p>\n\n<ul>\n<li>Per-product settings you enter as the store admin (whether donations are enabled, the minimum amount, and an optional message) \u2014 stored as standard WordPress post meta on the product.<\/li>\n<li>The donation amount a customer enters at checkout \u2014 stored as standard WooCommerce cart\/order data, exactly like any other product price, and subject to your store's existing order-retention and privacy policies.<\/li>\n<\/ul>\n\n<p>No personal data (names, emails, addresses) is processed by this plugin beyond what WooCommerce itself already handles as part of normal order processing.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Upload the <code>w17-donation-subscriptions-for-wc<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it directly from Plugins \u2192 Add New.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to any product in <strong>Products \u2192 All Products<\/strong> and edit it.<\/li>\n<li>In the <strong>Product data<\/strong> panel, find <strong>Donation Subscription Settings<\/strong>, check <strong>Enable Donation Subscription<\/strong>, and set a minimum amount.<\/li>\n<li>Save the product. The donation field now appears on that product's page.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%20subscriptions%3F\"><h3>Does this require WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>No. The plugin works with any WooCommerce product. WooCommerce Subscriptions is only needed if you want the donation to recur automatically (e.g. a monthly donation); in that case, use a Subscription product and this plugin will carry the customer's chosen amount over to each renewal.<\/p><\/dd>\n<dt id=\"can%20customers%20donate%20less%20than%20the%20minimum%3F\"><h3>Can customers donate less than the minimum?<\/h3><\/dt>\n<dd><p>No. The minimum is enforced both client-side (with a friendly popup) and server-side when the item is added to the cart, so it cannot be bypassed by disabling JavaScript or editing the request.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20with%20variable%20products%3F\"><h3>Can I use this with variable products?<\/h3><\/dt>\n<dd><p>The donation field is designed for simple products. It has not been tested against variable product variations and may need adjustment for that use case.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20any%20data%20outside%20my%20site%3F\"><h3>Does this plugin send any data outside my site?<\/h3><\/dt>\n<dd><p>No. See the External Services section above.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Deleting the plugin (not just deactivating it) removes the donation-related product meta it created (<code>_is_donation_subscription<\/code>, <code>_donation_minimum_amount<\/code>, <code>_donation_description<\/code>). It does not touch your orders, products, or any other WooCommerce data. Deactivating the plugin alone removes nothing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Security: added explicit capability\/nonce checks (defense in depth) around product meta saving.<\/li>\n<li>Security\/Privacy: removed a hardcoded third-party remote image request that loaded on every donation product page; replaced with a self-contained inline icon.<\/li>\n<li>Hardening: minimum donation amount is now validated and clamped to a non-negative number when saved from the admin.<\/li>\n<li>Standards: all user-facing strings are now translatable.<\/li>\n<li>Standards: frontend CSS\/JS are now properly enqueued via <code>wp_enqueue_style()<\/code>\/<code>wp_enqueue_script()<\/code> instead of being echoed inline in <code>wp_head<\/code>\/<code>wp_footer<\/code>.<\/li>\n<li>Fix: removed a redundant duplicate hook registration that caused product meta to be saved twice on every product update.<\/li>\n<li>Added: <code>uninstall.php<\/code> to clean up plugin-created product meta when the plugin is deleted.<\/li>\n<li>Cart\/checkout donation amount display now respects your store's currency formatting.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Prior release.<\/li>\n<\/ul>","raw_excerpt":"Let customers choose their own donation amount on any WooCommerce product, with an enforced minimum you control per product.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/245581","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=245581"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/waseemusman17"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=245581"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=245581"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=245581"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=245581"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=245581"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=245581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}