is_pointer_dismissed() ) { return; } wp_enqueue_style( 'wp-pointer' ); wp_enqueue_script( self::SCRIPT_SLUG, amp_get_asset_url( 'js/' . self::SCRIPT_SLUG . '.js' ), array( 'jquery', 'wp-pointer' ), AMP__VERSION, true ); wp_add_inline_script( self::SCRIPT_SLUG, sprintf( 'ampAdminPointer.load( %s );', wp_json_encode( $this->get_pointer_data() ) ) ); } /** * Registers style and script for tooltips. * * @since 1.0 */ public function register_tooltips() { wp_register_style( self::TOOLTIP_SLUG, amp_get_asset_url( 'css/' . self::TOOLTIP_SLUG . '.css' ), array( 'wp-pointer' ), AMP__VERSION ); wp_register_script( self::TOOLTIP_SLUG, amp_get_asset_url( 'js/' . self::TOOLTIP_SLUG . '.js' ), array( 'jquery', 'wp-pointer' ), AMP__VERSION, true ); } /** * Whether the AMP admin pointer has been dismissed. * * @since 1.0 * @return boolean Is dismissed. */ protected function is_pointer_dismissed() { // Consider dismissed in v1.1, since admin pointer is only to educate about the new modes in 1.0. if ( version_compare( strtok( AMP__VERSION, '-' ), '1.1', '>=' ) ) { return true; } $dismissed = get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ); if ( empty( $dismissed ) ) { return false; } $dismissed = explode( ',', strval( $dismissed ) ); return in_array( self::TEMPLATE_POINTER_ID, $dismissed, true ); } /** * Gets the pointer data to pass to the script. * * @since 1.0 * @return array Pointer data. */ public function get_pointer_data() { return array( 'pointer' => array( 'pointer_id' => self::TEMPLATE_POINTER_ID, 'target' => '#toplevel_page_amp-options', 'options' => array( 'content' => sprintf( '
%s
%s
', __( 'AMP', 'amp' ), __( 'New AMP Template Modes', 'amp' ), __( 'You can now reuse your theme\'s templates and styles in AMP responses, in both “Transitional” and “Native” modes.', 'amp' ) ), 'position' => array( 'edge' => 'left', 'align' => 'middle', ), ), ), ); } }