正在为wp_远程_POST创建表单

时间:2016-06-14 作者:rudtek

我正在使用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\' => \'[email protected]\' ),
    \'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\' => \'[email protected]\' ),

\'body\' => array( \'name\' => \'$namefromform\', \'email\' => \'$emailfromform\' ),
我知道我错过了什么,但我不确定。

一般来说,我希望它作为一个小部件运行,使我的新闻稿注册在网站的页脚。

如果有人想知道我为什么需要一个api,那是因为我帮助创建网站的公司将他们的所有联系人发送到一个更大的第三方联系人管理系统。

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

我发现我错过了什么。可能对某些人来说很简单,但如果其他人有类似的问题,那么这篇文章值得发表。我将表单中的帖子信息设置为变量,然后在wp\\u remote\\u 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\' ),
然后,我在我的wp\\u remote\\u帖子周围添加了一条if/Then语句:

 if ( isset( $_POST[\'rt-submitted\'] ) ) {  wp_remote_post here }
因此,它仅在表单中的post信息存在时运行。

工作正常。

这篇文章也部分归功于:shortcode doesn't work

SO网友:Andreyu

您可以将表单操作设置为当前页面的URL。当用户提交表单时,页面会重新加载POST参数。然后在小部件的代码中检查这些参数是否存在。如果是这样,请检查它们,然后使用wp\\u remote\\u post处理它们。

就我个人而言,我用重力的形式来表示这样的东西。我在Gravity中创建表单,然后在gform\\u after\\u提交挂钩中添加代码来处理表单条目。这是一个简单的选项,因为它负责表单的其余功能(如果您负担得起许可证的话)。

相关推荐

使用WPForms提交表单时触发操作

我的一位客户使用WPForms插件创建前端表单。提交表单时,条目进入de数据库(在单独的表wp\\u wpform\\u entries或类似的表中,全部由插件处理)。但他们也希望以JSON格式将所有数据发布到另一个网站。是否有办法知道表单已提交,或者使用add_filter(\'wp_insert_post)?