首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置Webhooks

设置Webhooks
EN

Stack Overflow用户
提问于 2022-11-30 22:38:11
回答 1查看 32关注 0票数 -1

我想安装一个网络钩子,以便当用户在我们的网站上填写一个表格,一些信息被发送到另一个网站。

该网站在Wordpress上,但表单集成在PHP模板中。

显然,一些网络钩子应该已经设置,但我不确定在哪里。我对PHP非常陌生。

出于保密的原因,我删除了实际的URL,而写了"URL“。英语也不是我的第一语言,请给我一些拼错的单词。

因此,表单代码的代码如下:

代码语言:javascript
复制
<div class='gf_browser_gecko gform_wrapper' id='gform_wrapper_1' >
    <form method='post' enctype='multipart/form-data'  id='formulaireintervention'  action='URL/themes/grafity/valide-formulaire.php' name='formulaireintervention' onsubmit="return validateForm()">
        
        <div class='gform_body'><ul id='gform_fields_1' class='gform_fields top_label form_sublabel_below description_below'>
        
        <li id='field_1_15'  class='gfield gsection field_sublabel_below field_description_below gfield_visibility_visible' ><h2 class='gsection_title'>
        
        Informations sur le nid</h2></li>
        
        <li id='field_1_24'  class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_1_24' ><?php  esc_html_e('Nombre de nids', 'netbee-translate'); ?><span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_select'>
          <select name='nombredenids' id='input_1_24'  class='medium gfield_select'   aria-required="true" aria-invalid="false">
            <option value="1" selected="selected">1</option>
            <option value="2">2</option>
            <option value="3" >3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7" >7</option>
            <option value="8" >8</option>
            <option value="9" >9</option>
            <option value="10">10</option>
          </select>
      </div></li>
      <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_1' class='gform_button button' value='<?php esc_attr_e('Soumettre', 'netbee-translate'); ?>' style="background-color:#f7941f;border:1px solid #2f2f2f;color:#2f2f2f;padding-left:10px;padding-right:10px;"/> <?php esc_html_e('Vous serez ensuite rediriger vers un récapitulatif de votre demande', 'netbee-translate'); ?> </div>
    </form>
</div>
<script type='text/javascript'> if(typeof gf_global == 'undefined') var gf_global = {"gf_currency_config":{"name":"Dollar US","symbol_left":"$","symbol_right":"","symbol_padding":"","thousand_separator":",","decimal_separator":".","decimals":2},"base_url":"https:\/\/URL\/wp-content\/plugins\/gravityforms","number_formats":[],"spinnerUrl":"https:\/\/URL\/wp-content\/plugins\/gravityforms\/images\/spinner.gif"};jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 1) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [1, 1]) } ); </script>

我跳过了一些章节,以使它更容易阅读。

以下是功能:

代码语言:javascript
复制
function validateForm() {
  var x1 = document.forms["formulaireintervention"]["prenom"].value;
  var x2 = document.forms["formulaireintervention"]["nom"].value;
  var x3 = document.forms["formulaireintervention"]["adresse"].value;
  var x4 = document.forms["formulaireintervention"]["ville"].value;
  var x5 = document.forms["formulaireintervention"]["cp"].value;
  var x6 = document.forms["formulaireintervention"]["telephone"].value;
  var destruction = document.getElementsByName("destruction[]");
  var conditions = document.getElementsByName("conditions[]");
}

下面是valide-formaire.php的代码

代码语言:javascript
复制
<?php
// DEFINITION DES VARIABLES //
$dateref = date("YmdHis");
$reference             = "INT-$dateref";
$date                 = date("d/m/Y");
$heure                = date("H:i:s");
$ip                      = $_SERVER['REMOTE_ADDR'];
$classement                = "$dateref";
$prenom                = $_POST["prenom"];
$nom                  = $_POST["nom"];
$adresse               = $_POST["adresse"];
$ville                    = $_POST["ville"];
$cp                   = $_POST["cp"];
$telephone                 = $_POST["telephone"];
$adresseemail           = $_POST["adresseemail"];
$confirmationadresseemail  = $_POST["confirmationadresseemail"];
$nombredenids           = $_POST["nombredenids"];
$remarqueclient                = $_POST["remarqueclient"];
foreach($_POST['destruction']  as $nomd=>$valued)
{
   if($valued == "guepes"){$guepes = "1";}
   if($valued == "frelons"){$frelons = "1";}
   if($valued == "bourdons"){$bourdons = "1";}
   if($valued == "abeilles"){$abeilles = "1";}
}

foreach($_POST['urgente']  as $nomb=>$valueb)
{
   if($valueb == "oui"){$urgente = "1";}
}

foreach($_POST['facture']  as $nomc=>$valuec)
{
   if($valuec == "oui"){$envoifacture = "courrier";}
}

$premiernid = 70;
$surplus = 30;
$secondnid = 30;

if($nombredenids == "1"){
   if($urgente == "1") {
      $prix = 100;
   }
   if($urgente != "1") {
      $prix = 70;
   }
}

if($nombredenids > "1"){
   if($urgente == "1") {
      $restant = $nombredenids - "1";
      $prixnid = $secondnid * $restant;
      $prix = 70 + 30 + $prixnid;
   }
   if($urgente != "1") {
      $restant = $nombredenids - "1";
      $prixnid = $secondnid * $restant;
      $prix = 70 + $prixnid;
   }
}
   
$statut                   = "A";
$prestataire            = "0";
$password              = "";

// VERIFICATION //


if($prenom == "" || $nom == "" || $adresse == "" || $ville == "" || $cp == "" || $telephone == "")
{
   echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL = https:/URL/formulaire/?erreur=1\">";
   exit;
}

// INSCRIPTION DANS LA BDD //
include("config-bo.php");
   

$prenom = mysqli_real_escape_string($link, $prenom);
$nom = mysqli_real_escape_string($link, $nom);
$adresse = mysqli_real_escape_string($link, $adresse);
$ville = mysqli_real_escape_string($link, $ville);
$remarqueclient = mysqli_real_escape_string($link, $remarqueclient);

$requete91 = "INSERT INTO `intervention` (`id`, `reference`, `date`, `heure`, `ip`, `classement`, `prenom`, `nom`, `adresse`, `cp`, `ville`, `tva`, `telephone`, `email`, `nbnids`, `guepes`, `frelons`, `bourdons`, `abeilles`, `piece`, `facade`, `corniche`, `toiture`, `sol`, `arbre`, `hauteur`, `prix`, `statut`, `mdp`, `prestataire`, `urgente`, `rdvdate`, `rdvdate2`, `rdvheure`, `remarque`, `remarqueclient`, `facture`, `contrepartie_numero`, `contrepartie_presta`, `contrepartie_paye`, `envoifacture`, `raison`, `provenance`, `gestionnaire`, `contrepartie_recu`) VALUES (NULL, '$reference', '$date', '$heure', '$ip', '$classement', '$prenom', '$nom', '$adresse', '$cp', '$ville', '', '$telephone', '$adresseemail', '$nombredenids', '$guepes', '$frelons', '$bourdons', '$abeilles', '', '', '', '', '', '', '', '$prix', '$statut', '$password', '$prestataire', '$urgente', '', '', '', '', '$remarqueclient', '', '', '', '', '$envoifacture', '', '', '', '');";
mysqli_query($link, $requete91);

$requete179 = "INSERT INTO `intervention_historique` (`ID`, `reference`, `statut`, `date`, `heure`, `remarque`, `user`) VALUES (NULL, '$reference', '$statut', '$date', '$heure', '', '');";
mysqli_query($link, $requete179);



if (mysqli_query($link, $requete179)) {

   echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL = https://URL.be/wp-content/themes/grafity/recap-formulaire-inter.php?reference=$reference&mdp=$password\">";
      exit;
 
     
     
} else {
      echo "Error: " . $requete179 . "<br>" . mysqli_error($link);
}
mysqli_close($link);   

?>

我不知道在哪里和是否从这里设置网络钩子。如果它们是在这里安装的,我将需要知道在哪里,如果不是,我将感谢一些帮助如何安装新的webhooks。

提前感谢您的帮助!

我试图寻找一些插件,可以帮助我建立免费的网络钩子。我还查看了代码,并试图了解与$_POST一起发送了哪些信息。

EN

回答 1

Stack Overflow用户

发布于 2022-12-01 10:22:02

看起来,您正在使用重力表单来构建表单。如果是这样的话,我强烈建议使用现有的一个附加组件:

还可以为重力表单开发自定义插件,以提供此类功能。您可以通过示例这里找到他们的开发人员文档。

这是在表单提交后触发自定义操作的正确方法(有关更多细节,请参见开发人员文档):

代码语言:javascript
复制
<?php
/**
 * After form is submitted, send data to 3rd party.
 *
 * @param array $entry
 * @param array $form
 * @return void
 */
function post_to_third_party( $entry, $form ) {
    $endpoint_url = 'https://example.com/rest/api/endpoint/';
    $body          = array(
        'firstname' => '', // extract data from $entry array.
        'lastname'  => '', // extract data from $entry array.
    );

    $response = wp_remote_post( $endpoint_url, array( 'body' => $body ) );
}
add_action( 'gform_after_submission', 'post_to_third_party', 10, 2 );
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74634974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档