¿Cómo almacenar y recibir variables en sesiones de WP?
-
-
Si la respuesta le resultó útil,considere aceptarla.Consulte »[¿Qué debo hacer cuando alguien respondemi pregunta?] (Http://wordpress.stackexchange.com/help/someone-answers)« y/o »[¿Por quéesimportante votar?] (Http://wordpress.stackexchange.com/help/why-vote) «,haymásinformación disponible sobreelmodelo [wordpress.se]en la [ayuda].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
-
Creo queel siguienteenlacete ayudará.https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-pluginI 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 respuestas
- votos
-
- 2013-10-09
Las sesionesnoestán habilitadasen wordpress deformapredeterminada,si desea activar sesionesphp agregueesto al comienzo de su
functions.php
:if (!session_id()) { session_start(); }
Ahorapuede usar
$_SESSION['your-var'] = 'your-value';
paraestablecer una variable de sesión. Eche un vistazo a la documentación de PHP sobre sesiones .
Actualización:
Hubo una segunda respuesta que,en mi opinión,tambiéntenía un valor; desafortunadamente,seeliminó,estoy volviendo a agregar lainformación aquí. La respuesta se refería a WP Session Manager ,un complementoescritopor @eamann como solución alternativa .
Leí algunas cosas sobreel complemento,peronunca lo uséporque,hasta ahora,me quedo con las sesiones de PHP,nuncatuveelproblema de quenopodía usarlas. Estaes una declaración/comentario porelpropio autor del complementoencontré algunasposibles ventajas.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.-
¿Puedopedirle queeche un vistazo a unapregunta relacionada conel campopersonalizado aquí: 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
agregueestoen sufunctions.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
Explicaré cómo configurar una sesión denombre de usuario conel complemento Sesiones PHPnativaspara WordPress .Puede aplicaresta lógica a suproblema.
Agregueesto a su archivofunctions.php
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$ _POST ['log'] hace referencia al cuadro deentrada denombre de usuario delformulario deinicio de sesión de wordpress.Cuando un usuarioinicia sesión,elnombre de usuario se almacenaen $ _SESSION ['nombre de usuario']. En su caso,cambiaría 'log'por losnombres de variable deformulario quetiene 'car_color'.
Haga referencia alnombre de usuariomás adelanteen algún otro archivophppor
$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
Quizásno haya sesiones habitualesen Wordpress ... detodosmodos,Wordpress conoceel concepto de usuarios.Puede administrarinformación relacionada con usuariosespecíficos con lasfunciones
add_user_meta
,update_user_meta
,get_user_meta
ydelete_user_meta
.Sinecesita lainformaciónguardada deestamaneraen JavaScript,puedeescribir unpequeño script PHP que vomite lo quenecesita y llamarlo con 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.
-
Esto soloesbueno siel usuarioestá conectado.This is only good if the user is logged in.
- 2
- 2016-11-10
- Tim Hallman
-
- 2016-12-05
En lapágina PHP que recibe la solicitud AJAX,configure $ _SESSION deestamanera.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Acceda a la variable $ _SESSION
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
Estetutorial incluyemás detalles sobre la configuración ydisposición de sesiones.
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
Primero debeiniciar una sesiónen WordPress,peronopuedeiniciar una sesiónen WordPress simplemente así.
Antes de comenzar las sesiones,debe verificar si algún complementoinició la sesión antesporquepuedetenerproblemasinesperados. Entoncesnecesitas unpequeño algoritmoparaeso.
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(); } }
También agregué soportepara versiones anteriores de PHP aquí.
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.
Tengo unformulario con algunas casillas de verificación y casillas de selección de casillas deentrada ymuestra lo queel usuario quiere através de una llamada ajax. Elproblemaes que cuandoel usuario hace clicen elelemento y semuestra lapágina de detalles y luego decide volver a lapágina anterior,debe hacer clic y seleccionar su opción anteriornuevamente.
Megustaría hacer que WP almacenetodas las opcionesen la sesión cuando se haga clicen elbotón de lapágina de detalles yguarde lainformación realen la sesión y luego,cuando vuelva a visitar lapágina,los valores semarcaránen sesiones y seestablecerán si seencuentra alguno.
¿Podría hacerseesoen WP?
Sies así,¿cómo?
Simplifiquemoseso y digamos quetenemos algo comoestoen nuestroformulario:
No usoelbotónenviaren miformulario,semaneja através de AJAXen el cambio deentrada.
Yen mis resultados através de ajaxtengo unenlace a lapágina de detalles:
¿Algunaidea de cómopuedo almacenarmis valoresen Session y llamarlos al volver a visitar/recargar/volver albotónen elnavegador?
Necesitopoder leerelmaterial almacenadoen la sesión y usarlo através de? Javascript? y activarmi función debúsqueda através de ajax que yaestáfuncionandobien.
Solonecesito almacenar (probablemente antes deir a $ linken href delbotón de detalle y leer yenviar variables de sesión (siexisten).