Модификация цены minishop2
Здравствуйте, появился такой вопрос, как лучше сделать модификацию цены?
Задача стоит такая пользователь вводит цену в евро, и вводит курс валюты, на выходе должны выводиться везде конвертированные цены, если статические элементы менять то все просто, либо с помощью модификатора [[+price:mpy=`[[++convert_price]]`]], либо простейшим снипетом умножения
где берется значение цены и умножается на значение курса. А как сделать так что бы и фильтровало по новым ценам и в корзине тоже нормально отображались цены. направьте куда копать. Спасибо заранее.
Задача стоит такая пользователь вводит цену в евро, и вводит курс валюты, на выходе должны выводиться везде конвертированные цены, если статические элементы менять то все просто, либо с помощью модификатора [[+price:mpy=`[[++convert_price]]`]], либо простейшим снипетом умножения
где берется значение цены и умножается на значение курса. А как сделать так что бы и фильтровало по новым ценам и в корзине тоже нормально отображались цены. направьте куда копать. Спасибо заранее.
Комментарии: 5
Да спасибо, это решает кое- какие проблемы, но остается вопрос с фильтрами. ну и общая стоимость в корзине не меняется.(
нужно создать плагин в котором при добавлению в корзину цена будет меняться на нужную
для корзины
плагин на 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
спасибо) буду пробовать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.