Skip to content

Instantly share code, notes, and snippets.

@ipokkel
Last active September 20, 2021 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ipokkel/6a1d4201dbe43c09fce5d556166571dc to your computer and use it in GitHub Desktop.
Save ipokkel/6a1d4201dbe43c09fce5d556166571dc to your computer and use it in GitHub Desktop.
Create a custom message email variable for PMPro Approvals Add On.
<?php
/**
* This recipe adds a custom message per membership level to PMPro_Approvals email data.
*
* This recipe assumes that the !!custom_approved_message!! variable was added to the
* Approvals - Approved Email template, and
* the !!custom_denied_message!! variable was added to the
* Approvals - Denied Email template.
*
* 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.
* https://www.paidmembershipspro.com/create-a-plugin-for-pmpro-customizations/
*/
// # APPROVED #
// Data for the !!custom_approved_message!! email variable in the Approvals - Approved Email template.
function my_pmpro_approvals_member_approved_email_data( $data, $member ) {
$level_id = $data['membership_id'];
$membership_level_name = $data['membership_level_name'];
// Let's match the approval level ID and create a custom message for that level.
switch ( $level_id ) {
case '1':
$custom_approved_message = '<p>' . esc_html( 'You are now a member of the ' . $membership_level_name . ' level.' ) . '</p>';
break;
case '2':
$custom_approved_message = '<p>' . esc_html( 'Custom approved message for the ' . $membership_level_name . ' level.' ) . '</p>';
break;
default:
$custom_approved_message = '<p>' . esc_html( 'Default message here for other approval levels not specified above' ) . '</p>';
break;
}
$data['custom_approved_message'] = $custom_approved_message;
return $data;
}
add_filter( 'pmpro_approvals_member_approved_email_data', 'my_pmpro_approvals_member_approved_email_data', 10, 2 );
// # DENIED #
// Data for the !!custom_denied_message!! email variable in the Approvals - Denied Email template.
function my_pmpro_approvals_member_denied_email_data( $data, $member ) {
$level_id = $data['membership_id'];
$membership_level_name = $data['membership_level_name'];
// Let's match the approval level ID and create a custom message for that level.
switch ( $level_id ) {
case '1':
$custom_denied_message = '<p>' . esc_html( 'Custom message for the ' . $membership_level_name . ' level.' ) . '</p>';
break;
case '2':
$custom_denied_message = '<p>' . esc_html( 'Custom message for the ' . $membership_level_name . ' level.' ) . '</p>';
break;
default:
$custom_denied_message = '<p>' . esc_html( 'Default message here for other approval levels not specified above' ) . '</p>';
break;
}
$data['custom_denied_message'] = $custom_denied_message;
return $data;
}
add_filter( 'pmpro_approvals_member_denied_email_data', 'my_pmpro_approvals_member_denied_email_data', 10, 2 );
@jomoweb
Copy link

jomoweb commented Aug 12, 2021

Originally, I missed the step you mentioned in the comments to add !!custom_approved_message!! to the email template, but worked great after doing so!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment