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.

[lwptoc]

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.

 

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Olber

Amigo, ESTUPENDO POST.

Me salió este error en el código.

Parse error: syntax error, unexpected ‘<', expecting end of file in /home/xktecno3/public_html/economizadores.net/wcontenido/themes/Divi/functions.php on line 7255

Pedro Moran

Hola, como podría agregar eliminar mas estados en tu ejemplo #2, ahora el código es para eliminar solo Florida, pero si deseo eliminar mas Estados que código tendría que agregar?

Gracias!!!

Eduardo

Ej: quiero que transferencia solo aplique para España y no se vea en ningún otro lugar.

Es posible quitar todos los países para un medio de pago y que solo aplique para uno en particular.

Back to Top
6
0
Would love your thoughts, please comment.x
()
x