Title: Maytes for WooCommerce
Author: kosmaytes
Published: <strong>November 2, 2026</strong>
Last modified: November 2, 2026

---

Search plugins

![](https://ps.w.org/maytes-for-woocommerce/assets/icon-256x256.png?rev=3779272)

# Maytes for WooCommerce

 By [kosmaytes](https://profiles.wordpress.org/kosmaytes/)

[Download](https://downloads.wordpress.org/plugin/maytes-for-woocommerce.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/maytes-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/maytes-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/maytes-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/maytes-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/maytes-for-woocommerce/)

## Description

**Split with Maytes** lets a customer pay their share of an order and invite their
mates to pay theirs. The order is paid once everyone has paid, and you receive the
full amount through Maytes.

The plugin adds three things to your store:

 * **The Split with Maytes button**, in a full-width row of its own under the express
   checkout buttons (Apple Pay, Google Pay, Link), at the same size. It works on
   the classic checkout and on the Checkout block.
 * **A checkout route** on your site that turns the cart into a pending WooCommerce
   order and a Maytes checkout.
 * **A webhook route** on your site that captures the payment and marks the order
   paid, so your usual order emails go out.

Your theme, your Stripe setup and your card checkout stay exactly as they are.

#### What you need

 * A Maytes merchant account, with sandbox and production credentials from the Maytes
   merchant portal.
 * WooCommerce, with AUD as the store currency.
 * A public HTTPS site, so Maytes can deliver webhooks.
 * At least one other payment method enabled in WooCommerce, such as card payments.
   On the Checkout block, Split with Maytes can’t be the store’s only payment method.

The full setup guide is at [developers.maytes.co/woocommerce](https://developers.maytes.co/woocommerce).

### External services

This plugin connects your store to Maytes, the service that runs Split with Maytes.
It’s needed to take Split with Maytes payments.

 * **Maytes checkout button script**, loaded from `https://js.maytes.co` on checkout
   pages where the button shows. It draws the button and opens the Maytes checkout.
   As with any script, the customer’s browser sends standard request information,
   such as its IP address and user agent.
 * **Maytes API** (`https://api.maytes.co`, or `https://sandbox-api.maytes.co` while
   testing), called from your server only:
    - when a customer clicks Split with Maytes, to create the checkout. It sends
      the order ID, the total, the currency, the name, quantity and price of each
      line, and the return and cancel URLs on your store;
    - when Maytes reports a payment, to capture or release it. It sends the checkout
      ID, the order ID, the total and the currency.
       Your OAuth client ID and secret
      are sent to `/oauth/token` to get an access token. The customer’s name, email
      address and postal address are never sent.
 * **Maytes checkout**, the page the button opens, where the customer and their 
   mates pay. The customer’s payment details are entered there, with Maytes.

Maytes [terms and conditions](https://maytes.co/terms/) and [privacy policy](https://maytes.co/privacy/).

## Screenshots

[⌊Split with Maytes on the checkout, on a phone.⌉⌊Split with Maytes on the checkout,
on a phone.⌉[

Split with Maytes on the checkout, on a phone.

## Installation

 1. Install and activate the plugin.
 2. Add your Maytes settings to `wp-config.php`, above the line `/* That's all, stop
    editing! */`. Start with sandbox values:
 3. define( ‘MAYTES_ENV’, ‘sandbox’ ); // ‘production’ when live define( ‘MAYTES_API_ENDPOINT’,‘
    https://sandbox-api.maytes.co’ ); // live: https://api.maytes.co define( ‘MAYTES_CLIENT_ID’,‘…’);
    define( ‘MAYTES_CLIENT_SECRET’, ‘…’ ); define( ‘MAYTES_WEBHOOK_SECRET’, ‘…’ );
 4. In the Maytes merchant portal, subscribe `https://your-store.example/wp-json/maytes/
    v1/webhook` to the `checkout.authorized` and `checkout.voided` events. Copy the
    signing secret it shows into `MAYTES_WEBHOOK_SECRET`.
 5. Pay with a sandbox test card, then switch every setting to production.

The settings stay on your server: the plugin never stores them in the database or
sends them to the browser.

## FAQ

### Do I need a Maytes account?

Yes. The plugin connects your store to Maytes, which runs the split payment. Your
credentials are in the Maytes merchant portal.

### Does it work with the Checkout block?

Yes. On the Checkout block, Split with Maytes is an express payment method in a 
full-width row under the other express buttons. On the classic checkout, it sits
directly under the WooCommerce Stripe Gateway’s express buttons.

### Does it change my Stripe setup?

No. Maytes payments stay outside Stripe. They don’t appear in your Stripe dashboard,
and the money arrives through Maytes settlements.

### Why does the button ask for my customer’s details first?

Maytes doesn’t return the customer’s name, email or address, and your order emails
need them. If a required field is empty, the customer sees the checkout’s usual 
error and fills it in first.

### Where are refunds made?

In the Maytes merchant portal, not from the WooCommerce order screen.

### Which currencies are supported?

AUD. The button stays hidden for other currencies.

### Can the Maytes checkout open in a popup?

Yes. By default the button takes the customer to the Maytes checkout and back. To
open it in a popup instead, add this to your theme’s `functions.php` or a small 
plugin:

    ```
    add_filter( 'maytes_woo_client_config', function ( $config ) {
        $config['button']['mode'] = 'popup';
        return $config;
    } );
    ```

### Can I stop a payment before the money is taken?

Yes. Return `false` from the `maytes_woo_can_fulfil` filter, for example when a 
booking has just filled up. The customer’s funds are released, nothing is captured,
and the order is marked Failed.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Maytes for WooCommerce” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ kosmaytes ](https://profiles.wordpress.org/kosmaytes/)

[Translate “Maytes for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/maytes-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/maytes-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/maytes-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/maytes-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/maytes-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * Faster checkouts and webhooks: the plugin keeps its Maytes access token until
   shortly before it expires, instead of asking for a new one every time.
 * A webhook delivered twice at the same moment is acted on once.
 * A customer can start Split with Maytes up to 10 times in 10 minutes, so repeated
   clicks can’t pile up unpaid orders.
 * The order received page says the payment is being confirmed while Maytes finishes
   it.
 * New `maytes_woo_client_config` filter, for example to open the Maytes checkout
   in a popup.
 * Deleting the plugin removes its cached tokens and settings. Orders keep their
   Maytes notes.
 * The code is split into small classes. Hooks and their callbacks, routes, order
   data, the public `Maytes_Woo` methods and the `maytes_woo_can_fulfil` filter 
   are unchanged, so code that moves the button or calls the plugin keeps working.

#### 1.0.1

 * Fixed: on the classic checkout, the button now keeps clear of the “Billing details”
   heading when no other express button is showing.
 * Fixed: a paid order now has one payment note, not two, on WooCommerce 10.4 and
   later.
 * Fixed: your store’s own checkout checks (minimum order amounts, address checks,
   coupons, stock, and rules added by other plugins) now also run when a customer
   chooses Split with Maytes.
 * Fixed: when the last item sells out while the order is being placed, the customer
   now sees the out-of-stock message instead of a general error.
 * Fixed: the order page now says “Payment via Split with Maytes”, and Split with
   Maytes is listed under WooCommerce  Settings  Payments with a link to the setup
   guide.
 * Fixed: product names with “&” or quotes now show on the Maytes checkout as written,
   not as “&”.

#### 1.0.0

 * First release: Split with Maytes on the classic checkout and the Checkout block,
   with capture on the webhook.

## Meta

 *  Version **1.1.0**
 *  Last updated **1 hour ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [checkout](https://wordpress.org/plugins/tags/checkout/)[group payments](https://wordpress.org/plugins/tags/group-payments/)
   [payments](https://wordpress.org/plugins/tags/payments/)[Split Payments](https://wordpress.org/plugins/tags/split-payments/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/maytes-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/maytes-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/maytes-for-woocommerce/reviews/)

## Contributors

 *   [ kosmaytes ](https://profiles.wordpress.org/kosmaytes/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/maytes-for-woocommerce/)