0
驗證我正在使用的functions.php下面的代碼來驗證表單提交與谷歌的驗證碼WooCommerce用戶登記表與谷歌的驗證碼
function adv_validate_re_captcha_field($username, $email, $wpErrors)
{
$remoteIP = $_SERVER['REMOTE_ADDR'];
$recaptchaResponse = $_POST['g-recaptcha-response'];
$response = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', [
'body' => [
'secret' => '#####################',
'response' => $recaptchaResponse,
'remoteip' => $remoteIP
]
]);
$response_code = wp_remote_retrieve_response_code($response);
$response_body = wp_remote_retrieve_body($response);
if ($response_code == 200)
{
$result = json_decode($response_body, true);
if (! $result['success'])
{
$wpErrors->add('recaptcha', __('Error message', 'woocommerce'));
}
}
}
add_action('woocommerce_register_post', 'adv_validate_re_captcha_field', 10, 3);
它工作得很好。問題是我只想在顯示錶單的頁面之一上驗證表單。例如,它被用在哪裏的ReCaptcha顯示與下面的代碼woocommerce /我的帳戶/形式的login.php:
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="###"></div>
我不想驗證任何其他網頁上的表格。