dependency_support = $dependency_support; } /** * Runs on instantiation. */ public function register() { add_action( 'admin_enqueue_scripts', [ $this, 'maybe_show_notice' ], 99 ); } /** * Shows a notice in the editor if the Gutenberg or WP version prevents plugin features from working. */ public function maybe_show_notice() { if ( $this->dependency_support->has_support() ) { return; } if ( ! $this->is_current_screen_block_editor_for_amp_enabled_post_type() ) { return; } if ( ! current_user_can( 'manage_options' ) ) { return; } wp_add_inline_script( 'wp-edit-post', sprintf( 'wp.domReady( function () { wp.data.dispatch( "core/notices" ).createWarningNotice( %s ) } );', wp_json_encode( __( 'AMP functionality is not available since your version of the Block Editor is too old. Please either update WordPress core to the latest version or activate the Gutenberg plugin.', 'amp' ) ) ) ); } /** * Returns whether the current screen is using the block editor and the post being edited supports AMP. * * @return bool */ public function is_current_screen_block_editor_for_amp_enabled_post_type() { $screen = get_current_screen(); return ( $screen && ! empty( $screen->is_block_editor ) && in_array( get_post_type(), AMP_Post_Type_Support::get_supported_post_types(), true ) ); } }