When a new member is approved on your site, sending a tailored approval confirmation email can make their onboarding experience more personal and relevant. If your Paid Memberships Pro-powered website offers multiple levels, you may want to send different approval emails based on the member’s level. This helps set expectations, deliver level-specific benefits, or share next steps unique to each level group.
This guide shows you how to send a custom approval email for each membership level using the Paid Memberships Pro Approvals Add On. It is a great way to improve the post-approval user experience for your members while keeping your messaging organized and professional.

Understanding the Code Recipe
The $email->body
property is updated based on the user’s membership level. The code checks the level ID and sets a custom message to replace the default approval email, allowing you to send personalized content for each level.

About the Code Recipe
This code replaces the body of the membership approval email with a custom message based on the user’s membership level. It works by checking the level ID when the approval email is being prepared. It then assigns a different message to the $email->body
for each level.
Before implementing this code recipe:
- You must have the Paid Memberships Pro Approvals Add On installed and configured.
- Update the if conditions in the code to match the membership level IDs on your site.
- Replace the subject and body content with the actual email message you want to send for each membership level.
The Code Recipe
Adding the Recipe to Your Website
You can add this recipe to your site by creating a custom plugin or using the Code Snippets plugin available for free in the WordPress repository. Read this companion article for step-by-step directions on either method.
How to Customize This Code Recipe
You can customize this further for as many membership levels that require approval on your site. Here is how you can extend its functionality:
- Add new
elseif
blocks for additional membership levels by duplicating lines 31 to 34 of the conditional structure and updating the level ID accordingly.