Скрыть страницу профиля для пользователей (на закрытом сайте)

Привет, дорогой читатель!

Сегодня в заметке я хочу поделиться несколькими полезными сниппетами (функциями) для вставки в файл functions.php вашей темы, которые могут помочь вам решить некоторые проблемы. Одна из таких проблем - как скрыть профиль пользователя в WordPress. То есть, если вы на своем сайте активировали возможность регистрации пользователей, то таким образом вы открыли им возможность заходить в админку вашего сайта. Но, поскольку пользователи после регистрации попадают в группу "Пользователь", то их возможности в админке ограничены только просмотром и редактированием собственного профиля.

Так вот, некоторые владельцы сайтов хотят иногда отключить и эту возможность, а также скрыть все ее следы (ссылки в меню и админ-баре), чтобы пользователи лишний раз не отвлекались на бесполезные страницы. Поэтому ниже, я публикую код, который поможет вам скрыть страницу профиля в админке для "Пользователей" и убрать ссылки на эту страницу. А также после этого кода вы найдете несколько других полезных функций с описанием.

Итак, основное решение:

function gb_disable_user_profile() {
 if( IS_PROFILE_PAGE === true )
 {
  wp_die( 'Пожалуйста, свяжитесь с администрацией сайта, если хотите отредактировать свой профиль.' );
 }

 remove_menu_page( 'profile.php' );
 remove_submenu_page( 'users.php', 'profile.php' );
}
add_action( 'admin_init', 'gb_disable_user_profile' );

if( !current_user_can('activate_plugins') )
{
function gb_admin_bar_render() {
 global $wp_admin_bar;
 $wp_admin_bar->remove_menu('edit-profile', 'user-actions');
}
add_action( 'wp_before_admin_bar_render', 'gb_admin_bar_render' );
}

А теперь, несколько полезных функций, которые также связаны с авторизацией, регистрацией и чем-то похожим.

#1 Перенаправление, редирект на главную страницу сайта после авторизации

Примечение: Если хотите, чтобы для вас, как для администратора, это перенаправление не работало, то раскомментируйте (уберите символы //) строчки 3, 5, 7, где эти символы есть.

function gb_login_redirect( $redirect_to, $user )
{
 //global $user;

//if ( $user->user_login != 'admin' ){
 $redirect_to = '/';
 //}

return $redirect_to;
}
add_filter( 'login_redirect', 'gb_login_redirect', 10, 3 );

#2 Увеличить срок истечения авторизации, когда нужно заново входить под своими логином и паролем

Примечание: 31556926 - год в секундах

function gb_keep_me_logged_in( $expirein ) {
 return 31556926;
}
add_filter( 'auth_cookie_expiration', 'gb_keep_me_logged_in' );

#3 Убрать все виджеты в админке WordPress, в разделе Консоль - Главная

function gb_remove_dashboard_widgets() {
 remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' ); //Quick Press widget
 remove_meta_box( 'dashboard_recent_drafts', 'dashboard', 'side' ); //Recent Drafts
 remove_meta_box( 'dashboard_primary', 'dashboard', 'side' ); //WordPress.com Blog
 remove_meta_box( 'dashboard_secondary', 'dashboard', 'side' ); //Other WordPress News
 remove_meta_box( 'dashboard_incoming_links','dashboard', 'normal' ); //Incoming Links
 remove_meta_box( 'dashboard_plugins', 'dashboard', 'normal' ); //Plugins
}
add_action('wp_dashboard_setup', 'gb_remove_dashboard_widgets');

На этом сегодня все. Но я предлагаю вам, если у вас есть похожие полезные сниппеты/функции, выкладывать их в комментариях под этой статьей и также писать о том, помогла ли вам какая-то функция или нет.

Успехов в изучении WordPress!

Богдан Григорук

[ Прочитайте комменты ниже или напишите свой... ]

Ищете хостинг для своего сайта? Могу порекомендовать свой (нажмите здесь)

2 комментария к “Скрыть страницу профиля для пользователей (на закрытом сайте)”

  1. Иван 15.04.2015 в 21:57 #

    Богдан, привет!
    После установки вашего плагина GB Under Construction
    нашёл в папке temp темы сайта маленький текстовый документ )))

    А в нём такие слова: _shell_atildi_by iskorpitx
    Fuck all the lammer 🙂

    Это как расценивать?

    Я допускаю, что это не ваши проделки.
    Но вышеуказанный плагин выводит на экран кракозябры. Как исправить кодировку?

    А вообще, очень стрёмно с вами иметь дело, потому, что кроме этих комментов, никакой другой обратной связи нет.... Кто такой этот Богдан? Делает, чтобы сайты не работали, а потом героически "чинит" их...

    Опровергните мои слова, или я начну действовать на снижение вашей репутации в интернете. Не шучу. Если я не прав - принесу свои извинения.

    • Богдан 17.04.2015 в 17:43 #

      Здравствуйте, Иван.

      Это нужно расценивать как доказательство, что ваш сайт был так или иначе взломан до установки плагина GB Under Contruction.

      Также в коде плагина вы не найдете ни одной функции, которая бы изменяла, создавала, скачивала какие-либо файлы.

      И также, если вы пробьете в гугле ник "iskorpitx", то узнаете об этой личности много интересного 🙂

      Всего доброго.

      P.S. На этом блоге есть мои почта и скайп даже, просто их надо найти.