wp/wp-includes/class-wp-customize-widgets.php
changeset 9 177826044cd9
parent 7 cf61fcea0001
child 16 a86126ab1dd4
--- a/wp/wp-includes/class-wp-customize-widgets.php	Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-includes/class-wp-customize-widgets.php	Mon Oct 14 18:28:13 2019 +0200
@@ -100,32 +100,32 @@
 		$this->manager = $manager;
 
 		// See https://github.com/xwp/wp-customize-snapshots/blob/962586659688a5b1fd9ae93618b7ce2d4e7a421c/php/class-customize-snapshot-manager.php#L420-L449
-		add_filter( 'customize_dynamic_setting_args',          array( $this, 'filter_customize_dynamic_setting_args' ), 10, 2 );
-		add_action( 'widgets_init',                            array( $this, 'register_settings' ), 95 );
-		add_action( 'customize_register',                      array( $this, 'schedule_customize_register' ), 1 );
+		add_filter( 'customize_dynamic_setting_args', array( $this, 'filter_customize_dynamic_setting_args' ), 10, 2 );
+		add_action( 'widgets_init', array( $this, 'register_settings' ), 95 );
+		add_action( 'customize_register', array( $this, 'schedule_customize_register' ), 1 );
 
 		// Skip remaining hooks when the user can't manage widgets anyway.
 		if ( ! current_user_can( 'edit_theme_options' ) ) {
 			return;
 		}
 
-		add_action( 'wp_loaded',                               array( $this, 'override_sidebars_widgets_for_theme_switch' ) );
-		add_action( 'customize_controls_init',                 array( $this, 'customize_controls_init' ) );
-		add_action( 'customize_controls_enqueue_scripts',      array( $this, 'enqueue_scripts' ) );
-		add_action( 'customize_controls_print_styles',         array( $this, 'print_styles' ) );
-		add_action( 'customize_controls_print_scripts',        array( $this, 'print_scripts' ) );
+		add_action( 'wp_loaded', array( $this, 'override_sidebars_widgets_for_theme_switch' ) );
+		add_action( 'customize_controls_init', array( $this, 'customize_controls_init' ) );
+		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+		add_action( 'customize_controls_print_styles', array( $this, 'print_styles' ) );
+		add_action( 'customize_controls_print_scripts', array( $this, 'print_scripts' ) );
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'print_footer_scripts' ) );
 		add_action( 'customize_controls_print_footer_scripts', array( $this, 'output_widget_control_templates' ) );
-		add_action( 'customize_preview_init',                  array( $this, 'customize_preview_init' ) );
-		add_filter( 'customize_refresh_nonces',                array( $this, 'refresh_nonces' ) );
+		add_action( 'customize_preview_init', array( $this, 'customize_preview_init' ) );
+		add_filter( 'customize_refresh_nonces', array( $this, 'refresh_nonces' ) );
 
-		add_action( 'dynamic_sidebar',                         array( $this, 'tally_rendered_widgets' ) );
-		add_filter( 'is_active_sidebar',                       array( $this, 'tally_sidebars_via_is_active_sidebar_calls' ), 10, 2 );
-		add_filter( 'dynamic_sidebar_has_widgets',             array( $this, 'tally_sidebars_via_dynamic_sidebar_calls' ), 10, 2 );
+		add_action( 'dynamic_sidebar', array( $this, 'tally_rendered_widgets' ) );
+		add_filter( 'is_active_sidebar', array( $this, 'tally_sidebars_via_is_active_sidebar_calls' ), 10, 2 );
+		add_filter( 'dynamic_sidebar_has_widgets', array( $this, 'tally_sidebars_via_dynamic_sidebar_calls' ), 10, 2 );
 
 		// Selective Refresh.
-		add_filter( 'customize_dynamic_partial_args',          array( $this, 'customize_dynamic_partial_args' ), 10, 2 );
-		add_action( 'customize_preview_init',                  array( $this, 'selective_refresh_init' ) );
+		add_filter( 'customize_dynamic_partial_args', array( $this, 'customize_dynamic_partial_args' ), 10, 2 );
+		add_action( 'customize_preview_init', array( $this, 'selective_refresh_init' ) );
 	}
 
 	/**
@@ -198,7 +198,7 @@
 	 * @since 4.2.0
 	 */
 	public function register_settings() {
-		$widget_setting_ids = array();
+		$widget_setting_ids   = array();
 		$incoming_setting_ids = array_keys( $this->manager->unsanitized_post_values() );
 		foreach ( $incoming_setting_ids as $setting_id ) {
 			if ( ! is_null( $this->get_setting_type( $setting_id ) ) ) {
@@ -319,7 +319,7 @@
 	 * @return array
 	 */
 	public function filter_option_sidebars_widgets_for_theme_switch( $sidebars_widgets ) {
-		$sidebars_widgets = $GLOBALS['sidebars_widgets'];
+		$sidebars_widgets                  = $GLOBALS['sidebars_widgets'];
 		$sidebars_widgets['array_version'] = 3;
 		return $sidebars_widgets;
 	}
@@ -399,22 +399,28 @@
 		 * theme_mod when the theme is switched.
 		 */
 		if ( ! $this->manager->is_theme_active() ) {
-			$setting_id = 'old_sidebars_widgets_data';
-			$setting_args = $this->get_setting_args( $setting_id, array(
-				'type' => 'global_variable',
-				'dirty' => true,
-			) );
+			$setting_id   = 'old_sidebars_widgets_data';
+			$setting_args = $this->get_setting_args(
+				$setting_id,
+				array(
+					'type'  => 'global_variable',
+					'dirty' => true,
+				)
+			);
 			$this->manager->add_setting( $setting_id, $setting_args );
 		}
 
-		$this->manager->add_panel( 'widgets', array(
-			'type'            => 'widgets',
-			'title'           => __( 'Widgets' ),
-			'description'     => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
-			'priority'        => 110,
-			'active_callback' => array( $this, 'is_panel_active' ),
-			'auto_expand_sole_section' => true,
-		) );
+		$this->manager->add_panel(
+			'widgets',
+			array(
+				'type'                     => 'widgets',
+				'title'                    => __( 'Widgets' ),
+				'description'              => __( 'Widgets are independent sections of content that can be placed into widgetized areas provided by your theme (commonly called sidebars).' ),
+				'priority'                 => 110,
+				'active_callback'          => array( $this, 'is_panel_active' ),
+				'auto_expand_sole_section' => true,
+			)
+		);
 
 		foreach ( $sidebars_widgets as $sidebar_id => $sidebar_widget_ids ) {
 			if ( empty( $sidebar_widget_ids ) ) {
@@ -442,11 +448,11 @@
 				if ( $is_active_sidebar ) {
 
 					$section_args = array(
-						'title' => $wp_registered_sidebars[ $sidebar_id ]['name'],
+						'title'       => $wp_registered_sidebars[ $sidebar_id ]['name'],
 						'description' => $wp_registered_sidebars[ $sidebar_id ]['description'],
-						'priority' => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ) ),
-						'panel' => 'widgets',
-						'sidebar_id' => $sidebar_id,
+						'priority'    => array_search( $sidebar_id, array_keys( $wp_registered_sidebars ) ),
+						'panel'       => 'widgets',
+						'sidebar_id'  => $sidebar_id,
 					);
 
 					/**
@@ -463,11 +469,15 @@
 					$section = new WP_Customize_Sidebar_Section( $this->manager, $section_id, $section_args );
 					$this->manager->add_section( $section );
 
-					$control = new WP_Widget_Area_Customize_Control( $this->manager, $setting_id, array(
-						'section'    => $section_id,
-						'sidebar_id' => $sidebar_id,
-						'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
-					) );
+					$control           = new WP_Widget_Area_Customize_Control(
+						$this->manager,
+						$setting_id,
+						array(
+							'section'    => $section_id,
+							'sidebar_id' => $sidebar_id,
+							'priority'   => count( $sidebar_widget_ids ), // place 'Add Widget' and 'Reorder' buttons at end.
+						)
+					);
 					$new_setting_ids[] = $setting_id;
 
 					$this->manager->add_control( $control );
@@ -478,25 +488,29 @@
 			foreach ( $sidebar_widget_ids as $i => $widget_id ) {
 
 				// Skip widgets that may have gone away due to a plugin being deactivated.
-				if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[$widget_id] ) ) {
+				if ( ! $is_active_sidebar || ! isset( $wp_registered_widgets[ $widget_id ] ) ) {
 					continue;
 				}
 
-				$registered_widget = $wp_registered_widgets[$widget_id];
+				$registered_widget = $wp_registered_widgets[ $widget_id ];
 				$setting_id        = $this->get_setting_id( $widget_id );
-				$id_base           = $wp_registered_widget_controls[$widget_id]['id_base'];
+				$id_base           = $wp_registered_widget_controls[ $widget_id ]['id_base'];
 
-				$control = new WP_Widget_Form_Customize_Control( $this->manager, $setting_id, array(
-					'label'          => $registered_widget['name'],
-					'section'        => $section_id,
-					'sidebar_id'     => $sidebar_id,
-					'widget_id'      => $widget_id,
-					'widget_id_base' => $id_base,
-					'priority'       => $i,
-					'width'          => $wp_registered_widget_controls[$widget_id]['width'],
-					'height'         => $wp_registered_widget_controls[$widget_id]['height'],
-					'is_wide'        => $this->is_wide_widget( $widget_id ),
-				) );
+				$control = new WP_Widget_Form_Customize_Control(
+					$this->manager,
+					$setting_id,
+					array(
+						'label'          => $registered_widget['name'],
+						'section'        => $section_id,
+						'sidebar_id'     => $sidebar_id,
+						'widget_id'      => $widget_id,
+						'widget_id_base' => $id_base,
+						'priority'       => $i,
+						'width'          => $wp_registered_widget_controls[ $widget_id ]['width'],
+						'height'         => $wp_registered_widget_controls[ $widget_id ]['height'],
+						'is_wide'        => $this->is_wide_widget( $widget_id ),
+					)
+				);
 				$this->manager->add_control( $control );
 			}
 		}
@@ -562,7 +576,7 @@
 		global $wp_registered_widget_controls;
 
 		$parsed_widget_id = $this->parse_widget_id( $widget_id );
-		$width            = $wp_registered_widget_controls[$widget_id]['width'];
+		$width            = $wp_registered_widget_controls[ $widget_id ]['width'];
 		$is_core          = in_array( $parsed_widget_id['id_base'], $this->core_widget_id_bases );
 		$is_wide          = ( $width > 250 && ! $is_core );
 
@@ -587,7 +601,7 @@
 	 */
 	public function parse_widget_id( $widget_id ) {
 		$parsed = array(
-			'number' => null,
+			'number'  => null,
 			'id_base' => null,
 		);
 
@@ -708,50 +722,62 @@
 		 * Gather all strings in PHP that may be needed by JS on the client.
 		 * Once JS i18n is implemented (in #20491), this can be removed.
 		 */
-		$some_non_rendered_areas_messages = array();
+		$some_non_rendered_areas_messages    = array();
 		$some_non_rendered_areas_messages[1] = html_entity_decode(
 			__( 'Your theme has 1 other widget area, but this particular page doesn’t display it.' ),
 			ENT_QUOTES,
 			get_bloginfo( 'charset' )
 		);
-		$registered_sidebar_count = count( $wp_registered_sidebars );
+		$registered_sidebar_count            = count( $wp_registered_sidebars );
 		for ( $non_rendered_count = 2; $non_rendered_count < $registered_sidebar_count; $non_rendered_count++ ) {
-			$some_non_rendered_areas_messages[ $non_rendered_count ] = html_entity_decode( sprintf(
-				/* translators: %s: the number of other widget areas registered but not rendered */
-				_n(
-					'Your theme has %s other widget area, but this particular page doesn&#8217;t display it.',
-					'Your theme has %s other widget areas, but this particular page doesn&#8217;t display them.',
-					$non_rendered_count
+			$some_non_rendered_areas_messages[ $non_rendered_count ] = html_entity_decode(
+				sprintf(
+					/* translators: %s: the number of other widget areas registered but not rendered */
+					_n(
+						'Your theme has %s other widget area, but this particular page doesn&#8217;t display it.',
+						'Your theme has %s other widget areas, but this particular page doesn&#8217;t display them.',
+						$non_rendered_count
+					),
+					number_format_i18n( $non_rendered_count )
 				),
-				number_format_i18n( $non_rendered_count )
-			), ENT_QUOTES, get_bloginfo( 'charset' ) );
+				ENT_QUOTES,
+				get_bloginfo( 'charset' )
+			);
 		}
 
 		if ( 1 === $registered_sidebar_count ) {
-			$no_areas_shown_message = html_entity_decode( sprintf(
-				__( 'Your theme has 1 widget area, but this particular page doesn&#8217;t display it.' )
-			), ENT_QUOTES, get_bloginfo( 'charset' ) );
+			$no_areas_shown_message = html_entity_decode(
+				sprintf(
+					__( 'Your theme has 1 widget area, but this particular page doesn&#8217;t display it.' )
+				),
+				ENT_QUOTES,
+				get_bloginfo( 'charset' )
+			);
 		} else {
-			$no_areas_shown_message = html_entity_decode( sprintf(
-				/* translators: %s: the total number of widget areas registered */
-				_n(
-					'Your theme has %s widget area, but this particular page doesn&#8217;t display it.',
-					'Your theme has %s widget areas, but this particular page doesn&#8217;t display them.',
-					$registered_sidebar_count
+			$no_areas_shown_message = html_entity_decode(
+				sprintf(
+					/* translators: %s: the total number of widget areas registered */
+					_n(
+						'Your theme has %s widget area, but this particular page doesn&#8217;t display it.',
+						'Your theme has %s widget areas, but this particular page doesn&#8217;t display them.',
+						$registered_sidebar_count
+					),
+					number_format_i18n( $registered_sidebar_count )
 				),
-				number_format_i18n( $registered_sidebar_count )
-			), ENT_QUOTES, get_bloginfo( 'charset' ) );
+				ENT_QUOTES,
+				get_bloginfo( 'charset' )
+			);
 		}
 
 		$settings = array(
-			'registeredSidebars'   => array_values( $wp_registered_sidebars ),
-			'registeredWidgets'    => $wp_registered_widgets,
-			'availableWidgets'     => $available_widgets, // @todo Merge this with registered_widgets
-			'l10n' => array(
+			'registeredSidebars'          => array_values( $wp_registered_sidebars ),
+			'registeredWidgets'           => $wp_registered_widgets,
+			'availableWidgets'            => $available_widgets, // @todo Merge this with registered_widgets
+			'l10n'                        => array(
 				'saveBtnLabel'     => __( 'Apply' ),
 				'saveBtnTooltip'   => __( 'Save and preview changes before publishing them.' ),
 				'removeBtnLabel'   => __( 'Remove' ),
-				'removeBtnTooltip' => __( 'Trash widget by moving it to the inactive widgets sidebar.' ),
+				'removeBtnTooltip' => __( 'Keep widget settings and move it to the inactive widgets' ),
 				'error'            => __( 'An error has occurred. Please reload the page and try again.' ),
 				'widgetMovedUp'    => __( 'Widget moved up' ),
 				'widgetMovedDown'  => __( 'Widget moved down' ),
@@ -765,7 +791,7 @@
 				'widgetsFound'     => __( 'Number of widgets found: %d' ),
 				'noWidgetsFound'   => __( 'No widgets found.' ),
 			),
-			'tpl' => array(
+			'tpl'                         => array(
 				'widgetReorderNav' => $widget_reorder_nav_tpl,
 				'moveWidgetArea'   => $move_widget_area_tpl,
 			),
@@ -797,23 +823,25 @@
 					<span class="screen-reader-text"><?php _e( 'Back' ); ?></span>
 				</button>
 				<h3>
-					<span class="customize-action"><?php
+					<span class="customize-action">
+					<?php
 						/* translators: &#9656; is the unicode right-pointing triangle, and %s is the section title in the Customizer */
 						echo sprintf( __( 'Customizing &#9656; %s' ), esc_html( $this->manager->get_panel( 'widgets' )->title ) );
-					?></span>
+					?>
+					</span>
 					<?php _e( 'Add a Widget' ); ?>
 				</h3>
 			</div>
 			<div id="available-widgets-filter">
 				<label class="screen-reader-text" for="widgets-search"><?php _e( 'Search Widgets' ); ?></label>
-				<input type="text" id="widgets-search" placeholder="<?php esc_attr_e( 'Search widgets&hellip;' ) ?>" aria-describedby="widgets-search-desc" />
+				<input type="text" id="widgets-search" placeholder="<?php esc_attr_e( 'Search widgets&hellip;' ); ?>" aria-describedby="widgets-search-desc" />
 				<div class="search-icon" aria-hidden="true"></div>
 				<button type="button" class="clear-results"><span class="screen-reader-text"><?php _e( 'Clear Results' ); ?></span></button>
 				<p class="screen-reader-text" id="widgets-search-desc"><?php _e( 'The search results will be updated as you type.' ); ?></p>
 			</div>
 			<div id="available-widgets-list">
-			<?php foreach ( $this->get_available_widgets() as $available_widget ): ?>
-				<div id="widget-tpl-<?php echo esc_attr( $available_widget['id'] ) ?>" data-widget-id="<?php echo esc_attr( $available_widget['id'] ) ?>" class="widget-tpl <?php echo esc_attr( $available_widget['id'] ) ?>" tabindex="0">
+			<?php foreach ( $this->get_available_widgets() as $available_widget ) : ?>
+				<div id="widget-tpl-<?php echo esc_attr( $available_widget['id'] ); ?>" data-widget-id="<?php echo esc_attr( $available_widget['id'] ); ?>" class="widget-tpl <?php echo esc_attr( $available_widget['id'] ); ?>" tabindex="0">
 					<?php echo $available_widget['control_tpl']; ?>
 				</div>
 			<?php endforeach; ?>
@@ -858,13 +886,13 @@
 		);
 
 		if ( preg_match( $this->setting_id_patterns['sidebar_widgets'], $id, $matches ) ) {
-			$args['sanitize_callback'] = array( $this, 'sanitize_sidebar_widgets' );
+			$args['sanitize_callback']    = array( $this, 'sanitize_sidebar_widgets' );
 			$args['sanitize_js_callback'] = array( $this, 'sanitize_sidebar_widgets_js_instance' );
-			$args['transport'] = current_theme_supports( 'customize-selective-refresh-widgets' ) ? 'postMessage' : 'refresh';
+			$args['transport']            = current_theme_supports( 'customize-selective-refresh-widgets' ) ? 'postMessage' : 'refresh';
 		} elseif ( preg_match( $this->setting_id_patterns['widget_instance'], $id, $matches ) ) {
-			$args['sanitize_callback'] = array( $this, 'sanitize_widget_instance' );
+			$args['sanitize_callback']    = array( $this, 'sanitize_widget_instance' );
 			$args['sanitize_js_callback'] = array( $this, 'sanitize_widget_js_instance' );
-			$args['transport'] = $this->is_widget_selective_refreshable( $matches['id_base'] ) ? 'postMessage' : 'refresh';
+			$args['transport']            = $this->is_widget_selective_refreshable( $matches['id_base'] ) ? 'postMessage' : 'refresh';
 		}
 
 		$args = array_merge( $args, $overrides );
@@ -889,11 +917,11 @@
 	 *
 	 * @since 3.9.0
 	 *
-	 * @param array $widget_ids Array of widget IDs.
-	 * @return array Array of sanitized widget IDs.
+	 * @param string[] $widget_ids Array of widget IDs.
+	 * @return string[] Array of sanitized widget IDs.
 	 */
 	public function sanitize_sidebar_widgets( $widget_ids ) {
-		$widget_ids = array_map( 'strval', (array) $widget_ids );
+		$widget_ids           = array_map( 'strval', (array) $widget_ids );
 		$sanitized_widget_ids = array();
 		foreach ( $widget_ids as $widget_id ) {
 			$sanitized_widget_ids[] = preg_replace( '/[^a-z0-9_\-]/', '', $widget_id );
@@ -921,7 +949,7 @@
 		}
 
 		global $wp_registered_widgets, $wp_registered_widget_controls;
-		require_once ABSPATH . '/wp-admin/includes/widgets.php'; // for next_widget_id_number()
+		require_once ABSPATH . 'wp-admin/includes/widgets.php'; // for next_widget_id_number()
 
 		$sort = $wp_registered_widgets;
 		usort( $sort, array( $this, '_sort_name_callback' ) );
@@ -949,9 +977,9 @@
 			);
 
 			$is_disabled     = false;
-			$is_multi_widget = ( isset( $wp_registered_widget_controls[$widget['id']]['id_base'] ) && isset( $widget['params'][0]['number'] ) );
+			$is_multi_widget = ( isset( $wp_registered_widget_controls[ $widget['id'] ]['id_base'] ) && isset( $widget['params'][0]['number'] ) );
 			if ( $is_multi_widget ) {
-				$id_base            = $wp_registered_widget_controls[$widget['id']]['id_base'];
+				$id_base            = $wp_registered_widget_controls[ $widget['id'] ]['id_base'];
 				$args['_temp_id']   = "$id_base-__i__";
 				$args['_multi_num'] = next_widget_id_number( $id_base );
 				$args['_add']       = 'multi';
@@ -964,22 +992,30 @@
 				$id_base = $widget['id'];
 			}
 
-			$list_widget_controls_args = wp_list_widget_controls_dynamic_sidebar( array( 0 => $args, 1 => $widget['params'][0] ) );
-			$control_tpl = $this->get_widget_control( $list_widget_controls_args );
+			$list_widget_controls_args = wp_list_widget_controls_dynamic_sidebar(
+				array(
+					0 => $args,
+					1 => $widget['params'][0],
+				)
+			);
+			$control_tpl               = $this->get_widget_control( $list_widget_controls_args );
 
 			// The properties here are mapped to the Backbone Widget model.
-			$available_widget = array_merge( $available_widget, array(
-				'temp_id'      => isset( $args['_temp_id'] ) ? $args['_temp_id'] : null,
-				'is_multi'     => $is_multi_widget,
-				'control_tpl'  => $control_tpl,
-				'multi_number' => ( $args['_add'] === 'multi' ) ? $args['_multi_num'] : false,
-				'is_disabled'  => $is_disabled,
-				'id_base'      => $id_base,
-				'transport'    => $this->is_widget_selective_refreshable( $id_base ) ? 'postMessage' : 'refresh',
-				'width'        => $wp_registered_widget_controls[$widget['id']]['width'],
-				'height'       => $wp_registered_widget_controls[$widget['id']]['height'],
-				'is_wide'      => $this->is_wide_widget( $widget['id'] ),
-			) );
+			$available_widget = array_merge(
+				$available_widget,
+				array(
+					'temp_id'      => isset( $args['_temp_id'] ) ? $args['_temp_id'] : null,
+					'is_multi'     => $is_multi_widget,
+					'control_tpl'  => $control_tpl,
+					'multi_number' => ( $args['_add'] === 'multi' ) ? $args['_multi_num'] : false,
+					'is_disabled'  => $is_disabled,
+					'id_base'      => $id_base,
+					'transport'    => $this->is_widget_selective_refreshable( $id_base ) ? 'postMessage' : 'refresh',
+					'width'        => $wp_registered_widget_controls[ $widget['id'] ]['width'],
+					'height'       => $wp_registered_widget_controls[ $widget['id'] ]['height'],
+					'is_wide'      => $this->is_wide_widget( $widget['id'] ),
+				)
+			);
 
 			$available_widgets[] = $available_widget;
 		}
@@ -1009,10 +1045,10 @@
 	 * @return string Widget control form HTML markup.
 	 */
 	public function get_widget_control( $args ) {
-		$args[0]['before_form'] = '<div class="form">';
-		$args[0]['after_form'] = '</div><!-- .form -->';
+		$args[0]['before_form']           = '<div class="form">';
+		$args[0]['after_form']            = '</div><!-- .form -->';
 		$args[0]['before_widget_content'] = '<div class="widget-content">';
-		$args[0]['after_widget_content'] = '</div><!-- .widget-content -->';
+		$args[0]['after_widget_content']  = '</div><!-- .widget-content -->';
 		ob_start();
 		call_user_func_array( 'wp_widget_control', $args );
 		$control_tpl = ob_get_clean();
@@ -1032,19 +1068,21 @@
 	 */
 	public function get_widget_control_parts( $args ) {
 		$args[0]['before_widget_content'] = '<div class="widget-content">';
-		$args[0]['after_widget_content'] = '</div><!-- .widget-content -->';
-		$control_markup = $this->get_widget_control( $args );
+		$args[0]['after_widget_content']  = '</div><!-- .widget-content -->';
+		$control_markup                   = $this->get_widget_control( $args );
 
 		$content_start_pos = strpos( $control_markup, $args[0]['before_widget_content'] );
-		$content_end_pos = strrpos( $control_markup, $args[0]['after_widget_content'] );
+		$content_end_pos   = strrpos( $control_markup, $args[0]['after_widget_content'] );
 
-		$control = substr( $control_markup, 0, $content_start_pos + strlen( $args[0]['before_widget_content'] ) );
+		$control  = substr( $control_markup, 0, $content_start_pos + strlen( $args[0]['before_widget_content'] ) );
 		$control .= substr( $control_markup, $content_end_pos );
-		$content = trim( substr(
-			$control_markup,
-			$content_start_pos + strlen( $args[0]['before_widget_content'] ),
-			$content_end_pos - $content_start_pos - strlen( $args[0]['before_widget_content'] )
-		) );
+		$content  = trim(
+			substr(
+				$control_markup,
+				$content_start_pos + strlen( $args[0]['before_widget_content'] ),
+				$content_end_pos - $content_start_pos - strlen( $args[0]['before_widget_content'] )
+			)
+		);
 
 		return compact( 'control', 'content' );
 	}
@@ -1056,8 +1094,8 @@
 	 */
 	public function customize_preview_init() {
 		add_action( 'wp_enqueue_scripts', array( $this, 'customize_preview_enqueue' ) );
-		add_action( 'wp_print_styles',    array( $this, 'print_preview_css' ), 1 );
-		add_action( 'wp_footer',          array( $this, 'export_preview_data' ), 20 );
+		add_action( 'wp_print_styles', array( $this, 'print_preview_css' ), 1 );
+		add_action( 'wp_footer', array( $this, 'export_preview_data' ), 20 );
 	}
 
 	/**
@@ -1113,8 +1151,8 @@
 		<style>
 		.widget-customizer-highlighted-widget {
 			outline: none;
-			-webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
-			box-shadow: 0 0 2px rgba(30,140,190,0.8);
+			-webkit-box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
+			box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
 			position: relative;
 			z-index: 1;
 		}
@@ -1127,7 +1165,7 @@
 	 * and at the very end of the wp_footer,
 	 *
 	 * @since 3.9.0
-     *
+	 *
 	 * @global array $wp_registered_sidebars
 	 * @global array $wp_registered_widgets
 	 */
@@ -1135,8 +1173,8 @@
 		global $wp_registered_sidebars, $wp_registered_widgets;
 
 		$switched_locale = switch_to_locale( get_user_locale() );
-		$l10n = array(
-			'widgetTooltip'  => __( 'Shift-click to edit this widget.' ),
+		$l10n            = array(
+			'widgetTooltip' => __( 'Shift-click to edit this widget.' ),
 		);
 		if ( $switched_locale ) {
 			restore_previous_locale();
@@ -1144,11 +1182,11 @@
 
 		// Prepare Customizer settings to pass to JavaScript.
 		$settings = array(
-			'renderedSidebars'   => array_fill_keys( array_unique( $this->rendered_sidebars ), true ),
-			'renderedWidgets'    => array_fill_keys( array_keys( $this->rendered_widgets ), true ),
-			'registeredSidebars' => array_values( $wp_registered_sidebars ),
-			'registeredWidgets'  => $wp_registered_widgets,
-			'l10n'               => $l10n,
+			'renderedSidebars'            => array_fill_keys( array_unique( $this->rendered_sidebars ), true ),
+			'renderedWidgets'             => array_fill_keys( array_keys( $this->rendered_widgets ), true ),
+			'registeredSidebars'          => array_values( $wp_registered_sidebars ),
+			'registeredWidgets'           => $wp_registered_widgets,
+			'l10n'                        => $l10n,
 			'selectiveRefreshableWidgets' => $this->get_selective_refreshable_widgets(),
 		);
 		foreach ( $settings['registeredWidgets'] as &$registered_widget ) {
@@ -1281,8 +1319,7 @@
 
 		if ( empty( $value['is_widget_customizer_js_value'] )
 			|| empty( $value['instance_hash_key'] )
-			|| empty( $value['encoded_serialized_instance'] ) )
-		{
+			|| empty( $value['encoded_serialized_instance'] ) ) {
 			return;
 		}
 
@@ -1398,14 +1435,14 @@
 			}
 
 			if ( ! is_null( $parsed_id['number'] ) ) {
-				$value = array();
-				$value[$parsed_id['number']] = $instance;
-				$key = 'widget-' . $parsed_id['id_base'];
-				$_REQUEST[$key] = $_POST[$key] = wp_slash( $value );
-				$added_input_vars[] = $key;
+				$value                         = array();
+				$value[ $parsed_id['number'] ] = $instance;
+				$key                           = 'widget-' . $parsed_id['id_base'];
+				$_REQUEST[ $key ]              = $_POST[ $key ] = wp_slash( $value );
+				$added_input_vars[]            = $key;
 			} else {
 				foreach ( $instance as $key => $value ) {
-					$_REQUEST[$key] = $_POST[$key] = wp_slash( $value );
+					$_REQUEST[ $key ]   = $_POST[ $key ] = wp_slash( $value );
 					$added_input_vars[] = $key;
 				}
 			}
@@ -1509,7 +1546,7 @@
 
 		$widget_id = $this->get_post_value( 'widget-id' );
 		$parsed_id = $this->parse_widget_id( $widget_id );
-		$id_base = $parsed_id['id_base'];
+		$id_base   = $parsed_id['id_base'];
 
 		$is_updating_widget_template = (
 			isset( $_POST[ 'widget-' . $id_base ] )
@@ -1527,7 +1564,7 @@
 			wp_send_json_error( $updated_widget->get_error_code() );
 		}
 
-		$form = $updated_widget['form'];
+		$form     = $updated_widget['form'];
 		$instance = $this->sanitize_widget_js_instance( $updated_widget['instance'] );
 
 		wp_send_json_success( compact( 'form', 'instance' ) );
@@ -1588,13 +1625,15 @@
 	/**
 	 * Inject selective refresh data attributes into widget container elements.
 	 *
+	 * @since 4.5.0
+	 *
 	 * @param array $params {
 	 *     Dynamic sidebar params.
 	 *
 	 *     @type array $args        Sidebar args.
 	 *     @type array $widget_args Widget args.
 	 * }
-	 * @see WP_Customize_Nav_Menus_Partial_Refresh::filter_wp_nav_menu_args()
+	 * @see WP_Customize_Nav_Menus::filter_wp_nav_menu_args()
 	 *
 	 * @return array Params.
 	 */
@@ -1602,13 +1641,13 @@
 		$sidebar_args = array_merge(
 			array(
 				'before_widget' => '',
-				'after_widget' => '',
+				'after_widget'  => '',
 			),
 			$params[0]
 		);
 
 		// Skip widgets not in a registered sidebar or ones which lack a proper wrapper element to attach the data-* attributes to.
-		$matches = array();
+		$matches  = array();
 		$is_valid = (
 			isset( $sidebar_args['id'] )
 			&&
@@ -1628,14 +1667,14 @@
 		);
 		if ( isset( $this->context_sidebar_instance_number ) ) {
 			$context['sidebar_instance_number'] = $this->context_sidebar_instance_number;
-		} else if ( isset( $sidebar_args['id'] ) && isset( $this->sidebar_instance_count[ $sidebar_args['id'] ] ) ) {
+		} elseif ( isset( $sidebar_args['id'] ) && isset( $this->sidebar_instance_count[ $sidebar_args['id'] ] ) ) {
 			$context['sidebar_instance_number'] = $this->sidebar_instance_count[ $sidebar_args['id'] ];
 		}
 
-		$attributes = sprintf( ' data-customize-partial-id="%s"', esc_attr( 'widget[' . $sidebar_args['widget_id'] . ']' ) );
-		$attributes .= ' data-customize-partial-type="widget"';
-		$attributes .= sprintf( ' data-customize-partial-placement-context="%s"', esc_attr( wp_json_encode( $context ) ) );
-		$attributes .= sprintf( ' data-customize-widget-id="%s"', esc_attr( $sidebar_args['widget_id'] ) );
+		$attributes                    = sprintf( ' data-customize-partial-id="%s"', esc_attr( 'widget[' . $sidebar_args['widget_id'] . ']' ) );
+		$attributes                   .= ' data-customize-partial-type="widget"';
+		$attributes                   .= sprintf( ' data-customize-partial-placement-context="%s"', esc_attr( wp_json_encode( $context ) ) );
+		$attributes                   .= sprintf( ' data-customize-widget-id="%s"', esc_attr( $sidebar_args['widget_id'] ) );
 		$sidebar_args['before_widget'] = preg_replace( '#^(<\w+)#', '$1 ' . $attributes, $sidebar_args['before_widget'] );
 
 		$params[0] = $sidebar_args;
@@ -1670,13 +1709,16 @@
 			}
 			$allowed_html[ $tag_name ] = array_merge(
 				$allowed_html[ $tag_name ],
-				array_fill_keys( array(
-					'data-customize-partial-id',
-					'data-customize-partial-type',
-					'data-customize-partial-placement-context',
-					'data-customize-partial-widget-id',
-					'data-customize-partial-options',
-				), true )
+				array_fill_keys(
+					array(
+						'data-customize-partial-id',
+						'data-customize-partial-type',
+						'data-customize-partial-placement-context',
+						'data-customize-partial-widget-id',
+						'data-customize-partial-options',
+					),
+					true
+				)
 			);
 		}
 		return $allowed_html;
@@ -1815,14 +1857,14 @@
 		// Render the widget.
 		ob_start();
 		dynamic_sidebar( $this->rendering_sidebar_id = $context['sidebar_id'] );
-		$container = ob_get_clean();
+		$container                                   = ob_get_clean();
 
 		// Reset variables for next partial render.
 		remove_filter( 'sidebars_widgets', $filter_callback, 1000 );
 
 		$this->context_sidebar_instance_number = null;
-		$this->rendering_sidebar_id = null;
-		$this->rendering_widget_id = null;
+		$this->rendering_sidebar_id            = null;
+		$this->rendering_widget_id             = null;
 
 		return $container;
 	}
@@ -1953,7 +1995,7 @@
 			$value = $this->_captured_options[ $option_name ];
 
 			/** This filter is documented in wp-includes/option.php */
-			$value = apply_filters( 'option_' . $option_name, $value );
+			$value = apply_filters( 'option_' . $option_name, $value, $option_name );
 		}
 
 		return $value;
@@ -1975,7 +2017,7 @@
 			remove_filter( "pre_option_{$option_name}", array( $this, 'capture_filter_pre_get_option' ) );
 		}
 
-		$this->_captured_options = array();
+		$this->_captured_options            = array();
 		$this->_is_capturing_option_updates = false;
 	}