register( 'options_get', array( 'description' => 'Get an allowlisted WordPress option.', 'domain' => 'core', 'capability' => 'manage_options', 'inputSchema' => array( 'type' => 'object', 'properties' => array( 'name' => array( 'type' => 'string' ) ), 'required' => array( 'name' ), ), ), function ( $args ) use ( $allowlist ) { $name = sanitize_key( $args['name'] ); if ( ! in_array( $name, $allowlist, true ) ) { return new WP_Error( 'agentdesk_option_forbidden', 'Option not in allowlist' ); } return array( 'name' => $name, 'value' => get_option( $name ) ); } ); $registry->register( 'options_update', array( 'description' => 'Update an allowlisted WordPress option.', 'domain' => 'core', 'capability' => 'manage_options', 'power_mode' => true, 'inputSchema' => array( 'type' => 'object', 'properties' => array( 'name' => array( 'type' => 'string' ), 'value' => array(), ), 'required' => array( 'name', 'value' ), ), ), function ( $args ) use ( $allowlist ) { $name = sanitize_key( $args['name'] ); if ( ! in_array( $name, $allowlist, true ) ) { return new WP_Error( 'agentdesk_option_forbidden', 'Option not in allowlist' ); } if ( ! is_scalar( $args['value'] ) ) { return new WP_Error( 'agentdesk_option_invalid', 'Option value must be a scalar.' ); } update_option( $name, sanitize_text_field( (string) $args['value'] ) ); return array( 'name' => $name, 'value' => get_option( $name ) ); } ); } );