The big picture
WooCommerce Product Vendors records a commission per vendor line item on every order. This plugin settles those commissions and moves the money:
order placed ──► (optional hold: charge authorized, not captured)
order completed ──► settle window (settle days) ──► capture + payout
All payout paths converge on one action — mam_wcpv_vendor_commission_payout — which validates, locks, and routes to the configured payout method. The action is fired by:
- the auto-settle cron (every 10 minutes),
- the manual settle endpoint (AJAX
manually_settle_order, available to vendor staff for their own orders and to store managers), - the review/tips flow (after a tip charge succeeds).
Step 1 — Pick the payout method
WP Admin → Mobile App Manager → Product Vendors → Settings → Commission Payout Method (option mam_wc_pv_payout_method):
| Value | Behavior |
|---|---|
| Disabled (default, blank) | No automatic payouts; commissions stay unpaid in PV |
Stripe Connect (stripe_connect) |
Each vendor’s unpaid commission total is transferred via the mam_stripe_connect_transfer filter — requires mam-stripe-manager and per-vendor Stripe Connect onboarding |
PayPal (paypal) |
Pays through WooCommerce Product Vendors’ PayPal MassPay handler |
After a successful transfer the commissions are marked paid in PV and the order gets a _mam_vendor_paid flag so it is never paid twice.
Step 2 — Configure hold and settle (MAM WooCommerce settings)
Two checkout options owned by mam-woocommerce drive settlement timing:
| Option | Meaning |
|---|---|
tsl-setting-checkout_place_hold_on_order = yes |
Checkout authorizes the card but does not capture. The capture happens at settle time (manual settle, auto-settle, or when the customer leaves a review/tip). |
tsl-setting-checkout_settle_order_days |
Number of days after order completion before the vendor is paid. Leave it empty to disable auto-settle entirely; 0 settles as soon as the cron sees the completed order. |
How they interact in the payout guard:
- Hold on, not forced: the order must be
completed, andsettle daysmust have elapsed since completion. - Hold off: orders settle from
processing, aged by creation date. - Forced payouts (manual settle, tips flow, cron after a successful capture) bypass the settle-days wait — the money has been captured at that point.
Step 3 — Verify the cron
The plugin registers two jobs through mam-main’s cron manager (mam_cron_manager):
| Cron action | Schedule | What it does |
|---|---|---|
mam_order_auto_settle |
every 10 minutes | Finds unpaid eligible orders, captures via the mam_wc_settle_order filter (mam-woocommerce), then fires the payout action. Failures are reported in the cron result message. |
mam_order_complete_reminder |
daily, 08:00 | Notifies vendor admins of overdue processing orders and of today’s pickups/deliveries (mam_order_complete_reminder and mam-wc-pv_vendor_orders_for_today notification types). |
Auto-settle requires mam-woocommerce to be active (the capture goes through its mam_wc_settle_order hook; if no handler is attached the order is skipped and logged).
Safety rails (why double payouts can’t happen)
- Idempotency flag —
_mam_vendor_paidorder meta short-circuits any later payout call for that order. - Per-order payout lock — an option-based lock (
mam_wc_pv_payout_lock_<order id>) is taken before transfers run, so a cron run and a manual settle hitting the same order concurrently cannot both transfer; stale locks expire after 10 minutes. - Authorization — the manual settle endpoint requires the acting user to be staff of a vendor on the order (or a store manager); see Hooks: `mam_wc_pv_usercan`*.
Earnings visibility
Give vendors the WC PV – Earnings screen (wc_pv_earnings) for their report; its colors and today/this-week blocks are configured on the Settings tab (earnings_report_* options).
Related articles
- Plugin: mam-woocommerce-product-vendors
- Hook:
mam_wcpv_vendor_commission_payout - Hooks:
mam_wc_vendor_get_tip_productandmam_wc_vendor_split_tip - Hook:
mam_wc_pv_max_tip_amount
Metadata
| Field | Value |
|---|---|
| Article type | Recipe |
| Plugin slug | mam-woocommerce-product-vendors |
| Applies to plugin version | 26.19.1+ |
| Category | Building Your App |
| Audience | Site admin |
| Last verified | 2026-06-10 |
