Webサイトに表示されている値をユーザーに取得し、それを変数に格納する必要があります。理想的には、これをfunctions.phpで行いたいです。
具体的には、サイトで動的な電話番号の置き換えを使用し、連絡先フォームを送信したときにユーザーに表示される電話番号を(Gravityフォーム経由で)知りたいのです。
電話番号をクラスまたはIDでラップすることはできますが、この値を変数に格納する関数の書き方を理解するのに苦労しています。
私はGravity Formsに質問を提出しましたが、彼らは助けにはなりません。ありがとう。
私はContact Form 7でも同じような仕事をしていました、私のアプローチはCF7のフォームに隠しフィールドを追加してからページの準備ができたら隠しフィールドに値を代入するjQueryを書くことでした。
<script>
jQuery(document).Ready(function(){
document.getElementById('hiddeninputID').value = document.getElementById('cphone').value;
});
</script>
上記のスクリプトを使用するのが最も簡単な方法です。PHPを使用しても機能しますが、通常のGravityフォームの更新と一緒にPHPコードを更新する必要があります。スクリプトはページ速度に影響を与えず、常に互換性があるはずです。 hiddeninputID
を追加した入力フィールドのIDに置き換えます
更新:
提供された例を考慮に入れるために:
<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>
電話番号の表示方法はわかりませんが、 gform_pre_submission hookを使用して必要な値を重力形式から格納できると思います。最初にいくつかの隠し入力を追加すると、functions.phpでフィールドの値を直接変更することができます。 docsからの例:
add_action( 'gform_pre_submission', 'pre_submission_handler' );
function pre_submission_handler( $form ) {
$_POST['input_14'] = 'new value for field 14';
}
更新:あなたは直接phpに電話番号をつかむことはできません。あなたはそれに取り組むためにいくつかのjQueryコードが必要です。 var phoneのようなもの。
var phone = $('#cphone').text();
$('<some id of the hidden field>').val(phone);
DOM要素用の追加データを格納するためにdata-attributesを使用する方が良いでしょう。