为Woocommerce电子邮件通知主题创建其他变量/占位符

时间:2018-05-01 17:02:15

标签: php wordpress woocommerce placeholder email-notifications

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

  

“您可以使用以下占位符:{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 );
}

1 个答案:

答案 0 :(得分: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及以上版本进行测试和工作