Formulario de registro frontal

13

Estoy buscando una manera fácil de colocar el formulario de registro de 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 el front end, pero ahora necesito hacer lo mismo con el formulario de registro.

¿Algunas ideas?

Reineta
fuente
Lo sentimos, pero ¿qué quieres decir con "front-end"? Creo que entiendo lo que significa front-end y back-end, pero no entiendo cómo puede colocar un formulario en otro lugar que no sea el front-end. ¿Te refieres a la primera página?
Mads Skjern

Respuestas:

7

Jeff Starr escribió un gran tutorial sobre el registro front-end, el inicio de sesión y la recuperación de contraseña
con 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 de cómo codificar esto usted mismo y confiar en mí: definitivamente vale la pena hacerlo de esta manera (a su manera). No es tan difícil y le brinda libertad , flexibilidad y reutilización que ningún complemento puede ofrecer.

Michal Mau
fuente
4

en caso de que quiera manejar esto usted 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>

puedes crear un widget con esto, un shortcode o simplemente la plantilla de página habitual ...

Pony de un solo truco
fuente
Se ve genial, aunque no parece funcionar. Sin embargo, he encontrado un complemento que funciona muy bien, así que gracias por la ayuda.
Pippin
funciona para mí, pero creo que debe cambiar home_url()con la URL de la página actual porque mi código asume que el formulario está en la página de inicio. He publicado una get_current_page_url()función aquí en otra pregunta, sin embargo, no recuerdo cuál
onetrickpony
2

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

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

Publicación de blog que habla sobre el complemento de registro de usuario http://www.gravityhelp.com/

Recomiendo este complemento a la comunidad de WordPress.

Especificaciones detalladas:

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

  • Registro de usuario: configure un formulario para registrar un usuario asignando sus campos de formulario a los campos de registro de usuarios disponibles en WordPress.
  • Meta del usuario: complete fácilmente los metadatos del usuario, como la biografía, la identificación de mensajería instantánea, el nombre y el apellido, así como los meta de usuario personalizados para satisfacer sus necesidades.
  • Integración de BuddyPress: complete los datos de campo del perfil de BuddyPress como parte del proceso de registro de usuarios. Actualmente funciona con BuddyPress v1.2.6.
  • Integración de pago: requiere un pago antes de que se produzca el registro del usuario Incluye soporte para suscripciones de PayPal y cambio de la función del usuario o eliminación del usuario si se cancela la suscripción.
  • Campo de contraseña: el complemento de registro de usuario agrega un campo de contraseña a Gravity Forms para usar en sus formularios. El campo Contraseña incluye una opción de confirmación, así como una opción de verificación de seguridad de contraseña incorporada.
  • Autor de publicación: integre el complemento de registro de usuario y la creación de publicación en un solo formulario para que el autor de la publicación que se crea sea el usuario registrado por el complemento.
  • Creación del sitio: cree automáticamente un sitio en una instalación de red de WordPress (multisitio) y asigne a los usuarios recién creados como Administrador del sitio.
Carson
fuente
1

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

Lynne
fuente
Cerca, pero no exactamente lo que necesito. Necesito algo que pueda colocar en mi plantilla existente.
Pippin
Sí ... yo ... ¿Cómo no puedes poner eso en tu plantilla?
Lynne
Aquí hay un sitio que acabo de terminar de diseñar usando el inicio de sesión simplemodal . Purevapes.com tenga en cuenta los enlaces de registro e inicio de sesión en la parte superior. El usuario nunca es retirado del front-end del blog. Puede incorporarlos usando un código HTML simple en su plantilla, y redirigen al usuario a la página principal en lugar del panel de administración. Así que no estoy seguro de cómo esto no se puede 'soltar' en ninguna plantilla.
Lynne
Quise decir "caído" como incluido en la página real, no como una ventana modal. Aquí está el complemento que acabo de encontrar para hacerlo: wordpress.org/extend/plugins/simplr-registration-form
Pippin
Ah, ya veo. Ni siquiera se me pasó por la cabeza que la ventana modal presentaría un problema, pero ahora puedo ver dónde hay un lugar para eso y no. Gracias por el enlace del complemento, arrojándolo en mi arsenal. Me alegra que hayas encontrado tu respuesta :)
Lynne
0

Puede usar el complemento Theme My Login

Tareq
fuente
Parece que su complemento podría funcionar muy bien, excepto que no puedo hacer que el formulario de registro funcione. El formulario de inicio de sesión se muestra bien, pero cuando trato de ir al formulario de registro, me lleva al predeterminado de WordPress. ¿Hay alguna manera de mostrar el formulario de registro en la página?
Pippin
Ese no es mi complemento. Escribí: P
Tareq
0

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 la acción del formulario a la url de registro adecuada: http://www.yourblog.com/wp-login.php?action=register : es posible que desee para 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: http://wordpress.org/extend/plugins/insitelogin/

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

Dwayne Charrington
fuente
0

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

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

Cristian Dumitru Antohe
fuente