Skip to main content

Clean up external records when an episode is permanently deleted

Free Beginner Since v1.0.0

Fires from before_delete_post — the episode still exists in the database at this point, so get_post(), get_post_meta(), and get_the_title() all return valid data. Use to remove external analytics entries, revoke CDN assets, or log the deletion before the local data is gone. Does NOT fire on trash — only on permanent deletion.

Code

<?php
add_action( 'benecaster_episode_deleted', function ( int $episode_id, int $show_id ) {
    $audio_url = get_post_meta( $episode_id, '_benecaster_audio_url', true );

    my_analytics_delete_episode( $episode_id );

    my_slack_notify( sprintf(
        'Episode deleted: %s (show %d) — audio: %s',
        get_the_title( $episode_id ),
        $show_id,
        $audio_url ?: 'none'
    ) );
}, 10, 2 );

View on GitHub →

Hooks Used