PluginProbe
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) / 1.8.11
Charitable – Donation & Fundraising Platform (Donation Forms, Recurring Donations & Fundraising Campaigns) v1.8.11
1.8.13.1 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 All 212 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.11, at includes/admin/settings/charitable-settings-admin-hooks.php

209 lines 8.1 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 * Maybe add "Licenses" settings tab.
30 *
31 * @see Charitable_Settings::maybe_add_extensions_tab()
32 */
33 add_action( 'charitable_settings_tabs', array( Charitable_Licenses_Settings::get_instance(), 'maybe_add_licenses_tab' ), 1 );
34
35 /**
36 * Maybe add "Extensions" settings tab.
37 *
38 * @see Charitable_Settings::maybe_add_extensions_tab()
39 */
40 add_action( 'charitable_settings_tabs', array( Charitable_Settings::get_instance(), 'maybe_add_extensions_tab' ), 2 );
41
42 /**
43 * Add a hidden "extensions" field.
44 *
45 * @see Charitable_Settings::add_hidden_extensions_setting_field()
46 */
47 add_filter( 'charitable_settings_tab_fields', array( Charitable_Settings::get_instance(), 'add_hidden_extensions_setting_field' ) );
48
49 /**
50 * Save the license when saving settings.
51 *
52 * @see Charitable_Licenses_Settings::save_license()
53 */
54 add_filter( 'charitable_save_settings', array( Charitable_Licenses_Settings::get_instance(), 'save_license' ), 10, 2 );
55
56 /**
57 * Add dynamic settings groups.
58 *
59 * @see Charitable_Gateway_Settings::add_gateway_settings_dynamic_groups()
60 * @see Charitable_Email_Settings::add_email_settings_dynamic_groups()
61 * @see Charitable_Email_Settings::add_licenses_group()
62 */
63 add_filter( 'charitable_dynamic_groups', array( Charitable_Gateway_Settings::get_instance(), 'add_gateway_settings_dynamic_groups' ) );
64 add_filter( 'charitable_dynamic_groups', array( Charitable_Email_Settings::get_instance(), 'add_individual_email_fields' ) );
65 add_filter( 'charitable_dynamic_groups', array( Charitable_Licenses_Settings::get_instance(), 'add_licenses_group' ) );
66
67 /**
68 * Add settings to the General tab.
69 *
70 * @see Charitable_General_Settings::add_general_fields()
71 */
72 add_filter( 'charitable_settings_tab_fields_general', array( Charitable_General_Settings::get_instance(), 'add_general_fields' ), 5 );
73
74 /**
75 * Add settings to the Payment Gateways tab.
76 *
77 * @see Charitable_Gateway_Settings::add_gateway_fields()
78 */
79 add_filter( 'charitable_settings_tab_fields_gateways', array( Charitable_Gateway_Settings::get_instance(), 'add_gateway_fields' ), 5 );
80
81 /**
82 * Add settings to the Email tab.
83 *
84 * @see Charitable_Email_Settings::add_email_fields()
85 */
86 add_filter( 'charitable_settings_tab_fields_emails', array( Charitable_Email_Settings::get_instance(), 'add_email_fields' ), 5 );
87
88 /**
89 * Add settings for the Licenses tab.
90 *
91 * @see Charitable_Licenses_Settings::add_licenses_fields()
92 */
93 add_filter( 'charitable_settings_tab_fields_licenses', array( Charitable_Licenses_Settings::get_instance(), 'add_licenses_fields' ), 5 );
94
95 /**
96 * Add extra button for the Licenses tab.
97 *
98 * @see Charitable_Licenses_Settings::add_license_recheck_button()
99 */
100 add_filter( 'charitable_settings_button_licenses', array( Charitable_Licenses_Settings::get_instance(), 'add_license_recheck_button' ) );
101 add_filter( 'charitable_settings_button_advanced', array( Charitable_Licenses_Settings::get_instance(), 'add_license_recheck_button' ) );
102
103 /**
104 * Add settings to the Privacy tab.
105 *
106 * @see Charitable_Privacy_Settings::add_privacy_fields()
107 */
108 add_filter( 'charitable_settings_tab_fields_privacy', array( Charitable_Privacy_Settings::get_instance(), 'add_privacy_fields' ), 5 );
109
110 /**
111 * Add the Pro settings CTA.
112 *
113 * @see Charitable_Settings::show_settings_cta()
114 */
115 add_action( 'charitable_pro_settings_cta', array( Charitable_Settings::get_instance(), 'show_settings_cta' ), 10, 1 );
116
117
118 /**
119 * Add security settings group.
120 *
121 * This ensures the 'security' group is recognized by the settings API.
122 * Settings will be added via the charitable_settings_tab_fields_security filter.
123 *
124 * @since 1.8.0
125 */
126 add_filter( 'charitable_security_admin_settings_groups', function( $groups ) {
127 if ( ! is_array( $groups ) ) {
128 $groups = array();
129 }
130 if ( ! in_array( 'security', $groups, true ) ) {
131 $groups[] = 'security';
132 }
133 return $groups;
134 } );
135
136 /**
137 * Add settings to the Advanced tab.
138 *
139 * @see Charitable_Advanced_Settings::add_advanced_fields()
140 */
141 add_filter( 'charitable_settings_tab_fields_advanced', array( Charitable_Advanced_Settings::get_instance(), 'add_advanced_fields' ), 5 );
142
143 /**
144 * Preform any tasks when the advanced tab is saved.
145 *
146 * @see Charitable_Advanced_Settings::save_license()
147 */
148 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'clear_expired_options' ), 10, 2 );
149 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'clear_activity_database' ), 10, 2 );
150 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'minification_settings' ), 10, 2 );
151 add_filter( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'confirm_general_settings' ), 10, 2 );
152 add_filter( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'confirm_email_settings' ), 10, 2 );
153 add_filter( 'charitable_save_settings', array( Charitable_Advanced_Settings::get_instance(), 'update_user_tracking_option' ), 10, 2 );
154 add_filter( 'admin_init', array( Charitable_Checklist::get_instance(), 'confirm_email_changes' ), 10 );
155
156 /**
157 * Add extra settings for the individual gateways & emails tabs.
158 *
159 * @see Charitable_Gateway_Settings::add_individual_gateway_fields()
160 * @see Charitable_Email_Settings::add_individual_email_fields()
161 */
162 add_filter( 'charitable_settings_tab_fields', array( Charitable_Gateway_Settings::get_instance(), 'add_individual_gateway_fields' ), 5 );
163 add_filter( 'charitable_settings_tab_fields', array( Charitable_Email_Settings::get_instance(), 'add_individual_email_fields' ), 5 );
164
165 /**
166 * Add Addons Directory
167 *
168 * @see Charitable_Advanced_Settings::add_advanced_fields()
169 */
170 add_action( 'admin_init', array( Charitable_Addons_Directory::get_instance(), 'init' ), 5 );
171
172 /**
173 * Checklist.
174 *
175 * @see Charitable_Checklist::maybe_redirect_to_checklist_after_event()
176 */
177 add_action( 'charitable_save_settings', array( Charitable_Checklist::get_instance(), 'maybe_redirect_to_checklist_after_event' ), 99, 2 );
178 add_filter( 'admin_body_class', array( Charitable_Checklist::get_instance(), 'add_body_class' ), 10 );
179 add_filter( 'charitable_submenu_pages', array( Charitable_Checklist::get_instance(), 'add_checklist_to_menu' ), 2 );
180 add_action( 'admin_init', array( Charitable_Checklist::get_instance(), 'maybe_complete_checklist' ), 10 );
181
182 /**
183 * Maybe activate the Pro plugin after onboarding.
184 *
185 * @see Charitable_Checklist::maybe_activate_pro_after_onboarding()
186 */
187 add_action( 'admin_init', array( Charitable_Checklist::get_instance(), 'maybe_activate_pro_after_onboarding' ), 10 );
188
189 /**
190 * Hook the sanitization function for the privacy_policy field.
191 *
192 * @see Charitable_Privacy_Settings::sanitize_privacy_policy_field()
193 */
194 add_filter( 'charitable_sanitize_value_privacy_privacy_policy', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_privacy_policy_field' ), 10, 3 );
195
196 /**
197 * Hook the sanitization function for the terms_conditions field.
198 *
199 * @see Charitable_Privacy_Settings::sanitize_terms_conditions_field()
200 */
201 add_filter( 'charitable_sanitize_value_privacy_terms_conditions', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_terms_conditions_field' ), 10, 3 );
202
203 /**
204 * Hook the sanitization function for the contact_consent_label field.
205 *
206 * @see Charitable_Privacy_Settings::sanitize_contact_consent_label_field()
207 */
208 add_filter( 'charitable_sanitize_value_privacy_contact_consent_label', array( Charitable_Privacy_Settings::get_instance(), 'sanitize_contact_consent_label_field' ), 10, 3 );
209