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.
No responses yet