PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.0
GiveWP – Donation Plugin and Fundraising Platform v2.1.0
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 8 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 8 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 8 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
263 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 = isset( $_POST['thousands_separator'] ) ? give_clean( $_POST['thousands_separator'] ) : '';
71 $decimal_separator = isset( $_POST['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 (
140 ! empty( $json_to_array['form_featured_img'] )
141 && ! empty( $json_to_array['featured_image_size'] )
142 && give_is_setting_enabled( $json_to_array['form_featured_img'] )
143 ) {
144 $images_sizes = get_intermediate_image_sizes();
145
146 if ( ! in_array( $json_to_array['featured_image_size'], $images_sizes, true ) ) {
147 unset( $json_to_array['featured_image_size'] );
148 }
149 }
150 }
151
152 return $json_to_array;
153 }
154
155 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_image_size', 12, 2 );
156
157 /**
158 * Give upload the image logo from the core setting data from the json files.
159 *
160 * @since 1.8.17
161 *
162 * @param $json_to_array
163 * @param string $type
164 *
165 * @return array $json_to_array
166 */
167 function give_import_core_settings_merge_upload_image( $json_to_array, $type ) {
168 if ( 'merge' === $type ) {
169 // Emails > Email Settings > Logo.
170 if ( ! empty( $json_to_array['email_logo'] ) ) {
171
172 // Need to require these files.
173 if ( ! function_exists( 'media_handle_upload' ) ) {
174 require_once( ABSPATH . 'wp-admin/includes/image.php' );
175 require_once( ABSPATH . 'wp-admin/includes/file.php' );
176 require_once( ABSPATH . 'wp-admin/includes/media.php' );
177 }
178
179 $url = $json_to_array['email_logo'];
180 $new_url = media_sideload_image( $url, 0, null, 'src' );
181 if ( ! is_wp_error( $new_url ) ) {
182 $json_to_array['email_logo'] = $new_url;
183 } else {
184 unset( $json_to_array['email_logo'] );
185 }
186 }
187 }
188
189 return $json_to_array;
190 }
191
192 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_upload_image', 13, 2 );
193
194 /**
195 * Give unset the license key from the core setting data from the json files.
196 *
197 * @since 1.8.17
198 *
199 * @param array $json_to_array Data from json file
200 * @param string $type
201 *
202 * @return array $json_to_array
203 */
204 function give_import_core_settings_merge_license_key( $json_to_array, $type ) {
205 if ( 'merge' === $type ) {
206 foreach ( $json_to_array as $key => $value ) {
207 $is_license_key = strpos( '_license_key', $key );
208 if ( ! empty( $is_license_key ) ) {
209 unset( $json_to_array[ $key ] );
210 }
211 }
212 }
213
214 return $json_to_array;
215 }
216
217 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_license_key', 14, 2 );
218
219 /**
220 * Give merge the json data and setting data.
221 *
222 * @since 1.8.17
223 *
224 * @param $json_to_array
225 * @param $type
226 * @param $host_give_options
227 *
228 * @return array $json_to_array
229 */
230 function give_import_core_settings_merge_data( $json_to_array, $type, $host_give_options ) {
231 if ( 'merge' === $type ) {
232 $json_to_array_merge = array_merge( $host_give_options, $json_to_array );
233 $json_to_array = $json_to_array_merge;
234 }
235
236 return $json_to_array;
237 }
238
239 add_filter( 'give_import_core_settings_data', 'give_import_core_settings_merge_data', 1000, 3 );
240
241 /**
242 * Backward Compatibility - Cleanup User Roles.
243 *
244 * @param array $caps List of capabilities.
245 *
246 * @since 1.8.17
247 *
248 * @return mixed
249 */
250 function give_bc_1817_cleanup_user_roles( $caps ) {
251
252 if (
253 ! give_has_upgrade_completed( 'v1817_cleanup_user_roles' ) &&
254 ! isset( $caps['view_give_payments'] )
255 ) {
256 give_v1817_process_cleanup_user_roles();
257 }
258
259 return $caps;
260 }
261
262 add_filter( 'user_has_cap', 'give_bc_1817_cleanup_user_roles' );
263