it-swarm.com.de

Erweitern Sie ein Klassen-Plugin

Ich kann die Benutzervariable nicht aus der Hauptklasse abrufen, die ein Beispiel für eine "untergeordnete Klasse" lädt:

//PLUGIN FILE
class father{

    var $user;

    function __construct() {
        add_action('plugins_loaded', array(&$this, 'loaded'));
    }

    function plugins_loaded(){
        global $wp_get_current_user;
        $this->user = wp_get_current_user();
    }
}

$plugin = new parent();

Das war die Plugin-Datei.

//EXTEND CLASS
class child extends father{

    function __construct(){
        parent::__construct();
    }

    function user_id(){
        echo $this->user->ID;
    }
}

Das war die erweiterte Klasse.

//CONFIG FILE (DISPLAYED IN ADMIN PANEL)
$child = new child();
$user_id = $child->user->id;
$child->user_id();

Und das war die Konfigurationsseite.

Ich kann die Benutzer-ID in der erweiterten Klasse nicht ermitteln, aber in der Vaterklasse.

Warum und wie kann ich das lösen?

1
Sein Oxygen

Das funktioniert bei mir:

class father {
    var $user;
    function __construct() {
        add_action( 'init', array( &$this, 'set_user' ) );
    }
    function set_user() {
        $this->user = wp_get_current_user();
    }
}

class child extends father {
    function __construct() {
        parent::__construct();
    }
    function user_id(){
        return $this->user->ID;
    }
}

$father = new father();
$child = new child();

add_action( 'admin_notices', 'test_stuff' );
function test_stuff() {
    global $child;
    print '<pre>Child: ' . print_r( $child->user_id(), true ) . '</pre>';
}
2
mfields