Отправка уведомлений о новых заказах получателям на основе зоны доставки в Woocommerce - PullRequest
0 голосов
/ 31 января 2019

В Woocommerce я изменил " Получатели электронной почты, основанные на способе доставки Идентификатор для уведомления о новом заказе Woocommerce " , используя также частично этот код ответа , чтобы разрешитьотправить уведомление по электронной почте менеджерам, назначенным для зоны доставки, которую я создал в Woocommerce.

Мы хотели, чтобы они получили электронное письмо, содержащее заказ, чтобы они могли выполнить заказ, поскольку они являются ближайшими в регионе.

У меня в woocommerce настроено 5 зон, каждая из которых имеет соответствующий zone_id 1 - 5, теперь мы протестировали его, woocommerce отправляет уведомления, но та, которую я закодировал, не ...

Я искал, если у меня есть ошибки в коде, но я не нахожу ничего, вы, ребята, можете мне помочь и указать мне правильное направление?

Все, что я хочу сделать, это вызвать уведомление по электронной почте на основе идентификатора зоны клиента, если клиент принадлежит этому идентификатору зоны, тогда менеджер, назначенный этому идентификатору зоны, получит электронное письмо.

Вот мой порядковый код:

//add_filter( 'woocommerce_email_recipient_new_order', 'new_order_additional_recipients', 20, 2 );
function new_order_additional_recipients( $recipient, $order ) {
    if ( ! is_a( $order, 'WC_Order' ) ) return $recipient;

    // Set Below your email adresses
    $email1 = 'matt@tradescoaching.com';
    $email2 = 'liverpool@auntypoppy.com.au';
    $email3 = 'mater@auntypoppy.com.au';
    $email4 = 'pinegrove@freshflowersgroup.com.au';
    $email5 = 'florist@esmc.net.au';

    // Get the Zone ID and related data
    $shipping_zone_object = WC_Shipping_Zones::get_zone_by( 'instance_id', $method_arr[1] );
    $zone_id              = $shipping_zone_object->get_id();        // Zone ID
    $zone_name            = $shipping_zone_object->get_zone_name(); // Zone name
    // Get the zone locations codes and types (if needed)
    foreach( $shipping_zone_object->get_zone_locations() as $zone_location ){
        $zone_location_code = $zone_location->code;
        $zone_location_type = $zone_location->type;
    }

    // Adding recipients conditionally
    if ( '1' == $zone_id )
        $recipient .= ',' . $email1;
    if ( '2' == $zone_id )
        $recipient .= ',' . $email2;
    if ( '3' == $zone_id )
        $recipient .= ',' . $email3;
    if ( '4' == $zone_id )
        $recipient .= ',' . $email4;
    if ( '5' == $zone_id )
        $recipient .= ',' . $email5;

    return $recipient;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...