Как получить данные POST из гравитационных форм для пользовательского скрипта

В моем файле functions.php у меня есть что-то вроде следующего (из гравитационных форм):

add_action('gform_after_submission_500', 'post_to_third_party', 10, 2);
function post_to_third_party($entry, $form) {

  $post_url = THEME_DIR . '/myscript/index.php';
  $body = array(
      'first_name' => $entry['1'], 
      'last_name' => $entry['2'], 
      'email' => $entry['3']
      );

  $request = new WP_Http();
  $response = $request->post($post_url, array('body' => $body));
}

Что я должен иметь в «myscript/index.php», чтобы получить данные сообщения, чтобы я мог их использовать?


person pgtips    schedule 24.01.2015    source источник
comment
Ничего не происходит, когда я var_dump($_POST) на myscript/index.php   -  person pgtips    schedule 24.01.2015
comment
как насчет $_REQUEST   -  person tonoslfx    schedule 24.01.2015
comment
Я получаю PHPSESSID и т. д., но никаких данных   -  person pgtips    schedule 24.01.2015


Ответы (2)


попробуй это:

$request->request( $post_url, array( 'method' => 'POST', 'body' => $body) );
person tonoslfx    schedule 24.01.2015
comment
Я попробовал это, и я все еще ничего не получаю в myscript/index.php. Массив POST пуст. Есть идеи, почему это не проходит? - person pgtips; 24.01.2015
comment
@quietgrit извините, я не знаком с wordpress! хотя вы можете прочитать их документацию, чтобы помочь вам в дальнейшем :) - person tonoslfx; 31.01.2015

Данные, возвращаемые /myscript/index.php, просто должны быть в формате, который может обрабатываться PHP, когда они возвращаются в переменной $response. Я не эксперт здесь, но по умолчанию я вывожу данные в виде JSON через json_encode на стороне /myscript/index.php, а затем проанализируйте эти данные с помощью json_decode. когда он возвращается в ответ.

$data = json_decode( wp_remote_retrieve_body( $response ) );
person Dave from Gravity Wiz    schedule 25.01.2015
comment
Я пробовал json кодировать тело и отправлять тип контента application/json, но я по-прежнему ничего не получаю в /myscript/index.php. Так расстраивает! - person pgtips; 26.01.2015
comment
Ах, я неправильно понял. По сути, это то же самое, но попробуйте использовать wp_remote_post() вместо того, что у вас есть сейчас (пример). Кроме того, чтобы подтвердить, поступает ли запрос в ваш скрипт вообще? - person Dave from Gravity Wiz; 26.01.2015