Atenção!

Este artigo contém código PHP e destina-se a programadores. Oferecemos este código como cortesia, mas não prestamos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado.

Ignorar

Como Validar um Campo de URL de Rede Social no Seu Formulário

Introdução

Quer validar um URL de rede social no seu formulário? Para efeitos desta documentação, vamos permitir que o utilizador insira um URL do Twitter e um URL do Facebook, mas queremos a capacidade de validar os URLs das redes sociais antes de o formulário ser submetido. Para o fazer, utilizaremos PHP. Neste tutorial, vamos guiá-lo através dos passos sobre como conseguir isto.

Criação do formulário

Primeiro, terá de criar o seu formulário. O nosso formulário incluirá dois campos Website / URL. Um será para um URL de seguimento do Twitter e o outro para um URL de seguimento do Facebook.

Se precisar de ajuda para criar o seu formulário, por favor, reveja esta documentação.

adicione o campo Website / URL para que os seus utilizadores insiram o seu URL de rede social

Adição do trecho de código

Agora que adicionou os campos, é hora de adicionar o trecho de código ao seu site que validará um URL de rede social no seu formulário.

Se não tiver a certeza como ou onde adicionar trechos ao seu site, 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 );

No trecho de código acima, estamos a usar este trecho apenas no ID de formulário 902 e apenas no ID de campo 25, que é o campo do URL do Facebook, e no campo 26, que é o campo do URL do Twitter.

Quando os utilizadores inserirem uma ligação nesses campos que não corresponda ao que está listado no nosso trecho de código acima, verão um erro depois de terem submetido o formulário.

Terá de atualizar os IDs do formulário e dos campos para corresponderem ao que tem no seu site. Se precisar de ajuda para encontrar estes IDs, por favor, veja este tutorial.

com este trecho adicionado pode facilmente validar um URL de rede social dentro do seu formulário

E é tudo! Conseguiu validar com sucesso um URL de rede social. Gostaria também que os utilizadores fizessem login automaticamente depois de completarem o formulário de registo? Dê uma vista de olhos ao nosso artigo sobre Como Iniciar Sessão Automaticamente os Utilizadores Após o Registo.

Referência de Ação: wpforms_process

FAQ

P: Posso adicionar o LinkedIn a este trecho?

R: Absolutamente! Para adicionar ao trecho acima para o LinkedIn, use este trecho e atualize os IDs do formulário e dos campos para o formulário que está a usar.

/**
 * 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 );