開発者がアクション/フィルターを使用してフックできるフォームを処理するフォームプラグインを作成しています。
私のプラグインは、さまざまなフィルターのセットでさまざまなフォームを処理できる必要があり、これを行うには2つの方法があります。
方法1
各フォームの特定のフックの発射。
したがって、このようなコードは私のプラグイン内でフォームと呼ばれる可能性があります:
$formId = 'contact';
$errors = apply_filters('forms_validate_' . $formId, $errors, $data);
そして、次のように使用できます:
add_filter('forms_validate_contact', function($errors, $data){
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
return $errors;
} 10, 2)
方法2
呼び出し元の関数にパラメーターを渡します。
したがって、このようなコードは私のプラグイン内でフォームと呼ばれる可能性があります:
$formId = 'contact';
$errors = apply_filters('forms_validate', $formId, $errors, $data);
そして、次のように使用できます:
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)
この種の問題に取り組むWordPressコアの例はありますか?
これを処理する好ましい方法はありますか?