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 +36 -0 1.0.0trunk View file →
@@ -8,18 +8,24 @@
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;
15 +use SureDonation\Inc\Admin\Notices;
13 16 use SureDonation\Inc\Ajax\Donation_Handler;
17 +use SureDonation\Inc\Emails\Email_Handler;
14 18 use SureDonation\Inc\Assets\Register as Assets_Register;
15 19 use SureDonation\Inc\Blocks\Register as Blocks_Register;
16 20 use SureDonation\Inc\Campaigns\Campaign_Cpt;
21 +use SureDonation\Inc\Campaigns\Campaign_Meta_Tags;
17 22 use SureDonation\Inc\Campaigns\Campaign_Page;
18 23 use SureDonation\Inc\Database\Register as Database_Register;
19 24 use SureDonation\Inc\Donor_User_Link;
20 25 use SureDonation\Inc\FormEditor\Assets as FormEditor_Assets;
21 26 use SureDonation\Inc\Onboarding;
27 +use SureDonation\Inc\Privacy\Privacy_Data;
22 28 use SureDonation\Inc\Payments\Offline\Offline_Frontend;
23 29 use SureDonation\Inc\Payments\Offline\Offline_Settings;
24 30 use SureDonation\Inc\Payments\PayPal\PayPal_Frontend;
25 31 use SureDonation\Inc\Payments\PayPal\PayPal_Settings;
@@ -26,8 +32,9 @@
26 32 use SureDonation\Inc\Payments\PayPal\PayPal_Webhook_Listener;
27 33 use SureDonation\Inc\Payments\Stripe\Stripe_Frontend;
28 34 use SureDonation\Inc\Payments\Stripe\Stripe_Settings;
29 35 use SureDonation\Inc\Payments\Stripe\Stripe_Webhook;
36 +use SureDonation\Inc\Page_Builders\Page_Builders;
30 37 use SureDonation\Inc\Pdf\Pdf_Manager;
31 38 use SureDonation\Inc\Post_Types\Donation_Form;
32 39 use SureDonation\Inc\Rest_Api;
33 40 use SureDonation\Inc\Shortcodes\Donation_Form as Donation_Form_Shortcode;
@@ -121,8 +128,12 @@
121 128 public function load_plugin() {
122 129 // Initialize database tables.
123 130 Database_Register::init();
124 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 +
125 136 // Initialize Campaign CPT.
126 137 Campaign_Cpt::get_instance();
127 138
128 139 // Initialize Campaign Page (default layout seeding + display block helpers).
@@ -127,8 +138,15 @@
127 138
128 139 // Initialize Campaign Page (default layout seeding + display block helpers).
129 140 Campaign_Page::get_instance();
130 141
142 + // Output Open Graph / Twitter Card tags on singular campaign pages.
143 + Campaign_Meta_Tags::get_instance();
144 +
145 + // Page-builder integrations (Bricks now; each self-gates on the builder).
146 + // Page-builder integrations (Elementor now; each self-gates on the builder).
147 + Page_Builders::get_instance();
148 +
131 149 // Initialize Donation Form CPT.
132 150 Donation_Form::get_instance();
133 151
134 152 // Initialize Admin.
@@ -136,10 +154,16 @@
136 154 Admin::get_instance();
137 155 Admin_Ajax::get_instance();
138 156 Pdf_Manager::get_instance();
139 157 Onboarding::get_instance();
158 + Notices::get_instance();
159 + Notice_Manager::get_instance();
140 160 }
141 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 +
142 166 // Initialize Analytics. Loaded outside is_admin() so usage events
143 167 // fired during REST requests (onboarding, campaign publish) are
144 168 // captured; the class gates its own admin-only behavior internally.
145 169 Analytics::get_instance();
@@ -161,8 +185,11 @@
161 185
162 186 // Initialize shortcodes.
163 187 Donation_Form_Shortcode::get_instance();
164 188
189 + // Register WordPress personal-data export/erase integration.
190 + Privacy_Data::get_instance();
191 +
165 192 // Initialize Stripe payment gateway.
166 193 Stripe_Settings::get_instance();
167 194 Stripe_Webhook::get_instance();
168 195 Stripe_Frontend::get_instance();
@@ -204,8 +231,13 @@
204 231
205 232 // Set redirect flag for onboarding.
206 233 update_option( '__suredonation_do_redirect', true );
207 234
235 + // Record install time for the review-notice grace period.
236 + // add_option is a no-op if the value already exists, so it
237 + // never clobbers a real install time on re-activation.
238 + add_option( 'suredonation_install_time', time() );
239 +
208 240 // Register the donor role.
209 241 if ( ! get_role( 'suredonation_donor' ) ) {
210 242 add_role(
211 243 'suredonation_donor',
@@ -220,8 +252,12 @@
220 252 register_deactivation_hook(
221 253 SUREDONATION_FILE,
222 254 static function () {
223 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 );
224 260 }
225 261 );
226 262
227 263 // Ensure donor role exists (for upgrades without re-activation).