Hola, he trasladado la web de un cliente de otro servidor (donde estaba funcionando todo perfectamente) ayer a webempresa.
Todo parecía estar bien hasta que probé que todo funcionaba correctamente haciendo un pedido de prueba y me en encontrado con que cuando realizo el pedido y pago mediante redsys todo va bien hasta que llega el momento de registrar el pedido en woocommerce, donde el pedido, a pesar de estar validado en el banco, aparece como "pendiente de pago" en lugar de procesando. Tras un tiempo el pedido aparece luego como cancelado.
El plugin de conexión con redsys es WooCommerce Redsys Gateway Light de José Conti, por si esto pudiera ser de ayuda para encontrar la solución
Tengo activada esta opción ya que de lo contrario ni tan siquiera registra el pedido en el backend.
Tengo la web en modo mantenimiento ya que se encuentra en funcionamiento, y los pedidos entran de forma continuada.
¿Podrían ayudarme por favor?
Perdón si no explico suficientemente bien, pero mis conocimientos son limitados.
Contenido solo visible a usuarios registrados
Hola Jesús.
Lo primero, si es posible, intenta utilizar el plugin oficial de Redsys:
Para solucionar lo de los pedidos:
.- Instala el siguiente plugin:
-> https://es.wordpress.org/plugins/code-snippets/
El plugin sirve para añadir código sin tener que editar los archivos ( creo que ya lo estas utilizando )
Una vez instalado y activado:
.- Accede a Fragmentos de código -> Añadir nuevo.
.- Añade un título para tenerlo identificado y añade el siguiente código:
// Actualiza automáticamente el estado de los pedidos a Completado add_action( 'woocommerce_order_status_processing', 'actualiza_estado_pedidos_a_completado' ); add_action( 'woocommerce_order_status_on-hold', 'actualiza_estado_pedidos_a_completado' ); function actualiza_estado_pedidos_a_completado( $order_id ) { global $woocommerce; //ID's de las pasarelas de pago a las que afecta $paymentMethods = array( 'redsys', '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( 'processing' );
Esto hará que los pedidos pasen a procesando una vez se realice el pago.
Tras un tiempo el pedido aparece luego como cancelado
Para evitar que los pedidos en estado pendiente pasen a cancelado:
.- Accede a woocommerce - Ajustes ' Selecciona la pestaña ' Productos - Inventario ' y módica el apartado ' Mantener el stock (en minutos) ' lo dejas en blanco.
Revisa si se soluciona y nos comentas.
Un Saludo