【问题标题】:Paypal currency convert upon checking out结账时Paypal货币兑换
【发布时间】:2016-06-19 21:01:37
【问题描述】:

我正在尝试设置贝宝网关,但出现错误:

Gateway Disabled: PayPal does not support your store currency

默认情况下,我有一个 AED 货币,所以我在向 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;
}

编辑:我已停用插件“WooCommerce 的所有货币”,现在显示设置菜单。但仍不允许使用 PayPal 网关,因为 AED 不是受支持的货币。使用 PayPal 付款时如何将其转换为美元?

上面的代码好像不行

【问题讨论】:

    标签: php wordpress paypal woocommerce currency


    【解决方案1】:

    您的代码将 AED 添加到 PayPal 网关“支持”的货币列表中,但它不会执行任何到美元的转换。要执行转换,您需要做以下几件事:

    • 货币转换功能。 WooCommerce 本身就是“单一货币”,它不执行转换,也不提供或处理汇率。为此,您将需要一个多币种解决方案。
    • 一旦您有了多币种解决方案,您必须添加代码来调用货币转换,以便在 PayPal 网关将数据发送到 PayPal 服务器之前将 AED 转换为美元。
    • 最后但同样重要的是,您必须拦截 PayPal 发送的付款通知,以便交叉检查成功。也就是说,您的数据库中将有一个 AED 金额的订单,付款确认将向您发送美元金额。您将需要一种方法来防止此类差异导致付款验证失败。如果没有此步骤,订单将处于待处理状态或暂停状态,您将不得不手动“取消阻止”它们。

    根据所使用的多币种解决方案,具体方法可能略有不同。作为 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?

    无论您是否决定使用我们的插件,代码都应该是实施解决方案的良好起点。

    【讨论】:

    • 目前我在结帐时转换没有任何问题,因为我使用了用于 woocommerce 的转换器插件。问题是实时转换费率,我仍在尝试寻找方法。
    • 很少进行实时转换,因为获取外汇汇率可能很耗时。它可能会使网站速度过慢。我们使用我们的解决方案所做的就是允许每小时更新一次外汇汇率。这对于几乎所有场景都足够可靠。
    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2012-06-10
    • 1970-01-01
    相关资源
    最近更新 更多