Snippet

Włącz obsługę AJAX w formularzach WordPress dla płynnych przesyłek

Jak włączyć AJAX w formularzu WordPressSamouczek dotyczący przesyłania formularzy AJAX w WordPressWłącz AJAX dla przesyłania formularzy w WordPressPrzewodnik po obsłudze formularzy AJAX w WordPressWtyczka do przesyłania formularzy AJAX w WordPressKonfiguracja formularzy AJAX w WordPressJak używać AJAX w formularzach WordPressIntegracja formularzy AJAX w WordPressPrzykład przesyłania formularzy AJAX w WordPressKrok po kroku przesyłanie formularzy AJAX w WordPress

Objaśnienie

Aby włączyć AJAX w formularzu WordPress, musisz wykonać kilka kroków, aby działał płynnie bez przeładowania strony.

Skrypty i bezpieczeństwo:

  • Najpierw upewnij się, że jQuery i twój niestandardowy plik JavaScript są załadowane. Można to zrobić za pomocą wp_enqueue_script.
  • Musisz również przekazać kilka ważnych danych do swojego skryptu, takich jak adres URL AJAX i nonce zabezpieczający, używając wp_localize_script.

Obsługa przesyłania formularza:

  • Gdy formularz zostanie przesłany, JavaScript przechwytuje dane i wysyła je do serwera za pomocą AJAX.
  • Po stronie serwera sprawdzasz nonce zabezpieczający, aby upewnić się, że żądanie jest legalne.
  • Sanityzuj dane formularza, aby zachować bezpieczeństwo i czystość.
  • Przetwórz dane, na przykład wysyłając e-mail, a następnie odpowiedz do JavaScript z komunikatami o sukcesie lub błędzie.

Wyświetlanie formularza:

  • Użyj shortcode, aby łatwo dodać formularz do dowolnej strony lub wpisu.
  • Formularz zawiera pola na imię, e-mail i wiadomość oraz przycisk wysyłania.

Magia JavaScript:

  • W swoim pliku JavaScript nasłuchuj zdarzenia przesyłania formularza.
  • Zapobiegaj domyślnemu przesyłaniu formularza, aby obsłużyć je za pomocą AJAX.
  • Wyślij dane formularza do serwera i zaktualizuj stronę odpowiedzią, wyświetlając komunikat o sukcesie lub błędzie bez odświeżania.

Ta konfiguracja pozwala na asynchroniczne przesyłanie danych z formularza, co zapewnia płynniejsze doświadczenie użytkownika, unikając przeładowania strony.

Kod

1<?php 2// Enqueue necessary scripts for AJAX 3function wp_dudecom_enqueue_ajax_scripts() { 4 wp_enqueue_script('jquery'); 5 wp_enqueue_script('wp-dudecom-ajax-script', get_template_directory_uri() . '/js/wp-dudecom-ajax.js', array('jquery'), null, true); 6 7 // Localize script to pass AJAX URL and nonce 8 wp_localize_script('wp-dudecom-ajax-script', 'wp_dudecom_ajax_object', array( 9 'ajax_url' => admin_url('admin-ajax.php'), 10 'nonce' => wp_create_nonce('wp_dudecom_ajax_nonce') 11 )); 12} 13add_action('wp_enqueue_scripts', 'wp_dudecom_enqueue_ajax_scripts'); 14 15// Handle AJAX form submission 16function wp_dudecom_handle_ajax_form_submission() { 17 // Check nonce for security 18 check_ajax_referer('wp_dudecom_ajax_nonce', 'security'); 19 20 // Sanitize and validate form data 21 $name = sanitize_text_field($_POST['name']); 22 $email = sanitize_email($_POST['email']); 23 $message = sanitize_textarea_field($_POST['message']); 24 25 // Process form data (e.g., send email) 26 $to = get_option('admin_email'); 27 $subject = 'New Form Submission'; 28 $body = "Name: $name\nEmail: $email\nMessage: $message"; 29 $headers = array('Content-Type: text/plain; charset=UTF-8'); 30 31 if (wp_mail($to, $subject, $body, $headers)) { 32 wp_send_json_success('Form submitted successfully.'); 33 } else { 34 wp_send_json_error('Failed to send email.'); 35 } 36 37 wp_die(); 38} 39add_action('wp_ajax_wp_dudecom_form_submit', 'wp_dudecom_handle_ajax_form_submission'); 40add_action('wp_ajax_nopriv_wp_dudecom_form_submit', 'wp_dudecom_handle_ajax_form_submission'); 41 42// Shortcode to display the form 43function wp_dudecom_ajax_form_shortcode() { 44 ob_start(); 45 ?> 46 <form id="wp-dudecom-ajax-form" method="post"> 47 <label for="name">Name:</label> 48 <input type="text" id="name" name="name" required> 49 50 <label for="email">Email:</label> 51 <input type="email" id="email" name="email" required> 52 53 <label for="message">Message:</label> 54 <textarea id="message" name="message" required></textarea> 55 56 <input type="submit" value="Submit"> 57 </form> 58 <div id="wp-dudecom-form-response"></div> 59 <?php 60 return ob_get_clean(); 61} 62add_shortcode('wp_dudecom_ajax_form', 'wp_dudecom_ajax_form_shortcode'); 63?> 64 65// JavaScript file (wp-dudecom-ajax.js) 66jQuery(document).ready(function($) { 67 $('#wp-dudecom-ajax-form').on('submit', function(e) { 68 e.preventDefault(); 69 70 var formData = { 71 action: 'wp_dudecom_form_submit', 72 security: wp_dudecom_ajax_object.nonce, 73 name: $('#name').val(), 74 email: $('#email').val(), 75 message: $('#message').val() 76 }; 77 78 $.post(wp_dudecom_ajax_object.ajax_url, formData, function(response) { 79 if (response.success) { 80 $('#wp-dudecom-form-response').html('<p>' + response.data + '</p>'); 81 } else { 82 $('#wp-dudecom-form-response').html('<p>' + response.data + '</p>'); 83 } 84 }); 85 }); 86}); 87

Instrukcja

Lokalizacja pliku: Dodaj kod PHP do pliku functions.php swojego motywu lub do pliku własnej wtyczki. Umieść kod JavaScript w pliku o nazwie wp-dudecom-ajax.js w katalogu js w swoim motywie.

Wymagania wstępne:

  • Upewnij się, że masz dostęp do plików motywu WordPress lub własnej wtyczki.
  • Podstawowa znajomość shortcode'ów WordPress i JavaScript.

Kroki wdrożenia:

  1. Załaduj skrypty: Dodaj kod PHP, aby załadować jQuery i swój własny plik JavaScript. To zapewnia, że niezbędne skrypty są ładowane na Twojej stronie.
  2. Zlokalizuj skrypt: Użyj wp_localize_script, aby przekazać adres URL AJAX i token zabezpieczeń do swojego pliku JavaScript.
  3. Obsłuż przesyłanie AJAX: Zaimplementuj funkcję PHP do obsługi przesyłania formularzy. Obejmuje to sprawdzenie tokena zabezpieczeń, oczyszczenie danych formularza oraz przetworzenie danych (np. wysłanie e-maila).
  4. Dodaj shortcode: Użyj dostarczonej funkcji shortcode, aby wyświetlić formularz na dowolnej stronie lub wpisie. Wstaw shortcode [wp_dudecom_ajax_form] w miejscu, w którym chcesz, aby formularz się pojawił.
  5. Utwórz plik JavaScript: Zapisz kod JavaScript w pliku o nazwie wp-dudecom-ajax.js w katalogu js swojego motywu. Ten skrypt obsługuje przesyłanie formularza za pomocą AJAX i aktualizuje stronę odpowiedzią z serwera.
  6. Przetestuj formularz: Odwiedź stronę, na której dodałeś shortcode, i przetestuj przesyłanie formularza, aby upewnić się, że działa poprawnie bez przeładowania strony.

W przypadku potrzeby pomocy przy wdrożeniu lub bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.