我正在定义$_SESSION[\'session_test\']
从…起$_POST[\'reason\']
我从AJAX电话中得到消息。
在该功能内部,$_SESSION[\'session_test\']
是否得到定义,我是否得到期望echo
后果
add_action(\'wp_ajax_return_reason\', array( __CLASS__ , \'select_return_reason\'));
static function select_return_reason() {
$_SESSION[\'session_test\'] = $_POST[\'reason\'];
echo "REASON: " . $_SESSION[\'session_test\'];
echo "<br>";
wp_die();
}
但是,当我刷新页面并尝试回显时
$_SESSION[\'session_test\']
在下面的其他函数中,它是空的-我得到NULL。
add_action(\'woocommerce_after_cart_table\', array( __CLASS__ , \'display_returned_items\'));
static function display_returned_items() {
echo "Testing: " . $_SESSION[\'session_test\'];
}
为什么
$_SESSION[\'session_test\']
值仅在由AJAX执行的函数中可用/定义?
我的session_start();
位于php文件的顶部,位于<?php
打开标签。
如果我需要提供更多信息,请告诉我。谢谢
最合适的回答,由SO网友:Tahi Reu 整理而成
将此行包装在内if
解决问题的声明:
if(!isset($_SESSION[\'session_test\'])) {
$_SESSION[\'session_test\'] = $_POST[\'reason\'];
}
我想
select_return_reason(){...}
保存此行的函数仅由AJAX执行,而不是在每次页面加载时执行。