首页 文章

Woocommerce - 从商店页面中删除可用的产品库存编号

提问于
浏览
3

在显示我的电子商务商店中所有产品的商店页面上,它当前显示产品名称旁边的产品计数(库存)编号,如下所示:

enter image description here

我发现并尝试使用此代码:

add_filter( 'woocommerce_subcategory_count_html', 'woo_remove_category_products_count' );
function woo_remove_category_products_count() {
return;
}

但它不起作用,因为它删除了单个产品页面上的“仅剩5个库存”通知,而这不是我需要的 .

然后我尝试使用CSS:

.count {
    display: none !important;
}

但也不起作用 .

我真的希望有人有解决方案 . 所有建议都非常欢迎,并感谢您的提前努力!

2 回答

  • 0

    好的,请登录wordpress并转到WooCommerce>设置>库存(标签)

    然后将库存显示格式设置为永不显示库存信息 .

  • 1

    @Update1:


    试试这个片段代码功能(没有担保,因为未经测试),但从逻辑上讲它应该完成这项工作(参见下面模板的摘录):

    remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
    

    或者:

    add_action('init', function(){
        remove_action( 'woocommerce_before_shop_loop', 'woocommerce_result_count', 20 );
    }
    

    首先找到该计数中涉及的函数: woocommerce_result_count() .

    然后我找到相关的钩子:

    以下是显示钩子的模板 archive-product.php 的摘录:

    <?php
        /**
         * woocommerce_before_shop_loop hook.
         *
         * @hooked woocommerce_result_count - 20       <==== ==== ==== ==== Here @@@ !
         * @hooked woocommerce_catalog_ordering - 30
         */
        do_action( 'woocommerce_before_shop_loop' );
    ?>
    

    @update2: - 这也有效(参见update3:替代方案)


    最后一次尝试基于this old thread (see at the end),覆盖商店页面上的本机功能:

    add_action('init', function(){
        if(is_shop()){
            function woocommerce_result_count(){
                return;
            }
        }
    }
    

    或者:

    if(is_shop()){
        function woocommerce_result_count(){
            return;
        }
    }
    

    @update3: - 其他工作解决方案(覆盖模板文件)


    函数woocommerce_result_count()引用了 loop/result-count.php WooCommerce模板,您可以在此源文件提取中看到:

    if ( ! function_exists( 'woocommerce_result_count' ) ) {
    
        /**
         * Output the result count text (Showing x - x of x results).
         *
         * @subpackage  Loop
         */
        function woocommerce_result_count() {
            wc_get_template( 'loop/result-count.php' );
        }
    }
    

    解决方案:

    位于: loop/result-count.php WooCommerce模板,将 || is_shop() 添加到 if 语句(第27行),这样:

    <?php
    /**
     * Result Count
     *
     ... / ...
    
     * @version     2.0.0
     */
    
    if ( ! defined( 'ABSPATH' ) ) {
        exit; // Exit if accessed directly
    }
    
    global $wp_query;
    
    // @@@ Here we avoid count on shop page <==== ==== ==== ==== ADDING " || is_shop() "…
    if ( ! woocommerce_products_will_display() || is_shop() )
        return;
    /*
     ... / ...
    
     */
    

    这次工作有效......

    参考:Overriding Templates via a Theme (+Template Structure)

相关问题