Ejemplo n.º 1
0
function delete_account()
{
    $emember_auth = Emember_Auth::getInstance();
    $emember_config = Emember_Config::getInstance();
    if (!$emember_auth->isLoggedIn()) {
        return;
    }
    $f = $emember_config->getValue('eMember_allow_account_removal');
    if ($f) {
        $f = $emember_config->getValue('eMember_allow_wp_account_removal');
        if ($f) {
            $wp_user_id = username_exists($emember_auth->getUserInfo('user_name'));
            $ud = get_userdata($wp_user_id);
            if (isset($ud->wp_capabilities['administrator']) || $ud->wp_user_level == 10) {
                if ($_GET['confirm'] != 2) {
                    $u = get_bloginfo('wpurl');
                    $_GET['confirm'] = 2;
                    $u .= '?' . http_build_query($_GET);
                    $warning = "<html><body><div id='message' style=\"color:red;\" ><p>You are about to delete an account that has admin privilege.\n                  If you are using WordPress user integration then this will delete the corresponding user\n                  account from WordPress and you may not be able to log in as admin with this account.\n                  Continue? <a href='" . $u . "'>yes</a>/<a href='javascript:void(0);' onclick='top.document.location=\"" . get_bloginfo('wpurl') . "\";' >no</a></p></div></body></html>";
                    echo $warning;
                    exit;
                }
            }
            wp_clear_auth_cookie();
            if ($wp_user_id) {
                include_once ABSPATH . 'wp-admin/includes/user.php';
                wp_delete_user($wp_user_id, 1);
                //assigns all related to this user to admin.
            }
        }
        $ret = dbAccess::delete(WP_EMEMBER_MEMBERS_TABLE_NAME, 'member_id=' . $emember_auth->getUserInfo('member_id'));
        $ret = dbAccess::delete(WP_EMEMBER_MEMBERS_META_TABLE, 'user_id=' . $emember_auth->getUserInfo('member_id'));
        $emember_auth->logout();
        wp_emember_redirect_to_url(get_bloginfo('wpurl'));
        exit;
    }
}
Ejemplo n.º 2
0
function manage_access_levels()
{
    global $wpdb;
    if (isset($_POST['add_new'])) {
        $alias = esc_sql(stripslashes($_POST['wpm_levels']['new_level']['name']));
        if (empty($alias)) {
            echo '<div id="message" style="color:red;" class="updated fade"><p>Level Name Is Required.</p></div>';
            return;
        }
        $exists = $wpdb->get_col("SELECT id from " . WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE . " WHERE alias = '" . $alias . "'");
        if (count($exists) > 0) {
            echo '<div id="message" style="color:red;" class="updated fade"><p>Membership level name already used. Please use a different name.</p></div>';
            return;
        }
        $role = $_POST['wpm_levels']['new_level']['role'];
        $login_redirect = esc_sql($_POST['wpm_levels']['new_level']['loginredirect']);
        $campaign_name = esc_sql(stripslashes($_POST['wpm_levels']['new_level']['campaign_name']));
        if (isset($_POST['wpm_levels']['new_level']['noexpire']) && $_POST['wpm_levels']['new_level']['noexpire'] == 'noexpire') {
            $subscription_period = 0;
            $subscription_unit = null;
        } else {
            if (isset($_POST['wpm_levels']['new_level']['noexpire']) && $_POST['wpm_levels']['new_level']['noexpire'] == 'fixed_date') {
                $subscription_period = 0;
                $subscription_unit = $_POST['wpm_levels']['new_level']['expire_date'];
            } else {
                $subscription_period = esc_sql($_POST['wpm_levels']['new_level']['expire']);
                $subscription_unit = esc_sql($_POST['wpm_levels']['new_level']['calendar']);
            }
        }
        $permissions = 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allcustomposts']) ? 32 : 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allattachments']) ? 16 : 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allpages']) ? 8 : 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allposts']) ? 4 : 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allcomments']) ? 2 : 0;
        $permissions += isset($_POST['wpm_levels']['new_level']['allcategories']) ? 1 : 0;
        $fields['role'] = $role;
        $fields['alias'] = $alias;
        $fields['permissions'] = $permissions;
        $fields['loginredirect_page'] = trim($login_redirect);
        $fields['subscription_period'] = $subscription_period;
        $fields['subscription_unit'] = $subscription_unit;
        $fields['campaign_name '] = $campaign_name;
        $ret = dbAccess::insert(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, $fields);
        if ($ret === false) {
            echo '<div id="message" style="color:red;" class="updated fade"><p>Membership Level &quot;' . $_POST['wpm_levels']['new_level']['name'] . '&quot; couldn\'t be created due to error.</p></div>';
        } else {
            echo '<div id="message" class="updated fade"><p>Membership Level &quot;' . $_POST['wpm_levels']['new_level']['name'] . '&quot; created.</p></div>';
            do_action('eMember_new_membership_level_added', $_POST);
        }
    } else {
        if (isset($_POST['update_info'])) {
            foreach ($_POST['wpm_levels'] as $id => $wp_level) {
                $alias = esc_sql(stripslashes($wp_level['name']));
                $role = $wp_level['role'];
                $login_redirect = esc_sql($wp_level['loginredirect']);
                $campaign_name = esc_sql(stripslashes($wp_level['campaign_name']));
                if (isset($wp_level['noexpire']) && $wp_level['noexpire'] == 'noexpire') {
                    $subscription_period = 0;
                    $subscription_unit = null;
                } else {
                    if (isset($wp_level['noexpire']) && $wp_level['noexpire'] == 'fixed_date') {
                        $subscription_period = 0;
                        $subscription_unit = $wp_level['expire_date'];
                    } else {
                        if (isset($wp_level['noexpire']) && $wp_level['noexpire'] == 'interval') {
                            $subscription_period = esc_sql($wp_level['expire']);
                            $subscription_unit = esc_sql($wp_level['calendar']);
                        }
                    }
                }
                $permissions = 0;
                $permissions += isset($wp_level['allcustomposts']) ? 32 : 0;
                $permissions += isset($wp_level['allattachments']) ? 16 : 0;
                $permissions += isset($wp_level['allpages']) ? 8 : 0;
                $permissions += isset($wp_level['allposts']) ? 4 : 0;
                $permissions += isset($wp_level['allcomments']) ? 2 : 0;
                $permissions += isset($wp_level['allcategories']) ? 1 : 0;
                $fields['role'] = $role;
                $fields['alias'] = $alias;
                $fields['permissions'] = $permissions;
                $fields['loginredirect_page'] = trim($login_redirect);
                $fields['subscription_period'] = $subscription_period;
                $fields['subscription_unit'] = $subscription_unit;
                $fields['campaign_name'] = $campaign_name;
                /**
                 * @todo update role based on flags.
                 * */
                $ret = dbAccess::update(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id = ' . $wp_level['id'], $fields);
                if ($ret === false) {
                    echo '<div id="message" style="color:red;" class="updated fade"><p>Membership Level Update Failed..</p></div>';
                } else {
                    echo '<div id="message" class="updated fade"><p>Membership Level Updated.</p></div>';
                    do_action('eMember_membership_level_updated', $_POST);
                }
            }
        } else {
            if (isset($_GET['delete'])) {
                $ret = dbAccess::delete(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id=' . $_GET['delete']);
                if ($ret === false) {
                    echo '<div id="message" style="color:red;" class="updated fade"><p>Membership Level Couldn\'t be deleted due to error.</p></div>';
                } else {
                    if ($ret === 0) {
                        echo '<div id="message" style="color:red;" class="updated fade"><p>Nothing to delete.</p></div>';
                    } else {
                        echo '<div id="message" class="updated fade"><p>Membership Level Deleted.</p></div>';
                        do_action('eMember_membership_level_deleted', $_POST);
                    }
                }
            }
        }
    }
    $all_levels = dbAccess::findAll(WP_EMEMBER_MEMBERSHIP_LEVEL_TABLE, ' id != 1 ', ' id DESC ');
    include_once 'views/manage_access_levels_view.php';
}