Quitar formas de pago por país en Woocommerce

Quitar formas de pago por país en Woocommerce es una tarea que debe hacer cualquier comercio que necesita vender en muchos países.

Como sabemos, Woocommerce tiene campos como país o estado en su formulario de pago y estos ayudarán para hacer esta tarea.

Antes de todo, debemos conocer los códigos cortos de cada pasarela de pago para poder jugar con ellos. Aquí una tabla con las pasarelas más conocidas.

 

Nombre corto Nombre largo
cod Pago contra entrega
bacs Transferencia bancaria
cheque Cheques
paypal Paypal
stripe Stripe
fullculqi Culqi
payme Payme

 

Ahora que conocemos estos nombres cortos, podemos quitarlos o agregarlos como queramos. Nosotros usaremos el hook  woocommerce_available_payment_gateways  para hacerlo.

 

A continuación 2 ejemplos de: Quitar formas de pago por país en Woocommerce

Ejemplo 1: Si el país es AR, quitaremos la pasarela Paypal y si el país es US, quitaremos las pasarelas Culqi y Payme.

<?php
function letsgo_remove_gateways($gateways = []) {

	$country = WC()->customer->get_billing_country();

	switch($country) {
		case 'AR' : unset( $gateways['paypal'] ); break;
		case 'US' : 
			unset($gateways['fullculqi']);
			unset($gateways['payme']);
			break;
	}
	
	return $gateways;
}

add_filter( 'woocommerce_available_payment_gateways', 'letsgo_remove_gateways', 10, 1);

 

Ejemplo2: Si el país es US y el estado es Florida ( FL ), usaremos Paypal como único método de pago.

<?php
function letsgo_add_gateways($gateways = []) {

	$country = WC()->customer->get_billing_country();
	$state = WC()->customer->get_billing_state();
	$aux_gateways = $gateways;

	if( $country == 'US' && $state == 'FL' ) {
		foreach( $aux_gateways as $key => $data ) {
			if( $key == 'paypal' )
				continue;

			unset($gateways[$key]);
		}
	}
	
	return $gateways;
}

add_filter( 'woocommerce_available_payment_gateways', 'letsgo_add_gateways', 10, 1);

 

Recuerda que debes poner este código en tu functions.php de tu theme activo.

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Back to Top