Jak ukryć ceny dla wybranych produktów?
Typowe dla klienta. Grzegorz jestem przed zmianą cen trzeba na 3 dni wyłączyć ceny dla produktów danego producenta. Hmm – wyłączenie cen dla konkretnej kategorii to już każdy o tym pisał. Ale jak wyłączyć ceny dla produktu z określonym atrybutem? Bo tak też zrobiłem. Producent do dodatkowy atrybut produktu. I żeby nie było prosto – mówimy o produktach z wariantami. No to do dzieła.
function gc_ukryj_cena( $price, $product ) {
global $product;
$producent = $product->get_attribute('pa_producent');
if ($producent == 'Kobok' || $producent == 'Kobok Eko') {
$price = '';
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 );
}
return $price;
}
add_filter( 'woocommerce_get_price_html', 'gc_ukryj_cena', 10, 2 );
add_filter( 'woocommerce_variable_sale_price_html', 'gc_ukryj_cena', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'gc_ukryj_cena', 10, 2 );
Powyższy kod załatwia ukrywanie ceny dla atrybutu o nazwie 'Kobok’ oraz 'Kobok Eko’. Dodatkowo ukrywamy guzik dodaj do koszyka. Zarówno dla prostych produktów jak i produktów z wariantami oraz na stronie z kategorią produktów.