Tribe__Events__Aggregator__Cron::purge_expired_records()
Return
(void)
Source
File: src/Tribe/Aggregator/Cron.php
public function purge_expired_records() {
global $wpdb;
$records = Tribe__Events__Aggregator__Records::instance();
$statuses = Tribe__Events__Aggregator__Records::$status;
$sql = "
SELECT
meta_value
FROM
{$wpdb->postmeta}
JOIN {$wpdb->posts}
ON ID = post_id
AND post_status = %s
WHERE
meta_key = %s
";
// let's make sure we don't purge the most recent record for each import
$records_to_retain = $wpdb->get_col(
$wpdb->prepare(
$sql,
$statuses->schedule,
Tribe__Events__Aggregator__Record__Abstract::$meta_key_prefix . 'recent_child'
)
);
$args = array(
'post_status' => array(
$statuses->pending,
$statuses->success,
$statuses->failed,
$statuses->draft,
),
'date_query' => array(
array(
'before' => date( 'Y-m-d H:i:s', time() - $records->get_retention() ),
'column' => 'post_date_gmt',
),
),
'order' => 'ASC',
'posts_per_page' => 100,
);
if ( $records_to_retain ) {
$args['post__not_in'] = $records_to_retain;
}
$query = $records->query( $args );
if ( ! $query->have_posts() ) {
tribe( 'logger' )->log_debug( 'No Records over retention limit, skipped pruning expired', 'EA Cron' );
return;
}
foreach ( $query->posts as $post ) {
$record = Tribe__Events__Aggregator__Records::instance()->get_by_post_id( $post );
if ( tribe_is_error( $record ) ) {
tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, original post non-existent', $post->ID ), 'EA Cron' );
continue;
}
if ( ! $record->has_passed_retention_time() ) {
tribe( 'logger' )->log_debug( sprintf( 'Record (%d) skipped, not past retention time', $record->id ), 'EA Cron' );
continue;
}
$has_post = false;
$deleted = false;
// Creating the child records based on this Parent
if ( ! empty( $record->id ) ) {
$has_post = true;
$deleted = wp_delete_post( $record->id, true );
}
if ( $has_post ) {
if ( $deleted ) {
tribe( 'logger' )->log_debug( sprintf( 'Record (%d) was pruned', $deleted->ID ), 'EA Cron' );
} else {
tribe( 'logger' )->log_debug( sprintf( 'Record (%d) was not pruned', $deleted ), 'EA Cron' );
}
} else {
tribe( 'logger' )->log_debug( sprintf( 'Record (%d) did not have a `$record->id` so it did not require pruning', $deleted ),
'EA Cron' );
}
}
}
Changelog
| Version | Description |
|---|---|
| 4.3.2 | Introduced. |