PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / trunk
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management vtrunk
1.6.0 1.5.1 1.5.0 1.4.0 1.3.0 trunk 0.0.1 1.0.0 1.1.0 1.1.1 1.1.2 1.2.0
← All changes | plugin-loader.php +16 -0 1.2.0trunk View file →
@@ -8,11 +8,14 @@
8 8 namespace SureDonation;
9 9
10 10 use SureDonation\Inc\Admin\Admin;
11 11 use SureDonation\Inc\Admin\Admin_Ajax;
12 +use SureDonation\Inc\Admin\Admin_Bar;
12 13 use SureDonation\Inc\Admin\Analytics;
14 +use SureDonation\Inc\Admin\Notice_Manager;
13 15 use SureDonation\Inc\Admin\Notices;
14 16 use SureDonation\Inc\Ajax\Donation_Handler;
17 +use SureDonation\Inc\Emails\Email_Handler;
15 18 use SureDonation\Inc\Assets\Register as Assets_Register;
16 19 use SureDonation\Inc\Blocks\Register as Blocks_Register;
17 20 use SureDonation\Inc\Campaigns\Campaign_Cpt;
18 21 use SureDonation\Inc\Campaigns\Campaign_Meta_Tags;
@@ -125,8 +128,12 @@
125 128 public function load_plugin() {
126 129 // Initialize database tables.
127 130 Database_Register::init();
128 131
132 + // Back-fill notification identities once, in admin context only — it
133 + // writes, and the path it repairs runs during donor payment requests.
134 + add_action( 'admin_init', [ Email_Handler::class, 'backfill_notification_keys' ] );
135 +
129 136 // Initialize Campaign CPT.
130 137 Campaign_Cpt::get_instance();
131 138
132 139 // Initialize Campaign Page (default layout seeding + display block helpers).
@@ -148,10 +155,15 @@
148 155 Admin_Ajax::get_instance();
149 156 Pdf_Manager::get_instance();
150 157 Onboarding::get_instance();
151 158 Notices::get_instance();
159 + Notice_Manager::get_instance();
152 160 }
153 161
162 + // Payment-mode toolbar indicator. Loaded outside is_admin() so it also
163 + // appears in the front-end admin bar; it self-gates on capability.
164 + Admin_Bar::get_instance();
165 +
154 166 // Initialize Analytics. Loaded outside is_admin() so usage events
155 167 // fired during REST requests (onboarding, campaign publish) are
156 168 // captured; the class gates its own admin-only behavior internally.
157 169 Analytics::get_instance();
@@ -240,8 +252,12 @@
240 252 register_deactivation_hook(
241 253 SUREDONATION_FILE,
242 254 static function () {
243 255 update_option( '__suredonation_do_redirect', false );
256 +
257 + // Otherwise the webhook reconciliation stays in cron after the
258 + // plugin is gone, firing at a callback that no longer exists.
259 + wp_clear_scheduled_hook( Stripe_Settings::WEBHOOK_SYNC_HOOK );
244 260 }
245 261 );
246 262
247 263 // Ensure donor role exists (for upgrades without re-activation).