
在WooCommerce的运营中,定制化邮件模板是提升用户体验和品牌专业度的关键一环。无论是添加特殊格式的文本,还是插入动态的订单信息,都需要对邮件模板进行精确的修改。本教程将介绍两种主要方法:通过PHP代码直接实现高级定制,以及利用专业的邮件定制插件来简化流程。
直接通过PHP代码修改WooCommerce邮件模板,可以实现高度的灵活性和精确控制。这通常涉及到对主题或插件文件的修改,并需要注意代码的安全性。
在WooCommerce邮件中,如果需要插入斜体(zuojiankuohaophpcni>或<em>)或其他HTML标签,并结合printf和wp_kses进行国际化处理,需要确保wp_kses允许这些标签。wp_kses是WordPress用于过滤HTML的安全函数,它会根据定义好的允许标签列表来清理字符串。
问题分析: 原始代码中,wp_kses的$allowed_html数组只允许了<a>标签,因此<i>标签会被移除。
解决方案: 在$allowed_html数组中明确添加<i>或<em>标签及其允许的属性。
<?php if ( $order->needs_payment() ) { ?>
<p>
<?php
$allowed_html_tags = array(
'a' => array(
'href' => array(),
),
'i' => array(), // 允许<i>标签
'em' => array(), // 或者允许<em>标签,语义上更推荐
);
printf(
wp_kses(
/* translators: %1$s Site title, %2$s Order pay link */
__( 'We’re delighted to let you know that the first print of <i>The Versatile Home</i> is now available and we are able to fulfil your pre-order. Your invoice is below and here is a link to make payment: %2$s', 'woocommerce' ),
$allowed_html_tags // 使用更新后的允许标签列表
),
esc_html( get_bloginfo( 'name', 'display' ) ),
'<a href="' . esc_url( $order->get_checkout_payment_url() ) . '">' . esc_html__( 'click here to pay by credit/debit card or PayPal', 'woocommerce' ) . '</a>'
);
?>
</p>
<?php } ?>通过上述修改,<i>The Versatile Home</i>将能够正确显示为斜体。
要在邮件中添加额外的段落,并插入动态的订单号作为银行转账参考,可以通过字符串拼接或再次调用printf来实现。WooCommerce的订单对象$order提供了获取订单信息的各种方法。
实现步骤:
完整代码示例:
<?php if ( $order->needs_payment() ) { ?>
<p>
<?php
$allowed_html_tags = array(
'a' => array(
'href' => array(),
),
'i' => array(),
'em' => array(),
);
// 第一段内容
printf(
wp_kses(
/* translators: %1$s Site title, %2$s Order pay link */
__( 'We’re delighted to let you know that the first print of <i>The Versatile Home</i> is now available and we are able to fulfil your pre-order. Your invoice is below and here is a link to make payment: %2$s', 'woocommerce' ),
$allowed_html_tags
),
esc_html( get_bloginfo( 'name', 'display' ) ),
'<a href="' . esc_url( $order->get_checkout_payment_url() ) . '">' . esc_html__( 'click here to pay by credit/debit card or PayPal', 'woocommerce' ) . '</a>'
);
?>
</p>
<p>
<?php
// 获取订单号
$order_number = $order->get_order_number();
// 第二段内容,包含动态订单号
printf(
wp_kses(
/* translators: %1$s Order number */
__( 'Alternatively, you can make payment by bank transfer to Sort Code: 00-00-00, Acct #: 00000000, Acct name: xxxxx, quoting order # %1$s as the reference. As soon as we’ve received the payment we’ll get your order off to you straight away.', 'woocommerce' ),
$allowed_html_tags // 沿用第一段的允许标签列表,尽管这里可能不需要斜体
),
esc_html( $order_number ) // 确保订单号被安全输出
);
?>
</p>
<?php } ?>对于不熟悉PHP编程或希望通过可视化界面快速定制邮件的用户,使用专业的WooCommerce邮件定制插件是更为高效和便捷的选择。
YayMail是一个广受欢迎的WooCommerce邮件定制插件,它提供了一个直观的拖放式构建器,允许用户完全控制WooCommerce的各种邮件模板。
使用YayMail这类插件,用户无需关心wp_kses的细节,也无需编写复杂的PHP代码来插入斜体或第二段落,所有操作都可以在图形界面中完成,极大地降低了技术门槛。
选择哪种方法取决于您的技术背景、项目需求和对灵活性的要求:
无论选择哪种方式,在正式上线前,务必对定制后的邮件进行充分的测试,确保所有内容(包括动态数据)都能正确显示,并且在不同邮件客户端中都能保持良好的兼容性。
以上就是WooCommerce邮件模板高级定制:实现文本格式化与动态内容插入的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号