Snippet

Włącz możliwość edytowania profili użytkowników na frontendzie WordPressa

Jak umożliwić użytkownikom edytowanie swojego profilu w WordPressieEdytowanie profilu użytkownika w WordPressie na froncieWłącz użytkownikom aktualizację swojego profilu w WordPressieOgranicz edytowanie profilu do zalogowanych użytkowników w WordPressieWordPress pozwala użytkownikom edytować własny profilSkonfiguruj edytowanie profilu użytkownika w WordPressieWtyczka WordPress do edytowania profilu użytkownikaJak stworzyć stronę profilu użytkownika w WordPressieEdytowanie profilu tylko dla ról użytkowników w WordPressieDostosowywanie edytowania profilu użytkownika w WordPressie

Objaśnienie

Ten fragment kodu umożliwia użytkownikom edytowanie swoich profili bezpośrednio z frontu Twojej witryny WordPress. Oto jak to działa:

  • Shortcode: Tworzony jest shortcode, który wyświetla formularz edycji profilu. Możesz dodać ten shortcode do dowolnej strony lub wpisu, gdzie chcesz, aby użytkownicy mogli edytować swoje profile.
  • Wymóg logowania: Tylko zalogowani użytkownicy mogą zobaczyć i korzystać z formularza. Jeśli użytkownik nie jest zalogowany, zobaczy komunikat zachęcający do zalogowania się.
  • Pola formularza: Formularz zawiera pola na imię, nazwisko i adres e-mail. Te pola są wstępnie wypełnione aktualnymi informacjami użytkownika.
  • Aktualizacja profilu: Po przesłaniu formularza informacje użytkownika są aktualizowane. Kod sprawdza poprawność adresu e-mail i zapewnia, że przesłanie formularza jest bezpieczne.
  • Bezpieczeństwo: Używany jest nonce, aby chronić formularz przed nieautoryzowanymi przesłaniami, co zapewnia, że przetwarzane są tylko legalne aktualizacje.
  • Informacja zwrotna: Użytkownicy otrzymują wiadomość potwierdzającą, gdy ich profil zostanie pomyślnie zaktualizowany.

Aby skorzystać z tej funkcji, wystarczy dodać shortcode do strony, na której chcesz, aby użytkownicy edytowali swoje profile. Upewnij się, że użytkownicy są zalogowani, aby uzyskać dostęp do formularza.

Kod

1<?php 2// Hook to add a shortcode for the user profile form 3add_shortcode('wp-dudecom_user_profile_form', 'wp_dudecom_user_profile_form_shortcode'); 4 5// Function to display the user profile form 6function wp_dudecom_user_profile_form_shortcode() { 7 if (!is_user_logged_in()) { 8 return '<p>You need to be logged in to edit your profile.</p>'; 9 } 10 11 $user_id = get_current_user_id(); 12 $user_info = get_userdata($user_id); 13 14 if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['wp_dudecom_update_profile'])) { 15 wp_dudecom_handle_profile_update($user_id); 16 } 17 18 ob_start(); 19 ?> 20 <form method="post"> 21 <p> 22 <label for="wp_dudecom_first_name">First Name</label> 23 <input type="text" name="wp_dudecom_first_name" id="wp_dudecom_first_name" value="<?php echo esc_attr($user_info->first_name); ?>" /> 24 </p> 25 <p> 26 <label for="wp_dudecom_last_name">Last Name</label> 27 <input type="text" name="wp_dudecom_last_name" id="wp_dudecom_last_name" value="<?php echo esc_attr($user_info->last_name); ?>" /> 28 </p> 29 <p> 30 <label for="wp_dudecom_email">Email</label> 31 <input type="email" name="wp_dudecom_email" id="wp_dudecom_email" value="<?php echo esc_attr($user_info->user_email); ?>" /> 32 </p> 33 <p> 34 <input type="submit" name="wp_dudecom_update_profile" value="Update Profile" /> 35 </p> 36 </form> 37 <?php 38 return ob_get_clean(); 39} 40 41// Function to handle profile update 42function wp_dudecom_handle_profile_update($user_id) { 43 if (!isset($_POST['wp_dudecom_update_profile'])) { 44 return; 45 } 46 47 // Verify nonce for security 48 if (!wp_verify_nonce($_POST['_wpnonce'], 'wp_dudecom_update_profile')) { 49 return; 50 } 51 52 $first_name = sanitize_text_field($_POST['wp_dudecom_first_name']); 53 $last_name = sanitize_text_field($_POST['wp_dudecom_last_name']); 54 $email = sanitize_email($_POST['wp_dudecom_email']); 55 56 // Validate email 57 if (!is_email($email)) { 58 echo '<p>Invalid email address.</p>'; 59 return; 60 } 61 62 // Update user data 63 wp_update_user(array( 64 'ID' => $user_id, 65 'first_name' => $first_name, 66 'last_name' => $last_name, 67 'user_email' => $email 68 )); 69 70 echo '<p>Profile updated successfully.</p>'; 71} 72?>

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 Twoja strona WordPress pozwala na rejestrację i logowanie użytkowników.
  • Użytkownicy muszą być zalogowani, aby edytować swoje profile.

Kroki wdrożenia:

  1. Otwórz panel administracyjny WordPress.
  2. Przejdź do Wygląd > Edytor motywu, jeśli dodajesz kod do functions.php, lub przejdź do Wtyczki > Edytor, jeśli używasz własnej wtyczki.
  3. Znajdź plik functions.php lub plik swojej własnej wtyczki.
  4. Skopiuj i wklej podany fragment kodu do pliku.
  5. Zapisz zmiany w pliku.
  6. Utwórz lub edytuj stronę, na której chcesz, aby użytkownicy mogli edytować swoje profile.
  7. Dodaj shortcode [wp-dudecom_user_profile_form] do obszaru treści strony.
  8. Opublikuj lub zaktualizuj stronę.
  9. Upewnij się, że użytkownicy są zalogowani, aby mogli zobaczyć i korzystać z formularza edycji profilu.

To wszystko! Twoi użytkownicy mogą teraz edytować swoje profile bezpośrednio z frontu Twojej strony WordPress.

Jeśli potrzebujesz pomocy przy wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy.