Hola
Tengo un problema con los pedidos, varios clientes nos avisan de que cuando están realizando un pedido, llegan a Finalizar compra y por el motivo que sea dan para atrás, empiezan a tener problemas, si solo quedaba una unidad de ese producto les dice que ya no lo pueden comprar o a veces les dice que el pedido ya existe.
Estuve haciendo pruebas para entender el funcionamiento. Cuando el pedido está pendiente de pago, no deja hacer la compra de ese producto (el que tenía stock a 1) a otro cliente, esto es normal.
Si no lo cancelo y vuelvo atrás me deja seguir comprando otros productos, tengo el producto de stock a 1 todavía en el carrito, pero puedo llegar hasta el pago en el TPV.
Si llego con una compra hasta el TPV y cancelo, vuelvo atrás y puedo seguir comprando y llegué hasta el TPV.
Con esto quiero aclarar los pasos que parece que van bien, no sé exactamente qué hacen los cliente, darán 20 vueltas, pero me está provocando un montón de pedidos cancelados y los clientes cansados no compran.
Parece que la solución está siendo eliminar esos pedidos cancelados, entonces, pueden volver a empezar y pueden comprar sin problemas.
Buscando en Internet, encontré este código para eliminar automáticamente los pedidos Cancelados:
function wc_remove_cancelled_status( $statuses ){ if( isset( $statuses['wc-cancelled'] ) ){ unset( $statuses['wc-cancelled'] ); } return $statuses; } add_filter( 'wc_order_statuses', 'wc_remove_cancelled_status' );
Desaparecen todos los pedidos Cancelados, pero cuando hago una prueba de pedido y lo cancelo, se queda permanentemente en Pendiente de pago, entro en el
pedido y resulta que la opción Cancelado desapareció. Esto no me vale, porque el problema persiste y los siguientes pedidos quedarían todos pendientes de
pago, solo eliminó los anteriores.
Por cierto, en los ajustes de WooCommerce puse el tiempo de "Mantener en inventario" en 2 minutos, pensé que al cabo de ese tiempo los pasa a Cancelado, pero no me lo hace, pasaron 6 minutos y no lo cambió:
¿Alguna ayuda para poder eliminar de forma automática los pedidos cancelados?
Gracias
Hola
En wp-config no hay ninguna línea que contenga "cron".
Pero acabo de entrar otra vez en Wordpress, Eventos ron y ya no aparece el error, hice dos capturas:
Gracias
Hola Carlos..
Prueba con la siguiente función.
add_filter('wc_session_expiring', 'so_26545001_filter_session_expiring' );
function so_26545001_filter_session_expiring($seconds) {
return 60 * 05;
}
Esta función lo que hace es eliminar los productos de los carros abandonados cada 5 minutos.
Un saludo
Hola
Eliminar los productos de los carros abandonados supone que si alguien tarda mucho en llegar a Finalizar el pago, le quita los productos y vuelven a estar disponibles, supongo. Pero el problema de que lleguen a Finalizar compra y después cancelen la operación para seguir comprando o hacer cambios, supone que el pedido ya está generado y vuelvo a tener el mismo problema, creo.
Este código me puede servir para los carritos abandonados, le pondría un poco más de 5 minutos, pero la idea de eliminar los pedidos cancelados creo que es la solución a mi problema, pero que no conlleve eliminar el estado Cancelado, este debe seguir existiendo para que cuando un pedido Pendiente de pago pasa un tiempo así, pueda ser cambiado a Cancelado y "entonces" ser eliminado.
El problema del código anterior es ese, elimina Cancelado de la faz de la tierra.
¿Alguna variación del primer código o algo así?
Gracias
Hola carlos.
tarda mucho en llegar a Finalizar el pago, le quita los productos
No, solo eliminará los de los carros abandonados no los que están aún en proceso.
Otra opción es eliminar el carro cuando el usuario cerrierra o abandona la sesión:
function vaciar_carrito_al_salir() {
if( function_exists('WC') ){
WC()->cart->empty_cart();
}
}
add_action('wp_logout', 'vaciar_carrito_al_salir');
Si lo que quieres es que los pedidos queden en cancelado cuando se abandonan puedes utilizar el siguiente plugin:
-> https://wordpress.org/plugins/woo-cancel-abandoned-order/
En el plugin puedes indicarle un tiempo, por ejemplo supongamos que se hace el pedido con pago transferencia y ese pedido al final no se paga, cuando pase el tiempo que le indicas en el plugin este pasa a cancelado.
Un saludo
Hola
Vale, entiendo que con este código podría solucionar el problema con el stock de productos en el caso de que cierre o abandone sesión, pero el problema se estaba dando incluso sin haber abandona sesión, simplemente cancelaban el pedido, volvían atrás y continuaban la compra o rectificaban algo en el envío, y al querer acabar la compra ya no podían.
Podría utilizar los dos código que me das y ver que tal, pero creo que el problema persistirá, ya que si el pedido cancelado no lo elimino para que los clientes pudean volver a empezar la compra, no eran capaces de comprar.
Este último enlace no es lo que necesito, no quiero que se mantengan en Cancelado, quiero eliminar los cancelados.
Por lo que os vuelvo a pedir, si es posible, ¿hay algún código que me elimine los pedidos Cancelados automáticamente, pero sin eliminar el estado Cancelado?
Gracias
Hola Carlos,
En este caso es posible que lo que necesites sea un código a la medida que permita eliminar los ordenes canceladas sin eliminar ninguna opción de woocommerce, ya que no brindamos soporte sobre programación te recomiendo consultes con nuestros colaboradores para que ayuden a desarrollar el código que modifique lo que necesitas exactamente.
Un saludo 🖐️