Задача. Необходимо отобразить на страницах товара и в категориях статус наличия товара «В наличии» («Нет в наличии»). Проблема в том, что Woocommerce при указании в карточке товара в запасах статуса остатка «В наличии» не отображает этот статус нигде. А если установлено в «Нет в наличии», то отображает вместо кнопки «В корзину». Нам необходимо, чтобы всегда отображался статус «В наличии» («нет в наличии»).
Решение 1. Вставить в шаблон вывода товара в месте где нужно вывести наличие товара php-Код №1:
1
2
3
4
5
6
7
8
9
10
11
|
/* Вставляем в то место шаблона где нужно вывести этот статус */
if (get_post_meta(get_the_ID(), ‘_stock_status’, true) == ‘outofstock’) {
echo ‘<div class=”outofstock”>Нет в наличии</div>’;
} else {
echo ‘<div class=”stock”>В наличии</div>’;
}
|
Решение 2. Зарегистрировать в function.php
(Код №2) шорткод и вставлять шорткод туда где нужно вывести статус наличия товара:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/* Регистрация шорткода */
add_shortcode( ‘nalichetovara’, ‘nalichetovara_func’ );
function nalichetovara_func( ){
if (get_post_meta(get_the_ID(), ‘_stock_status’, true) == ‘outofstock’) {
return ‘<div class=”outofstock”>Нет в наличии</div>’;
} else {
return ‘<div class=”stock”>В наличии</div>’;
}
}
/* После чего можно будет использовать шорткод [nalichetovara] */
|
Учитывая, что при установке в товаре статуса остатка «Нет в наличии» Woocommerce все-таки выводит это значение вместо кнопки добавления в корзину, то можно из регистрации шорткода убрать '<div class="outofstock">Нет в наличии</div>'
, чтобы избежать двойной фразы «Нет в наличии».