Respostas no Fórum

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Fórum: Plugins
    Em resposta a: Areas de Membros Distintas

    Olá @luandrelima, tudo bem?

    Venho trazer uma outra opção para o seu problema, case ja tenha resolvido nos mostre como resolveu.

    A solução que quero trazer é a seguinte: Você pode criar um Custom field para os usuários e na hora do cadastro escolher se ele é da Área 1 ou da Área 2, e na hora do login o sistema vai puxar do banco de dados de qual área ele é redirecionando-o para o link desejado.

    Cole o código no seu functions.php

    add_action( 'show_user_profile', 'im_user_field' );
    add_action( 'edit_user_profile', 'im_user_field' );
    
    function im_user_field( $user ) { 
    	//Verifica se já existe algo salvo para o Usuario
      $area  = get_the_author_meta( 'tipo_de_area', $user->ID );
    	
      //Somente o Admin do sistema poderá ver esse formulario 
    	if ( current_user_can( 'administrator' ) ) {
    	
    	?>
        <table class="form-table">
          <h3>Tipo de Área</h3>
            <tr>
              <td>
    			       <label for="address"><b><?php _e("Área"); ?></b></label>	
    			       <select name="tipo_de_area">
                    <?php   
                        // Caso o usuario seja da Area 1, marca a option 1         		          						
              					if($area == 'area1'){						
              						echo '<option value="area1" selected="selected">Área 1</option>';
              					} else {
              						echo '<option value="area1">Área 1</option>';
              					}	  
                        // Caso o usuario seja da Area 2, marca a option 2                  
                        if($area == 'area2'){						
              						echo '<option value="area2" selected="selected">Área 2</option>';
              					} else {
              						echo '<option value="area2">Área 2</option>';
              					}					          			
              			?>	         
                 </select>		  
    		      </td>              			        
            </tr>
        </table>  
      
        <?php  
        }
    }

    Esta parte do código vai criar um select com a(s) área(s) que vc terá no seu sistema.

    //Salva a informação no Banco de dados
    add_action( 'personal_options_update', 'save_im_user_field' );
    add_action( 'edit_user_profile_update', 'save_im_user_field' );
        
    function save_im_user_field( $user_id ) {
      //Salva a informação no Banco de dados só se for pelo Admin do sistema     
    	if ( current_user_can( 'administrator') ) { 
    	  update_user_meta( $user_id, 'tipo_de_area', $_POST['tipo_de_area'] );			
      }
    }

    Esta parte vai salvar a área no banco de dados

    function im_redireciona_usuario( $url, $request, $user ) {
       if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) {
            // Verifica qual o tipo de area do usuario Logado
            $area = get_user_meta( $user->ID, 'tipo_de_area', true );
               
            if( 'area1' ==  $area ) {
              $url = home_url('/redireciona-para-area1/'); //Se for a área 1
            } else if( 'area2' == $area ){
              $url = home_url('/redireciona-para-area2/'); //Se for a área 2
            } else {
              $url = admin_url(); //Se NÃO for a área 1 ou 2, vai para o Painel
            }
        }  
        return $url;
    }
    add_filter( 'login_redirect', 'im_redireciona_usuario', 10, 3 );

    Esta parte é para redirecionar o usuário de acordo com área cadastrada no sistema.

    Você pode ajustar este código de acordo com as suas necessidades, aumentando o numero de áreas por exemplo.

    Bem @luandrelima, espero que este código possa lhe ajudar e caso dê certo deixe suas experiências.
    Até mais.

    • Esta resposta foi modificada 6 anos, 10 meses atrás por Wolffgang Lemos.
    Fórum: Temas
    Em resposta a: Redes sociais dinâmicas no site

    E aí @tonyfuckin, blz?
    Sei que sua pergunta já está ai há algum tempo e você não deu retorno se seu problema foi solucionado, vai ai uma forma simples de fazer o que você necessita.

    Você pode adicionar um sub menu nas configurações do WordPress, salvar o endereço da sua pagina do facebook e puxar do banco de dados quando quiser.

    Cole este código em seu arquivo functions.php

    add_action( 'admin_menu', 'add_menu_option' );
    
    function add_menu_option() {
    	add_options_page( 'Facebook', 'Facebook', 'manage_options', 'facebook-page', 'add_facebook_page' );
    }
    
    function add_facebook_page() {
      if ( !current_user_can( 'manage_options' ) )  {
         wp_die( __( 'Você não tem permissão para acessar esta página.' ) );
      }
      $opt_name          = 'pagina_facebook';
      $hidden_field_name = 'face_submit_hidden';
      $data_field_name   = 'pagina_facebook';
    
      // Verifica se existe algum valor gravado no banco de dados
      $pagina_face = get_option( $opt_name );
    
      // Verifica se o usuario clicou para salvar formulário.
      // Se sim, insere um valor no unput hidden
      if( isset($_POST[ $hidden_field_name ]) && $_POST[ $hidden_field_name ] == 'Y' ) {
        // Lê o valor digitado no input
        $pagina_face = $_POST[ $data_field_name ];
        update_option( $opt_name, $pagina_face );
          ?>
          <!-- Mostra uma mensagem de sucesso caso a valor seja gravado corretamente -->
          <div class="updated"><p><strong><?php _e('Facebook Salvo com sucesso.', 'facebook-salvo' ); ?></strong></p></div>
        <?php 
      }    
              // Adiciona o formulario   
           echo '<div class="wrap">';                  
           echo "<h2>" . __( 'Adicionar Página do Facebook', 'facebook-salvo' ) . "</h2>";                   
      ?>
          
            <form name="form1" method="post" action="">
              <input type="hidden" name="<?php echo $hidden_field_name; ?>" value="Y">
              
              <p><?php _e("Página do Facebook", 'facebook-salvo' ); ?> 
              <input type="text" name="<?php echo $data_field_name; ?>" value="<?php echo $pagina_face; ?>" size="40">
              </p><hr />
              
              <p class="submit">
              <input type="submit" name="Submit" class="button-primary" value="<?php esc_attr_e('Salvar') ?>" />
              </p>
            
            </form>
          </div>
      <?php
    }

    Qualquer dúvida sobre esta parte você pode verificar em:
    https://codex.wordpress.org/Administration_Menus

    Para exibir a página do facebook em seu site basta colar o código abaixo no local desejado.

    <div class="fb-page" data-href="https://www.facebook.com/<?php echo get_option('pagina_facebook'); ?>" data-tabs="timeline" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true">
      <div class="fb-xfbml-parse-ignore">
        <blockquote>">
          <a>">
            <?php echo get_option('pagina_facebook'); ?>
          </a>
        </blockquote>
      </div>
    </div>

    De agora em diante, toda vez que mudar o endereço da sua pagina do face no seu site ele mudará automaticamente em seu site.

    Espero ter ajudado.
    Até mais.

    • Esta resposta foi modificada 6 anos, 10 meses atrás por Wolffgang Lemos.
    • Esta resposta foi modificada 6 anos, 10 meses atrás por Wolffgang Lemos.
    • Esta resposta foi modificada 6 anos, 10 meses atrás por Wolffgang Lemos.
    • Esta resposta foi modificada 6 anos, 10 meses atrás por Felipe Elia. Razão: correção de tags
Visualizando 2 respostas - 1 até 2 (de um total de 2)