ContactForm7 to chyba najpopularniejsza wtyczka do Å‚atwego tworzenia formularzy, które można umieÅ›cić na stronie. Nie jest ona co prawda najwygodniejsza, najÅ‚adniejsza, ani najbardziej intuicyjna, ale z pewnoÅ›ciÄ… jest szybka, bezpieczna i speÅ‚nia swojÄ… rolÄ™. A co wiÄ™cej – dziÄ™ki przemyÅ›lanemu użyciu filtrów i akcji, pozwala na Å‚atwe modyfikacje i integracje.
Zacznijmy od najprostszej i chyba najczęściej spotykanej modyfikacji, czyli:
Jak zrobić coś dodatkowego (zapisać do pliku, zachować w bazie danych, utworzyć wpis, itd.) z przesłanym formularzem?
Dzięki temu, że autor wtyczki przewidział taką możliwość, dodanie takiej integracji jest stosunkowo proste. Spójrzmy na poniższy kod, który realizuje chyba najprostszą formę takiej integracji, a jednocześnie jest świetnym startem do budowania swoich, bardziej rozbudowanych wersji:
function prefiks_process_submitted_form_data( $contact_form ) {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
// Pobierz dane przesłane w formularzu
$submitted_name = $submission->get_posted_data('your-name');
$submitted_email = $submission->get_posted_data('your-email');
$submitted_subject = $submission->get_posted_data('your-subject');
$submitted_message = $submission->get_posted_data('your-message');
// ...
// Zrób coś z danymi (np. zapisz je do pliku)
file_put_contents('cf7-log.txt', 'Data: ' . date('c') . "\n", FILE_APPEND);
file_put_contents('cf7-log.txt', "Autor: {$submitted_name} <{$submitted_email}>\n", FILE_APPEND);
file_put_contents('cf7-log.txt', 'Temat: ' . $submitted_subject . "\n", FILE_APPEND);
file_put_contents('cf7-log.txt', "Wiadomość:\n" . $submitted_message, FILE_APPEND);
file_put_contents('cf7-log.txt', "\n--------------------\n", FILE_APPEND);
}
}
add_action( 'wpcf7_before_send_mail', 'prefiks_process_submitted_form_data' );
(wiÄ™cej…)