$this->dieWithError( [ 'apierror-missingparam', 'optionname' ] );
}
- if ( $params['reset'] ) {
- $this->resetPreferences( $params['resetkinds'] );
- $changed = true;
+ $resetKinds = $params['resetkinds'];
+ if ( !$params['reset'] ) {
+ $resetKinds = [];
}
$changes = [];
$newValue = $params['optionvalue'] ?? null;
$changes[$params['optionname']] = $newValue;
}
+
+ Hooks::run( 'ApiOptions', [ $this, $user, $changes, $resetKinds ] );
+
+ if ( $resetKinds ) {
+ $this->resetPreferences( $resetKinds );
+ $changed = true;
+ }
+
if ( !$changed && !count( $changes ) ) {
$this->dieWithError( 'apierror-nochanges' );
}