通过Wordpress处理POST请求

时间:2014-07-17 21:08:02

标签: php wordpress http-post

我正在尝试将TrialPay与Wordpress集成。 TrialPay可以发送POST或GET请求,我必须收到它。当我发送回复时,没有HTML,只有" 1"在回应中。

我尝试过某人给我的代码重写端点,但在回复中包含了整个主页HTML。

  function wpd_trialpay_endpoint(){
        add_rewrite_endpoint( 'trialpay', EP_PAGES );
   }
  add_action( 'init', 'wpd_trialpay_endpoint' );

   function wpd_trialpay_parse( $request ){
if( array_key_exists( 'trialpay', $request->query_vars ) ){
    $toaward = $_GET['reward_amount'];
    $user = $_GET['sid'];

    if (mycred_add('Points_for_TrialPay_Offer', 1, 1, '%plural% for TrialPay offer completion', $_POST['oid'] )) {
        echo "1";
        //header("HTTP/1.1 200 OK");
 } else {
        echo "Fail!";
        //header("HTTP/1.1 412 Precondition Failed");
    }
    die;
  }
}
 add_action( 'parse_request', 'wpd_trialpay_parse' );

这是正确的方法吗?当我导航到mysite.com/offer/trialpay(/ offer是一个空白页面)时,页面会输出一个" 1"喜欢的意思。当我使用POST请求测试页面时,它返回整个首页HTML。我错过了什么?

1 个答案:

答案 0 :(得分:2)

创建一个init动作钩子并管理回调函数中的所有post和get参数。这是一个例子:

Add_action('init','callback_function');
Function callback_function(){
// manage get and post variables here
}

如果你正在使用主题,这段代码应该放在你的插件中或者在functions.php里面