首页 > 解决方案 > 仅当 Woocommerce 中有产品时才显示产品属性

问题描述

我已经为交货时间设置了 Woocommerce 属性,并将其显示在单个产品页面上:

//Single Product
function product_attribute_delivery(){
    global $product;

    $taxonomy = 'pa_delivery';
    $value = $product->get_attribute( $taxonomy );

    if ( $value ) {
    $label = get_taxonomy( $taxonomy )->labels->singular_name;
    echo '<p>' . $label . ': ' . $value . '</p>';
    }
}

add_action( 'woocommerce_single_product_summary',  'product_attribute_delivery', 25 );

是否可以仅在产品有库存时显示它?

标签: phpwordpresswoocommerceproductstock

解决方案


可以使用WC_Product is_in_stock() 方法:

add_action( 'woocommerce_single_product_summary', 'product_attribute_delivery', 25 );
function product_attribute_delivery(){
    global $product;

    $taxonomy = 'pa_delivery';
    $value = $product->get_attribute( $taxonomy );

    if ( $value && $product->is_in_stock() ) {
        $label = get_taxonomy( $taxonomy )->labels->singular_name;
        echo '<p>' . $label . ': ' . $value . '</p>';
    }
}

代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作


推荐阅读