Фронтальна форма реєстрації


13

Я шукаю простий спосіб розмістити форму реєстрації користувача на передній частині сайту WordPress. Я вже використовував wp_login_form (), щоб розмістити форму входу на передній кінець, але тепер мені потрібно зробити те ж саме з формою реєстрації.

Будь-які ідеї?


Вибачте, але що ви маєте на увазі під "фронтовим". Я думаю, що я розумію, що означає фронт-енд-енд-енд, але я не розумію, як можна розмістити форму деінде, ніж на передній частині. Ви маєте на увазі титульну сторінку?
Mads Skjern

Відповіді:


7

Джефф Старр написав чудовий підручник з питань реєстрації, входу в систему та відновлення пароля,
використовуючи аналогічний підхід, який запропонував onetrickpony . Тож сприймайте це як подальшу відповідь на його відповідь та як інший ресурс, який може допомогти вам виконати:
http://digwp.com/2010/12/login-register-password-code/

Тепер у вас є два приклади, як кодувати це самостійно і довіряти мені - це, безумовно, варто зробити це (власним) способом. Це не так складно, і це дає вам свободу , гнучкість та повторне використання, які жоден плагін не може запропонувати.


4

якщо ви хочете впоратися з цим самостійно, ось що я використовую:

add_action('template_redirect', 'register_a_user');
function register_a_user(){
  if(isset($_GET['do']) && $_GET['do'] == 'register'):
    $errors = array();
    if(empty($_POST['user']) || empty($_POST['email'])) $errors[] = 'provide a user and email';
    if(!empty($_POST['spam'])) $errors[] = 'gtfo spammer';

    $user_login = esc_attr($_POST['user']);
    $user_email = esc_attr($_POST['email']);
    require_once(ABSPATH.WPINC.'/registration.php');

    $sanitized_user_login = sanitize_user($user_login);
    $user_email = apply_filters('user_registration_email', $user_email);

    if(!is_email($user_email)) $errors[] = 'invalid e-mail';
    elseif(email_exists($user_email)) $errors[] = 'this email is already registered, bla bla...';

    if(empty($sanitized_user_login) || !validate_username($user_login)) $errors[] = 'invalid user name';
    elseif(username_exists($sanitized_user_login)) $errors[] = 'user name already exists';

    if(empty($errors)):
      $user_pass = wp_generate_password();
      $user_id = wp_create_user($sanitized_user_login, $user_pass, $user_email);

      if(!$user_id):
        $errors[] = 'registration failed...';
      else:
        update_user_option($user_id, 'default_password_nag', true, true);
        wp_new_user_notification($user_id, $user_pass);
      endif;
    endif;

    if(!empty($errors)) define('REGISTRATION_ERROR', serialize($errors));
    else define('REGISTERED_A_USER', $user_email);
  endif;
}

код майже ідентичний тому, який знаходиться на сторінці реєстрації користувача.

потім додайте форму у свій шаблон:

<?php
  if(defined('REGISTRATION_ERROR'))
    foreach(unserialize(REGISTRATION_ERROR) as $error)
      echo "<div class=\"error\">{$error}</div>";
  // errors here, if any

  elseif(defined('REGISTERED_A_USER'))
    echo 'a email has been sent to '.REGISTERED_A_USER;
?>
<form method="post" action="<?php echo add_query_arg('do', 'register', home_url('/')); ?>">
  <label>
    User:
    <input type="text" name="user" value=""/>
  </label>

  <label>
    Email:
   <input type="text" name="email" value="" />
  </label>

  <label>
    Delete this text:
   <input type="text" name="spam" value="some_crappy_spam_protection" />
  </label>

  <input type="submit" value="register" />
</form>

ви можете створити віджет за допомогою цього, короткого коду або просто звичайного шаблону сторінки ...


Виглядає чудово, хоча, здається, не працює. Я знайшов плагін, який чудово працює, тому дякую за допомогу.
Піппін

працює для мене, але я думаю, що вам потрібно змінити home_url()поточну URL-адресу сторінки, оскільки мій код передбачає, що форма знаходиться на домашній сторінці. Я опублікував get_current_page_url()тут функцію з іншого питання, не пам'ятаю, який з них
onetrickpony

2

Gravity Forms - найкращий плагін для контактної форми для WordPress, IMO. У новій версії, у бета-версії, є надбудова для реєстрації користувача. Я спробував це, і він чудово працює. Це обійдеться вам, хоча ... це 199 доларів за ліцензію розробника.

Сторінка цін http://www.gravityforms.com/purchase-gravity-forms/

Повідомлення в блозі, що розповідає про доповнення для реєстрації користувача http://www.gravityhelp.com/

Я дуже рекомендую цей плагін для спільноти WordPress.

Детальні технічні характеристики:

Ось деякі функції доповнення для реєстрації користувачів:

  • Реєстрація користувача - Установіть форму для реєстрації користувача, зіставивши поля вашої форми на доступні поля реєстрації користувачів у WordPress.
  • User Meta - легко заповнити метадані користувачів, такі як біо, ідентифікатор миттєвих повідомлень, ім’я, прізвище, а також користувацькі мета користувача відповідно до ваших потреб.
  • Інтеграція BuddyPress - заселення даних профілю BuddyPress у рамках процесу реєстрації користувача. В даний час працює з BuddyPress v1.2.6.
  • Інтеграція платежів - вимагайте оплати до того, як відбудеться реєстрація користувача. Включає підтримку підписок PayPal та зміну ролі користувача або видалення користувача, якщо підписка скасована.
  • Поле пароля - Додаток про реєстрацію користувача додає поле "Пароль" у гравітаційні форми для використання у ваших формах. Поле Пароль включає опцію підтвердження, а також вбудований параметр перевірки міцності пароля.
  • Автор публікації - інтегруйте доповнення для реєстрації користувача та створення публікацій в єдиній формі, щоб автор створеної публікації був користувачем, зареєстрованим надбудовою.
  • Створення сайту - Автоматично створювати сайт у мережі WordPress (багатосайт), встановлювати та призначити новостворених користувачів адміністратором сайту.

1

Спробуйте простий модуль для входу. Це дозволяє реєстрацію та вхід (Ви повинні включити реєстрацію користувача), і це дуже приємно виглядає.


Близько, але не зовсім те, що мені потрібно. Мені потрібно щось, що я можу вписати у свій існуючий шаблон.
Піппін

Так .. Я .. Як ти не можеш помістити це у свій шаблон?
Лін

Ось сайт , я тільки що закінчив проектування з використанням SimpleModal журналу в .. purevapes.com відзначають зареєструватися і увійти посилання у верхній частині. Користувача ніколи не відбирають від переднього блогу. Ви можете включити їх за допомогою простого коду HTML у свій шаблон, і вони перенаправлять користувача на головну сторінку замість панелі адміністратора. Тож я не впевнений, як це не можна «скинути» на будь-який шаблон.
Лінь

Я мав на увазі "впав", як включений у фактичну сторінку, а не як модальне вікно. Ось плагін, який я щойно знайшов, щоб це зробити: wordpress.org/extend/plugins/simplr-registration-form
Піппін

А, бачу. Мені навіть не спадало на думку, що модальне вікно поставить проблему, але я зараз бачу, де для цього є місце, а ні. Дякую за посилання на плагін, кидаючи це в мій арсенал. Радий, що ти знайшов свою відповідь :)
Лінн

0

Ви можете використовувати плагін Theme My Login


Схоже, ваш плагін може працювати чудово, за винятком того, що я не можу змусити форму реєстрації працювати. Форма входу відображається прекрасно, але коли я намагаюся перейти до форми реєстрації, це просто переводить мене на Wordpress за замовчуванням. Чи є спосіб просто відобразити форму реєстрації на сторінці?
Піппін

То не мій плагін. Я писав: P
Tareq,

0

Ось приємний і простий спосіб, як я це зробив:

Скопіюйте назви полів та будь-який інший матеріал із поточної реєстраційної форми Wordpress. Переконайтеся, що у вашій спеціальній формі є ті самі поля імен, включаючи приховані, а потім просто вкажіть дію форми на відповідну URL-адресу реєстрації: http://www.yourblog.com/wp-login.php?action=register - тоді ви можете захотіти щоб змінити спосіб переадресації форми після реєстрації, якщо вам не подобається, як вона обробляється.

Також є цей плагін під назвою Insite Login, який дозволяє запустити реєстраційну форму, форму входу та інші на сторінки вашого веб-сайту: http://wordpress.org/extend/plugins/insitelogin/

Перше рішення повинно робити те, що ви хочете, щоб це зробити.


0

Якщо у вашій реєстраційній формі вам потрібно більше полів, ви можете використовувати плагін "Builder профілю"

Це дозволяє вам налаштувати свій веб-сайт, додаючи анкети для входу, реєстрації та редагування профілю через використання шорткодів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.