Cách viết mã biểu mẫu gửi tùy chỉnh trong PHP trong WordPress

Có nhiều plugin để xây dựng và tích hợp các biểu mẫu tùy chỉnh trong WordPress. Một số plugin cung cấp các tùy chọn tùy chỉnh và chức năng hạn chế trong khi một số plugin cao cấp cung cấp nhiều tùy chọn tùy chỉnh hơn. Nếu các yêu cầu về biểu mẫu được đáp ứng bởi các plugin đó và không muốn mất nhiều thời gian viết mã, tốt nhất bạn nên sử dụng nó để tiết kiệm thời gian. Nhưng nếu bạn đang mong đợi giải pháp tùy chỉnh và sẵn sàng đầu tư thời gian, bạn có thể tạo biểu mẫu tùy chỉnh của riêng mình trong wordpress, bạn có thể tùy chỉnh biểu mẫu này theo yêu cầu

Ở đây chúng tôi sẽ tạo một biểu mẫu liên hệ đơn giản và lưu vào cơ sở dữ liệu

Mẫu biểu mẫu tùy chỉnh

Chúng tôi sẽ bắt đầu bằng cách tạo một mẫu trang trong thư mục chủ đề tùy chỉnh của chúng tôi. Ở đây chúng ta sẽ tạo một mẫu trang biểu mẫu liên hệ có tên là contact_page_template. php và thêm biểu mẫu liên hệ vào mẫu này

// contact_page_template.php
 
 

. content before contact form

Full Name:

Email:

Message:

Send

. content after contact form

Mẫu trang liên hệ của chúng tôi đã sẵn sàng. Bây giờ, chúng ta sẽ tạo trang liên hệ mới trong quản trị wordpress hoặc chỉnh sửa nếu đã tạo. Và trong phần thuộc tính trang, chọn mẫu trang là “Mẫu liên hệ”. Bạn có thể xem biểu mẫu liên hệ tùy chỉnh của chúng tôi bằng cách truy cập url trang liên hệ

Xử lý bài mẫu

Chúng tôi đã có mẫu tùy chỉnh của chúng tôi đã sẵn sàng. Bây giờ chúng ta cần xử lý việc gửi biểu mẫu và lưu dữ liệu biểu mẫu đã gửi vào cơ sở dữ liệu. Chúng tôi sẽ thêm các phương thức xử lý gửi biểu mẫu trong các chức năng. tệp php của chủ đề tùy chỉnh của chúng tôi. Để giữ chức năng của tôi. php sạch, tôi đang thêm các phương thức xử lý biểu mẫu trong tệp mới có tên custom_contact. php và đưa nó vào chức năng của tôi. php. Ở đây, chúng tôi sẽ liên kết phương thức handle_custom_contact_form[] với hành động đăng bài của quản trị viên sẽ gọi phương thức này khi gửi biểu mẫu. Bạn có thể tìm hiểu thêm về hook admin_post_action tại đây. Trong phương pháp handle_custom_contact_form[], chúng tôi sẽ kiểm tra cơ sở dữ liệu nếu bảng cần thiết để lưu dữ liệu biểu mẫu tồn tại. Nếu chưa ta sẽ tạo bảng đó và tiến hành lưu dữ liệu biểu mẫu. Và sẽ chuyển hướng đến các trang khác nhau dựa trên thành công hay thất bại trong việc lưu dữ liệu biểu mẫu

// custom_contact.php
prefix . 'contact_requests';
    $query = $wpdb->prepare['SHOW TABLES LIKE %s', $wpdb->esc_like[$table_name]];
    if [!$wpdb->get_var[$query] == $table_name] {
        /*create table if not exists*/
        $sql = "CREATE TABLE {$table_name} [
            id INT[6] UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            full_name VARCHAR[255] NOT NULL,
            email VARCHAR[255] NOT NULL,
            message_detail TEXT NOT NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        ]";
        if [!$wpdb->query[$sql]]
            die['Failed to create table'];
    }

    if [save_to_DB[$table_name, $params]] {
        wp_redirect['PAGE_URL_TO_REDIRECT_ON_SUCCESS'];
    } else
        wp_redirect['PAGE_URL_TO_REDIRECT_ON_ERROR'];
}

function save_to_DB[$table_name, $params]
{
    global $wpdb;
    $query = "INSERT INTO {$table_name}[full_name, email, message_detail] 
    VALUES['{$params['full_name']}','{$params['email']}','{$params['message']}']";
    return $wpdb->query[$query];
}

Bao gồm custom_contact. php vào các chức năng của chủ đề tùy chỉnh của chúng tôi. php

Now we are ready to submit our custom contact form and add to database records. You can also extend our form post handling method “handle_custom_contact_form[]” method to send email notification on form submit.

Mail notification

For email notification, we will use wordpress wp_mail[] method. This is our mail notification method that is called on form submission success.

function send_mail_notification[$message]
{
    $from_name = get_option['blogname'];
    $subject = "Message from User";
    $to = "[email protected]";
    $headers[] = 'Content-Type: text/html; charset=UTF-8';
    $headers[] = "From: $from_name ";

    wp_mail[$to, $subject, $message, $headers];
}

Hãy cập nhật phương thức “handle_custom_contact_form[]” của chúng ta trong custom_contact. php để gửi thông báo qua email cho mỗi lần gửi biểu mẫu thành công

function handle_custom_contact_form[]
{
    global $wpdb;
    $params = $_POST;
    $table_name = $wpdb->prefix . 'contact_requests';
    $query = $wpdb->prepare['SHOW TABLES LIKE %s', $wpdb->esc_like[$table_name]];
    if [!$wpdb->get_var[$query] == $table_name] {
        /*create table if not exists*/
        $sql = "CREATE TABLE {$table_name} [
            id INT[6] UNSIGNED AUTO_INCREMENT PRIMARY KEY,
            full_name VARCHAR[255] NOT NULL,
            email VARCHAR[255] NOT NULL,
            message_detail TEXT NOT NULL,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        ]";
        if [!$wpdb->query[$sql]]
            die['Failed to create table'];
    }

    if [save_to_DB[$table_name, $params]] {
        send_mail_notification[$params]; // call mail notification method
        wp_redirect['PAGE_URL_TO_REDIRECT_ON_SUCCESS'];
    } else
        wp_redirect['PAGE_URL_TO_REDIRECT_ON_ERROR'];
}

Sau khi thêm cuộc gọi phương thức thông báo thư khi gửi biểu mẫu thành công và lưu vào DB, chúng tôi đã sẵn sàng nhận tin nhắn từ biểu mẫu wordpress tùy chỉnh của mình và nhận thông báo qua email cho mỗi lần gửi thành công.

Chúng tôi có thể sử dụng phương pháp này để tạo các biểu mẫu tùy chỉnh cho các mục đích khác nhau như biểu mẫu yêu cầu sản phẩm, đăng ký thư tin tức, v.v.

Làm cách nào để tạo biểu mẫu tự gửi trong PHP?

Cách thích hợp là sử dụng $_SERVER["PHP_SELF"] [kết hợp với htmlspecialchars để tránh khả năng khai thác]. Bạn cũng có thể bỏ qua phần hành động = trống, phần này không hợp lệ với W3C, nhưng hiện đang hoạt động trong hầu hết [tất cả?] Trình duyệt - mặc định là tự gửi nếu nó trống.

Làm cách nào để xử lý một biểu mẫu tùy chỉnh trong WordPress để gửi đến một trang khác?

Việc này được thực hiện bằng cách trỏ biểu mẫu gửi tới bài đăng của quản trị viên. tệp php nằm trong thư mục wp-admin của WordPress và bao gồm tên tùy chỉnh cho hành động trong biểu mẫu . Khi làm như vậy, WordPress sẽ kích hoạt hai hook hành động dựa trên trạng thái đăng nhập của người dùng. admin_post_{$action} dành cho người dùng đã đăng nhập.

Làm cách nào để thêm biểu mẫu PHP trong WordPress?

Để bắt đầu, hãy cài đặt plugin Chèn đoạn mã PHP, sau đó nhấp vào kích hoạt. Sau đó, điều hướng đến phần Đoạn mã PHP trong menu của plugin. Nhấp vào “Thêm đoạn mã PHP mới” . Tại đây, bạn có thể tạo đoạn mã của mình.

Làm cách nào để tạo biểu mẫu tùy chỉnh trong WordPress mà không cần sử dụng plugin?

Đăng nhập vào bảng điều khiển WordPress của bạn, chọn phần "Trang" và nhấp vào "Thêm mới". .
Tạo một trang mới cho phần Liên hệ của bạn
Nhấp vào tab "Văn bản" và dán Khối HTML vào hộp văn bản
Biểu mẫu WordPress đã bật Getform của bạn hiện đã sẵn sàng để nhận các lần gửi biểu mẫu

Chủ Đề