Как можно показать две разные цены для продуктов в системе woocommerce?

Здравствуйте. Возникла проблема с плагином ценообразования по ролям WooCommerce Prices By User Role версии 5.2.1.1. Этот плагин отображает цены со скидкой для указанной роли пользователя. Однако после обновлений темы Woodmart, WordPress и WooCommerce, плагин перестал работать корректно и приводит к появлению белого экрана после примерно 20 минут работы. Могу ли я как-то без этого плагина установить две цены для товаров? Хочу, чтобы обычные клиенты видели преимущество владельцев карт и захотели их приобрести, а VIP-клиенты продолжали видеть скидки как сейчас с данным плагином. Буду благодарен за помощь.
Изображение к вопросу
Изображение к вопросу
  • 17 декабря 2023 г. 19:27
Ответы на вопрос 1
Вы можете использовать встроенные возможности WooCommerce для настройки двух разных цен для товаров. Вот как это можно сделать:

1. Создайте две разные цены для товаров: одну для обычных клиентов и другую для VIP-клиентов. Вы можете это сделать в разделе "Редактировать товар" на странице редактирования товара. В поле "Обычная цена" укажите обычную цену для товара, а в поле "Цена (для VIP-клиентов)" укажите скидочную цену для VIP-клиентов.

2. Добавьте код, который будет проверять, является ли пользователь VIP-клиентом, и на основе этого отображать соответствующую цену. Для этого вам понадобится добавить небольшой код в файл functions.php вашей темы (рекомендуется использовать дочернюю тему, чтобы изменения не были потеряны при обновлении основной темы). Вот пример кода:

```php
function custom_product_price( $price, $product ) {
    // Проверяем, является ли текущий пользователь VIP-клиентом
    $current_user = wp_get_current_user();
    $user_roles = $current_user->roles;
    if ( in_array( 'vip-client', $user_roles ) ) {
        // Пользователь VIP-клиент, отображаем скидочную цену
        $vip_price = get_post_meta( $product->get_id(), 'Цена (для VIP-клиентов)', true );
        if ( $vip_price ) {
            $price = wc_price( $vip_price );
        }
    }
    return $price;
}
add_filter( 'woocommerce_get_price_html', 'custom_product_price', 10, 2 );
```

В этом коде мы используем фильтр `woocommerce_get_price_html`, который позволяет изменять отображение цены товара. Функция `custom_product_price` проверяет роли пользователя и, если пользователь является VIP-клиентом, заменяет отображаемую цену на скидочную цену.

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