PluginProbe
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions / 110812
s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions v110812
260917 260913 260909 260829 260814 260805 110710 110731 110812 110815 110912 110913 110915 110926 110927 111002 111003 111011 111017 111029 111105 111206 111216 111220 120213 All 189 releases
s2member / includes / syscon.inc.php

syscon.inc.php in s2Member – Excellent for All Kinds of Memberships, Content Restriction Paywalls & Member Access Subscriptions 110812, at includes/syscon.inc.php

502 lines 29.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * System configuration for the s2Member plugin.
4 *
5 * **WARNING:** This is a system configuration file, please DO NOT EDIT this file directly.
6 * Instead, use the plugin options panel in WordPress® to override these settings.
7 *
8 * Copyright: © 2009-2011
9 * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
10 * ( coded in the USA )
11 *
12 * Released under the terms of the GNU General Public License.
13 * You should have received a copy of the GNU General Public License,
14 * along with this software. In the main directory, see: /licensing/
15 * If not, see: {@link http://www.gnu.org/licenses/}.
16 *
17 * @package s2Member
18 * @since 3.0
19 */
20 if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
21 exit ("Do not access this file directly.");
22 /*
23 Determine the full URL to the directory this plugin resides in.
24 */
25 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] = (stripos (__FILE__, WP_CONTENT_DIR) !== 0) ? /* Have to assume plugins dir? */
26 plugins_url ("/" . basename (dirname (dirname (__FILE__)))) : /* Otherwise, this gives it a chance to live anywhere in the content dir. */
27 content_url (preg_replace ("/^(.*?)\/" . preg_quote (basename (WP_CONTENT_DIR), "/") . "/", "", str_replace (DIRECTORY_SEPARATOR, "/", dirname (dirname (__FILE__)))));
28 /*
29 Configure the number of Membership Levels being used with s2Member. This is NOT ready ( yet ). Some areas of s2Member are still hard-coded at 4 Levels + Subscribers.
30 */
31 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"] = 4; /* Hard coded in at 4 Levels. This can only be extended when/if s2Member Pro is installed. */
32 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["min_levels"] = 1; /* A lower limit to protect the integrity of the s2Member software application. */
33 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["max_levels"] = apply_filters ("ws_plugin__s2member_max_levels", 100); /* Filterable. */
34 /*
35 Configure regular expression matches for Membership Access Item Numbers ( including those with only Custom Capabilities ).
36 */
37 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_level_regex"] = "/^([1-9][0-9]*)(?:(?:\:(\+?[a-z_0-9,]+|\+)?)?(?:\:([0-9]+ [A-Z])?)?)?$/";
38 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_wo_level_regex"] = "/^(\*)(?:(?:\:(\+?[a-z_0-9,]+|\+)?)?(?:\:([0-9]+ [A-Z])?)?)?$/";
39 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["membership_item_number_w_or_wo_level_regex"] = "/^([1-9][0-9]*|\*)(?:(?:\:(\+?[a-z_0-9,]+|\+)?)?(?:\:([0-9]+ [A-Z])?)?)?$/";
40 /*
41 Configure regular expression match for Specific Post/Page Access Item Numbers ( all elements required here ).
42 */
43 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["sp_access_item_number_regex"] = "/^(sp)(?:(?:\:([1-9][0-9,]*))(?:\:([1-9][0-9]*)))$/";
44 /*
45 Configure the directory for files protected by s2Member.
46 */
47 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["files_dir"] = apply_filters ("ws_plugin__s2member_files_dir", dirname (dirname (__FILE__)) . "-files" . ((preg_match ("/^win/i", PHP_OS)) ? "/app_data" : ""));
48 /*
49 Configure the directory for logs protected by s2Member.
50 */
51 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["logs_dir"] = apply_filters ("ws_plugin__s2member_logs_dir", dirname (dirname (__FILE__)) . "-logs" . ((preg_match ("/^win/i", PHP_OS)) ? "/app_data" : ""));
52 /*
53 Configure the global reCaptcha for ( www.s2-all-domains.com ). These public/private keys work on any installation.
54 */
55 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["recaptcha"] = array ("public_key" => "6LdxxcESAAAAANL7vrhz2glFIhmLGY58hXOhGkE0", "private_key" => "6LdxxcESAAAAAOlXATQTR75735n0eSIcOnp4GeNd", "lang" => "en");
56 /*
57 Configure the right menu options panel for s2Member.
58 */
59 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["menu_pages"] = array ("mlist" => true, "upsell-pro" => true, "installation" => false, "tools" => false, "videos" => true, "support" => true, "donations" => true);
60 /*
61 Check if s2Member has been configured *should be set after the first config via options panel*.
62 */
63 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["configured"] = get_option ("ws_plugin__s2member_configured");
64 /*
65 This is a special option cache that holds some additional information autoloaded into WordPress®.
66 */
67 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["cache"] = get_option ("ws_plugin__s2member_cache");
68 /*
69 Configure checksum time for the syscon.inc.php file.
70 */
71 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["checksum"] = filemtime (__FILE__);
72 /*
73 Configure an array of pluggable functions handled by s2Member.
74 */
75 $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["pluggables"] = array ();
76 /*
77 Configure & validate all of the s2Member options; and set their defaults.
78 */
79 if (!function_exists ("ws_plugin__s2member_configure_options_and_their_defaults"))
80 {
81 /**
82 * Configures an options array for the s2Member plugin.
83 *
84 * **WARNING:** This is a system configuration function, please DO NOT EDIT this function directly.
85 * Instead, use the plugin options panel in WordPress® to override these settings.
86 *
87 * @package s2Member
88 * @since 3.0
89 *
90 * @param array $options Optional. An array of new options, to be merged with the defaults.
91 * @return array This merged array of options: ``$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]``
92 */
93 function ws_plugin__s2member_configure_options_and_their_defaults ($options = FALSE)
94 {
95 global $current_site, $current_blog;
96 /**/
97 $default_options["options_checksum"] = "";
98 $default_options["options_version"] = "1.0";
99 /**/
100 $default_options["gateway_debug_logs"] = "0";
101 /**/
102 $default_options["sec_encryption_key"] = "";
103 $default_options["sec_encryption_key_history"] = array ();
104 $default_options["s_badge_status_enabled"] = "0";
105 /**/
106 $default_options["max_ip_restriction"] = "5";
107 $default_options["max_ip_restriction_time"] = "3600";
108 $default_options["max_failed_login_attempts"] = "5";
109 /**/
110 $default_options["run_deactivation_routines"] = "1";
111 /**/
112 $default_options["custom_reg_fields"] = "";
113 $default_options["custom_reg_names"] = "1";
114 $default_options["custom_reg_display_name"] = "full";
115 $default_options["custom_reg_password"] = "0";
116 $default_options["custom_reg_opt_in"] = "1";
117 $default_options["custom_reg_opt_in_label"] = "Yes, I want to receive updates via email.";
118 $default_options["custom_reg_auto_opt_outs"] = array ();
119 $default_options["custom_reg_auto_opt_out_transitions"] = "0";
120 $default_options["custom_reg_fields_4bp"] = array ();
121 $default_options["custom_reg_force_personal_emails"] = "";
122 /**/
123 $default_options["allow_subscribers_in"] = "0";
124 $default_options["force_admin_lockouts"] = "0";
125 $default_options["filter_wp_query"] = "none";
126 /**/
127 $default_options["mms_auto_patch"] = "1";
128 $default_options["mms_registration_file"] = "wp-login";
129 $default_options["mms_registration_grants"] = "none";
130 for ($n = 0, $v = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++, $v = $v + 5)
131 $default_options["mms_registration_blogs_level" . $n] = (string)$v;
132 /**/
133 $default_options["login_welcome_page"] = "";
134 $default_options["login_redirection_override"] = "";
135 $default_options["membership_options_page"] = "";
136 /**/
137 $default_options["login_reg_background_color"] = "FFFFFF";
138 $default_options["login_reg_background_image"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images/bg.png";
139 $default_options["login_reg_background_image_repeat"] = "repeat";
140 /**/
141 $default_options["login_reg_background_text_color"] = "000000";
142 $default_options["login_reg_background_text_shadow_color"] = "EEEEEE";
143 $default_options["login_reg_background_box_shadow_color"] = "EEEEEE";
144 /**/
145 $default_options["login_reg_logo_src"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["dir_url"] . "/images/logo.png";
146 $default_options["login_reg_logo_src_width"] = "550";
147 $default_options["login_reg_logo_src_height"] = "100";
148 $default_options["login_reg_logo_url"] = home_url ("/");
149 $default_options["login_reg_logo_title"] = get_bloginfo ("name");
150 /**/
151 $default_options["login_reg_font_size"] = "12px";
152 $default_options["login_reg_font_family"] = "'Verdana', 'Arial', sans-serif";
153 $default_options["login_reg_font_field_size"] = "18px";
154 /**/
155 $default_options["login_reg_footer_design"] = "";
156 /**/
157 $default_options["reg_email_from_name"] = get_bloginfo ("name");
158 $default_options["reg_email_from_email"] = get_bloginfo ("admin_email");
159 $default_options["reg_email_support_link"] = "mailto:" . get_bloginfo ("admin_email");
160 /**/
161 $default_options["new_user_emails_enabled"] = "0";
162 /**/
163 $default_options["new_user_email_subject"] = "[" . get_bloginfo ("name") . "] Username/Password";
164 $default_options["new_user_email_message"] = "Your Username/Password for:\n" . get_bloginfo ("name") . "\n\nUsername: %%user_login%%\nPassword: %%user_pass%%\n%%wp_login_url%%";
165 /**/
166 $default_options["new_user_admin_email_recipients"] = get_bloginfo ("admin_email");
167 $default_options["new_user_admin_email_subject"] = "[" . get_bloginfo ("name") . "] New User Registration";
168 $default_options["new_user_admin_email_message"] = "New User Registration on your site:\n" . get_bloginfo ("name") . "\n\nUser ID: %%user_id%%\nUsername: %%user_login%%\nEmail: %%user_email%%\nIP Address: %%user_ip%%";
169 /**/
170 $default_options["paypal_sandbox"] = "0";
171 $default_options["paypal_business"] = "";
172 $default_options["paypal_api_username"] = "";
173 $default_options["paypal_api_password"] = "";
174 $default_options["paypal_api_signature"] = "";
175 $default_options["paypal_identity_token"] = "";
176 $default_options["paypal_btn_encryption"] = "0";
177 /**/
178 $default_options["signup_tracking_codes"] = "";
179 $default_options["signup_email_recipients"] = '"%%full_name%%" <%%payer_email%%>';
180 $default_options["signup_email_subject"] = "Congratulations! ( your membership has been approved )";
181 $default_options["signup_email_message"] = "Thanks %%first_name%%! Your membership has been approved.\n\nIf you haven't already done so, the next step is to Register a Username.\n\nComplete your registration here:\n%%registration_url%%\n\nIf you have any trouble, please feel free to contact us.\n\nBest Regards,\n" . get_bloginfo ("name");
182 /**/
183 $default_options["sp_tracking_codes"] = "";
184 $default_options["sp_email_recipients"] = '"%%full_name%%" <%%payer_email%%>';
185 $default_options["sp_email_subject"] = "Thank You! ( instructions for access )";
186 $default_options["sp_email_message"] = "Thanks %%first_name%%!\n\n%%item_name%%\n\nYour order can be retrieved here:\n%%sp_access_url%%\n( link expires in %%sp_access_exp%% )\n\nIf you have any trouble, please feel free to contact us.\n\nBest Regards,\n" . get_bloginfo ("name");
187 /**/
188 $default_options["mailchimp_api_key"] = "";
189 /**/
190 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
191 $default_options["level" . $n . "_mailchimp_list_ids"] = "";
192 /**/
193 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
194 $default_options["level" . $n . "_aweber_list_ids"] = "";
195 /**/
196 $default_options["signup_notification_urls"] = "";
197 $default_options["registration_notification_urls"] = "";
198 $default_options["payment_notification_urls"] = "";
199 $default_options["modification_notification_urls"] = "";
200 $default_options["cancellation_notification_urls"] = "";
201 $default_options["eot_del_notification_urls"] = "";
202 $default_options["ref_rev_notification_urls"] = "";
203 $default_options["sp_sale_notification_urls"] = "";
204 $default_options["sp_ref_rev_notification_urls"] = "";
205 /**/
206 $default_options["signup_notification_recipients"] = "";
207 $default_options["registration_notification_recipients"] = "";
208 $default_options["payment_notification_recipients"] = "";
209 $default_options["modification_notification_recipients"] = "";
210 $default_options["cancellation_notification_recipients"] = "";
211 $default_options["eot_del_notification_recipients"] = "";
212 $default_options["ref_rev_notification_recipients"] = "";
213 $default_options["sp_sale_notification_recipients"] = "";
214 $default_options["sp_ref_rev_notification_recipients"] = "";
215 /**/
216 for ($n = 0, $l = array ("Free Subscriber", "Bronze Member", "Silver Member", "Gold Member", "Platinum Member"); $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
217 $default_options["level" . $n . "_label"] = (!empty ($l[$n])) ? $l[$n] : "Level " . $n . " Member";
218 /**/
219 $default_options["apply_label_translations"] = "0";
220 /**/
221 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
222 $default_options["level" . $n . "_file_downloads_allowed"] = "";
223 /**/
224 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
225 $default_options["level" . $n . "_file_downloads_allowed_days"] = "";
226 /**/
227 $default_options["file_download_limit_exceeded_page"] = "";
228 $default_options["file_download_inline_extensions"] = "";
229 /**/
230 $default_options["amazon_s3_files_bucket"] = "";
231 $default_options["amazon_s3_files_access_key"] = "";
232 $default_options["amazon_s3_files_secret_key"] = "";
233 /**/
234 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
235 $default_options["level" . $n . "_ruris"] = "";
236 /**/
237 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
238 $default_options["level" . $n . "_catgs"] = "";
239 /**/
240 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
241 $default_options["level" . $n . "_ptags"] = "";
242 /**/
243 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
244 $default_options["level" . $n . "_posts"] = "";
245 /**/
246 for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["levels"]; $n++)
247 $default_options["level" . $n . "_pages"] = "";
248 /**/
249 $default_options["specific_ids"] = "";
250 /**/
251 $default_options["triggers_immediate_eot"] = "refunds,reversals";
252 $default_options["membership_eot_behavior"] = "demote";
253 $default_options["eot_time_ext_behavior"] = "extend";
254 $default_options["auto_eot_system_enabled"] = "1";
255 /**/
256 $default_options["wp_footer_code"] = "";
257 /**/
258 $default_options = apply_filters ("ws_plugin__s2member_default_options", $default_options);
259 /**/
260 unset ($n, $v, $l); /* Unset/cleanup these working variables from the routines above. */
261 /*
262 Disable de-activation routines ( by default ) on a Multisite Blog Farm installation; excluding the Main Site.
263 */
264 if (is_multisite () && !is_main_site () && defined ("MULTISITE_FARM") && MULTISITE_FARM) /* Auto-protects Blog Owners. */
265 $default_options["run_deactivation_routines"] = "0"; /* By default, disable all de-activation routines in this case. */
266 /*
267 Here they are merged. User options will overwrite some or all default values.
268 */
269 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"] = array_merge ($default_options, (($options !== false) ? (array)$options : (array)get_option ("ws_plugin__s2member_options")));
270 /**/
271 /* Backward compatibility for PayPal® API Credentials. Starting with v3.5+, this info is stored by the free version of s2Member. */
272 if (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_username"] && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_username"])
273 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_username"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_username"];
274 /**/
275 if (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"] && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_password"])
276 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_password"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_password"];
277 /**/
278 if (!$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"] && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_signature"])
279 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["paypal_api_signature"] = $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["pro_paypal_api_signature"];
280 /**/
281 /* Backward compatibility for old logo image width of 500 pixels. Changed in v110604. */
282 if ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src"] === $default_options["login_reg_logo_src"])
283 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["login_reg_logo_src_width"] = $default_options["login_reg_logo_src_width"];
284 /*
285 This builds an MD5 checksum for the full array of options. This also includes the config checksum and the current set of default options.
286 */
287 $checksum = md5 (($checksum_prefix = $GLOBALS["WS_PLUGIN__"]["s2member"]["c"]["checksum"] . serialize ($default_options)) . serialize (array_merge ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"], array ("options_checksum" => 0))));
288 /*
289 Validate each option, possibly reverting back to the default value in some cases.
290 */
291 if ($options !== false || ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_checksum"] !== $checksum && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"] !== $default_options))
292 {
293 foreach ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"] as $key => &$value)
294 {
295 if (!isset ($default_options[$key]) && !preg_match ("/^pro_/", $key))
296 unset ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"][$key]);
297 /**/
298 else if ($key === "options_checksum" && (!is_string ($value) || !strlen ($value)))
299 $value = $default_options[$key];
300 /**/
301 else if ($key === "options_version" && (!is_string ($value) || !is_numeric ($value)))
302 $value = $default_options[$key];
303 /**/
304 else if ($key === "gateway_debug_logs" && (!is_string ($value) || !is_numeric ($value)))
305 $value = $default_options[$key];
306 /**/
307 else if ($key === "sec_encryption_key" && (!is_string ($value) || !strlen ($value)))
308 $value = $default_options[$key];
309 /**/
310 else if ($key === "sec_encryption_key_history" && (!is_array ($value) || empty ($value)))
311 $value = $default_options[$key];
312 /**/
313 else if ($key === "s_badge_status_enabled" && (!is_string ($value) || !is_numeric ($value)))
314 $value = $default_options[$key];
315 /**/
316 else if ($key === "max_ip_restriction" && (!is_string ($value) || !is_numeric ($value) || $value < 0 || $value > 100))
317 $value = $default_options[$key];
318 /**/
319 else if ($key === "max_ip_restriction_time" && (!is_string ($value) || !is_numeric ($value) || $value < 900 || $value > 31556926))
320 $value = $default_options[$key];
321 /**/
322 else if ($key === "max_failed_login_attempts" && (!is_string ($value) || !is_numeric ($value) || $value < 0 || $value > 100))
323 $value = $default_options[$key];
324 /**/
325 else if ($key === "run_deactivation_routines" && (!is_string ($value) || !is_numeric ($value)))
326 $value = $default_options[$key];
327 /**/
328 else if ($key === "custom_reg_fields" && (!is_string ($value) || !strlen ($value)))
329 $value = $default_options[$key];
330 /**/
331 else if (preg_match ("/^custom_reg_(names|password|opt_in|auto_opt_out_transitions)$/", $key) && (!is_string ($value) || !is_numeric ($value)))
332 $value = $default_options[$key];
333 /**/
334 else if ($key === "custom_reg_display_name" && (!is_string ($value) || !preg_match ("/^(full|first|last|login|0)$/", $value)))
335 $value = $default_options[$key];
336 /**/
337 else if ($key === "custom_reg_opt_in_label" && (!is_string ($value) || !strlen ($value)))
338 $value = $default_options[$key];
339 /**/
340 else if ($key === "custom_reg_auto_opt_outs" && (!is_array ($value) || empty ($value)))
341 $value = $default_options[$key];
342 /**/
343 else if ($key === "custom_reg_fields_4bp" && (!is_array ($value) || empty ($value)))
344 $value = $default_options[$key];
345 /**/
346 else if ($key === "custom_reg_force_personal_emails" && (!is_string ($value) || !strlen ($value = preg_replace ("/\s+/", "", $value))))
347 $value = $default_options[$key];
348 /**/
349 else if ($key === "allow_subscribers_in" && (!is_string ($value) || !is_numeric ($value)))
350 $value = $default_options[$key];
351 /**/
352 else if ($key === "mms_auto_patch" && (!is_string ($value) || !is_numeric ($value)))
353 $value = $default_options[$key];
354 /**/
355 else if ($key === "mms_registration_file" && (!is_string ($value) || !preg_match ("/^(wp-login|wp-signup)$/", $value)))
356 $value = $default_options[$key];
357 /**/
358 else if ($key === "mms_registration_grants" && (!is_string ($value) || !preg_match ("/^(none|user|all)$/", $value)))
359 $value = $default_options[$key];
360 /**/
361 else if (preg_match ("/^mms_registration_blogs_level[0-9]+$/", $key) && (!is_string ($value) || !is_numeric ($value) || $value < 0))
362 $value = $default_options[$key];
363 /**/
364 else if ($key === "force_admin_lockouts" && (!is_string ($value) || !is_numeric ($value)))
365 $value = $default_options[$key];
366 /**/
367 else if ($key === "filter_wp_query" && (!is_string ($value) || !preg_match ("/^(none|searches|feeds|searches,feeds|all)$/", $value)))
368 $value = $default_options[$key];
369 /**/
370 else if ($key === "login_welcome_page" && (!is_string ($value) || !is_numeric ($value)))
371 $value = $default_options[$key];
372 /**/
373 else if ($key === "login_redirection_override" && (!is_string ($value) || !strlen ($value)))
374 $value = $default_options[$key];
375 /**/
376 else if ($key === "membership_options_page" && (!is_string ($value) || !is_numeric ($value)))
377 $value = $default_options[$key];
378 /**/
379 else if ($key === "login_reg_background_image" && !is_string ($value)) /* This is optional. */
380 $value = $default_options[$key];
381 /**/
382 else if ($key === "login_reg_background_image_repeat" && (!is_string ($value) || !preg_match ("/^(repeat|repeat-x|repeat-y|no-repeat)$/", $value)))
383 $value = $default_options[$key];
384 /**/
385 else if (preg_match ("/^login_reg_(background|logo|font|footer)_/", $key) && !preg_match ("/background_image/", $key) && (!is_string ($value) || !strlen ($value)))
386 $value = $default_options[$key];
387 /**/
388 else if (preg_match ("/^reg_email_(from_name|from_email|support_link)$/", $key) && (!is_string ($value) || !strlen ($value)))
389 $value = $default_options[$key];
390 /**/
391 else if ($key === "new_user_emails_enabled" && (!is_string ($value) || !is_numeric ($value)))
392 $value = $default_options[$key];
393 /**/
394 else if (preg_match ("/^new_user_email_(subject|message)$/", $key) && (!is_string ($value) || !strlen ($value)))
395 $value = $default_options[$key];
396 /**/
397 else if (preg_match ("/^new_user_admin_email_(recipients|subject|message)$/", $key) && (!is_string ($value) || !strlen ($value)))
398 $value = $default_options[$key];
399 /**/
400 else if ($key === "paypal_sandbox" && (!is_string ($value) || !is_numeric ($value)))
401 $value = $default_options[$key];
402 /**/
403 else if (preg_match ("/^paypal_(business|api_username|api_password|api_signature|identity_token)$/", $key) && (!is_string ($value) || !strlen ($value)))
404 $value = $default_options[$key];
405 /**/
406 else if ($key === "paypal_btn_encryption" && (!is_string ($value) || !is_numeric ($value)))
407 $value = $default_options[$key];
408 /**/
409 else if (preg_match ("/^(signup|sp)_tracking_codes$/", $key) && (!is_string ($value) || !strlen ($value)))
410 $value = $default_options[$key];
411 /**/
412 else if (preg_match ("/^(signup|sp)_email_recipients$/", $key) && !is_string ($value)) /* Can be empty. */
413 $value = $default_options[$key];
414 /**/
415 else if (preg_match ("/^(signup|sp)_email_(subject|message)$/", $key) && (!is_string ($value) || !strlen ($value)))
416 $value = $default_options[$key];
417 /**/
418 else if ($key === "mailchimp_api_key" && (!is_string ($value) || !strlen ($value)))
419 $value = $default_options[$key];
420 /**/
421 else if (preg_match ("/^level[0-9]+_mailchimp_list_ids$/", $key) && (!is_string ($value) || !strlen ($value = preg_replace ("/[\r\n\t]+/", "", $value))))
422 $value = $default_options[$key];
423 /**/
424 else if (preg_match ("/^level[0-9]+_aweber_list_ids$/", $key) && (!is_string ($value) || !strlen ($value = preg_replace ("/\s+/", "", $value))))
425 $value = $default_options[$key];
426 /**/
427 else if (preg_match ("/^(signup|registration|payment|modification|cancellation|eot_del|ref_rev|sp_sale|sp_ref_rev)_notification_urls$/", $key) && (!is_string ($value) || !strlen ($value)))
428 $value = $default_options[$key];
429 /**/
430 else if (preg_match ("/^(signup|registration|payment|modification|cancellation|eot_del|ref_rev|sp_sale|sp_ref_rev)_notification_recipients$/", $key) && (!is_string ($value) || !strlen ($value)))
431 $value = $default_options[$key];
432 /**/
433 else if (preg_match ("/^level[0-9]+_label$/", $key) && (!is_string ($value) || !strlen ($value)))
434 $value = $default_options[$key];
435 /**/
436 else if ($key === "apply_label_translations" && (!is_string ($value) || !is_numeric ($value)))
437 $value = $default_options[$key];
438 /**/
439 else if (preg_match ("/^level[0-9]+_file_downloads_allowed$/", $key) && (!is_string ($value) || !is_numeric ($value) || $value < 0))
440 $value = $default_options[$key];
441 /**/
442 else if (preg_match ("/^level[0-9]+_file_downloads_allowed_days$/", $key) && (!is_string ($value) || !is_numeric ($value) || $value < 0))
443 $value = $default_options[$key];
444 /**/
445 else if ($key === "file_download_limit_exceeded_page" && (!is_string ($value) || !is_numeric ($value)))
446 $value = $default_options[$key];
447 /**/
448 else if ($key === "file_download_inline_extensions" && (!is_string ($value) || !($value = strtolower (preg_replace ("/\s+/", "", $value)))))
449 $value = $default_options[$key];
450 /**/
451 else if (preg_match ("/^amazon_s3_files_(bucket|access_key|secret_key)$/", $key) && (!is_string ($value) || !strlen ($value)))
452 $value = $default_options[$key];
453 /**/
454 else if (preg_match ("/^level[0-9]+_ruris$/", $key) && (!is_string ($value) || !strlen ($value)))
455 $value = $default_options[$key];
456 /**/
457 else if (preg_match ("/^level[0-9]+_catgs$/", $key) && (!is_string ($value) || !($value = (($value === "all") ? $value : trim (preg_replace ("/[^0-9,]/", "", $value), ",")))))
458 $value = $default_options[$key];
459 /**/
460 else if (preg_match ("/^level[0-9]+_ptags$/", $key) && (!is_string ($value) || !($value = (($value === "all") ? $value : trim (preg_replace ("/( +)/", " ", trim (preg_replace ("/( *),( *)/", ",", $value))), ",")))))
461 $value = $default_options[$key];
462 /**/
463 else if (preg_match ("/^level[0-9]+_posts$/", $key) && (!is_string ($value) || !($value = (($value === "all") ? $value : trim (preg_replace ("/[^0-9,]/", "", $value), ",")))))
464 $value = $default_options[$key];
465 /**/
466 else if (preg_match ("/^level[0-9]+_pages$/", $key) && (!is_string ($value) || !($value = (($value === "all") ? $value : trim (preg_replace ("/[^0-9,]/", "", $value), ",")))))
467 $value = $default_options[$key];
468 /**/
469 else if ($key === "specific_ids" && (!is_string ($value) || !($value = trim (preg_replace ("/[^0-9,]/", "", $value), ","))))
470 $value = $default_options[$key];
471 /**/
472 else if ($key === "triggers_immediate_eot" && (!is_string ($value) || !preg_match ("/^(none|refunds|reversals|refunds,reversals)$/", $value)))
473 $value = $default_options[$key];
474 /**/
475 else if ($key === "membership_eot_behavior" && (!is_string ($value) || !preg_match ("/^(demote|delete)$/", $value)))
476 $value = $default_options[$key];
477 /**/
478 else if ($key === "eot_time_ext_behavior" && (!is_string ($value) || !preg_match ("/^(extend|reset)$/", $value)))
479 $value = $default_options[$key];
480 /**/
481 else if ($key === "auto_eot_system_enabled" && (!is_string ($value) || !is_numeric ($value)))
482 $value = $default_options[$key];
483 /**/
484 else if ($key === "wp_footer_code" && (!is_string ($value) || !strlen ($value)))
485 $value = $default_options[$key];
486 }
487 /**/
488 if ($options !== false && is_string ($options["sec_encryption_key"]) && strlen ($options["sec_encryption_key"]) && !in_array ($options["sec_encryption_key"], $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"]))
489 {
490 array_unshift ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"], $options["sec_encryption_key"]);
491 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"] = array_slice ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["sec_encryption_key_history"], 0, 10);
492 }
493 /**/
494 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"] = apply_filters_ref_array ("ws_plugin__s2member_options_before_checksum", array (&$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]));
495 /**/
496 $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["options_checksum"] = md5 ($checksum_prefix . serialize (array_merge ($GLOBALS["WS_PLUGIN__"]["s2member"]["o"], array ("options_checksum" => 0))));
497 }
498 /**/
499 return apply_filters_ref_array ("ws_plugin__s2member_options", array (&$GLOBALS["WS_PLUGIN__"]["s2member"]["o"]));
500 }
501 }
502 ?>