这个break
放错地方了。当你把break;
在循环(foreach)中,它在该点退出循环。在设置$subject
值,以便退出循环before 这个$subject
已设置。设置主题,then 打破
此外,您的代码段缺少add_filter()
触发此筛选函数的调用。这需要连接到woocommerce_email_subject_new_order
, 与链接到的示例相同。
add_filter(\'woocommerce_email_subject_new_order\', \'custom_admin_email_subject\', 1, 2);
function custom_admin_email_subject( $subject, $order ) {
global $woocommerce;
foreach($order->get_items() as $item_id => $item ){
if ( has_term( \'Category 1 Name\', \'product_cat\' , $item->get_product_id() ) ) {
$subject = sprintf( \'Category 1 Email Subject Line\' );
break;
}
}
return $subject;
}