Flush full-page caches when a per-show Supporter Wall is enabled or disabled
ShowMeta::set_supporter_wall_enabled() fires benecaster_supporter_wall_enabled( int $show_id ) on a 0→1 transition and benecaster_supporter_wall_disabled( int $show_id ) on a 1→0 transition. Same-value writes do not fire either action, so callbacks run exactly once per real state change. Two separate actions let add-ons subscribe to only the direction they care about.
Code
<?php
function bc_flush_supporter_wall_pages( int $show_id ): void {
// Generic WP transient + page-cache plugin hooks.
delete_transient( 'my_theme_supporter_wall_' . $show_id );
// Common page-cache plugins.
if ( function_exists( 'wp_cache_clear_cache' ) ) { wp_cache_clear_cache(); } // WP Super Cache
if ( function_exists( 'rocket_clean_post' ) ) { rocket_clean_post( $show_id ); } // WP Rocket
}
add_action( 'benecaster_supporter_wall_enabled', 'bc_flush_supporter_wall_pages' );
add_action( 'benecaster_supporter_wall_disabled', 'bc_flush_supporter_wall_pages' );
Hooks Used
-
benecaster_supporter_wall_enabled -
benecaster_supporter_wall_disabled