添加自定义WooCommerce排序方式选项

WooCommerce商品列表默认支持几种排序方式,默认的排序方式有,价格、日期、商品名称等等,有时候默认的排序选项满足不了我们的需求,我们需要添加一些自定义排序方式,让用户查找商品的时候用户体验更好。

WooCommerce排序的数据依据是 WordPress 的 post meta,所以,我们要想添加方式,首先要有可以用来排序的的 post meta,比如点赞的数量,这里我们假设已经给WooCommerce添加了点赞功能,点赞数据保存在 WordPress 的 post meta 中,meta_key 为 “like”。

添加自定义排序选项到商品列表的下拉菜单中

使用下面代码,可以添加“按喜欢度排序”到WooCommerce的商品列表中。

add_filter('woocommerce_catalog_orderby', 'custom_woocommerce_catalog_orderby');

//添加新选项到 $sortby 参数
function custom_woocommerce_catalog_orderby($sortby) {
    $sortby['like'] = "按喜欢度排序";
    return $sortby;
}

到这里,我们只是添加了自定义选项到排序下拉列表,选择这个是没有用的,因为排序用的数据还没有添加上。

添加排序用的自定义字段数据到排序功能

add_filter('woocommerce_get_catalog_ordering_args', 'custom_catalog_ordering_args');
function custom_catalog_ordering_args($args) {
    global $wp_query;
    // 获取排序参数
    if ($_GET['orderby'] == "like") {
        $args['meta_key'] = 'like';
        $args['orderby'] = 'meta_value';
        $args['order'] = "ASC";
    }
    return $args;
}

把以上代码添加上以后,再选择“按喜欢度排序”排序,商品就按照被喜欢的次数从多到少排好序了。当然,你也可以根据你的需求,添加其他排序方式。

资源分享 本站提供不断更新优质资源,敬请收藏关注
玄武新动力 » 添加自定义WooCommerce排序方式选项

提供最优质的资源集合

立即查看 了解详情