仅在商店页面上的库存大小产品属性中显示WooCommerce

时间:2019-08-07 作者:murrayac

以下代码from a previous answer 对于我的一个问题,Woocommerce在商店页面的每个产品下方显示“尺寸”产品属性:

add_action( \'woocommerce_after_shop_loop_item_title\', \'display_size_attribute\', 5 );
function display_size_attribute() {
    global $product;

    if ( $product->is_type(\'variable\') ) {
        $taxonomy = \'pa_size\';
        echo \'<span class="attribute-size">\' . $product->get_attribute($taxonomy) . \'</span>\';
    }
}
如何更改代码以仅显示“库存”项目(产品属性“大小”)?

2 个回复
最合适的回答,由SO网友:LoicTheAztec 整理而成

要仅获取可用的“库存”显示尺寸,您需要一些更复杂和不同的东西:

add_action( \'woocommerce_after_shop_loop_item_title\', \'display_instock_sizes\', 5 );
function display_instock_sizes() {
    global $product;

    if ( $product->is_type(\'variable\') ) {
        $taxonomy    = \'pa_size\'; // The product attribute taxonomy
        $sizes_array = []; // Initializing

        // Loop through available variation Ids for the variable product
        foreach( $product->get_children() as $child_id ) {
            $variation = wc_get_product( $child_id ); // Get the WC_Product_Variation object

            if( $variation->is_purchasable() && $variation->is_in_stock() ) {
                $term_name = $variation->get_attribute( $taxonomy );
                $sizes_array[$term_name] = $term_name;
            }
        }

        echo \'<span class="attribute-size">\' . implode( \', \', $sizes_array ) . \'</span>\';
    }
}
代码进入函数。活动子主题(或活动主题)的php文件经过测试并正常工作。

SO网友:Plus Internet

我还想知道如何编辑代码以包含多个属性。

例如,我有使用“pa\\u select-size”属性的代码,但在我们的鞋类类别中,我们使用pa\\u shoe-size。

非常感谢,

卢克

相关推荐