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

Дополнение: minishop2, msearch2

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

Комментарии (5)

    1. Fedor 28 декабря 2016, 12:36 # 0
      Да спасибо, это решает кое- какие проблемы, но остается вопрос с фильтрами. ну и общая стоимость в корзине не меняется.(
      1. Владислав 28 декабря 2016, 12:49 # 0
        нужно создать плагин в котором при добавлению в корзину цена будет меняться на нужную
    2. 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
      1. Fedor 28 декабря 2016, 15:54 # 0
        спасибо) буду пробовать.
      Вы должны авторизоваться, чтобы оставлять комментарии.