Как в Woocommerce задавать разную цену для разных городов?

Магазин планирует продавать в соседних городах, но цена немного отличается.
Представляется процесс просто: Выбор города -> отображение соответствующих региону цен
Не могу найти готовых решений для этого.
Вдруг кто сталкивался?
  • Вопрос задан
  • 1372 просмотра
Пригласить эксперта
Ответы на вопрос 1
MikeKosulin
@MikeKosulin
Готовое решение(всё равно допиливать)
https://woocommerce.com/products/dynamic-pricing/

Еще вариант через dadata или geoip сервисы определять локейшн + отображать возможность смены (реферанс яндекс и множество магазинов), главное без поп-апа(лучше топбар)
Брать из куки ID города и в зависимости от этого
add_filter('woocommerce_get_sale_price', 'dynamic_price', 99, 2);
add_filter('woocommerce_get_price', 'dynamic_price', 99, 2);

function dynamic_price( $orginal_price, $product )
{
    //писать город в куку(либо брать от сервиса
    $city = $_COOKIE["city"];

    //логика назначения стоимости в зависимости от города(лучше по регионам сделать) если много, то вынести в отдельный контроллер
    switch ($city) {
        case 'Moscow':

            $new_price = round($orginal_price * 0.90); //Калькуляция стоимости, здесь 10% скидка
            break;

        default:
            $new_price = $orginal_price
            break;
    }

     //Или: 
     $new_price = get_post_meta( $product->ID, 'wc_price_'.$city, true ); //Получать цену как мета значение
     //Если спец.цены нет, то отображать оригинальную
     if( ! empty( $new_price ) ) {
         return $orginal_price;
     } 

    //Возвращаем новую стоимость
    return $new_price;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы