PluginProbe
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management / 1.6.1
SureDonation – Donation Forms, Fundraising Campaigns & Donor Management v1.6.1
1.6.1 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 +15 -0 1.3.0 → 1.6.1 View file →
@@ -13,8 +13,10 @@
13 13 use SureDonation\Inc\Admin\Analytics;
14 14 use SureDonation\Inc\Admin\Notice_Manager;
15 15 use SureDonation\Inc\Admin\Notices;
16 16 use SureDonation\Inc\Ajax\Donation_Handler;
17 +use SureDonation\Inc\Emails\Email_Handler;
18 +use SureDonation\Inc\Emails\Email_Reports;
17 19 use SureDonation\Inc\Assets\Register as Assets_Register;
18 20 use SureDonation\Inc\Blocks\Register as Blocks_Register;
19 21 use SureDonation\Inc\Campaigns\Campaign_Cpt;
20 22 use SureDonation\Inc\Campaigns\Campaign_Meta_Tags;
@@ -127,8 +129,12 @@
127 129 public function load_plugin() {
128 130 // Initialize database tables.
129 131 Database_Register::init();
130 132
133 + // Back-fill notification identities once, in admin context only — it
134 + // writes, and the path it repairs runs during donor payment requests.
135 + add_action( 'admin_init', [ Email_Handler::class, 'backfill_notification_keys' ] );
136 +
131 137 // Initialize Campaign CPT.
132 138 Campaign_Cpt::get_instance();
133 139
134 140 // Initialize Campaign Page (default layout seeding + display block helpers).
@@ -183,8 +189,11 @@
183 189
184 190 // Register WordPress personal-data export/erase integration.
185 191 Privacy_Data::get_instance();
186 192
193 + // Weekly donation digest: cron callback + schedule self-heal.
194 + Email_Reports::get_instance();
195 +
187 196 // Initialize Stripe payment gateway.
188 197 Stripe_Settings::get_instance();
189 198 Stripe_Webhook::get_instance();
190 199 Stripe_Frontend::get_instance();
@@ -247,8 +256,14 @@
247 256 register_deactivation_hook(
248 257 SUREDONATION_FILE,
249 258 static function () {
250 259 update_option( '__suredonation_do_redirect', false );
260 +
261 + // Otherwise the webhook reconciliation stays in cron after the
262 + // plugin is gone, firing at a callback that no longer exists.
263 + wp_clear_scheduled_hook( Stripe_Settings::WEBHOOK_SYNC_HOOK );
264 + wp_clear_scheduled_hook( Email_Reports::CRON_HOOK );
265 + wp_clear_scheduled_hook( PayPal_Settings::RELAY_REGISTER_HOOK );
251 266 }
252 267 );
253 268
254 269 // Ensure donor role exists (for upgrades without re-activation).