Design Hook Duo Currency Price

Материал из PHPShop

Перейти к: навигация, поиск

[править] Добавление второй цены в другой валюте

Требуется вывести вторую цену товара в другой валюте рядом с первой.

Инструкция:

  • Создать файл для учета списка товаров phpshop/templates/имя шаблона/php/hook/items.hook.php с содержанием
<?php
function checkStore_hook($obj,$row) {
    global $PHPShopValutaArray;
 
    // ИД второй валюты
    $duo_currency=5;
 
    $Valuta=$PHPShopValutaArray->getArray();
    $format = $obj->PHPShopSystem->getSerilizeParam("admoption.price_znak");
 
    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        $currency=$obj->PHPShopSystem->getValue('dengi');
    }
    else
        $currency=$duo_currency;
 
    $price=PHPShopProductFunction::GetPriceValuta($row['id'],$row['price'],$row['baseinputvaluta']);
    $code=$Valuta[$currency]['code'];
 
    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        echo 1;
        $price=$price/$Valuta[$duo_currency]['kurs'];
    }
    else {
        $price=$price*$Valuta[$currency]['kurs'];
 
    }
 
    // Наценка
    $price=($price+(($price*$obj->PHPShopSystem->getValue('percent'))/100));
 
    $obj->set('productPrice2',number_format($price,$format,'.','').' '.$code);
    return true;
}
 
$addHandler=array
        (
        'checkStore'=>'checkStore_hook'
);
?>


  • Создать файл для учета элементов новинок и спецпредложений phpshop/templates/имя шаблона/php/hook/itemselement.hook.php с содержанием
<?php
function checkStore_element_hook($obj,$row) {
    global $PHPShopValutaArray;
 
    // ИД второй валюты
    $duo_currency=5;
 
    $Valuta=$PHPShopValutaArray->getArray();
    $format = $obj->PHPShopSystem->getSerilizeParam("admoption.price_znak");
 
    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        $currency=$obj->PHPShopSystem->getValue('dengi');
    }
    else
        $currency=$duo_currency;
 
    $price=PHPShopProductFunction::GetPriceValuta($row['id'],$row['price'],$row['baseinputvaluta']);
    $code=$Valuta[$currency]['code'];
 
    // Если валюта совпадает
    if($_SESSION['valuta'] == $duo_currency) {
        echo 1;
        $price=$price/$Valuta[$duo_currency]['kurs'];
    }
    else {
        $price=$price*$Valuta[$currency]['kurs'];
 
    }
 
    // Наценка
    $price=($price+(($price*$obj->PHPShopSystem->getValue('percent'))/100));
 
    $obj->set('productPrice2',number_format($price,$format,'.','').' '.$code);
    return true;
}
 
$addHandler=array
        (
        'checkStore'=>'checkStore_element_hook'
);
?>
  • Создать файл phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
 
[hook]
phpshopshopcore="php/hook/items.hook.php";
phpshopproductelements="php/hook/itemselement.hook.php";
  • Добавить переменную @productPrice2@ во все требуемые шаблоны вывода товара из папки phpshop/templates/имя шаблона/product/
  • Указать ИД требуемой валюты для второй цены в переменной $duo_currency.