array( __( 'Overview', 'reactwoo-atomic' ), array( Overview_Page::class, 'render' ) ), 'reactwoo-atomic-elements' => array( __( 'Elements', 'reactwoo-atomic' ), array( Elements_Page::class, 'render' ) ), 'reactwoo-atomic-licence' => array( $licence_label, array( Licence_Page::class, 'render' ) ), 'reactwoo-atomic-integrations' => array( __( 'Integrations', 'reactwoo-atomic' ), array( Integrations_Page::class, 'render' ) ), 'reactwoo-atomic-settings' => array( __( 'Settings', 'reactwoo-atomic' ), array( Settings_Page::class, 'render' ) ), ); foreach ( $pages as $slug => $meta ) { add_submenu_page( self::PARENT, $meta[0], $meta[0], 'manage_options', $slug, $meta[1] ); } } /** * @return list */ public static function screen_slugs() { return array( 'toplevel_page_reactwoo-atomic', 'reactwoo-atomic_page_reactwoo-atomic-elements', 'reactwoo-atomic_page_reactwoo-atomic-licence', 'reactwoo-atomic_page_reactwoo-atomic-integrations', 'reactwoo-atomic_page_reactwoo-atomic-settings', ); } /** * True on ReactWoo Atomic's own admin screens. * * @return bool */ public static function is_plugin_screen() { if ( ! function_exists( 'get_current_screen' ) ) { return false; } $screen = get_current_screen(); if ( ! $screen || empty( $screen->id ) ) { return false; } $id = (string) $screen->id; return in_array( $id, self::screen_slugs(), true ) || false !== strpos( $id, 'reactwoo-atomic' ); } /** * @param string $slug Page slug. * @return string */ public static function url( $slug ) { return admin_url( 'admin.php?page=' . sanitize_key( $slug ) ); } }