*/ private $errors = array(); /** * Normalised params. * * @var array */ private $params = array(); /** * Adds an error. * * @param string $key Field key. * @param string $message Message. * @return void */ public function add_error( $key, $message ) { $this->errors[] = array( 'key' => $key, 'message' => $message, ); } /** * Sets params. * * @param array $params Params. * @return void */ public function set_params( array $params ) { $this->params = $params; } /** * Whether valid. * * @return bool */ public function is_valid() { return empty( $this->errors ); } /** * Errors. * * @return array */ public function errors() { return $this->errors; } /** * Params. * * @return array */ public function params() { return $this->params; } /** * As WP_Error (400) when invalid. * * @return \WP_Error|null */ public function to_wp_error() { if ( $this->is_valid() ) { return null; } $messages = wp_list_pluck( $this->errors, 'message' ); return new \WP_Error( 'recast_invalid_params', implode( ' ', $messages ), array( 'status' => 400, 'errors' => $this->errors, ) ); } }