Как можно скрыть кнопку «Добавить в корзину» в WooCommerce, когда цена товара равна нулю?

Как скрыть кнопку "Добавить в корзину" для товаров с ценой 0 в WooCommerce?
  • 4 апреля 2024 г. 7:19
Ответы на вопрос 2
Для скрытия кнопки "Добавить в корзину" для товаров с ценой 0 в WooCommerce можно использовать следующий код:

1. Откройте файл functions.php вашей темы WordPress (обычно находится в папке /wp-content/themes/ваша_тема/functions.php).

2. Добавьте следующий код в конец файла functions.php:

```php
add_filter( 'woocommerce_is_purchasable', 'hide_add_to_cart_for_zero_price', 10, 2 );
function hide_add_to_cart_for_zero_price( $is_purchasable, $product ) {
    if ( 0 == $product->get_price() ) {
        $is_purchasable = false;
    }
    return $is_purchasable;
}
```

3. Сохраните изменения.

Теперь кнопка "Добавить в корзину" будет скрыта для товаров с ценой 0 в WooCommerce.
https://wordpresslab.ru/e-commerce/huki-straniczy-... 
Как вариант, вначале использовать хуки woocommerce_single_product_summary и woocommerce_after_shop_loop_item, и по условию, удалять события woocommerce_template_single_add_to_cart и woocommerce_template_loop_add_to_cart:
function test() {
    global $product;

    if($product->get_price() == 0 || $product->get_price() == '') {
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 99);
        remove_action('woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10);
    }
}

add_action('woocommerce_single_product_summary', 'test', 99);
add_action('woocommerce_after_shop_loop_item', 'test', 99);
Похожие вопросы