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. “Currencies” 섹션 아래에 추가된 여러 통화를 편집하세요
  7. 각 통화에 대해 “결제 게이트웨이” 옵션을 활성화하세요
  8. 변경 사항을 저장하세요

알려진 모든 문제 →