Ich erstelle ein Formular-Plugin für Formulare, die von Entwicklern mithilfe von Aktionen / Filtern eingebunden werden können.
Mein Plug-In muss in der Lage sein, verschiedene Formulare mit unterschiedlichen Filtersätzen zu verarbeiten, und ich sehe zwei Möglichkeiten, dies zu tun.
Methode 1
Feuer von bestimmten Haken für jede Form.
Code wie dieser könnte also in meinem Plugin als Form bezeichnet werden:
$formId = 'contact';
$errors = apply_filters('forms_validate_' . $formId, $errors, $data);
Und könnte so verwendet werden:
add_filter('forms_validate_contact', function($errors, $data){
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
return $errors;
} 10, 2)
Methode 2
Übergeben Sie einen Parameter an die aufrufende Funktion.
Code wie dieser könnte also in meinem Plugin als Form bezeichnet werden:
$formId = 'contact';
$errors = apply_filters('forms_validate', $formId, $errors, $data);
Und könnte so verwendet werden:
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)
Gibt es Beispiele im WordPress-Kern, in denen diese Art von Problem angegangen wird?
Gibt es eine bevorzugte Methode, um damit umzugehen?