/** * Handles Category Level Access *( for current page )*. * * @package optimizeMember\Categories * @since 3.5 * * @return null Or exits script execution after redirection. */ public static function check_catg_level_access() { global $post; /* ``get_the_ID()`` is NOT available outside The Loop. */ /**/ do_action("ws_plugin__optimizemember_before_check_catg_level_access", get_defined_vars()); /**/ $excluded = apply_filters("ws_plugin__optimizemember_check_catg_level_access_excluded", false, get_defined_vars()); /**/ if (!$excluded && is_category() && ($cat_id = get_query_var("cat")) && ($cat_id = (int) $cat_id) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { if (!c_ws_plugin__optimizemember_systematics::is_wp_systematic_use_page()) { $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) ? $user : false; /* Current User's object. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($login_redirection_uri = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri($user, "root-returns-false")) && preg_match("/^" . preg_quote($login_redirection_uri, "/") . "\$/", $_SERVER["REQUEST_URI"]) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level0"))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("catg", $cat_id, "level", 0, $_SERVER["REQUEST_URI"], "sys") . exit; } else { if (!c_ws_plugin__optimizemember_systematics::is_systematic_use_page()) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] === "all" && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("catg", $cat_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] && in_array($cat_id, $catgs = preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"])) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("catg", $cat_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"]) { /* Check Category ancestry. */ foreach (preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"]) as $catg) { if ($catg && cat_is_ancestor_of($catg, $cat_id) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("catg", $cat_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } } } } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"]) { /* URIs configured at this Level? */ /**/ foreach (preg_split("/[\r\n\t]+/", c_ws_plugin__optimizemember_ruris::fill_ruri_level_access_rc_vars($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"], $user)) as $str) { if ($str && preg_match("/" . preg_quote($str, "/") . "/", $_SERVER["REQUEST_URI"]) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("catg", $cat_id, "level", $n, $_SERVER["REQUEST_URI"], "ruri") . exit; } } } } } } /**/ do_action("ws_plugin__optimizemember_during_check_catg_level_access", get_defined_vars()); } } /**/ do_action("ws_plugin__optimizemember_after_check_catg_level_access", get_defined_vars()); /**/ return; /* For uniformity. */ }
/** * Handles Category Level Access *( for specific Categories )*. * * @package optimizeMember\Categories * @since 3.5 * * @param int|str $cat_id Numeric Category ID. * @param bool $check_user Test permissions against the current User? Defaults to true. * @return null|array Non-empty array ( with details ) if access is denied, else null if access is allowed. */ public static function check_specific_catg_level_access($cat_id = FALSE, $check_user = TRUE) { do_action("ws_plugin__optimizemember_before_check_specific_catg_level_access", get_defined_vars()); /**/ $excluded = apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access_excluded", false, get_defined_vars()); /**/ if (!$excluded && is_numeric($cat_id) && ($cat_id = (int) $cat_id) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { $cat_uri = c_ws_plugin__optimizemember_utils_urls::parse_uri(get_category_link($cat_id)); /* Get a full valid URI for this Category. */ /**/ if (!c_ws_plugin__optimizemember_systematics_sp::is_wp_systematic_use_specific_page(null, $cat_uri)) { $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) ? $user : false; /* Current User's object. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($login_redirection_uri = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri($user, "root-returns-false")) && preg_match("/^" . preg_quote($login_redirection_uri, "/") . "\$/", $cat_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level0"))) { return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", array("optimizemember_level_req" => 0), get_defined_vars()); } else { if (!c_ws_plugin__optimizemember_systematics_sp::is_systematic_use_specific_page(null, $cat_uri)) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] === "all" && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] && in_array($cat_id, $catgs = preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"])) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"]) { /* Check Category ancestry. */ foreach (preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"]) as $catg) { if ($catg && cat_is_ancestor_of($catg, $cat_id) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"]) { /* URIs configured at this Level? */ /**/ foreach (preg_split("/[\r\n\t]+/", c_ws_plugin__optimizemember_ruris::fill_ruri_level_access_rc_vars($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"], $user)) as $str) { if ($str && preg_match("/" . preg_quote($str, "/") . "/", $cat_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } } } /**/ do_action("ws_plugin__optimizemember_during_check_specific_catg_level_access", get_defined_vars()); } } /**/ return apply_filters("ws_plugin__optimizemember_check_specific_catg_level_access", null, get_defined_vars()); }
/** * Handles Pro login redirections. * * @package optimizeMember\Login_Redirects * @since 110720 * * @attaches-to ``add_filter("ws_plugin__optimizemember_login_redirect");`` * * @param bool|str $redirect Expects a boolean value of true|false, or a non-empty string, passed through by the Filter. * @param array $vars Expects an array of defined variables, passed in by the Filter. * @return bool|str A One-Time-Offer redirection URL, else the original value. */ public static function login_redirect($redirect = FALSE, $vars = FALSE) { if ($redirect && ($user = $vars["user"]) && ($logins = $vars["logins"])) { foreach (preg_split("/[\r\n\t]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["pro_login_welcome_page_otos"]) as $oto) { if (($oto = trim($oto)) && preg_match("/^(?:([0-9]+)\\:)(?:([0-9]+)\\:)?(.+)\$/", $oto, $m)) { list(, $number_of_logins, $level, $url) = $m; /* Assign variables. */ if ((int) $number_of_logins === (int) $logins) { /* One-Time-Offer applies? */ if (!is_numeric($level) || c_ws_plugin__optimizemember_user_access::user_access_level($user) === (int) $level) { if ($url = c_ws_plugin__optimizemember_login_redirects::fill_login_redirect_rc_vars($url, $user)) { return $redirect = $url; } } } } } } /**/ return $redirect; /* Return ``$redirect`` value. */ }
/** * Handles Profile modifications. * * @package optimizeMember\Profiles * @since 3.5 * * @attaches-to ``add_action("init");`` * * @return null After re-configuring the ``$current_user`` object. * May also exit script execution when handling the Stand-Alone Profile Modification Form. */ public static function handle_profile_modifications() { global $current_user; /* We'll need to update this global object. */ /**/ $user =& $current_user; /* Shorter reference to the $current_user object. */ /**/ do_action("ws_plugin__optimizemember_before_handle_profile_modifications", get_defined_vars()); /**/ if (!empty($_POST["ws_plugin__optimizemember_profile_save"]) && is_user_logged_in() && is_object($user) && !empty($user->ID) && ($user_id = $user->ID)) { if (($nonce = $_POST["ws_plugin__optimizemember_profile_save"]) && wp_verify_nonce($nonce, "ws-plugin--optimizemember-profile-save")) { $GLOBALS["ws_plugin__optimizemember_profile_saved"] = true; /* Global flag as having been saved/updated successfully. */ /**/ $_p = c_ws_plugin__optimizemember_utils_strings::trim_deep(stripslashes_deep($_POST)); /* Clean ``$_POST`` vars. */ /**/ $userdata["ID"] = $user_id; /**/ if (!empty($_p["ws_plugin__optimizemember_profile_email"])) { if (is_email($_p["ws_plugin__optimizemember_profile_email"]) && !email_exists($_p["ws_plugin__optimizemember_profile_email"])) { $userdata["user_email"] = $_p["ws_plugin__optimizemember_profile_email"]; } } /**/ if (!empty($_p["ws_plugin__optimizemember_profile_password1"])) { if ($user->user_login !== "demo") { /* No pass change on demo! */ $userdata["user_pass"] = $_p["ws_plugin__optimizemember_profile_password1"]; } } /**/ if (!empty($_p["ws_plugin__optimizemember_profile_first_name"])) { $userdata["first_name"] = $_p["ws_plugin__optimizemember_profile_first_name"]; } /**/ if (!empty($_p["ws_plugin__optimizemember_profile_display_name"])) { $userdata["display_name"] = $_p["ws_plugin__optimizemember_profile_display_name"]; } /**/ if (!empty($_p["ws_plugin__optimizemember_profile_last_name"])) { $userdata["last_name"] = $_p["ws_plugin__optimizemember_profile_last_name"]; } /**/ wp_update_user($userdata); /* OK. Now send this array for an update. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"]) { if ($fields_applicable = c_ws_plugin__optimizemember_custom_reg_fields::custom_fields_configured_at_level("auto-detection", "profile")) { $_existing_fields = get_user_option("optimizemember_custom_fields", $user_id); /**/ foreach (json_decode($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["custom_reg_fields"], true) as $field) { $field_var = preg_replace("/[^a-z0-9]/i", "_", strtolower($field["id"])); $field_id_class = preg_replace("/_/", "-", $field_var); /**/ if (!in_array($field["id"], $fields_applicable) || strpos($field["editable"], "no") === 0) { if (isset($_existing_fields[$field_var]) && (is_array($_existing_fields[$field_var]) && !empty($_existing_fields[$field_var]) || is_string($_existing_fields[$field_var]) && strlen($_existing_fields[$field_var]))) { $fields[$field_var] = $_existing_fields[$field_var]; } else { /* Else ``unset()``. */ unset($fields[$field_var]); } } else { if ($field["required"] === "yes" && (!isset($_p["ws_plugin__optimizemember_profile_" . $field_var]) || !is_array($_p["ws_plugin__optimizemember_profile_" . $field_var]) && !is_string($_p["ws_plugin__optimizemember_profile_" . $field_var]) || is_array($_p["ws_plugin__optimizemember_profile_" . $field_var]) && empty($_p["ws_plugin__optimizemember_profile_" . $field_var]) || is_string($_p["ws_plugin__optimizemember_profile_" . $field_var]) && !strlen($_p["ws_plugin__optimizemember_profile_" . $field_var]))) { if (isset($_existing_fields[$field_var]) && (is_array($_existing_fields[$field_var]) && !empty($_existing_fields[$field_var]) || is_string($_existing_fields[$field_var]) && strlen($_existing_fields[$field_var]))) { $fields[$field_var] = $_existing_fields[$field_var]; } else { /* Else ``unset()``. */ unset($fields[$field_var]); } } else { if (isset($_p["ws_plugin__optimizemember_profile_" . $field_var])) { if (is_array($_p["ws_plugin__optimizemember_profile_" . $field_var]) && !empty($_p["ws_plugin__optimizemember_profile_" . $field_var]) || is_string($_p["ws_plugin__optimizemember_profile_" . $field_var]) && strlen($_p["ws_plugin__optimizemember_profile_" . $field_var])) { $fields[$field_var] = $_p["ws_plugin__optimizemember_profile_" . $field_var]; } else { /* Else ``unset()``. */ unset($fields[$field_var]); } } else { /* Else ``unset()``. */ unset($fields[$field_var]); } } } } /**/ if (!empty($fields)) { update_user_option($user_id, "optimizemember_custom_fields", $fields); } else { /* Else delete their Custom Fields? */ delete_user_option($user_id, "optimizemember_custom_fields"); } } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_handle_profile_modifications", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ $user = new WP_User($user_id); /* Update the ``WP_User`` object for the current User/Member. */ function_exists("setup_userdata") ? setup_userdata() : null; /* Update global vars. */ /**/ $lwp = c_ws_plugin__optimizemember_login_redirects::login_redirection_url($user); $lwp = !$lwp ? get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]) : $lwp; /**/ if (empty($_p["ws_plugin__optimizemember_sc_profile_save"])) { echo '<script type="text/javascript">' . "\n"; echo "if(window.parent && window.parent != window) { window.parent.alert('" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("Profile updated successfully.", "s2member-front", "s2member")) . "'); window.parent.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq($lwp) . "'; }"; echo "else if(window.opener) { window.alert('" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("Profile updated successfully.", "s2member-front", "s2member")) . "'); window.opener.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq($lwp) . "'; window.close(); }"; echo "else { alert('" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("Profile updated successfully.", "s2member-front", "s2member")) . "'); window.location = '" . c_ws_plugin__optimizemember_utils_strings::esc_js_sq($lwp) . "'; }"; echo '</script>' . "\n"; /**/ exit; /* Clean exit. */ } } } /**/ do_action("ws_plugin__optimizemember_after_handle_profile_modifications", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
/** * Defines several API Constants for optimizeMember. * * These are also duplicated into the JavaScript API for optimizeMember. * Except for a few that would pose a security issue. Such as the PayPal API Credentials; * those are NOT included in the JavaScript API. * * @package optimizeMember\API_Constants * @since 3.5 * * @attaches-to ``add_action("init");`` * * @return null */ public static function constants() { do_action("ws_plugin__optimizemember_before_constants", get_defined_vars()); /**/ $links = c_ws_plugin__optimizemember_cache::cached_page_links(); /**/ $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && $user->ID ? $user : false; /**/ $level = c_ws_plugin__optimizemember_user_access::user_access_level($user); $file_downloads = c_ws_plugin__optimizemember_files::user_downloads($user); $login_redirection_url = c_ws_plugin__optimizemember_login_redirects::login_redirection_url($user); /**/ $custom = $user ? get_user_option("optimizemember_custom", $user->ID) : ""; $subscr_id = $user ? get_user_option("optimizemember_subscr_id", $user->ID) : ""; $subscr_gateway = $user ? get_user_option("optimizemember_subscr_gateway", $user->ID) : ""; $registration_ip = $user ? get_user_option("optimizemember_registration_ip", $user->ID) : ""; $custom_fields = $user ? get_user_option("optimizemember_custom_fields", $user->ID) : array(); $paid_registration_times = $user ? get_user_option("optimizemember_paid_registration_times", $user->ID) : array(); $login_counter = $user ? (int) get_user_option("optimizemember_login_counter") : -1; /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_during_constants", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /** * Current version of optimizeMember. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_VERSION; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_VERSION" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_VERSION); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\WS_PLUGIN__OPTIMIZEMEMBER_VERSION */ if (!defined("OPTIMIZEMEMBER_VERSION")) { define("OPTIMIZEMEMBER_VERSION", $c[] = (string) WS_PLUGIN__OPTIMIZEMEMBER_VERSION); } /** * The number of times the current User has logged into your site. * * Negative `-1` through number of times logged-in. * Negative `-1` indicates they are NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_LOGIN_COUNTER; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_LOGIN_COUNTER" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_LOGIN_COUNTER); * </script> * ``` * * @package optimizeMember\API_Constants * @since 110720 * * @var int * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_login_counter")` * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_LOGIN_COUNTER")) { define("OPTIMIZEMEMBER_CURRENT_USER_LOGIN_COUNTER", $c[] = (int) $login_counter); } /** * Is the current User logged-in at all. * * True if the current User IS logged-in, else false. * * ———— Quick PHP Code Sample ———— * ``` * <!php * if(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN) * echo 'You ARE logged in.'; * !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmIf constant(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN)] * You ARE logged-in. * [/opmIf] * * <script type="text/javascript"> * if(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN) * document.write('You ARE logged-in.'); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var bool * * @see optimizeMember\API_Functions\is_user_not_logged_in() * @see http://codex.wordpress.org/Function_Reference/is_user_logged_in is_user_logged_in() * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN")) { define("OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN", $c[] = $user ? true : false); } /** * Is the current User logged-in as a Member. * * True if the current User IS logged-in with a Membership Level greater than `0`, else false. * * ———— Quick PHP Code Sample ———— * ``` * <!php * if(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER) * echo 'You ARE logged in at Level #1 or higher.'; * !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmIf constant(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER)] * You ARE logged in at Level #1 or higher. * [/opmIf] * * <script type="text/javascript"> * if(OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER) * document.write('You ARE logged in at Level #1 or higher.'); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var bool * * @see optimizeMember\API_Functions\is_user_not_logged_in() * @see http://codex.wordpress.org/Function_Reference/is_user_logged_in is_user_logged_in() * * @see optimizeMember\API_Functions\user_is() * @see optimizeMember\API_Functions\user_is_not() * * @see optimizeMember\API_Functions\current_user_is() * @see optimizeMember\API_Functions\current_user_is_not() * @see optimizeMember\API_Functions\current_user_is_for_blog() * @see optimizeMember\API_Functions\current_user_is_not_for_blog() * * @see optimizeMember\API_Functions\current_user_cannot() * @see optimizeMember\API_Functions\current_user_cannot_for_blog() * @see http://codex.wordpress.org/Function_Reference/user_can user_can() * @see http://codex.wordpress.org/Function_Reference/current_user_can current_user_can() * @see http://codex.wordpress.org/Function_Reference/current_user_can_for_blog current_user_can_for_blog() * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_access_role")` * @see `get_user_field("optimizemember_access_level")` * @see `get_user_field("optimizemember_access_label")` * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER")) { define("OPTIMIZEMEMBER_CURRENT_USER_IS_LOGGED_IN_AS_MEMBER", $c[] = $user && $level >= 1 ? true : false); } /** * The current User's Membership Access Level. * * Negative `-1` through max Membership Level number. * Negative `-1` indicates they are NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_access_role")` * @see `get_user_field("optimizemember_access_level")` * @see `get_user_field("optimizemember_access_label")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL")) { define("OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL", $c[] = (int) $level); } /** * The current User's Membership Access Label. * * As configured by the site owner. Each Membership Level is associated with a Membership Label * *( i.e. Bronze, Silver, Gold, Platinum )*, or whatever the site owner has configured. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_access_role")` * @see `get_user_field("optimizemember_access_level")` * @see `get_user_field("optimizemember_access_label")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL")) { define("OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL", isset($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $level . "_label"]) ? $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $level . "_label"] : ''); } /** * The current User's Paid Subscription ID ( when applicable ). * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_subscr_id")` * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() * @see `get_user_option("optimizemember_subscr_id")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_CUSTOM * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID")) { define("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID", $c[] = $user ? (string) $subscr_id : ""); } /** * The current User's Paid Subscription ID ( when applicable ); * otherwise, this will contain their WordPress User ID. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_subscr_or_wp_id")` * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() * @see `get_user_option("optimizemember_subscr_id")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_CUSTOM * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID")) { define("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID", $c[] = $user ? $subscr_id ? (string) $subscr_id : (string) $user->ID : ""); } /** * The current User's Paid Subscription Gateway Code ( when applicable ). * * Usually one of these values: `paypal`, `authnet`, `clickbank`, `google`, `ccbill`, `alipay`. * * An empty string if NOT logged-in, or if NOT a paying Member. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_subscr_gateway")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_CUSTOM * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() * @see `get_user_option("optimizemember_subscr_gateway")` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY")) { define("OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY", $c[] = $user ? (string) $subscr_gateway : ""); } /** * The current User's Custom String, associated with their Profile. * * For paying Members, this should always start with the installation domain name. * This is taken from the `custom=""` Attribute in your Button/Form Shortcode. * * Other pipe delimited values may follow the installation domain name, if configured by the site owner. * For instance, this might be equal to something like: `www.example.com|cv1|cv2|cv3`. * * An empty string if NOT logged-in, or if NOT a paying Member. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_CUSTOM; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_CUSTOM" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_CUSTOM); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_custom")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() * @see `get_user_option("optimizemember_custom")` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_CUSTOM")) { define("OPTIMIZEMEMBER_CURRENT_USER_CUSTOM", $c[] = $user ? (string) $custom : ""); } /** * The current User's Registration Time. * * The Registration Time, is the time at which the Username was created for the account, that's it. * There's nothing special about this. This simply returns a {@link http://en.wikipedia.org/wiki/Unix_time Unix Timestamp}. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_registration_time() * * @see optimizeMember\API_Functions\optimizemember_paid_registration_time() * @see `optimizemember_paid_registration_time("level1")` * * @see optimizeMember\API_Functions\get_user_field() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME")) { define("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME", $c[] = $user && $user->user_registered ? (int) strtotime($user->user_registered) : 0); } /** * The current User's first Paid Registration Time; regardless of which paid Level they gained access to. * * **NOTE** A Paid Registration Time, is NOT necessarily related specifically to a Payment. * optimizeMember records a Paid Registration Time, anytime a User acquires paid Membership Level Access. * * In other words, if you create a new User inside your Dashboard at a Membership Level greater than Level #0, * optimizeMember will record a Paid Registration Time immediately, because Membership Levels > 0, are reserved for paying Members. * optimizeMember monitors changes to all User accounts, and records the first Paid Registration Time for each Member, at each paid Membership Level. * So, optimizeMember stores the first Time a Member reaches each Level of paid access; and optimizeMember does NOT care if they *actually* paid, or not. * * If the current User has never been at a paid Membership Level, this will be equal to `0`. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME); * </script> * ``` * * If you need to know the last time an actual payment was received, please use ``get_user_option ("optimizemember_last_payment_time")``. * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_registration_time() * * @see optimizeMember\API_Functions\optimizemember_paid_registration_time() * @see `optimizemember_paid_registration_time("level1")` * * @see optimizeMember\API_Functions\get_user_field() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME")) { define("OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME", $c[] = $user && (int) $paid_registration_times["level"] ? (int) $paid_registration_times["level"] : 0); } /** * The number of days the current User has been a paid Member. * * **NOTE** This is calculated using the first Paid Registration Time. * A Paid Registration Time, is NOT necessarily related specifically to a Payment. * optimizeMember records a Paid Registration Time, anytime a User acquires paid Membership Level Access. * * In other words, if you create a new User inside your Dashboard at a Membership Level greater than Level #0, * optimizeMember will record a Paid Registration Time immediately, because Membership Levels > 0, are reserved for paying Members. * optimizeMember monitors changes to all User accounts, and records the first Paid Registration Time for each Member, at each paid Membership Level. * So, optimizeMember stores the first Time a Member reaches each Level of paid access; and optimizeMember does NOT care if they *actually* paid, or not. * * If the current User has never been at a paid Membership Level, this will be equal to `0`. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS); * </script> * ``` * * If you need to know the last time an actual payment was received, please use ``get_user_option ("optimizemember_last_payment_time")``. * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_registration_time() * * @see optimizeMember\API_Functions\optimizemember_paid_registration_time() * @see `optimizemember_paid_registration_time("level1")` * * @see optimizeMember\API_Functions\get_user_field() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS")) { define("OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS", $c[] = $user && (int) $paid_registration_times["level"] ? (int) floor((strtotime("now") - (int) $paid_registration_times["level"]) / 86400) : 0); } /** * The number of days the current User has had an account, period. * * **NOTE** This is calculated with Registration Time. * The Registration Time, is the time at which the Username was created for the account, that's it. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_registration_time() * * @see optimizeMember\API_Functions\optimizemember_paid_registration_time() * @see `optimizemember_paid_registration_time("level1")` * * @see optimizeMember\API_Functions\get_user_field() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_TIME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_TIME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PAID_REGISTRATION_DAYS * * @see http://codex.wordpress.org/Function_Reference/get_user_option get_user_option() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS")) { define("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_DAYS", $c[] = $user && $user->user_registered ? (int) floor((strtotime("now") - strtotime($user->user_registered)) / 86400) : 0); } /** * The current User's Display Name. * * This is usually a name they prefer to be known by publicly. * Some Users/Members prefer to use their First Name as the Display Name, and keep their Last Name private. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("display_name")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME")) { define("OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME", $c[] = $user ? (string) $user->display_name : ""); } /** * The current User's First Name. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("first_name")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME")) { define("OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME", $c[] = $user ? (string) $user->first_name : ""); } /** * The current User's Last Name. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("last_name")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME")) { define("OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME", $c[] = $user ? (string) $user->last_name : ""); } /** * The current User's Username. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_LOGIN; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_LOGIN" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_LOGIN); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("user_login")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_LOGIN")) { define("OPTIMIZEMEMBER_CURRENT_USER_LOGIN", $c[] = $user ? (string) $user->user_login : ""); } /** * The current User's Email Address. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_EMAIL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_EMAIL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_EMAIL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("user_email")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_EMAIL")) { define("OPTIMIZEMEMBER_CURRENT_USER_EMAIL", $c[] = $user ? (string) $user->user_email : ""); } /** * The current User's IP Address ( even if/when NOT logged-in ). * * This is the current IP Address, taken from ``$_SERVER["REMOTE_ADDR"]``. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_IP; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_IP" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_IP); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_registration_ip")` * @see `get_user_field("ip")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://www.php.net/manual/en/reserved.variables.server.php Superglobal $_SERVER * @see `$_SERVER["REMOTE_ADDR"]` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_IP")) { define("OPTIMIZEMEMBER_CURRENT_USER_IP", $c[] = (string) $_SERVER["REMOTE_ADDR"]); } /** * IP Address the current User had during registration. * * This is the IP Address the User had at the time they registered. * It's useful when you need to know the original IP Address they used. * For instance, this is needed by some affiliate tracking systems; such as iDevAffiliate. * * An empty string if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_registration_ip")` * @see `get_user_field("ip")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://www.php.net/manual/en/reserved.variables.server.php Superglobal $_SERVER * @see `$_SERVER["REMOTE_ADDR"]` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP")) { define("OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP", $c[] = $user ? (string) $registration_ip : ""); } /** * The current User's WordPress User ID. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("id")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIELDS * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_ID")) { define("OPTIMIZEMEMBER_CURRENT_USER_ID", $c[] = $user ? (int) $user->ID : 0); } /** * The current User's fields, provided by optimizeMember. * * This holds a JSON-encoded array, containing these array keys: * * o `id` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ID} * o `ip` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_IP} * o `reg_ip` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP} * o `email` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_EMAIL} * o `login` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LOGIN} * o `first_name` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME} * o `last_name` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME} * o `display_name` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME} * o `subscr_id` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID} * o `subscr_or_wp_id` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID} * o `subscr_gateway` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY} * o `custom` = value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_CUSTOM} * o and any Custom Registration/Profile Fields configured by the site owner. * * This will be an empty JSON-encoded array if NOT logged-in. * * ———— Code Sample ( Using ``json_decode(JSON, true)`` ) ———— * ``` * <!php * $fields = json_decode(OPTIMIZEMEMBER_CURRENT_USER_FIELDS, true); * echo $fields["email"]; # The current User's Email Address. * echo $fields["my_unique_field_id"]; # A Custom Registration/Profile Field configured by the site owner. * !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet user_field="id" /] * [opmGet user_field="ip" /] * [opmGet user_field="reg_ip" /] * [opmGet user_field="email" /] * [opmGet user_field="login" /] * [opmGet user_field="first_name" /] * [opmGet user_field="last_name" /] * [opmGet user_field="display_name" /] * [opmGet user_field="optimizemember_subscr_id" /] * [opmGet user_field="optimizemember_subscr_wp_id" /] * [opmGet user_field="optimizemember_subscr_gateway" /] * [opmGet user_field="optimizemember_custom" /] * [opmGet user_field="my_custom_field_id" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_FIELDS.id); * document.write(OPTIMIZEMEMBER_CURRENT_USER_FIELDS.display_name); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_FIELDS")) { define("OPTIMIZEMEMBER_CURRENT_USER_FIELDS", $c[] = $user ? json_encode(array_merge(array("id" => OPTIMIZEMEMBER_CURRENT_USER_ID, "ip" => OPTIMIZEMEMBER_CURRENT_USER_IP, "reg_ip" => OPTIMIZEMEMBER_CURRENT_USER_REGISTRATION_IP, "email" => OPTIMIZEMEMBER_CURRENT_USER_EMAIL, "login" => OPTIMIZEMEMBER_CURRENT_USER_LOGIN, "first_name" => OPTIMIZEMEMBER_CURRENT_USER_FIRST_NAME, "last_name" => OPTIMIZEMEMBER_CURRENT_USER_LAST_NAME, "display_name" => OPTIMIZEMEMBER_CURRENT_USER_DISPLAY_NAME, "subscr_id" => OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_ID, "subscr_or_wp_id" => OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID, "subscr_gateway" => OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_GATEWAY, "custom" => OPTIMIZEMEMBER_CURRENT_USER_CUSTOM), (array) $custom_fields)) : json_encode(array())); } /** * Indicates the number of unique Files the current User is allowed to download every X days. * * `0` means no access to File Downloads has been made available to the User. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED")) { define("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED", $c[] = (int) $file_downloads["allowed"]); } /** * Does the current User have access to unlimited File Downloads. * * A value of true means the current User's allowed downloads are >= `999999999`, and false means it is not. * This is useful if you are allowing unlimited ( i.e. `999999999+` ) Downloads on some Membership Levels. * You can display `Unlimited` instead of a numerical value. * * This will be false if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php * if(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) * echo 'You have access to unlimited downloads.'; * !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmIf constant(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED)] * You have access to unlimited downloads. * [/opmIf] * * <script type="text/javascript"> * if(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED) * document.write('You have access to unlimited downloads.'); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var bool * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED")) { define("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED", $c[] = $file_downloads["allowed"] >= 999999999 ? true : false); } /** * Indicates the number of unique Files the current User has downloaded in the last X days. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @note This does NOT include File Downloads accessed with an Advanced File Download Key. * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY")) { define("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY", $c[] = (int) $file_downloads["currently"]); } /** * Indicates the X number of days, configured by the site owner; for the current User. * * This will be equal to `0` if NOT logged-in. * * ———— Quick PHP Code Sample ———— * ``` * You are allowed to download <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED; !> files, every <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS; !> days. * You've downloaded <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY; !> files in the last <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS; !> days. * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * You are allowed to download [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED" /] files, every [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days. * You've downloaded [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days. * * You are allowed to download <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days. * You've downloaded <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS")) { define("OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS", $c[] = (int) $file_downloads["allowed_days"]); } /** * The configured Page ID, for the Download Limit Exceeded Page. * * This will be equal to `0` if NOT yet configured. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID")) { define("OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID", $c[] = (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"]); } /** * The configured Page ID, for the Membership Options Page. * * This will be equal to `0` if NOT yet configured. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see `Dashboard -> optimizeMember -> General Options -> Membership Options Page` */ if (!defined("OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID")) { define("OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID", $c[] = (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]); } /** * The configured Page ID, for the Login Welcome Page. * * This will be equal to `0` if NOT yet configured. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see `Dashboard -> optimizeMember -> General Options -> Login Welcome Page` */ if (!defined("OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID")) { define("OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID", $c[] = (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]); } /** * A URL, which leads to the Stand-Alone Profile Modification Page. * * This is always a reference to `/?optimizemember_profile=1` *( i.e. the Stand-Alone version )*. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see `Dashboard -> optimizeMember -> General Options -> Profile Modifications` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL")) { define("OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL", $c[] = (string) site_url("/?optimizemember_profile=1")); } /** * A URL, which leads to the Download Limit Exceeded Page; as configured by the site owner. * * If the site owner has not yet configured a Download Limit Exceeded Page, this defaults to the Home Page. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL")) { define("OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL", $c[] = (string) $links["file_download_limit_exceeded_page"]); } /** * A URL, which leads to the Membership Options Page; as configured by the site owner. * * If the site owner has not yet configured a Membership Options Page, this defaults to the Home Page. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see `Dashboard -> optimizeMember -> General Options -> Membership Options Page` */ if (!defined("OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL")) { define("OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL", $c[] = (string) $links["membership_options_page"]); } /* Signup page. */ /** * The URL, which leads to the Login Welcome Page; as configured by the site owner. * * If the site owner has not yet configured a Login Welcome Page, this defaults to the Home Page. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see `Dashboard -> optimizeMember -> General Options -> Login Welcome Page` */ if (!defined("OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL")) { define("OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL", $c[] = $login_redirection_url ? (string) $login_redirection_url : (string) $links["login_welcome_page"]); } /** * The URL, which logs the current User out of their account. * * This is the value provided by WordPress. It's the same as using ``wp_logout_url()``. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LOGOUT_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LOGOUT_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LOGOUT_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see http://codex.wordpress.org/Function_Reference/wp_logout_url wp_logout_url() */ if (!defined("OPTIMIZEMEMBER_LOGOUT_PAGE_URL")) { define("OPTIMIZEMEMBER_LOGOUT_PAGE_URL", $c[] = (string) wp_logout_url()); } /* This triggers `wp_nonce_tick()`; watch out for dynamic changes. */ /** * The URL, where a User can log into their account. * * This is the value provided by WordPress. It's the same as using ``wp_login_url()``. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LOGIN_PAGE_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LOGIN_PAGE_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LOGIN_PAGE_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGOUT_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_MEMBERSHIP_OPTIONS_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LOGIN_WELCOME_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_PROFILE_MODIFICATION_PAGE_URL * * @see http://codex.wordpress.org/Function_Reference/wp_login_url wp_login_url() */ if (!defined("OPTIMIZEMEMBER_LOGIN_PAGE_URL")) { define("OPTIMIZEMEMBER_LOGIN_PAGE_URL", $c[] = (string) wp_login_url()); } /* Will not trigger `wp_nonce_tick()`, no worries in this case. */ /** * Each Membership Level ( Label ); as configured by the site owner. * * The defaults are as follows: * o Level #0 ``OPTIMIZEMEMBER_LEVEL0_LABEL`` = Free Subscriber * o Level #1 ``OPTIMIZEMEMBER_LEVEL1_LABEL`` = Bronze Member * o Level #2 ``OPTIMIZEMEMBER_LEVEL2_LABEL`` = Silver Member * o Level #3 ``OPTIMIZEMEMBER_LEVEL3_LABEL`` = Gold Member * o Level #4 ``OPTIMIZEMEMBER_LEVEL4_LABEL`` = Platinum Member * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LEVEL0_LABEL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LEVEL0_LABEL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LEVEL0_LABEL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\get_user_field() * @see `get_user_field("optimizemember_access_role")` * @see `get_user_field("optimizemember_access_level")` * @see `get_user_field("optimizemember_access_label")` * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LABEL * * @see http://codex.wordpress.org/Function_Reference/wp_get_current_user wp_get_current_user() * * @see `Dashboard -> optimizeMember -> General Options -> Membership Level ( Labels )` */ for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n++) { if (!defined($OPTIMIZEMEMBER_LEVELn_LABEL = "OPTIMIZEMEMBER_LEVEL" . $n . "_LABEL")) { define($OPTIMIZEMEMBER_LEVELn_LABEL, $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_label"]); } } /** * File Downloads allowed at each Membership Level; as configured by the site owner. * * The defaults are as follows: * o Level #0 ``OPTIMIZEMEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED`` = `0` * o Level #1 ``OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED`` = `0` * o Level #2 ``OPTIMIZEMEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED`` = `0` * o Level #3 ``OPTIMIZEMEMBER_LEVEL3_FILE_DOWNLOADS_ALLOWED`` = `0` * o Level #4 ``OPTIMIZEMEMBER_LEVEL4_FILE_DOWNLOADS_ALLOWED`` = `0` * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n++) { if (!defined($OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED = "OPTIMIZEMEMBER_LEVEL" . $n . "_FILE_DOWNLOADS_ALLOWED")) { define($OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED, $c[] = (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_file_downloads_allowed"]); } } /** * File Download days, at each Membership Level; as configured by the site owner. * * The defaults are as follows: * o Level #0 ``OPTIMIZEMEMBER_LEVEL0_FILE_DOWNLOADS_ALLOWED_DAYS`` = `0` * o Level #1 ``OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS`` = `0` * o Level #2 ``OPTIMIZEMEMBER_LEVEL2_FILE_DOWNLOADS_ALLOWED_DAYS`` = `0` * o Level #3 ``OPTIMIZEMEMBER_LEVEL3_FILE_DOWNLOADS_ALLOWED_DAYS`` = `0` * o Level #4 ``OPTIMIZEMEMBER_LEVEL4_FILE_DOWNLOADS_ALLOWED_DAYS`` = `0` * * ———— Quick PHP Code Sample ———— * ``` * At Level #1, Members are allowed to download <!php echo OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED; !> files, every <!php echo OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS; !> days. * You are currently at Membership Level #<!php echo OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL; !>. You've downloaded <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY; !> files in the last <!php echo OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS; !> days. * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * At Level #1, Members are allowed to download [opmGet constant="OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED" /] files, every [opmGet constant="OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS" /] days. * You are currently at Membership Level #[opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL" /]. You've downloaded [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY" /] files in the last [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS" /] days. * * At Level #1, Members are allowed to download <script type="text/javascript">document.write(OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED);</script> files, every <script type="text/javascript">document.write(OPTIMIZEMEMBER_LEVEL1_FILE_DOWNLOADS_ALLOWED_DAYS);</script> days. * You are currently at Membership Level #<script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL);</script>. You've downloaded <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY);</script> files in the last <script type="text/javascript">document.write(OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS);</script> days. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var int * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS * * @see `Dashboard -> optimizeMember -> Download Options` */ for ($n = 0; $n <= $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n++) { if (!defined($OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS = "OPTIMIZEMEMBER_LEVEL" . $n . "_FILE_DOWNLOADS_ALLOWED_DAYS")) { define($OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS, $c[] = (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_file_downloads_allowed_days"]); } } /** * Inline File Download extensions; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Functions\optimizemember_user_downloads() * @see optimizeMember\API_Functions\optimizemember_total_downloads_of() * @see optimizeMember\API_Functions\optimizemember_total_unique_downloads_of() * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_IS_UNLIMITED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_ALLOWED_DAYS * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_DOWNLOADS_CURRENTLY * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_ID * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_FILE_DOWNLOAD_LIMIT_EXCEEDED_PAGE_URL * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_LEVELn_FILE_DOWNLOADS_ALLOWED_DAYS * * @see `Dashboard -> optimizeMember -> Download Options` */ if (!defined("OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS")) { define("OPTIMIZEMEMBER_FILE_DOWNLOAD_INLINE_EXTENSIONS", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_inline_extensions"]); } /** * From: Name, for optimizeMember-specific emails; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL * * @see `Dashboard -> optimizeMember -> General Options` */ if (!defined("OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME")) { define("OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_name"]); } /** * From: Email Address, for optimizeMember-specific emails; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_REG_EMAIL_FROM_NAME * * @see `Dashboard -> optimizeMember -> General Options` */ if (!defined("OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL")) { define("OPTIMIZEMEMBER_REG_EMAIL_FROM_EMAIL", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["reg_email_from_email"]); } /** * Full URL to PayPal IPN handler, provided by optimizeMember. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_RETURN_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN * * @see `Dashboard -> optimizeMember -> PayPal Options -> IPN Integration` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL")) { define("OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL", $c[] = (string) site_url("/?optimizemember_paypal_notify=1")); } /** * Full URL to PayPal Auto-Return/PDT handler, provided by optimizeMember. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_RETURN_URL; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_RETURN_URL" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_PAYPAL_RETURN_URL); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN * * @see `Dashboard -> optimizeMember -> PayPal Options -> Auto-Return/PDT Integration` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_RETURN_URL")) { define("OPTIMIZEMEMBER_PAYPAL_RETURN_URL", $c[] = (string) site_url("/?optimizemember_paypal_return=1")); } /** * PayPal Business Email Address; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_BUSINESS; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_BUSINESS" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_PAYPAL_BUSINESS); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_USERNAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_PASSWORD * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_BUSINESS")) { define("OPTIMIZEMEMBER_PAYPAL_BUSINESS", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_business"]); } /** * PayPal endpoint domain ( changes when Sandbox Mode is enabled ). * * o In Sandbox Mode, this is: `www.sandbox.paypal.com`. * o In Production Mode, this is: `www.paypal.com`. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_ENDPOINT; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_ENDPOINT" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_PAYPAL_ENDPOINT); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_ENDPOINT")) { define("OPTIMIZEMEMBER_PAYPAL_ENDPOINT", $c[] = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_sandbox"] ? "www.sandbox.paypal.com" : "www.paypal.com"); } /** * PayPal API endpoint domain ( changes when Sandbox Mode is enabled ). * * o In Sandbox Mode, this is: `api-3t.sandbox.paypal.com`. * o In Production Mode, this is: `api-3t.paypal.com`. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_ENDPOINT * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT")) { define("OPTIMIZEMEMBER_PAYPAL_API_ENDPOINT", $c[] = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_sandbox"] ? "api-3t.sandbox.paypal.com" : "api-3t.paypal.com"); } /** * PayPal API Username; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_API_USERNAME; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_API_USERNAME" /] * * NOTE: For security purposes, * this API Constant is NOT available as a JavaScript Global. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_BUSINESS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_PASSWORD * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_API_USERNAME")) { define("OPTIMIZEMEMBER_PAYPAL_API_USERNAME", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_api_username"]); } /** * PayPal API Password; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_API_PASSWORD; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_API_PASSWORD" /] * * NOTE: For security purposes, * this API Constant is NOT available as a JavaScript Global. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_BUSINESS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_USERNAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_API_PASSWORD")) { define("OPTIMIZEMEMBER_PAYPAL_API_PASSWORD", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_api_password"]); } /** * PayPal API Signature; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE" /] * * NOTE: For security purposes, * this API Constant is NOT available as a JavaScript Global. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_BUSINESS * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_USERNAME * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_API_PASSWORD * * @see `Dashboard -> optimizeMember -> PayPal Options -> Account Details` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE")) { define("OPTIMIZEMEMBER_PAYPAL_API_SIGNATURE", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_api_signature"]); } /** * PayPal PDT Identity Token; as configured by the site owner. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN" /] * * NOTE: For security purposes, * this API Constant is NOT available as a JavaScript Global. * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_RETURN_URL * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_PAYPAL_NOTIFY_URL * * @see `Dashboard -> optimizeMember -> PayPal Options -> Auto-Return/PDT Integration` */ if (!defined("OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN")) { define("OPTIMIZEMEMBER_PAYPAL_PDT_IDENTITY_TOKEN", $c[] = (string) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["paypal_identity_token"]); } /** * PayPal value for Payment Buttons with input name: `invoice`. * * This can be used to auto-fill the `invoice` value in PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * Note. This API Constant is excluded from the ``$c[]`` hash calculation used in the generation of {@link optimizeMember\API_Constants\WS_PLUGIN__OPTIMIZEMEMBER_API_CONSTANTS_MD5}. * It MUST be excluded, because the value of this particular API Constant will change too often *( i.e. it changes, depending on microtime )*. * So, when including this API Constant in the JavaScript API as a Global, care must be taken to build an Invoice, using JavaScript * to calculate the unique time-based code, with something like: `Math.round (new Date ().getTime ())`. * * These five API Constants are special. * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_VALUE_FOR_PP_INV} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1} * * They are used by the PayPal Button Generator for optimizeMember. * * The `INV` value can be used to auto-fill the `invoice` for PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * The `ON0/OS0` values, are how optimizeMember identifies an existing Member *( and/or a Free Subscriber )*, who is already logged-in * when they click a PayPal Modification Button that was generated for you by optimizeMember's Button Generator. * * Instead of forcing a Member *( and/or a Free Subscriber )* to re-register for a new account, * optimizeMember can identify their existing account, and update it; according to the modified terms in your Button Code. * These three Button Code parameters: `on0`, `os0`, `modify`, work together in harmony. If you're using the Shortcode Format for PayPal Buttons, * you won't even see these, because they're added internally by the Shortcode processor. * * The `ON1/OS1` values, are used by optimizeMember to identify a Customer's IP Address through IPN communications with PayPal. * * Anyway, these five API Constants are just documented here for clarity; * you probably won't use any of these directly; the Button Generator pops them in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_VALUE_FOR_PP_INV; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_VALUE_FOR_PP_INV" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_VALUE_FOR_PP_INV); * </script> * ``` * * @package optimizeMember\API_Constants * @since 110720 * * @var str * * @see optimizeMember\API_Functions\optimizemember_value_for_pp_inv() * * @see `Dashboard -> optimizeMember -> PayPal Buttons` */ if (!defined("OPTIMIZEMEMBER_VALUE_FOR_PP_INV")) { define("OPTIMIZEMEMBER_VALUE_FOR_PP_INV", uniqid() . "~" . OPTIMIZEMEMBER_CURRENT_USER_IP); } /** * PayPal value for Payment Buttons with input name: `on0`. * * Used in PayPal Modification Buttons *( i.e. upgrades/downgrades )*. * * This auto-fills the `on0` value in PayPal Button Codes. If a Button Code is presented to a logged-in Member, * this will auto-fill the value for the `on0` input variable, with the string: "Referencing Customer ID". * Otherwise, it will be set to a default value of: "Originating Domain". * * These five API Constants are special. * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_VALUE_FOR_PP_INV} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1} * * They are used by the PayPal Button Generator for optimizeMember. * * The `INV` value can be used to auto-fill the `invoice` for PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * The `ON0/OS0` values, are how optimizeMember identifies an existing Member *( and/or a Free Subscriber )*, who is already logged-in * when they click a PayPal Modification Button that was generated for you by optimizeMember's Button Generator. * * Instead of forcing a Member *( and/or a Free Subscriber )* to re-register for a new account, * optimizeMember can identify their existing account, and update it; according to the modified terms in your Button Code. * These three Button Code parameters: `on0`, `os0`, `modify`, work together in harmony. If you're using the Shortcode Format for PayPal Buttons, * you won't even see these, because they're added internally by the Shortcode processor. * * The `ON1/OS1` values, are used by optimizeMember to identify a Customer's IP Address through IPN communications with PayPal. * * Anyway, these five API Constants are just documented here for clarity; * you probably won't use any of these directly; the Button Generator pops them in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0 * * @see `Dashboard -> optimizeMember -> PayPal Buttons` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0")) { define("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0", $c[] = OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID ? "Referencing Customer ID" : "Originating Domain"); } /** * PayPal value for Payment Buttons with input name: `os0`. * * Used in PayPal Modification Buttons *( i.e. upgrades/downgrades )*. * * This auto-fills the `os0` value in PayPal Button Codes. If a Button Code is presented to a logged-in Member, * this will auto-fill the value for the `os0` input variable, with the value of {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID}. * Otherwise, it will be set to a default value of ``$_SERVER["HTTP_HOST"]`` *( the originating domain name )*. * * These five API Constants are special. * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_VALUE_FOR_PP_INV} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1} * * They are used by the PayPal Button Generator for optimizeMember. * * The `INV` value can be used to auto-fill the `invoice` for PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * The `ON0/OS0` values, are how optimizeMember identifies an existing Member *( and/or a Free Subscriber )*, who is already logged-in * when they click a PayPal Modification Button that was generated for you by optimizeMember's Button Generator. * * Instead of forcing a Member *( and/or a Free Subscriber )* to re-register for a new account, * optimizeMember can identify their existing account, and update it; according to the modified terms in your Button Code. * These three Button Code parameters: `on0`, `os0`, `modify`, work together in harmony. If you're using the Shortcode Format for PayPal Buttons, * you won't even see these, because they're added internally by the Shortcode processor. * * The `ON1/OS1` values, are used by optimizeMember to identify a Customer's IP Address through IPN communications with PayPal. * * Anyway, these five API Constants are just documented here for clarity; * you probably won't use any of these directly; the Button Generator pops them in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0 * * @see `Dashboard -> optimizeMember -> PayPal Buttons` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0")) { define("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0", $c[] = OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID ? OPTIMIZEMEMBER_CURRENT_USER_SUBSCR_OR_WP_ID : (string) $_SERVER["HTTP_HOST"]); } /** * PayPal value for Payment Buttons with input name: `on1`. * * This auto-fills the `on1` value in PayPal Button Codes. * This always contains the string: "Customer IP Address". * * These five API Constants are special. * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_VALUE_FOR_PP_INV} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1} * * They are used by the PayPal Button Generator for optimizeMember. * * The `INV` value can be used to auto-fill the `invoice` for PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * The `ON0/OS0` values, are how optimizeMember identifies an existing Member *( and/or a Free Subscriber )*, who is already logged-in * when they click a PayPal Modification Button that was generated for you by optimizeMember's Button Generator. * * Instead of forcing a Member *( and/or a Free Subscriber )* to re-register for a new account, * optimizeMember can identify their existing account, and update it; according to the modified terms in your Button Code. * These three Button Code parameters: `on0`, `os0`, `modify`, work together in harmony. If you're using the Shortcode Format for PayPal Buttons, * you won't even see these, because they're added internally by the Shortcode processor. * * The `ON1/OS1` values, are used by optimizeMember to identify a Customer's IP Address through IPN communications with PayPal. * * Anyway, these five API Constants are just documented here for clarity; * you probably won't use any of these directly; the Button Generator pops them in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1 * * @see `Dashboard -> optimizeMember -> PayPal Buttons` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1")) { define("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1", $c[] = "Customer IP Address"); } /** * PayPal value for Payment Buttons with input name: `os1`. * * This auto-fills the `os1` value in PayPal Button Codes, * with the Customer's IP Address, via ``$_SERVER["REMOTE_ADDR"]``. * * These five API Constants are special. * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_VALUE_FOR_PP_INV} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS0} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1} * o {@link optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1} * * They are used by the PayPal Button Generator for optimizeMember. * * The `INV` value can be used to auto-fill the `invoice` for PayPal Button Codes, with a unique Code~IP combination. * However, in cases where multiple Buttons are displayed on the same page, the alternative {@link optimizeMember\API_Functions\optimizemember_value_for_pp_inv()} function should be used instead. * * The `ON0/OS0` values, are how optimizeMember identifies an existing Member *( and/or a Free Subscriber )*, who is already logged-in * when they click a PayPal Modification Button that was generated for you by optimizeMember's Button Generator. * * Instead of forcing a Member *( and/or a Free Subscriber )* to re-register for a new account, * optimizeMember can identify their existing account, and update it; according to the modified terms in your Button Code. * These three Button Code parameters: `on0`, `os0`, `modify`, work together in harmony. If you're using the Shortcode Format for PayPal Buttons, * you won't even see these, because they're added internally by the Shortcode processor. * * The `ON1/OS1` values, are used by optimizeMember to identify a Customer's IP Address through IPN communications with PayPal. * * Anyway, these five API Constants are just documented here for clarity; * you probably won't use any of these directly; the Button Generator pops them in. * * ———— Quick PHP Code Sample ———— * ``` * <!php echo OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1; !> * ``` * ———— Shortcode & JavaScript Equivalents ———— * ``` * [opmGet constant="OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1" /] * * <script type="text/javascript"> * document.write(OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1); * </script> * ``` * * @package optimizeMember\API_Constants * @since 3.5 * * @var str * * @see optimizeMember\API_Constants\OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_ON1 * * @see `Dashboard -> optimizeMember -> PayPal Buttons` */ if (!defined("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1")) { define("OPTIMIZEMEMBER_CURRENT_USER_VALUE_FOR_PP_OS1", $c[] = (string) $_SERVER["REMOTE_ADDR"]); } /* Allows other Constants to be calculated with their checksums included too. */ $c = apply_filters("ws_plugin__optimizemember_during_constants_c", $c, get_defined_vars()); /** * Used internally by optimizeMember to compare the value of all API Constants at once. * * @package optimizeMember\API_Constants * @since 3.5 * * @var str */ if (!defined("WS_PLUGIN__OPTIMIZEMEMBER_API_CONSTANTS_MD5")) { define("WS_PLUGIN__OPTIMIZEMEMBER_API_CONSTANTS_MD5", md5(serialize($c) . c_ws_plugin__optimizemember_utilities::ver_checksum())); } /* Calls the after Hook. Do NOT set Constants here. */ do_action("ws_plugin__optimizemember_after_constants", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
/** * Handles Page Level Access *( for specific Pages )*. * * @package optimizeMember\Pages * @since 3.5 * * @param int|str $page_id Numeric Page ID. * @param bool $check_user Test permissions against the current User? Defaults to true. * @return null|array Non-empty array ( with details ) if access is denied, else null if access is allowed. * * @todo Provide more information in the return array ( like MOP Vars ). */ public static function check_specific_page_level_access($page_id = FALSE, $check_user = TRUE) { do_action("ws_plugin__optimizemember_before_check_specific_page_level_access", get_defined_vars()); /**/ $excluded = apply_filters("ws_plugin__optimizemember_check_specific_page_level_access_excluded", false, get_defined_vars()); /**/ if (!$excluded && is_numeric($page_id) && ($page_id = (int) $page_id) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { $page_uri = c_ws_plugin__optimizemember_utils_urls::parse_uri(get_page_link($page_id)); /* Get a full valid URI for this Page now. */ /**/ if (!c_ws_plugin__optimizemember_systematics_sp::is_wp_systematic_use_specific_page($page_id, $page_uri)) { $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) ? $user : false; /* Current User's object. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"] && $page_id === (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"] && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level0")) && $page_id !== (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => 0), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($login_redirection_uri = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri($user, "root-returns-false")) && preg_match("/^" . preg_quote($login_redirection_uri, "/") . "\$/", $page_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level0")) && $page_id !== (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => 0), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"] && $page_id === (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"] && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level0")) && $page_id !== (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => 0), get_defined_vars()); } else { if (!c_ws_plugin__optimizemember_systematics_sp::is_systematic_use_specific_page($page_id, $page_uri)) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_pages"] === "all" && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if (strpos($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"], "all-") !== false && in_array("all-pages", preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"])) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_pages"] && in_array($page_id, preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_pages"])) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } /**/ if (has_tag("", $page_id)) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] === "all" && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] && has_tag(preg_split("/[\r\n\t;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"]), $page_id) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"]) { /* URIs configured at this Level? */ /**/ foreach (preg_split("/[\r\n\t]+/", c_ws_plugin__optimizemember_ruris::fill_ruri_level_access_rc_vars($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"], $user)) as $str) { if ($str && preg_match("/" . preg_quote($str, "/") . "/", $page_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } /**/ if (is_array($ccaps_req = get_post_meta($page_id, "optimizemember_ccaps_req", true)) && !empty($ccaps_req)) { foreach ($ccaps_req as $ccap) { /* The ``$user`` MUST satisfy ALL Custom Capabilities. */ if (strlen($ccap) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_ccap_" . $ccap))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_ccap_req" => $ccap), get_defined_vars()); } } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["specific_ids"] && in_array($page_id, preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["specific_ids"])) && (!$check_user || !c_ws_plugin__optimizemember_sp_access::sp_access($page_id, "read-only"))) { return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", array("optimizemember_sp_req" => $page_id), get_defined_vars()); } } } } } /**/ do_action("ws_plugin__optimizemember_during_check_specific_page_level_access", get_defined_vars()); } } /**/ return apply_filters("ws_plugin__optimizemember_check_specific_page_level_access", null, get_defined_vars()); }
/** * Parses a Special Login Redirection URI. * * @package optimizeMember\Login_Redirects * @since 3.5 * * @param obj $user Optional. A WP_User object. Defaults to the current User, if logged-in. * @param bool $root_returns_false Defaults to false. True if the function should return false when a URI is reduced to the site root. * @return str|bool A Special Login Redirection URI with Replacement Codes having been parsed, or false if ``$root_returns_false = true`` and the URI is the site root. */ public static function login_redirection_uri($user = FALSE, $root_returns_false = FALSE) { eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_before_login_redirection_uri", get_defined_vars()); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if ($url = c_ws_plugin__optimizemember_login_redirects::login_redirection_url($user, $root_returns_false)) { $uri = c_ws_plugin__optimizemember_utils_urls::parse_uri($url); } /**/ return apply_filters("ws_plugin__optimizemember_login_redirection_uri", !empty($uri) ? $uri : false, get_defined_vars()); }
/** * Filters administrative menu bar for Users/Members. * * @package optimizeMember\Admin_Lockouts * @since 3.5 * * @attaches-to ``add_action("admin_bar_menu");`` * * @param obj $wp_admin_bar Expects the ``$wp_admin_bar``, by reference; passed in by the Action Hook. * @return null After modifying ``$wp_admin_var``. */ public static function filter_admin_menu_bar(&$wp_admin_bar = FALSE) { do_action("ws_plugin__optimizemember_before_filter_admin_menu_bar", get_defined_vars()); /**/ $uses_nodes = version_compare(get_bloginfo("version"), "3.3-RC1", ">=") ? true : false; /**/ if (is_object($wp_admin_bar) && !current_user_can("edit_posts")) { if ($uses_nodes && $wp_admin_bar->get_node("site-name")) { $id = "s2-site-name"; $title = wp_html_excerpt(get_bloginfo("name"), 42); $title = $title !== get_bloginfo("name") ? trim($title) . "…" : $title; $href = site_url("/"); /**/ $wp_admin_bar->add_node(array("id" => $id, "title" => $title, "href" => $href)); $wp_admin_bar->remove_node("site-name"); /**/ unset($id, $title, $href); } if ($uses_nodes && $wp_admin_bar->get_node("wp-logo")) { $wp_admin_bar->remove_node("wp-logo"); } /* ------- */ if (!$uses_nodes && isset($wp_admin_bar->menu->{"dashboard"})) { unset($wp_admin_bar->menu->{"dashboard"}); } /**/ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-blogs"})) { unset($wp_admin_bar->menu->{"my-blogs"}); } /* ------- */ if ($uses_nodes && $wp_admin_bar->get_node("my-sites")) { $wp_admin_bar->remove_node("my-sites"); } } /**/ if (is_object($wp_admin_bar) && !current_user_can("edit_posts")) { if (apply_filters("ws_plugin__optimizemember_admin_lockout", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["force_admin_lockouts"], get_defined_vars())) { $lwp = c_ws_plugin__optimizemember_login_redirects::login_redirection_url(); $lwp = !$lwp ? get_page_link($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]) : $lwp; /**/ if ($uses_nodes && $wp_admin_bar->get_node("my-account")) { $wp_admin_bar->add_node(array("id" => "my-account", "href" => $lwp)); } /**/ if ($uses_nodes && $wp_admin_bar->get_node("user-info")) { $wp_admin_bar->add_node(array("id" => "user-info", "href" => $lwp)); } /**/ if ($uses_nodes && $wp_admin_bar->get_node("edit-profile")) { $wp_admin_bar->add_node(array("id" => "edit-profile", "href" => $lwp)); } /* ------- */ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account"}["href"])) { $wp_admin_bar->menu->{"my-account"}["href"] = $lwp; } /**/ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account"}["children"]->{"edit-profile"}["href"])) { $wp_admin_bar->menu->{"my-account"}["children"]->{"edit-profile"}["href"] = $lwp; } /**/ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account"}["children"]->{"user-info"}["href"])) { $wp_admin_bar->menu->{"my-account"}["children"]->{"user-info"}["href"] = $lwp; } /* ------- */ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account-with-avatar"}["href"])) { $wp_admin_bar->menu->{"my-account-with-avatar"}["href"] = $lwp; } /**/ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account-with-avatar"}["children"]->{"user-info"}["href"])) { $wp_admin_bar->menu->{"my-account-with-avatar"}["children"]->{"user-info"}["href"] = $lwp; } /**/ if (!$uses_nodes && isset($wp_admin_bar->menu->{"my-account-with-avatar"}["children"]->{"edit-profile"}["href"])) { $wp_admin_bar->menu->{"my-account-with-avatar"}["children"]->{"edit-profile"}["href"] = $lwp; } } } /**/ do_action("ws_plugin__optimizemember_after_filter_admin_menu_bar", get_defined_vars()); /**/ return; /* Return for uniformity. */ }
/** * Handles Post Level Access permissions *( for current Post )*. * * @package optimizeMember\Posts * @since 3.5 * * @return null Or exits script execution after redirection. */ public static function check_post_level_access() { global $post; /* ``get_the_ID()`` unavailable outside The Loop. */ /**/ do_action("ws_plugin__optimizemember_before_check_post_level_access", get_defined_vars()); /**/ $excluded = apply_filters("ws_plugin__optimizemember_check_post_level_access_excluded", false, get_defined_vars()); /**/ if (!$excluded && is_single() && is_object($post) && !empty($post->ID) && ($post_id = (int) $post->ID) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { if (!c_ws_plugin__optimizemember_systematics::is_wp_systematic_use_page()) { $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) ? $user : false; /* Current User's object. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($login_redirection_uri = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri($user, "root-returns-false")) && preg_match("/^" . preg_quote($login_redirection_uri, "/") . "\$/", $_SERVER["REQUEST_URI"]) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level0"))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", 0, $_SERVER["REQUEST_URI"], "sys") . exit; } else { if (!c_ws_plugin__optimizemember_systematics::is_systematic_use_page()) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"] === "all" && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } else { if (strpos($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"], "all-") !== false && in_array("all-" . $post->post_type . "s", preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"])) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"] && in_array($post_id, preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_posts"])) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"]) . exit; } } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] === "all" && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"], "catg") . exit; } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"] && (in_category($catgs = preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_catgs"]), $post_id) || c_ws_plugin__optimizemember_utils_conds::in_descendant_category($catgs, $post_id)) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"], "catg") . exit; } } } /**/ if (has_tag()) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] === "all" && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"], "ptag") . exit; } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] && has_tag(preg_split("/[\r\n\t;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"])) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"], "ptag") . exit; } } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"]) { /* URIs configured at this Level? */ /**/ foreach (preg_split("/[\r\n\t]+/", c_ws_plugin__optimizemember_ruris::fill_ruri_level_access_rc_vars($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"], $user)) as $str) { if ($str && preg_match("/" . preg_quote($str, "/") . "/", $_SERVER["REQUEST_URI"]) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && (!$user || !$user->has_cap("access_optimizemember_level" . $n))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "level", $n, $_SERVER["REQUEST_URI"], "ruri") . exit; } } } } /**/ if (is_array($ccaps_req = get_post_meta($post_id, "optimizemember_ccaps_req", true)) && !empty($ccaps_req) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true)) { foreach ($ccaps_req as $ccap) { /* The ``$user`` MUST satisfy ALL Custom Capability requirements. Stored as an array of Custom Capabilities. */ if (strlen($ccap) && (!$user || !$user->has_cap("access_optimizemember_ccap_" . $ccap))) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "ccap", $ccap, $_SERVER["REQUEST_URI"], "ccap") . exit; } } } /**/ /**/ $dripDays = get_post_meta($page_id, "optimizemember_drip_days", true); if (!empty($dripDays) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true)) { $dripUrl = get_post_meta($page_id, "optimizemember_drip_redirect_url", true); $time = optimizemember_paid_registration_time('level' . OPTIMIZEMEMBER_CURRENT_USER_ACCESS_LEVEL); if ($time && $time >= ($_days_ago = strtotime("-{$dripDays} days")) && !current_user_can('manage_options')) { if (!empty($dripUrl)) { wp_redirect($dripUrl); exit; } else { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("page", $page_id, "drip_days", $dripDays, $_SERVER["REQUEST_URI"], "drip_days") . exit; } } } /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["specific_ids"] && in_array($post_id, preg_split("/[\r\n\t\\s;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["specific_ids"])) && c_ws_plugin__optimizemember_no_cache::no_cache_constants(true) && !c_ws_plugin__optimizemember_sp_access::sp_access($post_id)) { c_ws_plugin__optimizemember_mo_page::wp_redirect_w_mop_vars("post", $post_id, "sp", $post_id, $_SERVER["REQUEST_URI"], "sp") . exit; } } } /**/ do_action("ws_plugin__optimizemember_during_check_post_level_access", get_defined_vars()); } } /**/ do_action("ws_plugin__optimizemember_after_check_post_level_access", get_defined_vars()); /**/ return; /* For uniformity. */ }
/** * Widget display. * * @package optimizeMember\Widgets * @since 1.5 * * @param array $args Optional. An array of basic settings. * @param array $instance Optional. An array of options for this instance. * @return null */ public function widget($args = FALSE, $instance = FALSE) { $options = c_ws_plugin__optimizemember_pro_login_widget::configure_options_and_their_defaults((array) $instance); /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_before_display", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ echo $args["before_widget"]; /* OK, here we go into this widget. */ /**/ if (is_user_logged_in() && strlen($options["profile_title"]) || !is_user_logged_in() && strlen($options["title"])) { echo $args["before_title"] . apply_filters("widget_title", $options[is_user_logged_in() ? "profile_title" : "title"]) . $args["after_title"]; } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_during_display_before", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ if (!is_user_logged_in()) { $links = c_ws_plugin__optimizemember_cache::cached_page_links(); /**/ $ops_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]; /**/ if ($ops_page && is_page($ops_page) && !empty($_GET["_optimizemember_seeking"]["_uri"])) { $seeking = trim(base64_decode(trim(stripslashes((string) $_GET["_optimizemember_seeking"]["_uri"])))); } /**/ $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && empty($seeking) && $ops_page && is_page($ops_page) ? "" : $options["login_redirect"]; $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && empty($seeking) && is_front_page() ? "" : $options["login_redirect"]; $options["login_redirect"] = $options["login_redirect"] === "%%previous%%" && !empty($seeking) && $seeking === "/" ? "" : $options["login_redirect"]; /**/ $redirect_to = $options["login_redirect"]; $redirect_to = preg_replace("/%%previous%%/i", !empty($seeking) ? $seeking : $_SERVER["REQUEST_URI"], $redirect_to); $redirect_to = preg_replace("/%%home%%/i", home_url("/"), $redirect_to); /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget">' . "\n"; /**/ echo '<form method="post" action="' . esc_url(site_url('wp-login.php', 'login_post')) . '" class="ws-plugin--optimizemember-pro-login-widget-form">' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-username">' . "\n"; echo '<label for="ws-plugin--optimizemember-pro-login-widget-username">' . _x("Username", "s2member-front", "s2member") . ':</label><br />' . "\n"; echo '<input type="text" name="log" id="ws-plugin--optimizemember-pro-login-widget-username" title="Username" />' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-password">' . "\n"; echo '<label for="ws-plugin--optimizemember-pro-login-widget-password">' . _x("Password", "s2member-front", "s2member") . ':</label><br />' . "\n"; echo '<input type="password" name="pwd" id="ws-plugin--optimizemember-pro-login-widget-password" title="Password" />' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-lost-password">' . "\n"; $reg_cookies_ok_url = is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && is_main_site() ? c_ws_plugin__optimizemember_utils_urls::wp_signup_url() : c_ws_plugin__optimizemember_utils_urls::wp_register_url(); echo $options["signup_url"] ? '<a href="' . esc_attr($options["signup_url"] !== "%%automatic%%" ? $options["signup_url"] : (c_ws_plugin__optimizemember_register_access::reg_cookies_ok() ? $reg_cookies_ok_url : $links["membership_options_page"])) . '" tabindex="-1">' . _x("signup now", "s2member-front", "s2member") . '</a> | ' : ''; echo '<a href="' . esc_attr(wp_lostpassword_url()) . '" tabindex="-1">' . _x("forgot password?", "s2member-front", "s2member") . '</a>' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-remember-me">' . "\n"; echo '<label><input type="checkbox" name="rememberme" value="forever" />' . _x("Remember Me", "s2member-front", "s2member") . '</label>' . "\n"; echo '</div>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-submit">' . "\n"; echo $redirect_to ? '<input type="hidden" name="redirect_to" value="' . esc_attr($redirect_to) . '" />' . "\n" : ''; echo '<input type="submit" value="' . esc_attr(_x("Log Me In", "s2member-front", "s2member")) . '" />' . "\n"; echo '</div>' . "\n"; /**/ echo '</form>' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-code">' . "\n"; /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && !is_main_site()) { echo do_shortcode(trim($options["logged_out_code"])); } else { /* Otherwise, it's OK to execute PHP code. */ echo do_shortcode(c_ws_plugin__optimizemember_utilities::evl(trim($options["logged_out_code"]))); } /**/ echo '</div>' . "\n"; /**/ echo '<div style="clear:both;"></div>' . "\n"; /**/ echo '</div>' . "\n"; } else { if (is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) && ($user_id = $user->ID)) { $links = c_ws_plugin__optimizemember_cache::cached_page_links(); /**/ $ops_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]; $welcome_page = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]; /**/ $options["logout_redirect"] = $options["logout_redirect"] === "%%previous%%" && $ops_page && is_page($ops_page) ? "" : $options["logout_redirect"]; $options["logout_redirect"] = $options["logout_redirect"] === "%%previous%%" && $welcome_page && is_page($welcome_page) ? "" : $options["logout_redirect"]; /**/ $redirect_to = preg_replace("/%%previous%%/i", $_SERVER["REQUEST_URI"], $redirect_to = $options["logout_redirect"]); $redirect_to = preg_replace("/%%home%%/i", home_url("/"), $redirect_to); /**/ echo '<div id="ws-plugin--optimizemember-pro-login-widget" class="ws-plugin--optimizemember-pro-login-widget">' . "\n"; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary">' . "\n"; /**/ echo $options["display_gravatar"] ? ($options["link_gravatar"] ? '<a href="http://www.gravatar.com/" target="_blank">' : '') . get_avatar($user_id, 48) . ($options["link_gravatar"] ? '</a>' : '') . "\n" : ''; /**/ echo $options["display_name"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-name">' . esc_html($user->display_name) . '</div>' . "\n" : ''; /**/ echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-code">' . "\n"; /**/ if (is_multisite() && c_ws_plugin__optimizemember_utils_conds::is_multisite_farm() && !is_main_site()) { echo do_shortcode(trim($options["logged_in_code"])); } else { /* Otherwise, it's OK to execute PHP code. */ echo do_shortcode(c_ws_plugin__optimizemember_utilities::evl(trim($options["logged_in_code"]))); } /**/ echo '</div>' . "\n"; /**/ echo $options["my_account_url"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-my-account"><a href="' . esc_attr($options["my_account_url"] !== "%%automatic%%" ? c_ws_plugin__optimizemember_login_redirects::fill_login_redirect_rc_vars($options["my_account_url"]) : (($login_redirection_url = c_ws_plugin__optimizemember_login_redirects::login_redirection_url($user)) ? $login_redirection_url : $links["login_welcome_page"])) . '">' . _x("My Account", "s2member-front", "s2member") . '</a></div>' . "\n" : ''; echo $options["my_profile_url"] ? '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-edit-profile"><a href="' . ($options["my_profile_url"] !== "%%automatic%%" ? esc_attr(c_ws_plugin__optimizemember_login_redirects::fill_login_redirect_rc_vars($options["my_profile_url"])) : esc_attr(site_url("/?optimizemember_profile=1")) . '" onclick="if(!window.open(\'' . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(esc_attr(site_url("/?optimizemember_profile=1"))) . '\',\'_profile\', \'width=600,height=400,left=\'+((screen.width/2)-(600/2))+\',screenX=\'+((screen.width/2)-(600/2))+\',top=\'+((screen.height/2)-(400/2))+\',screenY=\'+((screen.height/2)-(400/2))+\',location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1\')) alert(\'' . c_ws_plugin__optimizemember_utils_strings::esc_js_sq(_x("Please disable popup blockers and try again!", "s2member-front", "s2member")) . '\'); return false;') . '">' . _x("Edit My Profile", "s2member-front", "s2member") . '</a></div>' . "\n" : ''; echo '<div class="ws-plugin--optimizemember-pro-login-widget-profile-summary-logout"><a href="' . esc_attr(wp_logout_url($redirect_to)) . '">' . _x("Logout", "s2member-front", "s2member") . '</a></div>' . "\n"; /**/ echo '<div style="clear:both;"></div>' . "\n"; /**/ echo '</div>' . "\n"; /**/ echo '</div>' . "\n"; } } /**/ eval('foreach(array_keys(get_defined_vars())as$__v)$__refs[$__v]=&$$__v;'); do_action("ws_plugin__optimizemember_pro_login_widget_during_display_after", get_defined_vars(), $this); unset($__refs, $__v); /* Unset defined __refs, __v. */ /**/ echo $args["after_widget"]; /**/ do_action("ws_plugin__optimizemember_pro_login_widget_after_display", get_defined_vars(), $this); /**/ return; /* Return for uniformity. */ }
/** * Handles Tag Level Access *( for specific Tags )*. * * @package optimizeMember\Tags * @since 3.5 * * @param int|str $_tag Numeric Tag ID, Tag Slug, or Tag Name. * @param bool $check_user Test permissions against the current User? Defaults to true. * @return null|array Non-empty array ( with details ) if access is denied, else null if access is allowed. */ public static function check_specific_ptag_level_access($_tag = FALSE, $check_user = TRUE) { do_action("ws_plugin__optimizemember_before_check_specific_ptag_level_access", get_defined_vars()); /**/ if ($_tag && is_numeric($_tag) && is_object($term = get_term_by("id", $_tag, "post_tag"))) { $tag_id = (int) $_tag; /* Need ``$tag_id``, ``$tag_slug``, and also the ``$tag_name``. */ $tag_slug = $term->slug; /* Tag slug. */ $tag_name = $term->name; /* Tag name. */ } else { if ($_tag && is_string($_tag) && is_object($term = get_term_by("name", $_tag, "post_tag"))) { $tag_name = $_tag; /* Need ``$tag_id``, ``$tag_slug``, and also the ``$tag_name``. */ $tag_id = (int) $term->term_id; /* Tag ID. */ $tag_slug = $term->slug; /* Tag slug. */ } else { if ($_tag && is_string($_tag) && is_object($term = get_term_by("slug", $_tag, "post_tag"))) { $tag_slug = $_tag; /* Need ``$tag_id``, ``$tag_slug``, and also the ``$tag_name``. */ $tag_id = (int) $term->term_id; /* Tag ID. */ $tag_name = $term->name; /* Tag name. */ } } } /**/ $excluded = apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access_excluded", false, get_defined_vars()); /**/ if (!$excluded && !empty($tag_id) && !empty($tag_slug) && !empty($tag_name) && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { $tag_uri = c_ws_plugin__optimizemember_utils_urls::parse_uri(get_tag_link($tag_id)); /* Get a full valid URI for this Tag. */ /**/ if (!c_ws_plugin__optimizemember_systematics_sp::is_wp_systematic_use_specific_page(null, $tag_uri)) { $user = is_user_logged_in() && is_object($user = wp_get_current_user()) && !empty($user->ID) ? $user : false; /* Current User's object. */ /**/ if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($login_redirection_uri = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri($user, "root-returns-false")) && preg_match("/^" . preg_quote($login_redirection_uri, "/") . "\$/", $tag_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level0"))) { return apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access", array("optimizemember_level_req" => 0), get_defined_vars()); } else { if (!c_ws_plugin__optimizemember_systematics_sp::is_systematic_use_specific_page(null, $tag_uri)) { for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] === "all" && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"] && (in_array($tag_name, $tags = preg_split("/[\r\n\t;,]+/", $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ptags"])) || in_array($tag_slug, $tags)) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } /**/ for ($n = $GLOBALS["WS_PLUGIN__"]["optimizemember"]["c"]["levels"]; $n >= 0; $n--) { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"]) { /* URIs configured at this Level? */ /**/ foreach (preg_split("/[\r\n\t]+/", c_ws_plugin__optimizemember_ruris::fill_ruri_level_access_rc_vars($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["level" . $n . "_ruris"], $user)) as $str) { if ($str && preg_match("/" . preg_quote($str, "/") . "/", $tag_uri) && (!$check_user || !$user || !$user->has_cap("access_optimizemember_level" . $n))) { return apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access", array("optimizemember_level_req" => $n), get_defined_vars()); } } } } } } /**/ do_action("ws_plugin__optimizemember_during_check_specific_ptag_level_access", get_defined_vars()); } } /**/ return apply_filters("ws_plugin__optimizemember_check_specific_ptag_level_access", null, get_defined_vars()); }
/** * Determines if the current page is Systematic in any way. * * @package optimizeMember\Systematics * @since 3.5 * * @return bool True if Systematic, else false. * * @note The results of this function are cached staticially. * Do NOT call upon this until the `wp` Hook is fired. */ public static function is_systematic_use_page() { static $is_systematic; /* For optimization. */ /**/ if (isset($is_systematic)) { return $is_systematic; /* Filters will have already been applied here. */ } else { if (c_ws_plugin__optimizemember_systematics::is_s2_systematic_use_page()) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if (c_ws_plugin__optimizemember_systematics::is_wp_systematic_use_page()) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if (c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && (bp_is_register_page() || bp_is_activation_page())) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"] && is_page($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"])) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"] && is_page($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"])) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"] && is_page($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"])) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { if ($GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($_lro = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri(false, "root-returns-false")) && preg_match("/^" . preg_quote($_lro, "/") . "\$/", $_SERVER["REQUEST_URI"])) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", true, get_defined_vars()); } else { /* Otherwise, we return false ( it's NOT a Systematic Use Page in any way ). */ return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_page", false, get_defined_vars()); } } } } } } } } }
/** * Determines if a specific Post/Page ID, or URI, is Systematic in any way. * * @package optimizeMember\Systematics * @since 3.5 * * @param int|str $singular_id Optional. A numeric Post/Page ID in WordPress. * @param str $uri Optional. A request URI to test against. * @return bool True if Systematic, else false. * * @todo Test URIs against formulated links for Systematic Pages like the Membership Options Page? * Don't think this is required though; as it's already handled in other areas, correct? */ public static function is_systematic_use_specific_page($singular_id = FALSE, $uri = FALSE) { global $bp; /* If BuddyPress is installed, we'll need this global reference. */ /**/ $singular_id = $singular_id && is_numeric($singular_id) ? (int) $singular_id : false; /* Force types. */ $uri = $uri && is_string($uri) && ($uri = c_ws_plugin__optimizemember_utils_urls::parse_uri($uri)) ? $uri : false; /**/ if (c_ws_plugin__optimizemember_systematics_sp::is_s2_systematic_use_specific_page($singular_id, $uri)) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if (c_ws_plugin__optimizemember_systematics_sp::is_wp_systematic_use_specific_page($singular_id, $uri)) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($uri && c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && preg_match("/\\/(?:" . preg_quote(trim(function_exists("bp_get_signup_slug") ? bp_get_signup_slug() : BP_REGISTER_SLUG, "/"), "/") . "|" . preg_quote(trim(function_exists("bp_get_activate_slug") ? bp_get_activate_slug() : BP_ACTIVATION_SLUG, "/"), "/") . ")(?:\\/|\\?|\$)/", $uri)) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($singular_id && c_ws_plugin__optimizemember_utils_conds::bp_is_installed() && (!empty($bp->pages->register->id) && $singular_id === (int) $bp->pages->register->id || !empty($bp->pages->activate->id) && $singular_id === (int) $bp->pages->activate->id)) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($singular_id && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"] && $singular_id === (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_welcome_page"]) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($singular_id && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"] && $singular_id === (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["membership_options_page"]) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($singular_id && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"] && $singular_id === (int) $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["file_download_limit_exceeded_page"]) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { if ($uri && $GLOBALS["WS_PLUGIN__"]["optimizemember"]["o"]["login_redirection_override"] && ($_lro = c_ws_plugin__optimizemember_login_redirects::login_redirection_uri(false, "root-returns-false")) && preg_match("/^" . preg_quote($_lro, "/") . "\$/", $uri)) { return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", true, get_defined_vars()); } else { /* Otherwise, we return false ( i.e. it's NOT a Systematic Use Page in any way ). */ return $is_systematic = apply_filters("ws_plugin__optimizemember_is_systematic_use_specific_page", false, get_defined_vars()); } } } } } } } } }