Hola,
Tengo un problema: cuando se realiza un pedido, el estado se cambia automáticamente a "pendiente de pago".
He visto un hilo del foro similar a lo que me ocurre a mi: https://www.webempresa.com/foro/plugins-wordpress/estado-pedido-woocommerce-en-espera
En mi caso, los plugins que estoy utilizando son los recomendados por Redys, bueno, por el banco que con el que tenemos el tpv virtual.
Esto está generando problemas con los clientes porque creen que han tenido problemas al pagar cuando ellos veían el cargo en su cuenta.
Lo que nos gustaría es que los pedidos se pusieran automáticamente "En espera" y una vez que verifiquemos el pago, ya modificar el estado nosotros.
Lo que pones en tu solución, lleva a que se ponga automáticamente en "completado".
¿Me podéis ayudar?
Contenido solo visible a usuarios registrados
Hola Begoña,
En este caso puedes igualmente probar el siguiente código, este código es igual al código para cambiar los pedidos a completados solo que le estamos indicando que lo modifique a en espera
// Actualiza automáticamente el estado de los pedidos a en espera
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' );
if ( !$order_id ) return;
$order = new WC_Order( $order_id );
if ( !in_array( $order->payment_method, $paymentMethods ) ) return;
$order->update_status( 'on-hold' );
}
Puedes ver el procedimiento para añadir este tipo de código en el siguiente artículo -> https://www.webempresa.com/blog/modificar-limite-de-tiempo-en-woocommerce-para-pagos-con-redsys.html
Ten en cuenta que en lugar el código que se indica en el articulo debes probar con el que te envió, añádelo y comprueba si con él al hacer el pedido el estado se marca como en espera
Quedamos atentos como ha ido todo
Un Saludo