Como armazenar e receber variáveis em sessões WP?
-
-
Se a respostafoi útilpara você,considere aceitá-la.Veja »[O que devofazer quando alguém responder aminhapergunta?] (Http://wordpress.stackexchange.com/help/omeone-answers)«e/ou »[Por queestá votandoimportante?] (Http://wordpress.stackexchange.com/help/why-vote) «,Maisinformações sobre omodelo [WordPress.se]estão disponíveisna [Ajuda].If the answer was helpful to you, then consider accepting it. See »[What should I do when someone answers my question?](http://wordpress.stackexchange.com/help/someone-answers)« and/or »[Why is voting important?](http://wordpress.stackexchange.com/help/why-vote)«, more information about the [wordpress.se] model is available at the [help].
- 0
- 2015-04-29
- Nicolai
-
Eu acho que abaixo do linkirá ajudá-lo.https://wordpress.stackexchange.com/Questions/105453/getting-headers-already-sent-error-from-plugin.I think below link will help you. https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-plugin
- 0
- 2018-10-04
- Vivekanand Saraswati
-
6 respostas
- votos
-
- 2013-10-09
As sessõesnãoestão ativadasno WordPress Porpadrão,se você deseja ativar as sessões PHP,adicioneistonoinício do seu
functions.php
:if (!session_id()) { session_start(); }
Agora vocêpode usar
$_SESSION['your-var'] = 'your-value';
para definir uma variável de sessão. Dê uma olhadano documentaçãophp sobre sessões .
update:
Havia uma segunda resposta,que,em minhamente,teve um valortambém -infelizmentefoiexcluído,estou adicionando ainformação aqui. A respostafoi referente a WP Session Manager Umpluginescritopor @amann como uma solução alternativa .
Eu li algumas coisas sobre oplugin,masnunca o useiporque - até agora -estoufurar com sessões PHP -nuncateve oproblema queeunãopoderia usá-los. Este é um declaração/comentário pelopróprio autor doplugin queencontrei sobre algumaspossíveis vantagens.Sessions aren't enabled in wordpress by default, if you want to activate php sessions add this at the beginning of your
functions.php
:if (!session_id()) { session_start(); }
You now can use
$_SESSION['your-var'] = 'your-value';
to set a session variable. Take a look at the PHP documentation on sessions.
Update:
There was a second answer, which, in my mind, had a value too - unfortunately it got deleted, I'm re-adding the information here. The answer was referring to WP Session Manager a plugin written by @eamann as a alternative solution.
I read some things about the plugin, but never used it because - so far - I'm sticking with PHP sessions - never had the problem that I couldn't use them. This is a statement/comment by the plugin author himself I found about some possible advantages.-
Possopedir-lhepara dar uma olhadaem umapergunta relacionada com campopersonalizado aqui: https://wordpress.stackexchange.com/Questions/265852/set-and-unset-the-custom-field-Value?may I ask you to have a look at a custom field related question here : https://wordpress.stackexchange.com/questions/265852/set-and-unset-the-custom-field-value ?
- 0
- 2017-05-04
- Istiaque Ahmed
-
- 2017-06-14
Adicioneissona suafunção.php
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
add this at in your functions.php
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
-
- 2018-08-05
Eu vouexplicar como definir uma sessão denome de usuário com as sessões de PHPnativas para wordpress plugin.Vocêpode aplicaressa lógica ao seuproblema.
Adicioneisso ao seu arquivofunctions.php
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$ _post ['log']está referenciando a caixa deentrada denome de usuário doformulário de login do WordPress.Quando um usuárioefetua login,onome de usuário é armazenadopara $ _Session ['username']. No seu caso,vocêmudaria 'log'para osnomes de variáveis deformulário que vocêtem 'car_color'.
Referxa onome de usuáriomaistardeem algum outro arquivo PHPpor
$username=$_SESSION['username'];
I will explain how to set a username session with the Native PHP Sessions for WordPress plugin. You can apply this logic to your problem.
Add this to your functions.php file
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$_POST['log'] is referencing the username input box from the wordpress login form. When a user logs in, the username is stored to $_SESSION['username']. In your case, you would change 'log' to the form variable names you have 'car_color'.
Reference the username later in some other php file by
$username=$_SESSION['username'];
-
- 2016-08-12
Talveznão haja sessões usuaisno WordPress ... De qualquerforma,o WordPress conhece o conceito de usuários.Vocêpodegerenciarinformações relacionadas a usuáriosespecíficos com asfunções
add_user_meta
,update_user_meta
,get_user_meta
edelete_user_meta
.Se vocêprecisar dasinformações salvas dessamaneiraem JavaScript,poderáescrever umpequeno script PHP que vomita o que vocêprecisae chamá-lo com Ajax.
Maybe there are no usual sessions in Wordpress ... anyway, Wordpress knows the concept of users. You can manage information related to specific users with the the functions
add_user_meta
,update_user_meta
,get_user_meta
, anddelete_user_meta
.If you need the information saved in this way in JavaScript, you can write a little PHP script that vomits what you need, and call it with Ajax.
-
Isso ébom se o usuárioestiver logado.This is only good if the user is logged in.
- 2
- 2016-11-10
- Tim Hallman
-
- 2016-12-05
napágina PHP que recebe opedido do Ajax,defina $ _Session comoeste.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Acessar a variável $ _Session
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
estetutorial entraem mais detalhes sobre a configuração adequadaeeliminação de sessões.
On the PHP page that receives the AJAX request, set $_SESSION like this.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Access the $_SESSION variable
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
This tutorial goes into more detail about proper setup and disposal of sessions.
-
- 2020-08-31
Você deveprimeiroiniciar uma sessãono WordPress,mas vocênãopodeiniciar uma sessãono WordPressexatamente assim.
Antes deiniciar as sessões,vocêprecisa verificar se algumplugininiciou a sessão anteriormenteporque vocêpodeterproblemasinesperados. Então vocêprecisa de umpequeno algoritmoparaisso.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
Eutambém adicionei suportepara versõesphpmais antigas aqui.
You must first start a session in WordPress but you can't start a session in WordPress just like that.
Before starting sessions, you need to check if some plugin started the session earlier because you may have unexpected problems. So you need a little algorithm for that.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
I've also added support for older PHP versions here.
Eutenho umformulário com algumas caixas de seleçãoe caixas de seleção de caixas deentradae mostra o que o usuário deseja através de uma chamada Ajax. Oproblema é que quando o usuário clicanoitem e apágina de detalhes émostradae,em seguida,decide voltarpara apágina anterior,eleprecisa clicare selecionar suaescolha anteriornovamente.
Eugostaria defazer WPpara armazenartodas as opçõesna sessão quando obotãopara apágina de detalhes é clicadoe salvarinformações reaisna sessãoe,em seguida,quandoele visitar apáginanovamente,os valores serão reconhecidosem sessõese definirão Se algumforencontrado.
Issopoderia serfeitono WP?
Se sim,como?
Vamos simplificarissoe dizer quetemos algo assimem nossaforma:
Eunão uso obotão deenvionomeuformulário,émanipulado via AJAXnamudança deentrada.
e nosmeus resultados recebem via Ajax Eutenho um linkpara apágina de detalhes:
Qualquerideia Comoposso armazenarmeus valoresna sessãoe chamá-los ao revisitar/recarregar/backgroundnonavegador?
Eupreciso ser capaz de ler as coisas armazenadase usá-lo via? Javascript?e acionarminhapesquisa depesquisa via Ajax quejáestáfuncionandobem.
Eu sópreciso armazenar (provavelmente antes deir a $ linknobotão href de detalhee lere enviar variáveis de sessão (seelesexistirem).