/** * Adds a scheduled task for optimizeMember's Auto-EOT System. * * @package optimizeMember\Auto_EOT_System * @since 3.5 * * @return bool True if able to add Auto-EOT System schedule, else false. */ public static function add_auto_eot_system() { do_action("ws_plugin__optimizemember_before_add_auto_eot_system", get_defined_vars()); /**/ if (!c_ws_plugin__optimizemember_auto_eots::delete_auto_eot_system()) { return apply_filters("ws_plugin__optimizemember_add_auto_eot_system", false, get_defined_vars()); } else { if (function_exists("wp_cron")) { wp_schedule_event(time(), "every10m", "ws_plugin__optimizemember_auto_eot_system__schedule"); /**/ return apply_filters("ws_plugin__optimizemember_add_auto_eot_system", true, get_defined_vars()); } else { return apply_filters("ws_plugin__optimizemember_add_auto_eot_system", false, get_defined_vars()); } } }
/** * Allows the Auto-EOT Sytem to be processed through a server-side Cron Job. * * @package optimizeMember\Cron_Jobs * @since 3.5 * * @attaches-to ``add_action("init");`` * * @return null Or exits script execution after task completed. */ public static function auto_eot_system_via_cron() { do_action("ws_plugin__optimizemember_before_auto_eot_system_via_cron", get_defined_vars()); /**/ if (!empty($_GET["optimizemember_auto_eot_system_via_cron"])) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["auto_eot_system_enabled"]) { c_ws_plugin__optimizemember_auto_eots::auto_eot_system(); /* Process. */ /**/ do_action("ws_plugin__optimizemember_during_auto_eot_system_via_cron", get_defined_vars()); } exit; /* Clean exit. */ } /**/ do_action("ws_plugin__optimizemember_after_auto_eot_system_via_cron", get_defined_vars()); }
/** * Saves all options from any menu page. * * Can also be self-verified; and configured extensively with function parameters. * * @package optimizeMember\Menu_Pages * @since 3.5 * * @param array $new_options Optional. Force feed an array of new options. Defaults to ``$_POST`` vars. * If ``$new_options`` are passed in, be SURE that you've already applied ``stripslashes_deep()``. * @param bool $verified Optional. Defaults to false. If true, ``wp_verify_nonce()`` is skipped in this routine. * @param bool $update_other Optional. Defaults to true. If false, other option-dependent routines will not be processed. * @param bool|array $display_notices Optional. Defaults to true. Can be false, or an array of certain notices that can be displayed. * @param bool|array $enqueue_notices Optional. Defaults to false. Can be true, or an array of certain notices that should be enqueued. * @param bool $request_refresh Optional. Defaults to false. If true, resulting `success` notice will include a link to refresh the menu page. * @return bool True if all optimizeMember options were updated successfully, else false. */ public static function update_all_options($new_options = FALSE, $verified = FALSE, $update_other = TRUE, $display_notices = TRUE, $enqueue_notices = FALSE, $request_refresh = FALSE) { $updated_all_options = false; /* Initialize this to a value of false. Initializing this variable here makes it an available reference-variable to Hooks/Filters. */ /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_before_update_all_options", get_defined_vars()); /* If you use this Hook, be sure to use ``wp_verify_nonce()``. */ unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if ($verified || !empty($_POST["ws_plugin__optimizemember_options_save"]) && ($nonce = $_POST["ws_plugin__optimizemember_options_save"]) && wp_verify_nonce($nonce, "ws-plugin--optimizemember-options-save")) { $options = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]; /* Acquire the full existing configuration options array here. */ /**/ $new_options = is_array($new_options) ? $new_options : (!empty($_POST) && is_array($_POST) ? stripslashes_deep($_POST) : array()); $new_options = c_ws_plugin__optimizemember_utils_strings::trim_deep($new_options); /**/ foreach ($new_options as $key => $value) { /* Find all keys contained within ``$new_options`` matching `^ws_plugin__optimizemember_`. */ if (strpos($key, "ws_plugin__optimizemember_") === 0) { /* A relevant ``$new_options`` key matching `^ws_plugin__optimizemember_`? */ if ($key == 'ws_plugin__optimizemember_ccp') { $value = array_filter($new_options[$key]); } /**/ if ($key === "ws_plugin__optimizemember_configured") { /* optimizeMember is now configured ( according to these options )? */ ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["configured"] = $value) . update_option("ws_plugin__optimizemember_configured", $value); } else { if (!is_array($value) || is_array($value) && array_shift($value) === "update-signal") { $options[preg_replace("/^" . preg_quote("ws_plugin__optimizemember_", "/") . "/", "", $key)] = $value; } } /**/ } } unset($key, $value); /* Unset these utility variables now. This prevents bleeding vars into Hooks/Filters that are of no use. */ //die(print_r($options)); /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_update_all_options", get_defined_vars()); /* If you use this Hook, be sure to use ``wp_verify_nonce()``. */ unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $options = ws_plugin__optimizemember_configure_options_and_their_defaults($options = array_merge($options, array("options_version" => (string) ($options["options_version"] + 0.001)))); update_option("ws_plugin__optimizemember_options", $options) . (is_multisite() && is_main_site() ? update_site_option("ws_plugin__optimizemember_options", $options) : null) . update_option("ws_plugin__optimizemember_cache", array()); /**/ if ($update_other === true || in_array("auto_eot_system", (array) $update_other)) { /* Handle the Auto-EOT System now ( enable/disable ). */ $options["auto_eot_system_enabled"] == 1 ? c_ws_plugin__optimizemember_auto_eots::add_auto_eot_system() : c_ws_plugin__optimizemember_auto_eots::delete_auto_eot_system(); } /**/ if (($display_notices === true || in_array("success", (array) $display_notices)) && ($notice = '<strong>Options saved.' . ($request_refresh ? ' Please <a href="' . esc_attr($_SERVER["REQUEST_URI"]) . '">refresh</a>.' : '') . '</strong>')) { $enqueue_notices === true || in_array("success", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*") : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice); } /**/ if (empty($_GET["page"]) || $_GET["page"] !== "ws-plugin--optimizemember-mms-ops") { if (!$options["membership_options_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>NOTE:</strong> optimizeMember security restrictions will NOT be enforced until you\'ve configured a Membership Options Page. See: <code>optimizeMember -> General Options -> Membership Options Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["login_welcome_page"] && $options["login_welcome_page"] === $options["membership_options_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Login Welcome Page is the same as your Membership Options Page. Please correct this. See: <code>optimizeMember -> General Options -> Login Welcome Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["membership_options_page"] && (string) get_option("page_on_front") === $options["membership_options_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Membership Options Page is currently configured as your Home Page ( i.e. static page ) for WordPress. This causes internal conflicts with optimizeMember. Your Membership Options Page MUST stand alone. Please correct this. See: <code>WordPress -> Reading Options</code>. Or change: <code>optimizeMember -> General Options -> Membership Options Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["login_welcome_page"] && (string) get_option("page_on_front") === $options["login_welcome_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Login Welcome Page is currently configured as your Home Page ( i.e. static page ) for WordPress. This causes internal conflicts with optimizeMember. Your Login Welcome Page MUST stand alone. Please correct this. See: <code>WordPress -> Reading Options</code>. Or change: <code>optimizeMember -> General Options -> Login Welcome Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["membership_options_page"] && (string) get_option("page_for_posts") === $options["membership_options_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Membership Options Page is currently configured as your Posts Page ( i.e. static page ) for WordPress. This causes internal conflicts with optimizeMember. Your Membership Options Page MUST stand alone. Please correct this. See: <code>WordPress -> Reading Options</code>. Or change: <code>optimizeMember -> General Options -> Membership Options Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["login_welcome_page"] && (string) get_option("page_for_posts") === $options["login_welcome_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Login Welcome Page is currently configured as your Posts Page ( i.e. static page ) for WordPress. This causes internal conflicts with optimizeMember. Your Login Welcome Page MUST stand alone. Please correct this. See: <code>WordPress -> Reading Options</code>. Or change: <code>optimizeMember -> General Options -> Login Welcome Page</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } /**/ if ($options["file_download_limit_exceeded_page"] && $options["file_download_limit_exceeded_page"] === $options["membership_options_page"] && ($display_notices === true || in_array("page-conflict-warnings", (array) $display_notices)) && ($notice = '<strong>optimizeMember:</strong> Your Download Limit Exceeded Page is the same as your Membership Options Page. Please correct this. See: <code>optimizeMember -> Download Options</code>.')) { $enqueue_notices === true || in_array("page-conflict-warnings", (array) $enqueue_notices) ? c_ws_plugin__optimizemember_admin_notices::enqueue_admin_notice($notice, "*:*", true) : c_ws_plugin__optimizemember_admin_notices::display_admin_notice($notice, true); } } /**/ $updated_all_options = true; /* Flag indicating this routine was processed successfully; and that all optimizeMember options have been updated successfully.*/ } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_after_update_all_options", get_defined_vars()); /* If you use this Hook, be sure to use ``wp_verify_nonce()``. */ unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ return apply_filters("ws_plugin__optimizemember_update_all_options", $updated_all_options ? true : false, get_defined_vars()); }