Avisos
Vaciar todo

[Resuelto] el codigo de funnctions.php para que Autocompleta todos los pedidos virtuales processing a completed dejo de funcionar

10 Respuestas
3 Usuarios
0 Reactions
18 Visitas
Respuestas: 198
Estimable Member
Topic starter
 

el codigo de funnctions.php para que Autocompleta todos los pedidos virtuales processing a completed dejo de funcionar

/**
* Autocompleta todos los pedidos virtuales
*/
add_action('woocommerce_thankyou', function ($order_id) {
if (! $order_id) {
return;
}

$order = wc_get_order($order_id);

if ($order->has_status('processing')) {
$order->update_status('completed');
}
});

Contenido solo visible a usuarios registrados


 
Respondido : 15/07/2021 8:06 pm
Bruno
Respuestas: 6478
Illustrious Member Moderator
 

Que tal Laura,

Posiblemente haya dejado de funcionar por una actualización, puedes probar el siguiente plugin https://es.wordpress.org/plugins/autocomplete-woocommerce-orders/

Saludos!


 
Respondido : 15/07/2021 8:19 pm
Respuestas: 198
Estimable Member
Topic starter
 

@bruno-vichetti ok Gracias. Me gustaria resolverlo sin tener que utulizar otro plugin en el sitio. Ya tengo demasiados. Tal vez esten al tanto del  tema en el codigo por la actualizacion. por eso decidi escribir en el foro


 
Respondido : 15/07/2021 9:52 pm
Argenis
Respuestas: 11585
Illustrious Member Moderator
 

Hola Laura,

Verifica agregar el siguiente código a tu archivo functions.php:

add_action('woocommerce_order_status_changed', 'ts_auto_complete_virtual');
function ts_auto_complete_virtual($order_id)
{

if ( ! $order_id ) {
return;
}

global $product;
$order = wc_get_order( $order_id );

if ($order->data['status'] == 'processing') {

$virtual_order = null;
if ( count( $order->get_items() ) > 0 ) {
foreach( $order->get_items() as $item ) {
if ( 'line_item' == $item['type'] ) {
$_product = $order->get_product_from_item( $item );
if ( ! $_product->is_virtual() ) {
// once we find one non-virtual product, break out of the loop
$virtual_order = false;
break;
}
else {
$virtual_order = true;
}
}
}
}
// if all are virtual products, mark as completed
if ( $virtual_order ) {
$order->update_status( 'completed' );
}
}
}

Verifica y nos comentas

Un saludo 🖐️ 


 
Respondido : 15/07/2021 10:26 pm
Respuestas: 198
Estimable Member
Topic starter
 

@argenis Gracias! Ya lo verifico! Solo para saber que estamos en el mismo tema 😀 Este codigo es solo para pasar las ordenes pagadas que quedaron en estado prosesado a commpletadas. si?

 


 
Respondido : 15/07/2021 10:38 pm
Argenis
Respuestas: 11585
Illustrious Member Moderator
 

Hola Laura,

Esto colocara en completadas las ordenes virtuales de procesando a completadas, en caso de que no se haga con las que ya están activas tendrias que hacerlo de forma manual, sin embargo puedes hacerlo de forma masiva:

Woocommerce > Pedidos > Señalas todas las que quieras cambiar y seleccionas cambiar a completado:

image

 Un saludo 🖐️ 


 
Respondido : 15/07/2021 10:43 pm
Respuestas: 198
Estimable Member
Topic starter
 

@argenis es muy raro, porque si bien si funciona y deja el producto en completado lo que sucede es que en el LMS el curso no lo asigna al alummno y de la otra manera con el otro codigo si lo asignaba.  Por que sera?


 
Respondido : 15/07/2021 11:14 pm
Argenis
Respuestas: 11585
Illustrious Member Moderator
 

Hola Laura,

Este código por lo visto esta documentado para funcionar con woocommerce, cosa que hace pero al tener implementado otro sistema como lo es el de tutor lms en versión pro es posible que necesites algun otro codigo especial para que no cree conflicto con la regla de auto completado de las órdenes virtuales.

También puedes verificar contactando con nuestros colaboradores para que creen un código a medida que no genere problemas con el complemento de lms:

https://www.webempresa.com/directorio-colaboradores.html

Un saludo 🖐️ 


 
Respondido : 15/07/2021 11:59 pm
Respuestas: 198
Estimable Member
Topic starter
 

@argenis ya encontre el problemma. Fue la actualizacion de woocommmerce. GRACIASS


 
Respondido : 16/07/2021 12:02 am
Argenis
Respuestas: 11585
Illustrious Member Moderator
 

Hola Laura,

Estupendo, recuerda siempre el realizar un clon del sitio en caso de actualizaciones para confirmar que todo funcione de forma correcta al realizar estos procesos. Igualmente nos alegra que lograses solventar el problema.

Un saludo 🖐️ 


 
Respondido : 16/07/2021 12:04 am