如果在 WooCommerce 中設定主貨幣為 RMB,且付款方式支援 paypal,當使用者選擇使用 paypal 支付時,就會發生 1 塊錢變成 1 刀的悲劇。還好這個問題並非無藥可解。
解決方法是在系統向 paypal 傳送引數前更改引數,WooCommerce 提供的 WooCommerce_paypal_args filter 可以完成這個任務。程式碼如下:
add_filter('WooCommerce_paypal_args', 'convert_rmb_to_usd'); function convert_rmb_to_usd($paypal_args){ if ( $paypal_args['currency_code'] == 'RMB'){ $convert_rate = 6.2116; //Set converting rate $count = 1; while( isset($paypal_args['amount_' . $count]) ){ $paypal_args['amount_' . $count] = round( $paypal_args['amount_' . $count] / $convert_rate, 2); $count++; } } return $paypal_args; }
如果發現 currency_code 是 RMB,就把 currency_code 轉換成美元 (USD),且按照匯率 ($convert_rate) 把商品的價格 (amount_1) 和運費 (amount_2) 都轉化成美元。
如果你想接收其它 paypal 支援的貨幣 (這貨為啥就不支援 RMB),比如港幣,只需要更改 currency code($paypal_args[『currency_code』]) 和匯率 ($convert_rate) 就可以了。
貨幣符號對照表在此,按自己需要的選擇吧。
AUD: Australian Dollar
BRL: Brazilian Real
CAD: Canadian Dollar
MXN: Mexican Nuevo Peso
NZD: New Zealand Dollar
HKD: Hong Kong Dollar
SGD: Singapore Dollar
USD: US Dollar
EUR: Euro
JPY: Japanese Yen
TRY: Turkish Lira
NOK: Norwegian Krone
CZK: Czech Koruna
DKK: Danish Krone
HUF: Hungarian Forint
ILS: Israeli New Shekel
MYR: Malaysian Ringgit
PHP: Philippine Peso
PLN: Polish Zloty
SEK: Swedish Krona
CHF: Swiss Franc
TWD: Taiwan Dollar
THB: Thai Baht
GBP: Pound Sterling