*/ 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; } ?>