Release notes / WP Sell Services Pro
Premium Plugin Plugin

WP Sell Services Pro

Once a service marketplace is live, you hit scaling problems: payment flexibility, vendor analytics, storage costs, manual payouts. WP Sell Services Pro adds six focused modules: WooCommerce checkout (100+ gateways), analytics, S3 and GCS storage, Stripe Connect with automated payouts.

13 releases
v1.8.0 latest
October 7, 2026 shipped

v1.8.0 Latest

October 7, 2026
New 2 Improve 3 Fix 12 Security 1 Dev 1 Compat 1

New

  • Express delivery is priced on the WooCommerce rail and counted in the order's deadline.
  • Cloud storage Test Connection writes, reads back and deletes a test file, so a passing test means uploads will work.

Improve

  • Analytics is usable on a phone, with two stat cards per row and no sideways scrolling.
  • Pro settings cards sit with the regrouped settings and take part in the unsaved-changes warning.
  • The Add New Plan form on Subscription Plans opens from an Add plan button.

Fix

  • A site acts only on Razorpay orders it created itself, so a staging copy or second store on the same account cannot mark an order paid.
  • One Razorpay payment can pay only one order, and the paid amount must match the order total.
  • A refund made in WooCommerce is recorded once, and a refund from wp-admin no longer reports a failure.
  • The whole add-on selection is kept when a service goes into the WooCommerce cart.
  • Add-on prices come from the service on WooCommerce and Razorpay, never from the checkout request.
  • Razorpay guest checkout runs the account step and completes.
  • Every revenue figure in Analytics uses the same definition as the rest of the marketplace.
  • The analytics export download link works and the file matches the screen.
  • A plan saved with a service limit of 0 is unlimited.
  • A commission rule cannot be saved with a percentage over 100.
  • PayPal payouts read and write the vendor's single payout profile.
  • Cloud storage region and bucket names are validated before saving.

Security

  • A Razorpay payment that has already paid an order is no longer refunded when a repeated confirm request for it fails.

Dev

  • The Razorpay script loads only on payment pages.

Compat

  • Requires WP Sell Services 1.8.0. Install both updates together.

v1.7.2

September 23, 2026
Improve 1 Fix 6 Dev 1 Compat 1

Improve

  • The White Label accent colour applies to the plugin's own admin screens, not just the front end.

Fix

  • A service that is paused or deleted while it sits in a WooCommerce cart keeps its line, says why it cannot be bought, and stops checkout until the buyer removes it. The cart used to empty itself with no explanation.
  • Today is accepted by the vendor analytics API, so the app and other API clients can use the filter the dashboard already offered.
  • Analytics ranges follow the site's timezone. They were built in UTC while orders are recorded in site time, so Today covered a different day than the owner's and every range was off at its edges.
  • Editing an existing service opens the renewal interval the site owner configured, instead of falling back to Monthly.
  • The Hide Branding description says what the setting actually does, in the API and the documentation as well as on the settings screen.
  • The Today period on the vendor analytics screen returns figures instead of a blank report.

Dev

  • Recurring services stay hidden while renewals cannot collect a payment method; on a site that opts in early with the wpss_pro_recurring_feature_available filter, the configured default interval is now honoured by the wizard and the metabox.

Compat

  • Requires WP Sell Services 1.7.2. Install both updates together.

v1.7.1

September 18, 2026
New 1 Improve 6 Fix 18 Compat 1

New

  • Buyer Tips setting under Commission and Tax turns tipping on or off for the whole marketplace. On by default, so a site upgrading from Free keeps the tips it already offered.

Improve

  • The EDD and FluentCart rails are marked beta and hidden until enabled with a filter; FluentCart orders record the paid amount and single-order payments mark paid when enabled.
  • TeraWallet, WooWallet and MyCred are no longer offered as balance providers because the plugin never writes to them.
  • Pro no longer checks its tables on every request, analytics results are cached and exports stream in batches.
  • Automatic license re-checks are paused on local and development sites so a placeholder key does not switch Pro off.
  • The Tips Received figure in vendor analytics and the tips total in the ledger export follow the Buyer Tips setting.
  • A vendor's subscription plan sets how many services they may create, instead of the site-wide maximum overriding it.

Fix

  • Every command that writes or deletes data now asks first and refuses on a production site without --force.
  • The beta store rails say plainly what they cannot do, including that refunds issued in Easy Digital Downloads are not reflected in the marketplace.
  • WooCommerce orders record the amount the buyer paid, including add-ons and coupons; partial refunds sync both ways and completing an order completes it in WooCommerce.
  • Razorpay payments settle through the shared checkout path on REST and AJAX, one webhook event marks the order paid, Razorpay handlers load only on the standalone rail, and the setup guide lists only the webhook events the plugin handles.
  • FluentCart and EDD read service requirements through the shared reader, so questions, types and options render.
  • An expired or missing license no longer blocks the free plugin's payment and wallet routes.
  • Cloud-stored deliveries stay downloadable and the selected store rail stays active when the license lapses; the License page says what is locked.
  • Removed the duplicate REST storage upload that could overwrite another vendor's file; cloud drivers now report failures and store the file key.
  • Stripe Connect splits every service purchase, PayPal Payouts respects pending withdrawals and the clearance window, and a Stripe dashboard refund that did not reverse the transfer debits the vendor wallet. The refund outcome is now read back from Stripe, so this holds on any account API version and the vendor never keeps a share the buyer got back.
  • Dashboard, analytics and admin styles use the shared design tokens so they follow dark mode.
  • DigitalOcean Spaces settings live under one option and are removed on uninstall.
  • The Pro welcome page has a browser title again and no longer logs a PHP deprecation.
  • Viewing or listing orders on the WooCommerce rail no longer creates WooCommerce orders; the store order is created when the buyer clicks Pay.
  • A subscription plan whose Stripe Price ID is wrong now answers with a clear message instead of a server error, and the Price ID is checked against Stripe when the plan is saved.
  • Vendors can subscribe again after the site's Stripe keys are changed, instead of being blocked permanently by a customer record from the old account.
  • The WooCommerce My Account service tabs load the plugin's styles and icons.
  • Two colours in the currency and WooCommerce panels follow the site's dark mode.
  • Pro writes its settings defaults when it is activated, so a fresh install has them before anyone opens a settings screen.

Compat

  • Requires WP Sell Services 1.7.1. Install both updates together.

v1.7.0

September 1, 2026
New 1 Improve 3 Fix 4 Security 1 Dev 2 Compat 1

New

  • Delivery files are pushed to the configured cloud provider and served through short-lived signed URLs, rather than always landing on local disk.

Improve

  • Analytics export produces a real file, and the cloud storage screen states what it does rather than what it was going to do.
  • The commission screen offers the seller levels a vendor can actually hold, instead of levels that do not exist on the site.
  • The License screen says what deactivating costs before you do it.

Fix

  • Paying a tip, a paid extension or a milestone phase through WooCommerce showed Subtotal 0.00 above the real amount, because those orders carry a fee line and no product.
  • Top Services listed "Deleted service (#0)" as the highest earner. Buyer-request and milestone orders legitimately carry no service and were being grouped into one row.
  • Razorpay could start a payment while the gateway was disabled.
  • A vendor's wallet balance could be read from a wallet the owner never selected when the configured provider was inactive.

Security

  • Removed a payout routine whose own comment recorded that running it alongside the standard credit path doubled a vendor's balance. It was gated on a setting nothing ever wrote, so it never ran, but it was one written option away from running.

Dev

  • Pro no longer carries a second copy of the payment gateway contract or of the wallet ledger that Free already owns.
  • Removed wpss_wallet_credited, wpss_wallet_debited and wpss_vendor_payout_processed, which were documented as extension points but could never fire.

Compat

  • Requires WP Sell Services 1.7.0. Install both updates together.

v1.6.0

August 18, 2026
New 5 Improve 4 Fix 9 Dev 5

New

  • The shopper's currency is detected from their timezone, so an approximate price appears beside the real one without anyone having to find a setting.
  • Catalog pages state which currency the shopper is charged in, and checkout names the exact amount with the estimate beside it.
  • Offered currencies now default to every currency the rate provider quotes, so the feature works after entering an API key with nothing else to configure.
  • The settings screen previews a real conversion and reports when rates cannot be fetched, instead of a wrong API key looking exactly like a working one.
  • Push notifications are sent to members' phones for the events they already receive in the app, using Firebase credentials entered under Advanced. Off by default.

Improve

  • Every payment platform now reports order status through one shared map supplied by the free plugin, replacing separate maps that disagreed with each other.
  • Approximate prices are shown exactly rather than rounded, so a shopper who checks the rate gets the same number.
  • SureCart support has been removed. A hosted catalogue cannot act as a payment rail the way WooCommerce does, and shipping it as though it could was the wrong half-measure.
  • FluentCart is now treated purely as a payment rail; it no longer creates duplicate products in FluentCart's own catalogue.

Fix

  • An order paid through Easy Digital Downloads was never marked as paid, so the order did not start and the vendor was not credited.
  • The FluentCart integration listened for events that FluentCart does not send, so a completed payment did nothing. It now listens on the real events and credits the vendor.
  • Easy Digital Downloads read a price the plugin does not store, so a service could be sold at the wrong amount. Pricing now comes from the package.
  • The Stripe Connect settings link returned a permission error instead of opening the settings screen.
  • The display currency was unreachable: the price hint only appeared once a currency was chosen, and the only way to choose one was a shortcode most sites never placed.
  • The converted price is no longer written into the page on the server, which could cache one shopper's currency and serve it to the next.
  • An Easy Digital Downloads purchase could fail with a fatal error before the order was created, because ids arrived as strings where numbers were expected.
  • Twelve links on the welcome page used a query argument the settings screen no longer reads, and five of those pointed at the wrong section.
  • The retired green palette survived in Pro's stylesheets and admin charts, so a Pro site showed two accent colours side by side.

Dev

  • Requires the free plugin at 1.6.0 or later, which supplies the price markup, the payable-total action and the shared status map this release reads.
  • Payment platforms are now treated purely as payment processors; more than 700 lines of unreachable order-provider code have been removed.
  • Hardcoded English fallbacks removed from JavaScript, so every message shown to a user is translatable.
  • Docblocks citing @since versions that were never released now name the version they actually shipped in.
  • The translation gate now runs in continuous integration, which the plugin shipped but never executed.

v1.4.0

August 1, 2026
New 2 Improve 5 Fix 5 Dev 2 Compat 2

New

  • WCPayOrderResolver gives WooCommerce a pay-order flow, so a milestone phase, tip, paid extension or accepted proposal can be paid on its own from a link that works in an email.
  • WCOrderBridge cross-links WooCommerce and marketplace orders: a payment reference on the marketplace order, a "what happens next" panel on the WooCommerce thank-you page, and links between both order screens in the front end and admin.

Improve

  • When WooCommerce, Easy Digital Downloads, FluentCart or SureCart is active, that platform owns all payment; Pro's own gateway routes no longer register.
  • Switching e-commerce platform never rewrites past orders, and gateway webhooks keep working.
  • Every money value now carries a minor-unit integer alongside the decimal.
  • WooCommerce My Account now points service buyers to the dashboard, where requirements, messages and deliveries live.
  • Analytics cards keep their labels on one line, share one height, and use the same border and corner as every other card.

Fix

  • Refunding a WooCommerce order now reverses the tip, milestone phase or paid extension attached to it; previously only payment resolved a sub-order, so a refunded tip was ignored.
  • Cancelled and failed WooCommerce orders resolve their sub-orders the same way as paid ones.
  • A vendor could stack withdrawal requests past their balance because each was checked against the raw wallet total; pending requests and funds still clearing are now counted.
  • Refunding an order no longer asks the gateway to refund a second time when the refund started at the gateway itself.
  • The admin analytics endpoints answer 403 with a license message on an unlicensed site instead of a confusing 404.

Dev

  • All Pro REST controllers are on the wpss/v1 namespace. The wpss-pro/v1 namespace carries only four cart-adapter routes, and only while that cart plugin is active.
  • The Easy Digital Downloads licensing SDK is now loaded from the free plugin rather than vendored twice, and the legacy updater has been removed.

Compat

  • Aligned with WP Sell Services 1.4.0. Install both updates together.
  • The pay-order flow is supported on WooCommerce.

v1.3.0

July 28, 2026
New 2 Improve 4 Fix 14 Dev 3 Compat 1

New

  • Stripe Connect ledger reconciliation is owned end to end in Pro so automated payouts settle against the wallet ledger.
  • Display-only multi-currency hint via OpenExchangeRates shows catalog prices in the visitor's currency while base currency stays authoritative.

Improve

  • Pro dashboard and analytics surfaces now support dark mode following the active theme (BuddyX, BuddyX Pro, Reign).
  • Analytics labels deleted services by name instead of showing "Unknown Service".
  • Settings money sections moved onto the split money tabs and the Display Currency screen adopts the unified card chrome.
  • Recurring services and unbuilt wizard options are hidden and deferred to a future version so they do not appear before they ship.

Fix

  • Vendor subscriptions no longer charge nothing, and switching plans no longer double-bills; billing now runs through hosted Stripe Checkout.
  • Commission splits persist per order across WooCommerce, EDD, SureCart, FluentCart, Stripe Connect, and subscription renewals, where some previously saved NULL.
  • Stripe Connect application fee and split are computed from the canonical commission service and currency converter, replacing divergent math.
  • PayPal payouts settle on the wallet ledger, ending a double-pay where vendor earnings could be paid twice.
  • The ledger reversal on a refund only happens when the gateway actually reclaimed the money.
  • Payment integrations act as a payment rail only and no longer supply the marketplace's amounts, currency, or delivery deadline.
  • Money is formatted to each currency's precision in the earnings ledger CSV export and payouts, not a hardcoded two decimals.
  • The currency symbol no longer drifts off the base value under WooCommerce multi-currency, and Woo's currency is used when Woo is the active platform.
  • Razorpay checkout submits through its own seam and sends order add-ons.
  • The WooCommerce My Account vendor dashboard and notifications endpoints render correctly; the provider had never been hooked.
  • A paid subscription plan without a Stripe Price ID no longer grants free access, and a plan's commission override is now applied.
  • Platform status changes are written to the audit and history trail.
  • Payment status hooks no longer fatal under strict_types on WooCommerce, SureCart, and FluentCart.
  • The order-participant file upload no longer returns 403, and the analytics export is served through an authenticated handler.

Dev

  • Pro consumes the free plugin's ledger debit-type list and money helpers instead of local copies, so there is one settlement source of truth.
  • Pro reaches zero wp i18n make-pot warnings with translator comments added.
  • Internal planning YAML is excluded from the release zip.

Compat

  • Aligned with WP Sell Services 1.3.0. Install both updates together.

v1.2.2

July 1, 2026
Compat 1

Compat

  • Aligned with WP Sell Services 1.2.2 (migrated guest reviews now keep their reviewer name). Install both updates together.

v1.2.1

July 9, 2026
Fix 4 Dev 4

Fix

  • License status now reads and writes the EDD SDK's own option store, so the settings page and the plugins-page license control never disagree.
  • License deactivation no longer fails silently - activate and deactivate now show a success or error notice and a failed seat release is reported instead of assumed.
  • License expiry is now honoured so an expired key correctly reports inactive.
  • Currency-aware price display across all Pro surfaces.

Dev

  • Removed the WPSS_PRO_DEV_MODE license bypass; the license gate is always enforced.
  • Rebuilt the license settings page UI - status card, inline activate and deactivate, and a details grid.
  • One-time migration moves earlier installs off the legacy status option without losing an active license.
  • Resolved PHPStan errors on WP_Screen post-type guards.

v1.2.0

June 11, 2026
New 5 Improve 3 Fix 11 Security 2 Dev 1 Compat 1

New

  • Unified Earnings & Payouts section where manual withdrawal is always available alongside optional PayPal and Stripe Connect rails the site owner enables, all in one vendor section.
  • My Subscriptions section lets customers pause, resume, and cancel their recurring service subscriptions themselves.
  • Cloud Storage settings screen to choose a provider and enter Amazon S3, Google Cloud Storage, or DigitalOcean Spaces credentials.
  • WP-CLI command wpss-pro demo seeds realistic model data for evaluation and screenshots.
  • Vendors can enable recurring billing for a service directly in the frontend Create Service wizard (Pricing step), not only from the wp-admin service editor.

Improve

  • Recurring subscriptions are managed locally when Stripe is not configured, so pause, resume, and cancel work for non-Stripe setups instead of erroring.
  • Analytics, dashboard sections, and settings now load styles and scripts from enqueued asset files instead of inline blocks.
  • Confirmation prompts and toasts use the shared design-system dialog instead of the browser native pop-ups.

Fix

  • Analytics charts now load their styles on the pretty-permalink dashboard URL.
  • Settings panels (recurring, cloud storage, commission rules, subscriptions, PayPal payouts, Stripe Connect, and white label) now show a success or error message after saving.
  • The welcome screen correctly reports Vendor Subscriptions as Active when the feature is enabled.
  • WooCommerce cart pricing and order resolution now recognize service add-ons created from the admin service editor or WP-CLI.
  • Stripe Connect platform fees now use the configured commission rate when no Connect fee percent is set, instead of a fixed default.
  • Commission rules conditioned on seller level now match the vendor's actual level.
  • Stripe Connect refunds keep the platform commission and recover the vendor's share by default, with a filter to adjust per refund.
  • The welcome screen correctly reports Stripe Connect, PayPal Payouts, Razorpay, and White-Label as Active when configured.
  • White-label branding now applies on checkout and the login and registration pages, notification emails carry the brand color and logo, and the Remove Powered By toggle removes the credit.
  • The PayPal payout email field on the vendor profile saves correctly.
  • EDD and SureCart order screens format totals with the site's configured currency symbol.

Security

  • License activation and deactivation now require the manage_options capability, matching the rest of the license screen.
  • Razorpay secret fields are masked on the settings screen and keep the saved value when left blank.

Dev

  • Cloud storage drivers register through the wpss_storage_providers filter so uploads route to the active provider.

Compat

  • Aligned with WP Sell Services 1.2.0. Install both updates together.

v1.1.1

May 25, 2026
Improve 2 Fix 1 Note 1

Improve

  • If a runtime file is ever missing or damaged, the plugin now shows a clear admin notice explaining what went wrong instead of taking the site down with a blank screen.
  • Pro now reuses the same background-job library that ships with the free plugin instead of shipping its own copy, reducing the zip size and avoiding duplicate-library conflicts.

Fix

  • The plugin now activates cleanly from the downloaded zip on every install. Previously, on some hosts the plugin could fatal-error on activation if the install was missing a runtime dependency. The release zip now bundles everything the plugin needs to run.

Note

  • *Install & reliability**

v1.1.0

April 26, 2026
Improve 4 Fix 1 Note 11

Improve

  • Razorpay is now offered as a Pro-only gateway. Stripe and PayPal have moved to the free plugin so every store has access to those by default.
  • Tips, milestone unlocks, and extension fees now go through the same wallet credit path as regular earnings, so vendor balances are consistent regardless of how the income was received.
  • If any of the Pro plugin's database tables go missing - for example after restoring a database backup taken before the plugin was activated - the plugin now self-heals on the next admin page load and recreates them automatically.
  • The wallet transactions table is now owned cleanly by the free plugin only. Pro no longer creates or drops it, eliminating cross-plugin install/uninstall confusion.

Fix

  • Vendor wallets no longer get credited twice when a payment gateway retries an "order paid" event - every wallet credit is now tracked against the originating sub-order so retries are safely ignored.

Note

  • *Earnings Ledger & CSV Export**
  • Earning, Tip, Extension, Milestone, Withdrawal, Credit, Debit, Dispute Refund
  • Last 30 Days, This Month, Last Month, This Year, All Time
  • CSV export streams the same rows plus a summary block (Total Credits, Total Debits, Net, Tips, Total Withdrawn)
  • Date, Type, Description, Reference (linkable), Currency, Amount (signed), Balance After
  • Compatible with QuickBooks, Xero, Wave, and spreadsheet tools
  • *Money-flow integrity**
  • *Schema & reliability**
  • *Documentation**
  • Added Earnings Ledger & CSV Export guide to the docs site.
  • plugin developer doc explaining how tips, milestone unlocks, and extension fees share the same vendor-credit path (helps theme/plugin integrators write extensions that play nicely with the wallet).

v1.0.0

April 2, 2026
Note 17

Note

  • Initial release of WP Sell Services Pro
  • E-commerce adapters: WooCommerce, Easy Digital Downloads, Fluent Cart, SureCart
  • Razorpay for Indian markets
  • Internal Wallet, TeraWallet, WooWallet, MyCred
  • Amazon S3, Google Cloud Storage, DigitalOcean Spaces
  • Advanced analytics dashboard with Chart.js visualizations
  • CSV and Excel data export for analytics reports
  • unlimited gallery images, FAQs, add-ons, requirements
  • Vendor analytics dashboard with revenue and order tracking
  • 10 controllers - Wallet, Payment, Analytics, Storage, StripeConnect, PayPalPayouts, Subscriptions, Recurring, CommissionRules, WhiteLabel
  • Tiered commission rules (by category, volume, seller level)
  • label branding (admin, email, dashboard)
  • PayPal Payouts for automated vendor payments
  • Stripe Connect for direct vendor payments
  • Vendor subscription plans with Stripe billing
  • renewal
  • EDD Software Licensing integration for automatic updates