ACF_Ajax_Upgrade::get_responsepublicACF 5.7.2

Returns the response data to sent back.

Method of the class: ACF_Ajax_Upgrade{}

No Hooks.

Returns

true|false|WP_Error. True if successful, or WP_Error on failure.

Usage

$ACF_Ajax_Upgrade = new ACF_Ajax_Upgrade();
$ACF_Ajax_Upgrade->get_response( $request );
$request(array) (required)
The request args.

Changelog

Since 5.7.2 Introduced.

ACF_Ajax_Upgrade::get_response() code ACF 6.8.8

public function get_response( $request ) {
	if ( ! current_user_can( acf_get_setting( 'capability' ) ) ) {
		return new WP_Error( 'upgrade_error', __( 'Sorry, you do not have permission to do that.', 'acf' ) );
	}

	// Switch blog.
	$switched = false;
	if ( isset( $request['blog_id'] ) ) {
		if ( ! is_super_admin() ) {
			return new WP_Error( 'upgrade_error', __( 'Sorry, you do not have permission to do that.', 'acf' ) );
		}

		$blog_id = absint( $request['blog_id'] );
		if ( ! $blog_id || ! get_site( $blog_id ) ) {
			return new WP_Error( 'upgrade_error', __( 'Invalid site ID.', 'acf' ) );
		}

		switch_to_blog( $blog_id );
		$switched = true;
	}

	// Bail early if no upgrade available.
	if ( ! acf_has_upgrade() ) {
		if ( $switched ) {
			restore_current_blog();
		}
		return new WP_Error( 'upgrade_error', __( 'No updates available.', 'acf' ) );
	}

	// Listen for output.
	ob_start();

	// Run upgrades.
	acf_upgrade_all();

	// Store output.
	$error = ob_get_clean();

	if ( $switched ) {
		restore_current_blog();
	}

	// Return error or success.
	if ( $error ) {
		return new WP_Error( 'upgrade_error', $error );
	}

	return true;
}