WordPress前端中的表单提交

时间:2021-07-17 作者:Foysal

我正在学习WordPress编码。我有一个Form 如下所示。

<form action="" method="post" enctype="multipart/form-data">
    <input type="text" name="first_name" />
    <input type="text" name="last_name" />
    <input type="submit" value="Submit>
</form>
如何在WordPress文件中捕获表单的提交?

1 个回复
SO网友:Buttered_Toast

您有多种方式来处理表单提交,其中之一是post操作。

但首先需要创建适当的表单属性和标记,以便它正常工作,所以它应该是这样的。

HTML

<form action="<?= esc_url(admin_url(\'admin-post.php\')); ?>" method="post">
    <!-- this will "indicte" to the hook that will handle the submition -->
    <input type="hidden" name="action" value="action_my_hook_name">
    <!-- if needed you can add a nonce for security -->
    <input type="hidden" name="security" value="<?= wp_create_nonce(\'my_form_nonce\'); ?>">

    <input type="text" name="first_name" />
    <input type="text" name="last_name" />
    <input type="submit" value="Submit">
</form>
PHP(在functions.PHP中)

add_action(\'admin_post_action_my_hook_name\', \'action_my_hook_name\'); // logged in users
add_action(\'admin_post_nopriv_action_my_hook_name\', \'action_my_hook_name\'); // not logged in users

function action_my_hook_name () {
    // checking if nonce was submited and is valid, if not valid will exit
    check_ajax_referer(\'bt_site_nonce\', \'security\');

    // handle form submition
}

相关推荐

使用WPForms提交表单时触发操作

我的一位客户使用WPForms插件创建前端表单。提交表单时,条目进入de数据库(在单独的表wp\\u wpform\\u entries或类似的表中,全部由插件处理)。但他们也希望以JSON格式将所有数据发布到另一个网站。是否有办法知道表单已提交,或者使用add_filter(\'wp_insert_post)?