web-dev-qa-db-ja.com

連絡フォーム7のラジオボタンの値を取得する

私は以下のcontact form 7のラジオボタンといくつかのテキストフィールドと隠しフィールドを持っています。

[radio radio id:radio label_first "3" "6" "9" "12"]

以下はfunctions.phpのコード行の例です。テキストフィールドや隠しフィールドなど、他のすべての値を取得できますが、ラジオボタンは取得できません。

function wpcf7_cstm_function($contact_form) {
    $title = $contact_form->title;
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        $posted_data = $submission->get_posted_data();
    }
$txt = $posted_data['txt'];
        $text2 = $posted_data['txt2'];
$radio=$posted_data['radio']; 
}

選択したラジオボタンの値を取得する方法はありますか?

2
Nelson

アクションを実行したいときに応じて、フックを変更する必要があります - 私はwpcf7_before_send_mailを選択しました - あなたの関数

function wpcf7_cstm_function($contact_form) {
    $title = $contact_form->title;
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        $posted_data = $submission->get_posted_data();

        $txt = isset($posted_data['txt'])?$posted_data['txt']:'';
        $text2 = isset($posted_data['txt2'])?$posted_data['txt2']:'';
        $radio = isset($posted_data['radio'][0])?$posted_data['radio'][0]:'';

        // do something with your data
    }
}
add_action("wpcf7_before_send_mail", "wpcf7_cstm_function");

説明:ラジオボタン(チェックボックスのような)は配列上の形式で返されます。ラジオ値は1要素の配列なので、配列の最初の要素にアクセスして取得します。チェックボックスの場合、すべての値を取得するために返された配列全体を反復処理する必要があります。

2
Picard