2016-08-23 5 views
1

私は、Contact Form 7プラグインとそれに付属のreCAPTCHA機能を使用するWordpressサイトを持っています。私はちょうどその部分を入れて、すべてが自動です。しかし今、私はreCAPTCHAをContact Form 7で設定されていない別のフォーム(form1.php上)に追加しようとしています。これは基本的にWordpressヘッダーとフッターを含むPHPページにありますが、真ん中のもの。 1つの重要な点は、フッターにContact Form 7のフォームの1つが含まれていることです。サイトのすべてのページにあります。2番目のreCAPTCHAを追加できません。 Contact Form 7 with reCAPTCHA

私はGoogle's instructionsに続き、私はフッターフォームを持っていたことを忘れていました。 Firebugでエラーが発生しましたError: ReCAPTCHA placeholder element must be empty

これは私にthis StackOverflow topic hereをもたらしました。そこでの唯一の答えは、ライブラリを2回インポートしたときに同じエラーが発生したということです。

私はあまりにもそれを実現しました。したがって、コンタクトフォーム7(既にソースで表示されています)に既に含まれているので、https://www.google.com/recaptcha/api.jsというスクリプトのスクリプトコードを自分のコードに含めて削除することができます。私は、Googleが複数のウィジェットをレンダリングする手順を知っていたことに気づいた。しかし、問題は、スクリプトinclude行がonloadコールバック関数を指定していることです。大問題。 Contact Form 7はそれを入れているので変更できません。既に使用されているので、同じ名前のコールバック関数を作成することはできません。もちろん私はContact Form 7がしていることを混乱させたくありません。しかし、その結果、form1.phpで私のコールバック関数を呼び出す方法を知りません。これは、HTML要素がcaptchaをレンダリングするために指定されています。

この問題の回避方法はありますか?どんな助けでも大歓迎です!ここで

答えて

0

は解像度:

  1. 問い合わせフォーム7は、複数のreCAPTCHAをサポートし、それを使用する権利HTMLマークアップを必要とします。
  2. あなたはWP-コンテンツに見ることができるように\プラグイン\コンタクトフォーム-7 \モジュール\ recaptcha.phpは、またHTMLで、トリックがある:

    • あなたの非CF7 reCAPTCHAの必要がありますこのように、単にフォームエレメントの内側にあること:

var verifyCallbackY = function(response) { 
 
    /** your stuff... */ 
 
    alert(response); 
 
};
<form id="recaptcha-cf7-migr"> <!-- the form element is important! This is what CF7 fetch one by one to find recaptchas... --> 
 
    <div 
 
     id='yRecaptcha' 
 
     class="wpcf7-form-control g-recaptcha wpcf7-recaptcha captcha-hfs" 
 
     data-sitekey="*********************************qkuila" 
 
     data-callback="verifyCallbackY"></div> 
 
</form>

+0

おかげで、私はこれを試してみたいと思っていますが、reCAPTCHAと一緒に働いている私のContact Form 7を手に入れることはできません。私は何が変わったのか分からないが、それは動作を停止した。 https://wordpress.org/support/topic/error-submitting-form-with-recaptcha-only/ – mikato

関連する問題