WPML
状态
已解决
报告针对
WPML Multilingual & Multicurrency for WooCommerce 4.12.0
解决于
WCML 5.1.0

问题概述

WPML Multilingual & Multicurrency for WooCommerce 允许您为每种货币设置不同的BACS账户。但是,WCML 目前会在订单确认页面和电子邮件中列出您商店所有不同的 BACS 账户,而不是所选语言对应的有效账户。

临时解决方法

请在继续操作前完整备份您的站点。

  1. 打开 /wp-content/plugins/woocommerce-multilingual/classes/multi-currency/payment-gateways/class-wcml-payment-gateway-bacs.php.
  2. 找到第 35 行。
  3. 替换:
     if ( $gateway_setting && 'all' !== $gateway_setting['value'] ) { if ( 'all_in' === $gateway_setting['value'] ) { $bacs_accounts_currencies = get_option( WCML_WC_Gateways::WCML_BACS_ACCOUNTS_CURRENCIES_OPTION, [] ); foreach ( $bacs_accounts_currencies as $account_key => $currency ) { if ( $gateway_setting['currency'] === $currency ) { $allowed_accounts[] = $accounts[ $account_key ]; } } } else { $allowed_accounts[] = $accounts[ $gateway_setting['value'] ]; } } return $allowed_accounts ? $allowed_accounts : $accounts; 
  4. 替换为:
     if ( $gateway_setting && 'all' !== $gateway_setting['value'] ) { $woocurrency = get_woocommerce_currency(); // to get default currency if ( 'all_in' === $gateway_setting['value'] ) { $bacs_accounts_currencies = get_option( WCML_WC_Gateways::WCML_BACS_ACCOUNTS_CURRENCIES_OPTION, [] ); foreach ( $bacs_accounts_currencies as $account_key => $currency ) { if ( $gateway_setting['currency'] === $currency ) { $allowed_accounts[] = $accounts[ $account_key ]; } if ( $gateway_setting['currency'] === NULL && $woocurrency && $woocurrency === $currency ) { //new condition for default currency $allowed_accounts[] = $accounts[ $account_key ]; } } } else { $allowed_accounts[] = $accounts[ $gateway_setting['value'] ]; } } return $allowed_accounts ? $allowed_accounts : $accounts; 
  5. 前往 WooCommerce > WooCommerce Multilingual & Multicurrency > 多货币
  6. 编辑在“货币”部分下添加的不同货币
  7. 为每种货币启用“支付网关”选项
  8. 保存更改

所有已知问题 →