Membership approvals allows you to control the application process for your membership site. It’s a necessary feature for many membership sites that want to control who can gain access to your community or restricted content.
How it Works
After a member signs up, the Admin, Membership Manager, or new Approver roles will have the ability to approve their membership or deny the application. The member will be charged the initial payment and subscription configured (if applicable) based on the level’s settings at checkout.
Additionally, you can set a level to require an approved membership from another level in order to complete checkout. This allows you to offer a two-step membership application and full membership registration model. You can place an application fee on the application level, and then charge your full recurring membership fee on the primary membership for approved members.
The applying member and the admin will receive email notifications along the process to alert them of the application status.
Members pending approval will not have access to view members-only content until their membership has been approved. After a member is approved, they will be able to access all members-only content.

Video: How to Approve or Deny Members
Installation
You must have the Paid Memberships Pro plugin installed and activated with a valid license type to use this Add On.
- Navigate to Memberships > Add Ons in the WordPress admin.
- Locate the Add On and click “Install Now”.
- To install this plugin manually, download the .zip file above, then upload the compressed directory via the Plugins > Add New > Upload Plugin screen in the WordPress admin.
- Activate the plugin through the Plugins screen in the WordPress admin.
Setup
- Navigate to the Memberships > Membership Levels > “Edit Level” or “Add New Level” admin page.
- Under the “Approval Settings” heading, select an option for the “Requires Approval” setting. Options include:
- No.
- Yes. Admin must approve new members for this level.
- Yes. User must have an approved membership for a different level.
- Yes. User must have an approved membership for a different level AND admin must approve new members for this level.
- If the level requires approval from another level, select the “application level” from the field “Which level?”
- Click “Save Level”.
Processing Approvals
Approvals are managed via the Memberships > Approvals admin page.
This dashboard shows all of your members that have completed an application and allows the administrator to approve, deny, or view the status of a previous decision.
- To approve a member, click the “Approve” link.
- To deny a member, click the “Deny” link.
- To reverse a previous decision, click the “[x]” link.

Applicant and Member Notifications
There are five notification emails that will be sent to the admin or member along the membership approval process. These emails can be customized on the Memberships > Settings > Email Templates page in the WordPress admin.
Email File Name | Description |
---|---|
admin_approved.html | Sent to the admin confirming an approved membership application via the Memberships > Approvals admin page.
Available email template data: |
admin_denied.html | Sent to the admin confirming a denied membership application via the Memberships > Approvals admin page.
Available email template data: |
admin_notification_approval.html | Sent to the admin after a new membership application has been received.
Available email template data: |
application_approved.html | Sent to the member after the application has been approved via the Memberships > Approvals admin page.
Available email template data: |
application_denied.html | Sent to the member after the application has been denied via the Memberships > Approvals admin page.
Available email template data: |
Note that only the variables listed for each template above can be used in your email. If you use other variables in your email the content will not be accurate. You will need to write a custom filter using the appropriate hook documented below to add additional data to these emails.
Action and Filter Hooks
The following actions and filters are available in this Add On:
apply_filters( 'pmpro_approvals_status_filter', $status, $user_id, $level_id ); |
apply_filters( 'pmproap_user_is_approved', ( 'approved' == $user_approval['status'] ? true : false ), $user_id, $level_id, $user_approval ); |
apply_filters( 'pmproap_user_is_denied', ( 'denied' == $user_approval['status'] ? true : false ), $user_id, $level_id, $user_approval ); |
apply_filters( 'pmproap_user_is_pending', ( 'pending' == $user_approval['status'] ? true : false ), $user_id, $level_id, $user_approval ); |
apply_filters( 'pmpro_approvals_members_list_status', array( 'oldmembers', 'cancelled', 'expired' ) ); |
apply_filters( 'pmpro_approvals_email_confirmation_status', $r ); |
apply_filters( 'pmpro_approvals_member_approved_email_data', $this->data, $member, $level ); |
apply_filters( 'pmpro_approvals_member_denied_email_data', $this->data, $member ); |
apply_filters( 'pmpro_approvals_admin_pending_email_data', $this->data, $member, $admin ); |
apply_filters( 'pmpro_approvals_admin_approved_email_data', $this->data, $member, $admin ); |
apply_filters( 'pmpro_approvals_admin_denied_email_data', $this->data, $member, $admin ); |
do_action( 'pmpro_approvals_list_extra_cols_header', array $theuser ); |
do_action( 'pmpro_approvals_list_extra_cols_body', array $theuser ); |
This is a Plus Add On.
Plus Add Ons are included in all Plus or higher premium membership plans.