gpt4 book ai didi

php - 更改默认目录 orderby 会删除 WooCommerce 中的 menu_order 选项

转载 作者:行者123 更新时间:2023-12-04 09:19:15 27 4
gpt4 key购买 nike

我正在尝试更改默认订单的名称,为名称添加新订单,并删除几个不相关的默认选项:

// Remove the other sort order options and add and rename 1
add_filter('woocommerce_catalog_orderby', 'change_default_sorting_options');
function change_default_sorting_options($options)
{
unset($options['popularity']);
unset($options['rating']);
unset($options['date']);
unset($options['price']);
unset($options['price-desc']);
$options['name'] = 'Sort by Name';
$options['menu_order'] = 'Catalog Sort Order';
return $options;
}
这工作正常。默认是 menu_order 选项。
然后,当类别为“20 Gauge”时,我想让目录按“名称”排序。添加此代码结果确实按“20 Gauge”类别的名称排序,但它从排序顺序下拉列表中删除了默认选项 (menu_order):
add_filter('woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby');
function custom_default_catalog_orderby()
{
if (is_product_category(array('20-gauge'))) {
return 'name'; // sort by latest
} else {
return 'menu_order';
}
}

最佳答案

你需要更多的小魔术。尝试以下重新访问的代码:

// Remove the other sort order options and add and rename 1
add_filter( 'woocommerce_catalog_orderby', 'change_default_sorting_options' );
function change_default_sorting_options( $options ){
unset($options['popularity'], $options['rating'], $options['date' ], $options['price'], $options['price-desc']);

$menu_order = __('Catalog Sort Order');
$options['name'] = __('Sort by Name');

if ( is_product_category( array( '20-gauge') ) ) {
$options[ 'menu_order2' ] = $menu_order;
} else {
$options[ 'menu_order' ] = $menu_order;
}
return $options;
}

add_filter( 'woocommerce_default_catalog_orderby', 'custom_default_catalog_orderby' );
function custom_default_catalog_orderby( $orderby ) {
if (is_product_category( array( '20-gauge') ) ) {
$orderby = 'name'; // sort by latest
}
return $orderby;

}

add_filter( 'woocommerce_get_catalog_ordering_args', 'enable_non_default_sorting_by_menu_order' );
function enable_non_default_sorting_by_menu_order( $args ) {
if ( isset( $_GET['orderby'] ) && 'menu_order2' == $_GET['orderby'] ) {
$args['orderby'] = 'menu_order title';
}
return $args;
}
代码位于事件子主题(或事件主题)的 functions.php 文件中。测试和工作。

关于php - 更改默认目录 orderby 会删除 WooCommerce 中的 menu_order 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63122525/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com