Restrict payment methods when buying a gift card
There are paid plugins available that will allow you to restrict the payment methods by product, however you can also do this yourself for the gift cards in a few steps.
1. Download the free Code Snippets plugin: https://wordpress.org/plugins/code-snippets/
2. Create a Snippet with the following code:
function pw_gift_card_payment_methods( $available_gateways ) {
global $pw_gift_cards_redeeming;
if ( is_admin() ) {
return $available_gateways;
}
if ( isset( $pw_gift_cards_redeeming ) && $pw_gift_cards_redeeming->cart_contains_gift_card() ) {
// Cash on Delivery
unset( $available_gateways['cod'] );
// Direct Bank Transfer
unset( $available_gateways['bacs'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'pw_gift_card_payment_methods' );
If you are more comfortable editing your functions.php file that works, too.
The key used in the $available_gateways array can be found by going to WooCommerce -> Settings -> Payments -> Look for the “section=” in the URL for the payment method.