создание формы для wp_remote_post

Я использую код из wordpress codex: (это общая версия, мой код работает, хотя)

$response = wp_remote_post( $url, array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => array( 'name' => 'bob', 'email' => 'bob@example.com' ), 'cookies' => array() ) ); if ( is_wp_error( $response ) ) { $error_message = $response->get_error_message(); echo "Something went wrong: $error_message"; } else { echo 'Response:<pre>'; print_r( $response ); echo '</pre>'; } 

Я пытаюсь выяснить, как создать форму, в которой пользователи могут вводить свое имя и адрес электронной почты, а затем она будет представлена ​​нам для добавления в информационный бюллетень.

Поэтому в основном я хочу, чтобы записи тела были динамическими

Я думал о такой форме:

 <form name="getUserInfo" action="NOT SURE WHAT GOES HERE" method="post"> <input type="text" name="name" /> <input type="email" name="email" /> <input type="submit" name="submit" value="submit"/> </form> 

но я не знаю, как отправить это код

Я считаю, что это по этому методу, когда я меняю эту строку:

 'body' => array( 'name' => 'bob', 'email' => 'bob@example.com' ), 

в

 'body' => array( 'name' => '$namefromform', 'email' => '$emailfromform' ), 

Я знаю, что у меня что-то не хватает, но я не уверен.

Вообще говоря, мне бы хотелось, чтобы это выполнялось как виджет, чтобы подписывать мой бюллетень в нижнем колонтитуле сайта.

Если кто-то задается вопросом, почему мне нужен api для этого, это потому, что компания, я помогаю создавать сайт для отправки всех своих контактов в более крупную стороннюю систему управления контактами.

Solutions Collecting From Web of "создание формы для wp_remote_post"

Вы можете сделать действие формы URL текущей страницы. Когда пользователь отправляет форму, страница перезагружается параметрами POST. Затем в коде вашего виджета вы проверяете, существуют ли эти параметры. Если это так, вы проверяете их, а затем обрабатываете их с помощью wp_remote_post.

Лично я использую Gravity Forms для таких вещей. Я создаю форму в Gravity, а затем добавляю код в gform_after_submission hook для обработки записи формы. Это простой вариант, поскольку он заботится о остальной функциональности формы (если вы можете позволить себе лицензию).

Я понял, что мне не хватает. Возможно, это было просто для некоторых, но стоит опубликовать его, если у кого-то есть аналогичный вопрос. Я установил данные сообщения из формы в переменные, а затем назначил их в wp_remote_post.

Я сначала переделал свою форму, чтобы добавить к ней конкретные имена:

 <form name="getUserInfo" action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post"> <input type="text" name="name" /> <input type="email" name="email" /> <input type="submit" name="submit" value="submit"/> </form> 

то я назначил переменные на основе данных формы.

  $name = sanitize_text_field( $_POST["rt-name"] ); $email = sanitize_email( $_POST["rt-email"] ); 

Они были добавлены вместо линии тела в моем первоначальном вопросе:

 'body' => array( 'name' => '$name', 'email' => '$email' ), 

Затем я добавил оператор if / then вокруг моего wp_remote_post:

  if ( isset( $_POST['rt-submitted'] ) ) { wp_remote_post here } 

так что он работает только в том случае, если присутствует информация о записи из формы.

работает отлично.

кредит частично отправляется на этот пост: shortcode не работает