在 WooCommerce 中重置密码时过滤发送给客户的电子邮件的主题和消息
Filter the subject and message for email sent to the customer when they reset their password in WooCommerce
经过长时间的搜索,我找不到一个钩子来过滤当客户在 WooCommerce 中重置密码时发送给客户的电子邮件的主题和消息。 有那个吗?
我需要从默认的 Password Reset Request for {site_title}
主题中删除(或替换)网站标题,消息也是如此,但不涉及模板。
我找到了 WC_Email_Customer_Reset_Password class,但我在那里没有看到过滤器。
在@7uc1f3r 的帮助下,我找到了解决问题的方法。对于电子邮件主题,我使用了 woocommerce_email_subject_customer_reset_password
过滤器,对于电子邮件内容,我使用了 woocommerce_mail_content
过滤器,您都可以找到 here and here.
/** Filter the subject of reset password email notification **/
add_filter( 'woocommerce_email_subject_customer_reset_password', function( $subject ) {
// woocommerce_mail_content will fire only on customer password reset
add_filter( 'woocommerce_mail_content', 'wc_retrieve_password_message' );
$subject = 'Password Reset Request';
return $subject;
} );
/** Filter the content of reset password email notification **/
function wc_retrieve_password_message( $message ) {
$blogname = get_option( 'blogname' );
if( str_contains( $message, $blogname ) ) {
$message = str_replace( $blogname, home_url(), $message );
}
return $message;
}
经过长时间的搜索,我找不到一个钩子来过滤当客户在 WooCommerce 中重置密码时发送给客户的电子邮件的主题和消息。 有那个吗?
我需要从默认的 Password Reset Request for {site_title}
主题中删除(或替换)网站标题,消息也是如此,但不涉及模板。
我找到了 WC_Email_Customer_Reset_Password class,但我在那里没有看到过滤器。
在@7uc1f3r 的帮助下,我找到了解决问题的方法。对于电子邮件主题,我使用了 woocommerce_email_subject_customer_reset_password
过滤器,对于电子邮件内容,我使用了 woocommerce_mail_content
过滤器,您都可以找到 here and here.
/** Filter the subject of reset password email notification **/
add_filter( 'woocommerce_email_subject_customer_reset_password', function( $subject ) {
// woocommerce_mail_content will fire only on customer password reset
add_filter( 'woocommerce_mail_content', 'wc_retrieve_password_message' );
$subject = 'Password Reset Request';
return $subject;
} );
/** Filter the content of reset password email notification **/
function wc_retrieve_password_message( $message ) {
$blogname = get_option( 'blogname' );
if( str_contains( $message, $blogname ) ) {
$message = str_replace( $blogname, home_url(), $message );
}
return $message;
}