就是前台显示页面中属性 size 的选项排序不对,比如 该商品 size 有 15 16 17 ,但是前台显示为 17 15 16 这样。
通过询问 gpt ,在模板函数中添加了下面的代码,还是不行,排序没有改变,我在 usort($terms, function ($a, $b)前后打印了$terms ,发现确实已经完成了排序了,但是前台还是不变,求大佬指教
function custom_attribute_term_sort($attributes) {
// 只在产品属性( pa_size )中应用自定义排序
if (isset($attributes['pa_size'])) {
$terms = $attributes['pa_size']['terms'];
usort($terms, function ($a, $b) {
// 将选项值解析为数字并比较
$a_parts = explode(' / ', $a->name);
$b_parts = explode(' / ', $b->name);
$a_value = intval($a_parts[0]);
$b_value = intval($b_parts[0]);
return $a_value - $b_value;
});
$attributes['pa_size']['terms'] = $terms;
}
return $attributes;
}
add_filter('woocommerce_product_get_attributes', 'custom_attribute_term_sort');