افزودن گوگل reCAPTCHA به فرم لاگین ادمین وردپرس
- ۲۲ دی ۱۴۰۲
- 2 نظر
- فانکشن های وردپرس
- گزارش خطا
فانکشن 5:
در صورتی که میخواید به فرم لاگین ادمین وردپرس، گوگل reCAPTCHA ورژن 2 اضافه کنید، میتونید از فانکشن زیر کمک بگیرید.
نحوه استفاده: کد زیر رو انتهای فایل function.php یا functions.php قالب فعال تون قرار بدید.
نکته:
فراموش نکنید از طریق کنسول ریکپچای گوگل، Site key و Secret Key دامنه تون رو گرفته باشید.
function my_recaptcha_key() {
$sitekey = "YOUR_SITE_KEY";
$secretkey = "YOUR_SECRET_KEY";
return explode(",", $sitekey . "," . $secretkey);
}
/* DON'T FORGET TO INSERT YOUR SITE KEY AND YOUR SECRET KEY IN THE ABOVE LINES! */
/*
* Add reCaptcha on WordPress Admin Login Page Without Plugin
*/
function login_style() {
// Check if the current page is wp-login.php
if (basename($_SERVER['PHP_SELF']) === 'wp-login.php') {
wp_register_script('login-recaptcha', 'https://www.google.com/recaptcha/api.js', false, NULL);
wp_enqueue_script('login-recaptcha');
}
}
add_action('login_enqueue_scripts', 'login_style');
function add_recaptcha_on_login_page() {
// Check if the current page is wp-login.php
if (basename($_SERVER['PHP_SELF']) === 'wp-login.php') {
echo '';
}
}
add_action('login_form', 'add_recaptcha_on_login_page');
function captcha_login_check($user, $password) {
// Check if the current page is wp-login.php
if (basename($_SERVER['PHP_SELF']) === 'wp-login.php') {
if (!empty($_POST['g-recaptcha-response'])) {
$secret = my_recaptcha_key()[1];
$ip = $_SERVER['REMOTE_ADDR'];
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . $secret . '&response=' . $captcha . '&remoteip=' . $ip);
$valid = json_decode($rsp, true);
if ($valid["success"] == true) {
return $user;
} else {
return new WP_Error('Captcha Invalid', __('Captcha Invalid! Please check the captcha! '));
}
} else {
return new WP_Error('Captcha Invalid', __('Captcha Invalid! Please check the captcha! '));
}
} else {
return $user;
}
}
add_action('wp_authenticate_user', 'captcha_login_check', 10, 2);
اشتراک گذاری فانکشن:
عالی بود. کاش برای اینکه به فرم کامنت ها هم مثل سایت شما کپچا اضافه کنیم، یه آموزش بذارین ❤️
درود مهدی جان
ممنون. حتما آموزش این موردی که گفتی هم به زودی قرار میدم.