wp_xmlrpc_server::wp_setOptions()publicWP 2.6.0

Updates blog options.

Method of the class: wp_xmlrpc_server{}

No Hooks.

Return

Array|IXR_Error.

Usage

$wp_xmlrpc_server = new wp_xmlrpc_server();
$wp_xmlrpc_server->wp_setOptions( $args );
$args(array) (required)

Method arguments. Note: arguments must be ordered as documented.

  • 0(int)
    Blog ID (unused).

  • 1(string)
    Username.

  • 2(string)
    Password.

  • 3(array)
    Options.

Changelog

Since 2.6.0 Introduced.

wp_xmlrpc_server::wp_setOptions() code WP 6.4.3

public function wp_setOptions( $args ) {
	$this->escape( $args );

	$username = $args[1];
	$password = $args[2];
	$options  = (array) $args[3];

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

	if ( ! current_user_can( 'manage_options' ) ) {
		return new IXR_Error( 403, __( 'Sorry, you are not allowed to update options.' ) );
	}

	$option_names = array();
	foreach ( $options as $o_name => $o_value ) {
		$option_names[] = $o_name;
		if ( ! array_key_exists( $o_name, $this->blog_options ) ) {
			continue;
		}

		if ( true == $this->blog_options[ $o_name ]['readonly'] ) {
			continue;
		}

		update_option( $this->blog_options[ $o_name ]['option'], wp_unslash( $o_value ) );
	}

	// Now return the updated values.
	return $this->_getOptions( $option_names );
}