为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

这就是你所需要的。


在您的主题 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);

      }

      );

   }

   );

}

);


查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 171 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信