使用PHP SESSION

时间:2017-02-25 04:54:48

标签: php wordpress session popup parent-child

我使用$ _SESSION变量将一个WP对象数组(即WP_User)从Wordpress站点传递到弹出窗口。

当弹出窗口打开时,我var_dump($_SESSION['variable']['WP_Users']),一切看起来都不错。

但是,当我尝试访问$_SESSION['variable']['WP_users'][0]->data->parameter时,所有值都为NULL。

除此之外,error_log说:

  

" main():脚本尝试执行方法或访问不完整对象的属性。请确保课程定义" WP_User"您正在尝试操作的对象是 unserialize()被调用之前加载的,或者提供__autoload()函数来加载/ABSPATH中的类定义 /popup_template.php第52行"

据我所知,我的弹出窗口没有WP类的定义,例如WP_User等,因此我无法操作WP对象。

关于如何解决这个问题的任何想法? (请记住,我根本没有使用(un)serialize())

1 个答案:

答案 0 :(得分:0)

所以解决方案实际上非常简单:我必须做error_log问的问题。

在父窗口中,我必须序列化Wordpress对象的数组,然后将它们推入SESSION var,如下所示:

$_SESSION['variable'] = serialize( $array_of_WP_objects );

在我的弹出模板中,我必须从wp_includes文件夹中添加WP_User的定义,然后将我的数组反序列化为$array_of_WP_objects,如此

require_once( '../../../../wp-includes/class-wp-user.php' );
$array_of_WP_objects = unserialize( $_SESSION['variable'] );

像魅力一样工作。