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
121
122
123
124
125
126
127
128
|
<?php /** * Upgrader API: WP_Ajax_Upgrader_Skin class * * @package WordPress * @subpackage Upgrader * @since 4.6.0 */
/** * Upgrader Skin for Ajax WordPress upgrades. * * This skin is designed to be used for Ajax updates. * * @since 4.6.0 * * @see Automatic_Upgrader_Skin */ class WP_Ajax_Upgrader_Skin extends Automatic_Upgrader_Skin {
/** * Holds the WP_Error object. * * @since 4.6.0 * @var null|WP_Error */ protected $errors = null;
/** * Constructor. * * @since 4.6.0 * * @param array $args Options for the upgrader, see WP_Upgrader_Skin::__construct(). */ public function __construct( $args = array() ) { parent::__construct( $args );
$this->errors = new WP_Error(); }
/** * Retrieves the list of errors. * * @since 4.6.0 * * @return WP_Error Errors during an upgrade. */ public function get_errors() { return $this->errors; }
/** * Retrieves a string for error messages. * * @since 4.6.0 * * @return string Error messages during an upgrade. */ public function get_error_messages() { $messages = array();
foreach ( $this->errors->get_error_codes() as $error_code ) { $error_data = $this->errors->get_error_data( $error_code );
if ( $error_data && is_string( $error_data ) ) { $messages[] = $this->errors->get_error_message( $error_code ) . ' ' . esc_html( strip_tags( $error_data ) ); } else { $messages[] = $this->errors->get_error_message( $error_code ); } }
return implode( ', ', $messages ); }
/** * Stores a log entry for an error. * * @since 4.6.0 * * @param string|WP_Error $errors Errors. */ public function error( $errors ) { if ( is_string( $errors ) ) { $string = $errors; if ( ! empty( $this->upgrader->strings[ $string ] ) ) { $string = $this->upgrader->strings[ $string ]; }
if ( false !== strpos( $string, '%' ) ) { $args = func_get_args(); $args = array_splice( $args, 1 ); if ( ! empty( $args ) ) { $string = vsprintf( $string, $args ); } }
// Count existing errors to generate an unique error code. $errors_count = count( $this->errors->get_error_codes() ); $this->errors->add( 'unknown_upgrade_error_' . $errors_count + 1, $string ); } elseif ( is_wp_error( $errors ) ) { foreach ( $errors->get_error_codes() as $error_code ) { $this->errors->add( $error_code, $errors->get_error_message( $error_code ), $errors->get_error_data( $error_code ) ); } }
$args = func_get_args(); call_user_func_array( array( $this, 'parent::error' ), $args ); }
/** * Stores a log entry. * * @since 4.6.0 * * @param string|array|WP_Error $data Log entry data. */ public function feedback( $data ) { if ( is_wp_error( $data ) ) { foreach ( $data->get_error_codes() as $error_code ) { $this->errors->add( $error_code, $data->get_error_message( $error_code ), $data->get_error_data( $error_code ) ); } }
$args = func_get_args(); call_user_func_array( array( $this, 'parent::feedback' ), $args ); } }
|