В этой статье я расскажу о том, как скрыть товары на WooCommerce на основе значения пользовательского поля или ACF поля (мета поля). Это может быть очень полезным, если вы хотите скрыть товары на основе определенных критериев, например, цвета, размера или любого другого персонального поля.
Для этого мы будем использовать PHP-скрипт, который позволяет нам настроить условную логику и скрыть товары на основе значения мета поля. Просто замените «whatever_key» и «whatever_value» на свой ключ и значение мета поля.
Этот скрипт сообщит запросу WooCommerce показывать все товары, где ключ = «whatever_key» не существует, ИЛИ где значение отличается от «whatever_value» в случае, если ключ = «whatever_key» установлен. Скопируйте код в ваш файл functions.php вашей темы:
add_action( 'woocommerce_product_query', 'genius_hide_product_if_cf_query', 9999, 2 );
function genius_hide_product_if_cf_query( $q, $query ) {
if ( is_admin() ) return;
$meta_query = $q->get( 'meta_query');
$meta_query[] = array(
'relation' => 'OR',
array(
'key' => 'whatever_key',
'compare' => 'NOT EXISTS',
),
array(
'key' => 'whatever_key',
'value' => 'whatever_value',
'compare' => '!=',
),
);
$q->set( 'meta_query', $meta_query );
}
Это очень удобно, если вы хотите скрыть определенные товары, чтобы улучшить опыт покупателей или из-за каких-то других причин. Надеюсь, этот материал будет полезен для владельцев интернет-магазинов, которые хотят более тонко настроить видимость своих товаров. Удачи!