📅  最后修改于: 2023-12-03 14:53:02.523000             🧑  作者: Mango
在 WooCommerce 注册表单中添加 reCAPTCHA 提供了额外的安全层,以防止自动化机器人注册。下面是将 reCAPTCHA 添加到 WooCommerce 注册表单的步骤。
首先,您需要获取 reCAPTCHA 的网站密钥。请按照以下步骤执行:
以下是将 reCAPTCHA 添加到 WooCommerce 注册表单的 PHP 代码片段:
// 添加 reCAPTCHA 到 WooCommerce 注册页面
function add_recaptcha_to_woocommerce_register_form() {
?>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<?php
}
add_action( 'woocommerce_register_form', 'add_recaptcha_to_woocommerce_register_form' );
// 验证 reCAPTCHA
function validate_woocommerce_registration_recaptcha( $errors, $username, $email ) {
$recaptcha_response = $_POST['g-recaptcha-response'];
$secret_key = 'YOUR_SECRET_KEY';
$verify_url = 'https://www.google.com/recaptcha/api/siteverify';
$data = array(
'secret' => $secret_key,
'response' => $recaptcha_response
);
$args = array(
'body' => $data,
'timeout' => '5',
'sslverify' => true
);
$response = wp_remote_post( $verify_url, $args );
$response_body = wp_remote_retrieve_body( $response );
$response_data = json_decode( $response_body, true );
if ( ! $response_data['success'] ) {
$errors->add( 'recaptcha_error', __( '<strong>错误</strong>: 请验证 reCAPTCHA。' ) );
}
return $errors;
}
add_filter( 'woocommerce_registration_errors', 'validate_woocommerce_registration_recaptcha', 10, 3 );
请将 YOUR_SITE_KEY
替换为您的 reCAPTCHA 网站密钥中的 "站点密钥",将 YOUR_SECRET_KEY
替换为 "密钥"。
打开 Woocommerce 主题的 functions.php
文件,并将以上代码片段粘贴到文件中。
保存文件后,重新加载 WooCommerce 注册页面,您应该能够看到 reCAPTCHA 附加在注册表单下方。此时,用户将需要完成 reCAPTCHA 验证才能成功注册。
希望以上步骤对您有所帮助!