Paid Memberships Pro Square Payment Gateway
Accept Paid Memberships Pro (PMPro) membership payments with Square Hosted Checkout — no WooCommerce, no WooCommerce Subscriptions, and no on-site card fields.
Square for PMPro membership sites
Payments Square Connect adds a native PMPro payment gateway: Square Hosted Checkout (Payments Square Connect). Members complete checkout on your PMPro membership page, then pay on Square's secure hosted page (Apple Pay, Google Pay, and cards when enabled). They return to your site when payment is confirmed.
This is the same hosted checkout pattern used for WooCommerce and form plugins — one Square OAuth connection powers your entire WordPress stack.
Why use hosted checkout for PMPro?
| Benefit | Details |
|---|---|
| No WooCommerce Subscriptions | PMPro recurring levels work directly with Square subscription plan variations |
| Free PMPro + free plugin | Install PMPro from WordPress.org; no paid PMPro Square add-on required for redirect checkout |
| Fewer checkout errors | No Square Web Payments SDK embedded in your theme — fewer JavaScript and caching conflicts |
| Automatic renewals | Square bills members on your PMPro billing cycle; webhooks update membership status |
| One connection | Same Sandbox/Live Square account as WooCommerce, WPForms, CF7, and payment links |
Requirements
- WordPress 6.0+, PHP 7.4+
- Paid Memberships Pro (free)
- Payments Square Connect with Square connected
- Not required: WooCommerce, WooCommerce Subscriptions, or Stripe
Setup guide
1. Install Paid Memberships Pro
Install and activate Paid Memberships Pro from WordPress.org. Run the setup wizard to create membership levels and pages (checkout, account, levels, etc.).
2. Connect Square
Open Payments Square Connect → Get started (or Payments Square Connect settings):
- Choose Sandbox for testing or Live for real payments.
- Click Connect Square and authorize your seller account.
- Select a Square location and save.
3. Enable the PMPro gateway
- Go to Memberships → Settings → Payments in wp-admin.
- Payment Gateway: select Square Hosted Checkout (Payments Square Connect).
- Gateway Environment: match your Square Connect mode (Sandbox/Testing or Live).
- Click Save All Settings.
The PMPro dashboard Configure Payment Settings step should show a green check when Square is connected and you have at least one paid membership level.
4. Create a recurring membership level
- Memberships → Membership Levels → Add New Level (or edit an existing level).
- Set Initial Payment and/or Billing Amount (e.g.
$29.00per month — enter29, not2900). - Set Billing Cycle (e.g. every 1 Month).
- Save the level.
5. Test checkout
Open your PMPro checkout page (e.g. /membership-checkout/) while logged in or as a guest:
- Select the membership level.
- Fill billing fields and click Complete Payment.
- You are redirected to Square Hosted Checkout.
- Pay with a Sandbox test card (Sandbox mode) or a real card (Live mode).
- Square redirects back to your site; PMPro activates the membership when payment succeeds.
How recurring billing works
For recurring PMPro levels, the plugin:
- Maps the level's billing amount and cycle to a Square subscription plan variation (auto-match existing catalog plans or create a new STATIC-priced plan via Square Catalog API).
- Creates a Square payment link with
subscription_plan_idset to that variation. - Redirects the member to Square to subscribe.
- Stores the PMPro order as pending until return or webhook confirms payment.
- On success, assigns the membership level via PMPro.
Renewals: Square charges the member each billing period. Configure the webhook URL from Payments Square Connect → Connect in the Square Developer Dashboard so invoice.payment_succeeded and subscription events update membership status when buyers do not return to your site.
Optional: manual Square plan variation
By default, the plugin auto-matches or creates a Square plan variation from the PMPro level price and cadence.
To pick a specific plan:
- Create subscription plans in Square (or let the plugin create them on first checkout).
- Open Payments Square Connect → Subscription Plans and copy a Variation ID.
- Edit the PMPro membership level → Square Subscription Plan → choose the variation (or leave Auto-match).
PMPro gateway settings screen
Under Memberships → Settings → Payments, click Edit Settings next to Square Hosted Checkout (Payments Square Connect) to view:
- Square Connection status
- PMPro Environment (must match Square Connect Sandbox/Live)
- Webhook URL for Square Developer Dashboard
Square OAuth credentials and location are managed on Payments Square Connect → Connect — not duplicated inside PMPro.
Phone numbers and checkout errors
Square requires valid E.164 phone numbers when pre-filling checkout. If a member enters an incomplete phone on the PMPro form, the plugin skips the phone field on the Square link instead of failing the entire checkout. Email is still pre-filled.
Use a full 10-digit US number (e.g. 5551234567) when testing, or leave phone blank if optional on your level.
Local development (localhost / XAMPP)
- Use
http://localhost/...for checkout and wp-admin — nothttps://localhost(XAMPP serves HTTP on port 80). - OAuth return URLs and payment return URLs automatically use HTTP for localhost.
- For Square webhooks on local dev, use a tunnel (e.g. Cloudflare Tunnel) and set WordPress
siteurlto the public HTTPS URL while testing webhooks.
Limitations
- On-site card fields are not supported — checkout always redirects to Square Hosted Checkout.
- Update billing / payment method on PMPro billing page directs members to complete checkout again or manage billing in Square (hosted gateway pattern).
- Refunds for membership orders follow the same rules as WooCommerce hosted checkout — initial signup orders with a stored Square payment ID can be refunded from wp-admin when supported; recurring renewal charges are refunded from the Square Dashboard.
- Cash App Pay / Afterpay are not available for subscription signup links.
Compare: PMPro + Square options
| Approach | WooCommerce needed? | Checkout style |
|---|---|---|
| Payments Square Connect + PMPro gateway | No | Square Hosted Checkout redirect |
| WooCommerce + WooCommerce Subscriptions + Square | Yes | Store cart + optional hosted checkout |
| PMPro Stripe gateway | No | On-site Stripe fields or Stripe Checkout |
For membership-only sites (courses, communities, associations, rental listings), PMPro + Payments Square Connect is the simplest path to Square recurring memberships without running a WooCommerce store.
Troubleshooting
| Issue | Fix |
|---|---|
| Configure Payment Settings not ticked | Connect Square; ensure a paid membership level exists; save PMPro payment settings |
| Square API request failed | Reconnect Square on Connect screen; match Sandbox/Live in PMPro and Connect |
| INVALID_PHONE_NUMBER | Use valid 10-digit phone or leave blank — plugin skips invalid numbers |
| Stays on checkout after submit | Update to plugin 1.3.27+ (external Square redirect fix) |
| $40,000 instead of $400 | PMPro Billing Amount is in dollars — enter 400 not 40000 |
| Renewals not updating | Add webhook URL in Square Developer Dashboard; subscribe to payment and subscription events |
Related guides
- Subscriptions overview — Square plan variations for WooCommerce, CF7, WPForms, and PMPro
- Webhooks — payment and subscription event setup
- Getting started — connect Square and pick a location
- Support — email, WhatsApp, WordPress.org forum