Włącz możliwość edytowania profili użytkowników na frontendzie WordPressa
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
<?php
// Hook to add a shortcode for the user profile form
add_shortcode('wp-dudecom_user_profile_form', 'wp_dudecom_user_profile_form_shortcode');
// Function to display the user profile form
function wp_dudecom_user_profile_form_shortcode() {
if (!is_user_logged_in()) {
return '<p>You need to be logged in to edit your profile.</p>';
}
$user_id = get_current_user_id();
$user_info = get_userdata($user_id);
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['wp_dudecom_update_profile'])) {
wp_dudecom_handle_profile_update($user_id);
}
ob_start();
?>
<form method="post">
<p>
<label for="wp_dudecom_first_name">First Name</label>
<input type="text" name="wp_dudecom_first_name" id="wp_dudecom_first_name" value="<?php echo esc_attr($user_info->first_name); ?>" />
</p>
<p>
<label for="wp_dudecom_last_name">Last Name</label>
<input type="text" name="wp_dudecom_last_name" id="wp_dudecom_last_name" value="<?php echo esc_attr($user_info->last_name); ?>" />
</p>
<p>
<label for="wp_dudecom_email">Email</label>
<input type="email" name="wp_dudecom_email" id="wp_dudecom_email" value="<?php echo esc_attr($user_info->user_email); ?>" />
</p>
<p>
<input type="submit" name="wp_dudecom_update_profile" value="Update Profile" />
</p>
</form>
<?php
return ob_get_clean();
}
// Function to handle profile update
function wp_dudecom_handle_profile_update($user_id) {
if (!isset($_POST['wp_dudecom_update_profile'])) {
return;
}
// Verify nonce for security
if (!wp_verify_nonce($_POST['_wpnonce'], 'wp_dudecom_update_profile')) {
return;
}
$first_name = sanitize_text_field($_POST['wp_dudecom_first_name']);
$last_name = sanitize_text_field($_POST['wp_dudecom_last_name']);
$email = sanitize_email($_POST['wp_dudecom_email']);
// Validate email
if (!is_email($email)) {
echo '<p>Invalid email address.</p>';
return;
}
// Update user data
wp_update_user(array(
'ID' => $user_id,
'first_name' => $first_name,
'last_name' => $last_name,
'user_email' => $email
));
echo '<p>Profile updated successfully.</p>';
}
?>
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:
- Otwórz panel administracyjny WordPress.
- 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. - Znajdź plik
functions.phplub plik swojej własnej wtyczki. - Skopiuj i wklej podany fragment kodu do pliku.
- Zapisz zmiany w pliku.
- Utwórz lub edytuj stronę, na której chcesz, aby użytkownicy mogli edytować swoje profile.
- Dodaj shortcode
[wp-dudecom_user_profile_form]do obszaru treści strony. - Opublikuj lub zaktualizuj stronę.
- 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.