Woocommerce — скрыть кнопку "Добавить в корзину" для бесплатных товаров

8 авг. 2013 г., 11:47:11
Просмотры: 16.2K
Голосов: 4

Я использую WooCommerce и ищу способ скрыть кнопку "Добавить в корзину" на
странице товара ЕСЛИ товар бесплатный — я делаю большой CSV-импорт, и некоторые цены товаров установлены в ноль. Мне нужно просто скрыть кнопку "добавить в корзину" для этих товаров, чтобы их нельзя было купить.

Уже спрашивал об этом на странице поддержки, но без успеха.

С уважением

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

У вас есть код вашего файла single-product.php?

fischi fischi
8 авг. 2013 г. 11:54:13

Да, но я не думаю, что это поможет, так как изменения в single-product.php не влияют на эту проблему. Кто-то посоветовал мне "создать новую функцию, подключенную к хуку init, которая проверяет цену товара и, если она равна нулю, удаляет кнопку добавления в корзину с помощью remove_action()".

Так что да, я не очень силен в программировании и не могу сделать это самостоятельно. Надеюсь, это поможет :)

user36383 user36383
8 авг. 2013 г. 12:10:57
Все ответы на вопрос 2
7

Посмотрите на начало шаблонов добавления в корзину в WooCommerce. В начале там есть проверка, определяющая, можно ли приобрести товар. Внутри метода is_purchasable() в классе продукта находится фильтр. По умолчанию товар нельзя приобрести, если цена вообще не установлена, но это можно расширить, чтобы включить товары с ценой, установленной в 0.

function wpa_109409_is_purchasable( $purchasable, $product ){
    if( $product->get_price() == 0 )
        $purchasable = false;
    return $purchasable;
}
add_filter( 'woocommerce_is_purchasable', 'wpa_109409_is_purchasable', 10, 2 );
9 авг. 2013 г. 00:06:26
Комментарии

Большое спасибо! Это именно то решение, которое мне было нужно!

user36383 user36383
13 авг. 2013 г. 10:53:15

@helgatheviking, ваши многочисленные ответы здесь бесценны. Я продолжаю находить их снова и снова! Спасибо!

pcarvalho pcarvalho
14 авг. 2016 г. 06:37:53

Пожалуйста, @peteroak, рад, что они оказались полезными. Я провожу здесь слишком много времени :) (сейчас больше на SO в теге WooCommerce, но все равно тут)

helgatheviking helgatheviking
14 авг. 2016 г. 23:02:53

ДА! Я добавлял кучу условных проверок в файлы шаблонов, чтобы проверить специальное значение и определить, может ли пользователь купить товар. Вместо этого использовал этот фильтр (который я как-то упустил) — РЕШЕНО! Спасибо, Кэти.

indextwo indextwo
31 окт. 2016 г. 15:46:45

Привет, @helgatheviking, можно ли добавить описание товара или сообщение на странице для тех конкретных товаров, у которых скрыта корзина?

Gregory Gregory
15 дек. 2020 г. 18:36:20

Я нашел решение, используя хук "woocommerce_single_product_summary" с проверкой "$product->is_purchasable()"

Gregory Gregory
15 дек. 2020 г. 18:43:57

По какой-то причине наш сайт не отображал кнопку "Добавить в корзину" для товара с ценой 0.00, поэтому мы добавили этот код, и теперь кнопка добавляется к товарам, у которых вообще не указана цена (мы бы предпочли не показывать кнопку в этом случае). Есть предложения? add_filter( 'woocommerce_is_purchasable', 'wpa_109409_is_purchasable', 10, 2 ); function wpa_109409_is_purchasable( $purchasable, $product ){ if( $product->get_price() >= 0.00) $purchasable = true; return $purchasable; }

Crazeco.com.au Crazeco.com.au
27 авг. 2022 г. 15:07:51
Показать остальные 2 комментариев
0

Насколько я понял вашу проблему... WooCommerce имеет опцию, когда вы не указываете цену, кнопка вообще не отображается...
Ваш товар становится просто обычной галереей/каталогом...
Если это то, что вам нужно... возможно, самым простым способом будет редактирование вашего csv-файла... просто найдите и замените нули на пустые значения...

8 авг. 2013 г. 23:26:51