Właściciele sklepów WooCommerce coraz częściej oczekują bardziej zaawansowanych możliwości automatyzacji obsługi klienta. Jednym z typowych scenariuszy jest potrzeba załączania indywidualnych plików PDF do wiadomości e-mail – na przykład personalizowanych biletów, certyfikatów czy dokumentów. Czy to możliwe w ShopMagic? Oczywiście! W tym artykule pokażemy dokładnie, jak to zrobić krok po kroku, korzystając z wbudowanego filtra attachments_paths
.
Sytuacja naszego klienta
Z pytaniem zwrócił się do nas właściciel sklepu WooCommerce, który korzysta z wtyczki ShopMagic do automatyzacji komunikacji e-mailowej. Zastanawiał się, czy jest możliwe dynamiczne dodanie spersonalizowanego pliku PDF dla każdego klienta w zależności od jego ID, bez konieczności ręcznego załączania plików do każdej wiadomości.
Dlaczego to wyzwanie?
Domyślnie ShopMagic umożliwia załączenie tego samego pliku PDF do wszystkich wysyłanych wiadomości. Sprawdza się to przy np. wysyłce e-booka, ale w przypadku personalizowanych dokumentów (np. biletów imiennych czy certyfikatów) każdy klient powinien otrzymać własny plik, zapisany wcześniej na serwerze. To właśnie tutaj wkracza moc filtrowania załączników przez kod PHP.
Rozwiązanie krok po kroku
- Oczywiście potrzebujesz wtyczki ShopMagic
- Zrozumienie mechanizmu działania filtra
- Przykład implementacji
- Zaloguj się do kokpitu WordPressa.
- Przejdź do sekcji Wygląd → Edytor plików motywu.
- Wybierz swój motyw (najlepiej motyw potomny, jeśli używasz).
- Wklej kod filtra na końcu pliku
functions.php
. - Zaloguj się na serwer przez FTP lub menedżera plików.
- Przejdź do katalogu
wp-content/plugins/
. - Utwórz nowy folder, np.
shopmagic-custom-pdf
. - W środku utwórz plik
shopmagic-custom-pdf.php
i dodaj na początku: - Następnie zapisz plik, przejdź do kokpitu WordPressa → Wtyczki i aktywuj nową wtyczkę.
Na początek: upewnij się, że masz zainstalowaną wtyczkę ShopMagic 2.34.0 lub nowszą. Filtr
attachments_paths
jest dostępny właśnie od tej wersji. Od razu dodam, że ShopMagic 2.34.0 jest baaaaardzo stary, ale widzieliśmy już różne przypadki 🙂ShopMagic pozwala na dynamiczne modyfikowanie listy załączników przez filtr PHP:
shopmagic/core/action/send_mail/attachments_paths
Dzięki temu możemy dodać własny PDF na podstawie danych dostępnych w czasie wysyłki wiadomości – np. identyfikatora klienta.
Oto gotowy fragment kodu PHP, który możesz dodać do pliku
functions.php
swojego motywu (lub do własnej wtyczki).
💡 Uwaga: Sposoby na dodanie filtra opisujemy nieco niżej.
add_filter('shopmagic/core/action/send_mail/attachments_paths', 'attach_dynamic_files', 10, 3);
function attach_dynamic_files( $attachments, $action_fields, $provided_data ) {
// Sprawdzenie, czy akcja dotyczy konkretnej automatyzacji
if ( ! $action_fields->has('subject_value') || $action_fields->get('subject_value') !== 'Grab your ticket') {
return $attachments;
}
// Pobranie danych klienta
if ( ! isset( $provided_data[\WPDesk\ShopMagic\Customer\Customer::class] ) ) {
return $attachments;
}
$customer = $provided_data[\WPDesk\ShopMagic\Customer\Customer::class];
// Załączanie pliku tylko dla zarejestrowanych klientów
if ( ! $customer->is_guest() ) {
$file_path = '/absolute/path/to/file/on/server/ticket-' . $customer->get_id() . '.pdf';
return [ $file_path ];
}
return $attachments;
}
Gdzie dodać filtr attachments_paths
i jak to zrobić?
Aby filtr zadziałał poprawnie, musisz umieścić go w odpowiednim miejscu w kodzie WordPressa.
Masz kilka możliwości dodania filtra – poniżej przedstawiamy dwie najczęściej stosowane i rekomendowane metody.
Edycja pliku functions.php aktywnego motywu (lub motywu potomnego)
Najprostszy sposób to dodanie kodu bezpośrednio do pliku functions.php
💡 Uwaga: Zmiany wprowadzone bezpośrednio w pliku functions.php
mogą zostać nadpisane podczas aktualizacji motywu, jeśli nie używasz motywu potomnego.
Własna mini-wtyczka (zalecane rozwiązanie dla sklepu WooCommerce na produkcji)
Aby utrzymać porządek i bezpieczeństwo, możesz dodać filtr jako osobną mini-wtyczkę:
?php
/**
* Plugin Name: ShopMagic – Custom PDF Attachment
* Description: Dodaje spersonalizowane pliki PDF do wiadomości e-mail ShopMagic.
*/
add_filter('shopmagic/core/action/send_mail/attachments_paths', 'attach_dynamic_files', 10, 3);
function attach_dynamic_files( $attachments, $action_fields, $provided_data ) {
// ... (reszta kodu jak powyżej)
}
Jak działa ten kod w ShopMagic? Krok po kroku
- Sprawdza, czy wiadomość dotyczy konkretnej automatyzacji (po temacie wiadomości).
- Pobiera dane klienta, który wywołał akcję.
- Jeśli klient jest zarejestrowany, buduje ścieżkę do pliku PDF, który zawiera jego ID w nazwie (np.
ticket-1523.pdf
). - Aby całość działała, plik musi już znajdować się na serwerze, w odpowiednim katalogu.
Praktyczna wskazówka 💡
Pliki możesz generować wcześniej i zapisywać na serwerze za pomocą zewnętrznych narzędzi lub niestandardowych skryptów (np. przy pomocy biblioteki DomPDF). Upewnij się, że ścieżka do pliku jest absolutna i poprawna.
Zalety automatycznego dołączania PDF do emaili ShopMagic
✅ Automatyzacja wysyłki spersonalizowanych dokumentów
✅ Brak konieczności ręcznego załączania plików
✅ Możliwość pełnej personalizacji treści i nazw plików
✅ Wykorzystanie istniejących możliwości darmowej wersji ShopMagic – bez potrzeby rozszerzeń PRO
Podsumowanie
Jak widzisz, ShopMagic oferuje zaawansowane mechanizmy dla użytkowników, którzy chcą zautomatyzować nie tylko treść, ale również załączniki w swoich kampaniach e-mail. Dzięki prostemu filtrowi attachments_paths
możesz dynamicznie dołączać indywidualne pliki PDF, co czyni komunikację z klientami jeszcze bardziej profesjonalną.
Jeśli masz podobne potrzeby, zachęcamy do przetestowania tej funkcji u siebie. A jeśli napotkasz trudności – skontaktuj się z naszym zespołem wsparcia technicznego. Chętnie pomożemy!
PS. Korzystając z okazji polecam zaktualizować wtyczkę ShopMagic przynajmniej do wersji 4.4.0. Ta wersja dodaje wsparcie sztucznej inteligencji na etapie tworzenia automatyzacji.