Как скрыть товары с ценой 0?
1. Чтобы скрыть товары с ценой 0 на странице магазина и на страницах категорий товаров. установите и активируйте плагин ProFunctions и добавьте в него код:
/* Скрыть товары с ценой 0 на странице магазина и на страницах категорий товаров */
add_action( 'woocommerce_product_query', function ( $q ) {
$meta_query = $q->get( 'meta_query' );
$meta_query[] = array(
'key' => '_price',
'value' => 0,
'compare' => '>',
'type' => 'NUMERIC'
);
$q->set( 'meta_query', $meta_query );
} );
2. Чтобы скрыть товары с ценой 0 в блоках встроенного конструктора главной, установите и активируйте плагин ProFunctions и добавьте в него код:
/* Скрыть товары с ценой 0 в блоках встроенного конструктора главной */
add_filter( 'bono_section_product_query_args', function ( $args ) {
// Добавляем meta_query, если его нет
if ( empty( $args['meta_query'] ) ) {
$args['meta_query'] = array();
}
// Условие: цена больше 0
$args['meta_query'][] = array(
'key' => '_price',
'value' => 0,
'compare' => '>',
'type' => 'NUMERIC',
);
return $args;
} );
3. Чтобы скрыть товары с ценой 0 в похожих товарах на странице товара, установите и активируйте плагин ProFunctions и добавьте в него код:
/* Скрыть товары с ценой 0 в похожих товарах */
add_filter( 'woocommerce_related_products', 'hide_zero_price_from_related', 10, 1 );
function hide_zero_price_from_related( $related_products ) {
foreach ( $related_products as $key => $product_id ) {
$price = get_post_meta( $product_id, '_price', true );
if ( floatval( $price ) == 0 ) {
unset( $related_products[$key] );
}
}
return $related_products;
}
Вам помог ответ?