Wordpress WpForms 自定义提交按钮调用外部 API (Json)

Wordpress WpForm customize submit button to call external API (Json)

我想更改提交按钮以触发 ajax 或任何可以向另一台服务器发送 POST 请求的按钮(因为我想在另一台服务器上管理从 wordpress 提交的所有数据). Wordpress 只是简单的 UI 页面,带有 webform 以创建记录并发送到另一台服务器。我对 PHP 一无所知。我如何设法修改代码以实现它?不要担心 CORS 问题,我可以处理

这就是您所需要的。

在您的主题 functions.php 文件中,您需要添加此 WPForms 操作,这将在您完成并提交表单时触发。

add_action( 'wpforms_process_complete', 'sendingDataToJava', 10, 4 );

   function sendingDataToJava( $fields, $entry, $form_data, $entry_id) {

    //Specify WPForm ID you have there

    //if form ID is 1
    if (form_data[id] == 1) {

      $api_url = 'http://some java end point.com';
      $body = array(
        'name'                => $fields['1']['value'],
        'email'               => $fields['2']['value'],
        'phone'               => $fields['3']['value'],

       );
       $request = wp_remote_post( $api_url, array( 'body' => $body ) );

     }
}

您必须查看您使用的表单中的 $fields id,并相应地更改上面的内容。您还需要弄清楚如何获取 java 端点文件中的数据。

另一种方式

另一种方法是 ajax 请求,方法是在您的 functions.php

中添加此操作
add_action( 'wp_ajax_foobar', 'sendingDataToJava' );
add_action( 'wp_ajax_nopriv_foobar', 'sendingDataToJava' );
function sendingDataToJava() {
    // do something

    // avoids extra 0 at the end of the response
    die(); /
}

在您的主题 JS 文件中添加此代码

jQuery(document).ready(function($) {

   $('#form_button_id').click( function() {

      //
      var data = {
         name: $('#field_1').val(),
         email: $('#field_2').val(),
         phone: $('#field_3').val()
      };

      var ajaxurl = 'http://some java end point.com';
      jQuery.post(ajaxurl, data, function(response) {
         alert('Data Sent to Sent +' response);
      }
      );
   }
   );
}
);

有关详细信息,请参阅此 WPForm 操作:https://wpforms.com/developers/wpforms_process_complete/

希望对您有所帮助