Hola buenas tardes, les escribo nuevamente porque tengo otra duda. Tengo un sitio de woocommerces donde vendo productos digitales descargables y puedo aceptar pagos con tarjeta de credito con 2checkout que es la plataforma de pago que uso. El cobro con tarjeta funciona bien porque una vez hecho el pedido llega como la nota de aviso del cobro del producto comprado pero una vez que se realiza el pago no se entrega el link de descarga al cliente que compra el producto :ohmy: cuando entro a mi web debo poner manualmente la opción del pedido en completado para que la persona reciba el correo con el link de descarga. ¿cómo puedo hacer que esto funcione sin que tenga que meterme todo el tiempo y autorizar la compra?
Ya instalé un plugin que lo hace "automático" de autocompletar los pedidos automáticos y también traté con código para que funcione y nada. No he podido hacer que una vez que se pague con la tarjeta se mande directo el correo para la descarga del mismo. Desconozco si me hace falta hacer otra cosa o me falta agregar un paso ¿podrían ayudarme?
URL del sitio: Contenido solo visible a usuarios registrados
Hola Fabiola.
Excepto Paypal las demás pasarelas no pasan a pedido completado cuando se realiza el pago pero puedes utilizar una función para eso.
.- Edita el archivo functions.php que encontrarás dentro de la carpeta de tu plantilla y al final del archivo añade lo siguiente.
// Actualiza automáticamente el estado de los pedidos a COMPLETADO add_action( 'woocommerce_order_status_processing', 'we_actualiza_estado_pedidos_a_completado' ); add_action( 'woocommerce_order_status_on-hold', 'we_actualiza_estado_pedidos_a_completado' ); function we_actualiza_estado_pedidos_a_completado( $order_id ) { global $woocommerce; //ID's de las pasarelas de pago a las que afecta. $paymentMethods = array( 'bacs', 'cheque', 'cod', 'paypal' ); if ( !$order_id ) return; $order = new WC_Order( $order_id ); if ( !in_array( $order->payment_method, $paymentMethods ) ) return; $order->update_status( 'completed' ); }
La función recibe el ID de la orden ( $order_id ), si el ID existe dentro del array de métodos de pago ($paymentMethods = array( ‘bacs’, ‘cheque’, ‘cod’, ‘paypal’ );), es decir si el pedido se ha pagado con alguno de los siguientes métodos de pago (‘bacs’, ‘cheque’, ‘cod’, ‘paypal’), entonces asignar al pedido el estado “Completado”.
La función recibe el ID de la orden ( $order_id ), si el ID existe dentro del array de métodos de pago ($paymentMethods = array( ‘bacs’, ‘cheque’, ‘cod’, ‘paypal’ );), es decir si el pedido se ha pagado con alguno de los siguientes métodos de pago (‘bacs’, ‘cheque’, ‘cod’, ‘paypal’), entonces asignar al pedido el estado “Completado”.
$paymentMethodsID = array( 'bacs', 'cheque', 'cod', 'paypal' );
Este array guarda todos los métodos de pago que tenemos disponibles en WooCommerce,
puedes añadir o quitar algunos métodos de pago según la configuración, lo lógico es que este array coincida con los métodos de pago que estés utilizando.
Para ver esto debes ir a WooCommerce -> Ajustes -> Finalizar Compra -> Pagos .
Los IDs de pasarelas de pago suelen ser los siguientes:
Transferencia bancaria directa: ‘bacs’
Contra reembolso: ‘cod’
Pago con cheque: ‘cheque’
PayPal: ‘paypal’
PayPal Express: ‘ppec_paypal’
Stripe: ‘stripe’
RedSys: ‘redsys’
Prueba con lo que te indico y revisa si cambia automáticamente el pedido a completado.
Un saludo
Hola Pepe, muchas gracias por la respuesta ya hice lo que me pediste ya copie y pegue el código e hice el proceso de compra pero no cambio mi proceso automático. Te mando unas capturas de pantalla para que veas.
En la imagen 1
te pongo como aparece una vez que hago la compra no aparece ningún link de descarga, solo me aparece la imagen así como la vez.
Imagen 2, me metí a mi web y si te fijas aparece "pendiente de pago" osea no se hizo el cambio automático
Imagen 3, Copie y pegue el código que me pasaste en un plugin que instalé para no tocar el php de mi tema hijo de mi página (no se si sea correcto hacer esto)
Imagen 4
Te pongo como se ve la hoja de estilo y el de funtion php de mi tema hijo porque no se dónde deba pegar el código que me pasaste :huh: así es cómo se ve en mi web.
La imagen 5,
Es el correo que recibo cuando hago el pago con mi tarjeta de crédito
Imagen 6,
es el correo que recibo después de unos minutos.
La pasarela de pago que uso es 2checkout tendrás el código que debo incrustar en el código que me pasaste, será es que me falta agregarlo y por eso no se hace automático porque veo que con "stripe" solo se pone el nombre, pero esa no lo uso aquí 🙁 no se que más me falte para que cambie automáticamente mi pedido. 🙁
Hola Fabiola,
Primero, consulta a soporte técnico mediante tickets para que revisen si tienes recursos disponibles en tu Hosting o revisalo tu misma desde tu cPanel, quizás has llegado al limite y esto puede que tenga algo que ver. De cualquier manera, es una situación que tendrás que solucionar tarde o temprano 🙂
Luego, podrías indicarme exactamente ¿Qué plugin y versión estás usando? ¿Anteriormente funcionaba o nunca ha funcionado? ¿Has probado qué sucede con algún plugin independiente (el oficial por ejemplo) de PayPal? ¿Podrías mostrarme la configuración del plugin de pago que estás usando?
Te agradezco tu colaboración, contar con toda la información que puedas darnos nos ayudará a darte más rápidamente una solución.
Saludos 🙂
Buenas tardes,
Creo que este es el sitio adecuado para mi consulta. A mí me sucede algo parecido, pero es Paypal el que no proporciona los enlaces de descarga. Siguiendo vuestros manuales he publicado una tienda en mi sitio con Woocommerce. He probado cupones y he configurado los pagos con Stripe y con Paypal, y se ingresan correctamente.
Cuando se realiza una compra con Stripe, el cliente es dirigido a una página de "Finalizar compra" en la que, aparte de los detalles del pedido, aparece el enlace de descarga del producto digital. El cliente también recibe un correo de la web "Gracias por tu compra" con los detalles del pedido, la factura en PDF y también el enlace de descarga. A mí, como vendedor, me llega el mail de "nuevo pedido" de la web, con los detalles de facturación. Todo perfecto.
Sin embargo, cuando se realiza una compra por Paypal, el cliente es dirigido a la misma página de "Finalizar compra", en la que SOLO APARECEN los detalles del pedido, pero sin el enlace de compra. El cliente solo recibe un correo de Paypal, no el de la web "Gracias por tu compra", por lo que tampoco tiene opción de descargarse vía mail el infoproducto. En este caso, yo también recibo el mail de vendedor de "nuevo pedido" de la web sin problema.
¿Cómo puedo configurar la tienda para que al pagar vía Paypal el cliente tenga acceso directo a la descarga del producto que ha comprado y para que le lleguen los mismo correos preconfigurados de la web que si pagara con Stripe?
Le he dado muchas vueltas, pero no encuentro la manera de configurarlo correctamente para que la página de "Finalizar compra" sea igual (con enlace de descarga) y para que se lance el mail oportuno con los datos y la factura, independientemente del método de pago del cliente.
No puede ser que tenga que hacer llegar el infoproducto de manera "manual" (además de los datos de compra y factura) a cada cliente que pague por Paypal, ¿verdad?
Muchas gracias de antemano por la ayuda y recibid un cordial saludo.
Hola Pablo,
Puedes comentarnos cual es el plugin de paypal que estas usando en tu sitio web, de igual forma envíanos cual es la url del sitio donde tienes configurado estos productos. De esta forma podremos verificar con mayor detalle.
PD: Te recomiendo abras un nuevo tema con la consulta y en este nos añadas las URL del sitio y el nombre del plugin, ya que aunque los casos son parecidos es posible que lo que este afectando no sea lo mismo. De esta forma mantenernos un control sobre el hilo de cada tema y podemos ayudarte con mayor detalle.
Un Saludo 😊
Muchas gracias, pues lo preparo todo y abro nuevo tema de consulta para facilitaros el trabajo.
Un saludo.