Я хотел бы разбить функцию, используемую в Class, чтобы ее было легче понять, однако я не могу понять, как передавать переменные между двумя или более функциями, сохраняя хук WP INIT. Я упростил мой код для этого вопроса.
Я не уверен, правильно ли использовать несколько add_action в __construct.
Благодарю.
//called from template/index.php
do_action('foo');
//in template/fuctions.php
add_action( 'init', array ( 'foo', 'init' ) );
class foo
{
public $stillnotworking;
public static function init()
{
new self;
}
public function __construct()
{
add_action( 'foo', array ( $this, 'part1' ) );
add_action( 'foo', array ( $this, 'part2' ) );
}
public function part1()
{
$this->x = '123';
$stillnotworking = '123';
}
public function part2()
{
echo $this->x; //not working
echo $stillnotworking;
}
public function __toString()
{
echo $this->x; //not working
echo $stillnotworking;
}
function __destruct() {
}
}
Вы не объявили свой $x
в вашем классе. Пытаться
add_action( 'init', array ( 'foo', 'init' ) );
class foo
{
public $x;
public $stillnotworking;
public static function init()
{
new self;
}
public function __construct()
{
add_action( 'foo', array ( $this, 'part1' ) );
add_action( 'foo', array ( $this, 'part2' ) );
}
public function part1()
{
$this->x = '123';
$stillnotworking = '123';
}
public function part2()
{
echo $this->x; //not working
echo $stillnotworking;
}
public function __toString()
{
echo $this->x; //not working
echo $stillnotworking;
}
function __destruct() {
}
}
Других решений пока нет …