Wordpress Woocommerce按类别对产品进行排序

时间:2016-03-03 16:41:31

标签: php wordpress function woocommerce

我正在使用wordpress和woocommerce。我一直在尝试和搜索最后几天是一种按产品类别对产品进行分类的方法。例如,“汽车”类别的产品必须按价格ASC进行分类。我有大约10个不同的类别和不同的排序。我认为下面这段代码可以解决我的问题,但它确实有效。我尝试了多种方法,但找不到合适的方法。我的PHP知识非常有限,但每天都在学习。 Shoud我用案例?我怎么做到这一点?或许它只是另一种写作方式?我希望有人可以帮助我。提前谢谢。

BAS

add_filter('woocommerce_get_catalog_ordering_args','tk_woocommerce_catalog_orderbyb');
function tk_woocommerce_catalog_orderbyb( $args ) {
   $cat = get_the_terms( $product->ID, 'product_cat' );
   foreach ($cat as $categoria) {
      if($categoria->parent == 0) {
         $main_parent = $categoria->name;
      }
   }
   if($main_parent == 'Cars') {
      $args['orderby']  = 'meta_value_num';
      $args['order']    = 'ASC';
      $args['meta_key'] = '_price'; 
   }
   return $args;
}

1 个答案:

答案 0 :(得分:0)

我知道这不是一个非常干净的解决方案,但它确实有效。如果有'其他如果'声明(或案例)我可以对每个产品类别使用不同的排序。

add_filter('woocommerce_get_catalog_ordering_args', 'tk_woocommerce_catalog_orderbyb');
function tk_woocommerce_catalog_orderbyb($args) {
$urlb = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($urlb,'cars')) {
    $args['orderby']  = 'meta_value_num';
    $args['order']    = 'ASC';
    $args['meta_key'] = '_price'; 
    }
return $args;
}