在 WooCommerce 中隐藏未登录用户的特定产品变体

Hide specific product variations from unlogged users in WooCommerce

我试图在 WooCommerce 中为未登录的访问者隐藏产品的两个变体中的 一个。变体的 ID 是 139。我不知道不知道如何将 ID(或 slug)添加到这段代码中。

    <?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;
    }         
      

有人可以帮我吗?

已更新 - 要对未登录的用户隐藏特定定义的产品变体,请使用以下内容:

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;
} 

代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。