Валюта, умноженная на курс в друшоп 2.2

Аватар пользователя Игорь Швидюк
Не в сети
Регистрация: 15 мая 2013
Сообщения:

Привет всем!

Хотел бы совета\помощи в таком вопросе: есть и-нет магазин на прекраснейшей сборке друшоп 2.2.
Валюта магазина - гривна. Клиет желает в админке вводить цену в доларах, а для клиента чтоб отбражалась валюта в гривнах (с учетом курса долара).
На друпал.ру нашел готовый модуль (можете просмотреть здесь).В модуле использован hook_uc_price_handler().

Я решил сделать так: на сайте оставить одну валюту - гривну. Клиент ставит свою цену, а модуль просто умножает ее на курс. Итого желание клиента как бы удовлетворено. В самой функции умножения переменной на курс

  1. function uc_multi_currency_price_handler_alter(&$price, &$context, &$options) {
  2.   if ($context['subject']['node']->field_currency[0]['value'] == "usd") {
  3.     $price['price'] *= variable_get('currency_rate', 8); 
  4.   }  
  5. }

убрал цикл if, оставил только умножение, так как валюта только одна на сайте.

Но столкнулся к проблемой: когда добавлять товар в корзину - то цена товара дважды умножается на курс. Предполагаю, что нужно просто другую переменную для цены "выбрать".
Метод перебора не помог: либо проблема та же, либо ошибки. Как поняли с пхп я на ВЫ. Помогите пожалуйста.

Спасибо

Аватар пользователя Игорь Швидюк
Не в сети
Регистрация: 15 мая 2013
Сообщения:

вот полностю скрипт модуля

  1. <?php
  2. // $Id$
  3. /**
  4.  * @file 
  5.  * allow 2 base currency for products
  6.  */
  7.  
  8. /**
  9.   * Implementation of hook_menu().
  10.   */
  11.  
  12. function uc_multi_currency_menu() { 
  13.    $items['admin/content/multi_currency'] = array(
  14.       'title' => 'Курс валюти',
  15.       'description' => 'Ручна зміна курсу валюти',
  16.       'page callback' => 'drupal_get_form',
  17.       'page arguments' => array('uc_multi_currency_form'),
  18.       'access callback' => 'user_access',
  19.       'access arguments' => array('change currency'),
  20.       'type' => MENU_NORMAL_ITEM,
  21.    );
  22.    return $items;
  23. }
  24.  
  25. /**
  26.  * Implementation of hook_perm().
  27.  */
  28. function uc_multi_currency_perm() {
  29.   return array('change currency');
  30. }
  31.  
  32. /**
  33.   * Define the form.
  34.   */
  35.  
  36. function uc_multi_currency_form($form_state) {
  37.  
  38. 	$form['currency_rate'] = array(
  39.       '#type' => 'textfield',
  40.       '#title' => t('Курс валюти'),
  41.       '#default_value' => variable_get('currency_rate', 7.9),
  42.       '#description' => t('Дійсний курс для долара США.')
  43.    );
  44.  
  45.    $form['submit'] = array(
  46.       '#type' => 'submit',
  47.       '#value' => t('Встановити'),
  48.    );
  49.    return $form;
  50. }
  51.  
  52. /**
  53.   * Handle submission of the form and saving
  54.   * of the data to the database.
  55.   */
  56.  
  57. function uc_multi_currency_form_submit($form, $form_state) {   
  58.    $currency_rate = $form_state['values']['currency_rate'];
  59.    variable_set('currency_rate', $currency_rate);
  60. }
  61.  
  62. /**
  63.  * Implementation of hook_uc_price_handler().
  64.  */
  65. function uc_multi_currency_uc_price_handler() {
  66.   return array(
  67.     'alter' => array(
  68.       'title' => t('Мульти валюта'),
  69.       'description' => t('Изменение цены товара в зависимости от валюты'),
  70.       'callback' => 'uc_multi_currency_price_handler_alter',
  71.     ),    
  72.   );
  73. }
  74.  
  75. /**
  76.  * Изменение цены товара в зависимости от валюты
  77.  * 
  78.  */
  79. function uc_multi_currency_price_handler_alter(&$price, &$context, &$options) {
  80.   if ($context['subject']['node']->field_currency[0]['value'] == "usd") {
  81.     $price['price'] *= variable_get('currency_rate', 8); 
  82.   }  
  83. }

Аватар пользователя brusee
Не в сети
Регистрация: 11 Мар 2012
Сообщения:
Игорь Швидюк написал:
убрал цикл if,

вообще то это условие . проблема в том что обработчик вызывается дважды. скорее всего второй вызов происходит при ajax запросе корзины, нужны дополнительные условия проверки вызывался ли обработчик.

xukaimin
Аватар пользователя xukaimin
Гость
Аватар пользователя xukaimin

www.kwyeezyshoes.com
Yeezy Boost 350
Nike Air Max
Nike Air Max 2016
Cheap Nike Air Max
Nike Air Max Outlet
nike free trainer 5.0
nike free 4.0 flyknit
nike free flyknit
nike free 5.0
Cheap Ray Bans
Ray Ban Sale
Ray Bans On Sale
Ray Ban Sunglasses Sale
Ray Ban Sunglasses Cheap
Ray Ban Wholesale
Cheap Ray Ban Sunglasses
Ray Ban Outlet
Cheap Ray Ban Sunglasses Outlet
Ray Ban Sunglasses
Ray Ban Wayfarer Sunglasses
Ray Ban Aviator Sunglasses
Coach Outlet Online
Coach Outlet Store Online
Red Bottom Shoes
Red Sole Shoes
Red Bottoms Shoes Christian Louboutin
Red Bottom Shoes For Women
Red Bottom Shoes on clearance
Red Bottom Shoes on Sale
Christian Louboutin Shoes
Christian Louboutin Outlet
fitflops
fitflops sale
michael kors outlet online
michael kors outlet
Michael Kors Handbags
Michael Kors
Michael Kors Purses
Michael Kors Bags
fitflops sandals
fitflop shoes
fitflop sale
fitflop sandals
fitflop outlet
fitflops on sale
christian louboutin
red bottoms shoes
yeezy boost 750
Adidas Basketball Shoes
yeezy boost 350 V2
adidas yeezy
yeezy boost 350 moonrock
yeezy boost 550
adidas yeezy boost 350
kanye west shoes
Nike Basketball Shoes
Curry Shoes
LeBron 10
LeBron 11
LeBron 12
LeBron 13
LeBron 14
Lebron James Shoes
LeBron shoes
LeBron Soldier 10
LeBron soldier 9
LeBron zoom soldier 9
Kyrie 2
Kyrie 1
Kyrie irving shoes
kyrie shoes
kobe basketball shoes
Kyrie 3
Basketball Shoes
Jordan Basketball Shoes
NBA Stars Shoes
NBA Store
Jordan Shoes
NBA Shoes
Derrick Rose Shoes
James Harden Shoes
Paul George Shoes
Russell Westbrook Shoes
Chris Paul Shoes
Kobe Bryant Shoes
Nike Basketball Shoes
Adidas Basketball Shoes
Kobe 12
Kobe AD
Kobe 11
Kobe 10
Kobe 7
Kobe 6
Kobe 8
Kobe 4
Kobe 9
kobe bryant shoes
Kobe shoes
Kobe high tops
Nike Zoom Kobe Icon
Kobe venomenon 5
Yeezy Shoes
Yeezy Boost 350 V2

Bags Outlet Sale:
Kobe 9 bhm
Kobe 11 mamba day
Kyrie 1 double nickel
Kobe 10 shoes
Kobe 10 elite low
christian louboutin sale
Jordan shoes
cheap louboutin shoes
LeBron 10 mvp
Jordan 12 Shoes
Kobe 8 easter
Kobe 9 em
LeBron 13 christmas
LeBron 10 low
Jordan 7 Tinker Alternate
Jordan Basketball Shoes
LeBron 10 cork
Kyrie 1 shoes
Kyrie 2 christmas
Lebron Shose
Kobe 10 all star
Kobe 9 high top
Kyrie Irving Shoes
LeBron 12 elite
Jordan 7 Shoes
Kobe 11 shoes
Curry Shoes
LeBron 11 graffiti
louboutin outlet
Kevin Durant Shoes