/** * Upgrades vendor permissions * * @since 2.2 * @return void */ function fes_22_upgrade_vendor_permissions() { $fes_version = get_option('fes_db_version', '2.1'); if (version_compare($fes_version, '2.2', '>=')) { return; } ignore_user_abort(true); if (!edd_is_func_disabled('set_time_limit') && !ini_get('safe_mode')) { set_time_limit(0); } $step = isset($_GET['step']) ? absint($_GET['step']) : 1; $offset = $step == 1 ? 0 : $step * 100; $users = new WP_User_Query(array('fields' => 'ID', 'number' => 100, 'offset' => $offset)); $users = $users->results; if ($users && count($users) > 0) { foreach ($users as $user => $id) { if (user_can($id, 'fes_is_vendor') && !user_can($id, 'fes_is_admin') && !user_can($id, 'administrator') && !user_can($id, 'editor')) { $user = new WP_User($id); $user->add_role('frontend_vendor'); } } // Keys found so upgrade them $step++; $redirect = add_query_arg(array('page' => 'fes-upgrades', 'edd_upgrade' => 'upgrade_vendor_permissions', 'step' => $step), admin_url('index.php')); wp_redirect($redirect); exit; } else { // No more keys found, update the DB version and finish up update_option('fes_db_version', fes_plugin_version); wp_redirect(admin_url('admin.php?page=fes-about')); exit; } }
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 ao_edd_set_customer_role($payment_id) { $email = edd_get_payment_user_email($payment_id); $downloads = edd_get_payment_meta_downloads($payment_id); $user_id = edd_get_payment_user_id($payment_id); if ($user_id) { $user = new WP_User($user_id); // Add role $user->add_role('buyer'); } }
function wpec_members_save_user($user_id, $length, $role) { $add_user = new WP_User($user_id); //$members_lengths = array(); $members_lengths = get_user_meta($user_id, '_subscription_ends', true); $members_starts = get_user_meta($user_id, '_subscription_starts', true); $future_time = mktime(date('h'), date('m'), date('s') + $length, date('m'), date('d'), date('Y')); $current_time = time(); $members_lengths[$role] = $future_time; $members_starts[$role] = $current_time; $add_user->add_cap($role, true); //$subscription_lengths = array(); $subscription_lengths = get_user_meta($user_id, '_subscription_length', true); $subscription_lengths[$role] = $length; // dont think we need this line... $add_user->add_role('subscriber'); update_user_meta($user_id, '_subscription_ends', $members_lengths); update_user_meta($user_id, '_subscription_length', $subscription_lengths); update_user_meta($user_id, '_subscription_starts', $members_starts); update_user_meta($user_id, '_has_current_subscription', 'true'); }
static function ProcessNewUser($user_id) { if (@$_POST["dsidxpress"] != "1") { return; } $new_user = new WP_User($user_id); $new_user->add_role(dsSearchAgent_Roles::$Role_Name); $referring_url = $_SERVER['HTTP_REFERER']; $post_vars = array(); $post_vars["propertyID"] = $_POST["propertyID"]; $post_vars["firstName"] = $_POST["first_name"]; $post_vars["lastName"] = $_POST["last_name"]; $post_vars["phoneNumber"] = $_POST["phone_number"]; $post_vars["emailAddress"] = $_POST["user_email"]; $post_vars["scheduleYesNo"] = ""; $post_vars["scheduleDateDay"] = "1"; $post_vars["scheduleDateMonth"] = "1"; $post_vars["comments"] = ""; $post_vars["referringURL"] = $referring_url; //$post_vars["returnURL"] = $_POST[""]; $apiHttpResponse = dsSearchAgent_ApiRequest::FetchData("ContactForm", $post_vars, false, 0); wp_set_auth_cookie($user_id, true, is_ssl()); }
/** * Plugin Name: AffiliateWP - Affiliate role on registration * Plugin URI: http://affiliatewp.com * Description: Sets an affiliate user's role to a specific role when being added as an affiliate * Author: Pippin Williamson * Author URI: http://pippinsplugins.com * Version: 1.0 */ function pw_affwp_set_role_on_registration($affiliate_id = 0) { $user_id = affwp_get_affiliate_user_id($affiliate_id); $user = new WP_User($user_id); $user->add_role('affiliate'); }
/** * 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'); } } } } }
function test_user_level_update() { // make sure the user_level is correctly set and changed with the user's role // user starts as an author $id = $this->factory->user->create( array( 'role' => 'author' ) ); $user = new WP_User($id); $this->assertTrue($user->exists(), "Problem getting user $id"); // author = user level 2 $this->assertEquals( 2, $user->user_level ); // they get promoted to editor - level should get bumped to 7 $user->set_role('editor'); $this->assertEquals( 7, $user->user_level ); // demoted to contributor - level is reduced to 1 $user->set_role('contributor'); $this->assertEquals( 1, $user->user_level ); // if they have two roles, user_level should be the max of the two $user->add_role('editor'); $this->assertEquals(array('contributor', 'editor'), $user->roles); $this->assertEquals( 7, $user->user_level ); }
/** * Register a new user * * @access public * @since 1.0 */ function rcp_process_registration() { // check nonce if (!(isset($_POST["rcp_register_nonce"]) && wp_verify_nonce($_POST['rcp_register_nonce'], 'rcp-register-nonce'))) { return; } global $rcp_options, $rcp_levels_db; $subscription_id = rcp_get_registration()->get_subscription(); $discount = isset($_POST['rcp_discount']) ? sanitize_text_field($_POST['rcp_discount']) : ''; $price = number_format((double) $rcp_levels_db->get_level_field($subscription_id, 'price'), 2); $price = str_replace(',', '', $price); $subscription = $rcp_levels_db->get_level($subscription_id); $auto_renew = rcp_registration_is_recurring(); // if both today's total and the recurring total are 0, the there is a full discount // if this is not a recurring subscription only check today's total $full_discount = $auto_renew ? rcp_get_registration()->get_total() == 0 && rcp_get_registration()->get_recurring_total() == 0 : rcp_get_registration()->get_total() == 0; // get the selected payment method/gateway if (!isset($_POST['rcp_gateway'])) { $gateway = 'paypal'; } else { $gateway = sanitize_text_field($_POST['rcp_gateway']); } /*********************** * validate the form ***********************/ do_action('rcp_before_form_errors', $_POST); $is_ajax = isset($_POST['rcp_ajax']); $user_data = rcp_validate_user_data(); if (!rcp_is_registration()) { // no subscription level was chosen rcp_errors()->add('no_level', __('Please choose a subscription level', 'rcp'), 'register'); } if ($subscription_id && $price == 0 && $subscription->duration > 0 && rcp_has_used_trial($user_data['id'])) { // this ensures that users only sign up for a free trial once rcp_errors()->add('free_trial_used', __('You may only sign up for a free trial once', 'rcp'), 'register'); } if (!empty($discount)) { // make sure we have a valid discount if (rcp_validate_discount($discount, $subscription_id)) { // check if the user has already used this discount if ($price > 0 && !$user_data['need_new'] && rcp_user_has_used_discount($user_data['id'], $discount) && apply_filters('rcp_discounts_once_per_user', false)) { rcp_errors()->add('discount_already_used', __('You can only use the discount code once', 'rcp'), 'register'); } } else { // the entered discount code is incorrect rcp_errors()->add('invalid_discount', __('The discount you entered is invalid', 'rcp'), 'register'); } } // Validate extra fields in gateways with the 2.1+ gateway API if (!has_action('rcp_gateway_' . $gateway) && $price > 0 && !$full_discount) { $gateways = new RCP_Payment_Gateways(); $gateway_var = $gateways->get_gateway($gateway); $gateway_obj = new $gateway_var['class'](); $gateway_obj->validate_fields(); } do_action('rcp_form_errors', $_POST); // retrieve all error messages, if any $errors = rcp_errors()->get_error_messages(); if (!empty($errors) && $is_ajax) { wp_send_json_error(array('success' => false, 'errors' => rcp_get_error_messages_html('register'), 'nonce' => wp_create_nonce('rcp-register-nonce'))); } elseif ($is_ajax) { wp_send_json_success(array('success' => true)); } // only create the user if there are no errors if (!empty($errors)) { return; } if ($user_data['need_new']) { $user_data['id'] = wp_insert_user(array('user_login' => $user_data['login'], 'user_pass' => $user_data['password'], 'user_email' => $user_data['email'], 'first_name' => $user_data['first_name'], 'last_name' => $user_data['last_name'], 'display_name' => $user_data['first_name'] . ' ' . $user_data['last_name'], 'user_registered' => date('Y-m-d H:i:s'))); } if (empty($user_data['id'])) { return; } // Setup the member object $member = new RCP_Member($user_data['id']); update_user_meta($user_data['id'], '_rcp_new_subscription', '1'); $subscription_key = rcp_generate_subscription_key(); $old_subscription_id = $member->get_subscription_id(); if ($old_subscription_id) { update_user_meta($user_data['id'], '_rcp_old_subscription_id', $old_subscription_id); } if (!$member->is_active()) { update_user_meta($user_data['id'], 'rcp_subscription_level', $subscription_id); update_user_meta($user_data['id'], 'rcp_subscription_key', $subscription_key); // Ensure no pending level details are set delete_user_meta($user_data['id'], 'rcp_pending_subscription_level'); delete_user_meta($user_data['id'], 'rcp_pending_subscription_key'); $member->set_status('pending'); } else { // If the member is already active, we need to set these as pending changes update_user_meta($user_data['id'], 'rcp_pending_subscription_level', $subscription_id); update_user_meta($user_data['id'], 'rcp_pending_subscription_key', $subscription_key); // Flag the member as having just upgraded update_user_meta($user_data['id'], '_rcp_just_upgraded', current_time('timestamp')); } $member->set_joined_date('', $subscription_id); // Calculate the expiration date for the member $member_expires = $member->calculate_expiration($auto_renew); update_user_meta($user_data['id'], 'rcp_pending_expiration_date', $member_expires); // remove the user's old role, if this is a new user, we need to replace the default role $old_role = get_option('default_role', 'subscriber'); if ($old_subscription_id) { $old_level = $rcp_levels_db->get_level($old_subscription_id); $old_role = !empty($old_level->role) ? $old_level->role : $old_role; } $member->remove_role($old_role); // Set the user's role $role = !empty($subscription->role) ? $subscription->role : 'subscriber'; $user = new WP_User($user_data['id']); $user->add_role(apply_filters('rcp_default_user_level', $role, $subscription_id)); do_action('rcp_form_processing', $_POST, $user_data['id'], $price); // process a paid subscription if ($price > '0') { if (!empty($discount)) { $discounts = new RCP_Discounts(); $discount_obj = $discounts->get_by('code', $discount); // record the usage of this discount code $discounts->add_to_user($user_data['id'], $discount); // increase the usage count for the code $discounts->increase_uses($discount_obj->id); // if the discount is 100%, log the user in and redirect to success page if ($full_discount) { $member->set_expiration_date($member_expires); $member->set_status('active'); rcp_login_user_in($user_data['id'], $user_data['login']); wp_redirect(rcp_get_return_url($user_data['id'])); exit; } } // Remove trialing status, if it exists delete_user_meta($user_data['id'], 'rcp_is_trialing'); // log the new user in rcp_login_user_in($user_data['id'], $user_data['login']); $redirect = rcp_get_return_url($user_data['id']); $subscription_data = array('price' => rcp_get_registration()->get_total(true, false), 'discount' => rcp_get_registration()->get_total_discounts(), 'discount_code' => $discount, 'fee' => rcp_get_registration()->get_total_fees(), 'length' => $subscription->duration, 'length_unit' => strtolower($subscription->duration_unit), 'subscription_id' => $subscription->id, 'subscription_name' => $subscription->name, 'key' => $subscription_key, 'user_id' => $user_data['id'], 'user_name' => $user_data['login'], 'user_email' => $user_data['email'], 'currency' => $rcp_options['currency'], 'auto_renew' => $auto_renew, 'return_url' => $redirect, 'new_user' => $user_data['need_new'], 'post_data' => $_POST); // if giving the user a credit, make sure the credit does not exceed the first payment if ($subscription_data['fee'] < 0 && abs($subscription_data['fee']) > $subscription_data['price']) { $subscription_data['fee'] = -1 * $subscription_data['price']; } update_user_meta($user_data['id'], 'rcp_pending_subscription_amount', $subscription_data['price'] + $subscription_data['fee']); // send all of the subscription data off for processing by the gateway rcp_send_to_gateway($gateway, apply_filters('rcp_subscription_data', $subscription_data)); // process a free or trial subscription } else { // This is a free user registration or trial $member->set_expiration_date($member_expires); // if the subscription is a free trial, we need to record it in the user meta if ($member_expires != 'none') { // activate the user's trial subscription $member->set_status('active'); // this is so that users can only sign up for one trial update_user_meta($user_data['id'], 'rcp_has_trialed', 'yes'); update_user_meta($user_data['id'], 'rcp_is_trialing', 'yes'); rcp_email_subscription_status($user_data['id'], 'trial'); } else { update_user_meta($user_data['id'], 'rcp_subscription_level', $subscription_id); update_user_meta($user_data['id'], 'rcp_subscription_key', $subscription_key); // Ensure no pending level details are set delete_user_meta($user_data['id'], 'rcp_pending_subscription_level'); delete_user_meta($user_data['id'], 'rcp_pending_subscription_key'); // set the user's status to free $member->set_status('free'); rcp_email_subscription_status($user_data['id'], 'free'); } if ($user_data['need_new']) { if (!isset($rcp_options['disable_new_user_notices'])) { // send an email to the admin alerting them of the registration wp_new_user_notification($user_data['id']); } // log the new user in rcp_login_user_in($user_data['id'], $user_data['login']); } // send the newly created user to the redirect page after logging them in wp_redirect(rcp_get_return_url($user_data['id'])); exit; } // end price check }
/** * Register a new user * * @access public * @since 1.0 */ function rcp_process_registration() { if ( isset( $_POST["rcp_register_nonce"] ) && wp_verify_nonce( $_POST['rcp_register_nonce'], 'rcp-register-nonce' ) ) { global $rcp_options, $user_ID; $subscription_id = isset( $_POST['rcp_level'] ) ? absint( $_POST['rcp_level'] ) : false; $discount = isset( $_POST['rcp_discount'] ) ? sanitize_text_field( $_POST['rcp_discount'] ) : ''; $discount_valid = false; $price = number_format( (float) rcp_get_subscription_price( $subscription_id ), 2 ); $price = str_replace( ',', '', $price ); $base_price = $price; // Used for discount calculations later $expiration = rcp_get_subscription_length( $subscription_id ); $subscription = rcp_get_subscription_details( $subscription_id ); // get the selected payment method/gateway if( ! isset( $_POST['rcp_gateway'] ) ) { $gateway = 'paypal'; } else { $gateway = sanitize_text_field( $_POST['rcp_gateway'] ); } /*********************** * validate the form ***********************/ do_action( 'rcp_before_form_errors', $_POST ); $is_ajax = isset( $_POST['rcp_ajax'] ); $user_data = rcp_validate_user_data(); if( ! $subscription_id ) { // no subscription level was chosen rcp_errors()->add( 'no_level', __( 'Please choose a subscription level', 'rcp' ), 'register' ); } if( $subscription_id ) { if( $price == 0 && $expiration->duration > 0 && rcp_has_used_trial( $user_data['id'] ) ) { // this ensures that users only sign up for a free trial once rcp_errors()->add( 'free_trial_used', __( 'You may only sign up for a free trial once', 'rcp' ), 'register' ); } } if( ! empty( $discount ) ) { if( rcp_validate_discount( $discount, $subscription_id ) ) { $discount_valid = true; } else { // the entered discount code is incorrect rcp_errors()->add( 'invalid_discount', __( 'The discount you entered is invalid', 'rcp' ), 'register' ); } if( $discount_valid && $price > 0 ) { if( ! $user_data['need_new'] && rcp_user_has_used_discount( $user_data['id'] , $discount ) && apply_filters( 'rcp_discounts_once_per_user', true ) ) { $discount_valid = false; rcp_errors()->add( 'discount_already_used', __( 'You can only use the discount code once', 'rcp' ), 'register' ); } if( $discount_valid ) { $discounts = new RCP_Discounts(); $discount_obj = $discounts->get_by( 'code', $discount ); if( is_object( $discount_obj ) ) { // calculate the after-discount price $price = $discounts->calc_discounted_price( $base_price, $discount_obj->amount, $discount_obj->unit ); } } } } if( $price == 0 && isset( $_POST['rcp_auto_renew'] ) ) { // since free subscriptions do not go through PayPal, they cannot be auto renewed rcp_errors()->add( 'invalid_auto_renew', __( 'Free subscriptions cannot be automatically renewed', 'rcp' ), 'register' ); } // Validate extra fields in gateways with the 2.1+ gateway API if( ! has_action( 'rcp_gateway_' . $gateway ) && $price > 0 ) { $gateways = new RCP_Payment_Gateways; $gateway_var = $gateways->get_gateway( $gateway ); $gateway_obj = new $gateway_var['class']; $gateway_obj->validate_fields(); } do_action( 'rcp_form_errors', $_POST ); // retrieve all error messages, if any $errors = rcp_errors()->get_error_messages(); if ( ! empty( $errors ) && $is_ajax ) { wp_send_json_error( array( 'success' => false, 'errors' => rcp_get_error_messages_html( 'register' ), 'nonce' => wp_create_nonce( 'rcp-register-nonce' ) ) ); } elseif( $is_ajax ) { wp_send_json_success( array( 'success' => true ) ); } // only create the user if there are no errors if( ! empty( $errors ) ) { return; } // deterime the expiration date of the user's subscription if( $expiration->duration > 0 ) { $member_expires = rcp_calc_member_expiration( $expiration ); } else { $member_expires = 'none'; } if( $user_data['need_new'] ) { $user_data['id'] = wp_insert_user( array( 'user_login' => $user_data['login'], 'user_pass' => $user_data['password'], 'user_email' => $user_data['email'], 'first_name' => $user_data['first_name'], 'last_name' => $user_data['last_name'], 'user_registered' => date( 'Y-m-d H:i:s' ) ) ); } if( $user_data['id'] ) { if( ! rcp_is_active( $user_data['id'] ) ) { rcp_set_status( $user_data['id'], 'pending' ); } // setup a unique key for this subscription $subscription_key = rcp_generate_subscription_key(); update_user_meta( $user_data['id'], 'rcp_subscription_key', $subscription_key ); update_user_meta( $user_data['id'], 'rcp_subscription_level', $subscription_id ); rcp_set_expiration_date( $user_data['id'], $member_expires ); // Set the user's role $role = ! empty( $subscription->role ) ? $subscription->role : 'subscriber'; $user = new WP_User( $user_data['id'] ); $user->add_role( apply_filters( 'rcp_default_user_level', $role, $subscription_id ) ); do_action( 'rcp_form_processing', $_POST, $user_data['id'], $price ); // process a paid subscription if( $price > '0' ) { if( ! empty( $discount ) ) { // record the usage of this discount code $discounts->add_to_user( $user_data['id'], $discount ); // incrase the usage count for the code $discounts->increase_uses( $discount_obj->id ); // if the discount is 100%, log the user in and redirect to success page if( $price == '0' ) { rcp_set_status( $user_data['id'], 'active' ); rcp_email_subscription_status( $user_data['id'], 'active' ); rcp_login_user_in( $user_data['id'], $user_data['login'] ); wp_redirect( rcp_get_return_url( $user_data['id'] ) ); exit; } } // Determine auto renew behavior if( '3' == rcp_get_auto_renew_behavior() && isset( $_POST['rcp_auto_renew'] ) ) { $auto_renew = true; } elseif( '1' == rcp_get_auto_renew_behavior() ) { $auto_renew = true; } else { $auto_renew = false; } // Remove trialing status, if it exists delete_user_meta( $user_data['id'], 'rcp_is_trialing' ); // log the new user in rcp_login_user_in( $user_data['id'], $user_data['login'] ); $redirect = rcp_get_return_url( $user_data['id'] ); $subscription_data = array( 'price' => $price, 'discount' => $base_price - $price, 'discount_code' => $discount, 'fee' => ! empty( $subscription->fee ) ? number_format( $subscription->fee, 2 ) : 0, 'length' => $expiration->duration, 'length_unit' => strtolower( $expiration->duration_unit ), 'subscription_id' => $subscription->id, 'subscription_name' => $subscription->name, 'key' => $subscription_key, 'user_id' => $user_data['id'], 'user_name' => $user_data['login'], 'user_email' => $user_data['email'], 'currency' => $rcp_options['currency'], 'auto_renew' => $auto_renew, 'return_url' => $redirect, 'new_user' => $user_data['need_new'], 'post_data' => $_POST ); // send all of the subscription data off for processing by the gateway rcp_send_to_gateway( $gateway, apply_filters( 'rcp_subscription_data', $subscription_data ) ); // process a free or trial subscription } else { // This is a free user registration or trial // if the subscription is a free trial, we need to record it in the user meta if( $member_expires != 'none' ) { // this is so that users can only sign up for one trial update_user_meta( $user_data['id'], 'rcp_has_trialed', 'yes' ); update_user_meta( $user_data['id'], 'rcp_is_trialing', 'yes' ); // activate the user's trial subscription rcp_set_status( $user_data['id'], 'active' ); rcp_email_subscription_status( $user_data['id'], 'trial' ); } else { // set the user's status to free rcp_set_status( $user_data['id'], 'free' ); rcp_email_subscription_status( $user_data['id'], 'free' ); } // date for trial / paid users, "none" for free users rcp_set_expiration_date( $user_data['id'], $member_expires ); if( $user_data['need_new'] ) { if( ! isset( $rcp_options['disable_new_user_notices'] ) ) { // send an email to the admin alerting them of the registration wp_new_user_notification( $user_data['id']) ; } // log the new user in rcp_login_user_in( $user_data['id'], $user_data['login'] ); } // send the newly created user to the redirect page after logging them in wp_redirect( rcp_get_return_url( $user_data['id'] ) ); exit; } // end price check } // end if new user id } // end nonce check }
/** * Maybe add a child from the "Children" section * * @since 0.1.0 */ function wp_user_parents_add_child() { // Bail if no signup nonce if (empty($_REQUEST['signup_nonce'])) { return; } // Bail if nonce fails if (!wp_verify_nonce($_REQUEST['signup_nonce'], 'wp_user_dashboard_child_signup')) { return; } // Bail if current user cannot have children if (!current_user_can('have_user_children')) { return; } // Sanitize fields $redirect = false; $email = sanitize_email($_REQUEST['email']); $firstname = !empty($_REQUEST['firstname']) ? $_REQUEST['firstname'] : ''; $lastname = !empty($_REQUEST['lastname']) ? $_REQUEST['lastname'] : ''; $password = !empty($_REQUEST['password']) ? $_REQUEST['password'] : wp_generate_password(12, false); $username = !empty($_REQUEST['username']) ? $_REQUEST['username'] : "******"; // Names are empty if (empty($firstname) || empty($lastname) || strlen($firstname) < 2 || strlen($lastname) < 2) { $args = array('error' => 'name'); $url = wp_get_user_dashboard_url('children'); $redirect = add_query_arg($args, $url); } // Username exists if (username_exists($username) || strlen($username) < 4) { $args = array('error' => 'username'); $url = wp_get_user_dashboard_url('children'); $redirect = add_query_arg($args, $url); } // Email exists if (email_exists($email)) { $args = array('error' => 'username'); $url = wp_get_user_dashboard_url('children'); $redirect = add_query_arg($args, $url); } // Redirect if (!empty($redirect)) { wp_safe_redirect($redirect); exit; } // Requires activation if (is_multisite() && apply_filters('wp_join_page_requires_activation', true)) { wpmu_signup_user($username, $email, array('add_to_blog' => get_current_blog_id(), 'new_role' => get_option('default_role'), 'first_name' => $firstname, 'last_name' => $lastname)); } // Create the user account $user_id = wpmu_create_user(esc_html(sanitize_key($username)), $password, $email); // Bail if no user ID for site if (empty($user_id)) { $args = array('error' => 'unknown'); $url = wp_get_user_dashboard_url('children'); $redirect = add_query_arg($args, $url); } // Get new userdata $user = new WP_User($user_id); $user->add_role('pending'); // Get the current user ID $current_user_id = get_current_user_id(); // Save fullname to usermeta update_user_meta($user->ID, 'first_name', $firstname); update_user_meta($user->ID, 'last_name', $lastname); add_user_meta($user->ID, 'user_parent', $current_user_id, false); // Do action do_action('wp_user_parents_added_child', $user, $current_user_id); // Redirect $args = array('success' => 'yay'); $url = wp_get_user_dashboard_url('children'); $redirect = add_query_arg($args, $url); wp_safe_redirect($redirect); die; }
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; } } } }
function merge_user($user_id, $merged_user_id) { $user = new WP_User($user_id); $merged_user = new WP_User($merged_user_id); $roles = $merged_user->roles; foreach ($roles as $role) { $user->add_role($role); } wp_delete_user($merged_user_id, $user_id); if (get_userdata($merged_user_id)) { echo 'Please contact the site administrator. During the DaCDb update, a duplicate user failed to be deleted. The duplicate is ' . $merged_user_id . ' Trying to merge to user ' . $user_id . ' Current user logged in is ' . get_current_user_id(); } }
/** * update user roles and capabilities * @param type $user * @return boolean */ public function solvease_roles_capabilities_update_user_role_cap($user_id) { // check if its a valid POST if (!isset($_POST['solvease_user_role_cap_nonce']) || !wp_verify_nonce($_POST['solvease_user_role_cap_nonce'], 'solvease_user_role_cap') || $_POST['user_id'] != $user_id) { return; } $user = new WP_User($user_id); // capabilities $capabilities = isset($_POST['cap']) ? array_keys($_POST['cap']) : array(); // all user roles $all_roles = $this->solvease_roles_capabilities_get_roles(); // primary roles $primary_role = $_POST['primary_role']; // secondary roles $secondary_roles = isset($_POST['secondary_roles']) ? array_keys($_POST['secondary_roles']) : array(); // blank user roles $user->roles = array(); // remove all user roles $user->remove_all_caps(); // add primary roles if ($primary_role != '' && isset($all_roles[$primary_role])) { $user->add_role($primary_role); } else { return FALSE; } // add secondary roles if (!empty($secondary_roles)) { foreach ($secondary_roles as $secondary_role) { if (isset($all_roles[$secondary_role]) && $primary_role != $secondary_role) { $user->add_role($secondary_role); } } } // add capabilities of user roles $user->update_user_level_from_caps(); // add capabilities if (!empty($capabilities)) { foreach ($capabilities as $capability) { $user->add_cap($capability); } } return $user; }
/** * 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; }
/** * 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; }
/** * 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; } } }
function rename_role($role) { global $wp_roles, $wpdb; if ($_POST['role-name']) { $oldrole = $wp_roles->get_role($role); $roletitle = sanitize_title($_POST['role-name']); $wp_roles->remove_role($role); $wp_roles->add_role($roletitle, stripslashes($_POST['role-name']), $oldrole->capabilities); if ($userids = $wpdb->get_col("SELECT ID FROM {$wpdb->users}")) { foreach ($userids as $userid) { $user = new WP_User($userid); if (in_array($role, array_keys($user->caps))) { $theirroles = $user->roles; $user->set_role($roletitle); foreach ($theirroles as $theirrole) { $user->add_role($theirrole); } $user->roles = array_values($user->roles); $this->debug('after', $user); } } } //die('test'); header('Location: ' . $this->manage_roles_uri() . '&role-renamed=true'); } }
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); }
/** * 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; }
/** * 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'); } }
/** * 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 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; } }
/** * 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'); } }
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); } }
/** * 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); } } }
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 }
/** * @group groups_leave_group * @group group_membership */ public function test_groups_leave_group_basic_leave_site_admin_initiated() { $old_current_user = get_current_user_id(); $u1 = $this->factory->user->create(); $u1_siteadmin = new WP_User($u1); $u1_siteadmin->add_role('administrator'); $g = $this->factory->group->create(array('creator_id' => $u1)); $u2 = $this->factory->user->create(); $this->add_user_to_group($u2, $g); $before = groups_get_total_member_count($g); $this->set_current_user($u1); groups_leave_group($g, $u2); $after = groups_get_total_member_count($g); $this->assertEquals($before - 1, $after); $this->set_current_user($old_current_user); }
/** * SyndicatedPost::author_id (): get the ID for an author name from * the feed. Create the author if necessary. * * @param string $unfamiliar_author * * @return NULL|int The numeric ID of the author to attribute the post to * NULL if the post should be filtered out. */ function author_id($unfamiliar_author = 'create') { global $wpdb; $a = $this->named['author']; $source = $this->source(); $forbidden = apply_filters('feedwordpress_forbidden_author_names', array('admin', 'administrator', 'www', 'root')); // Prepare the list of candidates to try for author name: name from // feed, original source title (if any), immediate source title live // from feed, subscription title, prettied version of feed homepage URL, // prettied version of feed URL, or, failing all, use "unknown author" // as last resort $candidates = array(); $candidates[] = $a['name']; if (!is_null($source)) { $candidates[] = $source['title']; } $candidates[] = $this->link->name(true); $candidates[] = $this->link->name(false); if (strlen($this->link->homepage()) > 0) { $candidates[] = feedwordpress_display_url($this->link->homepage()); } $candidates[] = feedwordpress_display_url($this->link->uri()); $candidates[] = 'unknown author'; // Pick the first one that works from the list, screening against empty // or forbidden names. $author = NULL; while (is_null($author) and $candidate = each($candidates)) { if (!is_null($candidate['value']) and strlen(trim($candidate['value'])) > 0 and !in_array(strtolower(trim($candidate['value'])), $forbidden)) { $author = $candidate['value']; } } $email = isset($a['email']) ? $a['email'] : NULL; $authorUrl = isset($a['uri']) ? $a['uri'] : NULL; $hostUrl = $this->link->homepage(); if (is_null($hostUrl) or strlen($hostUrl) < 0) { $hostUrl = $this->link->uri(); } $match_author_by_email = !('yes' == get_option("feedwordpress_do_not_match_author_by_email")); if ($match_author_by_email and !FeedWordPress::is_null_email($email)) { $test_email = $email; } else { $test_email = NULL; } // Never can be too careful... $login = sanitize_user($author, true); // Possible for, e.g., foreign script author names if (strlen($login) < 1) { // No usable characters in author name for a login. // (Sometimes results from, e.g., foreign scripts.) // // We just need *something* in Western alphanumerics, // so let's try the domain name. // // Uniqueness will be guaranteed below if necessary. $url = parse_url($hostUrl); $login = sanitize_user($url['host'], true); if (strlen($login) < 1) { // This isn't working. Frak it. $login = '******'; } } $login = apply_filters('pre_user_login', $login); $nice_author = sanitize_title($author); $nice_author = apply_filters('pre_user_nicename', $nice_author); $reg_author = esc_sql(preg_quote($author)); $author = esc_sql($author); $email = esc_sql($email); $test_email = esc_sql($test_email); $authorUrl = esc_sql($authorUrl); // Check for an existing author rule.... if (isset($this->link->settings['map authors']['name']['*'])) { $author_rule = $this->link->settings['map authors']['name']['*']; } elseif (isset($this->link->settings['map authors']['name'][strtolower(trim($author))])) { $author_rule = $this->link->settings['map authors']['name'][strtolower(trim($author))]; } else { $author_rule = NULL; } // User name is mapped to a particular author. If that author ID exists, use it. if (is_numeric($author_rule) and get_userdata((int) $author_rule)) { $id = (int) $author_rule; // User name is filtered out } elseif ('filter' == $author_rule) { $id = NULL; } else { // Check the database for an existing author record that might fit // First try the user core data table. $id = $wpdb->get_var("SELECT ID FROM {$wpdb->users}\n\t\t\tWHERE TRIM(LCASE(display_name)) = TRIM(LCASE('{$author}'))\n\t\t\tOR TRIM(LCASE(user_login)) = TRIM(LCASE('{$author}'))\n\t\t\tOR (\n\t\t\t\tLENGTH(TRIM(LCASE(user_email))) > 0\n\t\t\t\tAND TRIM(LCASE(user_email)) = TRIM(LCASE('{$test_email}'))\n\t\t\t)"); // If that fails, look for aliases in the user meta data table if (is_null($id)) { $id = $wpdb->get_var("SELECT user_id FROM {$wpdb->usermeta}\n\t\t\t\tWHERE\n\t\t\t\t\t(meta_key = 'description' AND TRIM(LCASE(meta_value)) = TRIM(LCASE('{$author}')))\n\t\t\t\t\tOR (\n\t\t\t\t\t\tmeta_key = 'description'\n\t\t\t\t\t\tAND TRIM(LCASE(meta_value))\n\t\t\t\t\t\tRLIKE CONCAT(\n\t\t\t\t\t\t\t'(^|\\n)a\\.?k\\.?a\\.?( |\\t)*:?( |\\t)*',\n\t\t\t\t\t\t\tTRIM(LCASE('{$reg_author}')),\n\t\t\t\t\t\t\t'( |\\t|\\r)*(\\n|\$)'\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t"); } // ... if you don't find one, then do what you need to do if (is_null($id)) { if ($unfamiliar_author === 'create') { $userdata = array(); // WordPress 3 is going to pitch a fit if we attempt to register // more than one user account with an empty e-mail address, so we // need *something* here. Ugh. if (strlen($email) == 0 or FeedWordPress::is_null_email($email)) { $url = parse_url($hostUrl); $email = $nice_author . '@' . $url['host']; } #-- user table data $userdata['ID'] = NULL; // new user $userdata['user_login'] = $login; $userdata['user_nicename'] = $nice_author; $userdata['user_pass'] = substr(md5(uniqid(microtime())), 0, 6); // just something random to lock it up $userdata['user_email'] = $email; $userdata['user_url'] = $authorUrl; $userdata['nickname'] = $author; $parts = preg_split('/\\s+/', trim($author), 2); if (isset($parts[0])) { $userdata['first_name'] = $parts[0]; } if (isset($parts[1])) { $userdata['last_name'] = $parts[1]; } $userdata['display_name'] = $author; $userdata['role'] = 'contributor'; do { // Keep trying until you get it right. Or until PHP crashes, I guess. $id = wp_insert_user($userdata); if (is_wp_error($id)) { $codes = $id->get_error_code(); switch ($codes) { case 'empty_user_login': case 'existing_user_login': // Add a random disambiguator $userdata['user_login'] .= substr(md5(uniqid(microtime())), 0, 6); break; case 'existing_user_email': // No disassemble! $parts = explode('@', $userdata['user_email'], 2); // Add a random disambiguator as a gmail-style username extension $parts[0] .= '+' . substr(md5(uniqid(microtime())), 0, 6); // Reassemble $userdata['user_email'] = $parts[0] . '@' . $parts[1]; break; } } } while (is_wp_error($id)); } elseif (is_numeric($unfamiliar_author) and get_userdata((int) $unfamiliar_author)) { $id = (int) $unfamiliar_author; } elseif ($unfamiliar_author === 'default') { $id = 1; } } } if ($id) { $this->link->settings['map authors']['name'][strtolower(trim($author))] = $id; // Multisite: Check whether the author has been recorded // on *this* blog before. If not, put her down as a // Contributor for *this* blog. $user = new WP_User((int) $id); if (empty($user->roles)) { $user->add_role('contributor'); } } return $id; }
/** * Patch user info to make DJs authors too. */ function river_profile_update($user_id) { $user = new WP_User($user_id); if (in_array("dj", $user->roles)) { $user->add_role("author"); } }