Добавить статус заказа на склад в раскрывающемся списке продуктов Woocommerce. - PullRequest
3 голосов
/ 10 апреля 2019

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

Я попробовал ответ из Как добавить состояние запаса варианта в раскрывающийся список вариантов продукта Woocommerce однако каждая переменная указана как «в наличии», потому что продукт настроен на разрешение отказов.

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

$var_stock_count = $variation->get_stock_quantity();

// if there are 0 or less, display 'on backorder'
if( $var_stock_count <= 0 ) {
   return ' - (On Backorder)';
}
else {
   return ' - (In Stock)';
}

Мне нужна помощь в объединении двух частей кода. Спасибо!

1 Ответ

2 голосов
/ 10 апреля 2019

Эта обновленная функция, которая будет обрабатывать товары с задержками (когда количество запаса меньше 1) :

// Function that will check the stock status and display the corresponding additional text
function get_stock_status_text( $product, $name, $term_slug ){
    foreach ( $product->get_available_variations() as $variation ){
        if($variation['attributes'][$name] == $term_slug ) {
            $is_in_stock = $variation['is_in_stock'];
            $backordered = get_post_meta( $variation['variation_id'], '_backorders', true );
            $stock_qty   = get_post_meta( $variation['variation_id'], '_stock', true );
            break;
        }
    }
    $stock_status_text = $is_in_stock == 1 ? ' - (In Stock)' : ' - (Out of Stock)';
    return $backordered !== 'no' && $stock_qty <= 0 ? ' - (On Backorder)' : $stock_status_text;
}

Код помещается в файл function.php вашей активной дочерней темы (или активная тема).Проверено и работает.

Заменяет первую функцию на эту ветку ответа :

Вы получите что-то вроде:

enter image description here

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