Filter uncanny-learndash-groups

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;
	}


Scroll to Top