{"id":240613,"date":"2025-07-14T14:33:20","date_gmt":"2025-07-14T14:33:20","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/percentage-fee-shipping\/"},"modified":"2026-05-20T16:31:30","modified_gmt":"2026-05-20T16:31:30","slug":"percentage-fee-shipping","status":"publish","type":"plugin","link":"https:\/\/vi.wordpress.org\/plugins\/percentage-fee-shipping\/","author":23268796,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.2","stable_tag":"1.3.2","tested":"7.0","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Percentage Shipping Fee for WooCommerce","header_author":"Marco Gagnon","header_description":"Adds a shipping method where the cost is calculated as a percentage of the cart subtotal.","assets_banners_color":"9c8ea7","last_updated":"2026-05-20 16:31:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/marcogagnon.ca\/percentage-fee-shipping-for-woocommerce\/","header_author_uri":"https:\/\/marcogagnon.ca\/plugins\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":685,"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":"aisimpleplugin","date":"2025-07-14 14:32:27"},"1.0.1":{"tag":"1.0.1","author":"aisimpleplugin","date":"2025-09-17 16:41:14"},"1.1.0":{"tag":"1.1.0","author":"aisimpleplugin","date":"2025-12-01 12:02:55"},"1.2.0":{"tag":"1.2.0","author":"aisimpleplugin","date":"2025-12-06 02:02:44"},"1.2.1":{"tag":"1.2.1","author":"aisimpleplugin","date":"2025-12-06 13:11:06"},"1.3.0":{"tag":"1.3.0","author":"aisimpleplugin","date":"2026-03-09 16:38:17"},"1.3.1":{"tag":"1.3.1","author":"aisimpleplugin","date":"2026-05-07 15:35:49"},"1.3.2":{"tag":"1.3.2","author":"aisimpleplugin","date":"2026-05-20 16:31:30"}},"upgrade_notice":{"1.3.1":"<p>This update fixes several issues related to shipping method stability.<\/p>","1.3.0":"<p>This update introduces Free Shipping restricted by User ID.\nYou can now limit free shipping availability to specific customers directly from the shipping method settings.\nRecommended update for stores offering VIP or customer-specific shipping benefits.<\/p>","1.2.1":"<p>This version improves how admin users are detected during shipping calculations and lays the foundation for future integration with the upcoming <strong>AISP Order Tools<\/strong> plugin.<br \/>\nNo setup or action is required at this time..<\/p>\n\n<p>No action is required if you do not use this feature.<\/p>","1.2.0":"<p>Minimum shipping is now configured per shipping zone directly within each Percentage Shipping method instance.\nAfter updating, edit your shipping zones to enable the minimum shipping option and set your desired minimum fee per zone.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3386565,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3386565,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3386625,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3386625,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.1.0","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2"],"block_files":[],"assets_screenshots":{"Screenshot-1.png":{"filename":"Screenshot-1.png","revision":3372403,"resolution":"1","location":"assets","locale":"","width":598,"height":537},"Screenshot-2.png":{"filename":"Screenshot-2.png","revision":3412716,"resolution":"2","location":"assets","locale":"","width":592,"height":674},"Screenshot-3.png":{"filename":"Screenshot-3.png","revision":3372403,"resolution":"3","location":"assets","locale":"","width":593,"height":436}},"screenshots":[]},"plugin_section":[],"plugin_tags":[156699,17242,17010,3546,286],"plugin_category":[45],"plugin_contributors":[240964],"plugin_business_model":[],"class_list":["post-240613","plugin","type-plugin","status-publish","hentry","plugin_tags-custom-shipping","plugin_tags-fee","plugin_tags-percentage","plugin_tags-shipping","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-aisimpleplugin","plugin_committers-aisimpleplugin","plugin_support_reps-marcgagnondev"],"banners":{"banner":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/banner-772x250.png?rev=3386625","banner_2x":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/banner-1544x500.png?rev=3386625","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/icon-128x128.png?rev=3386565","icon_2x":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/icon-256x256.png?rev=3386565","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/Screenshot-1.png?rev=3372403","caption":""},{"src":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/Screenshot-2.png?rev=3412716","caption":""},{"src":"https:\/\/ps.w.org\/percentage-fee-shipping\/assets\/Screenshot-3.png?rev=3372403","caption":""}],"raw_content":"<!--section=description-->\n<p>This plugin adds a custom shipping method to WooCommerce that charges your customers a shipping fee based on a percentage of the cart subtotal.<\/p>\n\n<h3>Key Features:<\/h3>\n\n<ul>\n<li>Define a shipping percentage per zone.<\/li>\n<li>Fully integrated with WooCommerce shipping zones.<\/li>\n<li>Lightweight and simple to use.<\/li>\n<li>Supports multiple zones and instances with different values.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/percentage-fee-shipping<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>WooCommerce &gt; Settings &gt; Shipping<\/strong> and select a Shipping Zone.<\/li>\n<li>Add the \"Percentage-based Shipping\" method.<\/li>\n<li>Set the title and percentage fee.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20set%20different%20percentages%20for%20different%20zones%3F\"><h3>Can I set different percentages for different zones?<\/h3><\/dt>\n<dd><p>Yes! You can add this shipping method to multiple zones and define a different percentage for each.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20tax%20calculation%3F\"><h3>Does this plugin support tax calculation?<\/h3><\/dt>\n<dd><p>The cost is added before tax. You can configure how taxes are handled in WooCommerce settings.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20the%20latest%20version%20of%20woocommerce%3F\"><h3>Is this plugin compatible with the latest version of WooCommerce?<\/h3><\/dt>\n<dd><p>Yes, it is tested with WooCommerce 10.X. and WordPress 6.8.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Updated: Tested up to WordPress 7.0<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Fix: Added safe WC()-&gt;cart checks before accessing cart subtotal to prevent fatal errors outside cart context.<\/li>\n<li>Fix: Restored compatibility with AISP Order Tools admin minimum shipping bypass logic.<\/li>\n<li>Fix: Added sanitize_callback for Allowed User IDs field to ensure only valid positive integers are saved.<\/li>\n<li>Fix: Unified default shipping percentage value to 9% for consistent behavior.<\/li>\n<li>Improve: Added clearer inline code comments for better maintainability.<\/li>\n<li>Improve: Cleaned up and standardized shipping method class structure.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added: Support for restricting Free Shipping by User ID. Free shipping can now be limited to specific customers via the shipping method settings.<\/li>\n<li>Improved: Refactored the plugin structure into multiple class files for better maintainability.<\/li>\n<li>Improved: Shipping logic to ensure correct availability based on user eligibility and cart subtotal.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Improved: Added compatibility groundwork for future integration with AISP Order Tools to bypass shipping minimum fees for administrators managing orders manually.<\/li>\n<li>Improved: Prepared optional integration support for future AISP Order Tools compatibility.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added: Per-zone minimum shipping cost support for the Percentage Shipping method.<\/li>\n<li>Added: Enable\/disable checkbox for minimum shipping enforcement directly in each shipping zone instance.<\/li>\n<li>Added: Editable minimum shipping amount field per shipping zone.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: New \"Free Shipping\" method.<\/li>\n<li>Improved: The \"Percentage Shipping\" method is now automatically hidden when \"Free Shipping\" is available.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Improved: Tested and confirmed compatibility with WooCommerce 10.2.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with percentage-based shipping cost support.<\/li>\n<\/ul>","raw_excerpt":"A WooCommerce shipping method that calculates the shipping cost as a percentage of the cart subtotal.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/240613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=240613"}],"author":[{"embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aisimpleplugin"}],"wp:attachment":[{"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=240613"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=240613"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=240613"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=240613"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=240613"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=240613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}