Sigue estos tres pasos:
- Copia el código en un tema hijo (functions.php) o en un gestor de snippets como Code Snippets.
- Edita el arreglo de configuración al inicio del código: reemplaza los id de método de pago por los que use tu tienda (revísalos en WooCommerce, Ajustes, Pagos) y ajusta la lista de departamentos permitidos con los códigos de wp-content/plugins/woocommerce/i18n/states.php bajo la clave PE.
- Abre el checkout clásico con una dirección de envío dentro de los departamentos permitidos y confirma que el método aparece; cambia luego a un departamento fuera de la lista y confirma que desaparece al refrescarse el resumen del pedido, sin recargar la página.
Este snippet aplica al checkout clásico de WooCommerce, que usa el filtro woocommerce_available_payment_gateways. El checkout de bloques (Gutenberg) no pasa por este filtro: usa la Store API, con su propio mecanismo de registro en PHP, y requiere otra implementación.