Filter the settings of email frequency sent

/** * Filter the settings of email frequency sent when using the Extra Expiration Warning Emails Add On * https://www.paidmembershipspro.com/add-ons/extra-expiration-warning-emails-add-on/ * * Update the $settings array to your list of number of days => ”. * Read the Add On…Continue reading

Remove old roles on membership upgrade

add_action( ‘pmpro_after_change_membership_level’, ‘remove_old_roles_on_membership_upgrade’, 10, 2 ); function remove_old_roles_on_membership_upgrade( $level_id, $user_id ) { // Get the user’s current roles $user = new WP_User( $user_id ); $current_roles = $user->roles; // Define your membership level to role mapping $membership_roles = array( ‘1’ =>…Continue reading

capture_user_registration_details

add_action(‘user_register’, ‘capture_user_registration_details’, 10, 1); function capture_user_registration_details($user_id) { $user_info = get_userdata($user_id); // Capture and store registration details $details = [ ‘First name’ => $user_info->first_name, ‘Last name’ => $user_info->last_name, ‘Email’ => $user_info->user_email, ]; // Store details in a transient, expire after 1…Continue reading

restrict_specific_characters

function restrict_specific_characters($errors, $sanitized_user_login, $user_email) { // Regular expression for matching Japanese, Chinese, and Cyrillic characters // Japanese: U+3040–U+30FF (Hiragana and Katakana), U+4E00–U+9FBF (Common Kanji) // Chinese (Simplified + Traditional): U+4E00–U+9FFF // Russian (Cyrillic): U+0400–U+04FF // This is a simplified check…Continue reading

change_expired_membership_to_level_one

function change_expired_membership_to_level_one($level_id, $user_id, $cancel_level) { // Check if the bypass flag is set if (get_user_meta($user_id, ‘bypass_expiration’, true) == ‘yes’) { // Reset the flag update_user_meta($user_id, ‘bypass_expiration’, ‘no’); return; // Exit the function to avoid changing the membership level } if…Continue reading