2017-02-25 5 views
1

$ _SESSION 변수를 사용하여 Wordpress 사이트의 WP 객체 (예 : WP_User) 배열을 팝업 창에 전달하고 있습니다.PHP 세션을 사용하여 부모에서 팝업 자식으로 Wordpress 객체 전달

팝업이 열리면, I var_dump($_SESSION['variable']['WP_Users'])과 모든 것이 잘 보입니다.

그러나 $_SESSION['variable']['WP_users'][0]->data->parameter에 액세스하려고하면 모든 값이 NULL입니다. 그에서 제외

,의 error_log는 말한다 :

"() 주 :. 스크립트는 방법을 실행하거나 불완전한 개체의 속성에 액세스하려고 확인하시기 바랍니다 클래스 정의 "의 WP_User " 당신이 운영하고자하는 객체/ABSPATH /popup_template.php 라인에서 클래스 정의를로드하기 위해 호출 또는 __autoload() 기능을 제공됩니다() 때 unserialize 전에 를로드 (52) "

제가 이해하는 것처럼, 내 팝업에는 WP_User 등과 같은 WP 클래스에 대한 정의가 없으므로 WP 객체를 조작 할 수 없습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? (내가 전혀 (un) serialize()를 사용하지 않는다는 것을 명심하십시오.)

답변

0

그래서 솔루션은 실제로 매우 직설적이었습니다. 나는 error_log이 무엇을해야 하는지를 물어야했습니다. 내가 wp_includes 폴더에서 WP_User의 정의를 추가했다

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

내 팝업 템플릿에 다음 때 unserialize :

부모 창에서

그래서 같은 세션 VAR으로 그들을 밀어 전에 워드 프레스 객체의 배열을 직렬화했다 내 배열을 다시 $array_of_WP_objects처럼

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

매력처럼 작동합니다.