Cách Tạo Nonce Trong WordPress Sử Dụng AJAX: Hướng Dẫn Chi Tiết và Dễ Hiểu
Để sử dụng AJAX để tạo nonce trong WordPress, bạn cần thực hiện các bước sau:
Bước 1: Đăng ký hàng đợi file AJAX
Trước tiên, bạn cần đăng ký và xếp hàng file AJAX trong file functions.php của theme WordPress của bạn. Đoạn mã sau sẽ làm điều đó:
function enqueue_ajax_nonce_script() {
wp_enqueue_script( 'ajax-nonce-script', get_template_directory_uri() . '/js/ajax-nonce.js', array('jquery'), '1.0', true );
wp_localize_script( 'ajax-nonce-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
}
add_action( 'wp_enqueue_scripts', 'enqueue_ajax_nonce_script' );
Bước 2: Tạo file AJAX
Tiếp theo, code AJAX trong file ajax-nonce.js. Đoạn code sau sẽ gửi yêu cầu AJAX đến WordPress để tạo nonce:
jQuery(document).ready(function($) {
$.post(ajax_object.ajax_url, { action: "create_nonce" }, function(response) {
$("#nonce_field").val(response);
});
});
Bước 3: Xử lý yêu cầu AJAX trong WordPress
Cuối cùng, bạn cần thêm một hàm trong file functions.php để xử lý yêu cầu AJAX và tạo nonce:
function ajax_create_nonce() {
echo wp_create_nonce( 'my_form_nonce' );
wp_die();
}
add_action( 'wp_ajax_create_nonce', 'ajax_create_nonce' );
add_action( 'wp_ajax_nopriv_create_nonce', 'ajax_create_nonce' );
Với cách này, mỗi khi form của bạn được tải, một yêu cầu AJAX sẽ được gửi đến WordPress để tạo nonce mới. Nonce này sau đó sẽ được đặt vào trường nonce của form, đảm bảo rằng nó luôn mới và hợp lệ, ngay cả khi trang được lưu vào cache.
Lưu ý: Đảm bảo rằng bạn đã thay thế #nonce_field
trong tập lệnh AJAX với ID thực tế của trường nonce trong form của bạn.