我有一个想要使用自定义处理程序的基本电子邮件表单。我尝试按照本教程https://blog.osmosys.asia/2016/05/07/handling-form-submissions-in-wordpress/进行操作,但似乎未调用我的自定义钩子。
<form class="" action="<?php echo admin_url('admin-post.php') ?>" method="post">
<input type="hidden" name="action" value="bb_submit_email">
<input type="email" id="email" name="email" value="example@email.com" required>
<?php wp_nonce_field('submit-email', '_mynonce'); ?>
<input type="submit" class="float-right btn btn-primary form-button" value="Submit">
</form>
<?php
add_action('admin_post_bb_submit_email', 'bb_handle_email_submit');
add_action('admin_post_nopriv_bb_submit_email', 'bb_handle_email_submit');
function bb_handle_email_submit() {
$logger = wc_get_logger();
$logger->add('submit-email-debug', 'triggered!');
if ( !isset($_POST['_mynonce']) || !wp_verify_nonce($_POST['_mynonce'], 'register-user')) {
return;
}
wp_remote_post('example.com', $_POST );
}
我尝试改用wp_ajax
,但这也不起作用。有人看到我在这里想念的东西吗?
更新:我不知道这是否有帮助,但是我检查了POST请求数据,它具有以下内容:
action: bb_submit_email
email: example@email.com
_mynonce: a2c0e80de7
_wp_http_referer: /
我觉得一切都很好吗?
答案 0 :(得分:0)
我搬了这个
<?php
add_action('admin_post_bb_submit_email', 'bb_handle_email_submit');
add_action('admin_post_nopriv_bb_submit_email', 'bb_handle_email_submit');
function bb_handle_email_submit() {
$logger = wc_get_logger();
$logger->add('submit-email-debug', 'triggered!');
if ( !isset($_POST['_mynonce']) || !wp_verify_nonce($_POST['_mynonce'], 'register-user')) {
return;
}
wp_remote_post('example.com', $_POST );
}
到functions.php
,它开始工作。老实说不知道为什么吗?