2016-03-06 3 views
1

Я пытался настроить шлюз Paypal, но я получаю сообщение об ошибке:Paypal валюта конвертировать после проверки из

Gateway Disabled: PayPal does not support your store currency

По умолчанию у меня есть АВД Валюта, так что я пытаюсь преобразовать его в USD при регистрации на paypal, но сейчас он не работает. у меня есть это в functons.php файл моей темы в:

add_filter('woocommerce_currencies', 'add_my_currency'); 

function add_my_currency($currencies) { 
    $currencies['AED'] = __('Emirati Dirham', 'woocommerce'); 
    return $currencies; 
} 

add_filter('woocommerce_currency_symbol', 'add_my_currency_symbol', 10, 2); 

function add_my_currency_symbol($currency_symbol, $currency) { 
    switch($currency) { 
      case 'AED': $currency_symbol = 'AED'; break; 
    } 
    return $currency_symbol; 
} 
add_filter('loop_shop_per_page', create_function('$cols', 'return 12;'), 20); 

add_filter('woocommerce_billing_fields', 'wc_billing_fields_state_filter', 10, 1); 

function wc_billing_fields_state_filter($address_fields) { 
    $address_fields['billing_state']['label'] = 'Emirate'; 
    $address_fields['billing_state']['placeholder'] = 'Emirate'; 
    return $address_fields; 
} 

EDIT: Я выключил плагин «Все валюты для WooCommerce» и меню настроек теперь показывает. Но PayPal Gateway все еще не разрешен, поскольку AED не поддерживается. Как конвертировать его в доллары США при оплате через PayPal?

Код выше, кажется, не работает

ответ

0

код у вас есть добавляет AED в список валют «поддерживаемых» шлюз PayPal, но он не выполняет преобразование в USD. Чтобы выполнить преобразование, вам понадобятся несколько вещей:

  • Функция конвертации валют. WooCommerce, сама по себе, является «единой валютой», и она не выполняет конверсии, не обеспечивает или не обрабатывает обменные курсы. Для этого вам понадобится многовалютное решение.
  • После того, как у вас есть многовалютное решение, вам нужно будет добавить код, чтобы вызвать конвертацию валюты для преобразования AED в доллары США до того, как шлюз PayPal отправит данные на серверы PayPal.
  • Последнее, но не менее важное: вам нужно будет перехватить уведомление об оплате, отправленное PayPal, чтобы проверки переходов были успешными. То есть у вас будет заказ на сумму в AED в вашей базе данных, и подтверждение платежа отправит вам сумму в долларах США. Вам понадобится способ предотвратить такое несоответствие, которое приведет к сбою проверки платежных данных. Без этого шага заказы будут оставлены в ожидании или приостановлены, и вам придется «разблокировать» их вручную.

В зависимости от используемого мультивалютного решения, точный подход может быть несколько иным. Как разработчик Currency Switcher для WooCommerce, я решил все вышеперечисленное для своих клиентов, используя плагины, которые я разработал, и какой-то пользовательский код.

Вы можете найти специальный код, который применим к нашим плагинам в нашей базе знаний: Is it possible to use the Currency Switcher to allow Users to select a currency, but force payment in base currency, or an arbitrary currency?.

Если вы решите использовать наши плагины или нет, код должен стать хорошей отправной точкой для реализации решения.

+0

В настоящее время у меня нет проблем с конвертированием при оформлении заказа, так как я использовал плагин конвертера для woocommerce. Проблема заключается в преобразовании скорости в реальном времени, которую я все еще пытаюсь найти для пути. –

+0

Преобразование в реальном времени редко выполняется, потому что получение ставок FX может занять много времени. Это может сильно замедлить работу сайта. То, что мы сделали с нашим решением, позволяет обновлять ставки FX до каждого часа. Это достаточно надёжно для почти каждого сценария. – Diego

Смежные вопросы