在WooCommerce中将自定义占位符添加到电子邮件主题

时间:2019-04-08 10:01:56

标签: php wordpress woocommerce orders email-notifications

我有一家Woocommerce商店,我想在接受付款后添加delivery_date

我在名为delivery_date的订单部分中创建一个带有日期值的自定义字段。

现在,我想将此自定义字段用作电子邮件通知主题中的占位符,例如:

  

您的订单现在为{order_status}。订单详细信息如下所示,供您参考:交货日期:{delivery_date}

我认为占位符不能像这样工作,我需要在php中进行一些更改,但是我不知道在哪里。

2 个答案:

答案 0 :(得分:0)

如果要在电子邮件内容中打印“交货日期”的值,则可以这样做。

$content = "Your order is now %%order_status%%. Order details are shown below for your reference: deliverydate: %%delivery_date%%";
$search_array = ["{order_status}","{delivery_date}"]
$replace_array = [$valueOfOrderStatus,$valueOfDeliveryDate];
$content = str_replace($search_array, $replace_array, $content);

答案 1 :(得分:0)

要在woocommerce电子邮件主题中添加自定义活动占位符{delivery_date},您将使用以下挂钩函数。

您将在之前检查delivery_date是用于将签出字段值保存到订单(在wp_postmeta数据库表中签入{{1} })

代码:

post_id

代码进入您的活动子主题(或活动主题)的function.php文件中。应该可以。

然后在Woocommerce>设置>电子邮件>“新订单”通知中,您将能够使用动态占位符add_filter( 'woocommerce_email_format_string' , 'add_custom_email_format_string', 10, 2 ); function add_custom_email_format_string( $string, $email ) { $meta_key = 'delivery_date'; // The post meta key used to save the value in the order $placeholder = '{delivery_date}'; // The corresponding placeholder to be used $order = $email->object; // Get the instance of the WC_Order Object $value = $order->get_meta($meta_key) ? $order->get_meta($meta_key) : ''; // Get the value // Return the clean replacement value string for "{delivery_date}" placeholder return str_replace( $placeholder, $value, $string ); }