در این پست در مورد اضافه کردن کاربر جدید و تفاوت wp_insert_user با wp_create_user صحبت کردیم
برای اضافه کردن کاربر جدید با سطح دلخواه خودمون می تونیم از توابع از پیش تعریف شده خود وردپرس استفاده کنیم . برای ایجاد کاربر جدید به حداقل 3 مورد نیاز داریم . نام کاربری ،ایمیل و پسورد . توی خیلی از فروشگاه های اینترنتی که با موبایل و ارسال پیامک عضویت انجام میشه ،ایمیل کاربری فیک از روی شماره موبایل یا به صورت رندوم ایجاد میشه . چون ممکنه بعضی از افزونه ها مثل ووکامرس و یا سایر افزونه ها نیاز به یه ایمیل داشته باشند.
برای ایجاد کاربری و اضافه کردن اون از این تابع wp_creat_user استفاده میشه که دقیقا نام کاربری، ایمیل و پسورد رو می گیره و یه ردیف جدید در جدول کاربران وردپرس یعنی wp_users اضافه می کنه.
$username ='newuser'; $password = 'password'; $email_address = $username.'@wordpresskar.com'; if ( ! username_exists( $username ) ) { $user_id = wp_create_user( $username, $password, $email_address ); $user = new WP_User( $user_id ); $user->set_role( 'subscriber' ); }
اما این فیلدهای مربوط به کاربری مقداری نخواهند شد و در قسمت شناسه کاربری اون کاربر این فیلدها خالی می مونن
user_nicename , user_url , display_name
همینطور با این تابع نمیشه آی دی دلخواه رو برای کاربر تعریف کرد و عدد خاصی رو به کاربر اختصاص داد اما با wp_insert_user میشه این کار رو انجام داد. ( اشتباه کرده بودم وقتی تست کردم دیدم نمیشه ،اگر آی دی تعریف بشه در حقیقت اطلاعات اون کاربر با اون آی دی آپدیت میشه )
در واقع با wp_creat_user خیلی سریع و با کمترین ورودی ها ما قادر به ساخت کاربری و اضافه کردن به وب سایت هستیم و مطمئنا کاربر جدید وقتی لاگین می کنه باید اطلاعات دیگه رو خودش وارد کنه .
اما برای ایجاد و اضافه کردن یه کاربری جدید در وردپرس با تمام اطلاعات مورد نیاز که برای هر کاربر وردپرس موجود هست می تونیم از تابع wp_insert_user استفاده کنیم . متغیرهایی که می تونیم برای کاربر جدید تعریف کنیم اینها هستند :
$userdata = array( 'ID' => 0, //(int) User ID. If supplied, the user will be updated. 'user_pass' => '', //(string) The plain-text user password. 'user_login' => '', //(string) The user's login username. 'user_nicename' => '', //(string) The URL-friendly user name. 'user_url' => '', //(string) The user URL. 'user_email' => '', //(string) The user email address. 'display_name' => '', //(string) The user's display name. Default is the user's username. 'nickname' => '', //(string) The user's nickname. Default is the user's username. 'first_name' => '', //(string) The user's first name. For new users, will be used to build the first part of the user's display name if $display_name is not specified. 'last_name' => '', //(string) The user's last name. For new users, will be used to build the second part of the user's display name if $display_name is not specified. 'description' => '', //(string) The user's biographical description. 'rich_editing' => '', //(string|bool) Whether to enable the rich-editor for the user. False if not empty. 'syntax_highlighting' => '', //(string|bool) Whether to enable the rich code editor for the user. False if not empty. 'comment_shortcuts' => '', //(string|bool) Whether to enable comment moderation keyboard shortcuts for the user. Default false. 'admin_color' => '', //(string) Admin color scheme for the user. Default 'fresh'. 'use_ssl' => '', //(bool) Whether the user should always access the admin over https. Default false. 'user_registered' => '', //(string) Date the user registered. Format is 'Y-m-d H:i:s'. 'show_admin_bar_front' => '', //(string|bool) Whether to display the Admin Bar for the user on the site's front end. Default true. 'role' => '', //(string) User's role. 'locale' => '', //(string) User's locale. Default empty. );
و برای اضافه کردن کاربر جدید با متغیرهای بالا از کد زیر استفاده می کنیم و اگر اروری نداشت هم آی دی کاربر جدید نمایش داده میشه :
$add_new_user = wp_insert_user( $userdata ) ; // On success. if ( ! is_wp_error( $add_new_user ) ) { echo "User created : ". $add_new_user; }