【问题标题】:Change WooCommerce email recipient depending on address - Woocommerce Local Pick up Plus根据地址更改 WooCommerce 电子邮件收件人 - Woocommerce Local Pick up Plus
【发布时间】:2017-06-18 01:57:35
【问题描述】:

我正在使用 Woocommerce Local Pick up Plus 并想根据 order_shipping_method 更改电子邮件地址,但我无法使用它,也无法使用 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);

【问题讨论】:

  • 我认为get_shipping_method() 方法不会返回带有空格的字符串。另外,请参阅 in_array(),您在 else 语句中使用不正确。另请参阅 my answer 了解如何将 $order 变量传递给过滤器。
  • 我做了一些改变。我现在遇到的问题是要知道函数中的 $order arg 是和数组||对象还是只是订单的 id。 wc_change_admin_new_order_email_recipient($recipient, $order)
  • nvm $order 是 ID 哈哈
  • 您不需要获取new WC_Order(),因为您正在传递$order 对象。您的in_array() 用法仍然错误。

标签: wordpress woocommerce


【解决方案1】:

以下示例使用 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 2020-04-13
    • 2018-02-09
    • 1970-01-01
    • 2020-09-10
    相关资源
    最近更新 更多