变体 Sku 未显示 Wordpress/woocommerce

Mar*_*lli 5 php wordpress woocommerce

我建立了一家 woocommerce 商店,并为某些产品添加了一些变化。每个变体都有自己的 sku 编号,但由于某种原因,它们没有显示在产品概览面板上。有什么办法可以添加它们,或者有人可以告诉我正确的方向。此外,如果我尝试搜索变体,则不会显示产品所在的位置。我必须注册变体 sku 吗?默认情况下,woocommerce 是否会出现这种情况?

谢谢!

在此处输入图片说明

这是我设置变体的方式:

在此处输入图片说明

Mar*_*lli 2

好吧,考虑到没有人提出问题,我不得不自己挖掘一下:D 所以这是我目前找到的解决方案。

在文件 class-wc-admin-post-types.php 上,该文件位于 woocommerce/includes/admin

你必须修改第277行的一些代码

case 'sku' :

    $type = (get_class($the_product));

    if( $type == 'WC_Product_Variable' ){

        $available_variations = $the_product->get_available_variations();

        echo '<strong> Variations: </strong>' . count($available_variations) . '<br><br>';

        for ($i = 0; $i <  count($available_variations); $i++ ) {

            echo ($available_variations[$i]['sku']) . '<br>';
        }
    }
    else {
        echo $the_product->get_sku() ? $the_product->get_sku() : '<span class="na">&ndash;</span>';
    }
break;
Run Code Online (Sandbox Code Playgroud)

现在您可以得到这样的结果:当您的产品有变体时,您将显示变体数量和所有可用的 sku,如果不是可变产品,您将只显示 sku。

现在我想我可能还会修改库存栏并显示每个栏上的库存量。

希望这对其他人有帮助。并感谢那些试图提供帮助的人!

在此输入图像描述

好的...所以我添加了对股票的支持,与之前的代码没有什么不同...所以在同一个文档的第 344 行上,您可以添加它。

case 'is_in_stock' :

            $type = (get_class($the_product));

            if( $type == 'WC_Product_Variable' ){

                $available_variations = $the_product->get_available_variations();

                echo '<strong> Variations stock: </strong> <br><br>';

                for ($i = 0; $i <  count($available_variations); $i++ ) {


                    if ( $available_variations[$i]['is_in_stock'] == 0 ) {
                        echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
                    }else {

                        echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';

                    }
                    if ($available_variations[$i]['variation_is_active']) {
                        echo ' &times; ' . $available_variations[$i]['max_qty'] . '<br>' ;
                    }
                }
            } else {

                if ( $the_product->is_in_stock() ) {
                    echo '<mark class="instock">' . __( 'In stock', 'woocommerce' ) . '</mark>';
                } else {
                    echo '<mark class="outofstock">' . __( 'Out of stock', 'woocommerce' ) . '</mark>';
                }

                if ( $the_product->managing_stock() ) {
                    echo ' &times; ' . $the_product->get_total_stock() ;

                }
            }
            break;   
Run Code Online (Sandbox Code Playgroud)

你会得到这样的东西:

在此输入图像描述

欲了解更多信息,请查看下面的链接。简历:这种方法可能会出现一些性能问题...请仔细考虑您有多少产品变体。

https://github.com/woothemes/woocommerce/issues/9396