首页 > 解决方案 > 如果存在,按元在 woocommerce 类别中创建自定义产品排序选项

问题描述

我可以使用官方 woo 文档创建自定义产品排序选项。但是,选择后,仅显示具有自定义元的产品。如果产品不存在自定义元数据,我想按修改时间添加订单。最终结果将是具有自定义元的产品将出现在排序的顶部,所有没有自定义元的产品将在它们按修改时间排序之后出现。

这是功能:

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 ( 'custom_meta' == $orderby_value ) {
        $args['orderby'] = 'custom_meta';
        $args['order'] = 'DESC';
        $args['meta_key'] = 'meta_key_num';
    }
    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['custom_meta'] = 'Custom';
    return $sortby;
}

标签: sortingwoocommerce

解决方案


推荐阅读