我想安装一个网络钩子,以便当用户在我们的网站上填写一个表格,一些信息被发送到另一个网站。
该网站在Wordpress上,但表单集成在PHP模板中。
显然,一些网络钩子应该已经设置,但我不确定在哪里。我对PHP非常陌生。
出于保密的原因,我删除了实际的URL,而写了"URL“。英语也不是我的第一语言,请给我一些拼错的单词。
因此,表单代码的代码如下:
<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>我跳过了一些章节,以使它更容易阅读。
以下是功能:
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的代码
<?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一起发送了哪些信息。
发布于 2022-12-01 10:22:02
看起来,您正在使用重力表单来构建表单。如果是这样的话,我强烈建议使用现有的一个附加组件:
还可以为重力表单开发自定义插件,以提供此类功能。您可以通过示例这里找到他们的开发人员文档。
这是在表单提交后触发自定义操作的正确方法(有关更多细节,请参见开发人员文档):
<?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 );
?>https://stackoverflow.com/questions/74634974
复制相似问题