Skip to content
GPLWP Guides

How to collect payments during WordPress user registration

Membership & LMS Time About 30–60 minutes 6 steps Updated 12 Oct 2026

MEMBERSHIP & LMS
The short answer

WordPress can create user accounts, but its native registration form has no payment step. To collect money during signup, connect a membership, LMS, WooCommerce or form plugin to a payment gateway, or build a custom Authorize.Net flow. A registration-payment plugin is the fastest option.

The route
  1. 01Choose the registration flow
  2. 02Know the manual route
  3. 03Prepare the payment gateway
  4. 04Connect signup to access
  5. 05Test every payment outcome
  6. 06Take the fast way

What you need

  • A WordPress site with HTTPS enabled
  • An Authorize.Net merchant account and API credentials
  • A membership, LMS, WooCommerce or registration-form plugin
  • Administrator access to WordPress

Choose the registration flow

Decide whether payment and account creation must happen in one form. For a membership or course, the usual flow is: visitor selects a plan, enters account details, pays, then receives the correct membership level, role or course access.

If a separate checkout is acceptable, WooCommerce can create an account during checkout. Its checkout page is designed to collect payment and submit the order, while the account settings control whether customers can register there.

Know the manual route

WordPress itself only handles account registration. The native General settings control whether anyone may register and which default role new users receive; they do not add a payment gateway or connect payment status to access.

A custom one-form solution therefore needs server-side code to create a pending registration, send the customer to Authorize.Net, verify the result, and only then assign the paid role or membership. This is possible, but you must also handle declines, cancellations, duplicate notifications, refunds, abandoned payments and gateway changes. It is usually fine for a developer-maintained site, but a poor Friday-afternoon fix for a live membership business.

Prepare the payment gateway

Log in to Authorize.Net and create separate sandbox and production credentials. Keep the API login ID and transaction key on the server or in the plugin settings; do not place them in page content or browser-side JavaScript.

If you build the flow yourself, Authorize.Net Accept Hosted can display a hosted payment form after your server requests a form token. The token is used to redirect or embed the payment form, and Authorize.Net also supports webhooks for transaction notifications.

Connect signup to access

In your membership, LMS or form plugin, create the registration form and add the fields you actually need. Add the paid plan, course or membership level, set its amount, and select Authorize.Net as the payment method.

Configure the success action to assign the intended membership level, user role or course enrolment only after a successful payment. Set a separate message or page for declined and cancelled payments, and make sure an unpaid visitor cannot reach paid content merely by completing the account fields.

Test every payment outcome

Use the Authorize.Net sandbox before switching to live credentials. Test a successful payment, decline, cancellation, browser refresh, duplicate submission, invalid email, existing username and a customer who closes the payment window before returning.

Check the WordPress user, membership or LMS record, transaction record, confirmation email and access rules after each test. The important check is that a failed or abandoned payment does not leave a fully entitled account behind. Authorize.Net notes that webhooks can notify your server even when the customer closes the browser before returning to your site.

Take the fast way

For a one-form Authorize.Net signup, use User Registration Authorize.Net. Install and activate it, connect the Authorize.Net account, create the registration form, add the payment amount or membership choice, and map successful payments to the appropriate user role or access level.

Use its CAPTCHA and form controls to reduce spam, then run the same sandbox tests before going live. This avoids writing and maintaining the custom payment verification, account-state and gateway callback code required by the manual route.

The fast route

Let User Registration Authorize.Net do it

Authorize.Net checkout during signup, ideal when registration and payment must happen in one form.

Get User Registration Authorize.Net

Sources

  1. woocommerce.com /document/user-registration-for-woocommerce/?utm_source=open…
  2. wordpress.org /documentation/article/settings-general-screen/?utm_source=o…
  3. developer.authorize.net /api/reference/features/accept-hosted.html?utm_source=openai

Questions

Can WordPress collect payment through its default registration form?
No. WordPress’s default registration controls whether visitors may create accounts and which default role they receive, but it does not include a payment gateway or paid-membership logic. You need a membership, LMS, WooCommerce or form plugin, or custom development, to connect payment status with account creation and access.
Should the WordPress account be created before payment?
Create the account as pending or restrict its paid access until payment is confirmed. Creating a fully entitled account before the gateway confirms payment can let declined, cancelled or abandoned registrations reach protected content. Your integration should also cope with a customer returning to the site more than once.
Can WooCommerce handle registration and payment together?
Yes, if a checkout-style flow is acceptable. Enable customer account creation during checkout, sell the membership or course as a product, and use the order status to trigger access. This is not the same as WordPress’s native registration form, because the customer registers as part of WooCommerce checkout.
What happens if someone closes the Authorize.Net payment page?
Treat the registration as unpaid until your site receives a confirmed successful transaction. Do not rely only on the customer returning to a thank-you page: Authorize.Net supports webhooks that can notify your server about transaction events even if the browser is closed. Provide a way for the visitor to retry payment without creating duplicate accounts.
Do I need custom code to collect registration payments?
You need either a plugin that combines registration with a payment gateway or custom code that does the same work. Custom code is practical when you need an unusual workflow and have ongoing developer support. For a standard paid membership, course or registration form, a dedicated registration-payment plugin is quicker to configure and easier to maintain.