4 cách giới hạn số lượng form entries WordPress

7 giờ ago, Hướng dẫn WordPress, Views
4 cách giới hạn số lượng form entries WordPress

Giới hạn số lượng form entries trong WordPress: Giới thiệu

Trong quá trình quản lý một trang web WordPress, việc sử dụng các form (biểu mẫu) là điều cần thiết để thu thập thông tin từ người dùng. Tuy nhiên, trong một số trường hợp, bạn có thể cần giới hạn số lượng submission (lượt gửi) form để tránh spam, quản lý tài nguyên máy chủ hiệu quả hơn, hoặc đơn giản là để giới hạn số lượng người đăng ký cho một sự kiện hoặc chương trình khuyến mãi nào đó. Bài viết này sẽ giới thiệu 4 cách khác nhau để bạn có thể giới hạn số lượng form entries trên trang web WordPress của mình.

Cách 1: Sử dụng Plugin chuyên dụng

Cách đơn giản và phổ biến nhất để giới hạn số lượng form entries là sử dụng plugin WordPress chuyên dụng. Có rất nhiều plugin miễn phí và trả phí cung cấp tính năng này. Một số plugin phổ biến bao gồm:

  • Contact Form 7 Limit Submissions
  • Forminator
  • Gravity Forms Limit Submissions

Mỗi plugin có cách thiết lập và tính năng khác nhau, nhưng nguyên tắc chung là:

  • Cài đặt và kích hoạt plugin.
  • Tìm đến cài đặt của form mà bạn muốn giới hạn.
  • Thiết lập số lượng tối đa của submission cho form đó.
  • (Tùy chọn) Thiết lập thông báo hiển thị khi đạt đến giới hạn.

Ví dụ: Sử dụng Contact Form 7 Limit Submissions

Plugin Contact Form 7 Limit Submissions là một plugin miễn phí và dễ sử dụng, cho phép bạn giới hạn số lượng submission cho các form được tạo bằng Contact Form 7.

  1. Cài đặt và kích hoạt plugin: Vào Dashboard WordPress, chọn “Plugins” -> “Add New”, tìm kiếm “Contact Form 7 Limit Submissions” và cài đặt. Sau khi cài đặt, kích hoạt plugin.
  2. Thiết lập giới hạn cho form: Vào “Contact” -> chọn form bạn muốn giới hạn -> chọn tab “Limit Submissions”.
  3. Thiết lập các tùy chọn:
    • Maximum Submissions: Nhập số lượng submission tối đa.
    • Message: Nhập thông báo hiển thị khi form đạt đến giới hạn.
    • Disable Form: Chọn để vô hiệu hóa form khi đạt đến giới hạn.
    • Redirect URL: (Tùy chọn) Chuyển hướng người dùng đến một URL khác khi form đạt đến giới hạn.
  4. Lưu thay đổi: Nhấn “Save” để lưu lại các thiết lập.

Cách 2: Sử dụng Logic có điều kiện trong Form Builder

Một số form builder mạnh mẽ (như Gravity Forms hoặc Forminator) cho phép bạn sử dụng logic có điều kiện (conditional logic) để ẩn hoặc vô hiệu hóa form khi đạt đến một số lượng submission nhất định. Cách này phức tạp hơn một chút so với việc sử dụng plugin chuyên dụng, nhưng nó mang lại sự linh hoạt cao hơn.

Nguyên tắc chung là:

  • Tạo một trường tùy chỉnh (custom field) để đếm số lượng submission.
  • Sử dụng hook (ví dụ: gform_after_submission trong Gravity Forms) để tăng giá trị của trường tùy chỉnh này mỗi khi có một submission mới.
  • Thiết lập logic có điều kiện để ẩn hoặc vô hiệu hóa form dựa trên giá trị của trường tùy chỉnh.

Ví dụ: Sử dụng Gravity Forms

Trong Gravity Forms, bạn có thể sử dụng một trường Number để theo dõi số lượng submission và sử dụng Conditional Logic để ẩn form khi đạt đến giới hạn.

  1. Tạo một form mới hoặc chỉnh sửa form hiện có.
  2. Thêm một trường Number (Số) vào form. Đặt tên trường này là “Total Submissions” (hoặc một tên tương tự) và đánh dấu nó là “Hidden” (Ẩn) để người dùng không nhìn thấy nó.
  3. Sử dụng Gravity Forms API để tăng giá trị của trường “Total Submissions” mỗi khi có submission mới. Bạn có thể thêm đoạn code sau vào file functions.php của theme hoặc sử dụng một plugin code snippets:

  add_action( 'gform_after_submission', 'increase_submission_count', 10, 2 );
  function increase_submission_count( $entry, $form ) {
    $form_id = $form['id'];
    $submission_count_field_id = 'YOUR_NUMBER_FIELD_ID'; // Thay thế bằng ID của trường Number
    $current_count = rgar( $entry, $submission_count_field_id );

    // Nếu trường Number chưa có giá trị, đặt giá trị ban đầu là 0
    if ( empty( $current_count ) ) {
      $current_count = 0;
    }

    // Tăng giá trị lên 1
    $new_count = $current_count + 1;

    // Cập nhật giá trị của trường Number trong entry
    GFAPI::update_entry_field( $entry['id'], $submission_count_field_id, $new_count );
  }
  

Lưu ý: Thay thế YOUR_NUMBER_FIELD_ID bằng ID thực tế của trường Number bạn đã tạo.

  1. Thêm một trường HTML vào form, bên dưới trường “Total Submissions”. Nội dung của trường HTML này sẽ là thông báo hiển thị khi form đạt đến giới hạn (ví dụ: “Xin lỗi, số lượng đăng ký đã đạt đến giới hạn.”).
  2. Thiết lập Conditional Logic cho trường HTML: Chọn “Show this field If” (Hiển thị trường này nếu) và thiết lập điều kiện là “Total Submissions” is greater than or equal to “YOUR_MAXIMUM_SUBMISSIONS” (ví dụ: 100).
  3. Thiết lập Conditional Logic cho tất cả các trường khác trong form (ngoại trừ trường “Total Submissions” và trường HTML thông báo): Chọn “Hide this field If” (Ẩn trường này nếu) và thiết lập điều kiện tương tự như trên: “Total Submissions” is greater than or equal to “YOUR_MAXIMUM_SUBMISSIONS”.
  4. Lưu form.

Cách 3: Tự viết Code (Custom Code)

Nếu bạn có kiến thức về lập trình WordPress, bạn có thể tự viết code để giới hạn số lượng form entries. Cách này đòi hỏi kỹ năng lập trình, nhưng nó mang lại sự linh hoạt tối đa và cho phép bạn tùy chỉnh mọi khía cạnh của quá trình giới hạn.

Các bước cơ bản:

  • Sử dụng WordPress hooks (ví dụ: wp_insert_post hoặc wpcf7_before_send_mail) để can thiệp vào quá trình submission của form.
  • Kiểm tra số lượng submission hiện tại trong cơ sở dữ liệu.
  • Nếu số lượng submission đã đạt đến giới hạn, ngăn chặn việc submission và hiển thị thông báo lỗi.
  • Nếu chưa đạt đến giới hạn, cho phép submission tiếp tục và tăng số lượng submission.

Lưu ý: Việc tự viết code có thể phức tạp và cần được thực hiện cẩn thận để tránh gây ra lỗi cho trang web. Bạn nên sao lưu trang web trước khi thực hiện bất kỳ thay đổi nào.

Cách 4: Sử dụng dịch vụ bên thứ ba (Third-party Service)

Một số dịch vụ bên thứ ba cung cấp các công cụ quản lý form mạnh mẽ, bao gồm cả tính năng giới hạn số lượng submission. Các dịch vụ này thường có chi phí, nhưng chúng có thể giúp bạn tiết kiệm thời gian và công sức.

Ví dụ về các dịch vụ này bao gồm:

  • Google Forms (miễn phí nhưng có giới hạn)
  • Typeform
  • Jotform

Khi sử dụng dịch vụ bên thứ ba, bạn cần nhúng form của họ vào trang web WordPress của mình. Hầu hết các dịch vụ đều cung cấp mã nhúng (embed code) dễ dàng sử dụng.

Kết luận

Có nhiều cách để giới hạn số lượng form entries trong WordPress. Lựa chọn phương pháp nào phụ thuộc vào nhu cầu, kỹ năng và ngân sách của bạn. Sử dụng plugin chuyên dụng là cách đơn giản nhất, trong khi tự viết code mang lại sự linh hoạt cao nhất. Logic có điều kiện trong form builder là một lựa chọn trung gian. Và cuối cùng, sử dụng dịch vụ bên thứ ba có thể là giải pháp phù hợp nếu bạn cần các tính năng quản lý form nâng cao.