Pregunta

Estoy buscando una manera fácil de colocar el formulario de registro del usuario en el front-end de un sitio de WordPress. Ya he usado wp_login_form () para colocar el formulario de inicio de sesión en la parte delantera, pero ahora necesito hacer lo mismo con el formulario de registro.

¿Algunas ideas?

¿Fue útil?

Solución

Jeff Starr escribió un gran tutorial sobre el registro de front-end, el inicio de sesión y la recuperación de contraseña
adoptando el enfoque similar al sugerido por Onetrickpony. Así que tome esto como un seguimiento de su respuesta y como otro recurso que podría ayudarlo a hacerlo:
http://digwp.com/2010/12/login-register-password-code/

Ahora tiene dos ejemplos sobre cómo codificar esto usted mismo y confiar en mí, definitivamente vale la pena hacerlo de esta manera (su propia). No es tan difícil y te da libertad, flexibilidad y reutilización que no puede ofrecer ningún complemento.

Otros consejos

En caso de que quieras manejar esto tú mismo, esto es lo que uso:

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;
}

El código es casi idéntico al de la página de registro del usuario.

Luego agregue su formulario en su plantilla:

<?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>

Puede crear un widget con esto, un código corto o solo la plantilla de página habitual ...

Gravity Forms es el mejor complemento de formulario de contacto para WordPress, IMO. Hay una versión más nueva, en beta, tiene un complemento de registro de usuario. Lo he probado y funciona muy bien. Sin embargo, le costará ... cuesta $ 199 para una licencia de desarrollador.

Página de precioshttp://www.gravityforms.com/purchase-gravity-forms/

Publicación de blog Hablando sobre el complemento de registro del usuariohttp://www.gravityhelp.com/

Recomiendo este complemento a la comunidad de WordPress.

Especificaciones detalladas:

Estas son algunas de las características del complemento de registro del usuario:

  • Registro del usuario: configure un formulario para registrar a un usuario mapeando sus campos de formulario en campos de registro de usuario disponibles en WordPress.
  • Meta del usuario: meta datos del usuario fácilmente como bio, ID de mensajería instantánea, primer nombre, apellido y meta de usuario personalizado para sus necesidades.
  • Integración de BuddyPress: pueblas datos de campo de perfil de BuddyPress como parte del proceso de registro del usuario. Actualmente trabaja con BuddyPress V1.2.6.
  • Integración de pagos: requiere un pago antes de que ocurra el registro del usuario. Incluye soporte para suscripciones de PayPal y cambiar el rol del usuario o eliminar al usuario si se cancela la suscripción.
  • Campo de contraseña: el complemento de registro del usuario agrega un campo de contraseña a los formularios de gravedad para su uso en sus formularios. El campo de contraseña incluye una opción de confirmación, así como una opción de verificación de resistencia de contraseña incorporada.
  • Post Autor: integre el complemento de registro del usuario y la creación de publicaciones en un solo formulario para que el autor de la publicación creada sea el usuario registrado por el complemento.
  • Creación del sitio: cree automáticamente un sitio en una instalación de WordPress Network (Multi Site) y asigne a los usuarios recién creados como administrador para el Sitio.

Pruebe el complemento de inicio de sesión de SimpleModal. Permite el registro e inicio de sesión (debe habilitar el registro del usuario), y tiene un aspecto muy agradable.

Puedes utilizar Tema mi inicio de sesión enchufar

Aquí hay una manera agradable y fácil de hacer esto:

Copie los nombres de campo y cualquier otra cosa del formulario de registro actual de WordPress. Asegúrese de que su formulario personalizado tenga los mismos campos de nombre, incluidos los ocultos y luego simplemente apunte a la acción de formulario a la URL de registro adecuada: http://www.yourblog.com/wp-login.php?action=register - Luego, es posible que desee cambiar la forma en que el formulario se redirige después del registro también si no le gusta cómo se maneja.

También existe este complemento llamado Insite Sogin que le permite colocar el formulario de registro, el formulario de inicio de sesión y otros en páginas en su sitio: http://wordpress.org/extend/plugins/insitelogin/

Sin embargo, la primera solución debe hacer lo que quiere que haga.

En caso de que necesite más campos en su formulario de registro, puede usar el Complemento de creador de perfil

Le permite personalizar su sitio web agregando formularios front-end para iniciar sesión, registrar y editar perfil mediante el uso de códigos cortos.

Licenciado bajo: CC-BY-SA con atribución
scroll top