Estou tentando ocultar apenas uma das duas variações de um produto no WooCommerce para visitantes que não estão logados. O ID da variação é 139. Não sei como adicionar o ID (ou slug) a esta peça de código.
<?php // Hide WooCommerce variations for non-logged-in users
function my_theme_hide_price_not_authorized() {
if ( !is_user_logged_in() ) {
// Hide variations
add_filter( 'woocommerce_variation_is_active', 'my_theme_disable_variation', 10 , 2 );
}
}
add_action('init', 'my_theme_hide_price_not_authorized');
// Hide product variations
function my_theme_disable_variation() {
return false;
}
Alguém pode me ajudar?
Atualizado - para ocultar variações específicas de produtos definidos de usuários não registrados, use o seguinte:
add_filter( 'woocommerce_variation_is_visible', 'hide_specific_product_variation', 10, 4 );
function hide_specific_product_variation( $is_visible, $variation_id, $variable_product, $variation ) {
// Here define the variation(s) ID(s) to hide
$variations_ids_to_hide = array('139');
// For unlogged user, hide defined variations
if( ! is_user_logged_in() && in_array($variation_id, $variations_ids_to_hide ) ) {
return false;
}
return $is_visible;
}
O código entra no arquivo functions.php do tema filho ativo (ou tema ativo). Deve funcionar.
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras