WP_Customize_Manager::prepare_setting_validity_for_js PHP Method

prepare_setting_validity_for_js() public method

Converts WP_Error instance into array suitable for passing into the wp.customize.Notification JS model.
Since: 4.6.0
public prepare_setting_validity_for_js ( true | WP_Error $validity ) : true | array
$validity true | WP_Error Setting validity.
return true | array If `$validity` was a WP_Error, the error codes will be array-mapped to their respective `message` and `data` to pass into the `wp.customize.Notification` JS model.
    public function prepare_setting_validity_for_js($validity)
    {
        if (is_wp_error($validity)) {
            $notification = array();
            foreach ($validity->errors as $error_code => $error_messages) {
                $notification[$error_code] = array('message' => join(' ', $error_messages), 'data' => $validity->get_error_data($error_code));
            }
            return $notification;
        } else {
            return true;
        }
    }

Usage Example

 /**
  * Test WP_Customize_Manager::prepare_setting_validity_for_js().
  *
  * @see WP_Customize_Manager::prepare_setting_validity_for_js()
  */
 function test_prepare_setting_validity_for_js()
 {
     $this->assertTrue($this->manager->prepare_setting_validity_for_js(true));
     $error = new WP_Error();
     $error->add('bad_letter', 'Bad letter', 'A');
     $error->add('bad_letter', 'Bad letra', 123);
     $error->add('bad_number', 'Bad number', array('number' => 123));
     $validity = $this->manager->prepare_setting_validity_for_js($error);
     $this->assertInternalType('array', $validity);
     foreach ($error->errors as $code => $messages) {
         $this->assertArrayHasKey($code, $validity);
         $this->assertInternalType('array', $validity[$code]);
         $this->assertEquals(join(' ', $messages), $validity[$code]['message']);
         $this->assertArrayHasKey('data', $validity[$code]);
         $this->assertEquals($validity[$code]['data'], $error->get_error_data($code));
     }
     $this->assertArrayHasKey('number', $validity['bad_number']['data']);
     $this->assertEquals(123, $validity['bad_number']['data']['number']);
 }
WP_Customize_Manager