Добавьте кнопку в заказы администратора WooCommerce, которая отправляет пользовательское уведомление по электронной почтJquery

Программирование на jquery
Ответить
Гость
 Добавьте кнопку в заказы администратора WooCommerce, которая отправляет пользовательское уведомление по электронной почт

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


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

Вот ситуация: при каждом нажатии кнопки уведомления статус заказа необъяснимым образом меняется на «ожидает оплаты». Это нежелательное поведение, и я пытаюсь определить причину этой проблемы.
add_action( 'woocommerce_admin_order_data_after_order_details', 'send_driver_email_on_order_ready'); функция send_driver_email_on_order_ready ($order_id) { $order = wc_get_order($order_id); $id=$order->get_ID(); $status = $order->get_status(); $meta_data = $order->get_meta_data(); if($status=='обработка' || 'назначено драйвером' || 'выведено для доставки'){ foreach ($meta_data как $meta) { if ($meta->key === 'lddfw_driverid') { $driver_id = $meta->value; } if ($meta->key === 'Order_Ready') { $order_ready_value = $meta->value; if ($order_ready_value === 'Да') { // Проверяем, отправлено ли уже письмо $email_sent = $order->get_meta('email_sent', true); if ($email_sent != 'Да') { // Получаем информацию о драйвере $driver = get_userdata($driver_id); $driver_name = $driver->display_name; $driver_email = $driver->user_email; // Отправляем письмо водителю $subject = 'Номер заказа' . $идентификатор. ' готов'; $сообщение = 'Привет'. $driver_name . ',

Заказ №' . $идентификатор. ' теперь готово к выдаче.'; $headers = array('Content-Type: text/html; charset=UTF-8'); if ( wp_mail($driver_email, $subject, $message, $headers)) { // Обновляем метазначение email_sent $order->update_meta_data('email_sent', 'Да'); $order->сохранить(); } } } } } } } add_filter('wp_mail_from', 'original_mail_address_email'); функция original_mail_address_email(){ $email ='admin@gmail.com'; вернуть $email; } add_filter('wp_mail_from_name', 'email_name_order_ready'); функция email_name_order_ready(){ вернуть «Свежий в духовке»; }
Помимо этой задачи я хотел бы улучшить функциональность кнопки. В идеале я хочу, чтобы кнопка отображалась только тогда, когда статус заказа «назначен водитель» или «готов к доставке». Это упростит процесс и сделает его более эффективным для нашей команды.

Будем очень признательны за любую помощь, информацию или предложения, которые вы можете предоставить. Ваша помощь будет не чем иным, как благословением.
Ответить

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

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

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

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

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