Es posible que desee deshabilitar las pasarelas de pago dependiendo del rol de usuario registrado. Por ejemplo, es posible que desee deshabilitar PayPal para el rol de usuario «suscriptor» o habilitar una puerta de enlace específica para el rol de usuario «Cliente».
Todo lo que necesita es pegar el siguiente código en sus funciones.php o instalar un complemento súper simple. ¡Disfrutar!
Php Snippet 1: Desactivar la pasarela de pago para un rol de usuario específico @ WooCommerce Checkout
/** n*@snippet Disable Payment Gateway by User Role | WooCommerce n*@how-to https://tdestudiodesign.com/tutoriales n*@author Tomás Lucas D´Amario, TD Estudio Design n*@testedwith WooCommerce 7 n*@community https://tdestudiodesign.com/club */ add_filter( 'woocommerce_available_payment_gateways', 'tddesign_paypal_disable_manager' ); function tddesign_paypal_disable_manager( $available_gateways ) { if ( isset( $available_gateways['paypal'] ) && wc_current_user_has_role( 'customer' ) ) { unset( $available_gateways['paypal'] ); } return $available_gateways;}
Php Snippet 2: Habilitar la pasarela de pago solo para un rol de usuario específico @ WooCommerce Checkout
Básicamente ocultaremos la puerta de enlace para todos los demás roles.
/** n*@snippet Enable Payment Gateway for User Role | WooCommerce n*@how-to https://tdestudiodesign.com/tutoriales n*@author Tomás Lucas D´Amario, TD Estudio Design n*@compatible WooCommerce 7 n*@community https://tdestudiodesign.com/club */ add_filter( 'woocommerce_available_payment_gateways', 'tddesign_paypal_enable_manager' ); function tddesign_paypal_enable_manager( $available_gateways ) { if ( isset( $available_gateways['paypal'] ) && ! wc_current_user_has_role( 'subscriber' ) ) { unset( $available_gateways['paypal'] ); } return $available_gateways;}
Cómo encontrar la identificación de la pasarela de pago de WooCommerce
Aquí está la captura de pantalla. Básicamente, vaya a Configuración de WooCommerce> Pagos, y ya sea:
- flotar en el «Administrar«Botón, y lea el parámetro URL»sección«. En este caso, verá «§Ion = BACS» entonces «BACS«¿Es la identificación de la pasarela de pago?
- o haga clic derecho en el título del método, haga clic en Inspect (Google Chrome) y busque el «data-gateway_id» atributo. En este caso, verá «TR Data-Gateway_id = BACS» entonces «BACS«¿Es la identificación de la pasarela de pago?
Mini-Plugin: TD Estudio Design WooCommerce Toggle Pagos por rol de usuario
No te sientes Confiado con la codificación? Necesitas más control ¿Sobre su pago/exclusiones de rol de usuario? No quieres comprar otro complemento hinchado y costoso? ¡Excelente!
TD Estudio Design WooCommerce Toggle Pagos por rol de usuario es un Mini complemento de WooCommerce, sin las molestias habituales. Una característica. Licencia de por vida. No hay suscripciones molestas. 1 archivo de complemento. Unas pocas líneas de código. Sin pancartas. No hay ventas ascendentes. No hay notificaciones de WP. Úselo en tantos sitios web como desee. Soporte de por vida. Documentación de 1 página. Un tablero de administración único y fácil.
Captura de pantalla de la configuración:
Demo rápida:
Como puede ver, la configuración es bastante sencilla. Seleccione un método de pago que desee ocultar/mostrar desde la izquierda, y el rol de usuario que debe activarlo desde la derecha. Agregue más reglas si es necesario. ¡Simple!
Complemento avanzado de WooCommerce «Pagos de pago por rol de usuario»
Si no se siente 100% seguro con la codificación, decidí buscar un complemento confiable que logre el mismo resultado de este fragmento (y más).
En este caso, encontré el Pasarelas de pago condicionales de WooCommerce El complemento será el más completo cuando necesite habilitar/deshabilitar las pasarelas de pago según ciertos criterios. Puede crear «reglas» ilimitadas y usar, por ejemplo, totales de carritos, país de facturación, país de envío, rol de usuario y mucho más para definir qué pasarela de pago y cuál no.
Pero en caso de que no desee usar complementos y desee codificar (o desee intentarlo), siga leyendo
¿Dónde agregar código personalizado?
Debes colocar PHP personalizado en funciones.php y CSS personalizado en style.css del tema de su hijo: ¿Dónde colocar la personalización de WooCommerce?
Este código todavía funciona, a menos que informe lo contrario. Para excluir los conflictos, cambie temporalmente al tema de la tienda, deshabilite todos los complementos, excepto WooCommerce, y pruebe el fragmento nuevamente: Solución de problemas de WooCommerce 101
Contenido relacionado
Tomás Lucas D´Amario
Programador y Desarrollador
Experto en WooCommerce y WordPress. Trabajando como un profesional independiente de WooCommerce desde 2016. Su objetivo es ayudar a los empresarios y desarrolladores a superar sus pesadillas de WooCommerce. Sigueme o contactame por Linkedin