Для отложенной загрузки reCAPTCHA v3 для Contact Form 7 в WordPress, вам потребуется добавить некоторый JavaScript код в вашу тему или плагин.
1. Создайте JavaScript файл и сохраните его, например, как defer-recaptcha.js
. В этом файле мы будем загружать реализацию reCAPTCHA v3 и инициировать ее, когда загрузится страница.
document.addEventListener( 'DOMContentLoaded', function() { var form = document.querySelector( 'form.wpcf7-form' ); if ( form ) { grecaptcha.ready( function() { grecaptcha.execute( 'ВАШ_SITE_KEY', { action: 'submit' } ).then( function( token ) { form.appendChild( document.createElement( 'input' ) ).setAttribute( 'type', 'hidden' ); form.querySelector( 'input[name=g-recaptcha-response]' ).setAttribute( 'value', token ); } ); } ); } } );
2. Вставьте этот код в файл вашей темы, например, в functions.php
, чтобы он был загружен на всех страницах вашего сайта.
add_action( 'wp_enqueue_scripts', 'defer_recaptcha_script' ); function defer_recaptcha_script() { wp_enqueue_script( 'defer-recaptcha', get_template_directory_uri() . '/defer-recaptcha.js', array( 'jquery' ), '', true ); }
3. Замените 'ВАШ_SITE_KEY'
на ваш собственный ключ сайта reCAPTCHA v3, который можно получить на сайте Google reCAPTCHA.
4. Теперь, при загрузке страницы, reCAPTCHA v3 будет отложено загружаться и инициироваться только на страницах с формой Contact Form 7.
Не забудьте проверить работу функционала и обновить ключи безопасности и токены по мере необходимости.