<?php

if (!defined('ABSPATH')) {
    exit;
}
acf_register_store('notices');
if (!class_exists('ACF_Admin_Notice')) {
    class ACF_Admin_Notice extends ACF_Data
    {
        var $data = array('text' => '', 'type' => 'info', 'dismissible' => true);
        function render()
        {
            $notice_text = $this->get('text');
            $notice_type = $this->get('type');
            $is_dismissible = $this->get('dismissible');
            printf('<div class="acf-admin-notice notice notice-%s %s">%s</div>', esc_attr($notice_type), $is_dismissible ? 'is-dismissible' : '', acf_esc_html(wpautop(acf_punctify($notice_text))));
        }
    }
}
function acf_new_admin_notice($data = false)
{
    $instance = new ACF_Admin_Notice($data);
    acf_get_store('notices')->set($instance->cid, $instance);
    return $instance;
}
function acf_render_admin_notices()
{
    $notices = acf_get_store('notices')->get_data();
    if ($notices) {
        foreach ($notices as $notice) {
            $notice->render();
        }
    }
}
add_action('admin_notices', 'acf_render_admin_notices', 99);
function acf_add_admin_notice($text = '', $type = 'info')
{
    return acf_new_admin_notice(array('text' => $text, 'type' => $type));
}