Запрет добавления черновика товара в заказ через админку

Магазин работает на WP+WooCommerce. Бывает, что покупатель, после создания заказа, в телефонном режиме просит добавить товар в его заказ. Менеджер через админку добавляет этот товар в нужный заказ. Ассортимент товаров довольно большой и часто меняется. Соответственно некоторые новые товары имеют статус "черновик". Требуется запретить менеджеру добавлять товары с этим статусом в заказы, но при этом, чтобы у менеджера оставалось право создавать и редактировать черновики.

Т.е. по сути, мне программно бы убрать товар со статусом " черновик" из поиска при добавлении товаров в админке на странице заказа.


Ответы (1 шт):

Автор решения: Sergio

Варианты выхода из ситуации:

  1. Запретить добавлять
  2. Перед добавлением смотреть статус товара
  3. Перед записью или отправкой проверять статус всех товаров
  4. Написать костыль. И тут быстрого ответа не будет.

Единственное могу подсказать, что есть хук woocommerce_new_order_item, который вроде отрабатывает и по клику добавить товар в ордер в админке (но это не точно) - находится в файле wc-order-item-functions.php . Меня на него вывел поиск dropdown-wrapper в JS файлах, который в свою очередь вызывал через аякс wc_add_order_item. Через него, с горем пополам можно внедрить доп. проверку и исключать товары не опубликованные из массива. То есть данный хук срабатывает уже после добавления товаров в заказ (судя по коду) и надо повторно, самому обойти ещё раз заказ и удалить из него те товары, что не опубликованы. То есть куда копать есть, но готового решения, увы не предложу.

У меня добавления в заказы через админку запрещены от слова совсем.

Причина в том, что часть людей скажут: "Вы меня не поняли, не то добавили", а время потеряно, а иногда и товар поехал...

ЗАЧЕМ?

→ Ссылка