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

#php #wordpress #woocommerce #product #cart

#php #wordpress #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 );
  

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

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

Ответ №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 файл вашей активной дочерней темы (или active theme).

Комментарии:

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