Лучший способ внедрить неподдерживаемую валюту PayPal в WooCommerce - PullRequest
2 голосов
/ 15 декабря 2011

Я создаю интернет-магазин и пользуюсь woocommerce. Проблема заключается в следующем:

Мой клиент хочет продавать только в Хорватии, а это значит, что я должен отображать цену в кунах (HRK) ...

У меня есть шлюз PayPal для woocommerce, и я ввел Хорватскую куна в систему woocommerce, используя следующий код (я публикую это только для полного описания):

<?php
// Add currency / symbol
add_filter( 'woocommerce_currencies', 'add_rand_currency' );
add_filter( 'woocommerce_currency_symbol', 'add_rand_currency_symbol' );

function add_rand_currency( $currencies ) {
    $currencies['HRK'] = __( 'Croatian Kuna (kn)', 'woothemes' );
    return $currencies;
}

function add_rand_currency_symbol( $symbol ) {
    $currency = get_option( 'woocommerce_currency' );
    switch( $currency ) {
        case 'HRK': $symbol = 'kn'; break;
    }
    return $symbol;
}
?>

Если я выбираю хорватскую куну для своей валюты в администрации, шлюз PayPal сообщает, что валюта не поддерживается. Хорошо, я понимаю, что не могу отправить заказ клиентам в Кунасе, но могу сделать это, например, в евро.

Итак, вот моя идея, и я хотел бы услышать, что вы об этом думаете.

Я сделаю свою валюту по умолчанию в евро (что означает, что мне придется вводить цены на продукты в евро), а во внешнем интерфейсе я получу все цены (которые красиво упакованы с классом .price css) с помощью jQuery. и пересчитать их из евро в куны (только визуально), а woocommerce отправит на кассу все продукты для оплаты в евро.

Просто добавлю, я работаю в срок, и это единственная проблема, которую предстоит решить, поэтому это главная причина, почему я делаю это с помощью JavaScript. Я, вероятно, буду использовать Yahoo API для конвертации валют, если есть что-то лучше, дайте мне знать.

Ответы [ 3 ]

5 голосов
/ 26 февраля 2013

Некоторое время назад я написал руководство по этой теме в своем блоге. Имеет дело с

  1. Как добавить новую валюту;
  2. Символ валюты;
  3. Разрешите Paypal с новой валютой и преобразуйте суммы в поддерживаемую Paypal валюту до платежей Paypal.

http://devseon.com/en/wordpress-tutorials/woocommerce-add-a-paypal-unsupported-currency/

Пожалуйста, проверьте это. Я думаю, что для текущей задачи вам нужна только часть 3 моего урока. Но Джордж был прав, что для того, чтобы разрешить Paypal новую валюту, вы должны отредактировать функцию is_valid_for_use () в файле плагина: wp-content / plugins / woocommerce / classes / gateways / paypal / class-wc-paypal.php, если быть точным. Преобразование валюты до фильтра платежей описано в моем блоге.

0 голосов
/ 14 июня 2012

должна быть возможность обойти текущую функцию, которая обнаруживает неподдерживаемую валюту, а затем конвертировать корзину в доллары США через API Google Calculator перед отправкой информации в PayPal.

первая часть может включать редактирование файла плагина ядра * yikes Кто-нибудь может указать, где должна быть реализована такая функция?

не поддерживает ли PayPal конвертацию валюты на своем сервере?

0 голосов
/ 14 января 2012

добавьте код в файл theme.php, и он будет работать.

// Add currency / symbol
add_filter( 'woocommerce_currencies', 'add_rand_currency' );
add_filter( 'woocommerce_currency_symbol', 'add_rand_currency_symbol' );

function add_rand_currency( $currencies ) {
    $currencies['RON'] = __( 'Romania (Ron)', 'woothemes' );
    return $currencies;
}

function add_rand_currency_symbol( $symbol ) {
    $currency = get_option( 'woocommerce_currency' );
    switch( $currency ) {
        case 'RON': $symbol = 'RON: '; break;
    }
    return $symbol;
}
...