Introducción
¿Quieres validar una URL de una red social en tu formulario? Para el propósito de esta documentación, vamos a permitir que el usuario introduzca una URL de Twitter y una URL de Facebook, pero queremos la capacidad de validar las URL de los medios sociales antes de que se envíe el formulario, con el fin de hacer esto vamos a utilizar PHP. En este tutorial, vamos a caminar a través de los pasos sobre cómo lograr esto.
Creación del formulario
En primer lugar, tendrá que crear su formulario. Nuestro formulario incluirá dos campos Sitio web / URL. Uno será para una URL de seguimiento de Twitter y el otro para una URL de seguimiento de Facebook.
Si necesita ayuda para crear su formulario, consulte esta documentación.
Añadir el fragmento
Ahora que has añadido los campos, es el momento de añadir el fragmento de código a tu sitio que validará una URL de redes sociales en tu formulario.
Si no está seguro de cómo o dónde añadir fragmentos a su sitio, consulte este tutorial.
/** * Confirm the correct social network link in the form. * * @link https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/ */ function wpf_dev_process_check_social_url( $fields, $entry, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #902. if ( absint( $form_data['id'] ) !== 902 ) { return $fields; } $fb_url = $fields[25][ 'value' ]; $findfb = 'facebook.com'; $find_fb_url = strpos($fb_url, $findfb); if ($find_fb_url === false) { // Check the field ID 25 to make sure it contains facebook.com wpforms()->process->errors[ $form_data[ 'id' ] ] [ '25' ] = esc_html__( 'Please enter a valid Facebook Profile URL.', 'plugin-domain' ); } $twitter_url = $fields[26][ 'value' ]; $findtwitter = 'twitter.com'; $find_twitter_url = strpos($twitter_url, $findtwitter); if ($find_twitter_url === false) { // Check the field ID 26 to make sure it contains twitter.com wpforms()->process->errors[ $form_data[ 'id' ] ] [ '26' ] = esc_html__( 'Please enter a valid Twitter Profile URL.', 'plugin-domain' ); } } add_action( 'wpforms_process', 'wpf_dev_process_check_social_url', 10, 3 );
En el fragmento de código anterior, sólo estamos utilizando este fragmento en el formulario ID 902 y sólo en el campo ID 25 que es el campo URL de Facebook y el campo 26 que es el campo URL de Twitter.
Cuando los usuarios introducen un enlace en esos campos que no coincide con lo que aparece en nuestro fragmento de código anterior, verán un error después de haber enviado el formulario.
Tendrá que actualizar los ID de formulario y de campo para que coincidan con los que tiene en su sitio. Si necesitas ayuda para encontrar estos IDs, por favor echa un vistazo a este tutorial.
Y ya está. Has conseguido validar la URL de una red social. ¿Le gustaría también que los usuarios inicien sesión automáticamente una vez que hayan completado el formulario de registro? Eche un vistazo a nuestro artículo sobre Cómo iniciar sesión automáticamente después de registrarse.
Relacionado
Acción Referencia: wpforms_process
PREGUNTAS FRECUENTES
P: ¿Puedo añadir LinkedIn a este fragmento?
R: ¡Por supuesto! Para añadir al fragmento anterior para LinkedIn, utilice este fragmento y actualice los ID de formulario y de campo para el formulario que esté utilizando.
/** * Confirm the correct social network link in the form. * * @link https://wpforms.com/developers/how-to-validate-a-social-media-url-field-in-your-form/ */ function wpf_dev_process_check_social_url( $fields, $entry, $form_data ) { // Optional, you can limit to specific forms. Below, we restrict output to // form #902. if ( absint( $form_data['id'] ) !== 902 ) { return $fields; } $fb_url = $fields[25][ 'value' ]; $findfb = 'facebook.com'; $find_fb_url = strpos($fb_url, $findfb); if ($find_fb_url === false) { // Check the field ID 25 to make sure it contains facebook.com wpforms()->process->errors[ $form_data[ 'id' ] ] [ '25' ] = esc_html__( 'Please enter a valid Facebook Profile URL.', 'plugin-domain' ); } $twitter_url = $fields[26][ 'value' ]; $findtwitter = 'twitter.com'; $find_twitter_url = strpos($twitter_url, $findtwitter); if ($find_twitter_url === false) { // Check the field ID 26 to make sure it contains twitter.com wpforms()->process->errors[ $form_data[ 'id' ] ] [ '26' ] = esc_html__( 'Please enter a valid Twitter Profile URL.', 'plugin-domain' ); } $linkedin_url = $fields[27][ 'value' ]; $findlinkedin = 'linkedin.com'; $find_linkedin_url = strpos($linkedin_url, $findlinkedin); if ($find_linkedin_url === false) { // Check the field ID 27 to make sure it contains linkedin.com wpforms()->process->errors[ $form_data[ 'id' ] ] [ '27' ] = esc_html__( 'Please enter a valid LinkedIn Profile URL.', 'plugin-domain' ); } } add_action( 'wpforms_process', 'wpf_dev_process_check_social_url', 10, 3 );