Estou criando um plug-in de formulário para lidar com formulários que podem ser conectados ao uso de ações / filtros pelos desenvolvedores.
Meu plug-in precisa ser capaz de lidar com diferentes formas com diferentes conjuntos de filtros e vejo duas maneiras de fazer isso.
Método 1
Fogo de ganchos específicos para cada formulário.
Então, um código como esse poderia ser chamado de formulário dentro do meu plugin:
$formId = 'contact';
$errors = apply_filters('forms_validate_' . $formId, $errors, $data);
E poderia ser usado assim:
add_filter('forms_validate_contact', function($errors, $data){
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
return $errors;
} 10, 2)
Método 2
Passe um parâmetro para a função de chamada.
Então, um código como esse poderia ser chamado de formulário dentro do meu plugin:
$formId = 'contact';
$errors = apply_filters('forms_validate', $formId, $errors, $data);
E poderia ser usado assim:
add_filter('forms_validate', function($formId, $error, $data){
switch($formId){
case 'contact':
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
break;
}
return $errors;
}, 10, 3)
Existem exemplos no núcleo do WordPress em que esse tipo de problema é tratado?
Existe um método preferido para lidar com isso?