- 状态
- 已由作者解决
- 解决于
- WCFM Membership 2.11.8
- 主题标签
- Compatibility
问题概述
使用 WCFM – Multivendor Marketplace for WooCommerce 及其附加组件 WooCommerce Multivendor Membership 时,如果默认语言是 RTL(从右到左),则以次要语言发送的验证码电子邮件会继承 RTL 对齐方式。
即使次要语言是 LTR(从左到右),也会发生这种情况。
临时解决方法
在继续操作之前,请确保为您的站点创建完整站点备份。
- 打开 …/wp-content/plugins/wc-multivendor-membership/views/emails/email-verification.php
- 找到第 16 行
- 替换:
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
- 替换为:
// Workaround for compsupp-7719 // Switch language context if( apply_filters( 'wcfm_allow_wpml_email_translation', true ) ) { do_action('wpml_switch_language_for_email', $user_email); } ?> <!DOCTYPE html> <html <?php language_attributes(); ?>> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php bloginfo( 'charset' ); ?>" /> <meta content="width=device-width, initial-scale=1.0" name="viewport"> <title><?php echo get_bloginfo( 'name', 'display' ); ?></title> </head> <body <?php echo is_rtl() ? 'rightmargin' : 'leftmargin'; ?>="0" marginwidth="0" topmargin="0" marginheight="0" offset="0"> <table width="100%" id="outer_wrapper"> <tr> <td><!-- Deliberately empty to support consistent sizing and layout across multiple email clients. --></td> <td width="600"> <div id="wrapper" dir="<?php echo is_rtl() ? 'rtl' : 'ltr'; ?>"> <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%"> <tr> <td align="center" valign="top"> <div id="template_header_image"> <?php $img = get_option( 'woocommerce_email_header_image' ); if ( $img ) { echo '<p style="margin-top:0;"><img src="' . esc_url( $img ) . '" alt="' . esc_attr( get_bloginfo( 'name', 'display' ) ) . '" /></p>'; } ?> </div> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="template_container"> <tr> <td align="center" valign="top"> <!-- Header --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="template_header"> <tr> <td id="header_wrapper" > <h1 style="text-align: <?php echo is_rtl() ? 'right' : 'left'; ?>"><?php echo esc_html( $email_heading ); ?></h1> </td> </tr> </table> <!-- End Header --> </td> </tr> <tr> <td align="center" valign="top"> <!-- Body --> <table border="0" cellpadding="0" cellspacing="0" width="100%" id="template_body"> <tr> <td valign="top" id="body_content"> <!-- Content --> <table border="0" cellpadding="20" cellspacing="0" width="100%"> <tr> <td valign="top"> <div id="body_content_inner" style="text-align: <?php echo is_rtl() ? 'right' : 'left'; ?>"> - 并在文件末尾(第 88 行左右)添加以下代码
<?php // switch language back if( apply_filters( 'wcfm_allow_wpml_email_translation', true ) ) { do_action('wpml_restore_language_from_email'); } ?>