TuZonaWP utiliza cookies. Lea nuestra Política de Privacidad para obtener más información. Para eliminar este mensaje, haga clic en el siguiente botón: Acepto el uso de cookies

Posteador
TuZonaWP
Administrador



Integrar Google No Captcha reCaptcha Formularios WordPress



Alguna vez te has preguntado ¿Como logro colocar Google No Captcha Recaptcha? dentro de mis formularios en wordpress sin la necesidad de instalar pluguin, pues no busques mas ya que he traído para ti esta magnifica solución. Pero tal vez te estas preguntando
¿Por que es importante agregarlo a nuestros formularios? pues es muy importante para evitar comentarios SPAM, o registros realizados por los famosos "Robots" si bien algo muy bueno de agregar este método es la comodidad que se le ofrece a los usuarios, ya que el método para resolverlo es muy fácil y seguro a la vez.

Pues bien ahora si comencemos con la integración, lo primero que debemos hacer es crear nuestras llaves de acuerdo al dominio de nuestro sitio web para ello obtendremos las llaves mediante el siguiente enlace, Ver Link. Una vez dentro de la web oficial nos pedirá iniciar sesión con nuestra cuenta "Google", posteriormente nos pedirá agregar el nombre de nuestro dominio.



Ahora lo que debemos hacer es agregar los siguientes códigos, para ello les explicare los pasos a realizar cabe mencionar que es muy importante agregar el código justo como se indica. El primer código a agregar es dentro de nuestro archivo "functions.php"


include_once('recaptcha.php');


Ya realizado lo mencionado anteriormente debemos crear un archivo llamado "recaptcha.php" (esto lo podemos realizar mediante el bloc de notas o cualquier otro editor de código). Posteriormente dentro del archivo creado anteriormente agregaremos el siguiente codigo:


<?php
function no_captcha_recaptcha_menu() {
add_menu_page("reCapatcha Opciones", "reCaptcha Opciones", "manage_options", "recaptcha-options", "recaptcha_options_page", "", 100);
}

function recaptcha_options_page() { ?>
<div class="wrap">
<h1>reCaptcha Opciones</h1>
<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", "no_captcha_recaptcha_menu";

function display_recaptcha_options() {
add_settings_section("header_section", "Claves", "display_recaptcha_content", "recaptcha-options";

add_settings_field("captcha_site_key", __("Clave del sitio", "display_captcha_site_key_element", "recaptcha-options", "header_section";
add_settings_field("captcha_secret_key", __("Clave secreta", "display_captcha_secret_key_element", "recaptcha-options", "header_section";

register_setting("header_section", "captcha_site_key";
register_setting("header_section", "captcha_secret_key";
}

function 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", "login_recaptcha_script";

function display_recaptcha_content() {
echo __('<p>Usted necesita <a target="blank" href="https://www.google.com/recaptcha/admin" rel="external">registrar su dominio</a> y obtener las claves para hacer funcionar el plugin.</p>');
echo __("Introduzca las claves de abajo";
}

function display_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 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", "display_recaptcha_options";
?>
<?php
function display_register_captcha() { ?>
<div style="transform:scale(0.90);transform-origin:0;-webkit-transform:scale(0.90);transform:scale(0.90);-webkit-transform-origin:0 0;transform-origin:0 0; 0" class="g-recaptcha" data-sitekey="<?php echo get_option('captcha_site_key'); ?>"></div>
<?php }
add_action("register_form", "display_register_captcha";

function verify_registration_captcha($errors, $sanitized_user_login, $user_email) {
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 $errors;
} else {
$errors->add("Captcha Invalid", __("<strong>ERROR</strong>: Usted es un robot");
}
} else {
$errors->add("Captcha Invalid", __("<strong>ERROR</strong>: Usted es un robot. Si no, entonces, active JavaScript");
}
return $errors;
}
add_filter("registration_errors", "verify_registration_captcha", 10, 3);
?>


Con el código anterior agregaríamos el "Google No Captcha Recatpcha" dentro de nuestro formulario de registro, pero si buscas agregarlo dentro de la caja de comentarios tendrás que añadir el siguiente código:


#submit {
display: none;
}


Este código CSS se agrega dentro de nuestra hoja de estilos llamada "style.css" debido a que el código de seguridad en comentarios oculta el botón submit para agregar uno personalizado, el cual permite la función del Recaptcha. Así que una vez realizado lo anterior agregaremos lo siguiente dentro de nuestro archivo "recaptcha.php":


function frontend_recaptcha_script() {
wp_register_script("recaptcha", "https://www.google.com/recaptcha/api.js";
wp_enqueue_script("recaptcha";

$plugin_url = plugin_dir_url(__FILE__);
wp_enqueue_style("no-captcha-recaptcha", $plugin_url ."style.css";
}
add_action("wp_enqueue_scripts", "frontend_recaptcha_script";

function display_comment_recaptcha() { ?>
<div class="g-recaptcha" data-sitekey="<?php echo get_option('captcha_site_key'); ?>"></div>
<input name="submit" type="submit" value="Submit Comment">
<?php }
add_action("comment_form", "display_comment_recaptcha";

function verify_comment_captcha($commentdata) {
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 $commentdata;
} else {
echo __("Error al tratar de resolver el captcha.";
return null;
}
} else {
echo __("Si usted no es un robot, por favor, resuelve el captcha.";
return null;
}
}
add_filter("preprocess_comment", "verify_comment_captcha";


Por ultimo si deseas agregar el "Google No Captcha Recaptcha" a tu Login en wordpress puedes agregar el siguiente código:


function 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", "login_recaptcha_script";

function display_login_captcha() { ?>
<div class="g-recaptcha" data-sitekey="<?php echo get_option('captcha_site_key'); ?>"></div>
<?php }
add_action( "login_form", "display_login_captcha" );

function verify_login_captcha($user, $password) {
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 $user;
} else {
return new WP_Error("Captcha Invalid", __("<strong>ERROR</strong>: Usted es un robot");
}
} else {
return new WP_Error("Captcha Invalid", __("<strong>ERROR</strong>: Si no eres un robot, resulve el captcha correctamente");
}
}
add_filter("wp_authenticate_user", "verify_login_captcha", 10, 2);


Bien con esto prácticamente hemos terminado, ahora solo nos toca dirigirnos a nuestro panel de control en wordpress, dentro de este en la parte izquierda se mostrara una nueva configuración la cual aparece con el siguiente nombre: reCaptcha Opciones, aquí simplemente agregaremos las llaves creadas anteriormente.

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.

Para poder comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!
Ir al cielo