Как удалить цену и кнопку "Купить" в WooCommerce?

Здравствуйте. Как в WooCommerce на WordPress отключить отображение цен для товаров, которые отсутствуют на складе, включая вариативные товары? <br/> <br/> Также интересует, как скрыть блок с полем для ввода количества, неактивной кнопкой "Купить" и выбором вариаций, если все вариации товара недоступны. Спасибо! <br/> <br/>
  • 25 февраля 2025 г. 13:24
Ответы на вопрос 2
Здравствуйте! Для того чтобы отключить отображение цен и скрыть элементы на странице товаров в WooCommerce, вы можете использовать следующий код. Этот код можно добавить в файл `functions.php` вашей темы или в персонализированный плагин (если вы предпочитаете не редактировать файл темы).

### Удаление цен для отсутствующих товаров

Чтобы скрыть цену на товаре, если он отсутствует на складе, добавьте следующий код:

```php
add_filter('woocommerce_get_price_html', 'custom_remove_price_for_out_of_stock', 10, 2);
function custom_remove_price_for_out_of_stock($price, $product) {
    if (!$product->is_in_stock()) {
        return ''; // Возвращаем пустую строку вместо цены
    }
    return $price; // Возвращаем обычную цену для доступных товаров
}
```

### Скрытие кнопки "Купить" и других элементов

Чтобы скрыть кнопку "Купить", поле для ввода количества и выбор вариаций для товаров, у которых все вариации недоступны на складе, добавьте следующий код:

```php
add_action('woocommerce_single_product_summary', 'custom_disable_out_of_stock_elements', 1);
function custom_disable_out_of_stock_elements() {
    global $product;
    
    if (!$product->is_in_stock()) {
        remove_action('woocommerce_single_variation', 'woocommerce_single_variation', 10);
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30);
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_title', 5);
        
        // Также можно скрыть другие элементы, если нужно
        remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20);
    }
}
```

### Стили CSS для скрытия элементов

Если нужно скрыть элементы с помощью CSS, вы можете добавить следующие стили в раздел "Дополнительные стили" вашей темы или в файл стилей:

```css
/* Скрыть цену для недоступных товаров */
.out-of-stock .price {
    display: none;
}

/* Скрыть кнопку "Купить" для недоступных товаров */
.out-of-stock .single_add_to_cart_button {
    display: none;
}

/* Скрыть поле для ввода количества и выбор вариаций для недоступных товаров */
.out-of-stock .quantity,
.out-of-stock .variations {
    display: none;
}
```

Обязательно протестируйте все изменения, чтобы убедиться, что они работают корректно и не влияют на другие аспекты сайта. Если вы используете кэширование, не забудьте его очистить после внесения изменений.
Кроме "убрать цену" всё есть из коробки.
Похожие вопросы