Formulario de registro de front-end

12

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

¿Alguna idea?

    
pregunta Pippin 17.01.2011 - 21:48

7 respuestas

6

Jeff Starr escribió un excelente tutorial sobre el registro de usuario, el inicio de sesión y la recuperación de contraseñas
adoptando un enfoque similar al sugerido por onetrickpony . Entonces, tome esto como un seguimiento de su respuesta y como otro recurso que podría ayudarlo a hacerlo:
enlace

Ahora tienes dos ejemplos de cómo codificar esto tú mismo y créeme, definitivamente vale la pena hacerlo de esta manera (la tuya). No es tan difícil y te da libertad , flexibilidad y reutilización que ningún complemento puede ofrecer.

    
respondido por el Michal Mau 18.01.2011 - 21:11
3

en caso de que quieras manejar esto por ti 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 de usuarios.

luego agrega tu formulario en tu 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 este, un shortcode o solo la plantilla de página habitual ...

    
respondido por el onetrickpony 18.01.2011 - 04:02
2

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

página de precios enlace

Publicación del blog sobre el complemento de registro de usuarios. enlace

Recomiendo este complemento a la comunidad de WordPress.

Especificaciones detalladas:

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

  • Registro de usuario: configure un formulario para registre un usuario mapeando su formulario campos para registro de usuario disponible campos en WordPress.
  • Meta del usuario: rellene fácilmente la meta del usuario Datos como bio, mensajería instantánea. Id, nombre, apellido y también usuario personalizado meta para satisfacer sus necesidades.
  • Integración de BuddyPress - Rellenar Datos de campo de perfil de BuddyPress como parte del proceso de registro de usuario. Actualmente trabaja con BuddyPress. v1.2.6.
  • Integración de pagos - Requerir una pago antes de registro de usuario ocurre. Incluye soporte para PayPal Suscripciones y cambio de usuario. rol o eliminar el usuario si el se cancela la suscripción.
  • Campo de contraseña - El usuario El complemento de registro agrega una contraseña campo a formas de gravedad para uso en sus formas El campo de contraseña Incluye una opción de confirmación, como así como una fuerza de contraseña incorporada opción de verificador.
  • Publicar autor - Integrar el usuario Adición de registro y creación posterior en una sola forma para que el autor De la publicación que se crea es la usuario registrado por el complemento.
  • Creación del sitio - Crear automáticamente un sitio en una red de WordPress (multi-sitio) instalar y asignar el los usuarios recién creados como el Administrador del sitio.
respondido por el Carson 18.01.2011 - 03:16
1

Prueba el complemento de inicio de sesión simplemodal. Permite el registro y el inicio de sesión (tiene que habilitar el registro de usuario), y tiene un aspecto muy agradable.

    
respondido por el Lynne 17.01.2011 - 22:41
0

Puede usar Theme My Login

    
respondido por el Tareq 17.01.2011 - 22:52
0

Esta es una forma fácil y fácil de hacer esto:

Copie los nombres de los campos y otras cosas 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 la acción del formulario a la url de registro adecuada: enlace : 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 Login que le permite colocar el formulario de registro, el formulario de inicio de sesión y otros en las páginas de su sitio: enlace

La primera solución debería hacer lo que quieras que haga.

    
respondido por el Dwayne Charrington 18.01.2011 - 03:52
0

En caso de que necesite más campos en su formulario de registro, puede usar plugin Profile Builder

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

    
respondido por el Cristian Dumitru Antohe 13.04.2011 - 13:24

Lea otras preguntas en las etiquetas