PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.0.2
GiveWP – Donation Plugin and Fundraising Platform v2.0.2
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / includes / admin / admin-filters.php
give / includes / admin Last commit date
donors 8 years ago emails 8 years ago forms 8 years ago payments 8 years ago reports 8 years ago settings 8 years ago shortcodes 8 years ago tools 8 years ago upgrades 8 years ago views 8 years ago EDD_SL_Plugin_Updater.php 9 years ago abstract-admin-settings-page.php 8 years ago add-ons.php 8 years ago admin-actions.php 8 years ago admin-filters.php 8 years ago admin-footer.php 9 years ago admin-pages.php 8 years ago class-addon-activation-banner.php 8 years ago class-admin-settings.php 8 years ago class-api-keys-table.php 9 years ago class-blank-slate.php 8 years ago class-give-settings.php 8 years ago class-i18n-module.php 8 years ago dashboard-widgets.php 8 years ago give-metabox-functions.php 8 years ago plugins.php 8 years ago welcome.php 8 years ago
admin-filters.php
258 lines
1 <?php
2 /**
3 * Admin Filters
4 *
5 * @package Give
6 * @subpackage Admin/Filters
7 * @copyright Copyright (c) 2016, WordImpress
8 * @license https://opensource.org/licenses/gpl-license GNU Public License
9 * @since 1.0
10 */
11
12 // Exit if accessed directly.
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 /**
18 * Sanitize number of decimals setting field.
19 *
20 * 1. User can only set absolute integer value as number of decimals.
21 * 2. number_decimals setting will be zero if no decimal separator defined
22 *
23 * @since 1.8
24 * @used-by Give_Plugin_Settings::give_settings()
25 *
26 * @param string $value
27 *
28 * @return mixed
29 */
30 function __give_sanitize_number_decimals_setting_field( $value ) {
31 $value_changed = false;
32 $old_value = $value;
33
34 if ( isset( $_POST['decimal_separator'] ) ) {
35 $value = ! empty( $_POST['decimal_separator'] ) ? $value : 0;
36 $value_changed = true;
37 }
38
39 if ( $value_changed && ( $old_value != $value ) ) {
40 Give_Admin_Settings::add_error( 'give-number-decimal', __( 'The \'Number of Decimals\' option has been automatically set to zero because the \'Decimal Separator\' is not set.', 'give' ) );
41 }
42
43 $value = absint( $value );
44
45 if( 6 <= $value ) {
46 $value = 5;
47 Give_Admin_Settings::add_error( 'give-number-decimal', __( 'The \'Number of Decimals\' option has been automatically set to 5 because you entered a number higher than the maximum allowed.', 'give' ) );
48 }
49
50 return absint( $value );
51 }
52
53 add_filter( 'give_admin_settings_sanitize_option_number_decimals', '__give_sanitize_number_decimals_setting_field', 10 );
54
55
56 /**
57 * Sanitize number of decimals setting field.
58 *
59 * 1. User can only set absolute integer value as number of decimals.
60 * 2. number_decimals setting will be zero if no decimal separator defined
61 *
62 * @since 1.8
63 * @used-by Give_Plugin_Settings::give_settings()
64 *
65 * @param string $value
66 *
67 * @return mixed
68 */
69 function __give_validate_decimal_separator_setting_field( $value ) {
70 $thousand_separator = give_clean( $_POST['thousands_separator'] );
71 $decimal_separator = give_clean( $_POST['decimal_separator'] );
72
73 if ( $decimal_separator === $thousand_separator ) {
74 $value = '';
75 $_POST['number_decimals'] = 0;
76 Give_Admin_Settings::add_error( 'give-decimal-separator', __( 'The \'Decimal Separator\' option has automatically been set to empty because it can not be equal to the \'Thousand Separator\'', 'give' ) );
77 }
78
79 return $value;
80 }
81
82 add_filter( 'give_admin_settings_sanitize_option_decimal_separator', '__give_validate_decimal_separator_setting_field', 10 );
83
84 /**
85 * Change $delimiter text to symbol.
86 *
87 * @since 1.8.14
88 *
89 * @param string $delimiter
90 *
91 * @return string $delimiter.
92 */
93 function __give_import_delimiter_set_callback( $delimiter ) {
94 $delimite_type = array(
95 'csv' => ",",
96 'tab-separated-values' => "\t",
97 );
98
99 return ( array_key_exists( $delimiter, $delimite_type ) ? $delimite_type[ $delimiter ] : "," );
100 }
101
102 add_filter( 'give_import_delimiter_set', '__give_import_delimiter_set_callback', 10 );
103
104 /**
105 * Give unset the page id from the core setting data from the json files.
106 *
107 * @since 1.8.17
108 *
109 * @param array $json_to_array Data from json file
110 * @param string $type
111 *
112 * @return array $json_to_array
113 */
114 function give_import_core_settings_merge_pages( $json_to_array, $type ) {
115 if ( 'merge' === $type ) {
116 unset( $json_to_array['success_page'] );
117 unset( $json_to_array['failure_page'] );
118 unset( $json_to_array['history_page'] );
119 }
120
121 return $json_to_array;
122 }
123
124 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_pages', 11, 2 );
125
126 /**
127 * Give check the image size from the core setting data from the json files.
128 *
129 * @since 1.8.17
130 *
131 * @param $json_to_array
132 * @param string $type
133 *
134 * @return array $json_to_array
135 */
136 function give_import_core_settings_merge_image_size( $json_to_array, $type ) {
137 if ( 'merge' === $type ) {
138 // Featured image sizes import under Display Options > Post Types > Featured Image Size.
139 if ( 'enabled' === $json_to_array['form_featured_img'] ) {
140 $images_sizes = get_intermediate_image_sizes();
141
142 if ( ! in_array( $json_to_array['featured_image_size'], $images_sizes ) ) {
143 unset( $json_to_array['featured_image_size'] );
144 }
145 }
146 }
147
148 return $json_to_array;
149 }
150
151 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_image_size', 12, 2 );
152
153 /**
154 * Give upload the image logo from the core setting data from the json files.
155 *
156 * @since 1.8.17
157 *
158 * @param $json_to_array
159 * @param string $type
160 *
161 * @return array $json_to_array
162 */
163 function give_import_core_settings_merge_upload_image( $json_to_array, $type ) {
164 if ( 'merge' === $type ) {
165 // Emails > Email Settings > Logo.
166 if ( ! empty( $json_to_array['email_logo'] ) ) {
167
168 // Need to require these files.
169 if ( ! function_exists( 'media_handle_upload' ) ) {
170 require_once( ABSPATH . 'wp-admin/includes/image.php' );
171 require_once( ABSPATH . 'wp-admin/includes/file.php' );
172 require_once( ABSPATH . 'wp-admin/includes/media.php' );
173 }
174
175 $url = $json_to_array['email_logo'];
176 $new_url = media_sideload_image( $url, 0, null, 'src' );
177 if ( ! is_wp_error( $new_url ) ) {
178 $json_to_array['email_logo'] = $new_url;
179 } else {
180 unset( $json_to_array['email_logo'] );
181 }
182 }
183 }
184
185 return $json_to_array;
186 }
187
188 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_upload_image', 13, 2 );
189
190 /**
191 * Give unset the license key from the core setting data from the json files.
192 *
193 * @since 1.8.17
194 *
195 * @param array $json_to_array Data from json file
196 * @param string $type
197 *
198 * @return array $json_to_array
199 */
200 function give_import_core_settings_merge_license_key( $json_to_array, $type ) {
201 if ( 'merge' === $type ) {
202 foreach ( $json_to_array as $key => $value ) {
203 $is_license_key = strpos( '_license_key', $key );
204 if ( ! empty( $is_license_key ) ) {
205 unset( $json_to_array[ $key ] );
206 }
207 }
208 }
209
210 return $json_to_array;
211 }
212
213 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_license_key', 14, 2 );
214
215 /**
216 * Give merge the json data and setting data.
217 *
218 * @since 1.8.17
219 *
220 * @param $json_to_array
221 * @param $type
222 * @param $host_give_options
223 *
224 * @return array $json_to_array
225 */
226 function give_import_core_settings_merge_data( $json_to_array, $type, $host_give_options ) {
227 if ( 'merge' === $type ) {
228 $json_to_array_merge = array_merge( $host_give_options, $json_to_array );
229 $json_to_array = $json_to_array_merge;
230 }
231
232 return $json_to_array;
233 }
234
235 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_data', 1000, 3 );
236
237 /**
238 * Backward Compatibility - Cleanup User Roles.
239 *
240 * @param array $caps List of capabilities.
241 *
242 * @since 1.8.17
243 *
244 * @return mixed
245 */
246 function give_bc_1817_cleanup_user_roles( $caps ){
247
248 if (
249 ! give_has_upgrade_completed( 'v1817_cleanup_user_roles' ) &&
250 ! isset( $caps['view_give_payments'] )
251 ) {
252 give_v1817_process_cleanup_user_roles();
253 }
254
255 return $caps;
256 }
257
258 add_filter( 'user_has_cap', 'give_bc_1817_cleanup_user_roles' );