<?php
/**
* WordPress Customize Nav Menus classes
*
* @package WordPress
* @subpackage Customize
* @since 4.3.0
*/
/**
* Customize Nav Menus class.
*
* Implements menu management in the Customizer.
*
* @since 4.3.0
*
* @see WP_Customize_Manager
*/
final class WP_Customize_Nav_Menus {
/**
* WP_Customize_Manager instance.
*
* @since 4.3.0
* @var WP_Customize_Manager
*/
public $manager;
/**
* Original nav menu locations before the theme was switched.
*
* @since 4.9.0
* @var array
*/
protected $original_nav_menu_locations;
/**
* Constructor.
*
* @since 4.3.0
*
* @param object $manager An instance of the WP_Customize_Manager class.
*/
public function __construct( $manager ) {
$this->manager = $manager;
$this->original_nav_menu_locations = get_nav_menu_locations();
// See https://github.com/xwp/wp-customize-snapshots/blob/962586659688a5b1fd9ae93618b7ce2d4e7a421c/php/class-customize-snapshot-manager.php#L469-L499
add_action( 'customize_register', array( $this, 'customize_register' ), 11 );
add_filter( 'customize_dynamic_setting_args', array( $this, 'filter_dynamic_setting_args' ), 10, 2 );
add_filter( 'customize_dynamic_setting_class', array( $this, 'filter_dynamic_setting_class' ), 10, 3 );
add_action( 'customize_save_nav_menus_created_posts', array( $this, 'save_nav_menus_created_posts' ) );
// Skip remaining hooks when the user can't manage nav menus anyway.
if ( ! current_user_can( 'edit_theme_options' ) ) {
return;
}
add_filter( 'customize_refresh_nonces', array( $this, 'filter_nonces' ) );
add_action( 'wp_ajax_load-available-menu-items-customizer', array( $this, 'ajax_load_available_items' ) );
add_action( 'wp_ajax_search-available-menu-items-customizer', array( $this, 'ajax_search_available_items' ) );
add_action( 'wp_ajax_customize-nav-menus-insert-auto-draft', array( $this, 'ajax_insert_auto_draft_post' ) );
add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
add_action( 'customize_controls_print_footer_scripts', array
|