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

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



一只名叫tom的猫
浏览 173回答 1
1回答

慕后森

这就是你所需要的。在您的主题 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 端点文件中的数据。其他方式另一种方法是通过在 functions.php 中添加此操作来发出 ajax 请求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);      }      );   }   );});
打开App,查看更多内容
随时随地看视频慕课网APP