PageRenderTime 29ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-content/plugins/s2member/includes/classes/register-in.inc.php

https://gitlab.com/Gashler/dp
PHP | 104 lines | 64 code | 9 blank | 31 comment | 18 complexity | e1d42e00ff24722672e66b79282f3cc3 MD5 | raw file
  1. <?php
  2. /**
  3. * Registration Links (inner processing routines).
  4. *
  5. * Copyright: © 2009-2011
  6. * {@link http://www.websharks-inc.com/ WebSharks, Inc.}
  7. * (coded in the USA)
  8. *
  9. * Released under the terms of the GNU General Public License.
  10. * You should have received a copy of the GNU General Public License,
  11. * along with this software. In the main directory, see: /licensing/
  12. * If not, see: {@link http://www.gnu.org/licenses/}.
  13. *
  14. * @package s2Member\Registrations
  15. * @since 3.5
  16. */
  17. if (realpath (__FILE__) === realpath ($_SERVER["SCRIPT_FILENAME"]))
  18. exit("Do not access this file directly.");
  19. if (!class_exists ("c_ws_plugin__s2member_register_in"))
  20. {
  21. /**
  22. * Registration Links (inner processing routines).
  23. *
  24. * @package s2Member\Registrations
  25. * @since 3.5
  26. */
  27. class c_ws_plugin__s2member_register_in
  28. {
  29. /**
  30. * Handles Registration Links.
  31. *
  32. * @package s2Member\Registrations
  33. * @since 3.5
  34. *
  35. * @attaches-to ``add_action("init");``
  36. *
  37. * @return null Or exits script execution after redirection.
  38. */
  39. public static function register ()
  40. {
  41. do_action ("ws_plugin__s2member_before_register", get_defined_vars ());
  42. if (!empty ($_GET["s2member_register"])) // If they're attempting to access the registration system.
  43. {
  44. while (@ob_end_clean ()); // Clean any existing output buffers.
  45. $msg_503 = _x ('<strong>Your Link Expired:</strong><br />Please contact Support if you need assistance.', "s2member-front", "s2member");
  46. if (is_array ($register = preg_split ("/\:\.\:\|\:\.\:/", c_ws_plugin__s2member_utils_encryption::decrypt (trim (stripslashes ((string)$_GET["s2member_register"]))))))
  47. {
  48. if (count ($register) === 6 && $register[0] === "subscr_gateway_subscr_id_custom_item_number_time" /* Does the checksum value match up here? */)
  49. {
  50. if (is_numeric ($register[5]) && $register[5] <= strtotime ("now") && $register[5] >= strtotime ("-" . apply_filters ("ws_plugin__s2member_register_link_exp_time", "2 days", get_defined_vars ())))
  51. {
  52. $_COOKIE["s2member_subscr_gateway"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[1]);
  53. $_COOKIE["s2member_subscr_id"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[2]);
  54. $_COOKIE["s2member_custom"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[3]);
  55. $_COOKIE["s2member_item_number"] = /* For ``reg_cookies_ok ()``. */ c_ws_plugin__s2member_utils_encryption::encrypt ($register[4]);
  56. if (($reg_cookies = c_ws_plugin__s2member_register_access::reg_cookies_ok ()) && extract ($reg_cookies) /* Needed? */)
  57. {
  58. status_header(200); // Send a 200 OK status header.
  59. header("Content-Type: text/html; charset=UTF-8"); // Content-Type with UTF-8.
  60. setcookie ("s2member_subscr_gateway", $_COOKIE["s2member_subscr_gateway"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_subscr_gateway", $_COOKIE["s2member_subscr_gateway"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
  61. setcookie ("s2member_subscr_id", $_COOKIE["s2member_subscr_id"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_subscr_id", $_COOKIE["s2member_subscr_id"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
  62. setcookie ("s2member_custom", $_COOKIE["s2member_custom"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_custom", $_COOKIE["s2member_custom"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
  63. setcookie ("s2member_item_number", $_COOKIE["s2member_item_number"], time () + 31556926, COOKIEPATH, COOKIE_DOMAIN) . setcookie ("s2member_item_number", $_COOKIE["s2member_item_number"], time () + 31556926, SITECOOKIEPATH, COOKIE_DOMAIN);
  64. do_action ("ws_plugin__s2member_during_register", get_defined_vars ());
  65. if (is_multisite () && c_ws_plugin__s2member_utils_conds::is_multisite_farm () && is_main_site () && ($location = c_ws_plugin__s2member_utils_urls::wp_signup_url ()))
  66. {
  67. echo '<script type="text/javascript">' . "\n";
  68. echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq ($location) . "';";
  69. echo '</script>' . "\n";
  70. }
  71. else if (($location = c_ws_plugin__s2member_utils_urls::wp_register_url ()))
  72. {
  73. echo '<script type="text/javascript">' . "\n";
  74. echo "window.location = '" . c_ws_plugin__s2member_utils_strings::esc_js_sq ($location) . "';";
  75. echo '</script>' . "\n";
  76. }
  77. exit (); // Clean exit. The browser will now be redirected to ``$location``.
  78. }
  79. else
  80. status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
  81. }
  82. else
  83. status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
  84. }
  85. else
  86. status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
  87. }
  88. else
  89. status_header(503) . header ("Content-Type: text/html; charset=UTF-8") . exit ($msg_503);
  90. }
  91. do_action ("ws_plugin__s2member_after_register", get_defined_vars ());
  92. }
  93. }
  94. }
  95. ?>