2016-08-23 90 views
1

我有一個WordPress的網站,使用聯繫表格7插件和reCAPTCHA功能,隨附的,這很好。我只是把這個部分放在原處,一切都是自動的。但現在我試圖將reCAPTCHA添加到另一個窗體(在頁面form1.php中),該窗體並未使用聯繫表單7進行設置。這是在一個基本上包含Wordpress頁眉和頁腳的PHP頁面上,但它自己的中間的東西。其中一個關鍵點是頁腳包含聯繫表單7中的一種表單,因此它位於網站的每個頁面上。無法添加第二個reCAPTCHA。有聯繫表格7瓦特/ reCAPTCHA

我跟着Google's instructions,忘了我有頁腳的形式。然後我在Firebug中看到一個錯誤Error: ReCAPTCHA placeholder element must be empty

那把我帶到this StackOverflow topic here。用戶容易去的唯一答案就是當他們意識到他們已經導入了兩次庫時,他們有相同的錯誤。

好的,這就是我所做的,我也意識到了。所以,我可以在我的代碼中刪除包含https://www.google.com/recaptcha/api.js的腳本,因爲它已包含在Contact Form 7中(我在源代碼中看到它)。我注意到谷歌有渲染多個小部件的說明,我檢查了它。但問題是腳本包含行指定onload回調函數。大問題。我無法改變這種情況,因爲聯繫表單7將它放在裏面,而且由於它已經被使用,所以我不能創建一個同名的回調函數。當然,我不想惹惱任何聯繫表格7。但結果是,我不知道如何讓它在form1.php中調用我的回調函數,這是我的HTML元素指定用於呈現驗證碼的地方。

您是否看到解決此問題的方法?任何幫助是極大的讚賞!

回答

0

這裏是分辨率:

  1. 聯繫表7支持多驗證碼,只需要正確的HTML標記來使用它。
  2. 正如你可以在wp-內容見\插件\接觸形式-7 \模塊\ recaptcha.php,並在HTML,訣竅是:

    • 你非CF7必須驗證碼只是一個形式元素內,如下所示:

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

感謝和我很想嘗試這個,但是我現在無法使用我的聯繫表單7與reCAPTCHA一起工作。我不知道什麼改變了,但它停止了工作。 https://wordpress.org/support/topic/error-submitting-form-with-recaptcha-only/ – mikato