Отправлять уведомления по электронной почте о статусах заказов только для дополнительных заказов Woocommerce.Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Отправлять уведомления по электронной почте о статусах заказов только для дополнительных заказов Woocommerce.

Сообщение Гость »


Я использую приведенный ниже код, чтобы добавить статус индивидуального заказа «готов к сбору» и «отправлен». При изменении статуса заказа покупателю отправляется электронное письмо с уведомлением о том, что его заказ собирается или доставляется (работает):

// Включаем пользовательские статусы для заказов WooCommerce add_action('init', 'register_custom_order_statuses'); функция register_custom_order_statuses() { Register_post_status('Туалет отправлен', массив( 'label' => __( 'отправлено', 'woocommerce'), 'публичный' => правда, 'exclude_from_search' => ложь, 'show_in_admin_all_list' => правда, 'show_in_admin_status_list' => правда, 'label_count' => _n_noop('отправлено (%s)', 'отправлено (%s)') )); Register_post_status('wc-readytocollect', массив( 'label' => __('readytocollect', 'woocommerce'), 'публичный' => правда, 'exclude_from_search' => ложь, 'show_in_admin_all_list' => правда, 'show_in_admin_status_list' => правда, 'label_count' => _n_noop('readytocollect (%s)', 'readytocollect (%s)') )); } add_action('woocommerce_order_status_changed', 'my_notification_shipped'); функция my_notification_shipped ($order_id) { глобальный $woocommerce; $order = новый WC_Order($order_id); if($order->status === 'отправлено') { //ВОТ В чем проблема $order->get_order_number(); // Создаем почтовую программу $mailer = $woocommerce->mailer(); $message_body = " отправлено "; $message = $mailer->wrap_message( // Заголовок и тело сообщения. sprintf( __( 'заказ отправлен %s'), $order->get_order_number(), $message_body ); // Отправляем письмо $mailer->send( $order->billing_email, sprintf( __( 'заказ %s отправлен'), $order->get_order_number()), $message ); } } add_action('woocommerce_order_status_changed', 'my_notification_readytocollect'); функция my_notification_readytocollect ($order_id) { глобальный $woocommerce; $order = новый WC_Order($order_id); if($order->status === 'готов к сбору') { //ВОТ В чем проблема $order->get_order_number(); // Создаем почтовую программу $mailer = $woocommerce->mailer(); $message_body = " готово к сбору "; $message = $mailer->wrap_message( // Заголовок и тело сообщения. sprintf( __( 'заказ %s готов к сбору'), $order->get_order_number(), $message_body ); // Отправляем письмо $mailer->send( $order->billing_email, sprintf( __( 'заказ %s готов к сбору'), $order->get_order_number()), $message ); } } Моя проблема заключается в следующем:

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

Чтобы прекратить отправку электронной почты, связанной с родительским заказом, и отправить ее только связанному подзаказу, используйте следующий код:

add_filter( 'woocommerce_email_recipient_customer_readytocollect_order', 'disable_email_for_parent_order', 10,3); add_filter('woocommerce_email_recipient_customer_shipped_order', 'disable_email_for_parent_order', 10,3); функция disable_email_for_parent_order($recipient, $order, $object){ if( wp_get_post_parent_id($order->get_id()) ){ вернуть $получателя; } еще{ возвращаться; } } Но, к сожалению, этот код не работает со статусами моих заказов.

Есть ли где-нибудь ошибка в моем коде?

Как остановить отправку уведомлений по электронной почте о статусах моего индивидуального заказа на связанный родительский заказ?

Любая помощь очень ценится.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»