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