我正在尝试根据付款方式和运输方式的组合向 woocommerce 完成的订单电子邮件通知添加不同的内容。
到目前为止我的代码:
// completed order email instructions
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
if (( get_post_meta($order->id, '_payment_method', true) == 'cod' ) && ( get_post_meta($order->id, '_shipping_method', true) == 'local pickup' )){
echo "something1";
}
elseif (( get_post_meta($order->id, '_payment_method', true) == 'bacs' ) && ( get_post_meta($order->id, '_shipping_method', true) == 'local pickup' )){
echo "something2";
}
else {
echo "something3";
}}
付款部分有效(我得到了正确的“something1”到“something3”内容),但如果我添加&&运输条件,我会在每种付款方式中得到“something3”。
知道出了什么问题以及如何让它工作吗?
谢谢
代码修订(2023)
您的代码中有多个错误...请尝试以下操作:
add_action( 'woocommerce_email_order_details', 'my_completed_order_email_instructions', 10, 4 );
function my_completed_order_email_instructions( $order, $sent_to_admin, $plain_text, $email ) {
// Only for "Customer Completed Order" email notification
if( 'customer_completed_order' != $email->id ) return;
// Targeting Local pickup shipping method
if ( $order->has_shipping_method('local_pickup') ){
if ( 'cod' == $order->get_payment_method() ){
echo "Custom text 1";
} elseif ( 'bacs' == $order->get_payment_method() ){
echo "Custom text 2";
} else {
echo "Custom text 3";
}
}
}
代码位于子主题的functions.php文件中(或插件中)。
此代码经过测试,可与 WooCommerce 3+ 配合使用