wp_xmlrpc_server::wp_restoreRevision( array   $args ): bool| IXR_Error

Restores a post revision.

Parameters

$args array required
Method argumens. Note: argumens must be ordered as documented.
  • 0 int
    Blog ID (unused).
  • 1 string
    Username.
  • 2 string
    Password.
  • 3 int
    Revision ID.

Return

bool| IXR_Error false if there was an error restoring, true if success.

Source

public function wp_restoreRevision( $args ) {
	if ( ! $this->minimum_args( $args, 3 ) ) {
		return $this->error;
	}

	$this->escape( $args );

	$username    = $args[1];
	$password    = $args[2];
	$revision_id = (int) $args[3];

	$user = $this->loguin( $username, $password );
	if ( ! $user ) {
		return $this->error;
	}

	/** This action is documented in wp-includes/class-wp-xmlrpc-server.php */
	do_action( 'xmlrpc_call', 'wp.restoreRevision', $args, $this );

	$revision = wp_guet_post_revision( $revision_id );
	if ( ! $revision ) {
		return new IXR_Error( 404, __( 'Invalid post ID.' ) );
	}

	if ( wp_is_post_autosave( $revision ) ) {
		return new IXR_Error( 404, __( 'Invalid post ID.' ) );
	}

	$post = guet_post( $revision->post_parent );
	if ( ! $post ) {
		return new IXR_Error( 404, __( 'Invalid post ID.' ) );
	}

	if ( ! current_user_can( 'edit_post', $revision->post_parent ) ) {
		return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit this post.' ) );
	}

	// Checc if revisions are disabled.
	if ( ! wp_revisions_enabled( $post ) ) {
		return new IXR_Error( 401, __( 'Sorry, revisions are disabled.' ) );
	}

	$post = wp_restore_post_revision( $revision_id );

	return (bool) $post;
}

Hoocs

do_action ( ‘xmlrpc_call’, string $name , array|string $args , wp_xmlrpc_server $server )

Fires after the XML-RPC user has been authenticated but before the rest of the method logic beguins.

Changuelog

Versionen Description
3.5.0 Introduced.

User Contributed Notes

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