abgx360.net
  • Home
  • Уроци
  • Сигурност
  • Новини и общност
  • Отзиви
RSS

Как да забраним WordPress потребител

07.06.2020 Jeffrey Wilson уроци

Как да забраним WordPress потребител

Преди няколко дни ме помолиха да създам система, която да забрани на WordPress потребител да инсталира. Така че създадох прост плъгин и исках да споделя с вас основите на тази приставка. В този урок ще обхващаме WordPress филтри, действия, управление на колоните на потребителите и още няколко страхотни неща.


Contents

  • 1 Стъпка 1: Създайте приставката
  • 2 Стъпка 2: Добавете отметка в потребителската страница на потребителския профил
  • 3 Стъпка 3: Забраняване на потребителите
  • 4 Стъпка 4: Премахване на забраната на потребителите
  • 5 Стъпка 5: Забранен е потребителят?
  • 6 Стъпка 5: Избягвайте забранените потребители да влизат
  • 7 заключение

Стъпка 1: Създайте приставката

Още веднъж, тук е много сложно, всичко, което трябва да направите, е да създадете нова папка с „wp-content / plugins“, наречена „ban-users“. В тази папка създайте нов файл, наречен „ban-users.php“, отворете го и поставете този код:

Стъпка 2: Добавете отметка в потребителската страница на потребителския профил

Първото нещо, което трябва да направим, е да добавим отметка на всяка страница на изданието на потребителския профил. Когато поставите отметка в това квадратче, тя ще съхранява мета опция на потребителя, която ще показва, че на потребителя вече не е разрешено да влиза в уебсайта си.

Ето кода:

/ **
* Администриране init
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_admin_init () {

// Редактиране на потребителски профил
добавяне ('edit_user_profile', 'rc_edit_user_profile');
добавяне ('edit_user_profile_update', 'rc_edit_user_profile_update');

}
добавяне ('admin_init', 'rc_admin_init');

Този код е просто създаване на повикване към функция, която трябва да създадем сега. Тази функция ще добави отметка към страницата на потребителския профил.

/ **
* Добавя персонализирано квадратче към страницата на потребителското издание
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_edit_user_profile () {
ако (! current_user_can ('edit_users')) {
се върне;
}

глобален $ user_id;

// Потребителят не може да се деактивира
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> ID;
ако ($ current_user_id == $ user_id) {
се върне;
}

// Проверете дали е активирана
$ check = проверен (get_user_option ('rc_banned', $ user_id, false));

// Показване на отметка
ехо '
Забрани потребител
"; }

Сега трябва да имаме функцията, която ще запише в базата данни стойността на квадратчето за отметка:

/ **
* Запазване на потребителски квадрат
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_edit_user_profile_update () {

ако (! current_user_can ('edit_users')) {
се върне;
}

глобален $ user_id;

// Потребителят не може да се деактивира
$ current_user = wp_get_current_user ();
$ current_user_id = $ current_user-> ID;
ако ($ current_user_id == $ user_id) {
се върне;
}

// Ключалка
if (isset ($ _POST ['rc_ban']) && $ _POST ['rc_ban'] = 'on') {
rc_ban_user ($ user_id);
} else {// Отключване
rc_unban_user ($ user_id);
}

}

Както можете да видите, тази нова функция използва две други функции: rc_ban_users () и rc_unban_users (). Имената им са доста изрични, първият ще съхранява в базата данни факта, че потребителят е забранен, вторият ще отключи потребителите.

Стъпка 3: Забраняване на потребителите

Време е да създадете функцията rc_ban_users (). В тази функция трябва да проверим дали дадена стойност вече е запазена, а ако не, трябва да съхраняваме стойността. Това е причината да извикам функция, която ще опиша по-късно: rc_is_user_banned ():

/ **
* Забрани потребител
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_ban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// Актуализиране на състоянието
ако (! $ old_status) {
update_user_option ($ user_id, 'rc_banned', true, false);
}
}

Стъпка 4: Премахване на забраната на потребителите

Следващата функция е обратната като тази, която току-що създадохме: трябва да дадем възможност на „премахване на забрана“ на потребителите:

/ **
* Премахване на забрана на потребителя
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_unban_user ($ user_id) {

$ old_status = rc_is_user_banned ($ user_id);

// Актуализиране на състоянието
ако ($ old_status) {
update_user_option ($ user_id, 'rc_banned', false, false);
}
}

Стъпка 5: Забранен е потребителят?

В rc_ban_users () и rc_unban_users () видяхме, че използваме функция, наречена rc_is_user_banned (), за да проверим дали потребителят е забранен или не. Нека го създадем:

/ **
* Проверява дали потребителят вече е забранен
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_is_user_banned ($ user_id) {
връщане get_user_option ('rc_banned', $ user_id, false);
}

По принцип тази функция просто връща стойността на опцията, запазена в rc_ban_users ().

Понастоящем имаме нова отметка на страницата на потребителското издание, която трябва да харесва това:

ban_users_1

Последната стъпка е да закачите функция към формата за вход, за да избегнете забранените потребители да влизат.

Стъпка 5: Избягвайте забранените потребители да влизат

За целта трябва да използваме филтър по подразбиране на WordPress, наречен „wp_authenticate_user“. Към този филтър ще закачим функция, наречена „rc_authenticate_user ()“. Тази функция ще използва WP_Error клас.

/ **
* Проверете дали потребителят е заключен по време на процеса на влизане
*
* @ достъп публично
* @since 1.0
* @return void
* /
функция rc_authenticate_user ($ потребител) {

ако (is_wp_error ($ потребител)) {
върнете $ потребител;
}

// Грешка при връщане, ако потребителският акаунт е забранен
$ banned = get_user_option ('rc_banned', $ user-> ID, false);
ако ($ забранено) {
върнете нов WP_Error ('rc_banned', __ ('ГРЕШКА: Този потребителски акаунт е деактивиран. ',' Rc '));
}

върнете $ потребител;
}

Сега просто трябва да добавим филтъра:

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

заключение

Създадохме приставка, която добавя отметка към страницата за издание на потребителския профил. Използвахме втора функция, за да съхраним стойността в квадратчето и създаваме функция за забрана на потребител на WordPress и друга на за отключване на потребител. Създадохме и малка функция, за да проверим дали потребителят е забранен или не. И най-накрая закачихме функция към филтъра „wp_authenticate_user“, използвайки стандартния клас WP_Error WordPress.

Ако сте харесали този урок, ще харесате премиум версията на този плъгин: Мениджър на достъпа на потребителите.

Изтеглете пълния код на Github

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    « 2020年至少有30个WordPress主题 » WordPress контролен списък за уебсайтове за предварително стартиране

    Random Posts

    • EHost propose-t-il un paiement mensuel?
    • SiteGround Cloud’i hostingu ülevaade ja plaanide võrdlus (2020)
    • Top WordPress Business SEO Tipps
    • BlueHost MySQL-tietokannan opas
    • Персонализирайте вашия WordPress сайт днес с CSS Hero
    • Nástroje pro úsporu času a triky pro zaneprázdněného uživatele WordPress
    • Как да получите повече социални акции в публикациите си в блога
    • 十大WordPress招聘网站:您有需要吗?
    • Как да направите готова тема за WordPress WooCommerce
    • Drahý deník: Dopis od společnosti WordCamp San Francisco
    • 使用Shopify for WordPress创建在线商店
    • Lader FatCow dig eje dit websted?
    • Как да добавите персонализирани стилове към визуалния редактор на WordPress
    • Com començar amb el desenvolupament de WordPress
    • 从一个Blogger到另一个Blogger成为自由作家的提示
    • Jak prodávat své produkty pomocí WordPress a WooCommerce
    • Jak nastavit AMP v WordPress
    • Aide-mémoire WordPress
    • 如何为WordPress设置Google跟踪代码管理器
    • Com afegir l’autenticació de dos factors per a WordPress
    • So fügen Sie Ihrer WordPress-Site Push-Benachrichtigungen hinzu
    • Voinko aloittaa blogin FatCow-sivustolla?
    • Как да изградим онлайн магазин с WooCommerce & WordPress
    • Suurendage oma saidi kiirust HTTP / 2 abil
    • WordPress.com til WordPress.org
    • Shared vs Cloud Hosting – Welches sollten Sie wählen?
    • Conegui millor el teu públic de WordPress: valoracions importants a tenir en compte
    • Comment traiter les paiements par carte de crédit sur InMotion
    • 5 Wichtige Tipps zur WooCommerce-Buchhaltung
    • Uncanny Automator WordPress插件评论:像Pro一样自动化您的工作流程
    • Plonger dans l’histoire de l’hébergement Web
    • 15 complements per sobrecarregar els vostres comentaris de WordPress
    • Všechno nejlepší k narozeninám WordPress: Důvody, proč vás milujeme
    • Тенденции на WordPress & Уеб дизайн през 2016 г., за да се вълнуваме
    • Jednoduchý plán pro zvýšení zapojení do vašeho blogu WordPress
    • eHost-anmeldelse – anbefales ikke
    • Top 20 WordPress Plugins für Business Websites 2020
    • SiteGround Cloud Hosting Review & Plans Σύγκριση (2020)
    • 15 parasta ilmaista Favicon-generaattoria
    • Consells fàcils per als principiants de WordPress per començar el 2018
    • emaze Review – Hyödyntämällä emaze Online Presentation Technology -tekniikkaa
    • Comentaris de WordPress ens permet ajustar el vostre lloc
    • Jak vytvořit Dropshipping podnikání s WordPress
    • Guia de GoogleDaddy Hosting Review and Guide
    • Selz WordPress Recenze eCommerce Plugin
    • Как социалната търговия може да се възползва от вашия сайт WordPress
    • Quin aspecte tindrà el futur de WordPress?
    • Com escriure millors títols i etiquetes per a WordPress
    • 在AWS中安装WordPress – Amazon Web Services
    • Kas InMotion ühildub Maciga?
    • Jaké widgety WordPress byste měli zobrazit na postranních panelech?
    • Com configurar l’allotjament de núvols de WordPress gestionat per Cloudways
    • WordPress工具包:面向用户和开发人员的WordPress资源
    • SÅDAN SKABER DU EN WEBSITE
    • Recenze ProfileGrid: Snadný způsob, jak vytvořit uživatelské profily
    • Οδηγός WebHostingHub Private WHOIS
    • Com exportar i importar blocs de Gutenberg a WordPress
    • 什么是视差效果?为什么以及如何在您的WordPress网站上使用它
    • 10 Premium WordPress добавки, които трябва да имате
    • HostCats anmeldelse
    • Как да използвате Elementor за изграждане на уебсайтове от разстояние
    • Aprofiteu el futur amb aquests complements de WordPress de l’editor de front-end en línia
    • iThemes Exchange Review: Ist dies der schnellste Weg, um mit WordPress online zu verkaufen?
    • 使用Elementor加快设计过程的提示
    • Kuidas Wixi kasutada (õpetus)
    • WordPress的移动优先索引–它是什么以及如何为它做准备
    • 2020年课程创建的最佳LMS WordPress插件
    • Joomla veebisaidi õpetus
    • SiteGround PayPal -maksu (opas) »Voinko maksaa PayPalilla?
    • 5 hlavních výhod používání CDN pro váš web WordPress
    • WordPress amb PHP 7: per què actualitzar el servidor
    • 15 způsobů, jak zapojit návštěvníky a proměnit je v čtenáře
    • 8 millors missatges de correu electrònic i butlletí de notícies de WordPress 2020
    • Vývojáři WordPress: Jak spravovat klienty noční můry (a políbit je na rozloučenou)
    • So verwalten Sie WordPress-Inhalte mit Admin Columns Pro
    • 6 tècniques de màrqueting de WooCommerce per augmentar les vendes
    • 22 Грешки при преобразуване на убийства на вашия уебсайт WordPress
    • UpdraftPlus преглед – най-добрият безплатен приставка за архивиране на WordPress?
    • Jak spustit globální summit Výuka WordPress
    • 20+ най-добрите приставки за управление на WordPress 2020
    • Създайте прост блог с безплатната тема Zero WordPress
    • Οδηγός Πίνακα Ελέγχου WebHostingHub
    • 5 consells bàsics sobre la comptabilitat de WooCommerce
    • Ison-Britannian parhaat web-hosting-yritykset (tuki ja suorituskyky)
    • Installieren Sie WordPress lokal unter Ubuntu mit LAMP
    • Jak sledovat sociální metriky pro stránky WordPress
    • 如何开始使用WordPress:2020年指南
    • Guide d’hébergement Web pour les débutants
    • Justhost-hosting-arvostelu
    • 123-reg Hosting Review
    • Jak můžete využít svůj blog WordPress, abyste přistáli snů
    • DE: comentaris Opinió sobre els comentaris de WordPress
    • Jak vytvořit web s církví pomocí WordPress
    • Com disminuir el percentatge de rebots al vostre lloc WordPress
    • Kuidas luua oma domeeninime jaoks e-posti kontosid?
    • So verschieben Sie ein Blog von Medium zu WordPress
    • Com organitzar el contingut al vostre lloc web de WordPress
    • 如何使用WordPress扩展您的在线社区
    • Eines gratuïtes per escanejar vulnerabilitats al vostre lloc de WordPress
    • Der hohe Preis für kostenlose WordPress-Plugins

    Follow us

    • facebook
    • twitter
    • dribbble

    ↑

    • Home
    • Уроци
    • Сигурност
    • Новини и общност
    • Отзиви