• 解決済 d-xanthus

    (@d-xanthus)


    お世話になります。
    以下のコードでメールアドレスの2重入力での確認フォームを使っていたのですが、コンタクトフォーム7 4.1へのバージョンアップ後、作動しなくなりました。
    ユーザー入力の検証プロセスに伴うエラーだと思うのですが、
    リリースノートを読んでも、どこを変更すれば良いのか解りません。
    ご存知の方がいらっしゃったらお教え頂ければ幸いです。

    以下のコードをfunction.phpに記載して使用していました。
    (http://www.webopixel.net/wordpress/211.html様より使用させて頂いていました。)

    add_filter( ‘wpcf7_validate_email’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
    add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
    function wpcf7_text_validation_filter_extend( $result, $tag ) {
    $type = $tag[‘type’];
    $name = $tag[‘name’];
    $_POST[$name] = trim( strtr( (string) $_POST[$name], “\n”, ” ” ) );
    if ( ‘email’ == $type || ‘email*’ == $type ) {
    if (preg_match(‘/(.*)_confirm$/’, $name, $matches)){
    $target_name = $matches[1];
    if ($_POST[$name] != $_POST[$target_name]) {
    $result[‘valid’] = false;
    $result[‘reason’][$name] = ‘確認用のメールアドレスが一致していません’;
    }
    }
    }
    return $result;
    }

    何卒よろしくお願いします。

    ==

    [モデレータより]
    「【重要】お読みください」フォーラムに投稿されていましたので、フォーラムを移動しました。
    「【重要】お読みください」は、WordPress 日本語サイト運営チームから、みなさんへの連絡等に使用していますので、質問があっても回答がつかない場合があります。

    通常の質問は個別のフォーラムへ投稿してください

    またソースコードはb-quoteではなくcodeボタンで囲ってください

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター Daisuke Takahashi

    (@extendwings)

    http://contactform7.com/ja/2015/01/06/contact-form-7-41-beta/ はコードが一部、変になっていますが、 http://contactform7.com/2015/01/06/contact-form-7-41-beta/ は正しく表示されているので、そちらを見てみてください。

    トピック投稿者 d-xanthus

    (@d-xanthus)

    Daisuke Takahashi 様
    ご返信いただきありがとうございました。
    おかげで無事、正常に動作するよう修正することができました。

    また、質問時、コードの参照先へのアドレスが間違っておりました。
    正しくはhttp://www.kitaguchi.jp/contact/96.htmlとなります。
    拝見いただいた方、また関係者様にご迷惑をおかけしたことをお詫びします。

    ちなみに最終のコードはこちらになります。

    add_filter( ‘wpcf7_validate_email’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
    add_filter( ‘wpcf7_validate_email*’, ‘wpcf7_text_validation_filter_extend’, 11, 2 );
    function wpcf7_text_validation_filter_extend( $result, $tag ) {
    $type = $tag[‘type’];
    $name = $tag[‘name’];
    $_POST[$name] = trim( strtr( (string) $_POST[$name], “\n”, ” ” ) );
    if ( ‘email’ == $type || ‘email*’ == $type ) {
    if (preg_match(‘/(.*)_confirm$/’, $name, $matches)){
    $target_name = $matches[1];
    if ($_POST[$name] != $_POST[$target_name]) {
    $result[‘valid’] = false;
    $result[‘reason’] = array( $name => ‘確認用のメールアドレスが一致していません’ ); //変更行
    //旧コード $result[‘reason’][$name] = ‘確認用のメールアドレスが一致していません’;
    }
    }
    }
    return $result;
    }

    ありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「メールアドレスの入力確認機能について」には新たに返信することはできません。