WooCommerce удалить корзину покупок по роли пользователя

В Woocommerce у меня есть функция, которая заменяет кнопку добавления в корзину кнопкой, связанной с продуктом в магазине и на страницах архива:

function quantity_inputs_for_woocommerce_loop_add_to_cart_link( $html, $product ) {
if ( ! current_user_can('customer') ) {
    $link = get_permalink($product_id);
    $button_text = __( "View product", "woocommerce" );
    $html = '<a href = "'.$link.'" class = "button alt add_to_cart_button">'.$button_text.'</a>';
}
return $html;
}
add_filter( 'woocommerce_loop_add_to_cart_link', 'conditionally_change_loop_add_to_cart_link', 10, 2 );

Я хотел бы удалить кнопку добавления в корзину на всех страницах, если пользователь не вошел в систему как клиент.

Кто-нибудь может помочь, пожалуйста?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
280
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вместо вашего фактического кода попробуйте следующее, которое будет делать все везде и удалит кнопку добавления в корзину, когда пользователь не вошел в систему:

add_filter('woocommerce_is_purchasable', 'woocommerce_is_purchasable_filter_callback', 10, 2 );
function woocommerce_is_purchasable_filter_callback( $purchasable, $product ) {
    if ( ! is_user_logged_in() ) 
        $purchasable = false;

    return $purchasable;
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы).

Спасибо, но у меня есть еще одна проблема, когда я добавляю это. Я думал, что это также исправит это, но, по-видимому, проблема была не в этом. Я скрываю изображение продукта на основе роли пользователя «клиент», и это работает, но для переменных продуктов, когда я выбираю переменную, изображение снова появляется. Есть идеи, как это исправить? Или, может быть, чтобы скрыть варианты продукта, когда пользователь не является покупателем?

Kevin Sneyers 08.04.2019 10:13

Другие вопросы по теме