diff --git a/app/controllers/App.php b/app/controllers/App.php index 2c763c5..37a4d43 100644 --- a/app/controllers/App.php +++ b/app/controllers/App.php @@ -65,4 +65,57 @@ class App extends Controller return __('Contact Us', 'aldine'); } + + public function contactFormResponse() + { + if (isset($_POST['submitted'])) { + $output = []; + $name = (isset($_POST['visitor_name'])) ? $_POST['visitor_name'] : false; + $email = (isset($_POST['visitor_email'])) ? $_POST['visitor_email'] : false; + $institution = (isset($_POST['visitor_institution'])) ? $_POST['visitor_institution'] : false; + $message = (isset($_POST['message'])) ? $_POST['message'] : false; + if (!$name) { + $output['message'] = __('Name is required.', 'aldine'); + $output['status'] = 'error'; + $output['field'] = 'visitor_name'; + } elseif (!$email) { + $output['message'] = __('Email is required.', 'aldine'); + $output['status'] = 'error'; + $output['field'] = 'visitor_email'; + } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { + $output['message'] = __('Email is invalid.', 'aldine'); + $output['status'] = 'error'; + $output['field'] = 'visitor_email'; + } elseif (!$institution) { + $output['message'] = __('Institution is required.', 'aldine'); + $output['status'] = 'error'; + $output['field'] = 'visitor_institution'; + } elseif (!$message) { + $output['message'] = __('Message is required.', 'aldine'); + $output['status'] = 'error'; + $output['field'] = 'message'; + } else { + $sent = wp_mail( + get_option('admin_email'), + __('Contact Form: ', 'aldine') . $name, + sprintf( + "From: %1\$s <%2\$s>\n%3\$s", + $name, + $email, + strip_tags($message) + ), + "From: ${email}\r\nReply-To: ${email}\r\n" + ); + if ($sent) { + $output['message'] = __('Your message was sent!', 'aldine'); + $output['status'] = 'success'; + } else { + $output['message'] = __('Your message could not be sent.', 'aldine'); + $output['status'] = 'error'; + } + } + return $output; + } + return false; + } } diff --git a/resources/assets/styles/components/_forms.scss b/resources/assets/styles/components/_forms.scss index 8914fbe..786d595 100644 --- a/resources/assets/styles/components/_forms.scss +++ b/resources/assets/styles/components/_forms.scss @@ -11,8 +11,32 @@ .contact { margin-bottom: 120px; + p { + font-size: 0.875rem; + font-weight: 600; + font-family: $font-family-sans-serif; + } + + .success { + color: $dark-green; + } + + .error { + color: $dark-red; + } + form { width: 22.125rem; + + .error > input[type="text"], + .error > input[type="email"], + .error > textarea { + border-bottom: solid 2px $dark-red; + } + + .error > ::placeholder { + color: $dark-red; + } } label { diff --git a/resources/views/partials/contact-form.blade.php b/resources/views/partials/contact-form.blade.php index 4fb49c3..01137fd 100644 --- a/resources/views/partials/contact-form.blade.php +++ b/resources/views/partials/contact-form.blade.php @@ -1,11 +1,22 @@

{{ $contact_form_title }}

-
+ + @if($contact_form_response) +

{{ $contact_form_response['message'] }}

+ @endif -

-

-

-

+

+ +

+

+ +

+

+ +

+

+ +