PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.4.3
GiveWP – Donation Plugin and Fundraising Platform v2.4.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 / settings / class-settings-advanced.php
give / includes / admin / settings Last commit date
class-settings-addon.php 7 years ago class-settings-advanced.php 7 years ago class-settings-cmb2-backward-compatibility.php 7 years ago class-settings-display.php 7 years ago class-settings-email.php 7 years ago class-settings-gateways.php 7 years ago class-settings-general.php 7 years ago class-settings-license.php 7 years ago
class-settings-advanced.php
260 lines
1 <?php
2 /**
3 * Give Settings Page/Tab
4 *
5 * @package Give
6 * @subpackage Classes/Give_Settings_Advanced
7 * @copyright Copyright (c) 2016, GiveWP
8 * @license http://opensource.org/licenses/gpl-2.0.php GNU Public License
9 * @since 1.8
10 */
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // Exit if accessed directly
14 }
15
16 if ( ! class_exists( 'Give_Settings_Advanced' ) ) :
17
18 /**
19 * Give_Settings_Advanced.
20 *
21 * @sine 1.8
22 */
23 class Give_Settings_Advanced extends Give_Settings_Page {
24
25 /**
26 * Constructor.
27 */
28 public function __construct() {
29 $this->id = 'advanced';
30 $this->label = __( 'Advanced', 'give' );
31
32 $this->default_tab = 'advanced-options';
33
34 if ( $this->id === give_get_current_setting_tab() ) {
35 add_action( 'give_admin_field_remove_cache_button', array( $this, 'render_remove_cache_button' ), 10, 1 );
36 add_action( 'give_save_settings_give_settings', array( $this, 'validate_settngs' ) );
37 }
38
39 parent::__construct();
40 }
41
42 /**
43 * Get settings array.
44 *
45 * @since 1.8
46 * @return array
47 */
48 public function get_settings() {
49 $settings = array();
50
51 $current_section = give_get_current_setting_section();
52
53 switch ( $current_section ) {
54 case 'advanced-options':
55 $settings = array(
56 array(
57 'id' => 'give_title_data_control_2',
58 'type' => 'title',
59 ),
60 array(
61 'name' => __( 'Remove Data on Uninstall', 'give' ),
62 'desc' => __( 'When the plugin is deleted, completely remove all Give data. This includes all Give settings, forms, form meta, donor, donor data, donations. Everything.', 'give' ),
63 'id' => 'uninstall_on_delete',
64 'type' => 'radio_inline',
65 'default' => 'disabled',
66 'options' => array(
67 'enabled' => __( 'Yes, Remove all data', 'give' ),
68 'disabled' => __( 'No, keep my Give settings and donation data', 'give' ),
69 ),
70 ),
71 array(
72 'name' => __( 'Default User Role', 'give' ),
73 'desc' => __( 'Assign default user roles for donors when donors opt to register as a WP User.', 'give' ),
74 'id' => 'donor_default_user_role',
75 'type' => 'select',
76 'default' => 'give_donor',
77 'options' => give_get_user_roles(),
78 ),
79 array(
80 /* translators: %s: the_content */
81 'name' => sprintf( __( '%s filter', 'give' ), '<code>the_content</code>' ),
82 /* translators: 1: https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content 2: the_content */
83 'desc' => sprintf( __( 'If you are seeing extra social buttons, related posts, or other unwanted elements appearing within your forms then you can disable WordPress\' content filter. <a href="%1$s" target="_blank">Learn more</a> about %2$s filter.', 'give' ), esc_url( 'https://codex.wordpress.org/Plugin_API/Filter_Reference/the_content' ), '<code>the_content</code>' ),
84 'id' => 'the_content_filter',
85 'default' => 'enabled',
86 'type' => 'radio_inline',
87 'options' => array(
88 'enabled' => __( 'Enabled', 'give' ),
89 'disabled' => __( 'Disabled', 'give' ),
90 ),
91 ),
92 array(
93 'name' => __( 'Script Loading Location', 'give' ),
94 'desc' => __( 'This allows you to load your Give scripts either in the <code>&lt;head&gt;</code> or footer of your website.', 'give' ),
95 'id' => 'scripts_footer',
96 'type' => 'radio_inline',
97 'default' => 'disabled',
98 'options' => array(
99 'disabled' => __( 'Head', 'give' ),
100 'enabled' => __( 'Footer', 'give' ),
101 ),
102 ),
103 array(
104 'name' => __( 'Babel Polyfill Script', 'give' ),
105 'desc' => __( 'Decide whether to load the Babel polyfill, which provides backwards compatibility for older browsers such as IE 11. The polyfill may be disabled to avoid conflicts with other themes or plugins that load the same script.', 'give' ),
106 'id' => 'babel_polyfill_script',
107 'type' => 'radio_inline',
108 'default' => 'enabled',
109 'options' => array(
110 'enabled' => __( 'Enabled', 'give' ),
111 'disabled' => __( 'Disabled', 'give' ),
112 ),
113 ),
114 array(
115 'name' => __( 'Akismet SPAM Protection', 'give' ),
116 'desc' => __( 'Add a layer of SPAM protection to your donation submissions with Akismet. When enabled, donation submissions will be first sent to Akismet\'s API if you have the plugin activated and configured.', 'give' ),
117 'id' => 'akismet_spam_protection',
118 'type' => 'radio_inline',
119 'default' => ( give_check_akismet_key() ) ? 'enabled' : 'disabled',
120 'options' => array(
121 'enabled' => __( 'Enabled', 'give' ),
122 'disabled' => __( 'Disabled', 'give' ),
123 ),
124 ),
125 array(
126 'name' => 'Give Cache',
127 'id' => 'give-clear-cache',
128 'buttonTitle' => __( 'Clear Cache', 'give' ),
129 'desc' => __( 'Click this button if you want to clear Give\'s cache. The plugin stores common settings and queries in cache to optimize performance. Clearing cache will remove and begin rebuilding these saved queries.', 'give' ),
130 'type' => 'remove_cache_button'
131 ),
132 array(
133 'name' => __( 'Advanced Settings Docs Link', 'give' ),
134 'id' => 'advanced_settings_docs_link',
135 'url' => esc_url( 'http://docs.givewp.com/settings-advanced' ),
136 'title' => __( 'Advanced Settings', 'give' ),
137 'type' => 'give_docs_link',
138 ),
139 array(
140 'id' => 'give_title_data_control_2',
141 'type' => 'sectionend',
142 ),
143 );
144 break;
145 }
146
147 /**
148 * Hide caching setting by default.
149 *
150 * @since 2.0
151 */
152 if ( apply_filters( 'give_settings_advanced_show_cache_setting', false ) ) {
153 array_splice( $settings, 1, 0, array(
154 array(
155 'name' => __( 'Cache', 'give' ),
156 'desc' => __( 'If caching is enabled the plugin will start caching custom post type related queries and reduce the overall load time.', 'give' ),
157 'id' => 'cache',
158 'type' => 'radio_inline',
159 'default' => 'enabled',
160 'options' => array(
161 'enabled' => __( 'Enabled', 'give' ),
162 'disabled' => __( 'Disabled', 'give' ),
163 ),
164 )
165 ) );
166 }
167
168
169 /**
170 * Filter the advanced settings.
171 * Backward compatibility: Please do not use this filter. This filter is deprecated in 1.8
172 */
173 $settings = apply_filters( 'give_settings_advanced', $settings );
174
175 /**
176 * Filter the settings.
177 *
178 * @since 1.8
179 *
180 * @param array $settings
181 */
182 $settings = apply_filters( 'give_get_settings_' . $this->id, $settings );
183
184 // Output.
185 return $settings;
186 }
187
188 /**
189 * Get sections.
190 *
191 * @since 1.8
192 * @return array
193 */
194 public function get_sections() {
195 $sections = array(
196 'advanced-options' => __( 'Advanced Options', 'give' ),
197 );
198
199 return apply_filters( 'give_get_sections_' . $this->id, $sections );
200 }
201
202
203 /**
204 * Render remove_cache_button field type
205 *
206 * @since 2.1
207 * @access public
208 *
209 * @param array $field
210 */
211 public function render_remove_cache_button( $field ) {
212 ?>
213 <tr valign="top" <?php echo ! empty( $field['wrapper_class'] ) ? 'class="' . $field['wrapper_class'] . '"' : '' ?>>
214 <th scope="row" class="titledesc">
215 <label
216 for="<?php echo esc_attr( $field['id'] ); ?>"><?php echo esc_html( $field['name'] ) ?></label>
217 </th>
218 <td class="give-forminp">
219 <button type="button" id="<?php echo esc_attr( $field['id'] ); ?>"
220 class="button button-secondary"><?php echo esc_html( $field['buttonTitle'] ) ?></button>
221 <?php echo Give_Admin_Settings::get_field_description( $field ); ?>
222 </td>
223 </tr>
224 <?php
225 }
226
227
228 /**
229 * Validate setting
230 *
231 * @since 2.2.0
232 * @access public
233 *
234 * @param array $options
235 */
236 public function validate_settngs( $options ) {
237 // Sanitize data.
238 $akismet_spam_protection = isset( $options['akismet_spam_protection'] )
239 ? $options['akismet_spam_protection']
240 : ( give_check_akismet_key() ? 'enabled' : 'disabled' );
241
242 // Show error message if Akismet not configured and Admin try to save 'enabled' option.
243 if (
244 give_is_setting_enabled( $akismet_spam_protection )
245 && ! give_check_akismet_key()
246 ) {
247 Give_Admin_Settings::add_error(
248 'give-akismet-protection',
249 __( 'Please properly configure Akismet to enable SPAM protection.', 'give' )
250 );
251
252 give_update_option( 'akismet_spam_protection', 'disabled' );
253 }
254 }
255 }
256
257 endif;
258
259 return new Give_Settings_Advanced();
260