处理来自插件文件的表单请求

时间:2017-01-10 作者:Eckstein

在插件中,我有一个需要提交(通过action=属性)到的付款表单。php文件,也直接位于我的插件中。经过一些研究,调用单个插件文件的“wordpress方式”似乎是在索引上使用自定义查询。而不是php。我已经用下面的代码完成了,它正在工作,但是所讨论的代码只需要处理表单,然后将用户重定向到确认页面,我不需要显示任何内容。现在看起来它实际上正在加载索引。php模板,这似乎是一种浪费。

我这样做对吗?如果没有,我应该怎么做呢?

//Register our custom request hook
function tps_space_rental_query_vars($vars) {
$vars[] = \'tps-rent-space\';
return $vars;
}
add_filter(\'query_vars\', \'tps_space_rental_query_vars\');

//This will allow us to process our payment form the wordpress way
function tps_payment_parse_request($wp) {
if (array_key_exists(\'tps-rent-space\', $wp->query_vars) 
        && $wp->query_vars[\'tps-rent-space\'] == \'chargeform\') {

    // process the request, just testing for now
    echo \'This request happened!\';
}
}
add_action(\'parse_request\', \'tps_payment_parse_request\');

2 个回复
最合适的回答,由SO网友:Kudratullah 整理而成

最简单的方法是使用init操作挂钩

add_action("init", "your_form_handler_action");
function your_form_handler_action(){
    if( isset( $_REQUEST["action"] ) && $_REQUEST["action"] == "your_action_name" ) {
        echo "Response!!!";
    }
}

SO网友:Milo

WordPress有一个通用的POST/GET请求端点,使用admin_post_(action) 将代码挂接到操作,类似于WordPress处理AJAX请求的方式。使用admin_url( \'admin-post.php\' ) 输出URL。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post