Dodaj łatwo pola niestandardowe do profili użytkowników WordPressa
Objaśnienie
Chcesz dodać dodatkowe pola do profili użytkowników w WordPressie? Ten fragment kodu robi dokładnie to, dodając pola na numer telefonu i adres.
Dodawanie pól do profili użytkowników:
- Podczas przeglądania lub edytowania profilu użytkownika pojawiają się dwa nowe pola: jedno na numer telefonu, a drugie na adres.
- Pola te są dodawane za pomocą hooków, które wyświetlają je na stronie profilu użytkownika.
Zapisywanie danych:
- Gdy użytkownik aktualizuje swój profil, dane wprowadzone w tych polach są bezpiecznie zapisywane.
- Kod sprawdza, czy bieżący użytkownik ma uprawnienia do edytowania profilu przed zapisaniem.
Dodawanie pól do rejestracji:
- Nowi użytkownicy mogą również wprowadzić swój numer telefonu i adres podczas rejestracji.
- Pola są dodawane do formularza rejestracji za pomocą hooka.
Zapisywanie danych rejestracyjnych:
- Po zarejestrowaniu się nowego użytkownika, jego numer telefonu i adres są zapisywane w jego profilu.
Ta konfiguracja zapewnia, że zarówno istniejący, jak i nowi użytkownicy mogą mieć dodatkowe informacje przechowywane w swoich profilach, co ułatwia zarządzanie dodatkowymi danymi bez potrzeby używania wtyczki.
Kod
<?php
// Hook to add custom fields to the user profile page
add_action('show_user_profile', 'wp_dudecom_add_custom_user_profile_fields');
add_action('edit_user_profile', 'wp_dudecom_add_custom_user_profile_fields');
function wp_dudecom_add_custom_user_profile_fields($user) {
?>
<h3>Additional Information</h3>
<table class="form-table">
<tr>
<th><label for="phone_number">Phone Number</label></th>
<td>
<input type="text" name="phone_number" id="phone_number" value="<?php echo esc_attr(get_the_author_meta('phone_number', $user->ID)); ?>" class="regular-text" /><br />
<span class="description">Please enter your phone number.</span>
</td>
</tr>
<tr>
<th><label for="address">Address</label></th>
<td>
<input type="text" name="address" id="address" value="<?php echo esc_attr(get_the_author_meta('address', $user->ID)); ?>" class="regular-text" /><br />
<span class="description">Please enter your address.</span>
</td>
</tr>
</table>
<?php
}
// Hook to save custom fields from the user profile page
add_action('personal_options_update', 'wp_dudecom_save_custom_user_profile_fields');
add_action('edit_user_profile_update', 'wp_dudecom_save_custom_user_profile_fields');
function wp_dudecom_save_custom_user_profile_fields($user_id) {
// Check if the current user has permission to edit the user profile
if (!current_user_can('edit_user', $user_id)) {
return false;
}
// Sanitize and update user meta data
if (isset($_POST['phone_number'])) {
update_user_meta($user_id, 'phone_number', sanitize_text_field($_POST['phone_number']));
}
if (isset($_POST['address'])) {
update_user_meta($user_id, 'address', sanitize_text_field($_POST['address']));
}
}
// Hook to add custom fields to the user registration form
add_action('register_form', 'wp_dudecom_add_custom_user_registration_fields');
function wp_dudecom_add_custom_user_registration_fields() {
?>
<p>
<label for="phone_number"><?php _e('Phone Number', 'wp-dudecom'); ?><br />
<input type="text" name="phone_number" id="phone_number" class="input" value="<?php echo esc_attr(wp_unslash($_POST['phone_number'] ?? '')); ?>" size="25" /></label>
</p>
<p>
<label for="address"><?php _e('Address', 'wp-dudecom'); ?><br />
<input type="text" name="address" id="address" class="input" value="<?php echo esc_attr(wp_unslash($_POST['address'] ?? '')); ?>" size="25" /></label>
</p>
<?php
}
// Hook to save custom fields from the user registration form
add_action('user_register', 'wp_dudecom_save_custom_user_registration_fields');
function wp_dudecom_save_custom_user_registration_fields($user_id) {
if (isset($_POST['phone_number'])) {
update_user_meta($user_id, 'phone_number', sanitize_text_field($_POST['phone_number']));
}
if (isset($_POST['address'])) {
update_user_meta($user_id, 'address', sanitize_text_field($_POST['address']));
}
}
?>
Instrukcja
Lokalizacja pliku: Dodaj kod do pliku functions.php
swojego motywu lub do pliku własnej wtyczki.
Wymagania wstępne: Upewnij się, że masz dostęp do plików motywu WordPress lub możliwość stworzenia własnej wtyczki.
Kroki wdrożenia:
- Dostęp do plików WordPress:
- Zaloguj się do panelu administracyjnego WordPress.
- Przejdź do Wygląd > Edytor motywu, jeśli dodajesz kod do
functions.php
, lub użyj klienta FTP lub menedżera plików, aby uzyskać dostęp do plików WordPress, jeśli tworzysz własną wtyczkę.
- Dodaj kod:
- Skopiuj podany fragment kodu.
- Wklej go do pliku
functions.php
aktywnego motywu lub do pliku własnej wtyczki.
- Zapisz zmiany:
- Jeśli korzystasz z Edytora motywu, kliknij Aktualizuj plik, aby zapisać zmiany.
- Jeśli korzystasz z własnej wtyczki, upewnij się, że wtyczka jest aktywowana w panelu administracyjnym WordPress w sekcji Wtyczki > Zainstalowane wtyczki.
- Zweryfikuj wdrożenie:
- Przejdź do Użytkownicy > Twój profil w panelu administracyjnym WordPress, aby zobaczyć nowe pola.
- Przetestuj aktualizację pól i zapisanie profilu, aby upewnić się, że dane są poprawnie przechowywane.
- Przetestuj formularz rejestracji, aby upewnić się, że nowi użytkownicy mogą wprowadzać swój numer telefonu i adres.
Jeśli potrzebujesz pomocy przy wdrożeniu lub bardziej zaawansowanej funkcjonalności, rozważ skorzystanie z usług wp-dude.com.