Exécuter la fonction PHP var_dump uniquement si on est administrateur WordPress, pour travailler sur un site en production

Sur un site WordPress en production, j’ai souvent eu besoin de faire des var_dump pour afficher le type et la valeur d’une variable PHP. Pour ne pas afficher la réponse de la fonction aux visiteurs, j’ai ajouté une fonction permettant de n’exécuter le var_dump que si le rôle utilisateur en cours est un administrateur, en reprenant ma fonction is_adm que j’ai détaillée ici.

J’ai donc développé 3 fonctions :

  • is_adm : Vérifie si le rôle actuel est ‘Administrateur’ ; retourne un booléen
  • var_d : Exécute pour tout le monde un var_dump avec une mise en forme (avec quelques options de mise en forme pratiques)
  • var_da : Exécute la fonction var_d mais uniquement aux administrateurs
<?php
/**
	* Vérifie si le rôle actuel est 'Administrateur'
	*
	* @return boolean
**/
function is_adm()
{
	return current_user_can('manage_options');
}

/**
	* Exécute un var_dump avec une mise en forme <pre> À TOUT LE MONDE
	*
	* @param any 			$_var 	: la valeur qui passera dans le var_dump
	* @param string | null 	$_name 	: Ajoute une ligne explicative au-dessus de la valeur
	* @param bool | null 	$_die 	: Kill tout ce qui se serait exécuté après le var_dump
	*
	* @return résultat du var_dump
*/
function var_d($_var, $_name=null, $_die=null)
{
	if( $_name )
		echo "––––– $_name";
	echo "<pre>";
	var_dump($_var);
	echo "</pre>";
	if( $_die )
		die();
}
/**
	* Exécute un var_dump avec une mise en forme <pre> UNIQUEMENT AUX ADMINISTRATEURS WORDPRESS
	*
	* @param any 			$_var 	: la valeur qui passera dans le var_dump
	* @param string | null 	$_name 	: Ajoute une ligne explicative au-dessus de la valeur
	* @param bool | null 	$_die 	: Kill tout ce qui se serait exécuté après le var_dump
	*
	* @return résultat du var_dump si l'utilisateur a le rôle d'Administrateur
*/
function var_da($_var, $_name=null, $_die=null)
{
	if( is_adm() )
	{
		var_d($_var, $_name, $_die);
	}
}
?>

N’hésitez pas à me proposer des améliorations dans les commentaires !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.