在Woocommerce中,我想设置在“新订单”电子邮件主题行中购买的产品,如下所示:New Order - [{product_name}] ({order_number}) - {order_date}
我理解product_name
可能因为多种产品而无法使用,我仍然可以通过过滤订购产品或仅允许多种产品来实现这一点,因为没有多少订单可以通过。
修改主题代码非常新,但是非常感谢任何帮助。
答案 0 :(得分:2)
主题需要的“新订单”的电子邮件设置(如您的问题所示):
New Order - [{product_name}] ({order_number}) - {order_date}
在下面的代码中,我将商品名称(用短划线分隔)替换为{product_name}
,因为订单可以包含多个商品...
这个隐藏在woocommerce_email_subject_new_order
中的自定义函数可以解决这个问题:
add_filter( 'woocommerce_email_subject_new_order', 'customizing_new_order_subject', 10, 2 );
function customizing_new_order_subject( $formated_subject, $order ){
// Get an instance of the WC_Email_New_Order object
$email = WC()->mailer->get_emails()['WC_Email_New_Order'];
// Get unformatted subject from settings
$subject = $email->get_option( 'subject', $email->get_default_subject() );
// Loop through order line items
$product_names = array();
foreach( $order->get_items() as $item )
$product_names[] = $item->get_name(); // Set product names in an array
// Set product names in a string with separators (when more than one item)
$product_names = implode( ' - ', $product_names );
// Replace "{product_name}" by the product name
$subject = str_replace( '{product_name}', $product_names, $subject );
// format and return the custom formatted subject
return $email->format_string( $subject );
}
代码进入活动子主题(或活动主题)的function.php文件。
经过测试和工作。
你会得到这样的东西: