Bright Moon 653 ارسال شده در بهمن 92 گزارش بازنشر ارسال شده در بهمن 92 (ویرایش شده) سلاممیخوام چند فیلد دلخواه به پروفایل یوزر ها اضافه کنم.یک فرم ثبت نام دلخواه بسازم در گوشه ای از پوسته و توش از کاربر بخوام این فیلدهای جدید رو هم پر کنه...تا اونجا که فهمیدم باید توی یوزر متا تغییر ایجاد کرد!ممنون میشم راهنمایی کنید ویرایش شده بهمن 92 توسط Light Moon نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در بهمن 92 گزارش بازنشر ارسال شده در بهمن 92 1. اضافه نمودن فیلد به صفحه پروفایل :function modify_user_contact_methods( $user_contact ){/* Add user contact methods */$user_contact['skype'] = __('Skype Username');$user_contact['twitter'] = __('Twitter Username');/* Remove user contact methods */unset($user_contact['aim']);unset($user_contact['jabber']);return $user_contact;}add_filter('user_contactmethods', 'modify_user_contact_methods');در فایل functions.php بگذارید در این نمونه دو فیلد برای Skype و Twitter اضافه شده و دو فیلد aim و jabber از پروفایل حذف شدهhttp://wordpress.org...ch/user_contact2. روش ساخت فرم دستی :فرمش که مشخصه چیزی شبیه :<form id="your-profile" action="" method="post"><input type="hidden" name="user_id" value="<?php echo $current_user->user_ID;?>"><input type="text" name="mobile" id="mobile" value="<?php echo get_user_meta( $user_id, "mobile", true);?>" >...<input type="submit" name="profile_submit"></form>یک فیلد هیدن برای انتقال آی دی کاربر به اکشن و فیلدهای دیگه هم مثل فیلد موبایلو اکشنش :<?phpglobal $user_ID, $user_identity, $user_level, $user_email, $user_login, $user_info, $user_first_name, $user_last_name, $user_url;if (is_user_logged_in()) :wp_get_current_user();$user_id = $current_user->ID;$meta = get_user_meta($user_id, 'profile');$meta = $meta[0];if(current_user_can('edit_posts') ) {if(isset($_POST['profile_submit'])) :if(isset($_POST['mobile'])) {$mobile = $_POST['mobile'];if(get_user_meta( $user_id, "mobile", true)) {update_user_meta($user_id, 'mobile', $mobile);} else {add_user_meta($user_id, 'mobile', $mobile);}echo '<h4 class="alert">مشخصات شما به روز شد</h4>';endif;}else :$permalink = get_permalink();echo wp_login_form($permalink);endif;?>که در اصل شرط را باget_user_meta( $user_id, "meta_key", true))می سازید و به روز رسانی یا ایجاد متا را باupdate_user_meta($user_id, 'meta_key', 'meta_value');add_user_meta($user_id, 'meta_key', 'meta_value');meta_key نامیست که برای متا و فیلدتون انتخاب می کنید و meta_value هم مقداریست که کاربر در فیلد قرار خواهد دادنکته : فرم ثبت نام وردپرس را دستکاری نکنید چون با مشکل ایمیل تایید و ارسال رندم رمز مواجه می شویدمی توانید در فرم بالا یک فیلد hidden با نام دلخواه اضافه کنید و شرطی بگذارید که کاربر در اولین ورودش بعد از ثبت نام مجبور به تکمیل مشخصاتش شوداگر خواستید اینکار را بکنید بفرمایید تا کدش را بگذارم 5 نقل قول لینک به ارسال
Bright Moon 653 ارسال شده در اسفند 92 مالک گزارش بازنشر ارسال شده در اسفند 92 از وان روز چندین بار تلاش کردم و چون به نتیجه نرسیدم کار رو رها کردم...* ایجاد فیلد جدید در پروفایل حل شد. متشکرسوالی که برای ساخت فرم پیش اومد، این بود که برای اضافه کردن مواردی مثل نام و نام خانوادگی و رمز و ... چه مقادیری باید در خود فیلد بزارم؟! چه مقادیری فیلد ها رو به این موارد منتسب میکنه؟اگر یک نمونه به صورت مثال موجود باشه فکر کنم خیلی بهم کمک میکنه. فرمی که شامل چند مورد پیشفرض وردپرس و یک مورد اضافه شده مثل اسکایپ(که توی توضیح قبلی اشاره شده) باشه.و اکشن هم برای ثبت نام ...ببخشید سوالم خیلی کلیه.ممنون نقل قول لینک به ارسال
Parsa 23463 ارسال شده در اسفند 92 گزارش بازنشر ارسال شده در اسفند 92 add_action(‘register_form’,’show_first_name_field’);add_action(‘register_post’,’check_fields’,10,3);add_action(‘user_register’, ‘register_extra_fields’);function show_first_name_field(){?><p><label>First Name<br/><input id=”user_email” type=”text” tabindex=”20″ size=”25″ value=”<?php echo $_POST['first']; ?>” name=”first”/></label></p><p><label>Last Name<br/><input id=”user_email” type=”text” tabindex=”20″ size=”25″ value=”<?php echo $_POST['last']; ?>” name=”last”/></label></p><?php}function check_fields($login, $email, $errors) {global $firstname, $lastname;if ($_POST['first'] == ”) {$errors->add(‘empty_realname’, “<strong>ERROR</strong>: Please Enter in First Name”);} else {$firstname = $_POST['first'];}if ($_POST['last'] == ”) {$errors->add(‘empty_realname’, “<strong>ERROR</strong>: Please Enter in Last Name”);} else {$firstname = $_POST['last'];}}function register_extra_fields($user_id, $password=””, $meta=array()) {$userdata = array();$userdata['ID'] = $user_id;$userdata['first_name'] = $_POST['first'];$userdata['last_name'] = $_POST['last'];wp_update_user($userdata);}http://tipsforwordpress.com/wordpress/add-custom-field-to-register-form/ 3 نقل قول لینک به ارسال
Bright Moon 653 ارسال شده در اسفند 92 مالک گزارش بازنشر ارسال شده در اسفند 92 پارسای عزیز خیلی ممنون.سعی کردم خودم باقی راه رو برم اما نشد. گیج شدم ممکنه اول ساخت فرمش رو کمک کنید؟!برای اضافه کردن مواردی مثل نام و نام خانوادگی و رمز و ... چه مقادیری باید در خود فیلد بزارم؟! چه مقادیری فیلد ها رو به این موارد منتسب میکنه؟2. روش ساخت فرم دستی :فرمش که مشخصه چیزی شبیه :<form id="your-profile" action="" method="post"><input type="hidden" name="user_id" value="<?php echo $current_user->user_ID;?>"><input type="text" name="mobile" id="mobile" value="<?php echo get_user_meta( $user_id, "mobile", true);?>" >...<input type="submit" name="profile_submit"></form>بر اساس این کدها،برای درخواست نام این خط درسته؟<input type="text" name="firstname" id="firstname" value="<?php echo get_user_meta( $user_id, "first_name", true);?>" >و یا مقدار value باید از میان عبارت های تعین شده انتخاب کرد؟برای نام خانوادگی و رمز عبور و موارد مشابه چطور؟متشکرم نقل قول لینک به ارسال
imanfakhar 26231 ارسال شده در اسفند 92 گزارش بازنشر ارسال شده در اسفند 92 به فرمی که جناب پارسا گذاشتند دقت کنید واضحه برای فیلد با نام first مقدار value برابر با <?php echo $_POST['first']; ?>همین الگو را تا انتها پیش بگیرید مهم معرفی درست اکشن است function register_extra_fields($user_id, $password=””, $meta=array()) {$userdata = array();$userdata['ID'] = $user_id;$userdata['first_name'] = $_POST['first'];$userdata['last_name'] = $_POST['last']; 4 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .