Проблема с добавлением Google Recaptcha в форму - PullRequest
0 голосов
/ 23 октября 2019

Я действительно не знаю PHP, но мне нужно добавить Google Recaptcha в форму, и я не могу этого сделать.

У меня есть форма, добавляемая в качестве шорткода наWordpress, который отправляет информацию в мой CRM в виде ссылки для действия.

Я пробовал использовать это решение Новая Google Reaptcha с флажком на стороне сервера php , но, насколько мне известно, он по-прежнему не 'не работает.

Я уже добавил сценарий в заголовок веб-сайта, как его просили здесь: http://codeforgeek.com/2014/12/google-recaptcha-tutorial/

<?php
function demo_ax_manufacturing_shortcode($atts, $content = null) {
    global $post;
    $atts = shortcode_atts(array("action" => 'https://analytics.clickdimensions.com/forms/h/XXXXXXXXX'), $atts);
    $home = get_page_by_title("Home");

    if (isset($_POST['g-recaptcha-response'])) {
        $captcha=$_POST['g-recaptcha-response'];
    }
    if (!$captcha) {
        echo '<h2>Please check the the captcha form.</h2>';
        exit;
    }
    $secretKey = "I'M ADDING MY SECRET KEY IN HERE";
    $ip = $_SERVER['REMOTE_ADDR'];
    // post request to server
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) .  '&response=' . urlencode($captcha);
    $response = file_get_contents($url);
    $responseKeys = json_decode($response,true);
    // should return JSON with success as true
    if ($responseKeys["success"]) {
        return '<form class="wpcf7-form demo-ax-manufacturing custom-form" action="'.$atts['action'].'" method="post">';
    } else {
        echo '<h2>You are spammer!</h2>';
    } 

    <p class="form-text"><span class="wpcf7-form-control-wrap first-name"><input id="txtfirstname" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required first-name required" name="txtfirstname" size="40" type="text" value="" placeholder="'.get_field("first_name", $home->ID).'*" /></span></p>
    <p class="form-text"><span class="wpcf7-form-control-wrap last-name"><input id="txtlastname" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required last-name required" name="txtlastname" size="40" type="text" value="" placeholder="'.get_field("last_name", $home->ID).'*" /></span></p>
    <p class="form-text"><span class="wpcf7-form-control-wrap email"><input id="Email" class="wpcf7-form-control wpcf7-text wpcf7-email wpcf7-validates-as-required wpcf7-validates-as-email email required" name="Email" size="40" type="email" value="" placeholder="'.get_field("email", $home->ID).'*" /></span></p>
    <p class="form-text"><span class="wpcf7-form-control-wrap company"><input id="txtcompanyname" class="wpcf7-form-control wpcf7-text company required" name="txtcompanyname" size="40" type="text" value="" placeholder="'.get_field("company", $home->ID).'*" /></span></p>
    <p class="text-center"><span class="wpcf7-form-control wpcf7-checkbox checkbox-874"><input id="subnewsletter" name="subnewsletter" type="checkbox" value="Yes" /> <span class="wpcf7-list-item-label">'.get_field("subnewsletter", $home->ID).'</span></span></span></p>
    <p class="text-center"><span class="wpcf7-form-control-wrap acceptance-575"><span class="wpcf7-form-control wpcf7-acceptance"><span class="wpcf7-list-item"><input id="termsandconditions" name="termsandconditions" type="checkbox" value="Yes" aria-required="true" aria-invalid="false" wpcf7-validates-as-required/> <span class="wpcf7-list-item-label">'.get_field("termsandconditions", $home->ID).'</span></span></span></p>
    <div class="g-recaptcha" data-sitekey="I AM ADDING MY SITE KEY IN HERE"></div>
    <input type="hidden" name="pageurl" id="pageurl" value="'.get_permalink($post->ID).'" />
    <input type="hidden" name="country" id="country" value="'.get_country_code().'" />
    <p class="text-center"><input class="wpcf7-form-control wpcf7-submit" type="submit" value="'.get_field("submit", $home->ID).'" /></p>
    </form>';
}
add_shortcode('demo-ax-manufacturing-form', 'demo_ax_manufacturing_shortcode');

Есть идеи, как решить эту проблему?

...