亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 WooCommerce 產品排序中添加按庫存數量排序

在 WooCommerce 產品排序中添加按庫存數量排序

PHP
素胚勾勒不出你 2023-05-26 16:15:18
我已將以下代碼添加到我的主題中functions.php?!翱捎眯浴迸判蜻x項確實顯示,但當我選擇它時,它是按標題排序的,而不是庫存數量。我也嘗試過使用stock_quantityas a meta_key(即使它不是元),但也沒有用。add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );function custom_woocommerce_get_catalog_ordering_args( $args ) {$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );    if ( 'availability' == $orderby_value ) {        $args['orderby'] = 'stock_quantity';        $args['order'] = 'DESC';        $args['meta_key'] = '';    }    return $args;}add_filter( 'woocommerce_default_catalog_orderby_options', 'custom_woocommerce_catalog_orderby' );add_filter( 'woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby' );function custom_woocommerce_catalog_orderby( $sortby ) {    $sortby['availability'] = 'Availability';    return $sortby;}
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

最后更新:02/22 - 在 WordPress 5.9.1 和 WooCommerce 6.1.1 中測試


代碼進入活動子主題(或活動主題)的 functions.php 文件。


使用['meta_key'] = '_stock'&['orderby'] = 'meta_value_num'代替


所以你得到:


// Ordering products based on the selected values

function filter_woocommerce_get_catalog_ordering_args( $args, $orderby, $order ) {    

    switch( $orderby ) {

        case 'availability':

            $args['orderby']  = 'meta_value_num';

            $args['order']    = 'DESC';

            $args['meta_key'] = '_stock';

            break;

    }


    return $args;

}

add_filter( 'woocommerce_get_catalog_ordering_args', 'filter_woocommerce_get_catalog_ordering_args', 10, 3 );


// Orderby setting

function filter_orderby( $orderby ) {

    $orderby['availability'] = __( 'Availability', 'woocommerce' );

    return $orderby;

}

add_filter( 'woocommerce_default_catalog_orderby_options', 'filter_orderby', 10, 1 );

add_filter( 'woocommerce_catalog_orderby', 'filter_orderby', 10, 1 );


// Optional: use for debug purposes (display stock quantity) 

function action_woocommerce_after_shop_loop_item() {

    global $product;

    echo '<div style="color: red !important; font-size: 20px !important;">' . wc_get_stock_html( $product ) . '</div>';

}

add_action( 'woocommerce_after_shop_loop_item', 'action_woocommerce_after_shop_loop_item', 9, 0 );



查看完整回答
反對 回復 2023-05-26
  • 1 回答
  • 0 關注
  • 162 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號