Combien de minutes un commercial perd-il chaque jour à recouper un message de demande de devis générique avec le produit réellement consulté par le client quelques instants plus tôt ? Sur un catalogue de plusieurs centaines de références techniques, cette perte de temps s’accumule vite, et l’information — pourtant disponible au moment du clic — se perd entre la fiche produit et la boîte de réception du service commercial.
La solution ne nécessite ni formulaire dédié par produit, ni base de données supplémentaire : transmettre la référence produit dans l’URL du lien vers le formulaire de contact, puis préremplir un champ à partir de ce paramètre au chargement de la page.
Construire le lien depuis la fiche produit
Sur chaque fiche produit, le bouton « Demander un devis » pointe vers la page du formulaire de contact avec la référence ajoutée en paramètre GET :
function wpm_lien_demande_devis( $post_id ) {
$reference = get_post_meta( $post_id, 'reference_produit', true );
$url_base = get_permalink( get_page_by_path( 'demande-de-devis' ) );
return add_query_arg( 'reference', rawurlencode( $reference ), $url_base );
}
La fonction native add_query_arg() gère proprement l’ajout du paramètre même si l’URL de base contient déjà d’autres paramètres, et rawurlencode() protège contre les caractères spéciaux qu’une référence produit peut parfois contenir, comme un slash ou un dièse.
Récupérer le paramètre côté formulaire
Sur la page du formulaire, un champ caché est prérempli à partir du paramètre transmis, après validation stricte de son contenu :

function wpm_reference_produit_depuis_url() {
if ( empty( $_GET['reference'] ) ) {
return '';
}
return sanitize_text_field( wp_unslash( $_GET['reference'] ) );
}
<input type="hidden" name="reference_produit_devis" value="<?php echo esc_attr( wpm_reference_produit_depuis_url() ); ?>">
La double protection wp_unslash() puis sanitize_text_field() évite qu’une valeur manipulée dans l’URL n’introduise du code indésirable dans le champ affiché, une précaution à ne jamais sauter même pour un champ apparemment inoffensif.
Afficher un message de confirmation visible
Pour que le client visiteur comprenne que sa demande sera bien associée au bon produit, un message visible au-dessus du formulaire confirme la référence détectée :
$reference = wpm_reference_produit_depuis_url();
if ( $reference ) {
echo '<p>Votre demande concerne la référence : ' . esc_html( $reference ) . '</p>';
}
Transmettre l’information jusqu’au commercial
Au moment de l’envoi du formulaire, la référence produit doit apparaître clairement dans l’email reçu par le service commercial, plutôt que d’être noyée dans un champ générique de commentaire libre :
- Un champ dédié dans le corps de l’email, distinct du message libre du client.
- Un objet d’email qui inclut directement la référence, pour un tri visuel rapide dans la boîte de réception.
- Une copie de la référence dans les métadonnées de la demande si celle-ci est enregistrée comme type de contenu
demande_devis.
Cas où le paramètre est absent ou invalide
Un visiteur peut arriver sur le formulaire directement, sans être passé par une fiche produit. Dans ce cas, le champ de référence reste simplement vide et le formulaire fonctionne normalement, sans bloquer l’envoi de la demande. Une vérification supplémentaire peut comparer la référence transmise à la liste des références existantes, pour ignorer silencieusement une valeur qui ne correspondrait à aucun produit réel :
function wpm_reference_produit_valide( $reference ) {
$produits = get_posts( array(
'post_type' => 'produit',
'meta_key' => 'reference_produit',
'meta_value' => $reference,
'fields' => 'ids',
) );
return ! empty( $produits );
}
Conseil maison : un paramètre d’URL transmis pour préremplir un champ ne doit jamais être considéré comme fiable tel quel. Validez-le systématiquement avant affichage et avant tout traitement métier, même pour une simple référence produit.
Ce que cette technique ne calcule pas
Elle ne calcule aucun tarif ni n’automatise la génération du devis lui-même : elle se limite à transmettre une information de contexte pour faire gagner du temps au commercial qui traite ensuite la demande manuellement. Le calcul automatique d’un devis relève d’un développement bien plus large, hors du périmètre de ce simple lien préconfiguré.
En résumé
Un seul paramètre d’URL, correctement validé côté serveur, suffit à relier durablement une demande de devis au produit consulté, sans construire un formulaire distinct par référence ni alourdir le catalogue d’une logique superflue. Les commerciaux gagnent un contexte immédiat, exactement là où il est utile.