Пример #1
0
 function bp_course_convert_customer_to_student($order_id)
 {
     $order = new WC_Order($order_id);
     if ($order->user_id > 0) {
         $user = new WP_User($order->user_id);
         $user->remove_role('customer');
         $user->add_role('student');
     }
 }
 function update_marketplace_seller_roles($user_id)
 {
     $user = new WP_User($user_id);
     $user->remove_role('owner');
     echo get_option('default_role');
     exit;
     $user->add_role('administrator');
 }
function acui_import_users($file, $form_data, $attach_id = 0, $is_cron = false)
{
    ?>
	<div class="wrap">
		<h2>Importing users</h2>	
		<?php 
    set_time_limit(0);
    add_filter('send_password_change_email', '__return_false');
    global $wpdb;
    global $wp_users_fields;
    global $wp_min_fields;
    if (is_plugin_active('wp-access-areas/wp-access-areas.php')) {
        $wpaa_labels = WPAA_AccessArea::get_available_userlabels();
    }
    $buddypress_fields = array();
    if (is_plugin_active('buddypress/bp-loader.php')) {
        $profile_groups = BP_XProfile_Group::get(array('fetch_fields' => true));
        if (!empty($profile_groups)) {
            foreach ($profile_groups as $profile_group) {
                if (!empty($profile_group->fields)) {
                    foreach ($profile_group->fields as $field) {
                        $buddypress_fields[] = $field->name;
                    }
                }
            }
        }
    }
    $users_registered = array();
    $headers = array();
    $headers_filtered = array();
    $role = $form_data["role"];
    $empty_cell_action = $form_data["empty_cell_action"];
    if (empty($form_data["activate_users_wp_members"])) {
        $activate_users_wp_members = "no_activate";
    } else {
        $activate_users_wp_members = $form_data["activate_users_wp_members"];
    }
    if (empty($form_data["allow_multiple_accounts"])) {
        $allow_multiple_accounts = "not_allowed";
    } else {
        $allow_multiple_accounts = $form_data["allow_multiple_accounts"];
    }
    echo "<h3>Ready to registers</h3>";
    echo "<p>First row represents the form of sheet</p>";
    $row = 0;
    $positions = array();
    ini_set('auto_detect_line_endings', TRUE);
    $delimiter = acui_detect_delimiter($file);
    $manager = new SplFileObject($file);
    while ($data = $manager->fgetcsv($delimiter)) {
        if (empty($data[0])) {
            continue;
        }
        if (count($data) == 1) {
            $data = $data[0];
        }
        foreach ($data as $key => $value) {
            $data[$key] = trim($value);
        }
        for ($i = 0; $i < count($data); $i++) {
            $data[$i] = acui_string_conversion($data[$i]);
        }
        if ($row == 0) {
            // check min columns username - email
            if (count($data) < 2) {
                echo "<div id='message' class='error'>File must contain at least 2 columns: username and email</div>";
                break;
            }
            $i = 0;
            $password_position = false;
            foreach ($wp_users_fields as $wp_users_field) {
                $positions[$wp_users_field] = false;
            }
            foreach ($data as $element) {
                $headers[] = $element;
                if (in_array(strtolower($element), $wp_users_fields)) {
                    $positions[strtolower($element)] = $i;
                }
                if (!in_array(strtolower($element), $wp_users_fields) && !in_array($element, $wp_min_fields) && !in_array($element, $buddypress_fields)) {
                    $headers_filtered[] = $element;
                }
                $i++;
            }
            $columns = count($data);
            update_option("acui_columns", $headers_filtered);
            ?>
					<h3>Inserting and updating data</h3>
					<table>
						<tr><th>Row</th><?php 
            foreach ($headers as $element) {
                echo "<th>" . $element . "</th>";
            }
            ?>
</tr>
					<?php 
            $row++;
        } else {
            if (count($data) != $columns) {
                // if number of columns is not the same that columns in header
                echo '<script>alert("Row number: ' . $row . ' has no the same columns than header, we are going to skip");</script>';
                continue;
            }
            $username = $data[0];
            $email = $data[1];
            $user_id = 0;
            $problematic_row = false;
            $password_position = $positions["password"];
            $password = "";
            $created = true;
            if ($password_position === false) {
                $password = wp_generate_password();
            } else {
                $password = $data[$password_position];
            }
            if (username_exists($username)) {
                // if user exists, we take his ID by login, we will update his mail if it has changed
                $user_object = get_user_by("login", $username);
                $user_id = $user_object->ID;
                if (!empty($password)) {
                    wp_set_password($password, $user_id);
                }
                $updateEmailArgs = array('ID' => $user_id, 'user_email' => $email);
                wp_update_user($updateEmailArgs);
                $created = false;
            } elseif (email_exists($email) && $allow_multiple_accounts == "not_allowed") {
                // if the email is registered, we take the user from this and we don't allow repeated emails
                $user_object = get_user_by("email", $email);
                $user_id = $user_object->ID;
                $data[0] = "User already exists as: " . $user_object->user_login . "<br/>(in this CSV file is called: " . $username . ")";
                $problematic_row = true;
                if (!empty($password)) {
                    wp_set_password($password, $user_id);
                }
                $created = false;
            } elseif (email_exists($email) && $allow_multiple_accounts == "allowed") {
                // if the email is registered and repeated emails are allowed
                if (empty($password)) {
                    // if user not exist and password is empty but the column is set, it will be generated
                    $password = wp_generate_password();
                }
                $hacked_email = acui_hack_email($email);
                $user_id = wp_create_user($username, $password, $hacked_email);
                acui_hack_restore_remapped_email_address($user_id, $email);
            } else {
                if (empty($password)) {
                    // if user not exist and password is empty but the column is set, it will be generated
                    $password = wp_generate_password();
                }
                $user_id = wp_create_user($username, $password, $email);
            }
            if (is_wp_error($user_id)) {
                // in case the user is generating errors after this checks
                $error_string = $user_id->get_error_message();
                echo '<script>alert("Problems with user: '******', we are going to skip. \\r\\nError: ' . $error_string . '");</script>';
                continue;
            }
            $users_registered[] = $user_id;
            $user_object = new WP_User($user_id);
            if (!(in_array("administrator", acui_get_roles($user_id), FALSE) || is_multisite() && is_super_admin($user_id))) {
                $default_roles = $user_object->roles;
                foreach ($default_roles as $default_role) {
                    $user_object->remove_role($default_role);
                }
                if (is_array($role)) {
                    foreach ($role as $single_role) {
                        $user_object->add_role($single_role);
                    }
                } else {
                    $user_object->add_role($role);
                }
            }
            // WP Members activation
            if ($activate_users_wp_members == "activate") {
                update_user_meta($user_id, "active", true);
            }
            if ($columns > 2) {
                for ($i = 2; $i < $columns; $i++) {
                    if (!empty($data)) {
                        if (strtolower($headers[$i]) == "password") {
                            // passwords -> continue
                            continue;
                        } else {
                            if (in_array($headers[$i], $wp_users_fields)) {
                                // wp_user data
                                if (empty($data[$i]) && $empty_cell_action == "leave") {
                                    continue;
                                } else {
                                    wp_update_user(array('ID' => $user_id, $headers[$i] => $data[$i]));
                                }
                            } elseif (strtolower($headers[$i]) == "wp-access-areas" && is_plugin_active('wp-access-areas/wp-access-areas.php')) {
                                // wp-access-areas
                                $active_labels = array_map('trim', explode("#", $data[$i]));
                                foreach ($wpaa_labels as $wpa_label) {
                                    if (in_array($wpa_label->cap_title, $active_labels)) {
                                        acui_set_cap_for_user($wpa_label->capability, $user_object, true);
                                    } else {
                                        acui_set_cap_for_user($wpa_label->capability, $user_object, false);
                                    }
                                }
                            } elseif (in_array($headers[$i], $buddypress_fields)) {
                                // buddypress
                                xprofile_set_field_data($headers[$i], $user_id, $data[$i]);
                            } else {
                                // wp_usermeta data
                                if (empty($data[$i])) {
                                    if ($empty_cell_action == "delete") {
                                        delete_user_meta($user_id, $headers[$i]);
                                    } else {
                                        continue;
                                    }
                                } else {
                                    update_user_meta($user_id, $headers[$i], $data[$i]);
                                }
                            }
                        }
                    }
                }
            }
            $styles = "";
            if ($problematic_row) {
                $styles = "background-color:red; color:white;";
            }
            echo "<tr style='{$styles}' ><td>" . ($row - 1) . "</td>";
            foreach ($data as $element) {
                echo "<td>{$element}</td>";
            }
            echo "</tr>\n";
            flush();
            $mail_for_this_user = false;
            if ($created) {
                $mail_for_this_user = true;
            } else {
                if (!$is_cron && isset($form_data["send_email_updated"]) && $form_data["send_email_updated"]) {
                    $mail_for_this_user = true;
                } else {
                    if ($is_cron && get_option("acui_send_mail_cron")) {
                        $mail_for_this_user = true;
                    }
                }
            }
            // send mail
            if (isset($form_data["sends_email"]) && $form_data["sends_email"] && $mail_for_this_user) {
                $body_mail = get_option("acui_mail_body");
                $subject = get_option("acui_mail_subject");
                $body_mail = str_replace("**loginurl**", "<a href='" . home_url() . "/wp-login.php" . "'>" . home_url() . "/wp-login.php" . "</a>", $body_mail);
                $body_mail = str_replace("**username**", $username, $body_mail);
                if (empty($password) && !$created) {
                    $password = "******";
                }
                $body_mail = str_replace("**password**", $password, $body_mail);
                $body_mail = str_replace("**email**", $email, $body_mail);
                foreach ($wp_users_fields as $wp_users_field) {
                    if ($positions[$wp_users_field] != false && $wp_users_field != "password") {
                        $body_mail = str_replace("**" . $wp_users_field . "**", $data[$positions[$wp_users_field]], $body_mail);
                    }
                }
                for ($i = 0; $i < count($headers); $i++) {
                    $body_mail = str_replace("**" . $headers[$i] . "**", $data[$i], $body_mail);
                }
                add_filter('wp_mail_content_type', 'set_html_content_type');
                if (get_option("acui_settings") == "plugin") {
                    add_action('phpmailer_init', 'acui_mailer_init');
                    add_filter('wp_mail_from', 'acui_mail_from');
                    add_filter('wp_mail_from_name', 'acui_mail_from_name');
                    wp_mail($email, $subject, $body_mail);
                    remove_filter('wp_mail_from', 'acui_mail_from');
                    remove_filter('wp_mail_from_name', 'acui_mail_from_name');
                    remove_action('phpmailer_init', 'acui_mailer_init');
                } else {
                    wp_mail($email, $subject, $body_mail);
                }
                remove_filter('wp_mail_content_type', 'set_html_content_type');
            }
        }
        $row++;
    }
    if ($attach_id != 0) {
        wp_delete_attachment($attach_id);
    }
    // delete all users that have not been imported
    if ($is_cron && get_option("acui_cron_delete_users")) {
        $all_users = get_users(array('fields' => array('ID')));
        foreach ($all_users as $user) {
            if (!in_array($user->ID, $users_registered)) {
                wp_delete_user($user->ID);
            }
        }
    }
    ?>
			</table>
			<br/>
			<p>Process finished you can go <a href="<?php 
    echo get_admin_url() . '/users.php';
    ?>
">here to see results</a></p>
			<?php 
    ini_set('auto_detect_line_endings', FALSE);
    add_filter('send_password_change_email', '__return_true');
    ?>
	</div>
<?php 
}
Пример #4
0
 function submit_registration_form($args = array())
 {
     global $edd_options;
     if (is_admin() && (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce($_REQUEST['_wpnonce'], 'fes-form-registration'))) {
         return;
     }
     check_ajax_referer('fes-form-registration');
     @header('Content-Type: application/json; charset=' . get_option('blog_charset'));
     $form_id = isset($_POST['form_id']) ? intval($_POST['form_id']) : 0;
     $db_form_id = EDD_FES()->helper->get_option('fes-registration-form', false);
     $form_vars = $this->get_input_fields($form_id);
     list($user_vars, $taxonomy_vars, $meta_vars) = $form_vars;
     $merged_user_meta = array_merge($user_vars, $meta_vars);
     do_action('fes_pre_process_registration_form', $this, $form_id, $form_vars);
     if ($form_id != $db_form_id && !is_admin()) {
         $response = array('success' => false, 'redirect_to' => get_permalink($_POST['page_id']), 'message' => __('Access Denied: ' . $form_id . ' != ' . $db_form_id, 'edd_fes'), 'is_post' => true);
         echo json_encode($response);
         exit;
     }
     //echo json_encode( $user_vars ); exit;
     // if admin side lets get them out of the way
     if (is_admin() && !empty($_REQUEST['is_admin']) && '1' == $_REQUEST['is_admin']) {
         $user = get_userdata(absint($_REQUEST['user_id']));
         if (!current_user_can('edit_users')) {
             $response = array('success' => false, 'redirect_to' => admin_url('admin.php?page=fes-vendors&vendor=' . $user->ID . '&result=denied&action=edit'), 'message' => __('Access denied!', 'edd_fes'), 'is_post' => true);
             $response = apply_filters('fes_registration_form_denied_admin_redirect', $response, $user->ID, $form_id);
             do_action('fes_registration_form_denied_admin', $user->ID);
             echo json_encode($response);
             exit;
         }
         $userdata = array();
         if ($this->search_array($merged_user_meta, 'name', 'first_name')) {
             $userdata['first_name'] = sanitize_text_field($_POST['first_name']);
         }
         if ($this->search_array($merged_user_meta, 'name', 'last_name')) {
             $userdata['last_name'] = sanitize_text_field($_POST['last_name']);
         }
         if ($this->search_array($merged_user_meta, 'name', 'user_email')) {
             if (!empty($_POST['user_email']) && !is_email($_POST['user_email'])) {
                 $this->signal_error(__('Please enter a valid email!', 'edd_fes'));
             } elseif (!empty($_POST['user_email'])) {
                 $userdata['user_email'] = sanitize_email($_POST['user_email']);
             }
         }
         if ($this->search_array($merged_user_meta, 'name', 'display_name')) {
             $userdata['display_name'] = sanitize_text_field($_POST['display_name']);
         }
         if ($this->search_array($merged_user_meta, 'name', 'user_url')) {
             if (isset($_POST['user_url'])) {
                 $userdata['user_url'] = sanitize_text_field($_POST['user_url']);
             }
         }
         $userdata['ID'] = $user->ID;
         wp_update_user($userdata);
         // save app data to vendor
         $counter = 0;
         foreach ($meta_vars as $meta) {
             if ($meta['name'] == 'password') {
                 unset($meta_vars[$counter]);
             }
             $counter++;
         }
         $this->update_user_meta($meta_vars, $user->ID);
         // redirect to dashboard
         $response = array('success' => true, 'redirect_to' => admin_url('admin.php?page=fes-vendors&vendor=' . $user->ID . '&result=success&action=edit'), 'message' => __('Successfully Updated', 'edd_fes'), 'is_post' => true);
         $response = apply_filters('fes_registration_form_admin_redirect', $response, $user->ID, $form_id);
         do_action('fes_registration_form_admin_success', $user->ID);
         echo json_encode($response);
         exit;
     }
     // End is_admin()
     // check recaptcha
     if ($this->search_array($form_vars, 'input_type', 'recaptcha')) {
         $this->validate_re_captcha();
     }
     // if user logged in skip verification & creation of new user
     if (is_user_logged_in()) {
         $user = new WP_User(get_current_user_id());
         $userdata = array();
         $userdata['user_email'] = $user->user_email;
         if ($this->search_array($merged_user_meta, 'name', 'first_name')) {
             if (!isset($_POST['first_name']) || $_POST['first_name'] === '') {
                 $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
             } else {
                 $userdata['first_name'] = sanitize_text_field($_POST['first_name']);
             }
         }
         if ($this->search_array($merged_user_meta, 'name', 'last_name')) {
             if (!isset($_POST['last_name']) || $_POST['last_name'] === '') {
                 $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
             } else {
                 $userdata['last_name'] = sanitize_text_field($_POST['last_name']);
             }
         }
         if ($this->search_array($merged_user_meta, 'name', 'display_name')) {
             if (!isset($_POST['display_name']) || $_POST['display_name'] === '') {
                 $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
             } else {
                 $userdata['display_name'] = sanitize_text_field($_POST['display_name']);
             }
         }
         if ($this->search_array($merged_user_meta, 'name', 'user_url')) {
             if (isset($_POST['user_url'])) {
                 $userdata['user_url'] = sanitize_text_field($_POST['user_url']);
             }
         }
         $userdata['ID'] = $user->ID;
         wp_update_user($userdata);
     } else {
         if ($this->is_valid_user($merged_user_meta)) {
             $userdata = array();
             if ($this->search_array($merged_user_meta, 'name', 'first_name')) {
                 if (!isset($_POST['first_name']) || $_POST['first_name'] === '') {
                     $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                 } else {
                     $userdata['first_name'] = sanitize_text_field($_POST['first_name']);
                 }
             }
             if ($this->search_array($merged_user_meta, 'name', 'last_name')) {
                 if (!isset($_POST['last_name']) || $_POST['last_name'] === '') {
                     $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                 } else {
                     $userdata['last_name'] = sanitize_text_field($_POST['last_name']);
                 }
             }
             if ($this->search_array($merged_user_meta, 'name', 'user_email')) {
                 if (!isset($_POST['user_email']) || $_POST['user_email'] === '') {
                     $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                 }
                 if (!is_email($_POST['user_email'])) {
                     $this->signal_error(__('Please enter a valid email!', 'edd_fes'));
                 } else {
                     $userdata['user_email'] = sanitize_email($_POST['user_email']);
                 }
             }
             if ($this->search_array($merged_user_meta, 'name', 'display_name')) {
                 if (!isset($_POST['display_name']) || $_POST['display_name'] === '') {
                     $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                 } else {
                     $userdata['display_name'] = sanitize_text_field($_POST['display_name']);
                 }
             }
             if ($this->search_array($merged_user_meta, 'name', 'user_url')) {
                 if (isset($_POST['user_url'])) {
                     $userdata['user_url'] = sanitize_text_field($_POST['user_url']);
                 }
             }
             if ($this->search_array($merged_user_meta, 'name', 'description')) {
                 if (isset($_POST['description'])) {
                     $userdata['description'] = wp_kses($_POST['description'], fes_allowed_html_tags());
                 }
             }
             $user = get_user_by('login', $_REQUEST['user_login']);
             if ($user) {
                 $userdata['ID'] = $user->ID;
                 wp_update_user($userdata);
                 wp_set_auth_cookie($user->ID, true);
                 wp_set_current_user($user->ID, $_REQUEST['user_login']);
                 do_action('wp_login', $_REQUEST['user_login']);
             } else {
                 $this->signal_error(__('Sorry! Registration is currently disabled at this time!', 'edd_fes'));
             }
         } else {
             if (!(bool) EDD_FES()->helper->get_option('fes-allow-applications', true)) {
                 $this->signal_error(__('Sorry! Registration is currently disabled at this time!', 'edd_fes'));
             } else {
                 $userdata = array();
                 if ($this->search_array($merged_user_meta, 'name', 'first_name')) {
                     if (!isset($_POST['first_name']) || $_POST['first_name'] === '') {
                         $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                     } else {
                         $userdata['first_name'] = sanitize_text_field($_POST['first_name']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'last_name')) {
                     if (!isset($_POST['last_name']) || $_POST['last_name'] === '') {
                         $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                     } else {
                         $userdata['last_name'] = sanitize_text_field($_POST['last_name']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'user_email')) {
                     if (!isset($_POST['user_email']) || $_POST['user_email'] === '') {
                         $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                     }
                     if (!is_email($_POST['user_email'])) {
                         $this->signal_error(__('Please enter a valid email!', 'edd_fes'));
                     } else {
                         $userdata['user_email'] = sanitize_email($_POST['user_email']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'user_login')) {
                     if (!isset($_POST['user_login']) || $_POST['user_login'] === '') {
                         $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                     } else {
                         $userdata['user_login'] = sanitize_user($_POST['user_login']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'display_name')) {
                     if (!isset($_POST['display_name']) || $_POST['display_name'] === '') {
                         $this->signal_error(__('Please fill out the registration form!', 'edd_fes'));
                     } else {
                         $userdata['display_name'] = sanitize_text_field($_POST['display_name']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'user_url')) {
                     if (isset($_POST['user_url'])) {
                         $userdata['user_url'] = sanitize_text_field($_POST['user_url']);
                     }
                 }
                 if ($this->search_array($merged_user_meta, 'name', 'description')) {
                     if (isset($_POST['description'])) {
                         $userdata['description'] = wp_kses($_POST['description'], fes_allowed_html_tags());
                     }
                 }
                 // verify password
                 if ($pass_element = $this->search_array($merged_user_meta, 'name', 'password')) {
                     $pass_element = current($pass_element);
                     $password = isset($_POST['pass1']) ? sanitize_text_field($_POST['pass1']) : '';
                     $password_repeat = isset($_POST['pass2']) ? sanitize_text_field($_POST['pass2']) : '';
                     // check only if it's filled
                     if ($pass_length = strlen($password)) {
                         // min length check
                         if ($pass_length < intval($pass_element['min_length'])) {
                             $this->signal_error(sprintf(__('Password must be %s character long', 'edd_fes'), $pass_element['min_length']));
                         }
                         // repeat password check
                         if (isset($_POST['pass2']) && $password != $password_repeat) {
                             $this->signal_error(__('Password didn\'t match', 'edd_fes'));
                         }
                         // password is good
                         $userdata['user_pass'] = $password;
                     }
                 }
                 // see if an account? If so log in
                 $user = get_user_by('login', $userdata['user_login']);
                 if ($user) {
                     $password = wp_check_password($userdata['user_pass'], $user->data->user_pass, $user->ID);
                     // if username + password is account log them in
                     if ($password) {
                         wp_set_auth_cookie($user->ID, true);
                         wp_set_current_user($user->ID, $userdata['user_login']);
                         do_action('wp_login', $userdata['user_login']);
                     } else {
                         $this->signal_error(__('Username already in use and password incorrect!', 'edd_fes'));
                     }
                 } else {
                     $userdata['role'] = 'subscriber';
                     $userdata['user_registered'] = date('Y-m-d H:i:s');
                     $user_id = wp_insert_user($userdata);
                     if (is_wp_error($user_id)) {
                         $this->signal_error($user_id->get_error_message());
                     }
                     wp_new_user_notification($user_id);
                     $user = new WP_User($user_id);
                     $user_login = $userdata['user_login'];
                     // log the new user in
                     wp_set_auth_cookie($user_id, true);
                     wp_set_current_user($user_id, $user_login);
                     do_action('wp_login', $user_login);
                 }
             }
         }
     }
     // at this point should have user_id
     $user_id = get_current_user_id();
     // if auto approved
     if ((bool) EDD_FES()->helper->get_option('fes-auto-approve-vendors', true)) {
         $role = 'frontend_vendor';
         // save app data to vendor
         $counter = 0;
         foreach ($meta_vars as $meta) {
             if ($meta['name'] == 'password') {
                 unset($meta_vars[$counter]);
             }
             $counter++;
         }
         $this->update_user_meta($meta_vars, $user_id);
         // email user
         $to = apply_filters('fes_registration_form_frontend_vendor_to', $userdata['user_email'], $userdata);
         $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
         $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
         $subject = apply_filters('fes_registration_form_to_vendor_accepted_subject', __('Application Accepted', 'edd_fes'));
         $message = EDD_FES()->helper->get_option('fes-vendor-new-auto-vendor-email', '');
         $type = "user";
         $id = $user_id;
         $args = array('permissions' => 'fes-vendor-new-auto-vendor-email-toggle');
         EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
         // add frontend_vendor role
         $user->add_role('frontend_vendor');
         // remove pending_vendor role
         $user->remove_role('pending_vendor');
         // redirect to dashboard
         $response = array('success' => true, 'redirect_to' => get_permalink(EDD_FES()->helper->get_option('fes-vendor-dashboard-page', false)), 'message' => __('Your Application has been Approved!', 'edd_fes'), 'is_post' => true);
         do_action('fes_registration_form_frontend_vendor', $user_id, $userdata);
         $response = apply_filters('fes_register_form_frontend_vendor', $response, $user_id, $form_id, $_REQUEST);
         echo json_encode($response);
         exit;
         // else pending vendor
     } else {
         // save app data to vendor
         $counter = 0;
         foreach ($meta_vars as $meta) {
             if ($meta['name'] == 'password') {
                 unset($meta_vars[$counter]);
             }
             $counter++;
         }
         $this->update_user_meta($meta_vars, $user_id);
         // email admin
         $to = apply_filters('fes_registration_form_pending_vendor_to_admin', edd_get_admin_notice_emails(), $userdata);
         $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
         $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
         $subject = apply_filters('fes_registration_form_to_admin_subject', __('New Vendor Application Received', 'edd_fes'));
         $message = EDD_FES()->helper->get_option('fes-admin-new-app-email', '');
         $type = "user";
         $id = $user_id;
         $args = array('permissions' => 'fes-admin-new-app-email-toggle');
         EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
         // email user
         $to = apply_filters('fes_registration_form_pending_vendor_to', $userdata['user_email'], $userdata);
         $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
         $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
         $subject = apply_filters('fes_registration_form_to_vendor_received_subject', __('Application Received', 'edd_fes'));
         $message = EDD_FES()->helper->get_option('fes-vendor-new-app-email', '');
         $type = "user";
         $id = $user_id;
         $args = array('permissions' => 'fes-vendor-new-app-email-toggle');
         EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
         // add pending vendor cap
         $user->add_role('pending_vendor');
         // redirect to app under view
         $response = array('success' => true, 'redirect_to' => get_permalink(EDD_FES()->helper->get_option('fes-vendor-dashboard-page', false)), 'message' => __('Application Submitted', 'edd_fes'), 'is_post' => true);
         do_action('fes_registration_form_pending_vendor', $user_id, $userdata);
         $response = apply_filters('fes_register_form_pending_vendor', $response, $user_id, $form_id, $_REQUEST);
         echo json_encode($response);
         exit;
     }
 }
Пример #5
0
 function process_bulk_action()
 {
     $ids = isset($_GET['vendor']) ? $_GET['vendor'] : false;
     if (empty($ids)) {
         return;
     }
     if (!is_array($ids)) {
         $ids = array($ids);
     }
     $current_action = $_GET['action'];
     foreach ($ids as $id) {
         if ('approve_vendor' === $current_action) {
             if ($id < 2) {
                 break;
             }
             if (user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor')) {
                 break;
             }
             if (!user_can($id, 'pending_vendor')) {
                 break;
             }
             $user = new WP_User($id);
             $user->remove_role('pending_vendor');
             $user->add_role('frontend_vendor');
             $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
             $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
             $subject = apply_filters('fes_application_approved_message_subj', __('Application Approved', 'edd_fes'), 0);
             $message = EDD_FES()->helper->get_option('fes-vendor-app-approved-email', '');
             $type = "user";
             $args['permissions'] = 'fes-vendor-app-approved-email-toggle';
             EDD_FES()->emails->send_email($user->user_email, $from_name, $from_email, $subject, $message, $type, $id, $args);
             do_action('fes_approve_vendor_admin', $id);
             if (isset($_GET['redirect']) && $_GET['redirect'] == '2') {
                 wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2'));
                 exit;
             }
         }
         if ('revoke_vendor' === $current_action) {
             if ($id < 2) {
                 break;
             }
             if (!(user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor'))) {
                 break;
             }
             $user = new WP_User($id);
             $user->remove_role('frontend_vendor');
             $user->remove_cap('fes_is_admin');
             $user->add_role('subscriber');
             // remove all their posts
             $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'any');
             $query = new WP_Query($args);
             foreach ($query->posts as $id) {
                 wp_delete_post($id, false);
             }
             $to = $user->user_email;
             $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
             $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
             $subject = apply_filters('fes_application_revoked_message_subj', __('Application Revoked', 'edd_fes'), 0);
             $message = EDD_FES()->helper->get_option('fes-vendor-app-revoked-email', '');
             $type = "user";
             $id = $id;
             $args['permissions'] = 'fes-vendor-app-revoked-email-toggle';
             EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
             do_action('fes_revoke_vendor_admin', $id);
         }
         if ('decline_vendor' === $current_action) {
             if ($id < 2) {
                 break;
             }
             if (user_can($id, 'fes_is_admin') || user_can($id, 'frontend_vendor')) {
                 break;
             }
             if (!user_can($id, 'pending_vendor')) {
                 break;
             }
             $user = new WP_User($id);
             $user->remove_role('pending_vendor');
             $to = $user->user_email;
             $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
             $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
             $subject = apply_filters('fes_application_declined_message_subj', __('Application Declined', 'edd_fes'), 0);
             $message = EDD_FES()->helper->get_option('fes-vendor-app-declined-email', '');
             $type = "user";
             $id = $id;
             $args['permissions'] = 'fes-vendor-app-declined-email-toggle';
             EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
             do_action('fes_decline_vendor_admin', $id);
         }
         if ('suspend_vendor' === $current_action) {
             if ($id < 2) {
                 break;
             }
             if (user_can($id, 'pending_vendor')) {
                 break;
             }
             if (user_can($id, 'suspended_vendor')) {
                 break;
             }
             $user = new WP_User($id);
             $user->remove_role('frontend_vendor');
             $user->add_role('suspended_vendor');
             // remove all their posts
             $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'any');
             $query = new WP_Query($args);
             foreach ($query->posts as $id) {
                 $post = get_post($id);
                 update_post_meta($id, 'fes_previous_status', $post->post_status);
                 wp_delete_post($id, false);
             }
             $to = $user->user_email;
             $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
             $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
             $subject = apply_filters('fes_vendor_suspended_message_subj', __('Suspended', 'edd_fes'), 0);
             $message = EDD_FES()->helper->get_option('fes-vendor-suspended-email', '');
             $type = "user";
             $id = $id;
             $args['permissions'] = 'fes-vendor-suspended-email-toggle';
             EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
             do_action('fes_vendor_suspended_admin', $id);
             if (isset($_GET['redirect']) && $_GET['redirect'] == '2') {
                 wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2'));
                 exit;
             }
         }
         if ('unsuspend_vendor' === $current_action) {
             if ($id < 2) {
                 break;
             }
             if (user_can($id, 'pending_vendor')) {
                 break;
             }
             if (user_can($id, 'frontend_vendor')) {
                 break;
             }
             $user = new WP_User($id);
             $user->add_role('frontend_vendor');
             $user->remove_role('suspended_vendor');
             // remove all their posts
             $args = array('post_type' => 'download', 'author' => $id, 'posts_per_page' => -1, 'fields' => 'ids', 'post_status' => 'trash');
             $query = new WP_Query($args);
             foreach ($query->posts as $id) {
                 $status = get_post_meta($id, 'fes_previous_status', true);
                 if (!$status) {
                     $status = 'publish';
                 }
                 wp_update_post(array('ID' => $id, 'post_status' => $status));
             }
             $to = $user->user_email;
             $from_name = isset($edd_options['from_name']) ? $edd_options['from_name'] : get_bloginfo('name');
             $from_email = isset($edd_options['from_email']) ? $edd_options['from_email'] : get_option('admin_email');
             $subject = apply_filters('fes_vendor_unsuspended_message_subj', __('Unsuspended', 'edd_fes'), 0);
             $message = EDD_FES()->helper->get_option('fes-vendor-unsuspended-email', '');
             $type = "user";
             $id = $id;
             $args['permissions'] = 'fes-vendor-unsuspended-email-toggle';
             EDD_FES()->emails->send_email($to, $from_name, $from_email, $subject, $message, $type, $id, $args);
             do_action('fes_vendor_unsuspended_admin', $id);
             if (isset($_GET['redirect']) && $_GET['redirect'] == '2') {
                 wp_redirect(admin_url('admin.php?page=fes-vendors&vendor=' . $id . '&action=edit&approved=2'));
                 exit;
             }
         }
     }
 }
Пример #6
0
     /* Send role deleted message. */
     add_action('members_pre_edit_roles_form', 'members_message_role_deleted');
     /* Get the default role. */
     $default_role = get_option('default_role');
     /* Get the role we want to delete. */
     $role = $_GET['role'];
     /* Get all users with the role to be deleted. */
     $wp_user_search = new WP_User_Search('', '', $role);
     $change_users = $wp_user_search->get_results();
     /* If there are users with the role we're deleting, loop through them, remove the role, and set the default role. */
     if (isset($change_users) && is_array($change_users)) {
         foreach ($change_users as $move_user) {
             $new_user = new WP_User($move_user);
             /* If the user has the role, remove it and set the default. Do we need this check? */
             if ($new_user->has_cap($role)) {
                 $new_user->remove_role($role);
                 $new_user->set_role($default_role);
             }
         }
     }
     /* Remove the role. */
     remove_role($role);
     /* Load the edit roles page. */
     require_once 'edit-roles.php';
     break;
     /* If a role has been updated.  Is this needed still? */
 /* If a role has been updated.  Is this needed still? */
 case 'role-updated':
     /* Set some default variables. */
     $title = __('Edit Role', 'members');
     $role = $_GET['role'];
Пример #7
0
 /**
  * delete a given role from wordpress
  * R22
  * @param str $role
  */
 function delete_role($role)
 {
     global $wp_roles, $iwg_rolemanagement;
     if ($_POST['confirm']) {
         $iwg_rolemanagement->check_admin_ref('iwg_rolemanager_delete_role_' . $role);
         // no: underscore, space
         // yes: minus
         $role_name = $iwg_rolemanagement->check_input($role, null, false, false, true);
         if (!$role_name) {
             $iwg_rolemanagement->error_number += 1000;
             $iwg_rolemanagement->handle_error();
         }
         $defaultrole = get_option('default_role');
         if ($role_name == $defaultrole) {
             //LAZY CODE ALERT! we should give the option of changing the default role
             $iwg_rolemanagement->error_number = 1020;
             $iwg_rolemanagement->handle_error();
         }
         //remove the role from all the users
         $uids_with_role = $iwg_rolemanagement->get_all_userids_with_role($role_name);
         if (count($uids_with_role) > 0) {
             foreach ($uids_with_role as $id) {
                 $user = new WP_User($id);
                 $user->roles = $iwg_rolemanagement->fill_array_keys_with_true($user->roles);
                 //if this role removal would end them up with no roles, assign the default role instead of removing
                 if (count($user->roles) <= 1) {
                     $user->add_role($defaultrole);
                     $user->roles = $iwg_rolemanagement->fill_array_keys_with_true($user->roles);
                 }
                 $user->remove_role($role_name);
             }
         }
         $wp_roles->remove_role($role_name);
         header('Location: ' . $this->manage_roles_uri . '&role-deleted=true');
     }
 }
Пример #8
0
 /**
  * Save for user role adding
  *
  * @param $user_id int
  */
 public function save_profile_update($user_id)
 {
     global $wp_roles;
     if (!is_super_admin() && !current_user_can('backwpup_admin')) {
         return;
     }
     if (empty($user_id)) {
         return;
     }
     if (!isset($_POST['backwpup_role'])) {
         return;
     }
     // get BackWPup roles
     $backwpup_roles = array();
     foreach (array_keys($wp_roles->roles) as $role) {
         if (!strstr($role, 'backwpup_')) {
             continue;
         }
         $backwpup_roles[] = $role;
     }
     //get user for adding/removing role
     $user = new WP_User($user_id);
     //remove BackWPup role from user
     foreach ($user->roles as $role) {
         if (!strstr($role, 'backwpup_')) {
             continue;
         }
         $user->remove_role($role);
     }
     //add new role to user
     if (!empty($_POST['backwpup_role']) && in_array($_POST['backwpup_role'], $backwpup_roles)) {
         $user->add_role($_POST['backwpup_role']);
     }
     return;
 }
Пример #9
0
 public function gmgt_add_user($data)
 {
     global $wpdb;
     $table_members = $wpdb->prefix . 'usermeta';
     $table_gmgt_groupmember = $wpdb->prefix . 'gmgt_groupmember';
     //-------usersmeta table data--------------
     if (isset($data['middle_name'])) {
         $usermetadata['middle_name'] = $data['middle_name'];
     }
     if (isset($data['gender'])) {
         $usermetadata['gender'] = $data['gender'];
     }
     if (isset($data['birth_date'])) {
         $usermetadata['birth_date'] = $data['birth_date'];
     }
     if (isset($data['address'])) {
         $usermetadata['address'] = $data['address'];
     }
     if (isset($data['city_name'])) {
         $usermetadata['city_name'] = $data['city_name'];
     }
     if (isset($data['state_name'])) {
         $usermetadata['state_name'] = $data['state_name'];
     }
     if (isset($data['zip_code'])) {
         $usermetadata['zip_code'] = $data['zip_code'];
     }
     if (isset($data['mobile'])) {
         $usermetadata['mobile'] = $data['mobile'];
     }
     if (isset($data['phone'])) {
         $usermetadata['phone'] = $data['phone'];
     }
     if (isset($data['gmgt_user_avatar'])) {
         $usermetadata['gmgt_user_avatar'] = $data['gmgt_user_avatar'];
     }
     if ($data['role'] == 'staff_member') {
         if (isset($data['role_type'])) {
             $usermetadata['role_type'] = $data['role_type'];
         }
         if (isset($data['specialization'])) {
             $usermetadata['specialization'] = json_encode($data['specialization']);
         }
     }
     /*if($data['role']=='accountant')
     		{
     			if(isset($data['role_type']))
     			$usermetadata['role_type']=$data['role_type'];
     			
     		}*/
     if ($data['role'] == 'member') {
         if (isset($data['member_id'])) {
             $usermetadata['member_id'] = $data['member_id'];
         }
         //if(isset($data['group_id']))
         //$usermetadata['group_id']=$data['group_id'];
         if (isset($data['class_id'])) {
             $usermetadata['class_id'] = $data['class_id'];
         }
         if (isset($data['class_id'])) {
             $usermetadata['class_id'] = $data['class_id'];
         }
         if (isset($data['height'])) {
             $usermetadata['height'] = $data['height'];
         }
         if (isset($data['weight'])) {
             $usermetadata['weight'] = $data['weight'];
         }
         if (isset($data['chest'])) {
             $usermetadata['chest'] = $data['chest'];
         }
         if (isset($data['waist'])) {
             $usermetadata['waist'] = $data['waist'];
         }
         if (isset($data['thigh'])) {
             $usermetadata['thigh'] = $data['thigh'];
         }
         if (isset($data['arms'])) {
             $usermetadata['arms'] = $data['arms'];
         }
         if (isset($data['fat'])) {
             $usermetadata['fat'] = $data['fat'];
         }
         if (isset($data['staff_id'])) {
             $usermetadata['staff_id'] = $data['staff_id'];
         }
         if (isset($data['intrest_area'])) {
             $usermetadata['intrest_area'] = $data['intrest_area'];
         }
         if (isset($data['source'])) {
             $usermetadata['source'] = $data['source'];
         }
         if (isset($data['reference_id'])) {
             $usermetadata['reference_id'] = $data['reference_id'];
         }
         if (isset($data['inqiury_date'])) {
             $usermetadata['inqiury_date'] = $data['inqiury_date'];
         }
         if (isset($data['triel_date'])) {
             $usermetadata['triel_date'] = $data['triel_date'];
         }
         if (isset($data['membership_id'])) {
             $usermetadata['membership_id'] = $data['membership_id'];
         }
         if (isset($data['membership_status'])) {
             $usermetadata['membership_status'] = $data['membership_status'];
         }
         if (isset($data['auto_renew'])) {
             $usermetadata['auto_renew'] = $data['auto_renew'];
         }
         if (isset($data['begin_date'])) {
             $usermetadata['begin_date'] = $data['begin_date'];
         }
         if (isset($data['end_date'])) {
             $usermetadata['end_date'] = $data['end_date'];
         }
         if (isset($data['first_payment_date'])) {
             $usermetadata['first_payment_date'] = $data['first_payment_date'];
         }
         if (isset($data['member_convert'])) {
             $roledata['role'] = $data['member_convert'];
         }
     }
     if (isset($data['username'])) {
         $userdata['user_login'] = $data['username'];
     }
     if (isset($data['email'])) {
         $userdata['user_email'] = $data['email'];
     }
     $userdata['user_nicename'] = NULL;
     $userdata['user_url'] = NULL;
     if (isset($data['first_name'])) {
         $userdata['display_name'] = $data['first_name'] . " " . $data['last_name'];
     }
     if ($data['password'] != "") {
         $userdata['user_pass'] = $data['password'];
     }
     if ($data['action'] == 'edit') {
         $userdata['ID'] = $data['user_id'];
         $user_id = wp_update_user($userdata);
         if (!empty($roledata)) {
             $u = new WP_User($user_id);
             $u->remove_role('member');
             $u->add_role('staff_member');
         }
         $returnans = update_user_meta($user_id, 'first_name', $data['first_name']);
         $returnans = update_user_meta($user_id, 'last_name', $data['last_name']);
         foreach ($usermetadata as $key => $val) {
             $returnans = update_user_meta($user_id, $key, $val);
         }
         if (isset($data['group_id'])) {
             if (!empty($data['group_id'])) {
                 if ($this->member_exist_ingrouptable($user_id)) {
                     $this->delete_member_from_grouptable($user_id);
                 }
                 foreach ($data['group_id'] as $id) {
                     $group_data['group_id'] = $id;
                     $group_data['member_id'] = $user_id;
                     $group_data['created_date'] = date("Y-m-d");
                     $group_data['created_by'] = get_current_user_id();
                     $wpdb->insert($table_gmgt_groupmember, $group_data);
                 }
             }
         }
         return $user_id;
     } else {
         $user_id = wp_insert_user($userdata);
         $user = new WP_User($user_id);
         $user->set_role($data['role']);
         if ($data['role'] == 'member') {
             $usermetadata['membership_status'] = "Continue";
         }
         foreach ($usermetadata as $key => $val) {
             $returnans = add_user_meta($user_id, $key, $val, true);
         }
         if (isset($data['first_name'])) {
             $returnans = update_user_meta($user_id, 'first_name', $data['first_name']);
         }
         if (isset($data['last_name'])) {
             $returnans = update_user_meta($user_id, 'last_name', $data['last_name']);
         }
         if (isset($data['group_id'])) {
             if (!empty($data['group_id'])) {
                 foreach ($data['group_id'] as $id) {
                     $group_data['group_id'] = $id;
                     $group_data['member_id'] = $user_id;
                     $group_data['created_date'] = date("Y-m-d");
                     $group_data['created_by'] = get_current_user_id();
                     $wpdb->insert($table_gmgt_groupmember, $group_data);
                 }
             }
         }
         if ($data['role'] == 'member') {
             $membership_status = 'continue';
             $payment_data = array();
             $payment_data['member_id'] = $user_id;
             $payment_data['membership_id'] = $data['membership_id'];
             $payment_data['membership_amount'] = get_membership_price($data['membership_id']);
             $payment_data['start_date'] = $data['begin_date'];
             $payment_data['end_date'] = $data['end_date'];
             $payment_data['membership_status'] = $membership_status;
             $payment_data['payment_status'] = 0;
             $payment_data['created_date'] = date("Y-m-d");
             $payment_data['created_by'] = get_current_user_id();
             $plan_id = $this->add_membership_payment_detail($payment_data);
             //if(isset($plan_id))
             //$returnans=update_user_meta( $user_id, 'gym_membership_payemnt_id', $plan_id );
         }
         return $user_id;
     }
 }
Пример #10
0
 /**
  * Deletes custom role.
  */
 public static function wpcf_access_delete_role_ajax()
 {
     if (!current_user_can('manage_options')) {
         _e('There are security problems. You do not have permissions.', 'wpcf-access');
         die;
     }
     if (!isset($_POST['wpnonce']) || !wp_verify_nonce($_POST['wpnonce'], 'wpcf-access-error-pages')) {
         die('verification failed');
     }
     if (in_array(strtolower(trim($_POST['wpcf_access_delete_role'])), Access_Helper::wpcf_get_default_roles())) {
         $error = 'true';
         $output = '<div class="error toolset-alert toolset-alert-error js-toolset-alert">' . __('Role can not be deleted', 'wpcf-access') . '</div>';
     } else {
         $delete_role = sanitize_text_field($_POST['wpcf_access_delete_role']);
         TAccess_Loader::load('CLASS/Admin_Edit');
         $model = TAccess_Loader::get('MODEL/Access');
         $access_roles = $model->getAccessRoles();
         if ($_POST['wpcf_reassign'] != 'ignore') {
             $users = get_users('role=' . $delete_role);
             foreach ($users as $user) {
                 $user = new WP_User($user->ID);
                 $user->add_role(Access_Helper::wpcf_esc_like($_POST['wpcf_reassign']));
                 $user->remove_role($delete_role);
             }
         }
         remove_role($delete_role);
         if (isset($access_roles[$delete_role])) {
             unset($access_roles[$delete_role]);
         }
         $model->updateAccessRoles($access_roles);
         $error = 'false';
         $output = Access_Admin_Edit::wpcf_access_admin_set_custom_roles_level_form(Access_Helper::wpcf_get_editable_roles());
     }
     echo json_encode(array('error' => $error, 'output' => $output));
     die;
 }
Пример #11
0
 /**
  * Callback function for handling user role changes.  Note that we needed to execute this function
  * on a different hook, `profile_update`.  Using the normal hooks on the edit user screen won't work
  * because WP will wipe out the role.
  *
  * @since  1.0.0
  * @access public
  * @param  int    $user_id
  * @return void
  */
 public function role_update($user_id)
 {
     // If the current user can't promote users or edit this particular user, bail.
     if (!current_user_can('promote_users') || !current_user_can('edit_user', $user_id)) {
         return;
     }
     // Is this a role change?
     if (!isset($_POST['members_new_user_roles_nonce']) || !wp_verify_nonce($_POST['members_new_user_roles_nonce'], 'new_user_roles')) {
         return;
     }
     // Create a new user object.
     $user = new WP_User($user_id);
     // If we have an array of roles.
     if (!empty($_POST['members_user_roles'])) {
         // Get the current user roles.
         $old_roles = (array) $user->roles;
         // Sanitize the posted roles.
         $new_roles = array_map('members_sanitize_role', $_POST['members_user_roles']);
         // Loop through the posted roles.
         foreach ($new_roles as $new_role) {
             // If the user doesn't already have the role, add it.
             if (!in_array($new_role, (array) $user->roles)) {
                 $user->add_role($new_role);
             }
         }
         // Loop through the current user roles.
         foreach ($old_roles as $old_role) {
             // If the role is editable and not in the new roles array, remove it.
             if (members_is_role_editable($old_role) && !in_array($old_role, $new_roles)) {
                 $user->remove_role($old_role);
             }
         }
         // If the posted roles are empty.
     } else {
         // Loop through the current user roles.
         foreach ((array) $user->roles as $old_role) {
             // Remove the role if it is editable.
             if (members_is_role_editable($old_role)) {
                 $user->remove_role($old_role);
             }
         }
     }
 }
 private function _upgrade_user_roles()
 {
     global $wpdb;
     $query = $wpdb->prepare("\n\t\t\tSELECT um.*\n\t\t\tFROM {$wpdb->users} u\n\t\t\tINNER JOIN {$wpdb->usermeta} um ON um.user_id = u.ID AND um.meta_key = %s\n\t\t\tWHERE um.meta_value LIKE %s\n\t\t", 'wp_capabilities', '%"lpr\\_teacher"%');
     if ($rows = $wpdb->get_results($query)) {
         foreach ($rows as $row) {
             $user = new WP_User($row->user_id);
             $user->remove_role('lpr_teacher');
             $user->add_role('lp_teacher');
         }
     }
     remove_role('lpr_teacher');
 }
Пример #13
0
 /**
  * LazyestAdmin::remove_user()
  * 
  * @since 1.1.0
  * @param int $user_id
  * @param string $type user role to remove
  * @return void
  */
 function remove_user($user_id, $type = 'none')
 {
     $nonce = $_REQUEST['_wpnonce'];
     $lg_settings = isset($_REQUEST['lg_settings']) ? $_REQUEST['lg_settings'] : 0;
     $from_settings = wp_verify_nonce($lg_settings, 'settings');
     $from_admin = wp_verify_nonce($nonce, 'lg_manage_gallery');
     if ($from_admin || $from_settings) {
         if ('none' == $type) {
             return;
         }
         $user = new WP_User($user_id);
         $user->remove_role("lazyest_{$type}");
         switch ($type) {
             case 'author':
                 $user->remove_cap('edit_lazyest_fields');
                 $user->remove_cap('lazyest_author');
             case 'editor':
                 $user->remove_cap('upload_lazyest_files');
                 $user->remove_cap('create_lazyest_folder');
                 $user->remove_cap('lazyest_editor');
                 break;
             case 'manager':
                 $user->remove_cap('manage_lazyest_files');
                 $user->remove_cap('lazyest_manager');
             default:
                 break;
         }
         unset($user);
     } else {
         wp_die(esc_html__('You are not allowed to remove users from Lazyest Gallery', 'lazyest-gallery'));
     }
 }
Пример #14
0
function lti_update($choice)
{
    global $blog_id, $wpdb;
    // Add users
    $add_users = unserialize($_SESSION[LTI_SESSION_PREFIX . 'provision']);
    foreach ($add_users as $new_u) {
        $result = wp_insert_user(array('user_login' => $new_u->username, 'user_nicename' => $new_u->username, 'first_name' => $new_u->firstname, 'last_name' => $new_u->lastname, 'user_url' => 'http://', 'display_name' => $new_u->fullname));
        if (is_wp_error($result)) {
            $_SESSION[LTI_SESSION_PREFIX . 'error'] .= $new_u->username . ":" . $result->get_error_message() . "<br />";
            continue;
        }
        // Sort out role in blog
        $role = 'author';
        if ($new_u->staff === TRUE) {
            $role = 'administrator';
        }
        // Add newly created users to blog and set role
        add_user_to_blog($blog_id, $result, $role);
        if (is_wp_error($result)) {
            $_SESSION[LTI_SESSION_PREFIX . 'error'] .= $new_u->username . ":" . $result->get_error_message() . "<br />";
        }
    }
    // Existing users that require adding to blog
    $add_to_blog = unserialize($_SESSION[LTI_SESSION_PREFIX . 'new_to_blog']);
    foreach ($add_to_blog as $new_u) {
        $role = 'author';
        if ($new_u->staff === TRUE) {
            $role = 'administrator';
        }
        add_user_to_blog($blog_id, $new_u->id, $role);
        if (is_wp_error($result)) {
            $_SESSION[LTI_SESSION_PREFIX . 'error'] .= $new_u->username . ":" . $result->get_error_message() . "<br />";
        }
    }
    // Changed name
    $changed = unserialize($_SESSION[LTI_SESSION_PREFIX . 'changed']);
    foreach ($changed as $change) {
        wp_update_user(array('ID' => $change->id, 'first_name' => $change->firstname, 'last_name' => $change->lastname, 'display_name' => $change->fullname));
    }
    // Changed role (most probably administrator -> author, author -> administrator)
    $changed_role = unserialize($_SESSION[LTI_SESSION_PREFIX . 'role_changed']);
    foreach ($changed_role as $changed) {
        $user = new WP_User($changed->id, '', $blog_id);
        $user->add_role($changed->role_changed);
        if ($changed->role_changed == 'administrator') {
            $user->remove_role('author');
            $user->remove_role('subscriber');
        }
        if ($changed->role_changed == 'author') {
            $user->remove_role('administrator');
            $user->remove_role('subscriber');
        }
        if ($changed->role_changed == 'subscriber') {
            $user->remove_role('administrator');
            $user->remove_role('author');
        }
    }
    // Remove users from blog but not WP as could be members of
    // other blogs. Could check and handle?
    if ($choice == 'delete') {
        $delete = unserialize($_SESSION[LTI_SESSION_PREFIX . 'remove']);
        foreach ($delete as $del) {
            $user = get_user_by('login', $del->username);
            remove_user_from_blog($user->ID, $blog_id);
            if (is_wp_error($result)) {
                $_SESSION[LTI_SESSION_PREFIX . 'error'] .= $new_u->username . ":" . $result->get_error_message() . "<br />";
            }
        }
    }
    global $wpdb;
    // Get the consumer
    $consumer = new LTI_Tool_Consumer($_SESSION[LTI_SESSION_PREFIX . 'key'], array($wpdb->base_prefix));
    $resource = new LTI_Resource_Link($consumer, $_SESSION[LTI_SESSION_PREFIX . 'resourceid']);
    if ($resource->hasSettingService()) {
        $resource->doSettingService(LTI_Resource_Link::EXT_WRITE, date('d-M-Y H:i'));
    }
}
Пример #15
0
 function admin_delete($id, $obj)
 {
     global $wp_roles;
     $id = $obj->id;
     if (!isset($obj->data[$id])) {
         return $obj->error(__('Role not found, it cannot be deleted.', 'pods'));
     }
     $default_role = get_option('default_role');
     if ($id == $default_role) {
         return $obj->error(sprintf(__('You cannot remove the <strong>%s</strong> role, you must set a new default role for the site first.', 'pods'), $obj->data[$id]['name']));
     }
     $wp_user_search = new WP_User_Search('', '', $id);
     $users = $wp_user_search->get_results();
     if (!empty($users) && is_array($users)) {
         foreach ($users as $user) {
             $user_object = new WP_User($user);
             if ($user_object->has_cap($id)) {
                 $user_object->remove_role($id);
                 $user_object->set_role($default_role);
             }
         }
     }
     remove_role($id);
     $roles = array();
     foreach ($wp_roles->role_objects as $key => $role) {
         $count = $this->count_users($key);
         $roles[$key] = array('id' => $key, 'label' => $wp_roles->role_names[$key], 'name' => $key, 'capabilities' => count((array) $role->capabilities), 'users' => sprintf(_n('%s User', '%s Users', $count, 'pods'), $count));
         if ($default_role == $key) {
             $roles[$key]['label'] .= ' (site default)';
         }
         if (0 < $count && pods_is_admin(array('list_users'))) {
             $roles[$key]['users'] .= '<br /><a href="' . admin_url(esc_url('users.php?role=' . $key)) . '">' . __('View Users', 'pods') . '</a>';
         }
     }
     $name = $obj->data[$id]['label'] . ' (' . $obj->data[$id]['name'] . ')';
     $obj->data = $roles;
     $obj->total = count($roles);
     $obj->total_found = count($roles);
     $obj->message('<strong>' . $name . '</strong> ' . __('role removed from site.', 'pods'));
 }
Пример #16
0
 /**
  * Import a single user
  * 
  * @param array $user
  * @return array
  */
 protected function import_user($user)
 {
     $local_user = get_user_by('login', $user['data']['user_login']);
     $local_user_object = new WP_User($local_user->ID);
     $update = !empty($local_user) ? true : false;
     if (!function_exists('wp_insert_user')) {
         include_once ABSPATH . 'wp-includes/registration.php';
     }
     // args used by wp_insert_user & wp_update_user
     // makes for an easy merge and a reminder of just what is handled at that time
     $insert_user_args = array('user_login' => null, 'user_nicename' => null, 'user_url' => null, 'user_email' => null, 'display_name' => null, 'nickname' => null, 'first_name' => null, 'last_name' => null, 'description' => null, 'rich_editing' => null, 'user_registered' => null, 'role' => null, 'use_ssl' => 0, 'admin_color' => null, 'comment_shortcuts' => null);
     foreach (_wp_get_user_contactmethods() as $contact_method => $contact_method_name) {
         $insert_user_args[$contact_method] = null;
     }
     cfd_tmp_dbg('importing_user.txt', $user, 'print');
     foreach ($insert_user_args as $key => &$arg) {
         if ($key == 'role') {
             $arg = $user['roles'][0];
         } else {
             if (!empty($user['data'][$key])) {
                 $arg = $user['data'][$key];
             }
         }
     }
     cfd_tmp_dbg('importing_user_args.txt', $insert_user_args, 'print');
     if ($update) {
         $local_userdata = get_object_vars(get_userdata($local_user->ID));
         $insert_user_args = array_merge($local_userdata, $insert_user_args);
         unset($insert_user_args['user_pass']);
         $user_id = wp_update_user($insert_user_args);
     } else {
         if (email_exists($user['data']['user_email'])) {
             $this->add_import_message('users', '__error__', sprintf(__('Email address "%s" already exists for another user', 'cf-deploy'), $user['data']['user_email']));
             return false;
         }
         // set generic password for new user
         $insert_user_args['user_password'] = time();
         $user_id = wp_insert_user($insert_user_args);
     }
     if (empty($user_id) || is_wp_error($user_id)) {
         $errstring = sprintf(__('Import failed for user "%s".', 'cf-deploy'), $user['data']['user_nicename']);
         if (is_wp_error($user_id)) {
             $errstring .= ' ' . __('Error:', 'cf-deploy') . ' ' . $user_id->get_error_message();
         }
         $this->add_import_message('users', '__error__', $errstring);
         $ret = false;
     } else {
         // Set/Update Capabilities & Roles
         $u = new WP_User($user_id);
         // set roles, remove all existing and replace with what is being brought in
         foreach ($u->roles as $role) {
             $u->remove_role($role);
         }
         foreach ($user['roles'] as $role) {
             $u->add_role($role);
         }
         // set caps, remove all existing caps before setting them anew
         $u->remove_all_caps();
         foreach ($user['caps'] as $cap => $value) {
             $u->add_cap($cap, (bool) $value);
         }
         $this->add_import_message('users', '__notice__', sprintf(__('User "%s" successfully imported.', 'cf-deploy'), $user['data']['user_login']));
         $ret = true;
     }
     $item_change['users'][$user['data']['user_login']] = 'new';
     if (!empty($local_user)) {
         $log_users = array($local_user_object);
         array_walk_recursive($log_users, array($this, 'object_to_array'));
         $item_change['users'][$user['data']['user_login']] = current($log_users);
     }
     $this->log_item_change($item_change);
     return $ret;
 }
 /**
  * D�saffecte des utilisateurs � un role
  * @param $code identifiant du role
  */
 function unaffectUsersToGroup($code)
 {
     // ROLES
     $roles = get_option('wp_user_roles', array());
     // Si le role existe
     if (isset($roles[$code])) {
         $wps_customer_mdl = new wps_customer_mdl();
         $users = $wps_customer_mdl->getUserList();
         if (!empty($users)) {
             foreach ($users as $user) {
                 $u = new WP_User($user->ID);
                 // Si l'utilisateur poss�de le role, on le retire de sa liste de droits
                 if (isset($u->roles[0]) && $u->roles[0] == $code) {
                     $u->remove_role($u->roles[0]);
                     $u->add_role('subscriber');
                 }
             }
         }
     }
 }
Пример #18
0
/**
 * Removes a user's forum role.
 *
 * @since  1.0.0
 * @access public
 * @param  int     $user_id
 * @param  string  $role
 */
function mb_remove_user_role($user_id, $role)
{
    /* Get the user object. */
    $user = new WP_User($user_id);
    $dynamic_roles = array_keys(mb_get_dynamic_roles());
    if (in_array($role, $dynamic_roles) && in_array($role, $user->roles)) {
        $user->remove_role($role);
    }
}
Пример #19
0
 /**
  * Save for user role adding
  *
  * @param $user_id int
  */
 public function save_profile_update($user_id)
 {
     global $wp_roles;
     if (!is_super_admin() && !current_user_can('backwpup_admin')) {
         return;
     }
     if (empty($user_id)) {
         return;
     }
     if (!isset($_POST['backwpup_role'])) {
         return;
     }
     $backwpup_role = esc_attr($_POST['backwpup_role']);
     //get BackWPup roles
     $backwpup_roles = array();
     foreach (array_keys($wp_roles->roles) as $role) {
         if (!strstr($role, 'backwpup_')) {
             continue;
         }
         $backwpup_roles[] = $role;
     }
     //get user for adding/removing role
     $user = new WP_User($user_id);
     //a admin needs no extra role
     if ($user->has_cap('administrator') && $user->has_cap('backwpup_settings')) {
         $backwpup_role = '';
     }
     //remove BackWPup role from user if it not the actual
     foreach ($user->roles as $role) {
         if (!strstr($role, 'backwpup_')) {
             continue;
         }
         if ($role !== $backwpup_role) {
             $user->remove_role($role);
         } else {
             $backwpup_role = '';
         }
     }
     //add new role to user if it not the actual
     if ($backwpup_role && in_array($backwpup_role, $backwpup_roles)) {
         $user->add_role($backwpup_role);
     }
     return;
 }
Пример #20
0
function rcp_process_data()
{
    if (!is_admin()) {
        return;
    }
    if (!empty($_POST)) {
        /****************************************
         * subscription levels
         ****************************************/
        // add a new subscription level
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'add-level') {
            if (!current_user_can('rcp_manage_levels')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $levels = new RCP_Levels();
            $add = $levels->insert($_POST);
            if ($add) {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-member-levels&rcp_message=level_added';
            } else {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-member-levels&rcp_message=level_not_added';
            }
            wp_safe_redirect($url);
            exit;
        }
        // edit a subscription level
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'edit-subscription') {
            if (!current_user_can('rcp_manage_levels')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $levels = new RCP_Levels();
            $update = $levels->update($_POST['subscription_id'], $_POST);
            if ($update) {
                // clear the cache
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-member-levels&rcp_message=level_updated';
            } else {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-member-levels&rcp_message=level_not_updated';
            }
            wp_safe_redirect($url);
            exit;
        }
        // add a subscription for an existing member
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'add-subscription') {
            if (!current_user_can('rcp_manage_members')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            if (isset($_POST['expiration']) && strtotime('NOW') > strtotime($_POST['expiration'])) {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-members&rcp_message=user_not_added';
                header("Location:" . $url);
            } else {
                $levels = new RCP_Levels();
                $user = get_user_by('login', $_POST['user']);
                $expiration = isset($_POST['expiration']) ? sanitize_text_field($_POST['expiration']) : 'none';
                $level_id = absint($_POST['level']);
                rcp_set_status($user->ID, 'active');
                rcp_set_expiration_date($user->ID, $expiration);
                update_user_meta($user->ID, 'rcp_signup_method', 'manual');
                // Add a role, if needed, to the user
                $subscription = $levels->get_level($level_id);
                update_user_meta($user->ID, 'rcp_subscription_level', $level_id);
                // Add the new user role
                $role = !empty($subscription->role) ? $subscription->role : 'subscriber';
                $user->add_role($role);
                if (isset($_POST['recurring'])) {
                    update_user_meta($user->ID, 'rcp_recurring', 'yes');
                } else {
                    delete_user_meta($user->ID, 'rcp_recurring');
                }
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-members&rcp_message=user_added';
                header("Location:" . $url);
            }
        }
        // edit a member's subscription
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'edit-member') {
            if (!current_user_can('rcp_manage_members')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $levels = new RCP_Levels();
            $user_id = absint($_POST['user']);
            $status = sanitize_text_field($_POST['status']);
            $level_id = absint($_POST['level']);
            $expiration = isset($_POST['expiration']) ? sanitize_text_field($_POST['expiration']) : 'none';
            if (isset($_POST['level'])) {
                $current_id = rcp_get_subscription_id($user_id);
                $new_level = $levels->get_level($level_id);
                $old_level = $levels->get_level($current_id);
                if ($current_id != $level_id) {
                    update_user_meta($user_id, 'rcp_subscription_level', $level_id);
                    $user = new WP_User($user_id);
                    // Remove the old user role
                    $role = !empty($old_level->role) ? $old_level->role : 'subscriber';
                    $user->remove_role($role);
                    // Add the new user role
                    $role = !empty($new_level->role) ? $new_level->role : 'subscriber';
                    $user->add_role($role);
                }
            }
            if (isset($_POST['recurring'])) {
                update_user_meta($user_id, 'rcp_recurring', 'yes');
            } else {
                delete_user_meta($user_id, 'rcp_recurring');
            }
            if (isset($_POST['trialing'])) {
                update_user_meta($user_id, 'rcp_is_trialing', 'yes');
            } else {
                delete_user_meta($user_id, 'rcp_is_trialing');
            }
            if (isset($_POST['signup_method'])) {
                update_user_meta($user_id, 'rcp_signup_method', $_POST['signup_method']);
            }
            if (isset($_POST['notes'])) {
                update_user_meta($user_id, 'rcp_notes', wp_kses($_POST['notes'], array()));
            }
            if (isset($_POST['status'])) {
                rcp_set_status($user_id, $status);
            }
            rcp_set_expiration_date($user_id, $expiration);
            do_action('rcp_edit_member', $user_id);
            wp_redirect(admin_url('admin.php?page=rcp-members&edit_member=' . $user_id . '&rcp_message=user_updated'));
            exit;
        }
        /****************************************
         * discount codes
         ****************************************/
        // add a new discount code
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'add-discount') {
            if (!current_user_can('rcp_manage_discounts')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $discounts = new RCP_Discounts();
            // Setup unsanitized data
            $data = array('name' => $_POST['name'], 'description' => $_POST['description'], 'amount' => $_POST['amount'], 'unit' => isset($_POST['unit']) && $_POST['unit'] == '%' ? '%' : 'flat', 'code' => $_POST['code'], 'status' => 'active', 'expiration' => $_POST['expiration'], 'max_uses' => $_POST['max'], 'subscription_id' => $_POST['subscription']);
            $add = $discounts->insert($data);
            if ($add) {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-discounts&rcp_message=discount_added';
            } else {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-discounts&rcp_message=discount_not_added';
            }
            wp_safe_redirect($url);
            exit;
        }
        // edit a discount code
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'edit-discount') {
            if (!current_user_can('rcp_manage_discounts')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $discounts = new RCP_Discounts();
            // Setup unsanitized data
            $data = array('name' => $_POST['name'], 'description' => $_POST['description'], 'amount' => $_POST['amount'], 'unit' => isset($_POST['unit']) && $_POST['unit'] == '%' ? '%' : 'flat', 'code' => $_POST['code'], 'status' => $_POST['status'], 'expiration' => $_POST['expiration'], 'max_uses' => $_POST['max'], 'subscription_id' => $_POST['subscription']);
            $update = $discounts->update($_POST['discount_id'], $data);
            if ($update) {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-discounts&discount-updated=1';
            } else {
                $url = get_bloginfo('wpurl') . '/wp-admin/admin.php?page=rcp-discounts&discount-updated=0';
            }
            wp_safe_redirect($url);
            exit;
        }
        // add a new manual payment
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'add-payment') {
            if (!current_user_can('rcp_manage_payments')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $payments = new RCP_Payments();
            $user = get_user_by('login', $_POST['user']);
            if ($user) {
                $data = array('amount' => $_POST['amount'], 'user_id' => $user->ID, 'date' => date('Y-m-d', strtotime($_POST['date'])) . ' ' . date('H:i:s', current_time('timestamp')), 'payment_type' => 'manual', 'subscription' => rcp_get_subscription($user->ID), 'subscription_key' => rcp_get_subscription_key($user->ID), 'transaction_id' => sanitize_text_field($_POST['transaction-id']));
                $add = $payments->insert($data);
            }
            if (!empty($add)) {
                $url = admin_url('admin.php?page=rcp-payments&rcp_message=payment_added');
            } else {
                $url = admin_url('admin.php?page=rcp-payments&rcp_message=payment_not_added');
            }
            wp_safe_redirect($url);
            exit;
        }
        // edit a payment
        if (isset($_POST['rcp-action']) && $_POST['rcp-action'] == 'edit-payment') {
            if (!current_user_can('rcp_manage_payments')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $payments = new RCP_Payments();
            $payment_id = absint($_POST['payment-id']);
            $user = get_user_by('login', $_POST['user']);
            if ($user && $payment_id) {
                $data = array('amount' => sanitize_text_field($_POST['amount']), 'user_id' => $user->ID, 'date' => date('Y-m-d H:i:s', strtotime($_POST['date'])), 'subscription' => rcp_get_subscription($user->ID), 'subscription_key' => rcp_get_subscription_key($user->ID), 'transaction_id' => sanitize_text_field($_POST['transaction-id']));
                $update = $payments->update($payment_id, $data);
            }
            if (!empty($update)) {
                $url = admin_url('admin.php?page=rcp-payments&rcp_message=payment_updated');
            } else {
                $url = admin_url('admin.php?page=rcp-payments&rcp_message=payment_not_updated');
            }
            wp_safe_redirect($url);
            exit;
        }
    }
    /*************************************
     * delete data
     *************************************/
    if (!empty($_GET)) {
        /* member processing */
        if (isset($_GET['deactivate_member'])) {
            if (!current_user_can('rcp_manage_members')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            rcp_set_status(urldecode(absint($_GET['deactivate_member'])), 'cancelled');
        }
        if (isset($_GET['activate_member'])) {
            if (!current_user_can('rcp_manage_members')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            rcp_set_status(urldecode(absint($_GET['activate_member'])), 'active');
        }
        /* subscription processing */
        if (isset($_GET['delete_subscription']) && $_GET['delete_subscription'] > 0) {
            if (!current_user_can('rcp_manage_levels')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $members_of_subscription = rcp_get_members_of_subscription(absint($_GET['delete_subscription']));
            // cancel all active members of this subscription
            if ($members_of_subscription) {
                foreach ($members_of_subscription as $member) {
                    rcp_set_status($member, 'cancelled');
                }
            }
            $levels = new RCP_Levels();
            $levels->remove($_GET['delete_subscription']);
        }
        if (isset($_GET['activate_subscription']) && $_GET['activate_subscription'] > 0) {
            if (!current_user_can('rcp_manage_levels')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $levels = new RCP_Levels();
            $update = $levels->update(absint($_GET['activate_subscription']), array('status' => 'active'));
            delete_transient('rcp_subscription_levels');
        }
        if (isset($_GET['deactivate_subscription']) && $_GET['deactivate_subscription'] > 0) {
            if (!current_user_can('rcp_manage_levels')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $levels = new RCP_Levels();
            $update = $levels->update(absint($_GET['deactivate_subscription']), array('status' => 'inactive'));
            delete_transient('rcp_subscription_levels');
        }
        /* discount processing */
        if (!empty($_GET['delete_discount'])) {
            if (!current_user_can('rcp_manage_discounts')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $discounts = new RCP_Discounts();
            $discounts->delete($_GET['delete_discount']);
        }
        if (!empty($_GET['activate_discount'])) {
            if (!current_user_can('rcp_manage_discounts')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $discounts = new RCP_Discounts();
            $discounts->update($_GET['activate_discount'], array('status' => 'active'));
        }
        if (!empty($_GET['deactivate_discount'])) {
            if (!current_user_can('rcp_manage_discounts')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $discounts = new RCP_Discounts();
            $discounts->update($_GET['deactivate_discount'], array('status' => 'disabled'));
        }
        if (!empty($_GET['rcp-action']) && $_GET['rcp-action'] == 'delete_payment' && wp_verify_nonce($_GET['_wpnonce'], 'rcp_delete_payment_nonce')) {
            if (!current_user_can('rcp_manage_payments')) {
                wp_die(__('You do not have permission to perform this action.', 'rcp'));
            }
            $payments = new RCP_Payments();
            $payments->delete(absint($_GET['payment_id']));
            wp_safe_redirect(admin_url(add_query_arg('rcp_message', 'payment_deleted', 'admin.php?page=rcp-payments')));
            exit;
        }
    }
}
/**
 * Sets the user membership role and removes other membership roles.
 *
 * @since  1.0.0
 * @access public
 * @param  int     $user_id
 * @param  string  $role
 * @return void
 */
function role_map_edd_set_user_role($user_id, $role)
{
    $allowed = role_map_edd_get_membership_role_names();
    // If not an allowed role, bail.
    if (!isset($allowed[$role])) {
        return;
    }
    // Get the user object.
    $user = new WP_User($user_id);
    // If the user doesn't have the new role, add it.
    if (!in_array($role, (array) $user->roles)) {
        $user->add_role($role);
    }
    // Loop through the membership roles.
    foreach ($allowed as $allowed_role => $name) {
        // If the user has another membership role other than the purchased role, remove it.
        if ($role !== $allowed_role && in_array($allowed_role, (array) $user->roles)) {
            $user->remove_role($allowed_role);
        }
    }
}
Пример #22
0
 /**
  * Assign the 'DJ' role to an administrator
  *
  * @since	1.3
  * @param	int	$user_id	User ID.
  * @param	int	$old_data	Object containing user's data prior to update.
  * @return
  */
 public function admin_user_rights($user_id, $old_data)
 {
     if (!user_can($user_id, 'administrator')) {
         return;
     }
     // Retrieve the current user object after the profile update
     $user = new WP_User($user_id);
     $is_staff = $user->__get('_mdjm_event_staff');
     $required_roles = $user->__get('_mdjm_event_roles');
     $make_admin = $user->__get('_mdjm_event_admin');
     $mdjm_roles = mdjm_get_roles();
     if (!empty($is_staff) && !empty($required_roles)) {
         // Reset roles and caps before applying updates due to some wierd bug
         foreach ($mdjm_roles as $role_id => $role_name) {
             $user->remove_role($role_id);
         }
         $user->remove_cap('mdjm_employee');
         foreach ($required_roles as $role_id) {
             $user->add_role($role_id);
         }
         $user->add_cap('mdjm_employee');
         delete_user_meta($user->ID, '_mdjm_event_roles');
     } else {
         foreach ($mdjm_roles as $role_id => $role_name) {
             $user->remove_role($role_id);
         }
         $user->remove_cap('mdjm_employee');
     }
     $permissions = new MDJM_Permissions();
     if (!empty($make_admin)) {
         $permissions->make_admin($user->ID);
         $user->add_cap('mdjm_employee');
     } else {
         $permissions->make_admin($user->ID, true);
         $user->remove_cap('mdjm_employee');
     }
 }
function wskl_deactivate_account(WP_User $user, $timestamp, array $meta_keys_preserve, $role_to_dismiss)
{
    /** @var wpdb $wpdb */
    global $wpdb;
    // wipe out all user metadata.
    $query = "DELETE FROM `{$wpdb->usermeta}` WHERE `user_id` = '%d' ";
    if (count($meta_keys_preserve)) {
        $quoted = implode(',', array_map(function ($key) {
            return str_pad($key, strlen($key + 2), '\'', STR_PAD_BOTH);
        }, $meta_keys_preserve));
        $query .= $wpdb->prepare('AND `meta_key` NOT IN (%s)', $quoted);
    }
    $prepared_query = $wpdb->prepare($query, $user->ID);
    $wpdb->query($prepared_query);
    // create random password, and replace an existing one.
    wp_set_password(wp_generate_password(22, TRUE, TRUE), $user->ID);
    // update user's role as wskl_deactivated
    $user->remove_role($role_to_dismiss);
    $user->add_role('wskl_deactivated');
    wskl_set_user_deactivated($user->ID, $timestamp);
}
Пример #24
0
 function delete_role($role)
 {
     global $wp_roles;
     if ($_POST['confirm']) {
         $defaultrole = get_settings('default_role');
         if ($role == $defaultrole) {
             //LAZY CODE ALERT! we should give the option of changing the default role
             $this->error(__('You cannot delete the default role.', 'role-manager'));
         }
         //remove the role from $wp_roles
         $oldrole = $wp_roles->get_role($role);
         $wp_roles->remove_role($role);
         //remove the role from all the users
         foreach ($this->get_all_user_ids() as $id) {
             //we need a global get_all_user_ids() func
             $user = new WP_User($id);
             //if this role removal would end them up with no roles, assign the default role instead of removing
             if (count($user->get_role_caps()) <= 1) {
                 $user->set_role($defaultrole);
             } else {
                 $user->remove_role($role);
             }
         }
         header('Location: ' . $this->manage_roles_uri() . '&role-deleted=true');
     }
 }
Пример #25
0
 /**
  * Saves additional user fields to the database
  * function save_vendor_data
  * @access private
  * @param int $user_id
  * @return void
  */
 function save_vendor_data($user_id)
 {
     global $WCMp;
     $user = new WP_User($user_id);
     // only saves if the current user can edit user profiles
     if (!current_user_can('edit_user', $user_id)) {
         return false;
     }
     $errors = new WP_Error();
     if (!is_user_wcmp_vendor($user_id) && $_POST['role'] == 'dc_vendor') {
         $user->add_role('dc_vendor');
         $this->update_vendor_meta($user_id);
         $this->add_vendor_caps($user_id);
         $vendor = get_wcmp_vendor($user_id);
         $vendor->generate_term();
         $user_dtl = get_userdata(absint($user_id));
         $email = WC()->mailer()->emails['WC_Email_Approved_New_Vendor_Account'];
         $email->trigger($user_id, $user_dtl->user_pass);
     }
     $fields = $this->get_vendor_fields($user_id);
     $vendor = get_wcmp_vendor($user_id);
     foreach ($fields as $fieldkey => $value) {
         if (isset($_POST[$fieldkey])) {
             if ($fieldkey == 'vendor_page_title') {
                 if ($vendor && !$vendor->update_page_title(wc_clean($_POST[$fieldkey]))) {
                     $errors->add('vendor_title_exists', __('Title Update Error', $WCMp->text_domain));
                 } else {
                     wp_update_user(array('ID' => $user_id, 'display_name' => $_POST[$fieldkey]));
                 }
             } elseif ($fieldkey == 'vendor_page_slug') {
                 if ($vendor && !$vendor->update_page_slug(wc_clean($_POST[$fieldkey]))) {
                     $errors->add('vendor_slug_exists', __('Slug already exists', $WCMp->text_domain));
                 }
             } elseif ($fieldkey == 'vendor_publish_product') {
                 $user->remove_cap('publish_products');
                 update_user_meta($user_id, '_' . $fieldkey, wc_clean($_POST[$fieldkey]));
             } elseif ($fieldkey == 'vendor_publish_coupon') {
                 $user->remove_cap('publish_shop_coupons');
                 update_user_meta($user_id, '_' . $fieldkey, wc_clean($_POST[$fieldkey]));
             } else {
                 update_user_meta($user_id, '_' . $fieldkey, wc_clean($_POST[$fieldkey]));
             }
         } else {
             if (!isset($_POST['vendor_submit_product']) && $fieldkey == 'vendor_submit_product') {
                 delete_user_meta($user_id, '_vendor_submit_product');
             } else {
                 if (!isset($_POST['vendor_submit_coupon']) && $fieldkey == 'vendor_submit_coupon') {
                     delete_user_meta($user_id, '_vendor_submit_coupon');
                 } else {
                     if (!isset($_POST['vendor_hide_description']) && $fieldkey == 'vendor_hide_description') {
                         delete_user_meta($user_id, '_vendor_hide_description');
                     } else {
                         if (!isset($_POST['vendor_hide_address']) && $fieldkey == 'vendor_hide_address') {
                             delete_user_meta($user_id, '_vendor_hide_address');
                         } else {
                             if (!isset($_POST['vendor_hide_message_to_buyers']) && $fieldkey == 'vendor_hide_message_to_buyers') {
                                 delete_user_meta($user_id, '_vendor_hide_message_to_buyers');
                             } else {
                                 if (!isset($_POST['vendor_hide_phone']) && $fieldkey == 'vendor_hide_phone') {
                                     delete_user_meta($user_id, '_vendor_hide_phone');
                                 } else {
                                     if (!isset($_POST['vendor_hide_email']) && $fieldkey == 'vendor_hide_email') {
                                         delete_user_meta($user_id, '_vendor_hide_email');
                                     } else {
                                         if (!isset($_POST['vendor_give_tax']) && $fieldkey == 'vendor_give_tax') {
                                             delete_user_meta($user_id, '_vendor_give_tax');
                                         } else {
                                             if (!isset($_POST['vendor_give_shipping']) && $fieldkey == 'vendor_give_shipping') {
                                                 delete_user_meta($user_id, '_vendor_give_shipping');
                                             } else {
                                                 if (!isset($_POST['vendor_turn_off']) && $fieldkey == 'vendor_turn_off') {
                                                     delete_user_meta($user_id, '_vendor_turn_off');
                                                 } else {
                                                     if (!isset($_POST['vendor_publish_product']) && $fieldkey == 'vendor_publish_product') {
                                                         delete_user_meta($user_id, '_vendor_publish_product');
                                                         if ($WCMp->vendor_caps->vendor_capabilities_settings('is_published_product')) {
                                                             $user->add_cap('publish_products');
                                                         }
                                                     } else {
                                                         if (!isset($_POST['vendor_publish_coupon']) && $fieldkey == 'vendor_publish_coupon') {
                                                             if ($WCMp->vendor_caps->vendor_capabilities_settings('is_published_coupon')) {
                                                                 $user->add_cap('publish_shop_coupons');
                                                             }
                                                             delete_user_meta($user_id, '_vendor_publish_coupon');
                                                         } else {
                                                             if (!isset($_POST['vendor_is_policy_off']) && $fieldkey == 'vendor_is_policy_off') {
                                                                 delete_user_meta($user_id, '_vendor_is_policy_off');
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->user_change_cap($user_id);
     if (is_user_wcmp_vendor($user_id) && isset($_POST['role']) && $_POST['role'] != 'dc_vendor') {
         $vendor = get_wcmp_vendor($user_id);
         $user->remove_role('dc_vendor');
         if ($_POST['role'] != 'dc_pending_vendor') {
             $user->remove_role('dc_pending_vendor');
         }
         wp_delete_term($vendor->term_id, 'dc_vendor_shop');
     }
 }
Пример #26
0
 /**
  * Activates user
  *
  * @access public
  * @return void
  */
 public static function activateUser()
 {
     if (isset($_GET['activate']) && isset($_GET['user']) && intval($_GET['user']) != 0) {
         $users = get_users(array('meta_key' => '_' . THEMEX_PREFIX . 'activation_key', 'meta_value' => sanitize_text_field($_GET['activate']), 'include' => intval($_GET['user'])));
         if (!empty($users)) {
             $user = reset($users);
             $user = new WP_User($user->ID);
             $user->remove_role('inactive');
             $user->add_role(get_option('default_role'));
             wp_set_auth_cookie($user->ID, true);
             ThemexCore::updateUserMeta($user->ID, 'activation_key', '');
             $redirect = ThemexCore::getUserMeta($user->ID, 'redirect');
             if (!empty($redirect)) {
                 $redirect = ThemexCore::getURL('redirect', intval($redirect));
                 ThemexCore::updateUserMeta($user->ID, 'redirect', '');
             } else {
                 $redirect = get_author_posts_url($user->ID);
             }
             wp_redirect($redirect);
             exit;
         }
     }
 }
 public static function multiple_roles($user_id, $roles = false)
 {
     global $wpdb, $wp_roles, $current_user, $pagenow;
     $roles = $roles ? $roles : (isset($_POST['roles']) && isset($_POST['roles'][0]) ? $_POST['roles'][0] : false);
     if ($roles && current_user_can('edit_user', $current_user->ID)) {
         $editable_roles = get_editable_roles();
         $user = new WP_User($user_id);
         $user_roles = array_intersect(array_values($user->roles), array_keys($editable_roles));
         $_user_role_log = get_user_meta($user_id, $wpdb->prefix . 'capabilities_log', true);
         $user_role_log = $_user_role_log ? $_user_role_log : array();
         $roles = is_array($roles) ? $roles : array($roles);
         foreach ($roles as $role) {
             if (!in_array($role, $user_roles) && $wp_roles->is_role($role)) {
                 $user->add_role($role);
                 array_push($user_role_log, array('action' => 'add', 'role' => $role, 'timestamp' => time()));
             }
         }
         foreach ($user_roles as $role) {
             if (!in_array($role, $roles) && $wp_roles->is_role($role)) {
                 $user->remove_role($role);
                 array_push($user_role_log, array('action' => 'remove', 'role' => $role, 'timestamp' => time()));
             }
         }
         update_user_meta($user_id, $wpdb->prefix . 'capabilities_log', $user_role_log);
     }
 }
Пример #28
0
 /**
  * Reject Pending Vendor via AJAX
  *
  * @return void
  */
 function reject_pending_vendor()
 {
     global $WCMp;
     $user_id = $_POST['user_id'];
     $user = new WP_User(absint($user_id));
     if (is_array($user->roles) && in_array('dc_pending_vendor', $user->roles)) {
         $user->remove_role('dc_pending_vendor');
     }
     $user->add_role('dc_rejected_vendor');
     $user_dtl = get_userdata(absint($user_id));
     $email = WC()->mailer()->emails['WC_Email_Rejected_New_Vendor_Account'];
     $email->trigger($user_id, $user_dtl->user_pass);
     if (in_array('dc_vendor', $old_role)) {
         $vendor = get_wcmp_vendor($user_id);
         if ($vendor) {
             wp_delete_term($vendor->term_id, 'dc_vendor_shop');
         }
     }
     wp_delete_user($user_id);
     die;
 }
Пример #29
0
/**
 * Function for safely deleting a role and transferring the deleted role's users to the default role.  Note that 
 * this function can be extremely intensive.  Whenever a role is deleted, it's best for the site admin to assign 
 * the user's of the role to a different role beforehand.
 *
 * @since 0.2.0
 * @param string $role The name of the role to delete.
 */
function members_delete_role($role)
{
    /* Get the default role. */
    $default_role = get_option('default_role');
    /* Don't delete the default role. Site admins should change the default before attempting to delete the role. */
    if ($role == $default_role) {
        return;
    }
    /* Get all users with the role to be deleted. */
    $users = get_users(array('role' => $role));
    /* Check if there are any users with the role we're deleting. */
    if (is_array($users)) {
        /* If users are found, loop through them. */
        foreach ($users as $user) {
            /* Create a new user object. */
            $new_user = new WP_User($user->ID);
            /* If the user has the role, remove it and set the default. Do we need this check? */
            if ($new_user->has_cap($role)) {
                $new_user->remove_role($role);
                $new_user->set_role($default_role);
            }
        }
    }
    /* Remove the role. */
    remove_role($role);
}
Пример #30
0
 function remove_userrole($user_id, $role)
 {
     global $wp_roles;
     $wp_roles->use_db = $this->use_db;
     $user = new WP_User($user_id);
     //remove user role:
     $user->remove_role($role);
 }