Dodaj Honeypot do formularza WordPress w celu skutecznej ochrony przed spamem

Jak dodać honeypot do formularza WordPress; Ochrona formularzy WordPress przed spamem za pomocą honeypot; Wdrożenie honeypot w formularzach WordPress; Wtyczka honeypot antyspamowa do WordPress; Dodaj pole honeypot do formularza kontaktowego 7; Najlepsza wtyczka honeypot dla WordPress; Konfiguracja honeypot dla formularzy WordPress; Honeypot w WordPress vs reCAPTCHA; Prosty honeypot dla formularzy WordPress; Metoda honeypot do zapobiegania spamowi w WordPress;

Objaśnienie

Dodanie pułapki na spam do formularzy WordPressa to sprytny sposób na wychwycenie spamu bez przeszkadzania użytkownikom. Oto jak to działa:

  • Pole pułapki: Do formularza dodawane jest ukryte pole. Prawdziwi użytkownicy go nie zobaczą, ale boty spamowe je wypełnią.
  • Walidacja: Jeśli ukryte pole jest wypełnione, prawdopodobnie to bot, a przesłanie formularza zostaje odrzucone.

Dla Contact Form 7 kod dodaje ukryte pole o nazwie wp_dudecom_honeypot. Jeśli to pole jest wypełnione, formularz jest oznaczany jako spam.

Dla dowolnego niestandardowego formularza WordPressa możesz użyć tej samej strategii z ukrytym polem. Wystarczy dodać ukryty input do formularza i sprawdzić jego wartość po przesłaniu formularza.

Ta metoda jest prosta i nie wymaga od użytkowników rozwiązywania zagadek, takich jak CAPTCHA, co czyni ją przyjazną dla użytkownika, a jednocześnie skuteczną w walce z botami spamowymi.

Kod

<?php
// Add a honeypot field to Contact Form 7
function wp_dudecom_add_honeypot_to_cf7( $tag ) {
    if ( $tag['name'] == 'wp_dudecom_honeypot' ) {
        $tag['type'] = 'hidden';
        $tag['name'] = 'wp_dudecom_honeypot';
        $tag['values'] = array( '' );
    }
    return $tag;
}
add_filter( 'wpcf7_form_tag', 'wp_dudecom_add_honeypot_to_cf7' );

// Validate the honeypot field in Contact Form 7
function wp_dudecom_validate_honeypot_cf7( $result, $tag ) {
    if ( $tag->name == 'wp_dudecom_honeypot' && ! empty( $_POST['wp_dudecom_honeypot'] ) ) {
        $result->invalidate( $tag, 'Spam detected.' );
    }
    return $result;
}
add_filter( 'wpcf7_validate_hidden', 'wp_dudecom_validate_honeypot_cf7', 10, 2 );

// Add honeypot field to any WordPress form
function wp_dudecom_add_honeypot_field() {
    echo '<input type="hidden" name="wp_dudecom_honeypot" value="" />';
}

// Validate honeypot field in any WordPress form
function wp_dudecom_check_honeypot_field() {
    if ( ! empty( $_POST['wp_dudecom_honeypot'] ) ) {
        wp_die( 'Spam detected.' );
    }
}
add_action( 'init', 'wp_dudecom_check_honeypot_field' );

// Example usage: Add honeypot field to a custom form
function wp_dudecom_custom_form() {
    ?>
    <form method="post" action="">
        <?php wp_dudecom_add_honeypot_field(); ?>
        <input type="text" name="your_name" placeholder="Your Name" required />
        <input type="email" name="your_email" placeholder="Your Email" required />
        <textarea name="your_message" placeholder="Your Message" required></textarea>
        <input type="submit" value="Send" />
    </form>
    <?php
}
?>

Instrukcja

Lokalizacja pliku: Dodaj poniższy kod do pliku functions.php swojego motywu lub do pliku własnej wtyczki.

Wymagania wstępne: Upewnij się, że masz zainstalowaną i aktywowaną wtyczkę Contact Form 7, jeśli chcesz używać tego z Contact Form 7.

Kroki wdrożenia:

  1. Dostęp do plików WordPress: Użyj klienta FTP lub menedżera plików swojego dostawcy hostingu, aby uzyskać dostęp do plików WordPress.
  2. Otwórz plik functions.php: Przejdź do wp-content/themes/twoj-motyw/functions.php i otwórz go do edycji. Alternatywnie, stwórz lub otwórz plik własnej wtyczki.
  3. Dodaj kod honeypot: Skopiuj podany fragment kodu i wklej go na końcu pliku functions.php lub pliku własnej wtyczki.
  4. Zapisz zmiany: Zapisz plik po dodaniu kodu.
  5. Wdrożenie w Contact Form 7:
    • Edytuj swój formularz Contact Form 7.
    • Dodaj nowe ukryte pole o nazwie wp_dudecom_honeypot za pomocą edytora formularzy.
  6. Wdrożenie w formularzach własnych:
    • Dołącz funkcję wp_dudecom_add_honeypot_field() w swoim HTML formularza, w miejscu, gdzie chcesz, aby pole honeypot się pojawiło.
    • Upewnij się, że obsługa przesyłania formularza sprawdza pole honeypot za pomocą wp_dudecom_check_honeypot_field().
  7. Testuj swoje formularze: Prześlij swoje formularze, aby upewnić się, że działają poprawnie i że przesyłki spamowe są blokowane.

Potrzebujesz pomocy w wdrożeniu lub bardziej zaawansowanej funkcjonalności? Odwiedź wp-dude.com po fachową pomoc w WordPressie.