¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Cómo validar un campo de URL de redes sociales en tu formulario

Introducción

¿Quieres validar una URL de red social en tu formulario? Para esta documentación, permitiremos que el usuario introduzca una URL de Twitter y una URL de Facebook, pero queremos poder validar las URL de redes sociales antes de que se envíe el formulario. Para ello, utilizaremos PHP. En este tutorial, te guiaremos a través de los pasos para lograr esto.

Creación del formulario

Primero, necesitarás crear tu formulario. Nuestro formulario incluirá dos campos de 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, revise esta documentación.

añade el campo Sitio web / URL para que tus usuarios introduzcan su URL de red social

Añadir el fragmento

Ahora que has añadido los campos, es hora de añadir el fragmento de código a tu sitio que validará una URL de red social en tu formulario.

Si no estás seguro de cómo o dónde añadir fragmentos a tu sitio, consulta 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, solo estamos usando este fragmento en el ID del formulario 902 y solo en el ID del campo 25, que es el campo de URL de Facebook, y el campo 26, que es el campo de URL de Twitter.

Cuando los usuarios introduzcan un enlace en esos campos que no coincida con lo que se indica en nuestro fragmento de código anterior, verán un error después de haber enviado el formulario.

Necesitarás actualizar los IDs del formulario y de los campos para que coincidan con los de tu sitio. Si necesitas ayuda para encontrar estos IDs, echa un vistazo a este tutorial.

con este fragmento añadido puedes validar fácilmente una URL de red social dentro de tu formulario

¡Y eso es todo! Has podido validar correctamente una URL de red social. ¿Te gustaría también que los usuarios inicien sesión automáticamente una vez que hayan completado el formulario de registro? Echa un vistazo a nuestro artículo sobre Cómo iniciar sesión automáticamente a los usuarios después del registro.

Referencia de acción: wpforms_process

Preguntas frecuentes

P: ¿Puedo añadir LinkedIn a este fragmento?

R: ¡Absolutamente! Para añadir al fragmento anterior para LinkedIn, usa este fragmento y actualiza los IDs del formulario y de los campos para el formulario que estés 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 );