WordPress Kullanıcısını Yasaklama

Birkaç gün önce bir WordPress kullanıcısını bir kurulumdan yasaklayacak bir sistem oluşturmam istendi. Bu yüzden basit bir eklenti oluşturdum ve bu eklentinin temellerini sizinle paylaşmak istedim. Bu öğreticide WordPress filtrelerini, eylemlerini, kullanıcıların sütun yönetimini ve daha birçok harika şeyi ele alacağız..


Adım 1: Eklentiyi Oluşturun

Bir kez daha, burada çok karmaşık, tek yapmanız gereken “wp-content / plugins” ile “ban-users” adında yeni bir klasör oluşturmak. Bu klasörde, “ban-users.php” adlı yeni bir dosya oluşturun, şu kodu yapıştırın:

2. Adım: Kullanıcıların Profil Sayfasına Onay Kutusu Ekleme

Yapmamız gereken ilk şey, her kullanıcı profili sürüm sayfasına bir onay kutusu eklemektir. Bu onay kutusunu işaretlediğinizde, kullanıcının artık web sitenize giriş yapmasına izin verilmediğini belirten bir kullanıcı meta seçeneği saklanır.

İşte kod:

/ **
* Yönetici girişi
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_admin_init () {

// Kullanıcı profilini düzenle
add_action ('edit_user_profile', 'rc_edit_user_profile');
add_action ('edit_user_profile_update', 'rc_edit_user_profile_update');

}
add_action ('admin_init', 'rc_admin_init');

Bu kod basitçe şimdi yaratmamız gereken bir işleve çağrı oluşturuyor. Bu işlev, kullanıcıların profil sayfasına bir onay kutusu ekleyecektir.

/ **
* Kullanıcı sürümü sayfasına özel onay kutusu ekler
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_edit_user_profile () {
if (! current_user_can ('edit_users')) {
dönüş;
}

global $ user_id;

// Kullanıcı kendisini devre dışı bırakamaz
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> Kimlik;
if ($ current_user_id == $ user_id) {
dönüş;
}

// Etkin olup olmadığını kontrol et
$ işaretli = işaretli (get_user_option ('rc_banned', $ user_id, yanlış));

// Ekran onay kutusu
Eko '
Kullanıcıyı Yasakla
'; }

Şimdi veritabanına onay kutusunun değerini kaydedecek fonksiyona sahip olmamız gerekiyor:

/ **
* Özel onay kutusunu kaydet
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_edit_user_profile_update () {

if (! current_user_can ('edit_users')) {
dönüş;
}

global $ user_id;

// Kullanıcı kendisini devre dışı bırakamaz
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> Kimlik;
if ($ current_user_id == $ user_id) {
dönüş;
}

// Kilit
if (isset ($ _POST ['rc_ban']) && $ _POST ['rc_ban'] = 'açık') {
rc_ban_user ($ user_id);
} else {// Kilidi aç
rc_unban_user ($ user_id);
}

}

Gördüğünüz gibi bu yeni işlev iki başka işlev daha kullanır: rc_ban_users () ve rc_unban_users (). İsimleri oldukça açık, birincisi bir kullanıcının yasak olduğu veritabanında saklanacak, ikincisi kullanıcıların kilidini açacak.

3. Adım: Kullanıcıları Yasakla

Artık rc_ban_users () işlevini oluşturma zamanı. Bu fonksiyonda, bir değerin önceden kaydedilip kaydedilmediğini kontrol etmemiz ve eğer değerin saklanması gerekir. Daha sonra açıklayacağım bir işlevi çağırmamın nedeni budur: rc_is_user_banned ():

/ **
* Kullanıcıyı yasakla
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_ban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// Güncelleme durumu
if (! $ old_status) {
update_user_option ($ user_id, 'rc_banned', doğru, yanlış);
}
}

4. Adım: Kullanıcıların yasağını kaldırma

Aşağıdaki işlev, yeni oluşturduğumuz işlevin tam tersidir: Kullanıcıları “yasaklamak” için yetenek vermemiz gerekir:

/ **
* Kullanıcıyı yasakla
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_unban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// Güncelleme durumu
if ($ old_status) {
update_user_option ($ user_id, 'rc_banned', yanlış, yanlış);
}
}

5. Adım: Kullanıcı Yasaklandı?

Bir kullanıcının yasaklanıp yasaklanmadığını kontrol etmek için rc_ban_users () ve rc_unban_users () 'de rc_is_user_banned () adlı bir işlev kullandığımızı gördük. Haydi oluşturalım:

/ **
* Bir kullanıcının zaten yasaklı olup olmadığını kontrol eder
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_is_user_banned ($ user_id) {
get_user_option dönüşü ('rc_banned', $ user_id, false);
}

Temel olarak, bu işlev sadece rc_ban_users () içine kaydedilen seçeneğin değerini döndürür.

Şu anda kullanıcı sürümü sayfasında aşağıdakileri beğenecek yeni bir onay kutumuz var:

ban_users_1

Son adım, yasaklanan kullanıcıların giriş yapmasını önlemek için giriş formuna bir işlev bağlamaktır.

5. Adım: Oturum Açmak İçin Yasaklı Kullanıcılardan Kaçının

Bunu yapmak için “wp_authenticate_user” adlı bir WordPress varsayılan filtresi kullanmamız gerekiyor. Bu filtreye “rc_authenticate_user ()” adlı bir işlev bağlayacağız. Bu işlev, WP_Error sınıfı.

/ **
* Giriş işlemi sırasında kullanıcının kilitlenip kilitlenmediğini kontrol edin
*
* @access public
* @since 1.0
* @return geçersiz
* /
işlev rc_authenticate_user ($ user) {

if (is_wp_error ($ user)) {
$ kullanıcı döndürür;
}

// Kullanıcı hesabı yasaklanmışsa iade hatası
$ banned = get_user_option ('rc_banned', $ kullanıcı-> kimlik, yanlış);
if ($ banned) {
yeni WP_Error döndür ('rc_banned', __ ('HATA: Bu kullanıcı hesabı devre dışı. ',' Rc '));
}

$ kullanıcı döndürür;
}

Şimdi, filtreyi eklememiz gerekiyor:

add_filter ('wp_authenticate_user', 'rc_authenticate_user', 1);

Sonuç

Kullanıcı profili sürüm sayfasına bir onay kutusu ekleyen bir eklenti oluşturduk. Değeri onay kutusuna depolamak için ikinci bir işlev kullandık ve bir WordPress kullanıcısını yasaklamak için bir işlev ve bir kullanıcının kilidini açmak için başka bir işlev oluşturduk. Ayrıca, bir kullanıcının yasaklanıp yasaklanmadığını kontrol etmek için küçük bir işlev oluşturduk. Ve sonunda WP_Error WordPress varsayılan sınıfını kullanarak “wp_authenticate_user” filtresine bir işlev bağladık.

Bu öğreticiyi beğendiyseniz, bu eklentinin premium sürümünü seveceksiniz: Kullanıcılar Erişim Yöneticisi.

Github'da Tam Kodu İndirin

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map