Exemple #1
0
function emember_lockdown_widget()
{
    $emember_auth = Emember_Auth::getInstance();
    $emember_config = Emember_Config::getInstance();
    $locking_option = $emember_config->getValue('eMember_enable_domain_lockdown');
    $altpopup = strtolower($emember_config->getValue('eMember_domain_lockdown_alt2popup'));
    $current_url = strtolower(wp_emember_get_current_url());
    $trimmed_cur_url = rtrim($current_url, "/");
    $trimed_altpopup = rtrim($altpopup, "/");
    if ($trimed_altpopup == $trimmed_cur_url) {
        return;
    }
    $join_url = $emember_config->getValue('eMember_payments_page');
    if (emember_is_first_click()) {
        return;
    }
    if ($current_url == strtolower($join_url)) {
        return;
    }
    $reg_url = $emember_config->getValue('eMember_registration_page');
    $reg_url_lowercase = strtolower($reg_url);
    $reg_url_pos = strpos($current_url, $reg_url_lowercase);
    if ($reg_url_pos !== false) {
        return;
    }
    $login_page_url = $emember_config->getValue('login_page_url');
    $login_page_lowercase = strtolower($login_page_url);
    if (strpos($current_url, $login_page_lowercase) !== false) {
        return;
    }
    $forgot_pass_url = $emember_config->getValue('eMember_password_reset_page');
    if (!empty($forgot_pass_url)) {
        if ($current_url == strtolower($forgot_pass_url)) {
            return;
        }
    }
    if ($locking_option == 1) {
        $excluded_urls = $emember_config->getValue('eMember_domain_lockdown_exclude_url');
        $excluded_urls = explode(',', trim($excluded_urls));
        foreach ($excluded_urls as $url) {
            //$url = strtolower(trim($url));
            $url = rtrim(strtolower(trim($url)), "/");
            if ($trimmed_cur_url == $url) {
                return;
            }
            //Need to use == So that when you exclude homepage the full site is not open
        }
        //Check for pattern matching
        $excluded_url_patterns = $emember_config->getValue('eMember_domain_lockdown_exclude_url_pattern');
        $excluded_url_patterns = explode(',', trim($excluded_url_patterns));
        foreach ($excluded_url_patterns as $url) {
            //$url = strtolower(trim($url));
            $url = rtrim(strtolower(trim($url)), "/");
            if (stripos($trimmed_cur_url, $url) !== false) {
                return;
            }
        }
    } else {
        if ($locking_option == 2) {
            $allowed_url = true;
            $included_urls = $emember_config->getValue('eMember_domain_lockdown_include_url');
            $included_urls = explode(',', trim($included_urls));
            foreach ($included_urls as $url) {
                $url = trim($url);
                if (stripos($current_url, $url) !== False) {
                    $allowed_url = false;
                    break;
                }
            }
            if ($allowed_url) {
                return;
            }
        }
    }
    if (!$emember_auth->isLoggedIn()) {
        echo '</head><body>';
        wp_emember_hook_password_reminder();
        if (empty($altpopup)) {
            include_once 'emember_lockdown_popup.php';
        } else {
            $msg = EMEMBER_REDIRECTION_MESSAGE;
            echo '<html><head><meta http-equiv="refresh" content="1;url=' . $altpopup . '" /></head>';
            echo '<body style="padding:25px; border:1px solid #CCC; margin:25px; max-width:350px;margin-left:auto;margin-right:auto;">';
            echo '<h1>' . $msg . '</h1>';
            echo '</body></html>';
        }
        exit;
    }
}
function emember_protected_handler($attrs, $contents, $codes = '')
{
    global $post;
    $emember_auth = Emember_Auth::getInstance();
    $emember_config = Emember_Config::getInstance();
    $emember_auth->hasmore[$post->ID] = $post->ID;
    //$first_click_enabled = $emember_config->getValue('eMember_google_first_click_free');
    $contents = do_shortcode($contents);
    if (emember_is_first_click()) {
        return $contents;
    }
    //google first click free enabled.
    $do_not_show_restricted_msg = isset($attrs['do_not_show_restricted_msg']) ? $attrs['do_not_show_restricted_msg'] : "";
    if (!$emember_auth->isLoggedIn()) {
        // Show the content to anyone who is not logged in
        if (isset($attrs['scope']) && $attrs['scope'] == "not_logged_in_users_only") {
            return $contents;
        }
    }
    if ($emember_auth->isLoggedIn()) {
        // Do not show the content to anyone who is logged in
        if (isset($attrs['scope']) && $attrs['scope'] == "not_logged_in_users_only") {
            return "";
        }
        // Show content to anyone who is logged in
        if (isset($attrs['scope']) && $attrs['scope'] == "verified_users_only") {
            return $contents;
        }
        $expires = $emember_auth->getUserInfo('account_state');
        if ($expires == 'expired') {
            //Show the renewal message as this account is expired
            return get_renewal_link();
        }
        if (isset($attrs['member_id'])) {
            $member_id = $emember_auth->getUserInfo('member_id');
            $permitted_member_ids = explode('-', $attrs['member_id']);
            if (in_array($member_id, $permitted_member_ids)) {
                return $contents;
            } else {
                if (!empty($do_not_show_restricted_msg)) {
                    return "";
                    //do not show the restrcted content message
                }
                return wp_emember_format_message(EMEMBER_ACCOUNT_PROFILE_NOT_ALLOWED);
            }
        }
        if (isset($attrs['for'])) {
            $level = $emember_auth->getUserInfo('membership_level');
            $permitted_levels = explode('-', $attrs['for']);
            if (in_array($level, $permitted_levels)) {
                return $contents;
            }
            if ($emember_config->getValue('eMember_enable_secondary_membership')) {
                $sec_levels = $emember_auth->getUserInfo('more_membership_levels');
                if ($sec_levels) {
                    if (is_string($sec_levels)) {
                        $sec_levels = explode(',', $sec_levels);
                    }
                    foreach ($sec_levels as $sec_level) {
                        if (in_array($sec_level, $permitted_levels)) {
                            return $contents;
                        }
                    }
                }
            }
            if (!empty($do_not_show_restricted_msg)) {
                return "";
                //do not show the restrcted content message
            }
            if (isset($attrs['custom_msg'])) {
                //Show the custom message
                $replacement = $attrs['custom_msg'];
                return wp_emember_format_message($replacement);
            } else {
                //Show the standard hidden content
                $account_upgrade_url = $emember_config->getValue('eMember_account_upgrade_url');
                return wp_emember_format_message(EMEMBER_HIDDEN_CONTENT_MESSAGE . '<br/>' . EMEMBER_PLEASE . ' <a href=" ' . $account_upgrade_url . '" target=_blank>' . EMEMBER_RENEW_OR_UPGRADE . '</a> ' . EMEMBER_YOUR_ACCOUNT);
            }
        }
        if (isset($attrs['not_for'])) {
            $level = $emember_auth->getUserInfo('membership_level');
            $ban_levels = explode('-', $attrs['not_for']);
            $banned = false;
            if (in_array($level, $ban_levels)) {
                $banned = true;
            } else {
                if ($emember_config->getValue('eMember_enable_secondary_membership')) {
                    $sec_levels = $emember_auth->getUserInfo('more_membership_levels');
                    if (!empty($sec_levels)) {
                        if (is_string($sec_levels)) {
                            $sec_levels = explode(',', $sec_levels);
                        }
                        foreach ($sec_levels as $sec_level) {
                            if (in_array($sec_level, $ban_levels)) {
                                $banned = true;
                            }
                        }
                    }
                }
            }
            if ($banned) {
                if (!empty($do_not_show_restricted_msg)) {
                    return "";
                    //do not show the restrcted content message
                }
                return wp_emember_format_message(EMEMBER_HIDDEN_CONTENT_MESSAGE);
            }
        }
        return $contents;
    }
    $join_url = $emember_config->getValue('eMember_payments_page');
    if (empty($join_url)) {
        return wp_emember_format_message('<b>Membership Payment/Join Page</b>value is not set in eMember settings. Site admin needs to complete the settings in the pages/forms settings menu of eMember before the plugin can work.');
    } else {
        $join_url = ' href ="' . $join_url . '" ';
    }
    if (!empty($do_not_show_restricted_msg)) {
        return "";
        //do not show the restrcted content message
    }
    if (isset($attrs['custom_msg'])) {
        $replacement = $attrs['custom_msg'];
    } else {
        $replacement = '<a ' . $join_url . ' ><b>' . EMEMBER_MEMBERS_ONLY_MESSAGE . '</b></a>';
    }
    return wp_emember_format_message($replacement);
}