Opis
SaleMint – Paddle Checkout for WooCommerce connects your WooCommerce store to Paddle, the merchant-of-record payment platform built for software, SaaS, courses, memberships, and other digital products. Paddle runs the checkout and calculates, collects, and remits sales tax and VAT worldwide, while this plugin keeps your WooCommerce orders, totals, and invoices fully in sync.
No tax plugin, no per-country VAT registrations, and no redirect away from your store — customers pay in an embedded Paddle checkout right on your WooCommerce checkout page.
Selling subscriptions? This free plugin handles one-time payments. SaleMint Paddle Pro adds recurring billing through Paddle for both WooCommerce Subscriptions and WPSubscription — with free trials, split payments (installments), early renewal, a Buy Now button, a self-serve customer portal, and customer invoices. Pro is an add-on, so everything you already use keeps working. Full setup docs: salemint.io/docs/paddle/introduction.
How it works
When a customer places an order, the plugin opens Paddle’s hosted checkout (modal or full-page). After the customer completes payment, the Paddle transaction ID is captured and attached to the WooCommerce order. The plugin then fetches the authoritative order totals from Paddle — including any tax Paddle applied — and updates the WooCommerce order to match, so your records are always accurate.
Key features
- Classic checkout & WooCommerce Blocks — Works with both the classic WooCommerce checkout and the modern block-based checkout.
- Modal or full-page checkout — Choose between an overlay modal or a full-page Paddle checkout, configurable from the gateway settings.
- Sandbox / live mode — Toggle between Paddle’s sandbox environment for testing and the live environment for production, without touching any code.
- Digital-only enforcement — The Paddle payment option is automatically hidden whenever the cart contains a physical product that requires shipping. This prevents it from appearing for orders Paddle cannot fulfil.
- Paddle tax categories — Assign a Paddle tax category (e.g. standard, digital-goods, ebooks, SaaS, software) to products, with a configurable store-wide default. Supports all 13 Paddle tax classifications.
- Coupon sync — WooCommerce coupons applied at checkout are forwarded to Paddle as discounts, so the transaction amount in Paddle always reflects the discounted total.
- Cart fee sync — Extra fees added to the cart (e.g. handling fees or surcharges) are passed to Paddle as line items and synced back after payment, keeping both records consistent.
- Automatic order totals sync — After payment, the plugin synchronises WooCommerce order totals — including line-item subtotals, discounts, fees, tax lines, and the grand total — with the values reported by Paddle. An order note is added documenting the sync for auditing purposes.
- Transaction & invoice ID tracking — The Paddle transaction ID and invoice ID are saved directly to the WooCommerce order and visible on the order detail screen.
- Transaction URL — A direct link to the Paddle transaction is saved with each order so you can jump straight to the Paddle dashboard from WooCommerce.
- Refund support — Initiate full or partial refunds from the standard WooCommerce refund interface; the plugin forwards the refund to Paddle automatically.
- Invoice button on order screen — A one-click button on the admin single-order page lets you open or download the Paddle-generated invoice without leaving WooCommerce.
- Order-pay page support — Customers can retry a failed or pending payment from the WooCommerce order-pay page; billing details are pre-populated automatically.
- Light and dark themes — Choose between Paddle’s light and dark checkout UI to match your store’s design.
Free vs Pro
Everything above is free, forever. SaleMint Paddle Pro is an add-on that layers recurring billing and its supporting tools on top — install it alongside this plugin and every free feature keeps working unchanged.
Pro adds:
Subscriptions & recurring billing
- WooCommerce Subscriptions support — Two-way sync between WooCommerce and Paddle: status, dates, currency, billing address, line items, and coupons stay in step on both sides.
- WPSubscription support (new in Pro 1.1.0) — Sell WPSubscription products through Paddle. Paddle handles auto-renewal, and every renewal syncs the next payment date back to the WPSubscription record.
- Free trials and signup fees — Trial periods are passed to Paddle, which delays the first charge until the trial ends.
- Split payments (installments) — Sell in installments with WPSubscription; Paddle charges each one on schedule.
- Auto-renewal via webhook — Renewals charge the saved payment method automatically, and every Paddle event is verified with HMAC-SHA256 signatures before it touches an order.
- Early renewal — Customers renew ahead of schedule with the card already on file, with no checkout modal.
- Full lifecycle sync — Cancel, pause, resume, switch, and change payment method all reach Paddle.
- Update payment method from My Account — Customers swap their card themselves on both WooCommerce Subscriptions and WPSubscription stores.
Sell from anywhere
- Buy Now button — Gutenberg blocks and an Elementor widget that open the Paddle checkout from any landing page or pricing table, with no cart in between. Works with one-time, WooCommerce Subscriptions, and WPSubscription products, and hides itself on physical products.
Self-serve billing & tax
- Customer portal — A My Account link opens Paddle’s self-serve portal for payment details and billing history.
- Customer invoices — View and Generate invoice buttons on the order page and the My Account orders list, cached and auto-regenerated.
- Per-product tax categories — Override the Paddle tax category per product, per variation, and for cart fees.
Pro is a one-time, lifetime license — no subscription to renew. See the full Pro documentation or get Pro.
Who is it for?
- SaaS and software companies selling licenses or plans on WooCommerce
- Course creators, membership sites, and online academies
- Sellers of ebooks, templates, themes, plugins, and other downloads
- Any store that wants Paddle to handle global sales tax and VAT as merchant of record
Requirements
- PHP 8.1 or higher
- WordPress 6.0 or higher
- WooCommerce (latest recommended)
- A Paddle account with an API key and client-side token
External Services
This plugin connects to Paddle’s servers to process payments and load the Paddle JavaScript SDK. By using this plugin you agree to Paddle’s terms and privacy policy.
Paddle JavaScript SDK
The Paddle checkout SDK is loaded from Paddle’s CDN on any page where the payment gateway is active:
- Production:
https://cdn.paddle.com/paddle/v2/paddle.js - Sandbox: same URL (environment is set via the client-side token)
This script is provided by Paddle.com Inc. and is required to open the hosted checkout modal.
Paddle REST API
The plugin communicates with the Paddle REST API from your server to create transactions and retrieve order details:
- Production:
https://api.paddle.com - Sandbox:
https://sandbox-api.paddle.com
Data sent includes order line items, customer billing information (email, country, postcode), and currency. No data is sent unless a customer initiates checkout.
Snimke zaslona







Pitanja i odgovori
Why does the Paddle payment option disappear at checkout?
Paddle is designed for digital goods. If your cart contains any product that requires physical shipping, the Paddle payment option is automatically hidden. Remove the physical item — or complete its purchase through a different payment method — and Paddle will reappear for the remaining digital items.
My order total is different after payment. Is that normal?
Yes, this is intentional. Paddle acts as a merchant of record and calculates tax authoritatively based on the customer’s location. After a successful payment, the plugin fetches the final totals directly from Paddle and updates the WooCommerce order to match — including any tax Paddle applied that differs from the original WooCommerce estimate. An order note is added every time this sync occurs so you have a clear audit trail.
Where can I find the Paddle transaction ID for an order?
Open the order in WooCommerce Orders, then look in the order meta section. The transaction ID is stored under
_paddle_transaction_idand the invoice ID under_paddle_invoice_id.What currencies are supported?
Any currency supported by your Paddle account. The plugin correctly handles both standard currencies (e.g. USD, EUR, GBP) and zero-decimal currencies (e.g. JPY, KRW) without any additional configuration.
Are WooCommerce coupons passed to Paddle?
Yes. When a customer applies a coupon at checkout, the discount is forwarded to Paddle so the transaction amount matches the discounted WooCommerce total. The coupon value is also reflected in the order totals sync after payment.
Are extra cart fees (e.g. handling fees) passed to Paddle?
Yes. Any fees added to the cart — such as handling fees or surcharges — are sent to Paddle as separate line items. After payment, these fee amounts are synced back to the WooCommerce order to keep both records consistent.
Does the plugin support subscriptions or recurring payments?
The free core processes one-time transactions only. For recurring billing — subscriptions, free trials, split payments, auto-renewal, early renewal, and a customer portal — install SaleMint Paddle Pro alongside this plugin. Pro works with either WooCommerce Subscriptions or WPSubscription, and also adds a Buy Now button and customer invoices. See the Pro documentation for setup steps.
Does it work with WPSubscription?
Yes, through SaleMint Paddle Pro 1.1.0 or later. Pro supports WPSubscription products with free trials, split payments (installments), auto-renewal, early renewal with the saved card, and updating the payment method from My Account. Each renewal syncs the next payment date back to the WPSubscription record. The Buy Now block and Elementor widget accept WPSubscription products too.
Do I need WooCommerce Subscriptions for recurring billing?
No. Pro works with either WooCommerce Subscriptions or WPSubscription — use whichever subscription plugin your store already runs. The free plugin alone supports one-time payments.
Do customers leave my site to pay?
No. With the default modal checkout, Paddle’s checkout opens as an overlay on your WooCommerce checkout page, so customers never get redirected to an external domain. A full-page checkout option is also available.
Does the plugin handle refunds?
Yes. You can issue full or partial refunds directly from the WooCommerce order screen using the standard refund interface. The plugin forwards the refund request to Paddle automatically and records the result in the order notes.
How do I switch from sandbox to live mode?
Go to WooCommerce Settings Payments Paddle Payment for WooCommerce, uncheck Sandbox Mode, enter your live API key and client-side token, and save. No other changes are required.
What PHP and WooCommerce versions are required?
PHP 8.1 or higher is required. The plugin is tested against the latest stable release of WooCommerce; using a recent version is strongly recommended.
Is there a Pro version?
Yes. SaleMint Paddle Pro is an add-on for this free plugin that adds WooCommerce Subscriptions and WPSubscription support, free trials, split payments, auto-renewal, early renewal, a Buy Now button (Gutenberg block and Elementor widget), a self-serve customer portal, customer invoices, and per-product tax categories. It’s a one-time lifetime license and requires this free plugin (1.3.2 or later). Install it alongside the free core — every free feature keeps working exactly as before. Documentation is available at salemint.io/docs/paddle/introduction.
Recenzije
Suradnici i Programeri
“SaleMint – Paddle Checkout for WooCommerce” je softver otvorenog koda. Sljedeće osobe su doprinijele ovom dodatku.
SuradniciPrevedite “SaleMint – Paddle Checkout for WooCommerce” na svoj jezik.
Zainteresirani ste za razvoj?
Pregledajte kôd, pogledajte SVN spremišteili se pretplatite na dnevnik razvoja od RSS.
Dnevnik promjena
1.3.2
- FIX – Fixed “Place Order” button disappearing on the order-pay page with WooCommerce 10.6+.
- IMPROVEMENT – The paid order is now passed to the
salemint_paddle_transaction_itemfilter, so renewal payments can be told apart from initial purchases. - IMPROVEMENT – Shared Paddle script helpers are now public so add-ons can open the Paddle checkout outside the checkout page.
- IMPROVEMENT – Paddle is hidden at checkout when the store currency is not supported by Paddle, and a warning is shown on the gateway settings page.
- UPDATE – Ready for pro plugin v1.1.0
- WC tested up to: 11.1.
1.3.1
- WC tested up to: 11.0.
- Tested up to: 7.1.
1.3
- NEW – “Enable/Disable” settings added on gateway settings.
- IMPROVEMENT – Add settings page link on plugin action links.
- IMPROVEMENT – PHP version incompatibility notice added.
- FIX – Fixed paddle checkout procced without checkout field validation.
- FIX – Cloudflare error when paddle throw error in
create-transactionAPI. - FIX – Fixed paddle assets loaded outside of checkout page.
- UPDATE – Ready for pro plugin v1.0.0
1.2
- NEW – Refund support added.
- NEW – Transaction url support added.
- NEW – Invoice button on admin single-order page added.
1.1
- Fix fatal error during plugin activation.
- Fix order-pay access error.
- Fix cookie check failed during create-transaction api on block checkout.
- NEW – Coupon sync added.
- NEW – Cart Fee support added with sync.
1.0.0
- Initial release.
- Classic checkout and WooCommerce Blocks support.
- Modal and full-page checkout variants.
- Automatic order totals sync from Paddle after payment.
- Paddle transaction ID and invoice ID saved to WooCommerce orders.
- Automatic gateway hiding for carts containing physical products.
- Sandbox and live mode toggle.
- Support for all 13 Paddle tax categories.
- Light and dark checkout themes.
- Order-pay page support for payment retries.
