WPML
Statut
Résolu
Signalé pour
WPML Multilingual & Multicurrency for WooCommerce 4.12.0
Résolu dans
WCML 5.1.0

Aperçu de l’anomalie

WPML Multilingual & Multidevise pour WooCommerce vous permet de définir un compte BACS différent par devise. Cependant, WCML affiche actuellement tous les différents comptes BACS de votre boutique sur la page de confirmation de commande et dans les e-mails, au lieu du compte valide pour la langue sélectionnée.

Solution de contournement

Veuillez effectuer une sauvegarde complète de votre site avant de continuer.

  1. Ouvrez /wp-content/plugins/woocommerce-multilingual/classes/multi-currency/payment-gateways/class-wcml-payment-gateway-bacs.php.
  2. Cherchez la ligne 35.
  3. Remplacez :
     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. Par :
     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. Allez dans WooCommerce > WooCommerce Multilingual & Multicurrency > Multidevise
  6. Modifiez les différentes devises ajoutées dans la section « Devises »
  7. Activez l’option « Passerelles de paiement » pour chaque devise
  8. Enregistrez les modifications

Toutes les anomalies connues →