admin-post.php未调用自定义处理程序钩子

时间:2020-07-16 19:44:51

标签: php wordpress

我有一个想要使用自定义处理程序的基本电子邮件表单。我尝试按照本教程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: /

我觉得一切都很好吗?

1 个答案:

答案 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,它开始工作。老实说不知道为什么吗?