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.
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);
}
}
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é