= strtotime ("now"))
{
if (!$read_only && !empty ($_GET["s2member_sp_access"])) /* Cookie session. */
c_ws_plugin__s2member_sp_access::sp_access_session ($_GET["s2member_sp_access"]);
/**/
if ($read_only || c_ws_plugin__s2member_ip_restrictions::ip_restrictions_ok ($_SERVER["REMOTE_ADDR"], $sp_access_value))
return apply_filters ("ws_plugin__s2member_sp_access", true, get_defined_vars ());
}
}
}
}
/**/
if (!$read_only && !empty ($_GET["s2member_sp_access"])) /* If this is a Specific Post/Page Link? */
{
echo 'Your Link Expired:
Please contact Support if you need assistance.';
/**/
exit (); /* $_GET["s2member_sp_access"] has expired. Or it is simply invalid. */
}
/**/
return apply_filters ("ws_plugin__s2member_sp_access", false, get_defined_vars ());
}
/**/
else
return apply_filters ("ws_plugin__s2member_sp_access", false, get_defined_vars ());
}
/**
* Handles Specific Post/Page sessions, by writing access values into a cookie.
*
* Can be used to add a new value to the session, and/or to return the current set of values in the session.
*
* @package s2Member\SP_Access
* @since 3.5
*
* @param str $add_sp_access_value Encrypted Specific Post/Page Access value.
* @return array Array of Specific Post/Page Access values.
*/
public static function sp_access_session ($add_sp_access_value = FALSE)
{
eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
do_action ("ws_plugin__s2member_before_sp_access_session", get_defined_vars ());
unset ($__refs, $__v); /* Unset defined __refs, __v. */
/**/
$sp_access_values = (!empty ($_COOKIE["s2member_sp_access"])) ? preg_split ("/\:\.\:\|\:\.\:/", $_COOKIE["s2member_sp_access"]) : array ();
/**/
if ($add_sp_access_value && !in_array ($add_sp_access_value, $sp_access_values)) /* If it's not in the session already. */
{
$sp_access_values[] = $add_sp_access_value; /* Add an access value, and update the delimited session cookie. */
$sp_access_values = array_unique ($sp_access_values); /* Keep this array unique; disallow double-stacking. */
/**/
$cookie = implode (":.:|:.:", $sp_access_values); /* Implode the access values into a delimited string. */
$cookie = (strlen ($cookie) >= 4096) ? $add_sp_access_value : $cookie; /* Max cookie size is 4kbs. */
/**/
setcookie ("s2member_sp_access", $cookie, time () + 31556926, "/") . ($_COOKIE["s2member_sp_access"] = $cookie);
/**/
eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;');
do_action ("ws_plugin__s2member_during_sp_access_session", get_defined_vars ());
unset ($__refs, $__v); /* Unset defined __refs, __v. */
}
/**/
return apply_filters ("ws_plugin__s2member_sp_access_session", $sp_access_values, get_defined_vars ());
}
}
}
?>