【问题标题】:WooCommerce stock status in product widget产品小部件中的 WooCommerce 库存状态
【发布时间】:2017-10-09 20:49:27
【问题描述】:
我有一个客户想要在他未来的网站上显示产品可用性的状态。我们知道您可以在单个产品页面中看到状态(即:库存 5 个),并且可以在商店存档和类别页面中显示它。但是,我找不到可以在产品小部件中显示库存状态的解决方案。
这可以实现吗?
我查看了 content-widget-product.php 模板并尝试添加:
<?php echo wp_kses_post( $availability ); ?>
但是没有用。
非常感谢任何帮助。
谢谢
【问题讨论】:
标签:
php
wordpress
woocommerce
product
stock
【解决方案1】:
在模板 content-widget-product.php (产品小部件) 的 WooCommerce 源代码下方找到一些自定义,以获取库存状态:
<?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() method显示产品库存数量。
官方文档:WC_Product method get_stock_status()
【解决方案2】:
我过去用这个来获取库存状态:
get_post_meta($product->ID, '_stock_status', true);