为了账号安全,请及时绑定邮箱和手机立即绑定

如何仅在 woocommerce 的商店页面上显示有货的变体?

如何仅在 woocommerce 的商店页面上显示有货的变体?

PHP
HUWWW 2022-07-22 15:19:15
我不想显示所有可用的属性,我只需要显示那些在后端保存了库存的变量值。就像我有一个名为尺寸的变量一样,所以我想显示产品及其可用尺寸,如果产品有 5 种不同尺寸,但其中两种尺寸没有库存,则只显示其他 3 种有库存的尺寸,并且如果一种产品有 5 种不同的尺寸并且所有尺寸都有库存,则显示所有这些尺寸。这是我正在使用的代码:    echo '<div class="row m-0 justify-content-center">';    $fabric_values = get_the_terms( $product->id, 'pa_sizes');    foreach ( $fabric_values as $fabric_value ) {        echo '<button class="btn btn-circle btn-lg rounded-circle">'."$fabric_value->name" . '</button>';    }    echo '</div>';这是快照: 请参阅此处的屏幕截图 这显示了我之前存储的所有属性。如果有人可以帮助我,有什么解决方案?
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

尝试这个


global $product;


        $taxonomy    = 'pa_sizes'; // 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 );

                $file_list[$term_name] = $term_name;


            }

        }


        /*

         * Loop through the array and print all the values

         */

        if(is_array($file_list)){

            sort ($file_list);

            foreach($file_list as $file){ 

                echo '<button class="btn btn-circle btn-lg rounded-circle">' . $file . '</button>';

            }

        }

        else{

            echo '<p style="font-size:12px;">No Sizes Available</p>';

        }


查看完整回答
反对 回复 2022-07-22
  • 1 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号