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

Jak umożliwić użytkownikom edytowanie swojego profilu w WordPressie; Edytowanie profilu użytkownika w WordPressie na froncie; Włącz użytkownikom aktualizację swojego profilu w WordPressie; Ogranicz edytowanie profilu do zalogowanych użytkowników w WordPressie; WordPress pozwala użytkownikom edytować własny profil; Skonfiguruj edytowanie profilu użytkownika w WordPressie; Wtyczka WordPress do edytowania profilu użytkownika; Jak stworzyć stronę profilu użytkownika w WordPressie; Edytowanie profilu tylko dla ról użytkowników w WordPressie; Dostosowywanie 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

<?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:

  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.