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
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!
@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
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 🖐️
@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?
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:
Un saludo 🖐️
@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?
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 🖐️
@argenis ya encontre el problemma. Fue la actualizacion de woocommmerce. GRACIASS
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 🖐️