Пример #1
0
 /**
  * Run init logic.
  */
 public function init()
 {
     // Setting the screen option.
     if (filter_input(INPUT_GET, 'page') === 'wpseo_search_console') {
         if (filter_input(INPUT_GET, 'tab') !== 'settings' && WPSEO_GSC_Settings::get_profile() === '') {
             wp_redirect(add_query_arg('tab', 'settings'));
             exit;
         }
         $this->set_hooks();
         $this->set_dependencies();
         $this->request_handler();
     } elseif (WPSEO_Utils::is_yoast_seo_page() && current_user_can('manage_options') && WPSEO_GSC_Settings::get_profile() === '' && get_user_option('wpseo_dismissed_gsc_notice', get_current_user_id()) !== '1') {
         add_action('admin_init', array($this, 'register_gsc_notification'));
     }
     add_action('admin_init', array($this, 'register_settings'));
 }
Пример #2
0
 /**
  * Class constructor
  */
 function __construct()
 {
     global $pagenow;
     $this->options = WPSEO_Options::get_options(array('wpseo', 'wpseo_permalinks'));
     if (is_multisite()) {
         WPSEO_Options::maybe_set_multisite_defaults(false);
     }
     if ($this->options['stripcategorybase'] === true) {
         add_action('created_category', array($this, 'schedule_rewrite_flush'));
         add_action('edited_category', array($this, 'schedule_rewrite_flush'));
         add_action('delete_category', array($this, 'schedule_rewrite_flush'));
     }
     $this->admin_features = array('google_search_console' => new WPSEO_GSC(), 'dashboard_widget' => new Yoast_Dashboard_Widget());
     if (WPSEO_Metabox::is_post_overview($pagenow) || WPSEO_Metabox::is_post_edit($pagenow)) {
         $this->admin_features['primary_category'] = new WPSEO_Primary_Term_Admin();
     }
     if (filter_input(INPUT_GET, 'page') === 'wpseo_tools' && filter_input(INPUT_GET, 'tool') === null) {
         new WPSEO_Recalculate_Scores();
     }
     // Needs the lower than default priority so other plugins can hook underneath it without issue.
     add_action('admin_menu', array($this, 'register_settings_page'), 5);
     add_action('network_admin_menu', array($this, 'register_network_settings_page'));
     add_filter('plugin_action_links_' . WPSEO_BASENAME, array($this, 'add_action_link'), 10, 2);
     add_action('admin_enqueue_scripts', array($this, 'config_page_scripts'));
     add_action('admin_enqueue_scripts', array($this, 'enqueue_global_style'));
     if ($this->options['cleanslugs'] === true) {
         add_filter('name_save_pre', array($this, 'remove_stopwords_from_slug'), 0);
     }
     add_filter('user_contactmethods', array($this, 'update_contactmethods'), 10, 1);
     add_action('after_switch_theme', array($this, 'switch_theme'));
     add_action('switch_theme', array($this, 'switch_theme'));
     add_filter('set-screen-option', array($this, 'save_bulk_edit_options'), 10, 3);
     add_action('admin_init', array('WPSEO_Plugin_Conflict', 'hook_check_for_plugin_conflicts'), 10, 1);
     add_action('admin_init', array($this, 'import_plugin_hooks'));
     add_filter('wpseo_submenu_pages', array($this, 'filter_settings_pages'));
     WPSEO_Sitemaps_Cache::register_clear_on_option_update('wpseo');
     if (WPSEO_Utils::is_yoast_seo_page()) {
         add_action('admin_enqueue_scripts', array($this, 'enqueue_assets'));
     }
     if (WPSEO_Utils::is_api_available()) {
         $configuration = new WPSEO_Configuration_Page();
         if (filter_input(INPUT_GET, 'page') === self::PAGE_IDENTIFIER) {
             $configuration->catch_configuration_request();
         }
     }
 }
 /**
  * Check if the notification is relevant for the current user
  *
  * @return bool True if a user needs to see this Notification, False if not.
  */
 public function display_for_current_user()
 {
     // If the notification is for the current page only, always show.
     if (!$this->is_persistent()) {
         return true;
     }
     // If we are not on a WPSEO page and this is required.
     if (true === $this->options['wpseo_page_only'] && !WPSEO_Utils::is_yoast_seo_page()) {
         return false;
     }
     // If the current user doesn't match capabilities.
     return $this->match_capabilities();
 }