getVcsApi()->enableReleaseAssets(); // ─── Platform check ────────────────────────────────────────────────────────── if ( ! defined( 'IS_PRESSABLE' ) ) { add_action( 'admin_notices', 'pcm_auto_deactivation_notice' ); add_action( 'admin_init', 'deactivate_plugin_if_not_pressable' ); } function deactivate_plugin_if_not_pressable() { deactivate_plugins( plugin_basename( __FILE__ ) ); } function pcm_auto_deactivation_notice() { $style = 'margin:50px 20px 20px 0;background:#fff;' . 'border-left:4px solid #dd3a03;border-radius:0 8px 8px 0;' . 'padding:18px 20px;box-shadow:0 2px 8px rgba(4,0,36,.07);font-family:sans-serif;'; echo '
'; echo '

' . esc_html__( 'Attention!', 'pressable_cache_management' ) . '

'; echo '

' . esc_html__( 'This plugin is not supported on this platform.', 'pressable_cache_management' ) . '

'; echo '
'; } // ─── i18n – load translations (en_US, es_ES, fr_FR, etc.) ─────────────────── function pressable_cache_management_load_textdomain() { // Third parameter must be relative to WP_PLUGIN_DIR (no leading slash, no absolute path) load_plugin_textdomain( 'pressable_cache_management', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } add_action( 'plugins_loaded', 'pressable_cache_management_load_textdomain' ); // ─── Admin-only includes ───────────────────────────────────────────────────── if ( is_admin() ) { require_once plugin_dir_path( __FILE__ ) . 'admin/admin-menu.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/settings-page.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/settings-register.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/settings-callbacks.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/settings-validate.php'; require_once plugin_dir_path( __FILE__ ) . 'remove_old_mu_plugins.php'; // Must load turn_on_off BEFORE purge (purge reuses pcm_edge_notice) require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/turn_on_off_edge_cache.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/purge_edge_cache.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_object_cache.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/extend_batcache.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/object_cache_admin_bar.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_batcache_for_woo_individual_page.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/exclude_pages_from_batcache.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_batcache_for_particular_page.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_cache_on_comment_delete.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/remove_pressable_branding.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/defensive_mode_edge_cache.php'; } // ─── Front-end + admin cache flush triggers ────────────────────────────────── require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_cache_on_theme_plugin_update.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_cache_on_page_edit.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_cache_on_page_post_delete.php'; require_once plugin_dir_path( __FILE__ ) . 'admin/custom-functions/flush_single_page_toolbar.php'; // ─── Settings link on plugin list page ────────────────────────────────────── function pcm_settings_link( $links ) { $settings_link = '' . esc_html__( 'Settings', 'pressable_cache_management' ) . ''; array_unshift( $links, $settings_link ); return $links; } add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'pcm_settings_link' );