Добрый день!
Для реализации системы цен в 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);
}
}
}
```
Обязательно протестируйте функциональность на тестовом сайте перед применением на реальном. Если вы не обладаете достаточными навыками программирования, рекомендую обратиться к разработчику или попробовать найти более подходящий плагин с нужными вам функциями.
В любом случае, создание настроенной системы цен с помощью кода или плагинов может занять некоторое время, но в результате вы получите функциональность, соответствующую вашим требованиям.