WooCommerce:如何给产品列表的“默认排序”删除、重命名、添加的排序选项

更新日期:2021-11-09
Share on facebook
Share on twitter
Share on linkedin

我们之前已经说过:如何完全删除 WooCommerce 商店、产品列表页面中显示的“默认排序”下拉选项

但是,有时你可能只需要删除默认选项中的一个,或者重命名这些选项,甚至是添加新的排序选项。像往常一样,多亏了 WooCommerce 挂钩和过滤器,几行 PHP 代码就可以实现这个目标。

woocommerce default sorting option add remove edit
删除、重命名或添加选项到 WooCommerce“默认排序”下拉列表

PHP 代码段 #1:在WooCommerce产品列表中删除某个排序选项

/**
* @snippet       Remove Sorting Option @ WooCommerce Shop
* @testedwith    WooCommerce 3.8
*/
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_remove_sorting_option_woocommerce_shop' );
function bbloomer_remove_sorting_option_woocommerce_shop( $options ) {
unset( $options['rating'] );
return $options;
}
//说明:你可以通过添加更多的 "unset "调用来删除其他排序选项......这里有一个选项列表: 'menu_order', 'popularity', 'rating', 'date', 'price', 'price-desc'

PHP 代码段 #2:在WooCommerce产品列表中给排序选项重命名

/**
* @snippet       Rename a Sorting Option @ WooCommerce Shop
* @testedwith    WooCommerce 3.8
*/
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_rename_sorting_option_woocommerce_shop' );
function bbloomer_rename_sorting_option_woocommerce_shop( $options ) {
$options['price'] = 'Sort by price (asc)';
return $options;
}

PHP 代码段 #3:在 WooCommerce 产品列表中添加自定义排序选项

在此示例中,我们将创建一个名为“Sort by name (desc)”的新排序选项,它会按产品的标题(降序)对产品进行排序。

/**
* @snippet       Add a Custom Sorting Option @ WooCommerce Shop
* @testedwith    WooCommerce 4.0
*/
// 1. 创建一个产品排序规则
add_filter( 'woocommerce_get_catalog_ordering_args', 'bbloomer_sort_by_name_woocommerce_shop' );
function bbloomer_sort_by_name_woocommerce_shop( $args ) {
$orderby_value = isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) );
if ( 'name' == $orderby_value ) {
$args['orderby'] = 'title';
$args['order'] = 'DESC';
}
return $args;
}
// 2. 将产品排序规则加入到排序下拉选项中
add_filter( 'woocommerce_catalog_orderby', 'bbloomer_load_custom_woocommerce_catalog_sorting' );
function bbloomer_load_custom_woocommerce_catalog_sorting( $options ) {
$options['name'] = 'Sort by name (desc)';
return $options;
}

点赞
0 / 5 0

Your page rank:

相关 教程

我自用的 建站资源

当你点击本站的链接购买主机、主题、插件,我会得到一些佣金用于运营网站,但不会影响你的购买价格,我只推荐自己在用的,感谢有你的支持~比心( •̀ ω •́ )y

Namesilo

注册域名,购买时使用优惠券loyseo可减1美元
前往注册→

Cloudways

速度快、续费不涨价的优质主机
了解详情→

elementor logo gradient 01 1
Elementor

最热门的网页可视化设计编辑器,我的网站就是用它建的
了解详情→

Astra

易用又轻快的WordPress主题,含超多免费模板
了解详情→

Copyright © LOYSEO.COM

我的九成客户都在用的Cloudways超快独享主机,本站专属优惠码:LOYSEO,前2个月可优惠30%
读者学习交流群,
欢迎微信扫码加入