PENSER UPDATE OPTION AU LIEU DE PUSH DANS UN ARRAY CLASSIQUE
<?php
if(!function_exists('admin_notice_render')){
$notices_array = array();
/**
* Genère le code HTML d'une notification pour l'administration de WordPress
*
* @param string $message Message textuel à afficher dans la notification
* @param array $link Dans la case "href" mettre l'adresse du lien vers lequel renvoyer et dans la case "content" mettre le texte du lien
* @param string $type Type de la notification (error, warning, success ou info)
* @param bool $is_dismissible Si la notification doit pouvoir être desactivée
*/
function admin_notice_render(string $message, array $link = array(), string $type = 'error', bool $is_dismissible = true)
{
$class = "notice";
if ($type === "error") {
$class .= " notice-error";
} elseif ($type === "warning") {
$class .= " notice-warning";
} elseif ($type === "sucess") {
$class .= " notice-success";
} elseif ($type === "info") {
$class .= " notice-info";
}
if ($is_dismissible) {
$class .= " is-dismissible";
}
$content = "<p>".$message."</p>";
if (isset($link["href"]) && isset($link["content"])) {
$content .= "<p><a href=\"". $link["href"] ."\" target=\"_blank\">". $link["content"] ."</a></p>";
}
$output = "<div class=\"". $class ."\"> ". $content ." </div>";
echo $output;
}
}
?>
<?php
wp_admin_notice_enqueue("Une erreur est survenue", ["href" => "mon-url", "content" => "le texte de mon lien"], "error", true);
?>
<?php
if(!function_exists('wp_admin_notice_enqueue')){
$notices_array = array();
/**
* Genère le code HTML d'une notification pour l'administration de WordPress
*
* @param string $message Message textuel à afficher dans la notification
* @param array $link Dans la case "href" mettre l'adresse du lien vers lequel renvoyer et dans la case "content" mettre le texte du lien
* @param string $type Type de la notification (error, warning, success ou info)
* @param bool $is_dismissible Si la notification doit pouvoir être desactivée
*/
function wp_admin_notice_enqueue(string $message, array $link = array(), string $type = 'error', bool $is_dismissible = true)
{
global $notices_array;
$class = "notice";
if ($type === "error") {
$class .= " notice-error";
} elseif ($type === "warning") {
$class .= " notice-warning";
} elseif ($type === "sucess") {
$class .= " notice-success";
} elseif ($type === "info") {
$class .= " notice-info";
}
if ($is_dismissible) {
$class .= " is-dismissible";
}
$content = "<p>".$message."</p>";
if (isset($link["href"]) && isset($link["content"])) {
$content .= "<p><a href=\"". $link["href"] ."\" target=\"_blank\">". $link["content"] ."</a></p>";
}
$output = "<div class=\"". $class ."\"> ". $content ." </div>";
array_push($notices_array, $output);
}
}
if(!function_exists('wp_admin_notice_display')){
/**
* Affiche toutes les notifications les unes à la suite des autres
*/
function wp_admin_notice_display()
{
global $notices_array;
foreach ($notices_array as $notice) {
echo $notice;
}
}
add_action('admin_notices', 'wp_admin_notice_display');
}
?>