From 92f57633da4d7f0d9cb6ece72c788296803eb3b0 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Tue, 29 Aug 2006 20:17:41 +0000 Subject: [PATCH] Allow passing extra data back with errors. git-svn-id: https://develop.svn.wordpress.org/trunk@4122 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/classes.php | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/wp-includes/classes.php b/wp-includes/classes.php index f2d823f26d..505e086f49 100644 --- a/wp-includes/classes.php +++ b/wp-includes/classes.php @@ -348,10 +348,16 @@ class WP { class WP_Error { var $errors = array(); + var $error_data = array(); - function WP_Error($code = '', $message = '') { - if ( ! empty($code) ) - $this->errors[$code][] = $message; + function WP_Error($code = '', $message = '', $data = '') { + if ( empty($code) ) + return; + + $this->errors[$code][] = $message; + + if ( ! empty($data) ) + $this->error_data[$code] = $data; } function get_error_codes() { @@ -395,8 +401,26 @@ class WP_Error { return $messages[0]; } - function add($code, $message) { - $this->errors[$code][] = $message; + function get_error_data($code = '') { + if ( empty($code) ) + $code = $this->get_error_code(); + + if ( isset($this->error_data[$code]) ) + return $this->error_data[$code]; + return null; + } + + function add($code, $message, $data = '') { + $this->errors[$code][] = $message; + if ( ! empty($data) ) + $this->error_data[$code] = $data; + } + + function add_data($data, $code = '') { + if ( empty($code) ) + $code = $this->get_error_code(); + + $this->error_data[$code] = $data; } }