Translate

Как создать свою логин-форму в Wordpress

Как создать свою логин-форму в Wordpress

Здравствуйте уважаемые читатели!


В этой статье поговорим о том как создать свою логин форму.

Для чего это нужно?

Давайте обратимся к статье о создании плагина на Wordpress (часть 2).

Кратенько перескажу ее содержимое:

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

Коснемся последнего пункта. А что если вместо сообщения которое увидят незалогиненые пользователи показывать форму для входа? Это очень несложно сделать. Примеров в Сети - масса.

Итак:

Согласно заданию нам нужно выводить форму только на указанной странице незалогиненным пользователям.

Фрагмент кода из предыдущей статьи:




function no_login_message_func( $content ) {
  
  $message = '';
  $out = $content;
  if( is_page(49) && !is_user_logged_in() ) {
   $out = get_option('no_login_message');
  }

  return $out;
 }
 add_filter( 'the_content', 'no_login_message_func' );


Что означает, если посетитель зашел на страницу с ID = 49 незалогиненным, то покажем ему сообщение которое мы задали в админ части, из нашей опции.

И вот подставим вместо сообщения нашу логин форму.

Для начала создадим функцию, которая позволит нам выводить форму при помощи шорткода:



add_shortcode('my_plugin_login_form','my_login_form');

function my_login_form () {
 return wp_login_form(array('echo'=>false,'form_id'=>'my_form'));
}



И уже в предыдущей функции изменим код на:



function no_login_message_func( $content ) {
  
  $message = '';
  $out = $content;
  if( is_page(49) && !is_user_logged_in() ) {
   $out = "".get_option('no_login_message')."


   
".do_shortcode('[my_plugin_login_form]')."
"; } return $out; } add_filter( 'the_content', 'no_login_message_func' );


Результат вы увидите в браузере.


как создать логин форму на wordpress

О том, как получить список страниц и их ID, чтобы не вводить вручну в коде - поговорим в следующей статье!

Спасибо за внимание!