Skip to main content

benecaster_analytics_prune_skip

Filter Premium Since v1.0.0

Filters whether an analytics prune run should be aborted before it executes. Fires at the very start of a prune operation — before any rows are deleted and before the last-run timestamp is updated. Applies to both the nightly cron run and manual ‘Prune now’ operations triggered from the settings UI.

Return `true` to abort the run silently. Because the last-run timestamp is not updated on an aborted run, the operation will be attempted again on the next scheduled trigger. Use this filter to pause pruning during a database backup, migration in progress, or any window where aged data must be preserved before deletion.

Parameters

Name Type Default Description
$skip bool Whether to skip the prune; default false
$source string 'cron' or 'manual'
$retention_days int Configured retention window in days
$tables string[] Table names that would be pruned

Returns: bool

Examples

Skip pruning during backup job

add_filter( 'benecaster_analytics_prune_skip', function( $skip, $source, $retention_days, $tables ) {
    // Skip automated pruning when a database backup job is in progress.
    $backup_running = get_transient( 'mybackup_in_progress' );
    if ( 'cron' === $source && $backup_running ) {
        return true;
    }
    return $skip;
}, 10, 4 );

Skip cron run on release day

add_filter( 'benecaster_analytics_prune_skip', function ( bool $skip, string $source, int $retention_days, array $tables ): bool {
    // Skip automated prune runs on Tuesdays (podcast release day)
    if ( 'cron' === $source && date( 'N' ) === '2' ) {
        return true;
    }
    return $skip;
}, 10, 4 );

Notes

Returning true aborts the prune silently — no data is deleted and the last-run timestamp is not updated, so the run will be attempted again on the next scheduled trigger. The $tables parameter reflects the full set of tables targeted by the pruner; it is informational. You cannot selectively exclude individual tables via this filter — it is an all-or-nothing abort.