Всем привет. Прошу помочь в реализации переключателя валют для пользователя. Что сделано:
1. В компоненте каталога проставлены convert_currency и currency_id;
2. В init.php прописал код:
который возвращает свой массив с данными;
Проблема: в корзине и в оформлении не показывает валюту, которую я выбрал (любым способом). Т.е. если текущая конструкция в init.php, то сумма в корзине показывается в конвертированном руб. Прошу помочь, спасибо
1. В компоненте каталога проставлены convert_currency и currency_id;
2. В init.php прописал код:
| Код |
|---|
global $LocalPrice;
$LocalPrice = 0;
AddEventHandler("catalog", "OnGetOptimalPrice", "MyGetOptimalPrice");
function MyGetOptimalPrice($productID, $quantity = 1, $arUserGroups = array(), $renewal = "N", $arPrices = array(), $siteID = false, $arDiscountCoupons = false)
{
global $LocalPrice;
if($LocalPrice <= 0)
{
// Выведем актуальную корзину для текущего пользователя
$dbBasketItems = CSaleBasket::GetList(false,
array(
"FUSER_ID" => CSaleBasket::GetBasketUserID(),
"LID" => SITE_ID,
"ORDER_ID" => "NULL",
),
false,
false,
array("ID", "MODULE", "PRODUCT_ID", "CALLBACK_FUNC", "QUANTITY", "DELAY", "CAN_BUY", "PRICE")
);
while ($arItem = $dbBasketItems->Fetch())
{
if($arItem['DELAY'] == 'N' && $arItem['CAN_BUY'] == 'Y')
{
$LocalPrice += $arItem['PRICE']*$arItem['QUANTITY'];
}
}
}
$arOptPrices = CCatalogProduct::GetByIDEx($productID);
$price = $arOptPrices['PRICES'][1]['PRICE'];
$catalog_group_id = 1;
return array(
'PRICE' => array(
"ID" => $productID,
'CATALOG_GROUP_ID' => $catalog_group_id,
'PRICE' => $price,
'CURRENCY' => "USD",
'ELEMENT_IBLOCK_ID' => $productID,
'VAT_INCLUDED' => "Y",
),
'DISCOUNT' => array(
'VALUE' => $discount,
'CURRENCY' => "USD",
),
);
}
|
Проблема: в корзине и в оформлении не показывает валюту, которую я выбрал (любым способом). Т.е. если текущая конструкция в init.php, то сумма в корзине показывается в конвертированном руб. Прошу помочь, спасибо