AnsPress_Uploader::cron_delete_temp_attachments()
Description #
Delete temporary media which are older then today.
Source #
File: includes/upload.php
public static function cron_delete_temp_attachments() {
global $wpdb;
$posts = $wpdb->get_results( "SELECT ID, post_author, post_parent FROM $wpdb->posts WHERE post_type = 'attachment' AND post_title='_ap_temp_media' AND post_date <= CURDATE()" ); // phpcs:ignore WordPress.DB
$authors = array();
if ( $posts ) {
foreach ( (array) $posts as $_post ) {
wp_delete_attachment( $_post->ID, true );
ap_update_post_attach_ids( $_post->post_parent );
$authors[] = $_post->post_author;
}
// Update temporary attachment counts of a user.
foreach ( (array) array_unique( $authors ) as $author ) {
ap_update_user_temp_media_count( $author );
}
}
// Delete all temporary files.
$uploads = wp_upload_dir();
$files = glob( $uploads['basedir'] . '/anspress-temp/*' );
$interval = strtotime( '-2 hours' );
// Make sure WP_Filesystem is loaded.
if ( ! function_exists( 'WP_Filesystem' ) ) {
require_once ABSPATH . 'wp-admin/includes/file.php';
}
// Initialize WP_Filesystem.
if ( ! \WP_Filesystem() ) {
// Unable to initialize WP_Filesystem, handle error accordingly.
return;
}
global $wp_filesystem;
if ( $files ) {
foreach ( $files as $file ) {
if ( filemtime( $file ) <= $interval ) {
$wp_filesystem->delete( $file );
}
}
}
}
Expand full source code Collapse full source code View on GitHub: includes/upload.php:85
Add your comment