将GravityForm数据存储在phpmyadmin(MySQL)中

时间:2020-03-29 作者:kinganor

我目前正在Wordpress上为客户开发一个小型门户,用户必须提交表单(使用Gravity表单创建)。我希望能够在提交时将这些表单中的数据存储到我在phpmyadmin上创建的自定义数据库中。我已经设置了所有的表和结构,但我不知道如何传递数据。

我知道我最终不得不使用“gform\\u after\\u submission”挂钩,我只是不知道从哪里开始。

谢谢

1 个回复
SO网友:mikerojas

您可以使用下面的内容。基本上,在提交表单后,我们可以获得数据$entry 提取我们想要的值(在示例中$val1, $val2, $val3) 然后使用将该数据插入到自定义表中$wpdb:

add_action(\'gform_after_submission\', \'save_to_my_custom_table\', 10, 2);
function save_to_my_custom_table($entry, $form)
{
  global $wpdb;

  // update for your tablename (this assumes the table lives in same database as the other wp tables)
  $tablename = $wpdb->prefix . "my_custom_tablename";

  // grab from values from the entry
  $val1 = rgar( $entry, \'1\' );
  $val2 = rgar($entry, \'2\');
  $val3 = rgar($entry, \'3\');

  // basic insert
  $sql = "INSERT INTO `$tablename` (`val1`,`val1`, `val1`) values (%s, %s, %d)";

  // use a prepared statement
  $stmt = $wpdb->prepare($sql, $val1, $val2, $val3);

  // run the query
  $wpdb->query($stmt);
}
如果你想连接到一个完全在WP应用程序之外的数据库,我想你可能需要考虑设置一个API来进行两者之间的通信。在这种情况下,您仍然可以非常类似地处理此问题。见下文:

add_action(\'gform_after_submission\', \'save_to_my_custom_table\', 10, 2);
function save_to_my_custom_table($entry, $form)
{
  global $wpdb;

  // update for your tablename (this assumes the table lives in same database as the other wp tables)
  $tablename = $wpdb->prefix . "my_custom_tablename";

  // grab from values from the entry
  $val1 = rgar( $entry, \'1\' );
  $val2 = rgar($entry, \'2\');
  $val3 = rgar($entry, \'3\');

  // send POST reqest to API for other database
  $endpoint = \'api.example.com\';

  $body = [
      \'val1\'  => $val1,
      \'val2\'  => $val2,
      \'val3\'  => $val3,
  ];

  $body = wp_json_encode( $body );

  $options = [
      \'body\'        => $body,
      \'headers\'     => [
          \'Content-Type\' => \'application/json\',
      ],
      \'timeout\'     => 60,
      \'redirection\' => 5,
      \'blocking\'    => true,
      \'httpversion\' => \'1.0\',
      \'sslverify\'   => false,
      \'data_format\' => \'body\',
  ];

  wp_remote_post( $endpoint, $options );
}

相关推荐

找不到页面-WAMP绿色,phpmyadmin正在工作

我当时正在使用安装在我电脑上的Wamp服务器,我的Wordpress网站一切正常。但当我安装插件时,整个WP站点都消失了,因为它显示“哎呀!找不到那个页面。”状态:我的Wamp是绿色的,我可以访问phpmyadmin并查看我的数据库。但我无法通过localhost与Wordpress的前端或后端建立连接。我还检查了Apache错误日志,没有使用端口80的任何内容。我试着用\"define(\'WP_ALLOW_REPAIR\', true);\" 在“wp config”上,但运气不佳。我对W