Mọi người xử lý code theo luồng chạy sau:

  1. Tạo trang Đăng ký bằng page template, dùng hàm wp_insert_user() để đăng ký thành viên, set quyền nhỏ nhất cho User
  2. Tạo trang Đăng nhập bằng page template dùng hàm wp_login_form()hướng dẫn chi tiết
  3. Tạo trang Booking bằng page template, kiểm tra trạng thái đăng nhập của User, nếu đăng nhập thì hiện Calendar, ngược lại thì chuyển về trang Đăng nhập, dùng hàm is_user_logged_in()
  4. Tạo 1 Form booking hoặc 1 Calendar bằng Js, tham khảo https://fullcalendar.io/
  5. Bắt sự kiện click trên từng ô ngày của Calendar, nếu click thì lấy ngày tháng năm, truyền vào Popup của Form Booking
  6. Tạo 1 Custom post type là Booking trong Admin WordPress, tạo mặc định 2 Term là Chưa duyệt và Đã duyệt để khách biết đã đặt lịch thành công chưa
  7. Dùng hàm wp_insert_post() để chèn dữ liệu từ Form vào Post type và hàm wp_set_object_terms() để chọn mặc định 1 Term
  8. Chạy vòng lặp, lấy dữ liệu để khách thấy được danh sách lịch đã đặt của mình, làm thêm nút xóa, dùng hàm get_delete_post_link(), nhớ mở quyền trong functions.php vì quyền User nhỏ nhất không xóa được, tham khảo code sau:
  9. Như vậy là đã đặt lịch từ ngoài trang web được, giờ xử lý các hàm hiển thị dữ liệu, thông báo,…
  10. Ngoài ra, nếu khách có yêu cầu vừa chèn vào CSDL vừa gửi Mail, thì mọi người phải viết phần gửi Mail bằng Ajax, vì Form không thể xử lý 2 Action cùng lúc.

Link tham khảo booking