Как установить несколько цен для товаров в WooCommerce?

Добрый день! <br/> <br/> Можете подсказать, каким образом в WooCommerce можно добавить несколько цен для товара? Мне нужно реализовать следующую систему цен в зависимости от общей суммы заказа в корзине: <br/> 1. Мелкий опт (от 10 до 15 тыс) <br/> 2. Опт (от 15 до 50 тыс) <br/> 3. Крупный опт (свыше 50 тыс). <br/> <br/> И важно, чтобы информация о всех этих ценах отображалась в карточке товара. Я уже перепробовал около 50 различных плагинов, но не смог найти решение с нужным функционалом. Спасибо!
  • 4 февраля 2025 г. 23:34
Ответы на вопрос 2
Добрый день!

Для реализации системы цен в WooCommerce в зависимости от общей суммы заказа можно использовать несколько подходов. Одним из самых гибких способов является использование специального плагина или написание собственного кода. Однако, если вы уже пробовали много плагинов и не нашли подходящий, можно рассмотреть следующий метод:

### 1. Плагин для определения цен на основе условий

Рекомендуется попробовать такие плагины, как **WooCommerce Dynamic Pricing & Discounts** или **WooCommerce Role Based Pricing**. Эти плагины позволяют установить различные цены для товаров в зависимости от условий, таких как количество товара в корзине или общая сумма заказа.

### 2. Настройка цен вручную через пользовательские поля

Если вы хотите реализовать это без плагина, можно использовать пользовательские поля для добавления цен в карточку товара и вывода их в зависимости от суммы заказа. Для этого вам потребуется:

1. **Добавить пользовательские поля для цен**:
   - Перейдите в редактирование товара в админке WooCommerce.
   - Используйте метабоксы или плагины (например, Advanced Custom Fields) для создания полей "Цена Мелкий опт", "Цена Опт" и "Цена Крупный опт".

2. **Отобразить цены на карточке товара**:
   - Вам потребуется редактировать файл `single-product.php` вашей темы или использовать хук `woocommerce_single_product_summary`, чтобы выводить новые цены на страницу товара.
   - Пример вывода:

   ```php
   $small_wholesale_price = get_post_meta($product->get_id(), '_small_wholesale_price', true);
   $wholesale_price = get_post_meta($product->get_id(), '_wholesale_price', true);
   $large_wholesale_price = get_post_meta($product->get_id(), '_large_wholesale_price', true);

   echo '<p>Мелкий опт: ' . wc_price($small_wholesale_price) . '</p>';
   echo '<p>Опт: ' . wc_price($wholesale_price) . '</p>';
   echo '<p>Крупный опт: ' . wc_price($large_wholesale_price) . '</p>';
   ```

3. **Установить логику цен в зависимости от суммы заказа**:
   - Используйте хук `woocommerce_cart_calculate_fees` для добавления логики применения различных цен в зависимости от суммы заказа. Вам потребуется написать условный код, который будет проверять общую сумму и устанавливать цену для товара соответствующим образом.

### 3. Пример кода для изменения цены в зависимости от суммы заказа

```php
add_action('woocommerce_before_calculate_totals', 'custom_price_based_on_cart_total');

function custom_price_based_on_cart_total($cart) {
    if (is_admin() && !defined('DOING_AJAX')) return;

    $cart_total = $cart->cart_contents_total;

    foreach ($cart->get_cart() as $cart_item_key => $cart_item) {
        $product_id = $cart_item['product_id'];
        $product = wc_get_product($product_id);

        if ($cart_total >= 50000) {
            $new_price = get_post_meta($product_id, '_large_wholesale_price', true);
        } elseif ($cart_total >= 15000) {
            $new_price = get_post_meta($product_id, '_wholesale_price', true);
        } elseif ($cart_total >= 10000) {
            $new_price = get_post_meta($product_id, '_small_wholesale_price', true);
        }

        if (isset($new_price)) {
            $cart_item['data']->set_price($new_price);
        }
    }
}
```

Обязательно протестируйте функциональность на тестовом сайте перед применением на реальном. Если вы не обладаете достаточными навыками программирования, рекомендую обратиться к разработчику или попробовать найти более подходящий плагин с нужными вам функциями.

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