When desiring to approve users prior to completing a membership purchase, there are two general approaches:
- Approval at Registration – in this approach, you restrict purchase of memberships to registered users only, and user registrations must be approved.
- Approval of the Order – using this approach, the membership purchase process is generally the same as it normally would be – the user completes registration when they purchase a membership. However, the order is marked as completed manually by an admin (or shop manager) so the user does not get membership access until the order is completed.
Method 1: Approval at Registration
A common way to handle the moderated registration requirement is to restrict all of WooCommerce to registered users only. This allows you to limit registration to be controlled by WP-Members without WooCommerce’s additional elements, and allows you to limit access to purchasing any membership products to users who have been registered and approved.
First, make sure moderated registration is enabled in WP-Members’ main options. Second, make sure you have created a registration page and a login page and identified their location in the WP-Members settings.
Next, you will need the WP-Members Advanced Options extension to be installed and activated. Use the settings under Advanced > WooCommerce to redirect all WooCommerce endpoints to the WP-Members login.
It is also recommended that you edit the user approval email (“Registration is Moderated, User is Approved” under WP-Members > Emails) to include instructions you want to give to the user once approved. Generally, this might include information on purchasing a membership along with pertinent links and a description of next steps for what you expect from the user.
In WooCommerce, go to WooCommerce > Settings > Accounts & Privacy. You need to eliminate the option for placing an order without an account (i.e. “guest checkout”). This will mean that any user must be a registered user in order to complete a purchase.
Also, in the same settings screen, make sure that you uncheck allowing users to create an account at checkout or on the My Account page. These won’t be possible anyway due to the WP-Members Advanced Options settings that block these endpoints, but it’s good to have them disabled anyway.
Method 2: Approval of the Order
The second approach is slightly different. In this approach, the approval is based on the order and marking it complete, so you DO NOT use the moderated registration setting in WP-Members. This will require that you set up WP-Members Memberships for WooCommerce in its traditional recommended setup – allow the user to complete registration during setup. You’ll be approving the membership access based on the order, not the user.
Next, in the WP-Members WooCommerce tab, uncheck the option to “Automatically mark membership product orders as completed”. This sets up your approval process. WP-Members Memberships for WooCommerce does not assign membership access until the order is marked as completed. With this setting disabled, the order will be left as pending when the user completes a membership purchase, allowing you to review the order and manually mark it as complete.
Optionally, you can use the WP-Members Advanced Options to include a couple of additional settings. If you choose to use this setup and still leave moderated registration turned on, you can use the Advanced Options to “Disable WooCommerce Autologin when registration is moderated”.
You can also optionally enabled the setting to send the WP-Members admin notification when the customer registers. WooCommerce also sends notifications of the order being transacted, so this may be redundant, but it may be information you wish to have separately. In other words, use it if you want it or disable it if you don’t.
These are the two possible general setups. I hope you can see how things fit together, but if anything is unclear, ask.
There are other possible spin-off options when setting up this way, but keep in mind that WooCommerce is its own plugin with its own way of handling users. It’s best to run through the entire process several times in testing so that you completely understand the user experience.