PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.8.13
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.8.13
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 / settings / charitable-settings-admin-hooks.php

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

216 lines 8.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Charitable Settings Hooks.
4 *
5 * Action/filter hooks used for Charitable Settings API.
6 *
7 * @package Charitable/Functions/Admin
8 * @author David Bisset
9 * @copyright Copyright (c) 2023, WP Charitable LLC
10 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
11 * @since 1.2.0
12 * @version 1.8.4 - added user tracking option.
13 * @version 1.8.6.2 - added sanitization functions for privacy policy, terms and conditions, and contact consent label fields.
14 */
15
16 // Exit if accessed directly.
17 if ( ! defined( 'ABSPATH' ) ) {
18 exit;
19 }
20
21 /**
22 * Register Charitable settings.
23 *
24 * @see Charitable_Settings::register_settings()
25 */
26 add_action( 'admin_init', array( Charitable_Settings::get_instance(), 'register_settings' ) );
27
28 /**
29 * Redirect to the default Marketing sub-tab (newsletters) when no sub_tab is supplied.
30 *
31 * @see Charitable_Settings::marketing_sub_tab_default()
32 */
33 add_action( 'admin_init', array( Charitable_Settings::get_instance(), 'marketing_sub_tab_default' ), 5 );
34
35 /**
36 * Maybe add "Licenses" settings tab.
37 *
38 * @see Charitable_Settings::maybe_add_extensions_tab()
39 */
40 add_action( 'charitable_settings_tabs', array( Charitable_Licenses_Settings::get_instance(), 'maybe_add_licenses_tab' ), 1 );
41
42 /**
43 * Maybe add "Extensions" settings tab.
44 *
45 * @see Charitable_Settings::maybe_add_extensions_tab()
46 */
47 add_action( 'charitable_settings_tabs', array( Charitable_Settings::get_instance(), 'maybe_add_extensions_tab' ), 2 );
48
49 /**
50 * Add a hidden "extensions" field.
51 *
52 * @see Charitable_Settings::add_hidden_extensions_setting_field()
53 */
54 add_filter( 'charitable_settings_tab_fields', array( Charitable_Settings::get_instance(), 'add_hidden_extensions_setting_field' ) );
55
56 /**
57 * Save the license when saving settings.
58 *
59 * @see Charitable_Licenses_Settings::save_license()
60 */
61 add_filter( 'charitable_save_settings', array( Charitable_Licenses_Settings::get_instance(), 'save_license' ), 10, 2 );
62
63 /**
64 * Add dynamic settings groups.
65 *
66 * @see Charitable_Gateway_Settings::add_gateway_settings_dynamic_groups()
67 * @see Charitable_Email_Settings::add_email_settings_dynamic_groups()
68 * @see Charitable_Email_Settings::add_licenses_group()
69 */
70 add_filter( 'charitable_dynamic_groups', array( Charitable_Gateway_Settings::get_instance(), 'add_gateway_settings_dynamic_groups' ) );
71 add_filter( 'charitable_dynamic_groups', array( Charitable_Email_Settings::get_instance(), 'add_individual_email_fields' ) );
72 add_filter( 'charitable_dynamic_groups', array( Charitable_Licenses_Settings::get_instance(), 'add_licenses_group' ) );
73
74 /**
75 * Add settings to the General tab.
76 *
77 * @see Charitable_General_Settings::add_general_fields()
78 */
79 add_filter( 'charitable_settings_tab_fields_general', array( Charitable_General_Settings::get_instance(), 'add_general_fields' ), 5 );
80
81 /**
82 * Add settings to the Payment Gateways tab.
83 *
84 * @see Charitable_Gateway_Settings::add_gateway_fields()
85 */
86 add_filter( 'charitable_settings_tab_fields_gateways', array( Charitable_Gateway_Settings::get_instance(), 'add_gateway_fields' ), 5 );
87
88 /**
89 * Add settings to the Email tab.
90 *
91 * @see Charitable_Email_Settings::add_email_fields()
92 */
93 add_filter( 'charitable_settings_tab_fields_emails', array( Charitable_Email_Settings::get_instance(), 'add_email_fields' ), 5 );
94
95 /**
96 * Add settings for the Licenses tab.
97 *
98 * @see Charitable_Licenses_Settings::add_licenses_fields()
99 */
100 add_filter( 'charitable_settings_tab_fields_licenses', array( Charitable_Licenses_Settings::get_instance(), 'add_licenses_fields' ), 5 );
101
102 /**
103 * Add extra button for the Licenses tab.
104 *
105 * @see Charitable_Licenses_Settings::add_license_recheck_button()
106 */
107 add_filter( 'charitable_settings_button_licenses', array( Charitable_Licenses_Settings::get_instance(), 'add_license_recheck_button' ) );
108 add_filter( 'charitable_settings_button_advanced', array( Charitable_Licenses_Settings::get_instance(), 'add_license_recheck_button' ) );
109
110 /**
111 * Add settings to the Privacy tab.
112 *
113 * @see Charitable_Privacy_Settings::add_privacy_fields()
114 */
115 add_filter( 'charitable_settings_tab_fields_privacy', array( Charitable_Privacy_Settings::get_instance(), 'add_privacy_fields' ), 5 );
116
117 /**
118 * Add the Pro settings CTA.
119 *
120 * @see Charitable_Settings::show_settings_cta()
121 */
122 add_action( 'charitable_pro_settings_cta', array( Charitable_Settings::get_instance(), 'show_settings_cta' ), 10, 1 );
123
124
125 /**
126 * Add security settings group.
127 *
128 * This ensures the 'security' group is recognized by the settings API.
129 * Settings will be added via the charitable_settings_tab_fields_security filter.
130 *
131 * @since 1.8.0
132 */
133 add_filter( 'charitable_security_admin_settings_groups', function( $groups ) {
134 if ( ! is_array( $groups ) ) {
135 $groups = array();
136 }
137 if ( ! in_array( 'security', $groups, true ) ) {
138 $groups[] = 'security';
139 }
140 return $groups;
141 } );
142
143 /**
144 * Add settings to the Advanced tab.
145 *
146 * @see Charitable_Advanced_Settings::add_advanced_fields()
147 */
148 add_filter( 'charitable_settings_tab_fields_advanced', array( Charitable_Advanced_Settings::get_instance(), 'add_advanced_fields' ), 5 );
149
150 /**
151 * Preform any tasks when the advanced tab is saved.
152 *
153 * @see Charitable_Advanced_Settings::save_license()
154 */
155 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'clear_expired_options' ), 10, 2 );
156 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'clear_activity_database' ), 10, 2 );
157 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'minification_settings' ), 10, 2 );
158 add_filter( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'confirm_general_settings' ), 10, 2 );
159 add_filter( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'confirm_email_settings' ), 10, 2 );
160 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'update_user_tracking_option' ), 10, 2 );
161 add_filter( 'admin_init', array( Charitable_Checklist::get_instance(), 'confirm_email_changes' ), 10 );
162
163 /**
164 * Add extra settings for the individual gateways & emails tabs.
165 *
166 * @see Charitable_Gateway_Settings::add_individual_gateway_fields()
167 * @see Charitable_Email_Settings::add_individual_email_fields()
168 */
169 add_filter( 'charitable_settings_tab_fields', array( Charitable_Gateway_Settings::get_instance(), 'add_individual_gateway_fields' ), 5 );
170 add_filter( 'charitable_settings_tab_fields', array( Charitable_Email_Settings::get_instance(), 'add_individual_email_fields' ), 5 );
171
172 /**
173 * Add Addons Directory
174 *
175 * @see Charitable_Advanced_Settings::add_advanced_fields()
176 */
177 add_action( 'admin_init', array( Charitable_Addons_Directory::get_instance(), 'init' ), 5 );
178
179 /**
180 * Checklist.
181 *
182 * @see Charitable_Checklist::maybe_redirect_to_checklist_after_event()
183 */
184 add_action( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'maybe_redirect_to_checklist_after_event' ), 99, 2 );
185 add_filter( 'admin_body_class', array( Charitable_Checklist::get_instance(), 'add_body_class' ), 10 );
186 add_filter( 'charitable_submenu_pages', array( Charitable_Checklist::get_instance(), 'add_checklist_to_menu' ), 2 );
187 add_action( 'admin_init', array( Charitable_Checklist::get_instance(), 'maybe_complete_checklist' ), 10 );
188
189 /**
190 * Maybe activate the Pro plugin after onboarding.
191 *
192 * @see Charitable_Checklist::maybe_activate_pro_after_onboarding()
193 */
194 add_action( 'admin_init', array( Charitable_Checklist::get_instance(), 'maybe_activate_pro_after_onboarding' ), 10 );
195
196 /**
197 * Hook the sanitization function for the privacy_policy field.
198 *
199 * @see Charitable_Privacy_Settings::sanitize_privacy_policy_field()
200 */
201 add_filter( 'charitable_sanitize_value_privacy_privacy_policy', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_privacy_policy_field' ), 10, 3 );
202
203 /**
204 * Hook the sanitization function for the terms_conditions field.
205 *
206 * @see Charitable_Privacy_Settings::sanitize_terms_conditions_field()
207 */
208 add_filter( 'charitable_sanitize_value_privacy_terms_conditions', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_terms_conditions_field' ), 10, 3 );
209
210 /**
211 * Hook the sanitization function for the contact_consent_label field.
212 *
213 * @see Charitable_Privacy_Settings::sanitize_contact_consent_label_field()
214 */
215 add_filter( 'charitable_sanitize_value_privacy_contact_consent_label', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_contact_consent_label_field' ), 10, 3 );
216