42 lines
		
	
	
		
			1016 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1016 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * WPSEO plugin file.
 | 
						|
 *
 | 
						|
 * @package WPSEO\Admin\Menu
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Normalize submenu capabilities to `wpseo_manage_options`.
 | 
						|
 */
 | 
						|
class WPSEO_Submenu_Capability_Normalize implements WPSEO_WordPress_Integration {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Registers all hooks to WordPress.
 | 
						|
	 *
 | 
						|
	 * @return void
 | 
						|
	 */
 | 
						|
	public function register_hooks() {
 | 
						|
		add_filter( 'wpseo_submenu_pages', [ $this, 'normalize_submenus_capability' ] );
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Normalizes any `manage_options` to `wpseo_manage_options`.
 | 
						|
	 *
 | 
						|
	 * This is needed as the module plugins are not updated with the new capabilities directly,
 | 
						|
	 * but they should not be shown as main menu items.
 | 
						|
	 *
 | 
						|
	 * @param array $submenu_pages List of subpages to convert.
 | 
						|
	 *
 | 
						|
	 * @return array Converted subpages.
 | 
						|
	 */
 | 
						|
	public function normalize_submenus_capability( $submenu_pages ) {
 | 
						|
		foreach ( $submenu_pages as $index => $submenu_page ) {
 | 
						|
			if ( $submenu_page[3] === 'manage_options' ) {
 | 
						|
				$submenu_pages[ $index ][3] = 'wpseo_manage_options';
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		return $submenu_pages;
 | 
						|
	}
 | 
						|
}
 |