Eu tenho um formulário com algumas caixas de seleção e caixas de entrada e mostra o que o usuário deseja por meio de uma chamada ajax. O problema é que, quando o usuário clica no item e a página de detalhes é mostrada e decide voltar à página anterior, ele precisa clicar e selecionar sua opção anterior novamente.
Gostaria de fazer com que o WP armazene todas as opções da sessão quando o botão da página de detalhes for clicado e salve as informações reais da sessão e, quando ele visitar a página novamente, os valores serão verificados nas sessões e definidos, se houver. encontrado.
Isso poderia ser feito no WP?
Se sim, como?
Vamos simplificar demais e dizer que temos algo assim em nossa forma:
<input class="car_color" type="checkbox" name="car_color" value="1" />
<input class="car_color" type="checkbox" name="car_color" value="2" />
<input class="car_color" type="checkbox" name="car_color" value="8" />
<input class="car_color" type="checkbox" name="car_color" value="4" />
<input class="car_color" type="checkbox" name="car_color" value="6" />
Eu não uso o botão enviar no meu formulário, ele é tratado via AJAX na alteração de entrada.
E nos meus resultados, via ajax, tenho um link para a página de detalhes:
<a class="detail-info-link" href="<?php echo $url ?>">
Alguma idéia de como posso armazenar meus valores na Sessão e chamá-los ao revisitar / recarregar / voltar no navegador?
Eu preciso ser capaz de ler o material armazenado da sessão e usá-lo via? Javascript? e acionar minha função de pesquisa via ajax, que já está funcionando bem.
Eu só preciso armazenar (provavelmente antes de ir para o link $ no href do botão de detalhes e ler e enviar variáveis de sessão (se elas existirem).
Respostas:
As sessões não estão ativadas no wordpress por padrão, se você deseja ativar as sessões php, adicione isso no início do seu
functions.php
:Agora você pode usar
$_SESSION['your-var'] = 'your-value';
para definir uma variável de sessão. Dê uma olhada na documentação do PHP sobre sessões .Atualizar:
Havia uma segunda resposta que, em minha opinião, também tinha um valor - infelizmente ela foi excluída, estou adicionando novamente as informações aqui. A resposta estava se referindo ao WP Session Manager, um plug-in escrito por @eamann como uma solução alternativa.
Eu li algumas coisas sobre o plug-in, mas nunca o usei porque - até agora - estou usando sessões PHP - nunca tive o problema de não poder usá-las. Esta é uma declaração / comentário do próprio autor do plug-in, que descobri algumas vantagens possíveis.
fonte
adicione isso em suas funções.php
fonte
Vou explicar como definir uma sessão de nome de usuário com o plugin Native PHP Sessions for WordPress . Você pode aplicar essa lógica ao seu problema.
Adicione isso ao seu arquivo functions.php
$ _POST ['log'] está referenciando a caixa de entrada de nome de usuário no formulário de login do wordpress. Quando um usuário faz login, o nome de usuário é armazenado em $ _SESSION ['nome de usuário']. No seu caso, você alteraria 'log' para os nomes de variáveis de formulário que possui 'car_color'.
Referencie o nome de usuário posteriormente em outro arquivo php
fonte
Talvez não haja sessões usuais no Wordpress ... de qualquer maneira, o Wordpress conhece o conceito de usuário. Você pode gerenciar informações relacionadas a usuários específicos com as funções
add_user_meta
,update_user_meta
,get_user_meta
, edelete_user_meta
.Se você precisar das informações salvas dessa maneira em JavaScript, poderá escrever um pequeno script PHP que vomite o que você precisa e chamá-lo com Ajax.
fonte
Na página PHP que recebe a solicitação AJAX, defina $ _SESSION dessa maneira.
Acesse a variável $ _SESSION
Este tutorial entra em mais detalhes sobre configuração e descarte adequados de sessões.
fonte