WOOCS - WooCommerce Currency Switcher

How to hide payment gateway on checkout

Sometimes it is necessary hide payment gate on the checkout page in multiple mode dependently of the current currency.

From version 2.2.7/1.1.7 use options in tab “Payments Rules” of the plugin settings page:


From version 2.1.4/1.1.4 additional css class implemented in tag <body>. Example: currency-usd,  where usd there is the current currency. So it is very easy from now to hide any gates on checkout by your logic just using CSS.


Way with code-> in your site current wp theme functions.php file add next PHP script:

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;
}

More examples:

  • 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;
    }
  • _