Example #1
0
 /**
  * Handles s2Member option Replacement Codes.
  *
  * @package s2Member\Utilities
  * @since 110815
  *
  * @param array $ops An array of s2Member options, or an option value array.
  * @param bool $fill Optional. If true, Replacement Codes are filled, else false.
  * @return mixed The end result, after handling Replacement Codes.
  */
 public static function op_replace($ops = FALSE, $fill = FALSE)
 {
     global $current_site, $current_blog;
     if (is_array($ops) && !empty($ops)) {
         foreach ($ops as &$op) {
             if (is_array($op) && !empty($op)) {
                 // Array?
                 $op = c_ws_plugin__s2member_pro_utils_ops::op_replace($op, $fill);
             } else {
                 if (is_string($op) && !$fill) {
                     $op = is_multisite() ? preg_replace("/" . preg_quote(rtrim($current_site->domain . $current_site->path, "/") . "/", "/") . "/", "%%_op__current_site_domain_path/%%", $op) : $op;
                     $op = is_multisite() ? preg_replace("/" . preg_quote(rtrim($current_site->domain . $current_site->path, "/"), "/") . "/", "%%_op__current_site_domain_path%%", $op) : $op;
                     $op = is_multisite() ? preg_replace("/" . preg_quote(rtrim($current_blog->domain . $current_blog->path, "/") . "/", "/") . "/", "%%_op__current_blog_domain_path/%%", $op) : $op;
                     $op = is_multisite() ? preg_replace("/" . preg_quote(rtrim($current_blog->domain . $current_blog->path, "/"), "/") . "/", "%%_op__current_blog_domain_path%%", $op) : $op;
                     $op = preg_replace("/" . preg_quote(rtrim(site_url(), "/"), "/") . "/", "%%_op__site_url%%", preg_replace("/" . preg_quote(rtrim(site_url(), "/") . "/", "/") . "/", "%%_op__site_url/%%", $op));
                     $op = preg_replace("/" . preg_quote(rtrim(home_url(), "/"), "/") . "/", "%%_op__home_url%%", preg_replace("/" . preg_quote(rtrim(home_url(), "/") . "/", "/") . "/", "%%_op__home_url/%%", $op));
                     $op = preg_replace("/" . preg_quote($_SERVER["HTTP_HOST"], "/") . "/i", "%%_op__domain%%", get_bloginfo("name") ? preg_replace("/" . preg_quote(get_bloginfo("name"), "/") . "/", "%%_op__blog_name%%", $op) : $op);
                 } else {
                     if (is_string($op) && $fill) {
                         $op = is_multisite() ? preg_replace("/%%_op__current_site_domain_path\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim($current_site->domain . $current_site->path, "/") . "/"), $op) : preg_replace("/%%_op__current_site_domain_path\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/") . "/"), $op);
                         $op = is_multisite() ? preg_replace("/%%_op__current_site_domain_path%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim($current_site->domain . $current_site->path, "/")), $op) : preg_replace("/%%_op__current_site_domain_path%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/")), $op);
                         $op = is_multisite() ? preg_replace("/%%_op__current_blog_domain_path\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim($current_blog->domain . $current_blog->path, "/") . "/"), $op) : preg_replace("/%%_op__current_blog_domain_path\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/") . "/"), $op);
                         $op = is_multisite() ? preg_replace("/%%_op__current_blog_domain_path%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim($current_blog->domain . $current_blog->path, "/")), $op) : preg_replace("/%%_op__current_blog_domain_path%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/")), $op);
                         $op = preg_replace("/%%_op__site_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/")), preg_replace("/%%_op__site_url\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(site_url(), "/") . "/"), $op));
                         $op = preg_replace("/%%_op__home_url%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(home_url(), "/")), preg_replace("/%%_op__home_url\\/%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(rtrim(home_url(), "/") . "/"), $op));
                         $op = preg_replace("/%%_op__domain%%/i", c_ws_plugin__s2member_utils_strings::esc_ds($_SERVER["HTTP_HOST"]), preg_replace("/%%_op__blog_name%%/i", c_ws_plugin__s2member_utils_strings::esc_ds(get_bloginfo("name")), $op));
                     }
                 }
             }
         }
     }
     return $ops;
     // Now return the $ops.
 }
 /**
  * Handles s2Member option Replacement Codes.
  *
  * @package s2Member\Utilities
  * @since 110815
  *
  * @param array $ops An array of s2Member options, or an option value array.
  * @param bool  $fill Optional. If true, Replacement Codes are filled, else false.
  *
  * @return mixed The end result, after handling Replacement Codes.
  */
 public static function op_replace($ops = array(), $fill = FALSE)
 {
     global $current_site, $current_blog;
     // Multisite.
     if (is_array($ops) && !empty($ops)) {
         foreach ($ops as &$op) {
             if (is_array($op) && !empty($op)) {
                 // Array?
                 $op = c_ws_plugin__s2member_pro_utils_ops::op_replace($op, $fill);
             } else {
                 if (is_string($op) && !$fill) {
                     $op = is_multisite() ? preg_replace('/' . preg_quote(rtrim($current_site->domain . $current_site->path, '/') . '/', '/') . '/', '%%_op__current_site_domain_path/%%', $op) : $op;
                     $op = is_multisite() ? preg_replace('/' . preg_quote(rtrim($current_site->domain . $current_site->path, '/'), '/') . '/', '%%_op__current_site_domain_path%%', $op) : $op;
                     $op = is_multisite() ? preg_replace('/' . preg_quote(rtrim($current_blog->domain . $current_blog->path, '/') . '/', '/') . '/', '%%_op__current_blog_domain_path/%%', $op) : $op;
                     $op = is_multisite() ? preg_replace('/' . preg_quote(rtrim($current_blog->domain . $current_blog->path, '/'), '/') . '/', '%%_op__current_blog_domain_path%%', $op) : $op;
                     $op = preg_replace('/' . preg_quote(rtrim(site_url(), '/'), '/') . '/', '%%_op__site_url%%', preg_replace('/' . preg_quote(rtrim(site_url(), '/') . '/', '/') . '/', '%%_op__site_url/%%', $op));
                     $op = preg_replace('/' . preg_quote(rtrim(home_url(), '/'), '/') . '/', '%%_op__home_url%%', preg_replace('/' . preg_quote(rtrim(home_url(), '/') . '/', '/') . '/', '%%_op__home_url/%%', $op));
                     $op = preg_replace('/' . preg_quote($_SERVER['HTTP_HOST'], '/') . '/i', '%%_op__domain%%', get_bloginfo('name') ? preg_replace('/' . preg_quote(get_bloginfo('name'), '/') . '/', '%%_op__blog_name%%', $op) : $op);
                 } else {
                     if (is_string($op) && $fill) {
                         $op = is_multisite() ? preg_replace('/%%_op__current_site_domain_path\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim($current_site->domain . $current_site->path, '/') . '/'), $op) : preg_replace('/%%_op__current_site_domain_path\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/') . '/'), $op);
                         $op = is_multisite() ? preg_replace('/%%_op__current_site_domain_path%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim($current_site->domain . $current_site->path, '/')), $op) : preg_replace('/%%_op__current_site_domain_path%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/')), $op);
                         $op = is_multisite() ? preg_replace('/%%_op__current_blog_domain_path\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim($current_blog->domain . $current_blog->path, '/') . '/'), $op) : preg_replace('/%%_op__current_blog_domain_path\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/') . '/'), $op);
                         $op = is_multisite() ? preg_replace('/%%_op__current_blog_domain_path%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim($current_blog->domain . $current_blog->path, '/')), $op) : preg_replace('/%%_op__current_blog_domain_path%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/')), $op);
                         $op = preg_replace('/%%_op__site_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(site_url(), '/')), preg_replace('/%%_op__site_url\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(site_url(), '/') . '/'), $op));
                         $op = preg_replace('/%%_op__home_url%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/')), preg_replace('/%%_op__home_url\\/%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(rtrim(home_url(), '/') . '/'), $op));
                         $op = preg_replace('/%%_op__domain%%/i', c_ws_plugin__s2member_utils_strings::esc_refs($_SERVER['HTTP_HOST']), preg_replace('/%%_op__blog_name%%/i', c_ws_plugin__s2member_utils_strings::esc_refs(get_bloginfo('name')), $op));
                     }
                 }
             }
         }
     }
     return $ops;
     // Now return the $ops.
 }
Example #3
0
 /**
  * Handles the exportation of options.
  *
  * @package s2Member\Exports
  * @since 110815
  */
 public static function export_ops()
 {
     if (!empty($_GET['ws_plugin__s2member_pro_export_ops']) && ($nonce = $_GET['ws_plugin__s2member_pro_export_ops']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-pro-export-ops') && current_user_can('create_users')) {
         $export = serialize(c_ws_plugin__s2member_pro_utils_ops::op_replace($GLOBALS['WS_PLUGIN__']['s2member']['o']));
         @set_time_limit(0);
         @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
         @ini_set('zlib.output_compression', 0);
         if (function_exists('apache_setenv')) {
             @apache_setenv('no-gzip', '1');
         }
         while (@ob_end_clean()) {
         }
         status_header(200);
         // 200 OK status header.
         header('Content-Encoding: none');
         header('Accept-Ranges: none');
         header('Content-Type: text/plain; charset=UTF-8');
         header('Content-Length: ' . strlen($export));
         header('Expires: ' . gmdate('D, d M Y H:i:s', strtotime('-1 week')) . ' GMT');
         header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
         header('Cache-Control: no-cache, must-revalidate, max-age=0');
         header('Cache-Control: post-check=0, pre-check=0', FALSE);
         header('Pragma: no-cache');
         header('Content-Disposition: attachment; filename="export.s2e"');
         exit($export);
         // Exportation file.
     }
 }
Example #4
0
 /**
  * Handles the importation of options.
  *
  * @package s2Member\Imports
  * @since 110815
  *
  * @return null
  */
 public static function import_ops()
 {
     if (!empty($_POST["ws_plugin__s2member_pro_import_ops"]) && ($nonce = $_POST["ws_plugin__s2member_pro_import_ops"]) && wp_verify_nonce($nonce, "ws-plugin--s2member-pro-import-ops") && current_user_can("create_users")) {
         @set_time_limit(0);
         // Make time for processing large import files.
         @ini_set("memory_limit", apply_filters("admin_memory_limit", WP_MAX_MEMORY_LIMIT));
         if (!empty($_FILES["ws_plugin__s2member_pro_import_ops_file"]) && empty($_FILES["ws_plugin__s2member_pro_import_ops_file"]["error"])) {
             $file = file_get_contents($_FILES["ws_plugin__s2member_pro_import_ops_file"]["tmp_name"], "r");
         }
         if (!empty($file)) {
             if (is_array($import = c_ws_plugin__s2member_pro_utils_ops::op_replace(@unserialize($file), true)) && !empty($import) && ($import["configured"] = "1")) {
                 unset($import["options_checksum"], $import["options_version"]);
                 foreach ($import as $key => $value) {
                     is_array($value) ? array_unshift($value, "update-signal") : null;
                     $import["ws_plugin__s2member_" . $key] = $value;
                     unset($import[$key]);
                 }
                 c_ws_plugin__s2member_menu_pages::update_all_options($import, true, true, false, false, false);
             } else {
                 $errors[] = "Invalid data received. Please try again.";
             }
             // Unserialization failed?
         } else {
             $errors[] = "No data was received. Please try again.";
         }
         // The upload failed, or it was empty.
         if (!empty($errors)) {
             // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation.
             c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode("</li><li>", $errors) . '</li></ul>', true);
         } else {
             c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Options imported.');
         }
     }
     return;
 }
Example #5
0
 /**
  * Handles the importation of options.
  *
  * @package s2Member\Imports
  * @since 110815
  */
 public static function import_ops()
 {
     if (!empty($_POST['ws_plugin__s2member_pro_import_ops']) && ($nonce = $_POST['ws_plugin__s2member_pro_import_ops']) && wp_verify_nonce($nonce, 'ws-plugin--s2member-pro-import-ops') && current_user_can('create_users')) {
         @set_time_limit(0);
         // Make time for processing large import files.
         @ini_set('memory_limit', apply_filters('admin_memory_limit', WP_MAX_MEMORY_LIMIT));
         if (!empty($_FILES['ws_plugin__s2member_pro_import_ops_file']) && empty($_FILES['ws_plugin__s2member_pro_import_ops_file']['error'])) {
             $file = file_get_contents($_FILES['ws_plugin__s2member_pro_import_ops_file']['tmp_name'], 'r');
         }
         if (!empty($file)) {
             if (is_array($import = c_ws_plugin__s2member_pro_utils_ops::op_replace(@unserialize($file), TRUE)) && !empty($import) && ($import['configured'] = '1')) {
                 unset($import['options_checksum'], $import['options_version']);
                 foreach ($import as $key => $value) {
                     is_array($value) ? array_unshift($value, 'update-signal') : NULL;
                     $import['ws_plugin__s2member_' . $key] = $value;
                     unset($import[$key]);
                 }
                 c_ws_plugin__s2member_menu_pages::update_all_options($import, TRUE, TRUE, FALSE, FALSE, FALSE);
             } else {
                 $errors[] = 'Invalid data received. Please try again.';
             }
             // Unserialization failed?
         } else {
             $errors[] = 'No data was received. Please try again.';
         }
         // The upload failed, or it was empty.
         if (!empty($errors)) {
             // Here is where a detailed error log will be returned to the Site Owner; as a way of clarifying what just happened during importation.
             c_ws_plugin__s2member_admin_notices::display_admin_notice('<strong>The following errors were encountered during importation:</strong><ul style="font-size:80%; list-style:disc outside; margin-left:25px;"><li>' . implode('</li><li>', $errors) . '</li></ul>', TRUE);
         } else {
             c_ws_plugin__s2member_admin_notices::display_admin_notice('Operation complete. Options imported.');
         }
     }
 }
 /**
  * Handles the exportation of options.
  *
  * @package s2Member\Exports
  * @since 110815
  *
  * @return null Or exits script execution after issuing file download prompt with TXT file.
  */
 public static function export_ops()
 {
     if (!empty($_GET["ws_plugin__s2member_pro_export_ops"]) && ($nonce = $_GET["ws_plugin__s2member_pro_export_ops"]) && wp_verify_nonce($nonce, "ws-plugin--s2member-pro-export-ops") && current_user_can("create_users")) {
         $export = serialize(c_ws_plugin__s2member_pro_utils_ops::op_replace($GLOBALS["WS_PLUGIN__"]["s2member"]["o"]));
         /**/
         @set_time_limit(0) . @ini_set("memory_limit", apply_filters("admin_memory_limit", WP_MAX_MEMORY_LIMIT));
         @ini_set("zlib.output_compression", 0) . eval('while (@ob_end_clean ());');
         /**/
         status_header(200);
         /* 200 OK status header. */
         /**/
         header("Content-Encoding:");
         header("Accept-Ranges: none");
         header("Content-Type: text/plain; charset=utf-8");
         header("Content-Length: " . strlen($export));
         header("Expires: " . gmdate("D, d M Y H:i:s", strtotime("-1 week")) . " GMT");
         header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
         header("Cache-Control: no-cache, must-revalidate, max-age=0");
         header("Cache-Control: post-check=0, pre-check=0", false);
         header("Pragma: no-cache");
         /**/
         header('Content-Disposition: attachment; filename="export.s2e"');
         /**/
         exit($export);
         /* Exportation file. */
     }
 }