Wysyłka kopii wiadomości w Contact Form 7

Wysyłka kopii wiadomości w Contact Form 7 - Webist Blog

Spis treści

Wysyłka kopii wiadomości w Contact Form 7 to prosty pomysł, który, w rzeczywistości, porządkuje komunikację między stroną a użytkownikiem. Z jednej strony ułatwia śledzenie spraw, z drugiej strony pozwala szybko wrócić do ustaleń, ponieważ potwierdzenie przychodzi zaraz po wysłaniu formularza. Podobnie do klasycznej korespondencji email, tak też tutaj kopia trafia do właściwych osób. Obecnie to rozwiązanie jest niemal standardem, a także buduje zaufanie. Na koniec warto dodać, że wdrożenie jest lekkie, a efekty są natychmiastowe. W sumie oszczędza czas po obu stronach.

Po co wysyłać kopię wiadomości?

Kopia wiadomości jest natychmiastowym potwierdzeniem z pełnym zapisem tego, co użytkownik wysłał w formularzu, jeszcze zanim pojawi się odpowiedź. Daje nadawcy „snapshot” pól i treści z datą, tematem i ewentualnym numerem sprawy. Ułatwia to odszukanie zgłoszenia i spokojne sprawdzenie, co dokładnie zostało przesłane. Po stronie zespołu wsparcia zapewnia, że obie strony patrzą na identyczną, nieedytowaną treść, którą można łatwo przekazać między osobami, gdzie cytaty bywają skracane. Dzięki temu start obsługi jest szybszy, a liczba nieporozumień i dopytań o podstawowe informacje maleje.

Praktyczne zalety rozwiązania

Kopia wiadomości działa jak potwierdzenie transakcyjne. Od razu trafia do skrzynki nadawcy z pełną treścią zgłoszenia, dzięki czemu na poczcie może sprawdzić szczegóły. Ułatwia to szybkie wychwycenie literówek lub braków, bo użytkownik widzi, co faktycznie wysłał, i może od razu doprecyzować dane w odpowiedzi. Po stronie zespołu przyspiesza start pracy, bo pierwszy kontakt zawiera komplet informacji potrzebnych do oceny priorytetu i przydzielenia sprawy. Kopia stanowi też czytelny ślad komunikacji przy reklamacjach i pytaniach o status, co skraca drogę do rozwiązania i zmniejsza liczbę niepotrzebnych wymian.

Jak to działa w Contact Form 7?

Contact Form 7 pozwala dodać kopię na dwa sposoby. Po pierwsze można ustawić w opcjach Email (2) i skonfigurować pola pod odpowiednią wysyłkę. Drugim sposobem jest użycie warunku, który reaguje na zaznaczenie pola w formularzu. Warto rozważyć obie opcje podczas implementacji formularza. Podczas gdy pierwsze podejście jest stałe, drugie jest elastyczne. W konsekwencji warto dobrać metodę do celu. Poniżej znajdują się dwa scenariusze, które działają od razu.

Automatyczna wysyłka CC

To najprostsza droga, ponieważ kopia idzie zawsze do nadawcy albo do stałego adresu. Podobnie do odbioru wiadomości, konfigurujemy to w ustawieniach formularza (w zakładce „Adres e-mail„). Z jednej strony to szybkie rozwiązanie, z drugiej strony brak wyboru po stronie użytkownika. Mimo to sprawdza się w prostych formularzach, gdzie kopia jest domyślna. Na zdjęciu znajdziesz informacje, jak zaimplementować to. W konsekwencji każde zgłoszenie wyśle kopię pod właściwy adres.

Warunkowa wysyłka CC

Tutaj użytkownik decyduje, czy chce otrzymać kopię. W opozycji do wersji stałej, w tej metodzie wysyłamy wiadomość tylko wtedy, gdy checkbox jest zaznaczony. Najpierw tworzymy pole w formularzu, potem w kodzie podpinamy się do zdarzenia wysyłki i wysyłamy wiadomość. W ten sam sposób zachowujemy porządek i w zasadzie podpinamy się pod wszystkie formularze. W konsekwencji rozwiązanie jest wygodne i zgodne z zasadą świadomej zgody. Poniżej pełny przykład z komentarzami:

				
					<?php
add_action('wpcf7_before_send_mail', function($contact_form){
	$submission = WPCF7_Submission::get_instance();
	
    if(!$submission){
		return; // brak danych
    }

    $posted = $submission -> get_posted_data();

    // nazwy pól z formularza
    $checkbox_field = 'send_copy';
    $email_field = 'your-email';

    // sprawdzenie, czy checkbox jest zaznaczony (CF7 zwraca string/tablicę)
    $raw = $posted[$checkbox_field] ?? null;
    $checked = is_array($raw) ? count($raw) > 0 : ! empty($raw);

    // aktualna konfiguracja 'Mail (2)'
    $mail2 = (array) $contact_form -> prop('mail_2');

    if(!$checked){
		// wyłączamy wysyłkę 'Mail (2)' jeśli brak zgody
		$mail2['active'] = false;
		$contact_form -> set_properties(['mail_2' => $mail2]);
		return;
    }

    // jeśli check w if przeszedł to ustawiamy odbiorcę i sprawdzamy, czy 'Mail (2)' jest aktywny
    $user_email = isset($posted[$email_field]) ? sanitize_email($posted[$email_field]) : '';
	
    if(!is_email($user_email)){
		// nieprawidłowy e-mail = nie wysyłamy kopii
		$mail2['active'] = false;
		$contact_form -> set_properties(['mail_2' => $mail2]);
		
		return;
    }

    // aktywujemy 'Mail (2') i nadpisujemy odbiorcę na podany adres
    $mail2['active'] = true;
    $mail2['recipient'] = $user_email;

    // opcjonalnie możemy dodać bezpieczny 'From' z domeny
    if(empty($mail2['sender'])){
		$domain = wp_parse_url(home_url(), PHP_URL_HOST);
		$mail2['sender'] = 'No-Reply <no-reply@'.$domain.'>';
    }

    $contact_form -> set_properties(['mail_2' => $mail2]);
}, 10, 1);
				
			

Przykładowy formularz będzie wtedy wyglądał tak:

				
					[text* your-name "Jan Kowalski"]
[email* your-email "Adres e-mail"]
[textarea* your-message "Twoja wiadomość"]
[checkbox send_copy use_label_element "Wyślij kopię wiadomości na mój adres"]

[submit "Wyślij"]
				
			

Wskazówki testowe:

  • wyślij formularz bez zaznaczenia, potem sprawdź skrzynkę odbiorczą,
  • wyślij formularz z zaznaczeniem, aby upewnić się, że przyszła kopia,
  • jeśli kopia nie dochodzi, wcześniej sprawdź rekordy SPF i DKIM i folder spam,
  • sprawdź WordPressowy debug.log.
Opinie
Kliknij, aby ocenić wpis!
[Łącznie: 1 Średnia: 4]

Kategorie:

Data aktualizacji wpisu:

Udostępnij:

Przeczytaj także

Aktualizacja 0.9.0 wtyczki Webist WP Esti CRM - Webist blog

Aktualizacja wtyczki Webist WP Esti CRM do wersji 0.9.0 przynosi szereg usprawnień, które poprawiają stabilność…

Ukryte pola i przekazywanie danych w Contact Form 7 - Webist Blog

Ukryte pola i przekazywanie danych w Contact Form 7 to prosty sposób, aby każdy formularz…

Aktualizacja 0.2 wtyczki Webist WP Asari CRM OSM

Nowa aktualizacja Webist WP Asari CRM OSM w wersji 0.2.0 koncentruje się na stabilności i…