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