Snippet

Jak bezpiecznie zapisać dane formularza w bazie danych WordPressa

Jak zapisać dane formularza w bazie danych WordPressaZapisz dane formularza kontaktowego w bazie danych WordPressaPrzechowuj dane formularza WordPress w MySQLWordPress zapisuje przesyłane formularze w bazie danychNajlepsza wtyczka do zapisywania danych formularza w WordPressiePrzechowywanie danych formularza w bazie danych WordPressaJak przechowywać wpisy formularza w WordPressieSamouczek dotyczący zapisywania danych formularza WordPress w bazie danychZapisz dane WPForms w bazie danychRozwiązanie do przechowywania danych formularza WordPress

Objaśnienie

Oto prosty sposób na zapisanie danych formularza w bazie danych WordPressa za pomocą niestandardowego rozwiązania. Ten kod obsługuje przesyłanie formularzy i przechowuje dane w sposób bezpieczny.

  • Hook do przesyłania formularza: Kod nasłuchuje przesyłania formularzy za pomocą akcji AJAX WordPressa. Oznacza to, że może obsługiwać dane formularza bez odświeżania strony.
  • Sprawdzenie bezpieczeństwa: Używa nonce (unikalnego tokena), aby zapewnić, że przesyłanie formularza jest bezpieczne i autentyczne. Pomaga to zapobiegać nieautoryzowanym przesyłaniom.
  • Sanityzacja danych: Przed zapisaniem dane formularza są oczyszczane, aby usunąć wszelkie niepożądane znaki. Obejmuje to sanityzację pól tekstowych, adresów e-mail i obszarów tekstowych.
  • Walidacja adresu e-mail: Kod sprawdza, czy podany adres e-mail jest prawidłowy. Jeśli nie, wysyła komunikat o błędzie do użytkownika.
  • Wstawianie do bazy danych: Oczyszczone dane są następnie wstawiane do niestandardowej tabeli bazy danych o nazwie form_submissions. W przypadku sukcesu zwracana jest wiadomość o powodzeniu; w przeciwnym razie wysyłana jest wiadomość o błędzie.
  • Tworzenie tabeli: Gdy wtyczka lub motyw jest aktywowany, w bazie danych tworzona jest nowa tabela do przechowywania przesyłanych formularzy. Zapewnia to dedykowaną przestrzeń dla Twoich danych.
  • Załadowanie skryptu: Niezbędny plik JavaScript jest ładowany, aby obsłużyć przesyłanie formularza za pomocą AJAX. Przekazuje również adres URL AJAX i nonce do skryptu w celu zapewnienia bezpiecznej komunikacji.

To rozwiązanie pozwala na efektywne przechowywanie danych formularza w bazie danych WordPressa, oferując niestandardowe rozwiązanie bez polegania na zewnętrznych wtyczkach.

Kod

1<?php 2// Hook into the form submission action 3add_action('wp_ajax_wp_dudecom_save_form_data', 'wp_dudecom_save_form_data'); 4add_action('wp_ajax_nopriv_wp_dudecom_save_form_data', 'wp_dudecom_save_form_data'); 5 6// Function to handle form data saving 7function wp_dudecom_save_form_data() { 8 // Check for nonce security 9 check_ajax_referer('wp_dudecom_form_nonce', 'security'); 10 11 // Sanitize and validate form data 12 $name = sanitize_text_field($_POST['name']); 13 $email = sanitize_email($_POST['email']); 14 $message = sanitize_textarea_field($_POST['message']); 15 16 // Validate email 17 if (!is_email($email)) { 18 wp_send_json_error('Invalid email address'); 19 } 20 21 global $wpdb; 22 $table_name = $wpdb->prefix . 'form_submissions'; 23 24 // Prepare data for insertion 25 $data = array( 26 'name' => $name, 27 'email' => $email, 28 'message' => $message, 29 'submitted_at' => current_time('mysql') 30 ); 31 32 // Insert data into the database 33 $inserted = $wpdb->insert($table_name, $data); 34 35 if ($inserted) { 36 wp_send_json_success('Form data saved successfully'); 37 } else { 38 wp_send_json_error('Failed to save form data'); 39 } 40 41 wp_die(); 42} 43 44// Create the database table on plugin/theme activation 45function wp_dudecom_create_form_table() { 46 global $wpdb; 47 $table_name = $wpdb->prefix . 'form_submissions'; 48 49 $charset_collate = $wpdb->get_charset_collate(); 50 51 $sql = "CREATE TABLE $table_name ( 52 id mediumint(9) NOT NULL AUTO_INCREMENT, 53 name tinytext NOT NULL, 54 email text NOT NULL, 55 message text NOT NULL, 56 submitted_at datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 57 PRIMARY KEY (id) 58 ) $charset_collate;"; 59 60 require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 61 dbDelta($sql); 62} 63register_activation_hook(__FILE__, 'wp_dudecom_create_form_table'); 64 65// Enqueue necessary scripts 66function wp_dudecom_enqueue_scripts() { 67 wp_enqueue_script('wp-dudecom-form-handler', get_template_directory_uri() . '/js/form-handler.js', array('jquery'), null, true); 68 wp_localize_script('wp-dudecom-form-handler', 'wp_dudecom_ajax', array( 69 'ajax_url' => admin_url('admin-ajax.php'), 70 'nonce' => wp_create_nonce('wp_dudecom_form_nonce') 71 )); 72} 73add_action('wp_enqueue_scripts', 'wp_dudecom_enqueue_scripts'); 74?>

Instrukcja

Aby zaimplementować kod do zapisywania danych formularza w bazie danych, wykonaj następujące kroki:

Lokalizacja pliku: Dodaj kod do pliku functions.php swojego motywu lub stwórz plik własnej wtyczki.

Wymagania wstępne:

  • Upewnij się, że masz dostęp do systemu plików swojej witryny WordPress.
  • Podstawowa znajomość struktury plików WordPress i PHP.

Kroki implementacji:

  1. Otwórz plik functions.php swojego motywu: Przejdź do wp-content/themes/twoj-motyw/functions.php za pomocą menedżera plików lub klienta FTP.
  2. Skopiuj i wklej podany kod: Wstaw cały fragment kodu do pliku functions.php lub do pliku własnej wtyczki.
  3. Utwórz plik JavaScript: W katalogu swojego motywu utwórz folder js, jeśli jeszcze nie istnieje. Wewnątrz niego utwórz plik o nazwie form-handler.js.
  4. Dodaj logikę przesyłania formularza AJAX: W pliku form-handler.js dodaj JavaScript do obsługi przesyłania formularzy za pomocą AJAX. Upewnij się, że wysyła dane do akcji wp_dudecom_save_form_data.
  5. Aktywuj wtyczkę (jeśli dotyczy): Jeśli dodałeś kod do własnej wtyczki, aktywuj ją z panelu administracyjnego WordPress w sekcji Wtyczki.
  6. Przetestuj formularz: Utwórz formularz na swojej stronie, który zawiera pola dla name, email i message. Upewnij się, że formularz przesyła dane za pomocą AJAX do określonej akcji.
  7. Zweryfikuj wpisy w bazie danych: Sprawdź swoją bazę danych WordPress, aby upewnić się, że tabela form_submissions została utworzona i dane są poprawnie wstawiane.

Ta konfiguracja pozwala na efektywne przechowywanie danych formularza w bazie danych WordPress, oferując własne rozwiązanie bez polegania na wtyczkach innych firm.

Jeśli potrzebujesz pomocy przy implementacji lub bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.