preview() public method

If the setting already has a pre-existing value and there is no incoming post value for the setting, then this method will short-circuit since there is no change to preview.
Since: 3.4.0
Since: 4.4.0 Added boolean return value.
public preview ( ) : boolean
return boolean False when preview short-circuits due no change needing to be previewed.
	/**
	 * Test specific fix for setting's default value not applying on preview window
	 *
	 * @ticket 30988
	 */
	function test_non_posted_setting_applying_default_value_in_preview() {
		$type = 'option';
		$name = 'unset_option_without_post_value';
		$default = "default_value_{$name}";
		$setting = new WP_Customize_Setting( $this->manager, $name, compact( 'type', 'default' ) );
		$this->assertEquals( $this->undefined, get_option( $name, $this->undefined ) );
		$this->assertEquals( $default, $setting->value() );
		$setting->preview();
		$this->assertEquals( $default, get_option( $name, $this->undefined ), sprintf( 'Expected get_option(%s) to return setting default: %s.', $name, $default ) );
		$this->assertEquals( $default, $setting->value() );
	}
 /**
  * Ensure that WP_Customize_Setting::value() can return a previewed value for aggregated multidimensionals.
  *
  * @ticket 37294
  */
 public function test_multidimensional_value_when_previewed()
 {
     WP_Customize_Setting::reset_aggregated_multidimensionals();
     $initial_value = 456;
     set_theme_mod('nav_menu_locations', array('primary' => $initial_value));
     $setting_id = 'nav_menu_locations[primary]';
     $setting = new WP_Customize_Setting($this->manager, $setting_id);
     $this->assertEquals($initial_value, $setting->value());
     $override_value = -123456;
     $this->manager->set_post_value($setting_id, $override_value);
     $setting->preview();
     $this->assertEquals($override_value, $setting->value());
 }
Esempio n. 3
0
 /**
  * Ensure that previewing a setting is disabled when the current blog is switched.
  *
  * @ticket 31428
  * @group multisite
  */
 function test_previewing_with_switch_to_blog()
 {
     if (!is_multisite()) {
         $this->markTestSkipped('Cannot test WP_Customize_Setting::is_current_blog_previewed() with switch_to_blog() if not on multisite.');
     }
     $type = 'option';
     $name = 'blogdescription';
     $post_value = rand_str();
     $this->manager->set_post_value($name, $post_value);
     $setting = new WP_Customize_Setting($this->manager, $name, compact('type'));
     $this->assertFalse($setting->is_current_blog_previewed());
     $this->assertTrue($setting->preview());
     $this->assertTrue($setting->is_current_blog_previewed());
     $blog_id = self::factory()->blog->create();
     switch_to_blog($blog_id);
     $this->assertFalse($setting->is_current_blog_previewed());
     $this->assertNotEquals($post_value, $setting->value());
     $this->assertNotEquals($post_value, get_option($name));
     restore_current_blog();
 }