get_required_capability(); $page_slug = $this->get_page_slug(); // 1. Primary Top-Level Admin Menu Item in the WordPress sidebar navigation. $this->page_hook = add_menu_page( esc_html__( 'AeroSpin CSS Loading Spinners', 'aerospin-css-loading-spinners' ), esc_html__( 'AeroSpin Spinners', 'aerospin-css-loading-spinners' ), $capability, $page_slug, array( $this, 'render_settings_page' ), 'dashicons-update', 65 ); // 2. Also register under Settings -> AeroSpin CSS Loading Spinners for users checking Settings. $this->settings_page_hook = add_options_page( esc_html__( 'AeroSpin CSS Loading Spinners', 'aerospin-css-loading-spinners' ), esc_html__( 'AeroSpin CSS Loading Spinners', 'aerospin-css-loading-spinners' ), $capability, $page_slug, array( $this, 'render_settings_page' ) ); } /** * Register a quick shortcut node in the top WordPress admin bar. * * @since 1.1.6 * * @param WP_Admin_Bar $wp_admin_bar The WordPress admin bar instance. * @return void */ public function register_admin_bar_node( $wp_admin_bar ) { if ( ! is_object( $wp_admin_bar ) || ! current_user_can( $this->get_required_capability() ) ) { return; } $settings_url = admin_url( 'admin.php?page=' . $this->get_page_slug() ); $wp_admin_bar->add_node( array( 'id' => 'aerospin-spinners', 'title' => '' . esc_html__( 'AeroSpin', 'aerospin-css-loading-spinners' ) . '', 'href' => esc_url( $settings_url ), 'meta' => array( 'title' => esc_html__( 'AeroSpin CSS Loading Spinners Settings', 'aerospin-css-loading-spinners' ), ), ) ); } /** * Enqueue admin assets for the AeroSpin CSS Loading Spinners page only. * * @since 1.0.0 * * @param string $hook_suffix Current admin page hook suffix. * @return void */ public function enqueue_assets( $hook_suffix ) { $page_slug = $this->get_page_slug(); $valid_hooks = array( $this->page_hook, $this->settings_page_hook, 'toplevel_page_' . $page_slug, 'settings_page_' . $page_slug, 'toplevel_page_acls-settings', 'settings_page_acls-settings', 'toplevel_page_aerospin-css-loading-spinners', 'settings_page_aerospin-css-loading-spinners', 'settings_page_pure-css-spinners', 'settings_page_clearpath-spinners', 'settings_page_cp-spinners', ); if ( ! in_array( $hook_suffix, array_filter( $valid_hooks ), true ) ) { return; } wp_enqueue_style( 'wp-color-picker' ); // Load public spinner styles so the admin preview uses the same animation classes. wp_enqueue_style( 'acls-public', $this->get_plugin_url( 'public/css/acls-spinners.css' ), array(), $this->get_plugin_version() ); wp_enqueue_style( 'acls-admin', $this->get_plugin_url( 'admin/css/acls-admin.css' ), array( 'wp-color-picker', 'acls-public' ), $this->get_plugin_version() ); wp_enqueue_script( 'acls-admin', $this->get_plugin_url( 'admin/js/acls-admin.js' ), array( 'jquery', 'wp-color-picker' ), $this->get_plugin_version(), true ); } /* |-------------------------------------------------------------------------- | SECTION 3: Page Rendering |-------------------------------------------------------------------------- */ /** * Render the settings page. * * @since 1.0.0 * * @return void */ public function render_settings_page() { if ( ! current_user_can( $this->get_required_capability() ) ) { wp_die( esc_html__( 'You do not have permission to access AeroSpin CSS Loading Spinners settings.', 'aerospin-css-loading-spinners' ), esc_html__( 'AeroSpin CSS Loading Spinners Permission Error', 'aerospin-css-loading-spinners' ), array( 'response' => 403, ) ); } $settings = $this->get_settings(); $spinners = $this->get_spinners(); $categories = $this->get_categories( $spinners ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Tab navigation only; no form processing or data mutation occurs. $raw_tab = isset( $_GET['tab'] ) ? sanitize_key( wp_unslash( $_GET['tab'] ) ) : 'settings'; $active_tab = 'settings'; if ( 'docs' === $raw_tab || 'documentation' === $raw_tab ) { $active_tab = 'documentation'; } elseif ( 'status' === $raw_tab || 'diagnostics' === $raw_tab ) { $active_tab = 'diagnostics'; } ?>
%2$s
Customize -> Additional CSS).', 'aerospin-css-loading-spinners' ); ?>
.add_to_cart_button
.single_add_to_cart_button
.woocommerce-cart-link
.wc-block-components-checkout-place-order-button
.elementor-clickable
.dialog-close-button
.et_pb_button
.fl-button
.gform_button
.wpcf7-submit
.fancybox-active
.lightbox-trigger
#acls-overlay (legacy: #cps-overlay) |
DOM ID | |
.acls-spinner (legacy: .cps-spinner) |
CSS Class | |
--acls-color (legacy: --cps-color) |
CSS Var | |
--acls-secondary (legacy: --cps-secondary) |
CSS Var | |
acls:shown (legacy: aerospin_css_loading_spinners:shown) |
JS Event | |
aerospin_css_loading_spinners:hidden (legacy: pure_css_spinners:hidden) |
JS Event | |
window.AeroSpin_CSS_Loading_Spinners.hide() (legacy: window.Pure_CSS_Spinners.hide()) |
JS API |
() |
|
() |
|
|
|
|
|
|
|
|
|
|
|
aerospin-css-loading-spinners () |
() |
|
px |
|
/
|
|
@ % (Blur: px) |
|
Min Display: ms | Fade-Out: ms |
|
selectors | URL paths |
aerospin_css_loading_spinners_settings_cache (legacy: Pure_CSS_Spinners_settings_cache) |
|
|---|---|
aerospin_css_loading_spinners_spinner_categories (legacy: Pure_CSS_Spinners_spinner_categories) |