Hola!
Tengo un problema: Un cliente me hace un pedido que queda pendiente de pago y luego me dice que no lo hara por el momento lo que corresponde es cancelar el pedido en woocommerce - pedidos y debería reestablecerse en mi inventario pero.... estos productos no regresan a mi inventario. ¿qué puedo hacer al respecto? ¿alguna propuesta de solución? 🙁 esto me complica bastante.
Muchas gracias de ante mano.
Hola Gian,
En este caso debes ingresar un código a tu archivo functions.php, para ello debes ingresar a tu cpanel → Public_html → tu dominio → wp-content → themes → tu tema → archivo functions.php, una vez estes dentro de este agrega el siguiente código al final del todo
remove_filter( 'woocommerce_cancel_unpaid_orders', 'wc_cancel_unpaid_orders' );
add_filter( 'woocommerce_cancel_unpaid_orders', 'override_cancel_unpaid_orders' );
function override_cancel_unpaid_orders() {
$held_duration = get_option( 'woocommerce_hold_stock_minutes' );
if ( $held_duration < 1 || 'yes' !== get_option( 'woocommerce_manage_stock' ) ) {
return;
}
$data_store = WC_Data_Store::load( 'order' );
$unpaid_orders = $data_store->get_unpaid_orders( strtotime( '-' . absint( $held_duration ) . ' MINUTES', current_time( 'timestamp' ) ) );
if ( $unpaid_orders ) {
foreach ( $unpaid_orders as $unpaid_order ) {
$order = wc_get_order( $unpaid_order );
if ( apply_filters( 'woocommerce_cancel_unpaid_order', 'checkout' === $order->get_created_via(), $order ) ) {
//Cancel Order
$order->update_status( 'cancelled', __( 'Unpaid order cancelled - time limit reached.', 'woocommerce' ) );
//Restock
foreach ($order->get_items() as $item_id => $item) {
// Get an instance of corresponding the WC_Product object
$product = $item->get_product();
$qty = $item->get_quantity(); // Get the item quantity
wc_update_product_stock($product, $qty, 'increase');
}
}
}
}
wp_clear_scheduled_hook( 'woocommerce_cancel_unpaid_orders' );
wp_schedule_single_event( time() + ( absint( $held_duration ) * 60 ), 'woocommerce_cancel_unpaid_orders' );
}
Ya con esto al momento de tu colocar la orden como cancelada restaura el stock que tenía.
Saludos
Esto está en administrador de archivos verdad?
Hola Gian,
Exactamente cpanel → Administrador de archivos → Public_html → tu dominio → wp-content → themes → tu tema → archivo functions.php, disculpa si lo salte en el mensaje previo
Nos comentas una vez tengas incorporado como te va, un saludo 🖐️
Nada que disculparte, lo acabo de hacer desde el wp-admin apariencia functions.php ¿es lo mismo cierto?
PD: Soy super nuevo en woordpress
Hola Gian,
Debería ser lo mismo pero puede que de esta forma no sea asimilado de forma correcta por lo que siempre es mejor agregarlo de forma manual a los datos del tema siguiendo la ruta que te comente, igualmente puedes agregarlo como indicas y verificar con una compra de prueba si funciona, si no obtienes los resultados que necesitas agregalo manualmente y verifica que esta vez si funcione.
Saludos 🖐️
Muchas gracias, todo funciono correctamente! Eres un genio!
Hola Gian,
Gracias a ti por consultarnos, esperamos leerte pronto en el foro.
Saludos 🙂