仅当产品在 Woocommerce 中有库存时才显示产品属性

Display product attribute only when product is in stock in 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 );

是否可以只在商品有货时显示?

可以使用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 文件。测试和工作