Automatic_Upgrader_Skin

Upgrader Skin for Automatic WordPress Upgrades


Description Description

This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.

See also See also


Top ↑

Source Source

File: wp-admin/includes/class-automatic-upgrader-skin.php

class Automatic_Upgrader_Skin extends WP_Upgrader_Skin {
	protected $messages = array();

	/**
	 * Determines whether the upgrader needs FTP/SSH details in order to connect
	 * to the filesystem.
	 *
	 * @since 3.7.0
	 * @since 4.6.0 The `$context` parameter default changed from `false` to an empty string.
	 *
	 * @see request_filesystem_credentials()
	 *
	 * @param bool   $error                        Optional. Whether the current request has failed to connect.
	 *                                             Default false.
	 * @param string $context                      Optional. Full path to the directory that is tested
	 *                                             for being writable. Default empty.
	 * @param bool   $allow_relaxed_file_ownership Optional. Whether to allow Group/World writable. Default false.
	 * @return bool True on success, false on failure.
	 */
	public function request_filesystem_credentials( $error = false, $context = '', $allow_relaxed_file_ownership = false ) {
		if ( $context ) {
			$this->options['context'] = $context;
		}
		// TODO: fix up request_filesystem_credentials(), or split it, to allow us to request a no-output version
		// This will output a credentials form in event of failure, We don't want that, so just hide with a buffer
		ob_start();
		$result = parent::request_filesystem_credentials( $error, $context, $allow_relaxed_file_ownership );
		ob_end_clean();
		return $result;
	}

	/**
	 *
	 * @return array
	 */
	public function get_upgrade_messages() {
		return $this->messages;
	}

	/**
	 *
	 * @param string|array|WP_Error $data
	 */
	public function feedback( $data ) {
		if ( is_wp_error( $data ) ) {
			$string = $data->get_error_message();
		} elseif ( is_array( $data ) ) {
			return;
		} else {
			$string = $data;
		}
		if ( ! empty( $this->upgrader->strings[ $string ] ) )
			$string = $this->upgrader->strings[ $string ];

		if ( strpos( $string, '%' ) !== false ) {
			$args = func_get_args();
			$args = array_splice( $args, 1 );
			if ( ! empty( $args ) )
				$string = vsprintf( $string, $args );
		}

		$string = trim( $string );

		// Only allow basic HTML in the messages, as it'll be used in emails/logs rather than direct browser output.
		$string = wp_kses( $string, array(
			'a' => array(
				'href' => true
			),
			'br' => true,
			'em' => true,
			'strong' => true,
		) );

		if ( empty( $string ) )
			return;

		$this->messages[] = $string;
	}

	/**
	 */
	public function header() {
		ob_start();
	}

	/**
	 */
	public function footer() {
		$output = ob_get_clean();
		if ( ! empty( $output ) )
			$this->feedback( $output );
	}
}

Top ↑

Changelog Changelog

Changelog
Version Description
4.6.0 Moved to its own file from wp-admin/includes/class-wp-upgrader-skins.php.
3.7.0 Introduced.


Top ↑

Methods Methods

  • after — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • before — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • bulk_footer — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • bulk_header — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • feedback — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • footer — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • get_upgrade_messages — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • header — This skin is designed to be used when no output is intended, all output is captured and stored for the caller to process and log/email/discard.
  • request_filesystem_credentials — Determines whether the upgrader needs FTP/SSH details in order to connect to the filesystem.

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.