56 lines
1.6 KiB
PHP
56 lines
1.6 KiB
PHP
<?php
|
|
|
|
class WLCMS_Messages
|
|
{
|
|
public static function queue($message, $class = '')
|
|
{
|
|
$default_allowed_classes = array('error', 'warning', 'success', 'info');
|
|
$allowed_classes = apply_filters('wlcms_messages_allowed_classes', $default_allowed_classes);
|
|
$default_class = apply_filters('wlcms_messages_default_class', 'success');
|
|
|
|
if (!in_array($class, $allowed_classes)) {
|
|
$class = $default_class;
|
|
}
|
|
|
|
$messages = maybe_unserialize(get_option('_wlcms_messages', array()));
|
|
$messages[$class][] = $message;
|
|
|
|
update_option('_wlcms_messages', $messages);
|
|
}
|
|
|
|
public static function show()
|
|
{
|
|
$group_messages = maybe_unserialize(get_option('_wlcms_messages'));
|
|
|
|
if (!$group_messages) {
|
|
return;
|
|
}
|
|
|
|
$errors = "";
|
|
if (is_array($group_messages)) {
|
|
foreach ($group_messages as $class => $messages) {
|
|
$errors .= '<div class="notice notice-' . $class . ' is-dismissible"">';
|
|
$prev_message = '';
|
|
foreach ($messages as $message) {
|
|
if ($prev_message != $message)
|
|
$errors .= '<p>' . $message . '</p>';
|
|
$prev_message = $message;
|
|
}
|
|
$errors .= '</div>';
|
|
}
|
|
}
|
|
|
|
delete_option('_wlcms_messages');
|
|
|
|
echo $errors;
|
|
}
|
|
}
|
|
|
|
if (class_exists('WLCMS_Messages') && !function_exists('WLCMS_Queue')) {
|
|
function WLCMS_Queue($message, $class = null)
|
|
{
|
|
WLCMS_Messages::queue($message, $class);
|
|
}
|
|
}
|
|
add_action('admin_notices', array('WLCMS_Messages', 'show'));
|