Wordpress 根据地址更改WooCommerce电子邮件收件人-WooCommerce本地提货Plus
我正在使用Woocommerce Local Pick Plus,并希望根据订单装运方法更改电子邮件地址,但我无法使其正常工作,也无法使用var_dump查看发生了什么Wordpress 根据地址更改WooCommerce电子邮件收件人-WooCommerce本地提货Plus,wordpress,woocommerce,Wordpress,Woocommerce,我正在使用Woocommerce Local Pick Plus,并希望根据订单装运方法更改电子邮件地址,但我无法使其正常工作,也无法使用var_dump查看发生了什么 function wc_change_admin_new_order_email_recipient( $recipient, $order ) { global $woocommerce; $order = new WC_Order( $order->ID ); if ( ! in_arra
function wc_change_admin_new_order_email_recipient( $recipient, $order ) {
global $woocommerce;
$order = new WC_Order( $order->ID );
if ( ! in_array( $order->get_shipping_method(), array( 'adress 1', 'adress 2', 'adress 3' ) ) ) {
return $recipient = "myemail+nopickup@gmail.com";
}else{
if (in_array( $order->get_shipping_method(), 'adress 1' )) {
$recipient = "myemail+adress1@gmail.com";
}elseif (in_array( $order->get_shipping_method(), 'adress 2' )) {
$recipient = "myemail+adress2@gmail.com";
}elseif (in_array( $order->get_shipping_method(), 'adress 3' )) {
$recipient = "myemail+adress3@gmail.com";
}
return $recipient;
}
}
add_filter('woocommerce_email_recipient_new_order', 'wc_change_admin_new_order_email_recipient', 1, 2);
下面是一个使用
switch
语句并将装运方法与几个可用的核心装运方法ID相匹配的示例:
function wc_change_admin_new_order_email_recipient( $recipient, $order ) {
$shipping_method = $order->get_shipping_method();
switch( $shipping_method ){
case 'local_pickup':
$recipient = "myemail+local@gmail.com";
break;
case 'free_shipping':
$recipient = "myemail+freeship@gmail.com";
break;
default:
$recipient = "myemail+nopickup@gmail.com";
}
return $recipient;
}
add_filter('woocommerce_email_recipient_new_order', 'wc_change_admin_new_order_email_recipient', 1, 2);
我假定
get\u shipping\u method()
方法不会返回包含空格的字符串。另外,请参见,您在else
语句中未正确使用它。还可以查看如何将$order
变量传递到过滤器。我做了一些更改。我现在的问题是知道函数中的$order arg是和数组| |对象还是仅仅是顺序的id。wc_change_admin_new_order_email_recipient($recipient,$order)nvm$order是ID hahahah您无需获得新wc_order()
现在您正在传递$order
对象。您的in_array()
用法仍然错误。