Je dois capturer une valeur affichée sur le site Web à l'utilisateur, puis la stocker dans une variable. Idéalement, j'aimerais le faire dans functions.php.
Plus précisément, nous utilisons le remplacement dynamique de numéros de téléphone sur les sites et nous aimerions savoir quel numéro de téléphone est affiché à l’utilisateur lorsqu'il soumet un formulaire de contact (via Gravity Forms).
Je peux envelopper le numéro de téléphone dans une classe ou un ID, mais j'ai du mal à comprendre comment écrire une fonction pour extraire cette valeur dans une variable.
J'ai soumis ma question à Gravity Forms, mais ils ne vous aideront pas. Merci.
J'avais une tâche similaire avec le formulaire de contact 7; mon approche consistait à ajouter un champ masqué au formulaire dans CF7, puis à écrire du jQuery pour attribuer la valeur au champ masqué lorsque la page était prête.
<script>
jQuery(document).Ready(function(){
document.getElementById('hiddeninputID').value = document.getElementById('cphone').value;
});
</script>
Utiliser le script ci-dessus est le moyen le plus simple de réaliser ce que vous souhaitez. Utiliser PHP fonctionnera, mais vous devrez peut-être mettre à jour le code PHP avec les mises à jour régulières des formulaires Gravity. Le script n'aura pas d'impact sur la vitesse de la page et devrait toujours être compatible. Remplacez hiddeninputID
par l'ID du champ de saisie que vous avez ajouté.
Mettre à jour:
Pour prendre en compte l'exemple fourni:
<script>
jQuery(document).ready(function() {
var mmPhone = document.getElementById("mm-cphone").innerHTML;
jQuery("#input_4_10").val(mmPhone);
jQuery("#input_4_11").val(mmPhone);
});
</script>
Je ne sais pas comment vous affichez le numéro de téléphone mais je pense que vous pouvez stocker la valeur nécessaire en utilisant gform_pre_submission hook depuis le formulaire gravity. Ajoutez d’abord des entrées cachées et vous pourrez modifier la valeur du champ directement dans le fichier functions.php. Exemple de docs:
add_action( 'gform_pre_submission', 'pre_submission_handler' );
function pre_submission_handler( $form ) {
$_POST['input_14'] = 'new value for field 14';
}
Mise à jour: Vous ne pouvez pas saisir le numéro de téléphone directement à php. Vous avez besoin de code jQuery pour travailler dessus. Quelque chose comme var phone.
var phone = $('#cphone').text();
$('<some id of the hidden field>').val(phone);
Il serait préférable d'utiliser des attributs de données pour stocker des données supplémentaires pour un élément DOM.