Woocommerce Backorder Stock Управление - PullRequest
1 голос
/ 21 октября 2019

Спасибо, что прочитали мой вопрос. Я считаю, что моя функция может быть полезна для сообщества.

Я пытаюсь продавать товары, которые у меня есть в наличии, но также разрешаю делать заказы на те же товары и товары, которые есть у моих поставщиков. Я импортирую количество акций для 2х местоположений поставщиков в настраиваемые поля каждого продукта, используя Расширенные настраиваемые поля и WP All Import Plugins.

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

function backorder_autostock($post_id) {
$stockqty = get_post_meta($post_id, '_stock', true );
$autostocktotal = (get_field('autostock_cpt') + get_field('autostock_jhb'));
$maxstockqty = ($stockqty + $autostocktotal);
if ( get_field('autostock_enabled') == true && $autostocktotal > 0) {
    update_post_meta($post_id,'_wc_max_qty_product', $maxstockqty);
    update_post_meta($post_id,'_backorders', 'notify' );
    update_field('autostock_total', $autostocktotal, $post_id);
}
else {
    update_post_meta($post_id,'_backorders' , 'no' );
    update_post_meta($post_id,'_wc_max_qty_product', '');
     }
}

add_action('acf/save_post', 'backorder_autostock');

Работает довольно хорошо, но у меня есть 3 проблемы:

  1. $ stockqty уменьшаетсякогда заказ размещен, но $ autostocktotal (количество заказов на складе) не уменьшается, поскольку оно не является собственным полем qty.

Пример: $ stockqty = 1 и $ autostocktotal = 6. Customerзаказывает 2х предметов. Сейчас $ stockqty = 0, но $ autostocktotal все еще = 6

_wc_max_qty_product также не уменьшается, поэтому максимальный плагин добавления в корзину все еще учитывает все 7 единиц. (Это происходит из-за того, что функция ловушки срабатывает только при сохранении / обновлении продукта, но не при размещении заказа)

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

Есть ли практический способ обойти проблемы?

Я всюду в Интернете искал готовое решение, чтобы просто иметь выделенное поле, которое ведет себя как _stock, но только для запаса на складе.

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