Nowoczesne strony internetowe i marketing online dla przedsiębiorców w Niemczech.
Skontaktuj się:

Wiele formularzy kontaktowych na WordPress, zwłaszcza tych korzystających z wtyczki Forminator, domyślnie zapisuje przesłane załączniki na serwerze. Takie rozwiązanie może być niezgodne z RODO, ponieważ dane użytkowników są przechowywane bez odpowiedniej zgody oraz zabezpieczeń. W tym artykule przedstawiam, jak wdrożyć mechanizm automatycznego usuwania plików, co zwiększa bezpieczeństwo danych i minimalizuje ryzyko naruszenia przepisów o ochronie danych osobowych.
Podczas pracy nad stronami WordPress natrafiłem na problem, w którym przesyłane przez formularz załączniki pozostawały na serwerze. Taka sytuacja jest nie tylko nieefektywna, ale i niezgodna z wymogami RODO. Dlatego zdecydowałem się stworzyć własne rozwiązanie – MU Plugin, który automatycznie usuwa pliki zaraz po wysłaniu wiadomości e-mail. W niniejszym poradniku opisuję:
uploads.Wtyczka, którą wykorzystałem jako bazę, miała kilka ograniczeń:
Poniżej znajdziesz kompletny kod wtyczki, który wdrożyłem w moich projektach. Testy potwierdziły, że wszystko działa poprawnie:
<?php
/*
Plugin Name: Delete Forminator Uploads
Description: Automatyczne usuwanie załączników z formularza kontaktowego opartego na wtyczce Forminator. Rozwiązanie zgodne z RODO – po wysłaniu wiadomości e-mail pliki są usuwane z serwera.
Version: 1.0
Author: Twoje Imię
*/
add_action('forminator_custom_form_after_send_email', 'delete_forminator_uploads', 10, 2);
function delete_forminator_uploads($entry, $form_id) {
// Ustalenie katalogu uploads
$upload_dir = wp_upload_dir();
$uploads_path = $upload_dir['basedir'] . '/forminator';
// Sprawdzenie czy przesłano pliki
if (isset($entry['form_data']['files']) && is_array($entry['form_data']['files'])) {
foreach ($entry['form_data']['files'] as $file) {
// Budowanie pełnej ścieżki do pliku
$file_path = $uploads_path . '/' . $file;
// Sprawdzenie czy plik istnieje i jego usunięcie
if (file_exists($file_path)) {
if(unlink($file_path)) {
error_log("Usunięto plik: " . $file_path);
} else {
error_log("Nie udało się usunąć pliku: " . $file_path);
}
}
}
}
}
?>
forminator_custom_form_after_send_email, co oznacza, że zaraz po wysłaniu wiadomości e-mail uruchamiana jest funkcja usuwająca pliki.wp_upload_dir() ustalamy ścieżkę do katalogu, w którym przechowywane są pliki przesyłane przez Forminatora.unlink() usuwa go z serwera, a wynik operacji jest logowany (co ułatwia debugowanie).W moich projektach wdrożyłem powyższy kod, co przyniosło wymierne korzyści:
uploads zapobiega gromadzeniu niepotrzebnych plików, co przekłada się na lepszą wydajność serwera.Jeżeli korzystasz z formularza kontaktowego opartego na Forminatorze i obawiasz się, że domyślne przechowywanie załączników może naruszać przepisy RODO, rozwiązanie opisane w tym artykule jest dla Ciebie. Wdrożenie przedstawionego kodu pozwala:
Na podstawie moich doświadczeń mogę potwierdzić, że wdrożenie tego rozwiązania w moich projektach działa bez zarzutu.
Jeśli potrzebujesz pomocy lub masz pytania dotyczące wdrożenia tego rozwiązania, skontaktuj się ze mną!