FEATURE #1552 @1h: save sent messages into database
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\ContactForm\Http\Controllers\Visitor;
|
||||
|
||||
use App\CMS\Helpers\Template;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Content\Content;
|
||||
use Illuminate\Mail\Message;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Modules\ContactForm\Http\Requests\SendNewEmailRequest;
|
||||
use Modules\ContactForm\Mail\ContactFormMessage;
|
||||
|
||||
class CreateNewMessage extends Controller
|
||||
{
|
||||
@@ -26,35 +27,29 @@ class CreateNewMessage extends Controller
|
||||
|
||||
// select template
|
||||
$template = isset($form->moduleSettings['emailTemplate']) ? $form->moduleSettings['emailTemplate'] : 'contactform::emails.default';
|
||||
$subject = isset($form->moduleSettings['subject']) ? $form->moduleSettings['subject'] : trans('contactform::admin/contents.defaultSubject');
|
||||
$data = $request->except('_token', 'g-recaptcha-response');
|
||||
|
||||
// send email
|
||||
$status = Mail::send(Template::name($template), ['data' => $request], function (Message $message) use ($request, $form) {
|
||||
$message->from($request->email, $request->name);
|
||||
|
||||
// get message subject
|
||||
$subject = isset($form->moduleSettings['subject']) ? $form->moduleSettings['subject'] : trans('contactform::admin/contents.defaultSubject');
|
||||
|
||||
$message->to($form->moduleSettings['email'])
|
||||
->subject($subject);
|
||||
});
|
||||
Mail::to($form->moduleSettings['contactEmail'])
|
||||
->send(new ContactFormMessage($data, $subject, Template::name($template)));
|
||||
|
||||
// inform user about success or failure
|
||||
return $this->sendResponse($status, $request, $form);
|
||||
return $this->sendResponse($request, $form);
|
||||
}
|
||||
|
||||
private function sendResponse($status, SendNewEmailRequest $request, $form)
|
||||
private function sendResponse(SendNewEmailRequest $request, $form)
|
||||
{
|
||||
// send response for ajax
|
||||
if ($request->ajax()) {
|
||||
return response()->json([
|
||||
'status' => $status ? 'success' : 'failed',
|
||||
'status' => 'success',
|
||||
'redirectUrl' => $form->url
|
||||
]);
|
||||
} else {
|
||||
// redirect user to previous form
|
||||
$response = redirect()->back();
|
||||
|
||||
return $status ? $response->with('success', 'sent') : $response->with('error', 'cannotSend');
|
||||
return $response->with('success', 'sent');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user