Как предотвратить удаление options.php существующих данных из базы данных

Я настраиваю плагин и впервые использовал API установки, чтобы создать форму в настройках. Данные для плагина изначально создаются по умолчанию, когда плагин активирован и хранится в базе данных в сериализованном формате.

Сегодня я добавил функцию обратного вызова валидации, которая отлично работает для проверки. Однако, когда какое-либо поле не проходит проверку и функция возвращает false (я также пытался вернуть NULL), существующие достоверные данные в базе данных удаляются.

Вопрос в том, как все должно случиться, или я делаю что-то глупое? В этой ситуации я ожидал, что существующие достоверные данные в базе данных останутся неизменными до тех пор, пока пользователь не представит набор достоверных данных для его изменения.

Любые предложения оценили.

Функция sanitize_callback не должна возвращать значение false или null указывающее, что вход недействителен – его цель – всегда возвращать действительное значение. Значение, возвращаемое этой функцией, будет тем, что будет сохранено в базе данных, поэтому для того, чтобы на самом деле санировать что-либо, он должен будет вернуть что-то, что имеет смысл. Сравните это с использованием intval как в этом примере , что заставит API-интерфейс настроек хранить значение int независимо от того, что вводится.

В любом случае, чтобы решить вашу проблему, вы должны:

  • Возврат ранее сохраненного значения, если вход недействителен
  • Возвращает значение по умолчанию, если ввод пуст (и пустые значения не разрешены)
  • Верните новое входное значение, если оно считается действительным

Кроме того, в дополнение к последнему заявлению, ваша ценность может стать действительной во время санитарии: представить себе такие данные, как " user@host.com" или "0123" которые могут быть подвергнуты санитарной обработке на "user@host.com" и 123 зависимости от твои нужды.