PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.8.11.3
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.8.11.3
1.8.13 1.8.12.3 1.8.12.2 1.8.12.1 1.8.12 1.8.11.3 1.8.11.2 1.8.11.1 1.8.11 1.6.6 1.6.60 1.6.7 1.6.8 1.6.9 1.7.0 1.7.0.1 1.7.0.11 1.7.0.12 1.7.0.14 1.7.0.2 1.7.0.3 1.7.0.5 1.7.0.6 1.7.0.7 1.7.0.9 All 211 releases
charitable / includes / admin / charitable-admin-hooks.php

charitable-admin-hooks.php in Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) 1.8.11.3, at includes/admin/charitable-admin-hooks.php

304 lines 11.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Charitable Admin Hooks.
4 *
5 * @package Charitable/Functions/Admin
6 * @author David Bisset
7 * @copyright Copyright (c) 2023, WP Charitable LLC
8 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9 * @since 1.3.0
10 * @version 1.6.40
11 */
12
13 // Exit if accessed directly.
14 if ( ! defined( 'ABSPATH' ) ) {
15 exit;
16 }
17
18 /**
19 * Enqueue Charitable's admin-area scripts & styles.
20 *
21 * @see Charitable_Admin::admin_enqueue_scripts()
22 */
23 add_action( 'admin_enqueue_scripts', array( Charitable_Admin::get_instance(), 'admin_enqueue_scripts' ) );
24
25 /**
26 * Set custom admin body classes.
27 *
28 * @see Charitable_Admin::set_body_class()
29 */
30 add_filter( 'admin_body_class', array( Charitable_Admin::get_instance(), 'set_body_class' ) );
31 add_filter( 'admin_body_class', array( Charitable_User_Onboarding::get_instance(), 'add_body_class' ) );
32
33 /**
34 * Do an admin action.
35 *
36 * @see Charitable_Admin::maybe_do_admin_action()
37 */
38 add_action( 'admin_init', array( Charitable_Admin::get_instance(), 'maybe_do_admin_action' ), 999 );
39
40 /**
41 * Check if there are any notices to be displayed in the admin.
42 *
43 * @see Charitable_Admin::add_notices()
44 */
45 add_action( 'admin_notices', array( Charitable_Admin::get_instance(), 'add_notices' ) );
46
47 /**
48 * Dismiss a notice.
49 *
50 * @see Charitable_Admin::dismiss_notice()
51 */
52 add_action( 'wp_ajax_charitable_dismiss_notice', array( Charitable_Admin::get_instance(), 'dismiss_notice' ) );
53
54 /**
55 * Dismiss a banner.
56 *
57 * @see Charitable_Admin::dismiss_banner()
58 */
59 add_action( 'wp_ajax_charitable_dismiss_admin_banner', array( Charitable_Admin::get_instance(), 'dismiss_banner' ) );
60
61 /**
62 * Dismiss a list banner.
63 *
64 * @see Charitable_Admin::dismiss_banner()
65 */
66 add_action( 'wp_ajax_charitable_dismiss_admin_list_banner', array( Charitable_Admin::get_instance(), 'dismiss_list_banner' ) );
67
68
69 /**
70 * Dismiss a five star rating request.
71 *
72 * @see Charitable_Admin::dismiss_five_star_rating()
73 */
74 add_action( 'wp_ajax_charitable_dismiss_admin_five_star_rating', array( Charitable_Admin::get_instance(), 'dismiss_five_star_rating' ) );
75
76 /**
77 * Add a generic body class to donations page
78 *
79 * @see Charitable_Admin::add_admin_body_class()
80 */
81 add_filter( 'admin_body_class', array( Charitable_Admin::get_instance(), 'add_admin_body_class' ) );
82
83 /**
84 * Remove jQuery UI styles added by Ninja Forms.
85 *
86 * @see Charitable_Admin::remove_jquery_ui_styles_nf()
87 */
88 // add_filter( 'media_buttons_context', array( Charitable_Admin::get_instance(), 'remove_jquery_ui_styles_nf' ), 20 );
89
90 /**
91 * Add action links to the Charitable plugin block.
92 *
93 * @see Charitable_Admin::add_plugin_action_links()
94 */
95 add_filter( 'plugin_action_links_' . plugin_basename( charitable()->get_path() ), array( Charitable_Admin::get_instance(), 'add_plugin_action_links' ) );
96
97 /**
98 * Add a link to the settings page from the Charitable plugin block.
99 *
100 * @see Charitable_Admin::add_plugin_row_meta()
101 */
102 add_filter( 'plugin_row_meta', array( Charitable_Admin::get_instance(), 'add_plugin_row_meta' ), 10, 2 );
103
104 /**
105 * Export handlers.
106 *
107 * @see Charitable_Admin::export_donations()
108 * @see Charitable_Admin::export_campaigns()
109 */
110 add_action( 'charitable_export_donations', array( Charitable_Admin::get_instance(), 'export_donations' ) );
111 add_action( 'charitable_export_campaigns', array( Charitable_Admin::get_instance(), 'export_campaigns' ) );
112
113 /**
114 * Add Charitable menu.
115 *
116 * @see Charitable_Admin_Pages::add_menu()
117 */
118 add_action( 'admin_menu', array( Charitable_Admin_Pages::get_instance(), 'add_menu' ), 5 );
119 add_action( 'parent_file', array( Charitable_Admin_Pages::get_instance(), 'menu_highlight' ), 10 );
120
121 /**
122 * Redirect to welcome page after install.
123 *
124 * @see Charitable_Admin_Pages::redirect_to_welcome()
125 */
126 add_action( 'charitable_install', array( Charitable_Admin_Pages::get_instance(), 'setup_welcome_redirect' ), 100 );
127
128 /**
129 * Stash any notices that haven't been displayed.
130 *
131 * @see Charitable_Admin_Notices::shutdown()
132 */
133 add_action( 'shutdown', array( charitable_get_admin_notices(), 'shutdown' ) );
134
135 /**
136 * Stash any notices that haven't been displayed.
137 *
138 * @see Charitable_Admin_Support::maybe_do_charitable_support_query()
139 */
140 add_action( 'admin_init', array( Charitable_Admin_Support::get_instance(), 'maybe_do_charitable_support_query' ), 100 );
141
142 /**
143 * Enqueue Charitable's campaign builder related scripts & styles.
144 *
145 * @see Charitable_Campaign_Builder::add_page()
146 */
147 add_action( 'admin_menu', array( Charitable_Campaign_Builder::get_instance(), 'add_page' ), 5 );
148
149 /**
150 * Enqueue Charitable's campaign builder related scripts & styles.
151 *
152 * @see Charitable_Campaign_Builder::init()
153 */
154 add_action( 'admin_init', array( Charitable_Campaign_Builder::get_instance(), 'init' ), 100 );
155
156 /**
157 * Enqueue Charitable's campaign builder embed related scripts & styles.
158 *
159 * @see Charitable_Campaign_Embed_Wizard::init()
160 */
161 add_action( 'admin_init', array( Charitable_Campaign_Embed_Wizard::get_instance(), 'init' ), 100 );
162
163 /**
164 * Enqueue Charitable's block releated scripts & styles.
165 *
166 * @see Charitable_Admin_Blocks::admin_enqueue_scripts()
167 */
168 add_action( 'admin_enqueue_scripts', array( Charitable_Admin_Blocks::get_instance(), 'admin_enqueue_scripts' ) );
169
170 /**
171 * Enqueue Charitable's campaign builder congrats wizard related scripts & styles.
172 *
173 * @see Charitable_Campaign_Congrats_Wizard::init()
174 */
175 add_action( 'admin_init', array( Charitable_Campaign_Congrats_Wizard::get_instance(), 'init' ), 120 );
176
177 /**
178 * Dismiss dashboard notices.
179 *
180 * @see Charitable_Admin::dismiss_dashboard_notice()
181 */
182 add_action( 'wp_ajax_charitable_dismiss_dashboard_notice', array( Charitable_Admin::get_instance(), 'dismiss_dashboard_notices' ) );
183
184 /**
185 * Dismiss guide tool related notices.
186 *
187 * @see Charitable_Admin::dismiss_growth_tools_notices()
188 */
189 add_action( 'wp_ajax_charitable_dismiss_growth_tools_dashboard_notice', array( Charitable_Admin::get_instance(), 'dismiss_growth_tools_notices' ) );
190
191 /**
192 * Do an admin action.
193 *
194 * @see Charitable_Admin::maybe_do_admin_action()
195 */
196 add_action( 'plugins_loaded', array( Charitable_Admin_Getting_Started::get_instance(), 'init' ), 999 );
197
198 /**
199 * Insert HTML into the footer that can be used later by onboarding.
200 *
201 * @see Charitable_Campaign_Builder::render_onboarding_html()
202 */
203 add_action( 'admin_footer', array( Charitable_Campaign_Builder::get_instance(), 'render_onboarding_html' ), 5 );
204
205 /**
206 * Save an onboarding options via AJAX.
207 *
208 * @see Charitable_Campaign_Builder::save_onboarding_option_ajax()
209 */
210 add_action( 'wp_ajax_charitable_onboarding_save_option', array( Charitable_Campaign_Builder::get_instance(), 'save_onboarding_option_ajax' ), 5 );
211 add_action( 'wp_ajax_charitable_onboarding_tour_save_option', array( Charitable_Campaign_Builder::get_instance(), 'save_tour_option_ajax' ), 5 );
212 add_action( 'wp_ajax_charitable_onboarding_checklist_save_option', array( Charitable_Checklist::get_instance(), 'save_checklist_option_ajax' ), 5 );
213
214 /**
215 * Checklist: check to mark step as completed.
216 *
217 * @see Charitable_Checklist::check_step_first_donation()
218 */
219 add_action( 'admin_init', array( Charitable_Checklist::get_instance(), 'maybe_redirect_to_next_step' ), 999 );
220
221 /**
222 * Plugin notifications, added mostly in 1.8.3.
223 *
224 * @see Charitable_Notifications::add_notifications_to_menu()
225 * @see Charitable_Notifications::dismiss()
226 * @see Charitable_Notifications::dismiss_multiple()
227 * @see Charitable_Notifications::maybe_redirect_from_notifications()
228 */
229 add_filter( 'admin_init', array( Charitable_Notifications::get_instance(), 'init' ), 9 );
230 add_filter( 'charitable_submenu_pages', array( Charitable_Notifications::get_instance(), 'add_notifications_to_menu' ), 2 );
231 add_filter( 'wp_ajax_charitable_notification_dismiss', array( Charitable_Notifications::get_instance(), 'dismiss' ), 10 );
232 add_filter( 'wp_ajax_charitable_notification_dismiss_multiple', array( Charitable_Notifications::get_instance(), 'dismiss_multiple' ), 10 );
233 add_action( 'admin_init', array( Charitable_Notifications::get_instance(), 'maybe_redirect_from_notifications' ), 10 );
234
235 /**
236 * Event Driven notifications and items, added mostly in 1.8.3.
237 *
238 * @see Charitable_EventDriven::init()
239 * @see Charitable_EventDriven::update_events()
240 */
241 add_action( 'plugins_loaded', array( Charitable_EventDriven::get_instance(), 'init' ), 999 );
242 add_filter( 'charitable_admin_notifications_update_data', array( Charitable_EventDriven::get_instance(), 'update_events' ), 9 );
243
244 /**
245 * License checks.
246 *
247 * @see Charitable_Admin_Pages::add_menu()
248 */
249 add_action( 'admin_init', array( Charitable_Licenses_Settings::get_instance(), 'maybe_check_if_license_expired' ), 9999 );
250 add_action( 'admin_init', array( Charitable_Licenses_Settings::get_instance(), 'maybe_check_if_license_expiring' ), 9998 );
251 add_action( 'admin_init', array( Charitable_Licenses_Settings::get_instance(), 'activate_pro_plugin_after_license_activation' ), 1 );
252
253 /**
254 * Connect for upgrade.wpcharitable.com.
255 *
256 * @see Charitable_Admin_Connect::settings_enqueues()
257 * @see Charitable_Admin_Connect::generate_url()
258 * @see Charitable_Admin_Connect::process()
259 */
260 add_action( 'after_charitable_admin_enqueue_scripts', array( Charitable_Admin_Connect::get_instance(), 'settings_enqueues' ), 10, 3 );
261 add_action( 'wp_ajax_charitable_connect_url', array( Charitable_Admin_Connect::get_instance(), 'generate_url' ) );
262 add_filter( 'charitable_license_verify_success_data', array( Charitable_Admin_Connect::get_instance(), 'add_upgrade_url_to_license_response' ), 10, 2 );
263 add_action( 'wp_ajax_nopriv_charitable_connect_process', array( Charitable_Admin_Connect::get_instance(), 'process' ) );
264 add_action( 'wp_ajax_charitable_download_pro', array( Charitable_Admin_Connect::get_instance(), 'download_pro_plugin' ) );
265 add_action( 'wp_ajax_charitable_activate_pro', array( Charitable_Admin_Connect::get_instance(), 'activate_pro_plugin' ) );
266
267 /**
268 * Initialize splash data.
269 *
270 * @see Charitable_Admin_Splash::initialize_splash_data()
271 */
272 add_action( 'admin_init', [ Charitable_Admin_Splash::get_instance(), 'initialize_splash_data' ], 15 );
273 add_action( 'admin_enqueue_scripts', [ Charitable_Admin_Splash::get_instance(), 'admin_enqueue_scripts' ] );
274 add_action( 'admin_footer', [ Charitable_Admin_Splash::get_instance(), 'admin_footer' ] );
275
276 /**
277 * Show a notice if GiveWP is detected.
278 *
279 * @see Charitable_GiveWP_Notice::get_dashboard_notices()
280 */
281 add_filter( 'charitable_admin_dashboard_init_end', array( Charitable_GiveWP_Notice::get_instance(), 'get_dashboard_notices' ), 10 );
282
283 /**
284 * Display Charitable banners on external (non-Charitable) admin screens.
285 *
286 * @see Charitable_External_Banner
287 */
288 Charitable_External_Banner::get_instance();
289
290 /**
291 * Dashboard AJAX handlers.
292 *
293 * @see Charitable_Dashboard::ajax_activate_addon()
294 * @see Charitable_Dashboard::ajax_approve_comment()
295 * @see Charitable_Dashboard::ajax_delete_comment()
296 * @see Charitable_Dashboard::ajax_install_charitable_addon()
297 * @see Charitable_Dashboard::ajax_activate_charitable_addon()
298 */
299 add_action( 'wp_ajax_charitable_activate_addon', array( Charitable_Dashboard::get_instance(), 'ajax_activate_addon' ) );
300 add_action( 'wp_ajax_charitable_approve_comment', array( Charitable_Dashboard::get_instance(), 'ajax_approve_comment' ) );
301 add_action( 'wp_ajax_charitable_delete_comment', array( Charitable_Dashboard::get_instance(), 'ajax_delete_comment' ) );
302 add_action( 'wp_ajax_charitable_install_charitable_addon', array( Charitable_Dashboard::get_instance(), 'ajax_install_charitable_addon' ) );
303 add_action( 'wp_ajax_charitable_activate_charitable_addon', array( Charitable_Dashboard::get_instance(), 'ajax_activate_charitable_addon' ) );
304