The Forms plugin enables the creation of forms to register users from your website’s front-end. Using both WooCommerce and Toolset Forms Commerce plugins, you can also sell user registration. This enables you to create membership sites and sell subscriptions to your site’s services, as well as to implement anything else that requires charging payments for user registration.

This document explains how to charge for user registration on a membership site. The information provided here can be adjusted to suit any other type of site that involves charging for user registration.

Workflow

To enable the charging of user registration on your site you need three plugins:

  • WooCommerce – Creates the product that we want to sell. In our example, it’s the membership. We also use it to set up payment options and all other e-commerce settings.
  • Toolset Forms – Creates the front-end user registration forms.
  • Toolset Forms Commerce – Connects the User Registration forms with WooCommerce and automatically creates orders when users submit the forms on the front-end.

1. Setting correct WooCommerce account-creation options

Since Forms will be in charge of creating the newly registered user accounts, it is important to set the correct account-creation options in WooCommerce settings.

 

StepScreenshot
In the WordPress administration, go to the WooCommerceSettings page and click the Accounts & Privacy tab.

In the Guest checkout section select the first option. Deselect the first two options in the Account creation section.

 

2. Setting up the membership product using WooCommerce

To charge for membership, you must first create a WooCommerce product for it.

To use WooCommerce in your site, you will need to set up additional options for it, such as payment gateways and currency. If you are new to WooCommerce, please first read about configuring WooCommerce settings.

 

StepScreenshot
In the WordPress admin, go to the Products -> Add Product page.woocomerce-add-product
Add a name, description, and any other information you need for your product.
In the product settings, select that the product is virtual. Then, set its price and other options.woocommerce-digital-product

 

3. Creating the User Form for registration

You must now create the actual form that will enable user registration on the front-end. If you are new to Forms, check out our guide about setting up user registration.

StepScreenshot
In the form’s Settings section, select Create new user and define the user role that will be assigned to the user’s registration.

Under the After user submits this form option select Go to checkout page.

In the next step, your user form will be auto-generated. Use the drag-and-drop editor to add user metadata and custom fields to it.

Read more on how to build user forms with Forms.

In the final step, you need to add an email notification to your form. This is especially important if you are using the options to auto-generate the username, password and/or nickname, because it provides the users with a way to receive this information.

Here, the most important options to select are:

  1.  Select the When submitting the form with payment details option.
  2. Make sure the first option, Send this notification to the billing email is selected.

Read more about how to add email notifications to user forms.

 

4. Setting the Toolset Forms Commerce options to charge for registration

Now that you have set up both the WooCommerce product and our user registration form, you can connect them together using the Toolset Forms Commerce plugin.

StepScreenshot
Edit your user form, scroll to the very bottom and find the Toolset Forms Commerce section. There, select the Charge payment with this form option.
The Toolset Forms Commerce options section will expand. In the Product to buy when submitting the form section, select the membership product you created.cred-commerce-select-product
Select the desired option for the Checkout process.cred-commerce-select-checkout-process
You can also customize the checkout and thank-you messages that will be shown by WooCommerce.cred-commerce-customize-messages
Optionally, you can change the status of the user, depending on the current payment status.

There are three user creation statuses:

  • Hide a user: User information is still stored in the database but not yet published; it is visible on the site.
  • Delete a user: User information is deleted from the database and the site.
  • Create a user: The user is created and published on the site.
cred-commerce-user-statuses

Front-end results and what users will see

Now that you have set up everything on your site, let’s check what users will see on the front-end and what occurs on your website regarding the order and user registration.

1. Users register on the front-end using the Toolset form

StepScreenshot
In this section, the user can set their username, password, email address, and all the information entered in the registration form.cred-user-form-front-end

 

2. After submitting the form, users are navigated to the checkout section

StepScreenshot
The checkout page is the classic WooCommerce page, where users can enter their shipping address and other information.
After entering this information, users can proceed with one of the provided payment options. In our example here, we used the PayPal payment, which is easily set up in the WooCommerce settings.
cred-user-commerce-checkout

3. After submitting the checkout form, the order for the purchase is automatically created by WooCommerce

StepScreenshot
As soon as the checkout form is submitted, WooCommerce automatically creates the order for this purchase. The default state of the order is Pending and changes according to the status of the payment.

Ultimately, orders are either Completed after the payment transaction is completed or Cancelled. Payments are canceled if the user does not complete the payment.

cred-user-commerce-order-created

4. After submitting the checkout form, users are redirected to the payment service

In our case, users are taken to the secure PayPal page, where they can finalize the payment by providing their payment information.

This stage of the order process depends on the payment options provided by the checkout page and the final payment option that the customer chooses. In each case, they are finally navigated to the Order Received page, such as the thank-you page.

5. After payment is completed, users are navigated to the Order Received page

StepScreenshot
 The Order Received page summarizes the order details, a cost of the bought product, customer details, etc.cred-user-commerce-thankyou

 

6. After the payment completes, the new user is registered on the site

Finally, after payment is completed, the order is marked as Complete and the user is registered on the site.

cred-user-commerce-user-created

Marking the order as complete

Please note that with some payment options, such as PayPal, the order will not be automatically marked as Complete after the user pays for the product. You will receive the automatic payment email notification and invoice from WooCommerce; however, you will need to manually mark the order as Complete.

There are third-party plugins that solve this issue and automatically mark the orders Complete, such as the WooCommerce – Autocomplete Order plugin.