web-dev-qa-db-fra.com

$ current_user var retourne NULL

Je développe un plugin wp et j'essaie d'obtenir l'utilisateur actuel.

Si je retourne avec une erreur, print_r ($ current_user) renvoie les informations nécessaires.

Mais le plugin est activé sans erreur il renvoie NULL.

J'ai essayé d'inclure certains fichiers de base wp tels que wp-load, etc., mais cela n'a aucun effet.

c'est mon code (sans l'erreur):

class My_plugin_class{

    var $user;

    function __construct() 
    {
        global $current_user;

        //Set the current user
        $this->user = $current_user;

        print_r($this->user);

    }     
}

EDIT: Il suffit de modifier mon code pour:

require_once(ABSPATH . '/wp-includes/pluggable.php');
global $current_user;
get_currentuserinfo();

La fonction get_currentuserinfo () fait maintenant un print_r (); et ne va pas arrêter?

EDIT: Je l'ai corrigé moi-même.

1
CodingBear

Vous devez globaliser $current_user, puis le peupler via get_currentuserinfo(). Voir l'entrée du Codex pour get_currentuserinfo() . Dans l'exemple d'utilisation du Codex:

<?php
global $current_user;
get_currentuserinfo();
?>

Alors, essayez d’adapter votre code en conséquence; par exemple.:

class My_plugin_class{

    var $user;

    function __construct() 
    {      
        //Set the current user
        global $current_user;
        get_currentuserinfo();
        $this->user = $current_user;

        print_r($this->user);

    }     
}
4
Chip Bennett

Vous ne devriez pas avoir à exiger manuellement les fichiers WP. Vous utilisez probablement déjà la fonction trop tôt, essayez de construire la classe sur init ou demandez à votre fonction __construct d'ajouter une deuxième fonction sur init qui traite de l'utilisateur actuel.

Par exemple:

class My_plugin_class{

    var $user;

    function __construct() {      
        add_action('init',array(__CLASS__,'init'));
    }     

    static function init(){
        //Set the current user
        global $current_user;
        get_currentuserinfo();
        $this->user = $current_user;
        print_r($this->user);
    }
}
My_plugin_class::__construct;

Non testé

0
Stephen Harris