Tôi đang tạo một plugin biểu mẫu để xử lý các biểu mẫu có thể được các nhà phát triển kết nối bằng cách sử dụng các hành động / bộ lọc.
Trình cắm của tôi cần có khả năng xử lý các biểu mẫu khác nhau với các bộ lọc khác nhau và tôi thấy có 2 cách để thực hiện việc này.
Phương pháp 1
Lửa móc cụ thể cho từng hình thức.
Vì vậy, mã như thế này có thể được gọi là hình thức trong plugin của tôi:
$formId = 'contact';
$errors = apply_filters('forms_validate_' . $formId, $errors, $data);
Và có thể được sử dụng như vậy:
add_filter('forms_validate_contact', function($errors, $data){
if(empty($data['name'])){
$errors['name'] = 'Name is required';
}
return $errors;
} 10, 2)
Cách 2
Truyền tham số cho hàm gọi.
Vì vậy, mã như thế này có thể được gọi là hình thức trong plugin của tôi:
$formId = 'contact';
$errors = apply_filters('forms_validate', $formId, $errors, $data);
Và có thể được sử dụng như vậy:
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)
Có bất kỳ ví dụ nào trong lõi WordPress nơi loại vấn đề này được giải quyết không?
Có một phương pháp ưa thích để đối phó với điều này?