¿Te acuerdas que ya resolvimos cómo configurar varias cuentas de PayPal en WooCommerce? Pues, a petición popular, hoy vamos a ver cómo configurar varias cuentas de Stripe en WooCommerce.
Stripe se ha convertido en una plataforma de pago realmente atractiva, y gracias a plugins gratuitos como el que se propone en la misma instalación de WooCommerce, configurarla es tan sencillo como añadir la clave secreta y la clave publicable, de producción o pruebas, en los ajustes de WooCommerce.
Pero solo hay un campo, general para todas las transacciones de la tienda online, no uno por usuario.
Ahora bien, afortunadamente hay maneras de que podamos cambiar de cuenta de Stripe, ya sea programáticamente, según qué condiciones, por ID de producto, etc.
Cómo asignar distintas cuentas de Stripe según el producto con código
En este ejemplo de código vamos a ver cómo usar varias cuentas de Stripe condicionalmente, si hay un ID de producto concreto en el carrito. El código busca un ID de producto en el pedido y cambia de claves de Stripe si coincide con ese ID.
Esto solo funciona cuando solamente hay 1 producto, así que es posible que tengas que impedir que se puedan añadir más de 1 producto al carrito, adicionalmente. Esto lo puedes hacer fácilmente en la ficha de inventario de los datos de los productos
// 1. Crear la función para encontrar el ID de producto function ayudawp_id_producto( $id ) { $product_cart_id = WC()->cart->generate_cart_id( $id ); $in_cart = WC()->cart->find_product_in_cart( $product_cart_id ); if ( $in_cart ) return true; return false; } // 2. Cambiar claves de Stripe según el ID add_filter( 'wc_stripe_params', 'ayudawp_stripe_clave_publicable', 9999 ); function ayudawp_stripe_clave_publicable( $params ) { // AQUÍ EL ID DEL PRODUCTO if ( ! ayudawp_id_producto( 12345 ) ) return $params; // AQUÍ LA CLAVE PUBLICABLE DE STRIPE $params[ 'key' ] = 'pk_live_................'; return $params; } add_filter( 'wc_stripe_payment_request_params', 'ayudawp_clave_publicable_condicional', 9999 ); function ayudawp_clave_publicable_condicional( $params ) { // AQUÍ EL ID DEL PRODUCTO if ( ! ayudawp_id_producto( 12345 ) ) return $params; // AQUÍ LA CLAVE PUBLICABLE DE STRIPE $params[ 'stripe' ][ 'key' ] = 'pk_live_................'; return $params; } add_filter( 'woocommerce_stripe_request_headers', 'ayudawp_clave_privada_condicional', 9999 ); function ayudawp_clave_privada_condicional( $headers_args ) { // AQUÍ EL ID DEL PRODUCTO if ( ! ayudawp_id_producto( 12345 ) ) return $headers_args; // AQUÍ LA CLAVE SECRETA DE STRIPE $headers_args[ 'Authorization' ] = 'Basic ' . base64_encode( 'sk_live_..........' . ':' ); return $headers_args; }
El código debes añadirlo al archivo functions.php del tema activo o a un plugin de personalizaciones, como prefieras.
Descargo de responsabilidad: El código anterior PODRÌA provocar efectos no deseados, úsalo bajo tu responsabilidad.
Distinta cuenta de Stripe por vendedor
Otra posibilidad, más avanzada, es utilizar un sistema multi-vendedor, en la que cada vendedor autorice mediante Stripe Connect los pagos desde el marketplace los pagos automáticos a su respectiva cuenta.
Esto es fácil de configurar con plugins como WooCommerce MultiVendor / MarketPlace, donde inicialmente debes conectar como administrador la pasarela Stripe Connect y seleccionarla como pasarela para los pagos a vendedores en los ajustes del plugin.
Además, cada vendedor deberá conectar mediante Stripe Connect con su propia cuenta de Stripe para que se puedan activar los pagos automáticos.
Esto puede hacerlo en la zona de administración o en la página de su cuenta de usuario.
Una vez hecho lo anterior cada vendedor recibirá los pagos de manera automática, una vez satisfecha la comisión previamente definida, en su propia cuenta de Stripe, automáticamente.
Como has visto no solo es posible usar varias cuentas de Stripe en WooCommerce sino que hay varias maneras de abordar esta necesidad, espero haberte ayudado.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!
seria interesante esta opción para pagos con redsys