Warum Self-Service? Weil’s Dir Arbeit spart.

Wenn ein Kunde wegen jeder Adressänderung anruft, hast Du schon verloren.
Kunden wollen selbst klicken. Und Du willst Deine Mitarbeiter entlasten.

Also: WordPress als Self-Service-Plattform nutzen.
Mit Login. Mit Formularen. Mit Automatisierung.

Voraussetzungen

  • Benutzerkonto pro Kunde
  • geschützte Seiten (z. B. über current_user_can)
  • eigene Formulare für Adressänderung, Nachbestellung, Support
  • Verarbeitung per PHP

1. Adressänderung im Kundenbereich

Formular

function ds_adressformular_anzeigen() {
    $user = wp_get_current_user();
    ?>
    <form method="POST" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
        <input type="hidden" name="action" value="ds_adresse_speichern">
        <input type="text" name="strasse" value="<?php echo esc_attr(get_user_meta($user->ID, 'adresse_strasse', true)); ?>" placeholder="Straße" required>
        <input type="text" name="plz" value="<?php echo esc_attr(get_user_meta($user->ID, 'adresse_plz', true)); ?>" placeholder="PLZ" required>
        <input type="text" name="ort" value="<?php echo esc_attr(get_user_meta($user->ID, 'adresse_ort', true)); ?>" placeholder="Ort" required>
        <button type="submit">Adresse speichern</button>
    </form>
    <?php
}

Verarbeitung

add_action('admin_post_ds_adresse_speichern', 'ds_adresse_speichern');

function ds_adresse_speichern() {
    $user_id = get_current_user_id();

    update_user_meta($user_id, 'adresse_strasse', sanitize_text_field($_POST['strasse']));
    update_user_meta($user_id, 'adresse_plz', sanitize_text_field($_POST['plz']));
    update_user_meta($user_id, 'adresse_ort', sanitize_text_field($_POST['ort']));

    wp_redirect(home_url('/mein-konto?update=1'));
    exit;
}

2. Nachbestellungen erfassen

Formular (Beispiel mit Artikelnummer und Menge)

<form method="POST" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
    <input type="hidden" name="action" value="ds_nachbestellung_absenden">
    <input type="text" name="artikelnummer" placeholder="Artikelnummer" required>
    <input type="number" name="menge" placeholder="Menge" required>
    <textarea name="kommentar" placeholder="Kommentar (optional)"></textarea>
    <button type="submit">Nachbestellen</button>
</form>

Verarbeitung

add_action('admin_post_ds_nachbestellung_absenden', 'ds_nachbestellung_absenden');

function ds_nachbestellung_absenden() {
    $user = wp_get_current_user();

    $inhalt = sprintf(
        "Kunde: %s\nArtikel: %s\nMenge: %s\nKommentar: %s",
        $user->user_email,
        sanitize_text_field($_POST['artikelnummer']),
        intval($_POST['menge']),
        sanitize_textarea_field($_POST['kommentar'])
    );

    wp_mail('vertrieb@deinefirma.de', 'Neue Nachbestellung', $inhalt);

    wp_redirect(home_url('/mein-konto?nachbestellt=1'));
    exit;
}

3. Supportanfrage über ein Ticket-System

Du kannst einen Custom Post Type nutzen:

function ds_support_posttype() {
    register_post_type('support_ticket', [
        'label' => 'Supporttickets',
        'public' => false,
        'show_ui' => true,
        'supports' => ['title', 'editor'],
        'capability_type' => 'post',
    ]);
}
add_action('init', 'ds_support_posttype');

Formular zum Erstellen

<form method="POST" action="<?php echo esc_url(admin_url('admin-post.php')); ?>">
    <input type="hidden" name="action" value="ds_support_ticket_anlegen">
    <input type="text" name="betreff" placeholder="Betreff" required>
    <textarea name="beschreibung" placeholder="Problem" required></textarea>
    <button type="submit">Abschicken</button>
</form>

Verarbeitung und Zuweisung

add_action('admin_post_ds_support_ticket_anlegen', 'ds_support_ticket_anlegen');

function ds_support_ticket_anlegen() {
    $user = wp_get_current_user();

    $id = wp_insert_post([
        'post_type'    => 'support_ticket',
        'post_title'   => sanitize_text_field($_POST['betreff']),
        'post_content' => sanitize_textarea_field($_POST['beschreibung']),
        'post_status'  => 'publish',
        'post_author'  => $user->ID,
    ]);

    wp_redirect(home_url('/mein-konto?tickets=1'));
    exit;
}

Mein Bereich: „Mein Konto“-Seite dynamisch befüllen

Du kannst alle Komponenten auf einer Seite bündeln:

  • Adressdaten ändern
  • Letzte Nachbestellungen einsehen
  • Neue Nachbestellung erfassen
  • Eigene Tickets anzeigen
if (is_user_logged_in()) {
    ds_adressformular_anzeigen();
    echo '<hr>';
    echo '<h2>Nachbestellung</h2>';
    // nachbestellformular_anzeigen();
    echo '<hr>';
    echo '<h2>Support</h2>';
    // supportformular_anzeigen();
} else {
    echo 'Bitte einloggen.';
}

Mein Fazit

Self-Service spart Zeit. Für Dich und für Deine Kunden.
Und es ist technisch keine Raketenwissenschaft.
Wenn Du WordPress schon im Einsatz hast – nutz es.

Wenn Du willst, bau ich Dir das passende Portal dazu.
Einmal richtig gemacht – läuft.

Categories:

Tags:

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert