Скрыть конкретную цену продукта перед входом в систему - woocommerce - PullRequest
0 голосов
/ 11 июля 2019

У меня есть две категории товаров (личные и деловые).Я хочу цены только из категории бизнеса.Если пользователь вошел в систему, пользователь покажет цены.Я пытался, но это работает только для всех категорий товаров, а не для конкретной категории товаров.Пожалуйста помоги.Заранее спасибо.

//Hide specific product price for registered user only
 add_filter('woocommerce_variable_sale_price_html','woocommerce_remove_prices', 10, 2 );

add_filter( 'woocommerce_variable_price_html','woocommerce_remove_prices', 10, 2 );

add_filter( 'woocommerce_get_price_html','woocommerce_remove_prices', 10, 2 );

function woocommerce_remove_prices( $price, $product ) {

if( is_user_logged_in()) {

    if( is_product_category('business') || has_term( 'business', 'product_cat', $product->get_id() ) ) {
        //remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
        return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
    } else {
        return $price;
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

попробуйте это:

    if(has_term( 'business', 'product_cat', $product->get_id() ) ) {
        //remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
        remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
        return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
    } else {
        return $price;
    }
0 голосов
/ 11 июля 2019

Извините, логика проверки пользователя вошла не так. Я должен проверить, не вошел ли пользователь в систему.

//Hide specific product price for registered user only
 add_filter('woocommerce_variable_sale_price_html','woocommerce_remove_prices', 10, 2 );

add_filter( 'woocommerce_variable_price_html','woocommerce_remove_prices', 10, 2 );

add_filter( 'woocommerce_get_price_html','woocommerce_remove_prices', 10, 2 );

function woocommerce_remove_prices( $price, $product ) {

if( !is_user_logged_in()) {

if( is_product_category('business') || has_term( 'business', 'product_cat', $product->get_id() ) ) {
    //remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
} else {
    return $price;
}

} }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...