WordPress Kullanıcıları Nasıl Yasak Yapılır

Birkaç gün önce WordPress kullanıcılarının yüklemesini yasaklayacak bir sistem oluşturmam istendi. Bu yüzden basit bir eklenti yapıyorum ve bu eklentinin temellerini sizinle paylaşmak istiyorum. Bu öğreticide WordPress filtreleri, eylemler, kullanıcı sütun yönetimi ve diğer bazı harika şeyleri tartışacağız. Adım 1: Bir eklenti oluştur bir kez daha, bu çok karmaşık, tek yapmanız gereken “Ban-Users” adlı “WP-Concent/Eklentiler” ile yeni bir klasör oluşturmak. Bu klasörde, “Ban-Users.php” adlı yeni bir dosya oluşturun, bu kodu açın ve yapıştırın: id; if ($ current_user_id == $ user_id) {return; } // etkin olup olmadığını kontrol edin $ check -ed = checked (get_user_option (‘rc_bedged’, $ user_id, false)); // onay kutusu echo ‘ lastik kullanıcısı

‘; } Artık onay kutusu değerinin veritabanında saklanacak bir işlevimiz olmalı:
/ ** * Özel onay kutusunu kaydedin * * @Access public * @Since 1.0 * @return void */ function rc_itit_user_profile_update () {if (! Current_user_can (‘edit_user’)) {return; } Global $ user_id; // Kullanıcı kendini devre dışı bırakamaz $ current_user = wp_get_current_user (); $ current_user_id = $ current_user-> id; if ($ current_user_id == $ user_id) {return; } // ise (isset ($ _post [‘rc_ban’])) && $ _post [‘rc_ban’] = ‘on’) {rc_ban_user ($ user_id); } else {// kilidini aç rc_unban_user ($ user_id); }} Gördüğünüz gibi, bu yeni işlev diğer iki işlevi kullanır: rc_ban_user () ve rc_unban_user (). İsimleri oldukça açıktır, birincisi kullanıcının yasaklandığı gerçeğinde veritabanında kaydedilir, ikincisi kullanıcının kilidini açacaktır. Bu işlevde bir değerin depolanıp saklanmadığını kontrol etmemiz gerekir ve değilse değeri kaydetmemiz gerekir. Daha sonra açıklayacağım işlevi çağırmamın nedeni budur: rc_is_user_bedged ():
/ ** * lastik kullanıcısı * * @access public * @Since 1.0 * @return void */ function rc_ban_user ($ user_id) {$ eski_status = rc_is_user_bedged ($ user_id); // (! $ Old_Status) {update_user_option ($ user_id, ‘rc_bedged’, true, false) durumunu güncelleyin; }} Adım 4: Kullanıcı Yasağını Sil Aşağıdaki işlev az önce yaptığımızın tam tersidir: “Kullanıcının Yasağını İptal Etme” yeteneği vermeliyiz:

/ ** * un-ban kullanıcı * * @Access public * @since 1.0 * @return void */ function rc_unban_user ($ user_id) {$ eski_status = rc_is_user_bedged ($ user_id);// ($ Old_Status) {update_user_option ($ user_id, ‘rc_bedged’, false, false) durumunu güncelleyin;}} Adım 5: Kullanıcı yasak mı?Kullanıcının bloke olup olmadığını kontrol etmek için RC_IS_USER_BANTED () adlı bir işlevi kullandığımıza RC_BAN_USER () ve RC_UNBAN_UUSERS () ‘ye bakıyoruz.Yapalım: / ** * Bir kullanıcının zaten yasaklanıp yasaklanmadığını kontrol eder * * @access public * @Since 1.0 * @return void * / function rc_is_user_bedged ($ user_id) {return get_user_option (‘rc_bedged’, $ user_id, false);} Temel olarak, bu işlev yalnızca RC_BAN_USER () ‘de depolanan seçenek değerini geri yükler. Şu anda kullanıcı sürümü sayfasında şöyle olması gereken yeni bir onay kutumuz var:
Son adım, tıkanmış kullanıcının oturum açmasını önlemek için işlevi giriş formuna bağlamaktır. Adım 5: Girmek için engellenen kullanıcıların “wp_authenticate_user” adlı varsayılan bir WordPress filtresi kullanmamız gerekir. Bu filtre için “rc_authenticate_user ()” adlı bir işlevi bağlayacağız. Bu işlev WP_ERROR sınıfını kullanacaktır. / ** * Oturum açma işlemi sırasında kullanıcının kilitlenip kilitlenmediğini kontrol edin * * @access public * @Since 1.0 * @return void */ function rc_authenticate_user ($ kullanıcı) {if (is_wp_error ($ user)) {return $ user; } // Kullanıcı hesabı yasaklanmışsa döndürme hatası $ BANED = get_user_option (‘rc_bedged’, $ user-> id, false); if ($ banged) {yeni wp_error (‘rc_bedged’, __ (‘ hata : bu kullanıcı hesabı devre dışı bırakıldı.’, ‘RC’); } dönüş $ kullanıcı; } Şimdi, yalnızca bir filtre eklememiz gerekiyor: add_filter (‘wp_authenticate_user’, ‘rc_authenticate_user’, 1);
Kullanıcı Profili Sürümü sayfasına bir onay kutusu ekleyen bir eklenti yaparız. Değeri onay kutusundaki depolamak için ikinci işlevi kullanırız ve WordPress kullanıcılarını ve diğerlerini kullanıcının kilidini açmasını yasaklamak için bir işlev oluştururuz. Ayrıca, kullanıcının engellenip engellenmediğini kontrol etmek için küçük bir işlev yaparız. Ve son olarak, varsayılan WordPress WP_ERROR sınıfını kullanarak işlevi “wp_authenticate_user” filtresine bağlarız. Github’da Komple Kodu İndirin


admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir