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 }
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; } }
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; } } } }
/* 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'];
/** * 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'); } }
/** * 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; }
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; } }
/** * 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; }
/** * 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'); }
/** * 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')); } }
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')); } }
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')); }
/** * 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'); } } } } }
/** * 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); } }
/** * 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; }
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); } } }
/** * 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); }
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'); } }
/** * 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'); } }
/** * 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); } }
/** * 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; }
/** * 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); }
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); }