Diff: STRATO-apps/wordpress_03/app/wp-admin/includes/class-automatic-upgrader-skin.php
Keine Baseline-Datei – Diff nur gegen leer.
1
-
1
+
<?php
2
+
/**
3
+
* Upgrader API: Automatic_Upgrader_Skin class
4
+
*
5
+
* @package WordPress
6
+
* @subpackage Upgrader
7
+
* @since 4.6.0
8
+
*/
9
+
10
+
/**
11
+
* Upgrader Skin for Automatic WordPress Upgrades.
12
+
*
13
+
* This skin is designed to be used when no output is intended, all output
14
+
* is captured and stored for the caller to process and log/email/discard.
15
+
*
16
+
* @since 3.7.0
17
+
* @since 4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
18
+
*
19
+
* @see Bulk_Upgrader_Skin
20
+
*/
21
+
class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
22
+
protected $messages = array();
23
+
24
+
/**
25
+
* Determines whether the upgrader needs FTP/SSH details in order to connect
26
+
* to the filesystem.
27
+
*
28
+
* @since 3.7.0
29
+
* @since 4.6.0 The `$context` parameter default changed from `false` to an empty string.
30
+
*
31
+
* @see request_filesystem_credentials()
32
+
*
33
+
* @param bool|WP_Error $error Optional. Whether the current request has failed to connect,
34
+
* or an error object. Default false.
35
+
* @param string $context Optional. Full path to the directory that is tested
36
+
* for being writable. Default empty.
37
+
* @param bool $allow_relaxed_file_ownership Optional. Whether to allow Group/World writable. Default false.
38
+
* @return bool True on success, false on failure.
39
+
*/
40
+
public function request_filesystem_credentials( $error = false, $context = '', $allow_relaxed_file_ownership = false ) {
41
+
if ( $context ) {
42
+
$this->options['context'] = $context;
43
+
}
44
+
/*
45
+
* TODO: Fix up request_filesystem_credentials(), or split it, to allow us to request a no-output version.
46
+
* This will output a credentials form in event of failure. We don't want that, so just hide with a buffer.
47
+
*/
48
+
ob_start();
49
+
$result = parent::request_filesystem_credentials( $error, $context, $allow_relaxed_file_ownership );
50
+
ob_end_clean();
51
+
return $result;
52
+
}
53
+
54
+
/**
55
+
* Retrieves the upgrade messages.
56
+
*
57
+
* @since 3.7.0
58
+
*
59
+
* @return string[] Messages during an upgrade.
60
+
*/
61
+
public function get_upgrade_messages() {
62
+
return $this->messages;
63
+
}
64
+
65
+
/**
66
+
* Stores a message about the upgrade.
67
+
*
68
+
* @since 3.7.0
69
+
* @since 5.9.0 Renamed `$data` to `$feedback` for PHP 8 named parameter support.
70
+
*
71
+
* @param string|array|WP_Error $feedback Message data.
72
+
* @param mixed ...$args Optional text replacements.
73
+
*/
74
+
public function feedback( $feedback, ...$args ) {
75
+
if ( is_wp_error( $feedback ) ) {
76
+
$string = $feedback->get_error_message();
77
+
} elseif ( is_array( $feedback ) ) {
78
+
return;
79
+
} else {
80
+
$string = $feedback;
81
+
}
82
+
83
+
if ( ! empty( $this->upgrader->strings[ $string ] ) ) {
84
+
$string = $this->upgrader->strings[ $string ];
85
+
}
86
+
87
+
if ( str_contains( $string, '%' ) ) {
88
+
if ( ! empty( $args ) ) {
89
+
$string = vsprintf( $string, $args );
90
+
}
91
+
}
92
+
93
+
$string = trim( $string );
94
+
95
+
// Only allow basic HTML in the messages, as it'll be used in emails/logs rather than direct browser output.
96
+
$string = wp_kses(
97
+
$string,
98
+
array(
99
+
'a' => array(
100
+
'href' => true,
101
+
),
102
+
'br' => true,
103
+
'em' => true,
104
+
'strong' => true,
105
+
)
106
+
);
107
+
108
+
if ( empty( $string ) ) {
109
+
return;
110
+
}
111
+
112
+
$this->messages[] = $string;
113
+
}
114
+
115
+
/**
116
+
* Creates a new output buffer.
117
+
*
118
+
* @since 3.7.0
119
+
*/
120
+
public function header() {
121
+
ob_start();
122
+
}
123
+
124
+
/**
125
+
* Retrieves the buffered content, deletes the buffer, and processes the output.
126
+
*
127
+
* @since 3.7.0
128
+
*/
129
+
public function footer() {
130
+
$output = ob_get_clean();
131
+
if ( ! empty( $output ) ) {
132
+
$this->feedback( $output );
133
+
}
134
+
}
135
+
}
136
+