在 woocommerce 中实施不受支持的贝宝货币的最佳方法

Posted

技术标签:

【中文标题】在 woocommerce 中实施不受支持的贝宝货币的最佳方法【英文标题】:Best way to implement unsupported paypal currency into woocommerce 【发布时间】:2012-01-20 15:46:54 【问题描述】:

我正在做一个网上商店,我正在使用 woocommerce。问题如下:

我的客户现在只想在克罗地亚销售,这意味着我必须以库纳斯 (HRK) 显示价格...

我有用于 woocommerce 的 PayPal 网关,并且我已使用以下代码将克罗地亚库纳实现到 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 网关会显示不支持货币。好的,所以我知道我不能用 Kunas 向客户发送订单,但我可以用欧元来发送订单。

这是我的想法,我想听听你的想法。

我将使用默认货币欧元(这意味着我必须以欧元输入产品价格),并在前端使用 jQuery 获取所有价格(用 .price css 类很好地包装)并将它们重新计算为从欧元到库纳(仅在视觉上),而 woocommerce 将在结账时将所有产品发送到以欧元支付的朋友。

补充一下,我在截止日期前运行,这是唯一需要解决的问题,所以这是我使用 javascript 做的主要原因。我可能会使用 yahoo api 进行货币转换,如果有更好的方法请告诉我。

【问题讨论】:

我在这里发布了 3 个新的解决方案,希望对他们有所帮助:***.com/a/40138841/6950110 【参考方案1】:

前段时间我在我的博客中做了一个关于这个主题的教程。它处理

    如何添加新货币; 货币符号; 允许 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。我的博客中描述了付款过滤器之前的货币转换。

【讨论】:

谢谢。您的解决方案对我帮助很大。 Tbh 我需要它与 BGN 一起工作:P【参考方案2】:

应该可以绕过当前检测不支持货币的功能,然后在将信息发送到贝宝之前通过谷歌计算器 api 将购物车转换为美元。

第一部分可能涉及编辑核心插件文件 *yikes 谁能指出应该在哪里实现这样的功能?

paypal 不支持在他们的服务器上进行货币兑换吗?

【讨论】:

【参考方案3】:

在主题function.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;

【讨论】:

我不确定这是做什么的,除了添加新货币(我知道该怎么做,我把这个确切的代码放在我的问题中)。我需要的是以欧元输入价格(在后端)并以库纳(在前端)显示它们。或者输入 kunas 的价格(在后端),然后将订单从 kunas 重新计算为一种 PayPal 支持的货币,同时将订单发送到 paypal。

以上是关于在 woocommerce 中实施不受支持的贝宝货币的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

仅在商店中用 woocommerce 中的贝宝结帐替换添加到购物车按钮

GLEW 着色器似乎不受支持

使用直接付款的贝宝链式付款[关闭]

为啥我的贝宝 api 调用失败并出现错误版本不支持?

如何修复 WooCommerce 中的 PayPal IPN 验证错误? [关闭]

iOS 应用程序 + 服务器集成中的贝宝链式支付(或自适应)