ulgm_redemption_email_subject
Filters the subject line of the redemption email sent to users after a successful redemption.
add_filter( 'ulgm_redemption_email_subject', $callback, 10, 2 );
Description
Filters the subject line of the redemption email sent to users. Developers can modify the subject to customize the email's content, providing flexibility in communication. This hook fires before the redemption email is sent, allowing for dynamic subject line generation based on user data or other contextual information.
Usage
add_filter( 'ulgm_redemption_email_subject', 'your_function_name', 10, 2 );
Parameters
-
$redemption_template_subject(mixed) - This parameter holds the current subject line for the redemption email, allowing it to be filtered and modified.
-
$user_data(mixed) - This parameter contains the redemption email subject line, which can be modified by the filter.
Return Value
The filtered value.
Examples
add_filter( 'ulgm_redemption_email_subject', 'my_custom_redemption_email_subject', 10, 2 );
/**
* Customizes the subject line of the redemption email.
*
* Adds the group name to the beginning of the subject line for better context.
*
* @param string $redemption_template_subject The default email subject.
* @param array $user_data An array containing user and redemption data.
* @return string The modified email subject.
*/
function my_custom_redemption_email_subject( $redemption_template_subject, $user_data ) {
// Assuming $user_data contains a 'group_name' key, or we can fetch it.
// For demonstration, let's assume it's directly available.
$group_name = isset( $user_data['group_name'] ) ? $user_data['group_name'] : __( 'Your Group', 'your-text-domain' );
// Prepend the group name to the subject line.
return sprintf( __( '[%s] %s', 'your-text-domain' ), $group_name, $redemption_template_subject );
}
Placement
This code should be placed in the functions.php file of your active theme, a custom plugin, or using a code snippets plugin.
Source Code
src/classes/group-management/class-group-management-helpers.php:1265
src/classes/group-management/class-group-management-helpers.php:1670
public static function resend_redemption_email( $user_data, $redemption_template_subject, $redemption_template_body, $group_id ) {
// Set up user data
$user_email = $user_data['user_email'];
$first_name = $user_data['first_name'];
$last_name = $user_data['last_name'];
// Get the redemption key
$redemption_key = $user_data['key'];
// Filter #EmailEncoded variable
$redemption_template_subject = str_ireplace( '#EmailEncoded', urlencode( $user_email ), $redemption_template_subject );
$redemption_template_body = str_ireplace( '#EmailEncoded', urlencode( $user_email ), $redemption_template_body );
// Filter #email variable
$redemption_template_subject = str_ireplace( '#Email', $user_email, $redemption_template_subject );
$redemption_template_body = str_ireplace( '#Email', $user_email, $redemption_template_body );
// Filter #first_name variable
$redemption_template_subject = str_ireplace( '#FirstName', $first_name, $redemption_template_subject );
$redemption_template_body = str_ireplace( '#FirstName', $first_name, $redemption_template_body );
// Filter #last_name variable
$redemption_template_subject = str_ireplace( '#LastName', $last_name, $redemption_template_subject );
$redemption_template_body = str_ireplace( '#LastName', $last_name, $redemption_template_body );
// Filter #redemption_key variable
$redemption_template_subject = str_ireplace( '#RedemptionKey', $redemption_key, $redemption_template_subject );
$redemption_template_body = str_ireplace( '#RedemptionKey', $redemption_key, $redemption_template_body );
// Filter #SiteUrl variable
$redemption_template_subject = str_ireplace( '#SiteUrl', site_url(), $redemption_template_subject );
$redemption_template_body = str_ireplace( '#SiteUrl', site_url(), $redemption_template_body );
// Filter #LoginUrl variable
$redemption_template_subject = str_ireplace( '#LoginUrl', wp_login_url(), $redemption_template_subject );
$redemption_template_body = str_ireplace( '#LoginUrl', wp_login_url(), $redemption_template_body );
// Filter #GroupLeaderInfo variable
$redemption_template_subject = str_ireplace( '#GroupLeaderInfo', self::get_group_leader_info( $group_id ), $redemption_template_subject );
$redemption_template_body = str_ireplace( '#GroupLeaderInfo', self::get_group_leader_info( $group_id ), $redemption_template_body );
// Filter #Courses variable
$redemption_template_subject = str_ireplace( '#Courses', self::get_group_courses( $group_id ), $redemption_template_subject );
$redemption_template_body = str_ireplace( '#Courses', self::get_group_courses( $group_id ), $redemption_template_body );
// Remove escaped apostrophes
$redemption_template_subject = str_replace( "'", "'", $redemption_template_subject );
$redemption_template_body = str_replace( "'", "'", $redemption_template_body );
$to = apply_filters( 'ulgm_redemption_email_to', $user_email, $user_data );
$subject = apply_filters( 'ulgm_redemption_email_subject', $redemption_template_subject, $user_data );
$body = apply_filters( 'ulgm_redemption_email_body', $redemption_template_body, $user_data );
if ( ! class_exists( 'WP_Better_Emails' ) || ( false === preg_match( '/<DOCTYPE/', $body ) && false === preg_match( '/<head>/', $body ) ) ) {
$body = wpautop( $body );
}
$send_mail = apply_filters( 'ulgm_maybe_resend_redemption_email', true, $to, $subject, $group_id );
if ( $send_mail ) {
$redemption_email = SharedFunctions::wp_mail( $to, $subject, $body, self::get_headers() );
//If the mail is successful let a a fake user and group meta
if ( is_wp_error( $redemption_email ) ) {
return false;
}
}
return true;
}