Borrar productos agotados automaticamente?

Buenas noches, tengo un cliente que tiene un sitio que vende ropa vintage, por lo tanto sus productos son de una unica unidad y luego ya no los tiene más, y siempre van variando. Mi idea es saber si es posible que una vez se vendan (y pasen de 1 stock a 0, quedando agotado) y queden fuera de la vista del público, al cabo de unos días se borren automáticamente JUNTO CON LAS FOTOS de dicha prenda. La clave es que se pueda borrar las fotos, de esta manera los productos ya vendidos van a ir borrandose y optimizando el sitio que a la larga puede quedar con muchos productos ya vendidos y sus fotos respectivas cargando el sitio innecesariamente.

Esto se puede hacer manualmente, claro, pero si se puede automatizar seria epiccccc.
Si alguien sabe algo de esto, le agradezco

No lo probe, pero chatGPT dice esto (ponelo en el functions.php de tu child theme o usando el plugin Code Snippets):

// Eliminar productos y sus imágenes cuando el stock llegue a cero
add_action( 'woocommerce_product_set_stock', 'delete_product_and_images_on_zero_stock', 10, 2 );
function delete_product_and_images_on_zero_stock( $product, $stock ) {
    if ( $stock == 0 ) {
        $product_id = $product->get_id();
        $product_images = $product->get_gallery_image_ids();
        wp_delete_post( $product_id, true );
        foreach ( $product_images as $image_id ) {
            wp_delete_attachment( $image_id, true );
        }
    }
}

EDIT: Esto borraria el producto y las imagenes inmediatamente cuando el stock pase a cero, no despues de unos dias.

Ohhh nice, y se le puede agregar lo de los días??

No le pregunte a ChatGPT pero en ese caso seria mas complejo porque tendrías que, por un lado, modificar el codigo de arriba para que en lugar de borrar los productos directamente, guarde en un archivo los IDs de los productos a borrar junto con la fecha de borrado (ponele la fecha actual + 3)

Por otro lado, crear un cron en el servidor que corra todos los dias y ejecute un codigo que lea el archivo.
Si el archivo no esta vacio, traer la fecha actual y comparar esa fecha con las fechas de cada producto.
Si las fechas coinciden, borrar ese producto y las imagenes asociadas.
En el archivo, eliminar el ID y la fecha de borrado de ese producto (sin eliminar las demas!).

Ya lo solucioné gracias a ChatGPT y funciona perfecto! Graciassss

1 me gusta