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 +22 -0 1.2.0 → 1.6.1 View file →
@@ -8,11 +8,15 @@
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;
18 +use SureDonation\Inc\Emails\Email_Reports;
15 19 use SureDonation\Inc\Assets\Register as Assets_Register;
16 20 use SureDonation\Inc\Blocks\Register as Blocks_Register;
17 21 use SureDonation\Inc\Campaigns\Campaign_Cpt;
18 22 use SureDonation\Inc\Campaigns\Campaign_Meta_Tags;
@@ -125,8 +129,12 @@
125 129 public function load_plugin() {
126 130 // Initialize database tables.
127 131 Database_Register::init();
128 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 +
129 137 // Initialize Campaign CPT.
130 138 Campaign_Cpt::get_instance();
131 139
132 140 // Initialize Campaign Page (default layout seeding + display block helpers).
@@ -148,10 +156,15 @@
148 156 Admin_Ajax::get_instance();
149 157 Pdf_Manager::get_instance();
150 158 Onboarding::get_instance();
151 159 Notices::get_instance();
160 + Notice_Manager::get_instance();
152 161 }
153 162
163 + // Payment-mode toolbar indicator. Loaded outside is_admin() so it also
164 + // appears in the front-end admin bar; it self-gates on capability.
165 + Admin_Bar::get_instance();
166 +
154 167 // Initialize Analytics. Loaded outside is_admin() so usage events
155 168 // fired during REST requests (onboarding, campaign publish) are
156 169 // captured; the class gates its own admin-only behavior internally.
157 170 Analytics::get_instance();
@@ -176,8 +189,11 @@
176 189
177 190 // Register WordPress personal-data export/erase integration.
178 191 Privacy_Data::get_instance();
179 192
193 + // Weekly donation digest: cron callback + schedule self-heal.
194 + Email_Reports::get_instance();
195 +
180 196 // Initialize Stripe payment gateway.
181 197 Stripe_Settings::get_instance();
182 198 Stripe_Webhook::get_instance();
183 199 Stripe_Frontend::get_instance();
@@ -240,8 +256,14 @@
240 256 register_deactivation_hook(
241 257 SUREDONATION_FILE,
242 258 static function () {
243 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 );
244 266 }
245 267 );
246 268
247 269 // Ensure donor role exists (for upgrades without re-activation).