FYI it was the ‘whitelist_options’ filter. Something like this:
public function init(){
add_filter( 'whitelist_options', array($this, 'whitelist_options'), 100, 1);
}
public function whitelist_options($options){
if(isset($options['member_settings']) && !empty($_POST['option_page']) && $_POST['option_page'] == 'member_settings'){
// we're saving the techspace member settings area. remove options if we are attempting to save an empty field.
foreach($options['member_settings'] as $index => $key){
if(empty($_POST[$key])){
unset($options['member_settings'][$index]);
}
}
}
return $options;
}
Have you tried removing the name attribute of the fields that you don’t want to save? E.g. with JS?
I’ve bumped into a similar (yet not the same) problem, and removing the name attribute from the input field removed it completely from the $_POST object during the save hook…