Skip to content

Commit

Permalink
Fix - Email Translations issue with user registered language in WPML
Browse files Browse the repository at this point in the history
  • Loading branch information
lekhnathpandey committed Sep 19, 2024
1 parent bfe8fe0 commit d80d009
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 19 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
= 3.3.3 - 19/09/2024 =
* Fix - Select all option not working in checkbox field.
* Fix - Continue setup wizard button not working properly.
* Fix - Email translations issue with user registered language in WPML.
* Fix - Conflict with lost password when WooCommerce My Account Page selected in user registration settings.
* Tweak - Added skip setup button in continue setup wizard notice.
* Tweak - Added filters to change reset password validation error message.
Expand Down
101 changes: 82 additions & 19 deletions includes/class-ur-emailer.php
Original file line number Diff line number Diff line change
Expand Up @@ -367,13 +367,20 @@ public static function send_mail_to_user( $email, $username, $user_id, $data_htm
'form_id' => $form_id,
);

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

if ( '0' === $email_status ) {
$subject = get_option( 'user_registration_email_confirmation_subject', __( 'Please confirm your registration on {{blog_info}}', 'user-registration' ) );
$settings = new UR_Settings_Email_Confirmation();
$message = $settings->ur_get_email_confirmation();
$message = get_option( 'user_registration_email_confirmation', $message );

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_email_confirmation', $message, $current_language, 'user_registration_email_confirmation' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_email_confirmation_subject', $subject, $current_language, 'user_registration_email_confirmation_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
Expand All @@ -386,6 +393,8 @@ public static function send_mail_to_user( $email, $username, $user_id, $data_htm
$message = $settings->ur_get_awaiting_admin_approval_email();
$message = get_option( 'user_registration_awaiting_admin_approval_email', $message );
list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_awaiting_admin_approval_email', $message, $current_language, 'user_registration_awaiting_admin_approval_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_awaiting_admin_approval_email_subject', $subject, $current_language, 'user_registration_awaiting_admin_approval_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
Expand All @@ -399,6 +408,8 @@ public static function send_mail_to_user( $email, $username, $user_id, $data_htm
$message = $settings->ur_get_registration_denied_email();
$message = get_option( 'user_registration_registration_denied_email', $message );
list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email', $message, $current_language, 'user_registration_registration_denied_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email_subject', $subject, $current_language, 'user_registration_registration_denied_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
Expand All @@ -413,6 +424,8 @@ public static function send_mail_to_user( $email, $username, $user_id, $data_htm
$message = get_option( 'user_registration_successfully_registered_email', $message );

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_successfully_registered_email', $message, $current_language, 'user_registration_successfully_registered_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_successfully_registered_email_subject', $subject, $current_language, 'user_registration_successfully_registered_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
Expand Down Expand Up @@ -472,6 +485,11 @@ public static function send_mail_to_admin( $user_email, $username, $user_id, $da
'form_id' => $form_id,
);

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

$login_option = ur_get_user_login_option( $user_id );

// If enabled approval via email setting.
Expand All @@ -483,8 +501,11 @@ public static function send_mail_to_admin( $user_email, $username, $user_id, $da
}

list( $message, $subject ) = user_registration_email_content_overrider( ur_get_form_id_by_userid( $user_id ), $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_admin_email', $message, $current_language, 'user_registration_admin_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_admin_email_subject', $subject, $current_language, 'user_registration_admin_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_admin_email', true ) ) {
foreach ( $admin_email as $email ) {
Expand Down Expand Up @@ -543,6 +564,11 @@ public static function send_approve_link_in_email( $user_email, $username, $user
'form_id' => $form_id,
);

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

$login_option = ur_get_user_login_option( $user_id );

// If enabled approval via email setting.
Expand All @@ -554,8 +580,11 @@ public static function send_approve_link_in_email( $user_email, $username, $user
}

list( $message, $subject ) = user_registration_email_content_overrider( ur_get_form_id_by_userid( $user_id ), $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_approval_link_email', $message, $current_language, 'user_registration_approval_link_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_approval_link_email_subject', $subject, $current_language, 'user_registration_approval_link_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_approval_link_email', true ) ) {
foreach ( $admin_email as $email ) {
Expand Down Expand Up @@ -602,8 +631,11 @@ public static function status_change_email( $email, $username, $status, $form_id
$message = $settings->ur_get_registration_pending_email();
$message = get_option( 'user_registration_registration_pending_email', $message );
list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_pending_email', $message, $current_language, 'user_registration_registration_pending_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_pending_email_subject', $subject, $current_language, 'user_registration_registration_pending_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_registration_pending_email', true ) ) {
self::user_registration_process_and_send_email( $email, $subject, $message, self::ur_get_header(), '', $template_id );
Expand All @@ -615,8 +647,8 @@ public static function status_change_email( $email, $username, $status, $form_id
$message = $settings->ur_get_registration_denied_email();
$message = get_option( 'user_registration_registration_denied_email', $message );
list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email', $message, $current_language, 'user_registration_registration_denied_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email_subject', $subject, $current_language, 'user_registration_registration_denied_email_subject' );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email', $message, $current_language, 'user_registration_registration_denied_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_denied_email_subject', $subject, $current_language, 'user_registration_registration_denied_email_subject' );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

Expand All @@ -630,8 +662,8 @@ public static function status_change_email( $email, $username, $status, $form_id
$message = $settings->ur_get_registration_approved_email();
$message = get_option( 'user_registration_registration_approved_email', $message );
list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_approved_email', $message, $current_language, 'user_registration_registration_approved_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_approved_email_subject', $subject, $current_language, 'user_registration_registration_approved_email_subject' );
$message = ur_get_translated_string( 'admin_texts_user_registration_registration_approved_email', $message, $current_language, 'user_registration_registration_approved_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_registration_approved_email_subject', $subject, $current_language, 'user_registration_registration_approved_email_subject' );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

Expand Down Expand Up @@ -661,6 +693,11 @@ public static function lost_password_email( $user_login, $user_data, $key ) {
return false;
}

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

$subject = get_option( 'user_registration_reset_password_email_subject', __( 'Password Reset Email: {{blog_info}}', 'user-registration' ) );
$settings = new UR_Settings_Reset_Password_Email();
$message = $settings->ur_get_reset_password_email();
Expand All @@ -674,8 +711,11 @@ public static function lost_password_email( $user_login, $user_data, $key ) {
);

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values );
$subject = self::parse_smart_tags( $subject, $values );
$message = ur_get_translated_string( 'admin_texts_user_registration_reset_password_email', $message, $current_language, 'user_registration_reset_password_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_reset_password_email_subject', $subject, $current_language, 'user_registration_reset_password_email_subject' );

$message = self::parse_smart_tags( $message, $values );
$subject = self::parse_smart_tags( $subject, $values );

if ( ur_option_checked( 'user_registration_enable_reset_password_email', true ) ) {

Expand Down Expand Up @@ -809,6 +849,10 @@ public static function send_profile_changed_email_to_admin( $user_email, $userna
$message = get_option( 'user_registration_profile_details_changed_email', $message );
$form_id = ur_get_form_id_by_userid( $user_id );

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}
$values = array(
'username' => $username,
'email' => $user_email,
Expand All @@ -817,8 +861,11 @@ public static function send_profile_changed_email_to_admin( $user_email, $userna
);

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_profile_details_changed_email', $message, $current_language, 'user_registration_profile_details_changed_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_profile_details_changed_email_subject', $subject, $current_language, 'user_registration_profile_details_changed_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_profile_details_changed_email', true ) ) {
foreach ( $admin_email as $email ) {
Expand Down Expand Up @@ -851,7 +898,7 @@ public static function send_profile_changed_email_to_user( $user_email, $usernam
$subject = get_option( 'user_registration_profile_details_updated_email_subject', esc_html__( 'Profile Details Updated Email: {{blog_info}}', 'user-registration' ) );
$settings = new UR_Settings_Profile_Details_Updated_Email();
$message = $settings->ur_get_profile_details_updated_email();
$message = get_option( 'user_registration_profile_details_updated_email', $message );
$message = get_option( 'user_registration_profile_details_Updated_email', $message );
$form_id = ur_get_form_id_by_userid( $user_id );

$values = array(
Expand All @@ -861,9 +908,17 @@ public static function send_profile_changed_email_to_user( $user_email, $usernam
'form_id' => $form_id,
);

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_profile_details_updated_email', $message, $current_language, 'user_registration_profile_details_updated_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_profile_details_updated_email_subject', $subject, $current_language, 'user_registration_profile_details_updated_email_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_profile_details_updated_email', true ) ) {
$template_id = ur_get_single_post_meta( $form_id, 'user_registration_select_email_template' );
Expand Down Expand Up @@ -904,9 +959,17 @@ public static function confirm_email_address_change_by_admin( $user_email, $user
'form_id' => $form_id,
);

$current_language = get_user_meta( $user_id, 'ur_registered_language' );
if ( empty( $current_language ) ) {
$current_language = ur_get_current_language();
}

list( $message, $subject ) = user_registration_email_content_overrider( $form_id, $settings, $message, $subject );
$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );
$message = ur_get_translated_string( 'admin_texts_user_registration_confirm_email_address_change_email', $message, $current_language, 'user_registration_confirm_email_address_change_email' );
$subject = ur_get_translated_string( 'admin_texts_user_registration_confirm_email_address_change_subject', $subject, $current_language, 'user_registration_confirm_email_address_change_subject' );

$message = self::parse_smart_tags( $message, $values, $name_value );
$subject = self::parse_smart_tags( $subject, $values, $name_value );

if ( ur_option_checked( 'user_registration_enable_confirm_email_address_change_email', true ) ) {
$template_id = ur_get_single_post_meta( $form_id, 'user_registration_select_email_template' );
Expand Down
1 change: 1 addition & 0 deletions readme.txt
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ You can report security bugs through the Patchstack Vulnerability Disclosure Pro
= 3.3.3 - 19/09/2024 =
* Fix - Select all option not working in checkbox field.
* Fix - Continue setup wizard button not working properly.
* Fix - Email translations issue with user registered language in WPML.
* Fix - Conflict with lost password when WooCommerce My Account Page selected in user registration settings.
* Tweak - Added skip setup button in continue setup wizard notice.
* Tweak - Added filters to change reset password validation error message.
Expand Down

0 comments on commit d80d009

Please sign in to comment.