زمینه های تماس با کاربر WordPress خود را ایجاد کنید

امروز یک افزونه جدید برای شما ایجاد کردم. افزونه ای که با روش های تماس کاربران سروکار دارد. اساساً وقتی کاربر را در اداره ویرایش می کنید ، یک بلوک “اطلاعات تماس” وجود دارد. خوب ، من می خواهم به شما نشان دهم که چگونه می توانید زمینه های خود را به آنجا اضافه کنید ، و کمی بیشتر پیش بروید ، چگونه این قسمت های جدید را در صفحه ثبت نام نشان دهید.


در اینجا پیش نمایش آنچه می خواهیم ایجاد کنیم:

ویرایش-زمینه های سفارشی

زمینه های کاربر جدید در صفحه ویرایش

فیلدهای سفارشی

زمینه های سفارشی در صفحه ثبت نام

و برای انجام این کار ، طبق معمول ، ما می خواهیم یک افزونه زیبا و ساده ایجاد کنیم!

مرحله 1: افزونه را ایجاد کنید

یک پوشه جدید در افزونه های wp-content / plugin ایجاد کنید و آنرا “متدهای سفارشی با کاربر-تماس” بنامید. در داخل این پوشه تازه ایجاد شده ، فایلی به نام “rc-custom-user-contact-մեթոդ.php” ایجاد کنید و آن را در نرم افزار ویرایشگر مورد علاقه خود باز کنید.

این محتوا را در پرونده خالی خود قرار دهید. این کد افزونه را به سادگی ثبت می کند:

مرحله 2: زمینه های سفارشی خود را تعریف کنید

در مرحله بعد ، باید متغیری ایجاد کنیم که شامل فیلدهای دلخواه ما باشد ، مواردی که در صفحه نسخه کاربر استفاده می شود و همچنین در صفحه پیش فرض ثبت نام. بیایید این زمینه ها را در متغیری به نام $ extra_fields ذخیره کنیم.

$ extra_fields = آرایه (
array ("facebook" ، __ ("نام کاربری Facebook" ، "rc_cucm") ، درست),
آرایه ("توییتر" ، __ ("نام کاربری توییتر" ، "rc_cucm") ، درست),
آرایه ("googleplus" ، __ ("شناسه Google+" ، "rc_cucm") ، درست),
array ('linkin'، __ ('Linked In ID'، 'rc_cucm')، false),
آرایه ("pinterest" ، __ ("نام کاربری Pinterest" ، "rc_cucm") ، غلط),
آرایه ("وردپرس" ، __ ("نام کاربری WordPress.org" ، "rc_cucm") ، غلط),
آرایه ("تلفن" ، __ ("شماره تلفن" ، "rc_cucm") ، درست)
)؛

ما هر فیلد را درون یک آرایه ذخیره می کنیم که دارای 3 پارامتر است ، اولین مورد شناسه فیلد ، دومین برچسب فیلد است ، و آخرین اطلاعات یک اطلاعات بولی است که تعریف می کند فیلد در صفحه ثبت نام نشان داده شده است یا نه . می توانید پارامترهای زیادی را که می خواهید اضافه کنید ، به عنوان مثال یک مکان نگهدار یا اطلاعات مورد نیاز.

مرحله 3: Hook The Right Filter

اکنون باید یک تابع را به فیلتر صحیح وصل کنیم. در مورد خاص ما ، فیلتر "user_contactmethods" است و نام تابعی که می خواهیم ایجاد کنیم "rc_add_user_contactmethods" است..

// برای افزودن فیلدهای جدید از user_contactmethods استفاده کنید
add_filter ('user_contactmethods'، 'rc_add_user_contactmethods')؛

مرحله 4: زمینه های سفارشی ما را ایجاد کنید

اکنون باید عملکرد "rc_add_user_contactmethods" ایجاد کنیم. این یکی است که زمینه های سفارشی ما را به صفحه ویرایش کاربر اضافه می کند. خبر خوب ، این است که ما فیلدهای خود را در یک آرایه ذخیره کردیم ، به این معنی که عملکرد زیر کاملاً پویا خواهد بود ، و اضافه کردن زمینه های جدید فقط با تغییر متغیر $ extra_fields بسیار آسان خواهد بود..

/ **
* اضافه کردن روش های تماس با کاربران سفارشی
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_add_user_contactmethods ($ user_contact متودها))

// دریافت زمینه ها
$ اضافی_ زمینه های جهانی؛

// نمایش هر قسمت
foreach ($ extra_fields به عنوان $ $) {
اگر (! صادرکننده ($ مخاطبین متون [$ زمینه [0]]))
$ user_contactmethods [$ فیلد [0]] = $ زمینه [1]؛
}

// روشهای تماس را برمی گرداند
$ user_contactmethods را بازگردانید.
}

در این مرحله ، اگر پلاگین را ذخیره و فعال کنید ، باید زمینه های دلخواه خود را در صفحه ویرایش کاربر مشاهده کنید. از آنجا که ما از قلاب صحیح استفاده می کنیم ، لازم نیست داده های زمینه "ذخیره" را ایجاد کنیم. بنابراین ، این افزونه برای لحظه ای عالی کار می کند. اما دوست دارم کمی فراتر بروم و گزینه نمایش این فیلدها را در صفحه ثبت نام اضافه کنم. جعبه کادر "هر کسی می تواند ثبت نام کند" را انتخاب کنید ، در غیر این صورت شما نمی توانید پیوند "ثبت نام" را ببینید.

مرحله 5: قلاب های صفحه ثبت نام

برای اضافه کردن فیلدهای خود در صفحه ثبت نام ، باید حداقل به دو قلاب دسترسی داشته باشیم و دو عملکرد ایجاد کنیم. یکی برای نمایش فیلدها و دیگری برای ذخیره داده های فیلدها در دیتابیس.

بیایید عملکردهای خود را قلاب کنیم:

// زمینه های ما را به روند ثبت نام اضافه کنید
add_action ('Register_form'، 'rc_register_form_display_extra_fields')؛
add_action ('user_register'، 'rc_user_register_save_extra_fields'، 100)؛

مرحله 6: صفحه ثبت نام فیلدهای سفارشی را نمایش دهید

در کد بالا ما دو عملکرد را اعلام کردیم. مورد اول نمایش فیلدها در صفحه ثبت نام است. در این قسمت ما باید از پارامتر سوم هر آرایه در $ اضافی_رایگان مراقبت کنیم. این پارامتر boolean می گوید که آیا فیلدها باید نشان داده شوند یا نه. درست: زمینه نشان داده شده است ، غلط است: این فیلد نشان داده نشده است.

/ **
* نمایش زمینه های سفارشی در صفحه ثبت نام
*
* در صورت تنظیم درست پارامتر سوم قسمت ، فیلدهای سفارشی را در هنگام ثبت نام نشان دهید
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
عملکرد rc_register_form_display_extra_fields ()

// دریافت زمینه ها
$ اضافی_ زمینه های جهانی؛

// اگر 3 پارامتر تنظیم شده در "true" باشد ، هر فیلد را نمایش دهید
foreach ($ extra_fields به عنوان $ $) {
if ($ $ [2] == true) {
$ field_value = صادر ($ _POST [$ درست [0]])؟ $ _POST [$ زمینه [0]]: ''؛
پژواک

'؛ } // endif } // foreach foreach }

مرحله 7: پس از ثبت نام ، ارزش های فیلد را ذخیره کنید

اکنون که فیلدهای ما در صفحه ثبت نام نشان داده شده است ، ما نیاز داریم تا مقادیر آنها را در دیتابیس ذخیره کنیم. این انیمه عملکرد "rc_user_register_save_extra_fields" است. برای این کار ، ما باید از "wp_update_user ()" تابع.

/ **
* مقادیر زمینه را ذخیره کنید
*
* عمومی دسترسی
*since 1.0
*return باطل است
* /
تابع rc_user_register_save_extra_fields ($ user_id ، $ password = ''، $ meta = array ()) {

// دریافت زمینه ها
$ اضافی_ زمینه های جهانی؛

$ userdata = آرایه ()؛
$ userdata ['ID'] = $ user_id؛

// ذخیره هر فیلد
foreach ($ extra_fields به عنوان $ $) {
if ($ $ [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ زمینه [0]]؛
} // endif
} // foreach foreach

$ new_user_id = wp_update_user ($ userdata)؛
}

نتیجه

خوب ، ما اصول اولیه چگونگی افزودن فیلدهای جدید به روش های تماس با کاربر را دیدیم ، اما این همه چیز است. به عنوان مثال می توانید فیلدهای موجود مانند "Yahoo IM" ، "AIM" و "Jabber" را با انجام یک تنظیم ساده حذف کنید (). اما همچنین می توانید برخی از کارکردها را برای سالم سازی زمینه های دلخواه خود اضافه کنید تا به عنوان مثال بررسی کنید که آیا شماره تلفن دارای فرمت مناسب است ، اگر یک فیلد مورد نیاز است یا غیره و غیره و غیره.!

اوه ، و آخرین مورد ... اگر می خواهید داده های هر قسمت از زمینه خود را نمایش دهید ، به سادگی از این موارد استفاده کنید:

// Param 1 شناسه كاربر است
// Param 2 شناسه فیلد است
// Param 3 برای گرفتن واریس یا آرایه ای در آنجا وجود دارد
echo get_user_meta (1، 'twitter'، true)؛  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map