Kendi WordPress Kullanıcı İrtibat Alanlarınızı Oluşturun

Bugün sizin için yeni bir eklenti oluşturdum. Kullanıcıların iletişim yöntemleri ile ilgilenen bir eklenti. Temel olarak yönetimdeki bir kullanıcıyı düzenlediğinizde, bir “iletişim bilgileri” bloğu vardır. Size kendi alanlarınızı nasıl ekleyeceğinizi ve biraz daha ileriye gitmek için, kayıt sayfasında bu yeni alanların nasıl gösterileceğini (veya gösterilmeyeceğini) göstermek istiyorum..


İşte oluşturacağımız şeyin bir önizlemesi:

edit-özel alanlar

Düzenleme sayfasındaki yeni kullanıcı alanları

Özel Alanlar

Kayıt sayfasındaki özel alanlar

Bunu yapmak için, her zamanki gibi, güzel ve basit bir eklenti oluşturacağız!

Adım 1: Eklentiyi Oluşturun

Wp-content / plugins içinde yeni bir klasör oluşturun ve “custom-user-contact-techniques” olarak adlandırın. Bu yeni oluşturulan klasörün içinde, “rc-custom-user-contact-method.php” adlı bir dosya oluşturun ve favori düzenleyici yazılımınızda açın.

Bu içeriği boş dosyanıza yerleştirin. Bu kod sadece eklentiyi kaydeder:

2. Adım: Özel Alanlarınızı Tanımlayın

Ardından, özel alanlarımızı, kullanıcı sürümü sayfasında kullanılacakları ve ayrıca kayıt varsayılan sayfasında yer alacak bir değişken oluşturmamız gerekiyor. Bu alanları $ extra_fields adlı bir değişkene saklayalım.

$ extra_fields = dizi (
dizi ('facebook', __ ('Facebook Kullanıcı Adı', 'rc_cucm'), doğru),
dizi ('twitter', __ ('Twitter Kullanıcı Adı', 'rc_cucm'), doğru),
dizi ('googleplus', __ ('Google+ Kimliği', 'rc_cucm'), doğru),
dizi ('Linkedin', __ ('Linked In ID', 'rc_cucm'), yanlış),
dizi ('pinterest', __ ('Pinterest Kullanıcı Adı', 'rc_cucm'), yanlış),
dizi ('wordpress', __ ('WordPress.org Kullanıcı Adı', 'rc_cucm'), yanlış),
dizi ('telefon', __ ('Telefon Numarası', 'rc_cucm'), doğru)
);

Bir dizideki her alanı 3 parametre içeren bir yerde saklıyoruz, birincisi alan kimliği, ikincisi alan etiketi ve sonuncusu alanın kayıt sayfasında gösterilip gösterilmeyeceğini tanımlayan bir boole bilgisidir . İstediğiniz sayıda parametre ekleyebilirsiniz; örneğin, bir yer tutucu veya gerekli bir bilgi.

Adım 3: Doğru Filtreyi Takın

Şimdi bir fonksiyonu doğru filtreye bağlamamız gerekiyor. Özel durumumuzda, filtre “user_contactmethods” dır ve oluşturacağımız işlevin adı “rc_add_user_contactmethods” dır..

// Yeni alanlar eklemek için user_contactmethods komutunu kullanın
add_filter ('kullanıcı_contactmethods', 'rc_add_user_contactmethods');

4. Adım: Özel Alanlarımızı Oluşturun

Şimdi “rc_add_user_contactmethods” fonksiyonunu yaratmamız gerekiyor. Özel alanlarımızı kullanıcı düzenleme sayfasına ekleyendir. İyi haber şu ki, alanlarımızı bir dizi içinde sakladık, aşağıdaki fonksiyonun tamamen dinamik olacağı ve sadece $ extra_fields değişkenini değiştirerek yeni alanlar eklemenin oldukça kolay olacağı anlamına geliyor..

/ **
* Özel kullanıcılar özel iletişim yöntemleri ekleyin
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_add_user_contactmethods ($ user_contactmethods) {

// Alanları al
global $ extra_fields;

// Her alanı göster
foreach ($ extra_fields $ $ olarak) {
if (! isset ($ contactmethods [$ field [0]])))
$ user_contactmethods [$ field [0]] = $ field [1];
}

// İletişim yöntemlerini döndürür
return $ user_contactmethods;
}

Bu adımda, eklentiyi kaydedip etkinleştirirseniz, kullanıcı düzenleme sayfasında özel alanlarınızı görmeniz gerekir. Doğru kancayı kullandığımız için, bir "kaydetme" alanları verileri oluşturmak zorunda değiliz. Yani, eklenti şu an için harika çalışıyor. Ancak biraz daha ileri gitmek ve bu alanları kayıt sayfasında görüntüleme seçeneğini eklemek istiyorum. Ayarlar altında "Herkes kaydolabilir" onay kutusunu işaretlediğinizden emin olun, aksi takdirde "Kaydol" bağlantısını göremezsiniz.

Adım 5: Kayıt Sayfası Kancaları

Kayıt sayfamıza alanlarımızı eklemek için en az iki kancaya erişmeli ve iki işlev oluşturmalıyız. Biri alanları görüntülemek, ikincisi alan verilerini veritabanına kaydetmek.

Hadi fonksiyonlarımızı bağlayalım:

// Alanlarımızı kayıt işlemine ekleyin
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

6. Adım: Özel Alanlar Kayıt Sayfasını Görüntüleme

Yukarıdaki kodda iki fonksiyon beyan ettik. Birincisi, kayıt sayfasındaki alanları görüntülemektir. Bu bölümde, $ extra_fields içindeki her dizinin üçüncü parametresine dikkat etmemiz gerekir. Bu boole parametresi alanların gösterilip gösterilmeyeceğini söyler. Doğru: alan gösteriliyor, yanlış: alan gösterilmiyor.

/ **
* Kayıt sayfasında özel alanları göster
*
* Üçüncü alan parametresi true olarak ayarlanmışsa kayıttaki özel alanları göster
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_register_form_display_extra_fields () {

// Alanları al
global $ extra_fields;

// 3. parametre "true" olarak ayarlanmışsa her bir alanı görüntüle
foreach ($ extra_fields $ $ olarak) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
Eko '

'; } // endif } // sonu her biri }

Adım 7: Alan Değerlerini Kayıt İşleminde Saklayın

Artık alanlarımız kayıt sayfasında gösterildiğine göre, değerlerini veritabanında saklamamız gerekiyor. “Rc_user_register_save_extra_fields” fonksiyonunun amacı budur. Bunu yapmak için “wp_update_user ()”İşlevi.

/ **
* Alan değerlerini kaydedin
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = dizi ()) {

// Alanları al
global $ extra_fields;

$ userdata = dizi ();
$ userdata ['ID'] = $ user_id;

// Her alanı kaydet
foreach ($ extra_fields $ $ olarak) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // endif
} // sonu her biri

$ new_user_id = wp_update_user ($ userdata);
}

Sonuç

Kullanıcı iletişim yöntemlerine nasıl yeni alan ekleneceğinin temellerini gördük, ancak hepsi bu. Örneğin basit bir unset () yaparak “Yahoo IM”, “AIM” ve “Jabber” gibi mevcut alanları kaldırabilirsiniz. Ancak, örneğin telefon numarasının uygun bir biçime sahip olup olmadığını, bir alanın gerekli olup olmadığını vb. Kontrol etmek için özel alanlarınızı sterilize etmek için bazı işlevler de ekleyebilirsiniz.!

Oh, ve son bir şey… alanınızın herhangi birisinin verilerini görüntülemek istiyorsanız, şunu kullanın:

// Param 1 kullanıcı kimliğidir
// Param 2 alan kimliğidir
// Param 3 bir var veya dizi almak için orada
echo get_user_meta (1, 'twitter', doğru);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

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