Допустим при добавлении нового товара был добавлен некоторым товарам атрибут "gender".
На странице категорий есть список select, в котором можно фильтровать товары по атрибутам.
Подскажите, как отфильтровать товары и вывести их, у который есть атрибут gender?
Дополню вопрос.
Использую такой код:
add_filter( 'woocommerce_get_catalog_ordering_args', 'custom_woocommerce_get_catalog_ordering_args' );
function custom_woocommerce_get_catalog_ordering_args( $args ) {
if (isset($_POST['gender'])) {
$args['orderby'] = 'gender';//поле по которому сортируем
$args['order'] = 'ASC';//по возрастанию (ASC) или убыванию (DESC)
$args['meta_key'] = 'gender';
}
// echo '<pre>';
// var_export($args);
// echo '</pre>';
return $args;
}
/**
* Сохраняем атрибуты товара в виде мета данных к записи для того, чтобы использовать их в сортировке и поиске
*/
add_action( 'save_post', 'save_woocommerce_attr_to_meta' );
function save_woocommerce_attr_to_meta( $post_id ) {
// Получаем названия атрибутов .. Для каждого элемента получаем индекс и название атрибута
// Затем используем индекс для получения соответствующего отправленного значения из массива attribute_values.
if (isset($_REQUEST['attribute_names'])) {
foreach( $_REQUEST['attribute_names'] as $index => $value ) {
update_post_meta( $post_id, $value, $_REQUEST['attribute_values'][$index] );
}
}
}
но ничего не сортируется
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости