WooCommerce get_availability() возвращает массив

Я пытаюсь отобразить доступность продукта внутри функции, используя woocommerce 3.0.8.

Мой код:

global $product;    
echo $product->get_availability();

На нем печатается слово Array и больше ничего. это не должно работать?
Я не могу понять, что не так

3 ответа

Решение

WC_Product get_availability() Метод возвращает массив из 2 ключей / значений:

  • Текст доступности в зависимости от состояния склада (с ключом 'availability' ).
    Вы можете использовать здесь WC_Product get_availability_text() метод (вернуть строку)
  • Имя класса доступности в зависимости от состояния запаса (с ключом 'class' )
    Вы можете использовать здесь WC_Product get_availability_class( ) метод (вернуть строку)

Чтобы увидеть это попробуйте:

global $product;    
print_r($product->get_availability());

Есть небольшая ошибка в документации WooCommerce, так как это выводит массив, а не строку.


Обновить:

Используя напрямую WC_Product get_availability_text() метод так:

global $product; 
return $product->get_availability_text();

Заменим (более компактно):

global $product; 
$availability = $product->get_availability();
return $availability[availability];

Очень похоже на другие ответы, но я использую следующий код, чтобы получить класс доступности, потому что get_availability_class() не работает для меня во всех случаях:

$avail = $product->get_availability();
$class = $avail['class']

Спасибо за вашу помощь, я действительно ценю это. я исправил это используя

global $product;     
$availability = $product->get_availability();
return $availability[availability];

и это работает как шарм. еще раз спасибо

Другие вопросы по тегам