اکثر وبسایتها، دارای یک فرم تماس هستن که به مشتریهاشون امکان تماس سریع رو میده. این قابلیت برای وبسایتهای خدمات محور، یک “باید” هست.
علاوه بر کاربران، رباتهایی هستن که میخوان به وبسایت، اسپم ارسال کنن. شما میتونین وبسایتتون رو در برابر این اسپمها با Captcha ایمن کنین. برای پیاده سازی Captcha در وردپرس 2 راه وجود داره:
از پلاگین آماده Captcha برای وردپرس استفاده کنین
ما پلاگین Advanced noCaptcha reCaptcha رو پیشنهاد میکنیم، که یک پلاگین چند منظوره است که به شما امکان اضافه کردن Captcha به بسیاری از اشکال پلاگینها رو میده
به Plugins -> Add New برین، در کادر جستوجو عبارت WP-SpamShield Anti-Spam – All-in-One Spam Protection رو وارد کنین و بعد روی Install now کلیک کنین.
روی Activate کلیک کنین.
حالا به Advanced noCaptcha برین و Site key و Secret key رو وارد کنین.
حالا میتونین مثلا Lost Password Form رو انتخاب کرده و کلیک کنین.
بعد میتونین noCaptcha رو درست قبل از دکمه اینجا ببینین:
اضافه کردن کد Captcha سفارشی به پوسته وردپرس
بیاین نگاهی به یک مثال ساده بندازیم:
noCaptcha رو به فرم Lost Password اضافه کنین. باید کد زیر رو به فایل functions.php در پوستهتون اضافه کنین.
این قدم اوله – این کد فرمی رو به بخش مدیریتتون اضافه میکنه که اونجا Site key و Secret key رو وارد کنین.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
function pe_no_captcha_menu() { add_menu_page("no Captcha Options", "no Captcha Options", "manage_options", "recaptcha-options", "pe_recaptcha_panel_options", "", 100); } function pe_recaptcha_panel_options() { ?> <div class="pe-outer"> <form method="post" action="options.php"> <?php settings_fields("header_section"); do_settings_sections("recaptcha-options"); submit_button(); ?> </form> </div> <?php } add_action("admin_menu", "pe_no_captcha_menu"); function pe_show_recaptcha_options() { add_settings_section("header_section", "Keys", "pe_display_recaptcha_content", "recaptcha-options"); add_settings_field("captcha_site_key", __("Site Key"), "pe_show_captcha_site_key_element", "recaptcha-options", "header_section"); add_settings_field("captcha_secret_key", __("Secret Key"), "pe_display_captcha_secret_key_element", "recaptcha-options", "header_section"); register_setting("header_section", "captcha_site_key"); register_setting("header_section", "captcha_secret_key"); } function pe_display_recaptcha_content() { echo __("Enter keys below"); } function pe_show_captcha_site_key_element() { ?> <input type="text" name="captcha_site_key" id="captcha_site_key" value="<?php echo get_option('captcha_site_key'); ?>" /> <?php } function pe_display_captcha_secret_key_element() { ?> <input type="text" name="captcha_secret_key" id="captcha_secret_key" value="<?php echo get_option('captcha_secret_key'); ?>" /> <?php } add_action("admin_init", "pe_show_recaptcha_options"); |
قدم دوم – کدی که generate noCaptcha رو در نمای Lost Password ایجاد میکنه
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function pe_login_recaptcha_script() { wp_register_script("recaptcha_login", "https://www.google.com/recaptcha/api.js"); wp_enqueue_script("recaptcha_login"); } add_action("login_enqueue_scripts", "pe_login_recaptcha_script"); function pe_display_login_captcha() { ?> <div class="g-recaptcha" data-sitekey="<?php echo get_option('captcha_site_key'); ?>"></div> <?php } function pe_check_lostpassword_captcha() { if (isset($_POST['g-recaptcha-response'])) { $recaptcha_secret = get_option('captcha_secret_key'); $response = wp_remote_get("https://www.google.com/recaptcha/api/siteverify?secret=". $recaptcha_secret ."&response=". $_POST['g-recaptcha-response']); $response = json_decode($response["body"], true); if (true == $response["success"]) { return; } else { wp_die(__("Bot detected")); } } else { wp_die(__("Bot detected or JS disabled")); } return $errors; } add_action("lostpassword_form", "pe_display_login_captcha"); add_action("lostpassword_post", "pe_check_lostpassword_captcha"); |
میدونم که مثال بالا خیلی سادهاس، اما امیدوارم که برای ساختن کدهای پیشرفته بهتون کمک کنه.
اگر این آموزش رو دوست داشتین لطفا اون رو به اشتراک بذارین:)
مرسی!