add_action( 'after_uninstall', $cleanup ); return; } register_uninstall_hook( $main_file, $cleanup ); } } if ( ! function_exists( 'plugin_suite_fs_can_use_pro' ) ) { /** * Safe Pro gate for code that remains in Free ZIPs. * * Freemius strips methods named `*__premium_only` from Free builds, but may leave * `$fs->is__premium_only() && can_use_premium_code()` assignments. Never call * `is__premium_only()` unless the method exists on the instance. * * Keep `if ( *_fs()->is__premium_only() ) { ... }` blocks for preprocessor stripping. */ function plugin_suite_fs_can_use_pro( object $fs ): bool { if ( ! method_exists( $fs, 'can_use_premium_code' ) || ! $fs->can_use_premium_code() ) { return false; } if ( method_exists( $fs, 'is__premium_only' ) ) { return (bool) $fs->is__premium_only(); } // License stub (Freemius-safe name — not stripped). if ( method_exists( $fs, 'is_premium_build' ) ) { return (bool) $fs->is_premium_build(); } return false; } }