¿Cómo limitar el medio de pago en función de la provincia?

  • WooCommerce - Blog

¿Cómo limitar el medio de pago en función de la provincia?

Hace unos días un cliente nos pedía que para las Ciudades Autónomas de Ceuta y Melilla, y la Comunidad Autónoma de Canarias se obligara a los clientes a pagar a través de PayPal, única y exclusivamente a través de este medio de pago, por lo que PayPal debía ser el único medio de cobro disponible para los clientes residentes en estas provincias españolas.

Pues bien, para hacerlo posible hicimos una pequeña función PHP que comprueba si el cliente reside en alguna de las cuatro provincias solicitadas: Ceuta, Melilla, Las Palmas o Santa Cruz de Tenerife, y que elimina del listado de medios de pago disponibles a todos los que no sean iguales a PayPal. Concretamente en su caso se eliminaron los medios de pago con ID cod (Pago en entrega o Contrareembolso), bacs (Transferencia bancaria) y cheque, aunque se pueden añadir otros medios de pago personalizados como myredsys, por ejemplo.

Concretamente la función PHP que añadimos al archivo functions.php del tema hijo del cliente fue esta:

function apg_paypal( $medios_de_pago ) {
	global $woocommerce;
	
	if ( WC()->customer->get_state() == 'CE' || WC()->customer->get_state() == 'ML' || WC()->customer->get_state() == 'GC' || WC()->customer->get_state() == 'TF' ) {
		unset( $medios_de_pago['cod'] );
		unset( $medios_de_pago['bacs'] );
		unset( $medios_de_pago['cheque'] );
	}
	return $medios_de_pago;
}
add_filter( 'woocommerce_available_payment_gateways', 'apg_paypal' );

Obviamente para que sea totalmente funcional hay que añadir un pequeño código incluido en la entrada ¿Cómo añadir un campo NIF o CIF con validación a WooCommerce 2.4?, concretamente la adición de la clase update_totals_on_change al campo state, que hará que se actualicen los medios de pago disponibles al cambiar de provincia.

Esperamos que os resulte útil este código para alguno de vuestros proyectos actuales o futuros.

2017-03-27T18:08:39+02:00 Martes, 29 de Diciembre de 2015|Categorías: Art Project Group|Etiquetas: , , , |Sin comentarios

Deje un comentario

Comparte esto con un amigo