Как сделать после статуса выполнено оставить отзыв Woocommerce?

Ссылка скопирована
1 ответ

У меня имеется интернет магазин на WordPress Woocommerce. Я хочу сделать после изменения статуса на Выполнено в Woocommerce сделать модальное окно с количеством звезд и оставлением отзыва. Искал в интернете ничего не смог найти могли бы подсказать варианты куда капать или готовые плагины. Отзывы не должны быть в товарах это лично для Администратора и отслеживания качества доставки.

Благодарю в заранее за ответы.

Дополнительно

Есть же родное примечание. Зачем ещё модалка и пр. для "отслеживания качества доставки"?

  • AlXan, Клиент попросил сделать после изменения статуса на "Выполнено" модальное окно с отзывом о доставке. Конкретно в товарах не интересует т.к это большой Интернет магазин 10к+ товаров и им нужно видеть feedback от качества доставки.
  • Kanare, Там же, где меняешь статус - там же и поле коммента к заказу. Внутреннее.

    скрин

    Как сделать после статуса выполнено оставить отзыв Woocommerce?

    Зачем лишние клики, смена интерфейса и пр геморрой - я не понимаю.

    Ну а если всё же очень хочется - есть хуки.

  • AlXan, а могли бы по подробнее рассказать о возможности выведения заметок для клиента?
  • Kanare, ?? что рассказывать? Всё ж есть и коробки. Я на скрине показал.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Web-разработка Ответ

    Хук смены статуса заказа выполняется на сервере, поэтому сам по себе он не может показать модальное окно пользователю или администратору. Нужно сначала определить сценарий. Если отзыв оставляет клиент после доставки, правильнее отправить письмо или SMS со ссылкой на отдельную страницу оценки заказа. Если оценку ставит менеджер в админке после перевода заказа в «Выполнено», это уже админский интерфейс: custom meta box, order note или JS-модалка на странице заказа.

    Для внутренней оценки доставки без отзывов к товарам я бы не привязывался к product reviews. Достаточно хранить рейтинг и комментарий в meta заказа:

    add_action('woocommerce_process_shop_order_meta', function ($order_id) {
        if (isset($_POST['delivery_rating'])) {
            update_post_meta($order_id, '_delivery_rating', absint($_POST['delivery_rating']));
        }
        if (isset($_POST['delivery_feedback'])) {
            update_post_meta($order_id, '_delivery_feedback', sanitize_textarea_field(wp_unslash($_POST['delivery_feedback'])));
        }
    });

    add_action('woocommerce_process_shop_order_meta', function ($order_id) { if (isset($_POST['delivery_rating'])) { update_post_meta($order_id, '_delivery_rating', absint($_POST['delivery_rating'])); } if (isset($_POST['delivery_feedback'])) { update_post_meta($order_id, '_delivery_feedback', sanitize_textarea_field(wp_unslash($_POST['delivery_feedback']))); } });

    Интерфейс можно сделать как отдельный блок в заказе через add_meta_box(). Это надежнее, чем модалка: данные видны сразу, не зависят от JS и не мешают стандартной смене статусов. Если клиент настаивает именно на модальном окне при выборе статуса «Выполнено», подключайте admin JS только на экране редактирования заказа, ловите изменение select статуса, показывайте форму и сохраняйте данные через AJAX или вместе с обновлением заказа. Риск такого варианта — конфликт с новым HPOS-интерфейсом WooCommerce и сторонними плагинами заказов. Поэтому базовый и устойчивый путь: meta box плюс обязательное поле при статусе completed.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно