Tôi đang viết một plugin sử dụng một biểu mẫu để truyền một số dữ liệu cho chính nó.
Có cách nào để làm điều này "The WordPress Way" không?
Mã mẫu biểu mẫu (trên trang menu con tùy chỉnh được thêm trong "Công cụ"):
<form action="<?php echo get_admin_url() . 'admin-post.php'; ?>" method="post">
<input name="some_input" type="text">
<input name="other_input" type="text">
</form>
Sau đó, về phía logic của plugin:
function my_process_form_data() {
// Process the form data here and return the results
}
add_action( 'admin_post', 'my_process_form_data' );
Bây giờ tôi đã xử lý biểu mẫu và có dữ liệu kết quả (được lưu trữ dưới dạng một mảng lớn), cách tốt nhất để trả lại dữ liệu đó cho trang menu con tùy chỉnh mà tôi đã tạo là gì?
Tôi hiểu có một vài lựa chọn:
- Thay vì đăng lên "admin-post.php", tôi có thể đăng trực tiếp lên trang. Nhưng điều này làm cho một số mã lộn xộn và các điều kiện (nghĩa là nếu kết quả, tải cái này, cái khác, tải cái này. Tốt nhất là nên tạo khuôn mẫu và logic.
- Sử dụng wp_redirect và lưu trữ dữ liệu trong URL mà nó đang chuyển hướng đến. Nhưng tôi có một mảng lớn dữ liệu để trả về cho người dùng cuối, vì vậy đây không thực sự là một lựa chọn.
- Tuần tự hóa dữ liệu và lưu trữ tạm thời trong cơ sở dữ liệu, thông qua các quá trình hoặc tùy chọn, bỏ đặt dữ liệu trong db khi người dùng đã nhìn thấy nó. Nhưng điều này cảm thấy rất 'hackish'.
Có gợi ý nào để đưa mảng dữ liệu lớn này trở lại trang menu con tùy chỉnh của tôi "theo cách WordPress" không?