Avisos
Vaciar todo

[Resuelto] Deshabilitar acción programada  

 
Antonio
 Antonio
Usuario eminente

Hola

Hace poco que creé esta página y por lo visto he creado una acción programada sin ser consciente de ello.

Me hace una acción con nombre woocommerce_cleanup_draft_orders , configurada para hacerlo de forma diaria.

Tiene pienta de ser un borrado de los pedidos no ultimados, he buscado en los ajustes de woocommerce, pero no he encontrado de donde desactivarlo.

Me podéis echar una mano ?

 

Gracias

Contenido solo visible a usuarios registrados

Respondido : 31/10/2023 9:07 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Antonio.

Puedes añadir lo siguiente al final del archivo functions.php que se encuentra en wp-content -> themes -> tu_plantilla o si utilizar algún plugin para añadir código como puede ser Code Snippets

add_filter( 'pre_update_option_woocommerce_cleanup_draft_orders_interval', '__return_false' );

 

El código evitará que se ejecute la acción programado woocommerce_cleanup_draft_orders al deshabilitar la opción de intervalo para este trabajo.

Tene en cuenta que no se eliminará automáticamente los borradores de pedidos y con el tiempo puedes tener tablas en base de datos con muchos registros de borradores de pedidos.

 

Un Saludo

 

Respondido : 31/10/2023 11:35 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Antonio
 Antonio
Usuario eminente

@pepesoler

Hola

Entiendo entonces que es una acción que se encuentra por defecto en la instalación de woocommerce y que no se puede modificar en los ajustes del plugin.

Perjudica en algo a la web la realización de esa limpieza ? , ocupa espacio o recursos ?

Si no perjudica y no ocupa nada no  me importa que se ejecute, lo que me tenía mosca era el no saber porqué se ejecutaba.

Gracias por la respuesta

 

Respondido : 31/10/2023 11:57 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Antonio:

que no se puede modificar en los ajustes del plugin.

Exacto, hay que bloquear esa acción.

Perjudica en algo a la web la realización de esa limpieza ? , ocupa espacio o recursos ?

Si lo desactivas lo que tienes que hacer es limpiar los borradores desde Woocommerce, si no se borran siguen creando entradas en la base de datos que pueden ralentizar la carga de web.

 

Esta función eliminará los pedidos borrados de más de un dia:

public function delete_expired_draft_orders() {

$count      = 0;

$batch_size = 20;

$this->ensure_draft_status_registered();

$orders = wc_get_orders(

[

'date_modified' => '<=' . strtotime( '-1 DAY' ),

'limit'         => $batch_size,

'status'        => self::DB_STATUS,

'type'          => 'shop_order',

]

);




// do we bail because the query results are unexpected?

try {

$this->assert_order_results( $orders, $batch_size );

if ( $orders ) {

foreach ( $orders as $order ) {

$order->delete( true );

$count ++;

}

}

if ( $batch_size === $count && function_exists( 'as_enqueue_async_action' ) ) {

as_enqueue_async_action( 'woocommerce_cleanup_draft_orders' );

}

} catch ( Exception $error ) {

wc_caught_exception( $error, __METHOD__ );

}

}

El código anterior desactiva el Cron de WordPress para esa acción y con este otro código eliminará los pedidos en borrador que tenga más de un dia.

 

Un Saludo

 

Respondido : 31/10/2023 12:16 pm

Antonio
 Antonio
Usuario eminente

Perfecto, podéis cerrar el hilo.

Gracias por la ayuda

Respondido : 31/10/2023 12:24 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Antonio.

Nada, Gracias a ti.

Cualquier consulta que tengas no dudes en comunicarlo.

 

Un saludo

Respondido : 31/10/2023 12:34 pm

Cursos Gratuitos WordPress