Статус акции WooCommerce в виджете товара

У меня есть клиент, который хочет отобразить статус доступности продукта на своем будущем веб-сайте. Мы знаем, что вы можете видеть статус на странице отдельного продукта (то есть: 5 на складе) и что его можно отобразить на страницах архива магазина и на страницах категорий. Тем не менее, я не могу найти решение, в котором вы можете отображать состояние товара в виджете товара.

Можно ли этого достичь?

Я посмотрел в шаблоне content-widget-product.php и попытался добавить:

<?php echo wp_kses_post( $availability ); ?>

Но это не сработало.

Буду признателен за любую оказанную помощь.

Спасибо

2

Решение

Найдите ниже исходный код WooCommerce для шаблона content-widget-product.php (виджет товара) с некоторыми настройками в конце, чтобы получить запас Статус:

<?php
/**
* ... / ...
* @see     https://docs.woocommerce.com/document/template-structure/
* @author  WooThemes
* @package WooCommerce/Templates
* @version 2.5.0
*/

if ( ! defined( 'ABSPATH' ) ) {
exit;
}
global $product; ?>

<li>
<a href="<?php echo esc_url( $product->get_permalink() ); ?>">
<?php echo $product->get_image(); ?>
<span class="product-title"><?php echo $product->get_name(); ?></span>
</a>
<?php if ( ! empty( $show_rating ) ) : ?>
<?php echo wc_get_rating_html( $product->get_average_rating() ); ?>
<?php endif; ?>
<?php echo $product->get_price_html(); ?>
<?php
// Compatibility for WC versions from 2.5.x to 3.0+
if ( method_exists( $product, 'get_stock_status' ) ) {
$stock_status = $product->get_stock_status(); // For version 3.0+
} else {
$stock_status = $product->stock_status; // Older than version 3.0
}
echo ' '.$stock_status;
?>
</li>

(Этот код совместим с WooCommerce версии 2.5.x до 3.0+)

Этот код протестирован и работает.

Вы можете отобразить продукт Количество на складе с помощью WC_Product get_stock_quantity() метод.


Официальная документация: WC_Product метод get_stock_status ()

2

Другие решения

Я использовал это в прошлом, чтобы получить статус акций:

get_post_meta ($ product-> ID, ‘_stock_status’, true);

1

По вопросам рекламы [email protected]