Модификация цены minishop2

Здравствуйте, появился такой вопрос, как лучше сделать модификацию цены?
Задача стоит такая пользователь вводит цену в евро, и вводит курс валюты, на выходе должны выводиться везде конвертированные цены, если статические элементы менять то все просто, либо с помощью модификатора [[+price:mpy=`[[++convert_price]]`]], либо простейшим снипетом умножения
где берется значение цены и умножается на значение курса. А как сделать так что бы и фильтровало по новым ценам и в корзине тоже нормально отображались цены. направьте куда копать. Спасибо заранее.
Fedor
28 декабря 2016, 06:30
modx.pro
1
2 433
0

Комментарии: 5

    Fedor
    28 декабря 2016, 12:36
    0
    Да спасибо, это решает кое- какие проблемы, но остается вопрос с фильтрами. ну и общая стоимость в корзине не меняется.(
      Владислав
      28 декабря 2016, 12:49
      0
      нужно создать плагин в котором при добавлению в корзину цена будет меняться на нужную
    Andrei D.
    28 декабря 2016, 14:00
    0

    для корзины

    плагин на msOnBeforeChangeInCart
    <?php
    $tmp = $cart->get();
    $price = intval(str_replace(' ', '', $_POST['user_price']));
    $rate = 1;//default rate
    $rate = intval(str_replace(' ', '', $_POST['currency_rate']));
    
    if ($rate == 1) {
    	$rate_value = '1';//EURO
    }
    if ($rate == 2) {
    	$rate_value = '1.043673';//US Dollar
    }
    if ($rate == 3) {
    	$rate_value = '0.853115';//British Pound
    }
    if ($rate == 4) {
    	$rate_value = '1.073258';//Swiss Franc
    }
    if ($rate == 5) {
    	$rate_value = '63.246377';//Russian Ruble
    }
    
    if ($rate) {
    	$tmp[$key]['price'] = round(($price * $rate_value), 2, PHP_ROUND_HALF_UP);
    }
    
    $cart->set($tmp);

    header
    <script type="text/javascript">
    $(document).on('change', 'input[name=user_price]', function() {
    $(this).closest(miniShop2.form).submit();
    //miniShop2.Message.success('Стоимость изменена');
    });
    
    $(document).on('change', 'select[name=currency_rate]', function() {
    $(this).closest(miniShop2.form).submit();
    //miniShop2.Message.success('Стоимость изменена');
    });
    </script>

    tpl msCart
    <input type="text" name="user_price"/>
    
    <select name="currency_rate">
    <option value="1">EURO</option>
    <option value="2">US Dollar</option>
    <option value="3">British Pound</option>
    <option value="4">Swiss Franc</option>
    <option value="5">Russian Ruble</option>
    </select>
    рейты взял отсюда www.x-rates.com/table/?from=EUR&amount=1
      Fedor
      28 декабря 2016, 15:54
      0
      спасибо) буду пробовать.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5