2017-04-03 52 views
0

我想对woocommerce产品在下列条件进行排序:WooCommerce自定义排序(多个条件)

  • 无法使用的产品出现故障
  • 其余的产品应随机排序

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

任何解决方案?

+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。因此,他们将被自动排序,并将会走向低谷。