Wordpress 根据地址更改WooCommerce电子邮件收件人-WooCommerce本地提货Plus

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

我正在使用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_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()
用法仍然错误。