Плагин замены цены в зависимости от суммы заказа
Доброго всем дня.
Задача в следующем.
Дано 4 цены, первая розничная, остальные оптовые, меняются в зависимости от суммы заказа.
Плагин повешен на событие OnSHKcalcTotalPrice.
Проблема в том, что при работе плагина цена меняется корректно, а вот сумма заказа в плейсхолдер [[+price_total]] не выводится.
Код плагина:
Задача в следующем.
Дано 4 цены, первая розничная, остальные оптовые, меняются в зависимости от суммы заказа.
Плагин повешен на событие OnSHKcalcTotalPrice.
Проблема в том, что при работе плагина цена меняется корректно, а вот сумма заказа в плейсхолдер [[+price_total]] не выводится.
Код плагина:
if(!function_exists(Get_Price)){
function Get_Price($id,$price_tota) {
global $modx;
$resource = $modx->getObject('modResource',array('id'=>$id));
$price = $resource->getTVValue('price');//Значение TV-розничная цена
$price2 = $resource->getTVValue('price_opt1');//оптовая цена при 30000
$price3 = $resource->getTVValue('price_opt2');//оптовая цена при 60000
$price4 = $resource->getTVValue('price_opt3');//оптовая цена при 90000
$minzakaz_price1 = 30000;//опт минимальная цена 1
$minzakaz_price2 = 60000;//опт минимальная цена 2
$minzakaz_price3 = 90000;//опт минимальная цена 3
if ($price_tota < $minzakaz_price1) $price = $price; //цена до первой оптовой цены
elseif ($price_tota >= $minzakaz_price1){
if ($price2 > 0) $price = $price2; /*цена, если больше или равно 30000 */
}
if ($price_tota >= $minzakaz_price2) $price = $price3;
if ($price_tota >= $minzakaz_price3) $price = $price4;
return $price;
}
}
/*Собственно плагин, который повешен на OnSHKcalcTotalPrice*/
if ($modx->event->name == 'OnSHKcalcTotalPrice'){
if(!empty($_SESSION['shk_order'])){
$purchases = $_SESSION['shk_order'];
foreach($purchases as $key => $product){
$id = $product['id'];
if (empty($id)) break;
$id_tmp[$id]['id']= $key;
$tmp_prtotal=$price_total;
$price = Get_Price($id,$tmp_prtotal);
$_SESSION['shk_order'][$key]['price']=$price;
}
}
$price_total = $modx->getOption( 'price_total', $scriptProperties, 0 );
$modx->setPlaceholder('price_total', "$price_total");
$modx->event->output($price_total);
return '';
}
Комментарии: 1
$modx->setPlaceholder('price_total', "$price_total");
Вы тут в виде значения строку передаете! Попробуете передать значение переменной:$modx->setPlaceholder('price_total', $price_total);
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.