Agregue el campo personalizado "Bucle" al formulario de registro de WordPress
Si en algún momento se tomó la molestia de añadir más campos a un formulario de inscripción de WordPress ya tradicional, ¡este es el lugar para usted!
En este articulo Loopeando.com veremos:
- De qué forma cambiar el registro
- Cómo personalizar la visión parte trasera
- ¿De qué manera? 'O' ¿Qué positivo usuario
- Hay otra ventaja: cómo hacer individuos a través de código y darles campos customizados.
¡Gasta, disfruta, aprende y comparte!
WordPress utiliza dos tablas para almacenar la información de registro del usuario:
- wp_users: Para datos importantes, como contraseña, autorización, nombre de usuario ...
- wp_usermeta: Para otros datos, como redes sociales, direcciones, campos establecidos por el usuario ...
Tiene lo siguiente Actividad (acción) Indica dónde aparecerá el nuevo campo que deseamos agregar. Sí:
- edit_user_profile: Haga esto solo en el momento en que el usuario esté observando el perfil de otro usuario que tenga privilegios de edición. Ejemplo: en el momento en que el administrador modifica el fichero de configuración de otro usuario.
- show_user_profile: Solo en el momento en que el usuario está corriendo conexión Es la persona que publica su información personal.
En consecuencia, nuestro campo personalizado se crea y almacena en wp_usermeta, Y solo vamos a usar wp_users En el momento en que creamos dinámicamente un nuevo usuario.
con acción El contenido que utilizamos es dependiente de si deseamos que estos campos se hagan ver solo a administradores, usuarios, etc.
Observemos algunos ejemplos.
Siempre y en todo momento lo mismo Campo personalizado Haciendo formulario de inscripción:
En este caso, se crean 3 nuevos campos: "Población", "Provincia" y "Teléfono".
Y el código que lo torna posible es:
['user_town'] )) $ fallo-> add ('user_town_error', __ (' Error : Ingrese su ciudad ')); return $ fallo; add_filter (' register_errors ',' validate_user_fields ', 10, 3); // // Guarde los otros campos en la función de banco de información save_user_fields ($ user_id) if (isset ($ _POST)['user_town'])) update_user_meta ($ user_id, 'user_town', sanitize_text_field ($ _ POST['user_town'])); if (isset ($ _ POST['user_province'])) update_user_meta ($ user_id, 'user_province', sanitize_text_field ($ _ POST['user_province'])); if (isset ($ _ POST['user_phone'])) update_user_meta ($ user_id, 'user_phone', sanitize_text_field ($ _ POST['user_phone'])); add_action ('user_register', 'save_user_fields') ;? >
1 pieza 2 habitaciones 3 cuarto puesto 5 Sexto lugar Séptimo lugar octavo rincón 9 diez 11 duodécimo 13 14 quince dieciséis 17 18 19 Vigésimo 21 años 22 Veintitres veinticuatro 25 26 27 28 años 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
// Agregaremos otros campos al formulario de registro Caracteristicas add_fields_to_users_register_form(() $ user_town = (( comer(( $ _POST['user_town'] ) ) ? $ _POST['user_town'] :: '';; $ user_province = (( comer(( $ _POST['user_province'] ) ) ? $ _POST['user_province'] :: '';; $ user_phone = (( comer(( $ _POST['user_phone'] ) ) ? $ _POST['user_phone'] :: '';;? > <pag> <etiqueta A="Ciudad_usuario">poblaciónOhno<br /.> <Entrada arte="artículo" yo voy="Ciudad_usuario" apellido="Ciudad_usuario" clasificar="Entrada" Tamaño="25" valor=" eco esc_attr(($ user_town);;? >"></.etiqueta> </.pag> <pag> <etiqueta A="User_province">Provincia<br /.> <Entrada arte="artículo" yo voy="User_province" apellido="User_province" clasificar="Entrada" Tamaño="25" valor=" eco esc_attr(($ user_province);;? >"></.etiqueta> </.pag> <pag> <etiqueta A="User_phone">número de teléfonoo seaContexto<br /.> <Entrada arte="digital" yo voy="User_phone" apellido="User_phone" clasificar="Entrada" Tamaño="25" valor=" eco esc_attr(($ user_phone);;? >"></.etiqueta> </.pag> } add_action(('formulario_registro', 'add_fields_to_users_register_form' );; // También validamos los controles Caracteristicas validate_user_fields (($ error, $ sanitized_user_login, $ user_email) en caso de que (( vacío(( $ _POST['user_town'] ) ) $ error->añadir(( 'user_town_error', __ __((" Error : Por favor ingrese su localidad ") );;
volver PS Error;; }} Añadir filtro(('register_errors', 'validate_user_fields', diez, 3);; // Guardamos otros campos en la banco de información Caracteristicas save_user_fields (($ ID de usuario) caso de que (( comer(($ _POST['user_town']) ) update_user_meta(($ user_id, "Ciudad_usuario", sanitize_text_field(($ _POST['user_town']));;
caso de que (( comer(($ _POST['user_province']) ) update_user_meta(($ user_id, "User_province", sanitize_text_field(($ _POST['user_province']));; } en el caso de que (( comer(($ _POST['user_phone']) ) update_user_meta(($ user_id, "User_phone", sanitize_text_field(($ _POST['user_phone']));; } }} add_action(('user_register', 'save_user_fields');;? > |
En otro ejemplo agregaremos El nombre y la fecha de nacimiento de su hijo::
Cuyo código es:
// Añadimos otros campos a su perfil y editamos la función de usuario add_custom_fields_to_users ($ user) $ childname1 = esc_attr (get_the_author_meta ('event_nomchild1', $ usuario-> ID)); $ datechild1 = esc_attr (get_the_author_meta ('event_datild1', $ usuario-> ID)) ;? >
pequeños
['event_nomhijo1'])) update_user_meta ($ user_id, 'event_nomhijo1', sanitize_text_field ($ _ POST['event_nomhijo1'])); if (isset ($ _ POST['event_fechahijo1'])) update_user_meta ($ user_id, 'event_fechahijo1', sanitize_text_field ($ _ POST['event_fechahijo1'])); add_action ('personal_options_update', 'save_user_fields'); add_action ('edit_user_profile_update', 'save_user_fields');
1 parte 2 habitaciones 3 cuarto puesto 5 Sexto lugar Séptimo lugar octavo sitio 9 diez 11 duodécimo 13 14 quince dieciséis 17 18 19 Vigésimo 21 años 22 Veintitres veinticuatro 25 26 27 28 años 29 30 31 32 33 34 35 36 37 38 39 40 |
// Agregamos otros campos a tu perfil y modificamos los usuarios Caracteristicas add_custom_fields_to_users(( PSusuario ) PSnomson1 = esc_attr(( get_the_author_meta(( 'event_nomhijo1', PSusuario->yo voy ) );; PSfechahijo1 = esc_attr(( get_the_author_meta(( 'event_fechahijo1', PSusuario->yo voy ) );; ?> <div clasificar="Children_colorea" estilo="Color de fondo: sopa espesa! Importante; relleno: 50px! Importante;"> <33>Él@s</.33>
<Junta clasificar="Formas"> <TR> <día><etiqueta A="Ciudad_usuario">1 piezaº apellido Él@</.etiqueta></.día> <re><Entrada arte="artículo" apellido="Event_nomhijo1" yo voy="Event_nomhijo1" clasificar="Texto normal" valor=" eco $ childname1;;? >" /.></.re> </.TR> <TR> <día><etiqueta A="Ciudad_usuario">1 parteº Con fecha de Nació</.etiqueta></.día> <re><Entrada arte="artículo" apellido="Event_fechahijo1" yo voy="Event_fechahijo1" clasificar="Artículo habitual" valor=" eco $ fechahijo1;;? >" /.> </.re> </.TR> </.Junta> </.div> <?PHP } add_action(( "Show_user_profile", 'add_custom_fields_to_users' );; add_action(( "Edit_user_profile", 'add_custom_fields_to_users' );; // Guardamos los datos personalizados // Guardamos otros campos en función de los datos Caracteristicas save_user_fields ((PSIdentificación de usuario) en caso de que (( comer((PS_postal['event_nomhijo1']) ) update_user_meta((PSIdentificación de usuario, 'event_nomhijo1', sanitize_text_field((PS_postal['event_nomhijo1']));;
en caso de que (( comer((PS_postal['event_fechahijo1']) ) update_user_meta((PSIdentificación de usuario, 'event_fechahijo1', sanitize_text_field((PS_postal['event_fechahijo1']));; } }} add_action(( 'personal_options_update', 'save_user_fields' );; add_action(( "edit_user_profile_update", 'save_user_fields' );; |
Ellos pueden ser colocado directamente functions.php Respecto al tema de su evento, pero no es recomendable porque:
- Una especie de Error de código Esto afectará la estabilidad de toda la red.
- aluminio Actualiza el tema Puede perder sus cambios.
por lo tanto, nosotros Siempre recomendamos que agregue estas personalizaciones a insertar Tu mismo. En otras palabras, creas un insertar Se convierte en una costumbre que normalmente le agregas código cargado. functions.php
De esta manera, si desea volver a la versión original del tema, simplemente desactive su tema. insertar. Cuando lo activa, el sistema evita la activación cuando se detecta un error fatal que causa 500 errores.
Cómo crear uno insertar Solo ve a la carpeta wp-content-> complemento Y crea un nuevo nombre con el nombre que quieras.
En esta carpeta, use el próximo código para hacer un fichero .php:
1 parte 2 habitaciones 3 cuarto puesto 5 Sexto lugar Séptimo lugar octavo rincón 9 diez 11 duodécimo 13 14 quince dieciséis 17 18 19 Vigésimo 21 años 22 |
/ ** * Nombre del complemento: el nombre del complemento (este nombre se muestra en la lista de complementos) * URI del complemento: https://www.loopeando.com/ * Nota: XXXXX ha desarrollado este complemento para ZZZZZ * Versión: 0.0.1 * Autor: Loopeando.com * Autor URI: https://www.loopeando.com/ * Mínimo: 4.9.2 * Probado: 4.9.2 * * * Campo de texto: wprincipiante-ejemplo * Ruta de dominio: / idioma / * / Estar definido(( "ABSPATH" ) o entonces Este(( "¡Sin trampas!" );; A escala mundial $ wpdb;; / ** * Luego agregue aquí todos los códigos que generalmente se agregan para el archivo functions.php * / ? > |
Online con lo anterior, hemos introducido novedosas funcionalidades:
- El nombre de usuario existe: Compruebe si el usuario existe según las condiciones. Por poner un ejemplo, correo.
- wp_generate_password: Crea una contraseña aleatoria.
- wp_create_user: Agrega un nuevo usuario a la banco de información, tienes que pasar a como el parámetro mucho más bajo nombre del usuario Y contraseña.
- wp_update_user: Actualiza la información de los individuos que ya están.
Podemos utilizar todos estos para producir uno guión Crea individuos de manera activa. Similar a lo siguiente:
// En este caso, compendiamos el nombre, apellido y datos de correo del formulario. Por servirnos de un ejemplo, de la manera gravitacional // //, pero si queremos $ nombre de usuario = str_replace (array ('(', ')', ''), '', esc_attr ($ name)), tenemos la posibilidad de generar automáticamente; $ nombre de usuario = strtolower ($ nombre de usuario); $ email_address = $ correo electrónico; // Comprobamos si ahora hay otros clientes usando este correo, por el hecho de que es el id de ingreso, y si (null == username_exists ($ email_address)) / / Generamos una contraseña $ password = wp_generate_password (12 fallos), nombre de usuario debe ser único; // Creamos un usuario y obtenemos su ID $ user_id = wp_create_user ($ email_address, $ password, $ email_address); // Sobre ahora Para el usuario creado, actualizamos ciertos datos, como el nombre de usuario (pseudo) wp_update_user (Array ('ID' => $ user_id, 'First' '=> $ name,' Last name '=> $$ Apellido, 'Nombre para mostrar') => $ nombre. "". $ Nombre, "apodo" => $ dirección_de_correo electrónico)); // Todos los clientes deben tener un rol. En este caso, el suscriptor es $ usuario = new WP_User ($ user_id); $ usuario-> set_role ('Suscriptor'); global $ wpdb; // Agregamos campos personalizados en wp_usermeta. $ Wpdb-> insert ('wp_usermeta', Array ('user_id' => $ user_id, 'meta_key' => 'event_nomchild1', 'meta_value' => $ childname1))); $ wpdb-> insert ('wp_usermeta', Array ('user_id' => $ user_id, 'meta_key' => 'event_datechild1', 'meta_value' => $ datechild1)); // Enviamos un e-mail para ofrecerle la bienvenida y proporcionarle la contraseña generada $ To = $ email_address ;. $ subject = "¡Felicitaciones! Termina de dar el primer paso para prosperar su vida"; $ body = 'A partir de ahora, nuestro equipo de expertos evaluará su forma original para que se ajuste mejor a sus necesidades.
Si pide una cita por teléfono, le enviaremos una confirmación justo después de la confirmación. Al tiempo, se puede utilizar la siguiente información para acceder a su plataforma:
Mail:'. $ Dirección de e-mail.
Contraseña: '. $ contraseña. '
Si tiene alguna pregunta, siempre nos encontramos a su servicio. '; $ encabezados = matriz ('tipo de contenido: texto / html; juego de letras y números = UTF-8'); wp_mail ($ para, $ asunto, $ cuerpo, $ encabezados);}
1 parte 2 habitaciones 3 cuarto puesto 5 Sexto rincón Séptimo lugar octavo lugar 9 diez 11 duodécimo 13 14 quince dieciséis 17 18 19 Vigésimo 21 años 22 Veintitres veinticuatro 25 26 27 28 años 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
// En este ejemplo, compendiamos el nombre, apellido y datos de mail del formulario, por servirnos de un ejemplo, con apariencia de gravedad // Pero si deseamos, tenemos la posibilidad de generarlos de manera automática PSnombre del usuario = str_replace((Un gran número(( '(', ')','' ), '', esc_attr((PSapellido));; PSnombre del usuario = mucho más bajo((PSnombre del usuario);; PSDirección de correo = PSCorreo electrónico;; // Verificamos si hay otros individuos en este mail, porque es un identificador de acceso y ha de ser único en el caso de que(( cero == El nombre de usuario existe(( PSE-mail_charla a ) ) // Producimos una contraseña PSla contraseña = wp_generate_password(( duodécimo, Incorrecto );; // Creamos un usuario y obtenemos su nombre de usuario PSIdentificación de usuario = wp_create_user(( PSDirección de e-mail, PSla contraseña, PSCorreo electrónico_charla a );; // Sobre los usuarios que se han desarrollado, actualizamos algunos datos, como los nombres de usuario (apodos) wp_update_user(( Un enorme número(( 'I voy a' => PSIdentificación de usuario, 'Apellido' => PSapellido, 'Apellido' => PSapellido, 'Mostrar nombre' => PSapellido.".PSapellido, 'apodo' => PSCorreo electrónico_habla a ) );;
// Hay que asignar un rol a todos los clientes, en este caso los participantes PSusuario = Nuevo WP_User(( PSusuario_voy a );; PSusuario->set_role(( partícipe );;
A escala mundial PSwpdb;; // Agregamos campos customizados en wp_usermeta PSwpdb->Insertar(( "Wp_usermeta", Un enorme número(( "Identificación de usuario" => PSIdentificación de usuario, 'meta_key' => 'event_nomhijo1', 'meta_valor' => PSnomson1 ) );; PSwpdb->Insertar(( "Wp_usermeta", Un enorme número(( "Identificación de usuario" => PSIdentificación de usuario, 'meta_key' => 'event_fechahijo1', 'meta_valor' => PSfechahijo1 ) );; // Le enviaremos un mail, le daremos la bienvenida a su llegada y le daremos la contraseña generada PSa = PSDirección de e-mail;; PSpropósito = ¡Felicitaciones! Acaba de dar el paso inicial para prosperar su vida. ';; PScuerpo = Desde este momento, nuestro equipo de expertos valorará su forma original para amoldarla mejor a sus necesidades. Si solicita una cita por teléfono, le enviaremos una confirmación inmediatamente después de la confirmación. Al tiempo, se puede emplear la siguiente información para entrar a su interfaz: Mail: '.PSDirección de correo electrónico.' Si tiene alguna pregunta, no dude en contactarnos. ';; PSNoticias del título = Un gran número(("Género de contenido: artículo / HTML; juego de caracteres = UTF-8");; wp_mail(( PSa, PSobjetivo, PScuerpo, PSNovedades del título );; } |
Deja una respuesta