C:\xampp\htdocs\landing\wp-content\plugins\mailchimp-for-wp\includes\api\class-exception.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php

/**
 * Class MC4WP_API_Exception
 *
 * @property string $title
 * @property string $detail
 * @property array $errors
 */
class MC4WP_API_Exception extends Exception {

    
/**
    * @var object
    */
    
public $response = array();

    
/**
    * @var object
    */
    
public $request = array();

    
/**
    * @var array
    */
    
public $response_data = array();

    
/**
     * MC4WP_API_Exception constructor.
     *
     * @param string $message
     * @param int $code
     * @param array $request
     * @param array $response
     * @param object $data
     */
    
public function __construct$message$code$request null$response null$data null ) {
        
parent::__construct$message$code );

        
$this->request  $request;
        
$this->response $response;

        
$this->response_data $data;
    }

    
/**
    * Backwards compatibility for direct property access.
    * @param string $property
    * @return mixed
    */
    
public function __get$property ) {
        if ( 
in_array$property, array( 'title''detail''errors' ), true ) ) {
            if ( ! empty( 
$this->response_data ) && isset( $this->response_data->{$property} ) ) {
                return 
$this->response_data->{$property};
            }

            return 
'';
        }
    }

    
/**
     * @return string
     */
    
public function __toString() {
        
$string $this->message '.';

        
// add errors from response data returned by Mailchimp
        
if ( ! empty( $this->response_data ) ) {
            if ( ! empty( 
$this->response_data->title ) && $this->response_data->title !== $this->getMessage() ) {
                
$string .= ' ' $this->response_data->title '.';
            }

            
// add detail message
            
if ( ! empty( $this->response_data->detail ) ) {
                
$string .= ' ' $this->response_data->detail;
            }

            
// add field specific errors
            
if ( ! empty( $this->response_data->errors ) && isset( $this->response_data->errors[0]->field ) ) {

                
// strip off obsolete msg
                
$string str_replace'For field-specific details, see the \'errors\' array.'''$string );

                
// generate list of field errors
                
$field_errors = array();
                foreach ( 
$this->response_data->errors as $error ) {
                    if ( ! empty( 
$error->field ) ) {
                        
$field_errors[] = sprintf'- %s : %s'$error->field$error->message );
                    } else {
                        
$field_errors[] = sprintf'- %s'$error->message );
                    }
                }

                
$string .= " \n" join"\n"$field_errors );
            }
        }

        
// Add request data
        
if ( ! empty( $this->request ) && is_array$this->request ) ) {
            
$string .= "\n\n" sprintf"Request: \n%s %s\n"$this->request['method'], $this->request['url'] );

            
//          foreach ( $this->request['headers'] as $key => $value ) {
            //              $string .= sprintf( "%s: %s\n", $key, $value );
            //          }

            
if ( ! empty( $this->request['body'] ) ) {
                
$string .= "\n" $this->request['body'];
            }
        }

        
// Add response data
        
if ( ! empty( $this->response ) && is_array$this->response ) ) {
            
$response_code    wp_remote_retrieve_response_code$this->response );
            
$response_message wp_remote_retrieve_response_message$this->response );
            
$response_body    wp_remote_retrieve_body$this->response );
            
$string          .= "\n\n" sprintf"Response: \n%d %s\n%s"$response_code$response_message$response_body );
        }

        return 
$string;
    }
}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586