FOX - Currency Switcher for WooCommerce

Comment masquer une passerelle de paiement par devise lors du passage en caisse

Toutes les passerelles de paiement ne peuvent pas régler dans toutes les devises. Cacher celles qui ne le peuvent pas est ce qui évite qu'un paiement multi-devises ne se termine par un échec de paiement.

Parfois, il est nécessaire de masquer la passerelle de paiement sur la page de paiement en mode multiple en fonction de la devise actuelle. À partir de la version 2.2.7/1.1.7, utilisez les options dans l'onglet "Payments Rules" de la page des paramètres du plugin :
À partir de la version 2.1.4/1.1.4, une classe CSS supplémentaire a été implémentée dans la balise <body>. Exemple : currency-usd, où usd est la devise actuelle. Il est donc très facile désormais de masquer n'importe quelle passerelle sur la page de paiement selon votre logique en utilisant simplement du CSS.
Méthode avec code-> dans le fichier functions.php du thème actuel de votre site WordPress, ajoutez le script PHP suivant :
add_filter('woocommerce_available_payment_gateways', 'woocs_filter_gateways', 1);

function woocs_filter_gateways($gateway_list)
{
    global $WOOCS;
    $exclude = array(
        'paypal' => array('EUR', 'GBP'), //do not show paypal gate if current currency is EUR or GBP
        'stripe' => array('USD')//do not show stripe gate if current currency is USD
    );
    //***
    foreach ($exclude as $gateway_key => $currencies)
    {
        if (isset($gateway_list[$gateway_key]) AND in_array($WOOCS->current_currency, $currencies))
        {
            unset($gateway_list[$gateway_key]);
        }
    }

    return $gateway_list;
}

Plus d'exemples :

  • add_filter('woocommerce_available_payment_gateways', 'woocs_filter_gateways', 1);
     
    function woocs_filter_gateways($gateway_list)
    {
        if (WC()->cart->subtotal > 1000)
        {
            unset($gateway_list['cod']);
        }
     
        return $gateway_list;
    }
  • _