WooCommerce自定义排序(多个条件)

时间:2017-04-03 08:29:21

标签: php wordpress woocommerce

我正在尝试在以下条件下对woocommerce的产品进行分类:

  • 不可用的产品发生故障
  • 其他产品应随机订购

我尝试了几种方法,但问题是首次随机化会在可用性订单后丢失,随机化后首先会失去可用性。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

您需要为产品添加自定义排序选项。你可以这样做:

function vi_custom_woocommerce_catalog_orderby( $sortby ) {
    $sortby['alphabetical'] = 'Sort by name: custom';
    return $sortby;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'vi_custom_woocommerce_catalog_orderby' );
add_filter( 'woocommerce_catalog_orderby', 'vi_custom_woocommerce_catalog_orderby' );

//Add Alphabetical sorting option to shop page / WC Product Settings
function vi_alphabetical_woocommerce_shop_ordering( $sort_args ) {
  $orderby_value = isset( $_GET['orderby'] ) ? woocommerce_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );

    if ( 'alphabetical' == $orderby_value ) {
        $sort_args['orderby'] = 'meta_value_num';
        $sort_args['order'] = 'asc';
        $sort_args['meta_key'] = '';
    }

    return $sort_args;
}
add_filter( 'woocommerce_get_catalog_ordering_args', 'vi_alphabetical_woocommerce_shop_ordering' );

对于可用的产品,您可以指定“> 0”值,对于所有不可用的产品,您可以指定0.因此它们将自动排序并将逐渐显示。