Кнопка включения обратного вызова, если повторная проверка успешна (Google recaptcha v2) - PullRequest
0 голосов
/ 22 января 2019

У меня есть простая страница, на которой есть кнопка, с которой связана переменная ссылки, я хочу добавить подтверждение страницы на страницу, чтобы кнопка была видимой только в том случае, если проверка была подтверждена

<a id="cl-link" class="cl-link-button" href="<?php echo esc_url($url); ?>" rel="nofollow"><span></span></a> 

Полный код:

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
    <head>
        <meta charset="<?php bloginfo('charset'); ?>" />
        <meta name="robots" content="noindex">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
		<script src='https://www.google.com/recaptcha/api.js'></script>
        <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
        <link rel='stylesheet' id='link-single'  href='<?php echo DOO_URI,'/css/cl.css'; ?>' type='text/css' media='all' />
    </head>
    <body>  
	
	
    <a id="cl-link" class="cl-link-button" href="<?php echo esc_url($url); ?>" rel="nofollow"><span></span></a>


	
	
	
	</body>
</html>

1 Ответ

0 голосов
/ 22 января 2019

Если вы используете Javascript для рендеринга компонента Recaptcha, функция запускается после успешной проверки Recaptcha.

Итак, для Recaptcha v3:

<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
<script>
  grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
         $("#cl-link").show();
      });
  });
</script>

Или, если вы используете Recaptcha v2 и html, есть атрибут data-callback для добавления функции обратного вызова к компоненту.

<div class="g-recaptcha" data-callback="recaptcha_callback" data-sitekey="xxxxx"></div>  

В вашем Javascript:

<script type="text/javascript">
    function recaptcha_callback(){
      $('#cl-link').show();
    }
</script>

Я предположил, что на вашей веб-странице есть JQuery для отображения кнопки. Если нет, вы должны использовать собственный Javascript, чтобы показать кнопку.

...