WooCommerce为我们提供了一些商品排序方式选项,其中有些非常好用,比如按价格排序,按日期排序,按热度排序等,可是也有一些我们用不上的排序方式,比如可能网站中没有使用评分系统,所有按评分排序的选项是没有用的,为了避免用户给用户造成困扰,我们有必要把这个选项去掉。
去掉前台排序选项中的某个排序方式
#从商店模板中移除 "默认排序"
function wizhi_remove_default_sorting_option( $catalog_orderby_options ) {
unset( $catalog_orderby_options['rating'] );
return $catalog_orderby_options;
}
add_filter( 'woocommerce_catalog_orderby', 'wizhi_remove_default_sorting_option' );
从WooCommerce与排序有关的源码文件中可以找到默认的排序方式如下:
#WooCommerce默认排序方式
array(
'menu_order' => __( 'Default sorting', 'woocommerce' ),
'popularity' => __( 'Sort by popularity', 'woocommerce' ),
'rating' => __( 'Sort by average rating', 'woocommerce' ),
'date' => __( 'Sort by newness', 'woocommerce' ),
'price' => __( 'Sort by price: low to high', 'woocommerce' ),
'price-desc' => __( 'Sort by price: high to low', 'woocommerce' )
)
想去掉哪个,就 unset 掉哪个,完成了这一步,前台商品排序中的按评分排序就去掉了。可是后台设置默认排序选项的地方还是有按评分排序的选项,我们也需要把这个选项值去掉。
去掉后台默认排序选项设置中的某个排序方式
#移除后台设置中的按评分过滤选项
function wizhi_remove_default_sorting_from_settings( $options ) {
unset( $options['menu_order'] );
return $options;
}
add_filter( 'woocommerce_default_catalog_orderby_options', 'wizhi_remove_default_sorting_from_settings' );
做完了这一步,按评分排序的选项就彻底没有了,当然,除了移除排序选项,我们还可以添加选项,不过这是另外一篇文章的事情了。