代码之家  ›  专栏  ›  技术社区  ›  Garconis

检查WooCommerce产品(简单或变体)是否有库存,并将标签显示为快捷码

  •  1
  • Garconis  · 技术社区  · 8 年前

    我想有一个快捷码,我可以添加到WooCommerce产品页面。快捷码只需检查产品库存,如果有库存,就说“库存中”。如果产品(或任何变体)没有库存,则“缺货”。

    此短代码应适用于简单产品和可变产品。对于简单的产品,它只需检查库存数量。对于可变产品,它将检查所有变化的库存量(因为可变产品库存是在库存级别管理的)。如果任何变体都有库存,那么它仍然会以“库存”的形式返回。

    只有当特定产品的所有变化都为0时,才会显示“缺货”。

    我计划在我正在构建的产品页面模板中使用此短代码。

    1 回复  |  直到 5 年前
        1
  •  3
  •   Garconis    8 年前

    目前,我是通过以下方式创建的:

    /* Create stock checker of overall product */
    add_shortcode( 'fs-product-stock-status', 'fs_product_stock_status_shortcode' );
    function fs_product_stock_status_shortcode( $atts ) {
        // begin output buffering
        ob_start();
    
        $stockstatus = get_post_meta( get_the_ID(), '_stock_status', true );
    
        if ($stockstatus == 'outofstock') {
            echo '<p class="stock out-of-stock">Out of stock</p>';
        }
        elseif ($stockstatus == 'instock') {
            echo '<p class="stock in-stock">In stock</p>';
        }
    
        // end output buffering, grab the buffer contents, and empty the buffer
        return ob_get_clean();
    }
    

    但我愿意接受其他可能更好的解决方案。但这似乎奏效了。

    推荐文章