Actualice y guarde un artículo de pedido en el pedido en Woocommerce 3

1 minuto de lectura

avatar de usuario
RickMorty

Estoy tratando de cambiar la cantidad, el subtotal y el total de una línea de pedido en woocommerce, pero mi código parece no cambiar nada más que el total final… ¿por qué? (solo hay 1 artículo de línea para cualquier pedido que quiera cambiar)

aquí está mi código para cambiar los detalles de una línea de pedido;

$ordernum = 12345; //what I want
$qnty = 30; //or whatever
$subtotal = 10; 
$total = 300; //for show

$order = wc_get_order($ordernum);
foreach( $order->get_items() as $item_id => $item ){
                                $item->set_quantity($qnty);
                                $item->set_subtotal($subtotal); 
                                $item->set_total($total);
                                $item->save();
                }
$order->set_total($total);   
$order->save();

EDITAR: parece que los cambios tardan una eternidad en surtir efecto en el panel de administración… ¿cuál sería el caso, ya que esto se hace mediante programación… o se almacena?

  • Lo siento, tienes razón… ¿Has probado el método save()?

    – LoicTheAztec

    21 de agosto de 2018 a las 21:52

  • @LoicTheAztec sí, lo tengo. Pero los pedidos tardan muchísimo en mostrar las actualizaciones en las tablas de woocommerce en el panel de administración… ¿por qué?

    – RickMorty

    21 de agosto de 2018 a las 21:55

  • Es difícil dar alguna explicación con el código y el contexto proporcionados en su pregunta.

    – LoicTheAztec

    21 de agosto de 2018 a las 21:59


No conozco woocommerce pero creo que deberías llamar $item->save() en el elemento en cada bucle ejecutado ofc.

  • ¡Tienes razón! Eso es necesario.

    – Sr. Jo

    23/09/2021 a las 12:30

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad