whoami7 - Manager
:
/
home
/
rattkxnv
/
fitwithiit.com
/
wp-content
/
plugins
/
web-stories
/
includes
/
Admin
/
Upload File:
files >> //home/rattkxnv/fitwithiit.com/wp-content/plugins/web-stories/includes/Admin/Meta_Boxes.php
<?php /** * Class Meta_Boxes. * * @link https://github.com/googleforcreators/web-stories-wp * * @copyright 2020 Google LLC * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 */ /** * Copyright 2020 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare(strict_types = 1); namespace Google\Web_Stories\Admin; use Google\Web_Stories\Service_Base; use Google\Web_Stories\Story_Post_Type; /** * Class Meta_Boxes. */ class Meta_Boxes extends Service_Base { /** * Supported meta box locations. */ public const LOCATIONS = [ 'normal', 'advanced', 'side' ]; /** * Meta box priorities. */ public const PRIORITIES = [ 'high', 'sorted', 'core', 'default', 'low' ]; /** * Init. * * @since 1.2.0 */ public function register(): void { add_action( 'add_meta_boxes_' . Story_Post_Type::POST_TYPE_SLUG, [ $this, 'remove_meta_boxes' ], PHP_INT_MAX ); } /** * Removes all meta boxes with '__back_compat_meta_box' set to 'true'. * * This removes things like the post author meta box, as this feature is * already included in the editor. * * Mimics what do_meta_boxes() does for the block editor. * * @since 1.2.0 * * @see do_meta_boxes() */ public function remove_meta_boxes(): void { global $wp_meta_boxes; $screen = get_current_screen(); if ( ! $screen ) { return; } foreach ( self::LOCATIONS as $context ) { if ( ! isset( $wp_meta_boxes[ $screen->id ][ $context ] ) ) { continue; } foreach ( self::PRIORITIES as $priority ) { if ( ! isset( $wp_meta_boxes[ $screen->id ][ $context ][ $priority ] ) ) { continue; } foreach ( (array) $wp_meta_boxes[ $screen->id ][ $context ][ $priority ] as $meta_box ) { if ( false === $meta_box || ! $meta_box['title'] ) { continue; } if ( // We don't currently support the 'Custom Fields' meta box. 'postcustom' === $meta_box['id'] || ( \is_array( $meta_box['args'] ) && ! empty( $meta_box['args']['__back_compat_meta_box'] ) ) ) { remove_meta_box( $meta_box['id'], $screen, $context ); } } } } } /** * Returns the admin URL for handling meta boxes. * * @since 1.2.0 * * @param int $story_id Story ID. * @return string Meta box URL. */ public function get_meta_box_url( int $story_id ): string { $meta_box_url = admin_url( 'post.php' ); $meta_box_url = add_query_arg( [ 'post' => $story_id, 'action' => 'edit', 'meta-box-loader' => true, 'meta-box-loader-nonce' => wp_create_nonce( 'meta-box-loader' ), ], $meta_box_url ); return $meta_box_url; } /** * Returns list of custom meta boxes per location. * * Used to disable empty meta boxes in the editor. * * @since 1.2.0 * * @see the_block_editor_meta_boxes() * * @return array<string, array<int, array{id: string, title: string}>> List of meta boxes per location. */ public function get_meta_boxes_per_location(): array { global $wp_meta_boxes; $screen = get_current_screen(); if ( ! $screen ) { return []; } $_wp_meta_boxes = $wp_meta_boxes ?? []; /** * Filters meta box data before making it available to the editor. * * This allows for the modifications of meta boxes that are already * present by this point. Do not use as a means of adding meta box data. * * @since 1.3.0 * * @param array $wp_meta_boxes Global meta box state. */ $_wp_meta_boxes = apply_filters( 'web_stories_editor_meta_boxes', $_wp_meta_boxes ); $meta_boxes_per_location = []; foreach ( self::LOCATIONS as $context ) { $meta_boxes_per_location[ $context ] = []; if ( ! isset( $_wp_meta_boxes[ $screen->id ][ $context ] ) ) { continue; } foreach ( self::PRIORITIES as $priority ) { if ( ! isset( $_wp_meta_boxes[ $screen->id ][ $context ][ $priority ] ) ) { continue; } $meta_boxes = (array) $_wp_meta_boxes[ $screen->id ][ $context ][ $priority ]; foreach ( $meta_boxes as $meta_box ) { if ( false === $meta_box || ! $meta_box['title'] ) { continue; } $meta_boxes_per_location[ $context ][] = [ 'id' => $meta_box['id'], 'title' => $meta_box['title'], ]; } } } return $meta_boxes_per_location; } }
Copyright ©2021 || Defacer Indonesia