*/ class QuickCircleMenu extends AdminSettingsModel { public function __construct() { if (is_admin()) { $this->options = (array) AdminSettings::get_instance()->get(); $restrict_for = !empty($this->options['quick_menus_user_roles']) ? $this->options['quick_menus_user_roles'] : ''; if ($restrict_for) { return; } add_action('admin_enqueue_scripts', [$this, 'quick_circle_menu_scripts'], 100); add_action('admin_footer', [$this, 'adminify_quick_circle_menu']); } } /** * Enqueue Quick Circle Script * * @return void */ public function quick_circle_menu_scripts() { wp_enqueue_script('wp-adminify-circle-menu'); wp_localize_script('wp-adminify-admin', 'WPAdminify_QuickMenu', [ 'is_rtl' => is_rtl() ]); $this->circle_menu_loader_css(); } public function circle_menu_loader_css() { $quick_menu_custom_css = ''; $quick_menu_custom_css .= '.no-js .wp-adminify-loader { display: none; } .js .wp-adminify-loader { display: block; position: fixed; right: 20px; bottom: 105px; } .wp-adminify-loader { width: 30px; height: 30px; border-radius: 50%; background: conic-gradient(#0000 10%, #0347FF); -webkit-mask: radial-gradient(farthest-side, #0000 calc(100% - 8px), #000 0); animation: wp_adminify_loader_keyframe 1s infinite linear; } @keyframes wp_adminify_loader_keyframe { to { transform: rotate(1turn) } }'; $quick_menu_custom_css = preg_replace('#/\*.*?\*/#s', '', $quick_menu_custom_css); $quick_menu_custom_css = preg_replace('/\s*([{}|:;,])\s+/', '$1', $quick_menu_custom_css); $quick_menu_custom_css = preg_replace('/\s\s+(.*)/', '$1', $quick_menu_custom_css); $adminify_ui = AdminSettings::get_instance()->get('admin_ui'); if (!empty($adminify_ui)) { wp_add_inline_style('wp-adminify-admin', wp_strip_all_tags($quick_menu_custom_css)); } else { wp_add_inline_style('wp-adminify-default-ui', wp_strip_all_tags($quick_menu_custom_css)); } } /** * Quick Circle Menu * * @return void */ public function adminify_quick_circle_menu() { $this->options = (array) AdminSettings::get_instance()->get(); $quick_menus = !empty($this->options['quick_menus']) ? $this->options['quick_menus'] : ''; if (empty($quick_menus)) { return; } ?>