В основном я хочу отсортировать результаты WP_QUERY по измененной пользовательской мета-цене:
$args['orderby'] = 'meta_value_num';
$args['meta_key'] = 'buy_price';
$args['order'] = 'desc';
Допустим, у меня есть 3 сообщения с 3 различными ценовыми значениями:
post_id meta_key meta_value
1 (oranges) buy_price 10 €
2 (peaches) buy_price 12 €
3 (apples) buy_price 8 €
Пост 1 - апельсины. Если я покупаю 1 апельсин, мне нужно заплатить 10 €, но если я покупаю 3 апельсина за раз, мне нужно заплатить только 9 € за каждый. Таким образом, значение meta_value временно должно измениться до 9 €.
Моя главная цель - вывести самые дешевые фрукты:
Пользователь может вручную установить количество фруктов, которые он хочет. Например: он хочет 10 фруктов и ищет самые дешевые фрукты.
sorted entrys (cheapest price first):
10 apples cost 9€ each -> 90€
10 oranges cost 8€ each -> 80€
10 peaches cost 11€ each -> 110€
Кто-нибудь знает, как я могу сделать сортировку по расчету в WP_QUERY?
Моей первой идеей было создать массив json в качестве мета-значения post
{
"oranges":{
"10%": 3, // 3 oranges give a fee rebate of 10% per orange
"15%": 10 // 10 or more oranges give a fee rebate of 15% per orange
}
},
Проблема в том, что мы не должны сохранять массивы в wp_meta, и я не уверен, как сортировать после расчета. Должен ли я выбрать собственную таблицу метаданных?