settings_fields() doesn’t work for other roles except admin
To change the capability required to save settings you can use the option_page_capability_{$option_page} filter, where {$option_page} is the value passed to settings_field() on your settings page. So if you have this on your settings page: <?php settings_fields( ‘wpse_294802_options’ ); ?> You can change the required capability to save with the option_page_capability_wpse_294802_options filter: function wpse_294802_option_page_capability() { … Read more