Wordpress 按价格计算的商业订单无法正常工作
当选择“按价格排序”(Woocommerce下拉菜单)选项时,将选择要按价格排序的产品,但该选项不起作用; 前6项分类如下:Wordpress 按价格计算的商业订单无法正常工作,wordpress,woocommerce,Wordpress,Woocommerce,当选择“按价格排序”(Woocommerce下拉菜单)选项时,将选择要按价格排序的产品,但该选项不起作用; 前6项分类如下: 1.50欧元 11,75欧元 1,75欧元 1,75欧元 2,95欧元 4,50欧元 链接到未完成的网站: 有人知道发生了什么以及如何解决这个问题吗? 干杯 看来这一切都很顺利。查看特色产品,因为它们具有优先级。按数字元数据订购时,您需要使用meta\u value\u num,否则它将作为字符串进行比较,否则,因为post元数据将作为字符串存储在数据库中 $arg
- 1.50欧元
- 11,75欧元
- 1,75欧元
- 1,75欧元
- 2,95欧元
- 4,50欧元
干杯 看来这一切都很顺利。查看特色产品,因为它们具有优先级。按数字元数据订购时,您需要使用
meta\u value\u num
,否则它将作为字符串进行比较,否则,因为post元数据将作为字符串存储在数据库中
$args = array(
'meta_key' => 'price',
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
$query = new WP_Query( $args );
您应该将Woocommerce插件更新至最新版本。这是插件中的一个bug,或者您可能更改了核心函数中的某些内容
更新帮助我很好地解决了这一问题和其他几个问题。适用于可能面临此问题的任何人 根据: 如果使用“WP All Import”等工具导入产品,则必须在以下位置重新生成“产品查找表”: WooCommerce>状态>工具>产品查找表
如果按价格订购在WooCommerce中无法正常工作,则安全的解决方案始终是自定义WooCommerce如何处理按价格订购。这是因为WooCommerce
price
和price desc
是默认的订购选项。(使用WordPress v5.4.1和WooCommerce v4.1.0中的标准主题进行测试):
在functions.php中添加:
/**
* Customize ordering by price
*/
add_filter('woocommerce_get_catalog_ordering_args', function ($args) {
$orderby_value = isset($_GET['orderby']) ? wc_clean($_GET['orderby']) : apply_filters('woocommerce_default_catalog_orderby', get_option('woocommerce_default_catalog_orderby'));
if ('price' == $orderby_value) {
$args['orderby'] = 'meta_value_num';
$args['order'] = 'ASC';
$args['meta_key'] = '_price';
}
if ('price-desc' == $orderby_value) {
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
$args['meta_key'] = '_price';
}
return $args;
});
与@Pelmered一样,重要的是使用meta\u value\u num
作为“order\u by”选项,以便按数值而不是字符串值进行排序。不过,我将meta_键
改为“_price”,因为这是上面提到的WooCommerce版本所要求的
进一步阅读:
为什么有些产品的欧分分隔符是“,”而不是“?我需要在Woocommerce中添加哪个文件?@Hassan这是在WordPress/Woocommerce中获取帖子(产品)列表的标准查询。将其放置在要打印列表的任何位置。您需要循环查询结果。如果您不明白这一点,这可能不是您正在寻找的解决方案。谢谢!这正是我所需要的。在Woocommerce v4.5.1中,这一点仍然适用。