Tại sao tắt REST API thì Contact Form 7 (CF7) không hoạt động?
Khi bạn tắt REST API trong WordPress, điều này có thể ảnh hưởng đến hoạt động của một số plugin, bao gồm Contact Form 7 (CF7), vì CF7 sử dụng REST API để xử lý các yêu cầu gửi form. Nếu REST API bị tắt, CF7 sẽ không thể hoạt động đúng cách, vì nó không thể gửi hoặc nhận dữ liệu từ server.
Cụ thể, Contact Form 7 sử dụng REST API của WordPress để gửi form và xử lý các thông báo, thông tin người dùng gửi lên. Nếu bạn tắt REST API, plugin không thể giao tiếp với server, dẫn đến việc không thể gửi form hoặc các chức năng khác bị gián đoạn.
Để khắc phục, bạn có thể mở lại REST API trong cài đặt của WordPress hoặc đảm bảo rằng các plugin hoặc tùy chỉnh mà bạn sử dụng không gây xung đột với REST API.
Plugin miễn phí, Disable WP REST API, vô hiệu hóa REST API cho tất cả người dùng chưa đăng nhập vào WordPress. Do đó, nếu bạn đang sử dụng một plugin như Contact Form 7 yêu cầu REST API, nó sẽ không hoạt động nếu Disable WP REST API đang hoạt động trên trang web. Tuy nhiên, có một cách để làm cho nó hoạt động. Hướng dẫn nhanh này giải thích cách thiết lập trong hai bước.
Lưu ý: Kỹ thuật này yêu cầu phiên bản 2.5 hoặc cao hơn của Disable WP REST API.
Bước 1: Lấy các URI REST
Mở console của trình duyệt và truy cập vào trang chứa Contact Form 7 của bạn. Mục tiêu ở đây là xem các lỗi 401 và lấy các URI/đường dẫn liên quan. Ví dụ, sử dụng console của Firefox khi truy cập và gửi biểu mẫu liên hệ sẽ hiển thị một số URI 401 (Unauthorized). Dưới đây là ảnh chụp màn hình để bạn có ý tưởng rõ hơn:
Để minh họa bằng một ví dụ cụ thể, đây là các URI REST liên quan bị từ chối do plugin Disable WP REST API:
1 2 3 4 |
/wp-json/contact-form-7/v1/contact-forms/1757/refill /wp-json/contact-form-7/v1/contact-forms/1757/feedback /wp-json/contact-form-7/v1/contact-forms/1757/feedback/schema |
Quan trọng: Không sử dụng các URI REST trên. Chúng chỉ là ví dụ. Mỗi biểu mẫu liên hệ sẽ sử dụng các URI REST riêng. Sử dụng console của trình duyệt để tìm chúng!
Bước 2: Thêm các URI REST vào mã tùy chỉnh
Sau khi bạn có tất cả các URI REST cần thiết cho Contact Form 7, bước tiếp theo là thêm chúng vào danh sách trắng, để chúng luôn có quyền truy cập, ngay cả khi người dùng chưa đăng nhập. Như vậy, bất kỳ khách truy cập nào cũng có thể sử dụng biểu mẫu liên hệ của bạn. Để thực hiện, thêm mã tùy chỉnh sau vào functions.php của theme hoặc tạo một plugin đơn giản:
1 2 3 4 5 6 7 8 9 10 11 12 |
function disable_wp_rest_api_server_var_custom($var) { return array( '/wp-json/contact-form-7/v1/contact-forms/1757/refill', '/wp-json/contact-form-7/v1/contact-forms/1757/refill/', '/wp-json/contact-form-7/v1/contact-forms/1757/feedback', '/wp-json/contact-form-7/v1/contact-forms/1757/feedback/', '/wp-json/contact-form-7/v1/contact-forms/1757/feedback/schema', '/wp-json/contact-form-7/v1/contact-forms/1757/feedback/schema/' ); } add_filter('disable_wp_rest_api_server_var', 'disable_wp_rest_api_server_var_custom'); |
Lưu ý rằng, ngoài 3 URI REST được phát hiện trong Bước 1, chúng ta cũng thêm các phiên bản có dấu gạch chéo ở cuối. Ví dụ: /.../schema
và /.../schema/
(lưu ý dấu gạch chéo ở cuối). Việc bao gồm cả hai trường hợp giúp đảm bảo hoạt động trơn tru và mang lại trải nghiệm tốt cho khách truy cập.
Đó là tất cả những gì cần làm. Sau khi thêm mã trên vào trang web của bạn, Contact Form 7 sẽ hoạt động ngay cả khi Disable WP REST API đang hoạt động. Điều quan trọng cần hiểu là mã này sẽ cho phép bất kỳ khách truy cập hoặc bot nào truy cập vào các URI REST được chỉ định. Điều này là bình thường vì chúng được thiết kế để công khai ngay từ đầu.
Quý khách cần tư vấn thiết kế web giá rẻ, vui lòng nhấn nút bên dưới:
- VAPP – Nông sản dược liệu Việt
- Ẩn UX Builder và chặn truy cập trực tiếp nếu không phải Admin
- Seo PowerSuite là gì? Vì sao cần sử dụng phần mềm này nếu muốn SEO đạt TOP #1
- Hướng dẫn code function trang Xóa các ký tự đặc biệt trong một đoạn văn bản
- Hướng dẫn dùng Rclone sao lưu VPS qua Google Drive, One Drive,…