Linux heracles.o2switch.net 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
/
home
/
ophq1335
/
www
/
wp-content
/
plugins
/
wp-seopress
/
src
/
Actions
/
Admin
/
/home/ophq1335/www/wp-content/plugins/wp-seopress/src/Actions/Admin/ModuleMetabox.php
<?php // phpcs:ignore namespace SEOPress\Actions\Admin; if ( ! defined( 'ABSPATH' ) ) { exit; } use SEOPress\Core\Hooks\ExecuteHooks; /** * Module metabox */ class ModuleMetabox implements ExecuteHooks { /** * The ModuleMetabox hooks. * * @since 5.0.0 * * @return void */ public function hooks() { add_action( 'admin_enqueue_scripts', array( $this, 'enqueue' ) ); add_action( 'init', array( $this, 'enqueue' ) ); if ( current_user_can( seopress_capability( 'edit_posts' ) ) ) { // phpcs:ignore add_action( 'wp_enqueue_scripts', array( $this, 'enqueueFrontend' ) ); } } /** * Enqueue module. * * @param array $args_localize The arguments localize. * * @since 5.0.0 * * @return void */ protected function enqueueModule( $args_localize = array() ) { if ( ! seopress_get_service( 'EnqueueModuleMetabox' )->canEnqueue() ) { return; } // AMP compatibility. if ( function_exists( 'amp_is_request' ) && amp_is_request() ) { return; } // Bricks builder compatibility. if ( function_exists( 'bricks_is_builder_call' ) && bricks_is_builder_call() === true ) { return; } // Bricks builder compatibility: duplicated tag on homepage. if ( isset( $_GET['brickspreview'] ) ) { // phpcs:ignore return; } $is_gutenberg = false; if ( function_exists( 'get_current_screen' ) ) { $current_screen = get_current_screen(); if ( $current_screen && method_exists( $current_screen, 'is_block_editor' ) ) { $is_gutenberg = true === get_current_screen()->is_block_editor(); } } $dependencies = array( 'jquery-ui-datepicker', 'react', 'react-dom', 'wp-components' ); if ( $is_gutenberg ) { $dependencies = array_merge( $dependencies, array( 'wp-edit-post', 'wp-plugins' ) ); } wp_enqueue_media(); wp_enqueue_style( 'wp-components' ); wp_enqueue_script( 'seopress-metabox', SEOPRESS_URL_PUBLIC . '/metaboxe.js', $dependencies, SEOPRESS_VERSION, true ); global $post; if ( post_type_supports( get_post_type( $post ), 'custom-fields' ) ) { wp_enqueue_script( 'seopress-pre-publish-checklist', SEOPRESS_URL_PUBLIC . '/editor/pre-publish-checklist/index.js', array(), SEOPRESS_VERSION, true ); } if ( $is_gutenberg ) { // Check if universal metabox is disabled. if ( seopress_get_service( 'AdvancedOption' )->getDisableUniversalMetaboxGutenberg() ) { return; } // Check if metabox is disabled for this post type. if ( '1' === seopress_get_service( 'TitleOption' )->getSingleCptEnable( $post->post_type ) ) { return; } wp_enqueue_script( 'seopress-sidebar-panel', SEOPRESS_URL_PUBLIC . '/editor/sidebar-panel/index.js', array( 'wp-plugins', 'wp-editor', 'wp-element', 'wp-components', 'wp-i18n' ), SEOPRESS_VERSION, true ); // Get score data for the current post. $score = seopress_get_service( 'ContentAnalysisDatabase' )->getData( $post->ID, array( 'score' ) ); $score_color = '#94a3b8'; // Default gray. if ( ! empty( $score ) && is_array( $score ) ) { // Flatten the score array. $score_flat = array(); foreach ( $score as $item ) { if ( is_array( $item ) ) { $score_flat = array_merge( $score_flat, $item ); } } // Both 'high' and 'medium' mean "should be improved" (orange/yellow). if ( in_array( 'high', $score_flat, true ) || in_array( 'medium', $score_flat, true ) ) { $score_color = '#f59e0b'; // Orange - should be improved. } else { $score_color = '#16a34a'; // Green - good. } } wp_localize_script( 'seopress-sidebar-panel', 'seopressScore', array( 'color' => $score_color, 'showText' => apply_filters( 'seopress_toolbar_button_show_text', true ), ) ); } $value = wp_create_nonce( 'seopress_rest' ); $tags = seopress_get_service( 'TagsToString' )->getTagsAvailable( array( 'without_classes' => array( '\SEOPress\Tags\PostThumbnailUrlHeight', '\SEOPress\Tags\PostThumbnailUrlWidth', ), 'without_classes_pos' => array( '\SEOPress\Tags\Schema', '\SEOPressPro\Tags\Schema' ), ) ); $get_locale = get_locale(); if ( ! empty( $get_locale ) ) { $locale = function_exists( 'locale_get_primary_language' ) ? locale_get_primary_language( get_locale() ) : get_locale(); $country_code = function_exists( 'locale_get_region' ) ? locale_get_region( get_locale() ) : get_locale(); } else { $locale = 'en'; $country_code = 'US'; } $settings_advanced = seopress_get_service( 'AdvancedOption' ); $user = wp_get_current_user(); $roles = (array) $user->roles; $post_id = is_singular() ? get_the_ID() : null; $post_type = null; if ( $post_id ) { $post_type = get_post_type( $post_id ); } // Compatibility with WooCommerce beta product page. if ( isset( $_GET['path'] ) && strpos( $_GET['path'], 'product' ) && isset( $_GET['page'] ) && 'wc-admin' === $_GET['page'] ) { // phpcs:ignore $data_path = explode( '/', $_GET['path'] ); // phpcs:ignore $post_id = $data_path[ count( $data_path ) - 1 ]; } $args = array_merge( array( 'SEOPRESS_URL_PUBLIC' => SEOPRESS_URL_PUBLIC, 'SEOPRESS_URL_ASSETS' => SEOPRESS_URL_ASSETS, 'SEOPRESS_VERSION' => SEOPRESS_VERSION, 'SEOPRESS_PRO_VERSION' => defined( 'SEOPRESS_PRO_VERSION' ) ? SEOPRESS_PRO_VERSION : '0', 'SEOPRESS_PRO_IS_ACTIVATED' => is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ? true : false, 'SITENAME' => get_bloginfo( 'name' ), 'SITEURL' => site_url(), 'ADMIN_URL_TITLES' => admin_url( 'admin.php?page=seopress-titles#tab=tab_seopress_titles_single' ), 'ADMIN_URL_ARCHIVES_TITLES' => admin_url( 'admin.php?page=seopress-titles#tab=tab_seopress_titles_archives' ), 'TAGS' => array_values( $tags ), 'REST_URL' => rest_url(), 'NONCE' => wp_create_nonce( 'wp_rest' ), 'POST_ID' => $post_id, 'POST_TYPE' => $post_type, 'IS_GUTENBERG' => apply_filters( 'seopress_module_metabox_is_gutenberg', $is_gutenberg ), 'SELECTOR_GUTENBERG' => apply_filters( 'seopress_module_metabox_selector_gutenberg', '.edit-post-header .edit-post-header-toolbar__left' ), 'TOGGLE_MOBILE_PREVIEW' => apply_filters( 'seopress_toggle_mobile_preview', 1 ), 'GOOGLE_SUGGEST' => array( 'ACTIVE' => apply_filters( 'seopress_ui_metabox_google_suggest', false ), 'LOCALE' => $locale, 'COUNTRY_CODE' => $country_code, ), 'USER_ROLES' => array_values( $roles ), 'ROLES_BLOCKED' => array( 'GLOBAL' => $settings_advanced->getSecurityMetaboxRole(), 'CONTENT_ANALYSIS' => $settings_advanced->getSecurityMetaboxRoleContentAnalysis(), ), 'OPTIONS' => array( 'AI' => seopress_get_service( 'ToggleOption' )->getToggleAi() === '1' ? true : false, ), 'TABS' => array( 'SCHEMAS' => apply_filters( 'seopress_active_schemas_manual_universal_metabox', false ), ), 'SUB_TABS' => array( 'GOOGLE_NEWS' => apply_filters( 'seopress_active_google_news', false ), 'VIDEO_SITEMAP' => apply_filters( 'seopress_active_video_sitemap', false ), 'INSPECT_URL' => apply_filters( 'seopress_active_inspect_url', false ), 'INTERNAL_LINKING' => apply_filters( 'seopress_active_internal_linking', false ), 'SCHEMA_MANUAL' => apply_filters( 'seopress_active_schemas', false ), ), 'FAVICON' => get_site_icon_url( 32 ), 'BEACON_SVG' => apply_filters( 'seopress_beacon_svg', SEOPRESS_URL_ASSETS . '/img/beacon.svg' ), 'AI_SVG' => apply_filters( 'seopress_ai_svg', SEOPRESS_URL_ASSETS . '/img/ai.svg' ), ), $args_localize ); wp_localize_script( 'seopress-metabox', 'SEOPRESS_DATA', $args ); wp_localize_script( 'seopress-metabox', 'SEOPRESS_I18N', seopress_get_service( 'I18nUniversalMetabox' )->getTranslations() ); // Enqueue metabox promotion banner if available. $this->enqueueMetaboxPromo(); } /** * Enqueue metabox promotion banner. * * @since 9.6.0 * * @return void */ protected function enqueueMetaboxPromo() { // White-label check. if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) { if ( method_exists( seopress_get_service( 'ToggleOption' ), 'getToggleWhiteLabel' ) && '1' === seopress_get_service( 'ToggleOption' )->getToggleWhiteLabel() ) { return; } } // Check for metabox promotion. $promotion = seopress_get_service( 'PromotionService' )->getPromotion( 'metabox' ); if ( ! $promotion ) { return; } // Enqueue the metabox promo script and styles. wp_enqueue_style( 'seopress-promotions', SEOPRESS_URL_ASSETS . '/css/seopress-promotions.css', array(), SEOPRESS_VERSION ); wp_enqueue_script( 'seopress-metabox-promo', SEOPRESS_URL_ASSETS . '/js/seopress-metabox-promo.js', array( 'wp-element', 'seopress-metabox' ), SEOPRESS_VERSION, true ); // Flatten promotion content for the banner. $promo_data = array( 'id' => $promotion['id'], 'title' => $promotion['content']['title'] ?? '', 'body' => $promotion['content']['body'] ?? '', 'cta_text' => $promotion['content']['cta_text'] ?? '', 'cta_url' => $promotion['content']['cta_url'] ?? '', 'icon' => $promotion['content']['icon'] ?? 'star-filled', 'styling' => $promotion['styling'] ?? array(), 'dismissible' => $promotion['dismissible'] ?? true, 'dismiss_duration' => $promotion['dismiss_duration_days'] ?? 30, ); wp_localize_script( 'seopress-metabox-promo', 'seopressMetaboxPromo', array( 'promotion' => $promo_data ) ); // Also localize the dismiss nonce for AJAX dismissal. wp_localize_script( 'seopress-metabox-promo', 'seopressPromotions', array( 'dismiss_nonce' => wp_create_nonce( 'seopress_dismiss_promotion_nonce' ), 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'stats_endpoint' => \SEOPress\Constants\Promotions::getApiUrl() . '/stats', ) ); } /** * Enqueue frontend. * * @since 5.0.0 * * @return void */ public function enqueueFrontend() { $this->enqueueModule( array( 'POST_ID' => get_the_ID() ) ); } /** * Enqueue. * * @since 5.0.0 * * @param string $page The page. * * @return void */ public function enqueue( $page ) { if ( ! in_array( $page, array( 'post.php', 'woocommerce_page_wc-admin' ), true ) ) { return; } $this->enqueueModule(); } /** * Enqueue elementor. * * @since 5.0.0 * * @return void */ public function enqueueElementor() { $this->enqueueModule(); } }