Hoy os vamos a dejar un pequeño código para cambiar el estado de los pedidos realizados en WooCommerce con el método de pago contrareembolso. No estamos arreglando un error, el sistema funciona correctamente. Es una modificación para ciertas tiendas que necesiten algo especial.
En la mayoría de los casos, cuando un pedido se hace contrareembolso, es normal que su estado sea Procesando porque el pedido debe enviarse. No tiene que esperar a nada. Se pagará al recibir el pedido.
Pero, en ciertos casos, se usa este método de pago como “pago en tienda” o “pago en mano”. En estos casos, especialmente si el pedido da acceso a descargas o productos virtuales, el pedido no debería ser Procesando (porque dicho estado da acceso al material online). Es mejor que se quede “En Espera” hasta que se procese el pago.
Estos días hemos tenido un caso parecido, y lo hemos arreglado generando un código (modificado de uno que encontramos en Internet) que afecta sólo a este tipo de pedidos. Os lo vamos a dejar por si os sirve (y porque no nos resultó fácil encontrar la solución).
Como siempre, el código debe insertarse en el functions.php del tema hijo, o en un plugin como Code Snippets.
Código para poner el pedidos pagados por contrareembolso como En Espera en WooCommerce.
El código es el siguiente:
function wooc_cod_status( $status ) {
return 'on-hold';
}
add_filter( 'woocommerce_cod_process_payment_order_status', 'wooc_cod_status', 15 );
Cuando lo apliquéis, haced una prueba con ese método de pago. Como veis usa un hook de WooCommerce woocommerce_cod_process_payment_order_status y, a fecha del artículo, está probado y funcionando.
Os recomendamos los siguientes productos relacionados con la informática: