#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 файл вашей активной дочерней темы (или активной темы).
Комментарии:
1. Спасибо, но у меня все еще одна проблема, когда я добавляю это. Я думал, что это тоже исправит ситуацию, но, по-видимому, проблема была не в этом. Я скрываю изображение продукта на основе роли пользователя «клиент», и это работает, но для переменных продуктов, когда я выбираю переменную, изображение появляется снова. Есть идеи, как это исправить? Или, может быть, чтобы скрыть варианты продукта, когда пользователь не является клиентом?