Проще говоря, разрешите выполнение нормальных правил проверки формы, а затем выполните «обратный вызов» после проверки полей на достоверность, а не в качестве правила проверки формы:
if ($this->form_validation->run() && my_callback() == TRUE)
{
// OK!
}
Однако:
Нет ничего "плохого" в том, как ты это делаешь сейчас, но я вижу твою озабоченность.Правила проверки выполняются в том порядке, в котором они определены, поэтому, если вы выполняете обратный вызов в последний раз, вы будете уверены, что имеете дело с «действительными» данными, определенными вашими предыдущими правилами.Вы по-прежнему можете получить доступ к другим $_POST
данным оттуда.