Suporte » Plugins » Mapa de Representantes

  • Resolvido Johnny Demarch

    (@johnnydemarch)


    Alguém sabe se tem como fazer um mapa de representantes dinâmico?

    Por exemplo tem o mapa do Brasil, o usuário clica em um estado e lista os representantes daquele estado.

    Alguém pode me ajudar?

Visualizando 4 respostas - 16 até 19 (de um total de 19)
  • Criador do tópico Johnny Demarch

    (@johnnydemarch)

    E eu mais feliz ainda por existir essa comunidade (y)

    Olá.
    Sou novato em tudo isso, e estou tentando criar um mapa de representantes.
    Graças a esse tópico consegui criar o mapa, mas não consigo fazer com que o representante seja exibido ao clicar no estado.

    Poderiam ajudar um noob?

    Moderador Míriam de Paula

    (@miriamdepaula)

    Olá tainansv

    No sisteminha que eu fiz, eu usei Ajax (jquery) pra pegar o valor, no caso, o estado, selecionado e passar pro WP e assim me trazer a listagem de representantes na mesma página, sem refresh.

    O mapa eu montei assim:

    <ul id="mapa">
    	<?php
    		$estados = get_terms('estado', array('hide_empty' => false)); //print_r($estados);
    		if( $estados ){
    
    			foreach( $estados as $estado ){
    				$term_data = get_option( "estado_term_$estado->term_id" );
    				echo '<li id="'.strtolower($term_data['sigla']).'"><a href="#'.$estado->slug.'" title="'.$estado->name.'"><span>'.$term_data['sigla'].'</span></a></li>';
    			}
    		}
    	?>
    </ul>
    
    <div id="lista-representantes"></div>

    O javascript ficou assim:

    <script type="text/javascript">
    	jQuery( function($){
    		$('#mapa li a').click( function(){
    			$('#mapa li a.active').removeClass('active');
    			$(this).addClass('active');
    			var url = this.href;
    			var hash = url.substring(url.indexOf('#')); //alert( hash );
    
    			//ajax
    			$.post( '<?php echo admin_url('admin-ajax.php') ?>', { action: 'representantes_do_estado', estado: hash },
    				function(data){
    					$('#lista-representantes').html(data);
                    }
    			);
    
    		});
    	});
    </script>

    Agora pra trabalhar com Ajax no WordPress, você pode aprender pelo Codex:
    https://codex.wordpress.org/AJAX_in_Plugins

    Acho que te passei bem mais da metade do caminho. O resto é super simples!
    Bons estudos!

    Abs.
    Miriam de Paula

    Criador do tópico Johnny Demarch

    (@johnnydemarch)

    tainansv

    No meu caso, fiz um pouco diferente da Miriam, acredito que o código dela está bem mais limpo e objetivo, até por ela ser uma expert.

    Mas quero compartilhar meu código também. Dentro do loop, coloquei o seguinte:

    $args = array( 'fields' => 'all', 'hide_empty' => false );
    
    $terms = get_terms( 'estados', $args );
    if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) {
        $count = count( $terms );
        $i = 0;
        $term_list = '<p class="my_term-archive">';
        foreach ( $terms as $term ) {
            $i++;
        	$term_list .= '<li id="'.$term->slug.'"><a href="' . get_term_link( $term ) . '" title="' . sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) . '">' . $term->name . '</li></a>';
        	if ( $count != $i ) {
                $term_list .= ' ';
            }
            else {
                $term_list .= '</p>';
            }
        }
        echo $term_list;
    }

    O javascript utilizei o mesmo que o dela 🙂

Visualizando 4 respostas - 16 até 19 (de um total de 19)
  • O tópico ‘Mapa de Representantes’ está fechado para novas respostas.