国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

只顯示具有特定元值產(chǎn)品的Woocommerce類別
P粉037215587
P粉037215587 2024-01-10 17:16:58
0
2
602

我正在開(kāi)發(fā)我的Woocommerce商店的b2b部分。我已經(jīng)成功地過(guò)濾了woocommerce_product_query_meta_query,只顯示已經(jīng)啟用了b2b部分的產(chǎn)品給b2b用戶。

然而,我找不到一種方法來(lái)隱藏在Woocommerce類別小部件中顯示0個(gè)結(jié)果的產(chǎn)品類別(因?yàn)樵擃悇e中沒(méi)有啟用b2b部分的產(chǎn)品)。

我考慮重寫(xiě)預(yù)設(shè)的Woocommerce小工具程式碼,並為每個(gè)類別(和子類別)執(zhí)行wp查詢,傳回啟用了b2b的該類別中的產(chǎn)品數(shù)量。但是對(duì)於大量的產(chǎn)品和類別來(lái)說(shuō),這似乎非常低效。

有沒(méi)有一種方法可以隱藏Woocommerce類別小工具中的「空」類別(該類別中沒(méi)有啟用b2b的產(chǎn)品)?

謝謝任何建議。

編輯

為了澄清我的問(wèn)題:這是我用來(lái)過(guò)濾產(chǎn)品查詢,只顯示具有_eda_display_in_b2b元設(shè)定為yes的產(chǎn)品的函數(shù):

function show_only_b2b_products( $meta_query, $query ) {
    if ( is_admin() || ! is_user_logged_in() || ! is_b2b_user() ) {
        return $meta_query;
    }

    $meta_query[] = array(
        'key'     => '_eda_display_in_b2b',
        'value'   => 'yes',
        'compare' => '='
    );

    return $meta_query;
}

add_filter( 'woocommerce_product_query_meta_query', 'show_only_b2b_products', 10, 2 );

範(fàn)例: https://klon.vozikyprozivot.cz/kategorie-produktu/pridavne-pohony/

這個(gè)類別對(duì)一般客戶和未登入使用者來(lái)說(shuō)不是空的。但是對(duì)於b2b客戶來(lái)說(shuō),沒(méi)有產(chǎn)品可以展示。所以我需要為b2b客戶隱藏這個(gè)類別的小工具。

P粉037215587
P粉037215587

全部回覆(2)
P粉466909449

如果您正在指的是產(chǎn)品分類小部件,那麼有一個(gè)設(shè)定可以隱藏空分類:

#如果您指的是其他內(nèi)容,請(qǐng)?zhí)峁┮粋€(gè)範(fàn)例頁(yè)面的URL以及您網(wǎng)站的系統(tǒng)狀態(tài)。您可以透過(guò)WooCommerce > 狀態(tài)找到它。選擇“取得系統(tǒng)報(bào)告”,然後“複製以供支援使用”。完成後,請(qǐng)將其貼在您的回覆中。

希望這能幫到您。

======編輯======

#我認(rèn)為對(duì)於上述問(wèn)題,您可以使用wc類別鉤子並刪除該類別。請(qǐng)檢查下面的程式碼:

//* 當(dāng)小部件以下拉列表顯示時(shí)使用
    add_filter( 'woocommerce_product_categories_widget_dropdown_args', 'rv_exclude_wc_widget_categories' );
    //* 當(dāng)小部件以列表顯示時(shí)使用
    add_filter( 'woocommerce_product_categories_widget_args', 'rv_exclude_wc_widget_categories' );
    function rv_exclude_wc_widget_categories( $cat_args ) {
    //添加邏輯來(lái)檢查類別是否有產(chǎn)品,并創(chuàng)建ID數(shù)組,并用該數(shù)組替換下面的數(shù)組。
        $cat_args['exclude'] = array('55','68'); // 插入您希望排除的產(chǎn)品類別ID
        return $cat_args;
    }

在上面的程式碼中,我認(rèn)為您可以製定邏輯並檢查類別是否有產(chǎn)品,並為非產(chǎn)品類別建立ID陣列。

透過(guò)這種方式,您可以從清單和下拉清單中排除該類別。

希望這對(duì)您有幫助。

P粉766520991

在Harshit Vaid的大力幫助下,我已經(jīng)成功解決了這個(gè)問(wèn)題:

add_filter( 'woocommerce_product_categories_widget_dropdown_args', 'eda_exclude_wc_widget_categories' );
add_filter( 'woocommerce_product_categories_widget_args', 'eda_exclude_wc_widget_categories' );

function eda_exclude_wc_widget_categories( $cat_args ) {

    $args = array(
        'taxonomy'   => 'product_cat',
        'hide_empty' => 0
    );

    $all_categories        = get_categories( $args );
    $category_exclude_list = array();

    foreach ( $all_categories as $cat ) {
        if ( $cat->category_parent == 0 ) {
            $category_id = $cat->term_id;

            $product_args = array(
                'posts_per_page' => - 1,
                'post_type'      => 'product',
                'tax_query'      => array(
                    array(
                        'taxonomy' => 'product_cat',
                        'terms'    => $category_id,
                        'field'    => 'term_id',
                        'operator' => 'IN'
                    )
                ),
                'meta_query'     => array(
                    array(
                        'key'   => '_eda_display_in_b2b',
                        'value' => 'yes'
                    )
                )
            );

            $query = new WP_Query( $product_args );
            $count = $query->post_count;

            if ( $count == 0 ) {
                array_push( $category_exclude_list, $category_id );
            }
        }
    }

    $cat_args['exclude'] = $category_exclude_list;

    return $cat_args;
}
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板