• File: yoast-admin-and-dashboard-conditional.php
  • Full Path: /home/matthif/www/wp-content/plugins/wordpress-seo/src/conditionals/yoast-admin-and-dashboard-conditional.php
  • Date Modified: 02/24/2024 11:29 PM
  • File size: 1.62 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php // phpcs:ignore Yoast.Files.FileName.InvalidClassFileName -- Reason: this explicitly concerns the Yoast admin and dashboard.

namespace Yoast\WP\SEO\Conditionals;

/**
 * Conditional that is only met when in the admin dashboard, update or Yoast SEO pages.
 */
class Yoast_Admin_And_Dashboard_Conditional implements Conditional {

    
/**
     * Returns `true` when on the admin dashboard, update or Yoast SEO pages.
     *
     * @return bool `true` when on the admin dashboard, update or Yoast SEO pages.
     */
    
public function is_met() {
        global 
$pagenow;

        
// Bail out early if we're not on the front-end.
        
if ( ! \is_admin() ) {
            return 
false;
        }

        
// Do not output on plugin / theme upgrade pages or when WordPress is upgrading.
        
if ( ( \defined'IFRAME_REQUEST' ) && \IFRAME_REQUEST ) || $this->on_upgrade_page() || \wp_installing() ) {
            return 
false;
        }

        if ( 
$pagenow === 'admin.php' && isset( $_GET['page'] ) && \strpos$_GET['page'], 'wpseo' ) === ) {
            return 
true;
        }

        
$target_pages = [
            
'index.php',
            
'plugins.php',
            
'update-core.php',
            
'options-permalink.php',
        ];

        return 
\in_array$pagenow$target_pagestrue );
    }

    
/**
     * Checks if we are on a theme or plugin upgrade page.
     *
     * @return bool Whether we are on a theme or plugin upgrade page.
     */
    
private function on_upgrade_page() {
        
/*
         * IFRAME_REQUEST is not defined on these pages,
         * though these action pages do show when upgrading themes or plugins.
         */
        
$actions = [ 'do-theme-upgrade''do-plugin-upgrade''do-core-upgrade''do-core-reinstall' ];
        return isset( 
$_GET['action'] ) && \in_array$_GET['action'], $actionstrue );
    }
}