Как установить динамическую переменную в сеансе и файлы cookie в WordPress

#php #wordpress

#php #wordpress

Вопрос:

Я пытаюсь сохранить динамическую переменную из внешней ссылки ?dynamic=a_12_bc и поместить в ссылку, которая выглядит так http://www.myweb.com?tracker=a_12_bc в первый раз, когда она всегда показывает динамическую ссылку, но когда я обновляю и нажимаю на другую страницу, она отображается ?tracker=[object][Object] .

 <?php session_start(); 
 echo $_GET['dynamic'];
if( isset($_GET['dynamic']))
{
  $cookie_name = "dynamic";
  $cookie_value = $_GET['dynamic'];
  setcookie($cookie_name, $cookie_value, time()   (86400 * 30), "/");
  $_SESSION["dynamic"] = $cookie_value;
  }
else
{   
 $_SESSION["dynamic"] = $_COOKIE['dynamic'];
 }?>
 Button Link
<a href="https://www.myweb.com/?tracker=<?php echo($_SESSION['dynamic']);?>" target="_blank">LOG IN</button></a>
  

Не могли бы вы рассказать мне, как поддерживать сеанс на других страницах

Ответ №1:

Проверьте, установлен ли файл cookie, прежде чем назначать его сеансу, добавив isset() в свой код.

 if(isset($_GET['dynamic']))
{
   $cookie_name = "dynamic";
   $cookie_value = $_GET['dynamic'];
   setcookie($cookie_name, $cookie_value, time()   (86400 * 30), "/");
   $_SESSION["dynamic"] = $cookie_value;
}
else if(isset($_COOKIE['dynamic'])) {
   $_SESSION["dynamic"] = $_COOKIE['dynamic'];
}
else
{
   //something here
}
  

если файл cookie не установлен, попробуйте добавить домен в метод setcookie(),

 setcookie( $cookie_name , $cookie_value , time()   (86400 * 30), '/', COOKIE_DOMAIN );
  

Если вам нужна дополнительная информация, вы можете перейти по этой ссылке https://premium.wpmudev.org/blog/set-get-delete-cookies