【问题标题】:Create additional variables/placeholders for Woocommerce email notifications subject为 Woocommerce 电子邮件通知主题创建其他变量/占位符
【发布时间】:2018-10-11 17:41:27
【问题描述】:

当从自定义订单状态激活新的电子邮件通知时,我有以下主题占位符选项:

“您可以使用以下占位符:{order_date}、{order_number}、{order_status}、{billing_first_name}、{billing_last_name}、{billing_company}、{blogname}、{site_title}”

有没有办法为其他字段创建新的占位符? 基本上,我创建了一个名为 test_pw 的新隐藏字段,我希望能够将 {billing_email} 和 {test_pw} 添加到我的自定义电子邮件中。

我已尝试使用此代码,但我不知道如何格式化它。

// Only for woocommerce versions 3.2 + (up to 3.2)
add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
function filter_email_format_string( $string, $email ) {
// Get the instance of the WC_Order object
$order = $email->object;

// Additional wanted placeholders in the array of find / relace pairs
$additional_placeholders = array(
    '{custom_one}'      => __('my replacement one','woocommerce'),
    '{billing_email}'   => $order->get_billing_email(),
    '{test_pw}'   => $order->get_test_pw(),
);

// return the clean string with new replacements
return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}

【问题讨论】:

    标签: php wordpress woocommerce placeholder email-notifications


    【解决方案1】:

    这是一个示例,将向您展示如何为电子邮件通知添加新占位符主题:

    // Only for woocommerce versions 3.2 + (up to 3.2)
    add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
    function filter_email_format_string( $string, $email ) {
        // Get the instance of the WC_Order object
        $order = $email->object;
    
        // Additional wanted placeholders in the array of find / relace pairs
        $additional_placeholders = array(
            '{custom_one}'      => __('my replacement one','woocommerce'),
            '{shipping_city}'   => $order->get_shipping_city(),
            '{yudu_pw}'         => $order->get_meta( 'yudu_pw' ), // <=== HERE
        );
    
        // return the clean string with new replacements
        return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并仅适用于 Woocommerce 3.2 版及更高版本...

    【讨论】:

    • 我正在尝试,但无法完全弄清楚。我想包括客户的电子邮件地址和我创建的名为 test_pw 的隐藏字段。 '{billing_email}' => $order->get_billing_email(), '{test_pw}' => $order->get_test_pw(),
    • 非常感谢,但我不知道在哪里以及如何在其余部分中插入代码。感谢您的尝试,但您可能认为我是一名程序员,哈哈
    • 我修改了问题
    • 它不适用于页脚文本。要将自定义占位符添加到页脚文本,请扩展 woocommerce_email_footer_text 过滤器。
    猜你喜欢
    • 2019-06-25
    • 2019-03-30
    • 2021-08-07
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多