您应该使用wp_ajax
或者wp_ajax_nopriv
作用
首先,您应该将admin ajax url作为提交表单中的action属性值。
<form id="" action="<?php echo admin_url(\'admin-ajax.php\'); ?>" method="post" class="form" >
这样,表单将提交给管理员ajax。默认情况下为php(无JavaScript)。您可以使用JavaScript使其使用AJAX工作。
接下来是将使用提交的数据的函数。在表单中,放置wp_nonce_field
和一个名为action的隐藏输入。我的行动价值是add_transfer
.
<?php wp_nonce_field(\'add_transfer\',\'security-code-here\'); ?>
<input name="action" value="add_transfer" type="hidden">
您可以将处理此表单的函数放入函数中。php或插件文件中。您可以使用
wp_ajax_
+ 如果这是仅针对登录用户的表单,则为操作名称。对于未登录的用户,请使用
wp_ajax_nopriv
+ 改为操作名称。
add_action(\'wp_ajax_add_transfer\', \'process_add_transfer\');
function process_add_transfer() {
if ( empty($_POST) || !wp_verify_nonce($_POST[\'security-code-here\'],\'add_transfer\') ) {
echo \'You targeted the right function, but sorry, your nonce did not verify.\';
die();
} else {
// do your function here
wp_redirect($redirect_url_for_non_ajax_request);
}
}