在 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 中的贝宝结帐替换添加到购物车按钮