| @@ -17,8 +17,16 @@ | ||
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | declare(strict_types=1); |
| 20 | 20 | |
| 21 | +// Prevent direct access. Reached only via require() from the deactivator and | |
| 22 | +// uninstall.php, both of which run with WordPress loaded, so this costs the | |
| 23 | +// callers nothing — it was the one tracked file in the plugin without the | |
| 24 | +// guard, which Plugin Check flags as direct file access (#517). | |
| 25 | +if (!defined('ABSPATH')) { | |
| 26 | + exit; | |
| 27 | +} | |
| 28 | + | |
| 21 | 29 | return [ |
| 22 | 30 | /* |
| 23 | 31 | * Every hook the free plugin schedules. Clearing one that was never |
| 24 | 32 | * scheduled is a no-op, so a hook that only some configurations reach is |
| @@ -40,14 +48,19 @@ | ||
| 40 | 48 | 'thinkrank_collect_performance_data', |
| 41 | 49 | 'thinkrank_regenerate_sitemap', |
| 42 | 50 | 'thinkrank_regenerate_sitemap_settings', |
| 43 | 51 | 'thinkrank_ai_traffic_prune', |
| 44 | - 'thinkrank_auto_ai_optimize', | |
| 45 | 52 | 'thinkrank_instant_indexing_reconcile', |
| 46 | 53 | 'thinkrank_instant_indexing_submit', |
| 47 | 54 | 'thinkrank_email_report_tick', |
| 55 | + // Retired with the Brand Visibility feature. Still listed so deactivation | |
| 56 | + // and uninstall clear events a site scheduled before it was removed. | |
| 48 | 57 | 'thinkrank_bv_tick', |
| 49 | 58 | 'thinkrank_bv_watchdog', |
| 59 | + // Moved to ThinkRank Pro with Auto AI metadata, which schedules its own | |
| 60 | + // `thinkrank_pro_` hook. Still listed so events queued before the move | |
| 61 | + // are cleared. | |
| 62 | + 'thinkrank_auto_ai_optimize', | |
| 50 | 63 | ], |
| 51 | 64 | |
| 52 | 65 | /* |
| 53 | 66 | * Every capability the plugin grants, including the pre-Role-Manager slugs |
| @@ -72,8 +85,9 @@ | ||
| 72 | 85 | 'thinkrank_ai_insights', |
| 73 | 86 | 'thinkrank_internal_links', |
| 74 | 87 | 'thinkrank_redirections', |
| 75 | 88 | 'thinkrank_broken_links', |
| 89 | + 'thinkrank_external_links', | |
| 76 | 90 | 'thinkrank_woocommerce', |
| 77 | 91 | 'thinkrank_settings', |
| 78 | 92 | 'thinkrank_manage_roles', |
| 79 | 93 | // Legacy slugs (pre-Role Manager). |