This commit is contained in:
2025-11-10 22:26:52 -08:00
parent 77f09055c9
commit a659368867
19 changed files with 301 additions and 358 deletions

View File

@@ -70,6 +70,7 @@ class ContactUsComponent extends Component
if ($this->getConfig('requireCaptcha')) {
$this->ContactUsFormSubmissions->addBehavior('Captcha.Captcha');
}
return $this->ContactUsFormSubmissions->newEmptyEntity();
}
@@ -81,7 +82,12 @@ class ContactUsComponent extends Component
if (!isset($postData)) {
$postData = $this->getController()->getRequest()->getData();
}
$postData['client_ip'] = array_key_exists('client_ip', $postData) && $postData['client_ip'] ? $postData['client_ip'] : $this->getController()->getRequest()->clientIp();
$postData['client_ip'] = array_key_exists('client_ip', $postData) && $postData['client_ip'] ?
$postData['client_ip'] :
($this->getConfig('clientIpHeader') ?
$this->getController()->getRequest()->getHeaderLine($this->getConfig('clientIpHeader')) :
$this->getController()->getRequest()->clientIp()
);
$postData['submitted_at'] = DateTime::now();
$event = $this->getController()->dispatchEvent(CakeContactUsPlugin::EVENT_BEFORE_CONTACT_US_FORM_SAVED, [
@@ -119,7 +125,10 @@ class ContactUsComponent extends Component
Log::debug(print_r('$contactUsFormSubmission->getErrors()', true));
Log::debug(print_r($contactUsFormSubmission->getErrors(), true));
}
$contactUsFormSubmissionSaved = $this->ContactUsFormSubmissions->save($contactUsFormSubmission);
if ($contactUsFormSubmissionSaved) {
return $this->_afterFormSaved($contactUsFormSubmissionSaved);
}
@@ -140,7 +149,6 @@ class ContactUsComponent extends Component
protected function _afterFormSaved(EntityInterface $contactUsFormSubmissionSaved)
{
$message = __d('cake_contact_us', 'Message received, thank you. We will be in touch soon.');
$event = $this->getController()->dispatchEvent(CakeContactUsPlugin::EVENT_AFTER_CONTACT_US_FORM_SAVED, [
'contactUsFormSubmission' => $contactUsFormSubmissionSaved,
], $this->getController());

View File

@@ -73,8 +73,7 @@ class ContactUsFormSubmissionsTable extends Table
$validator
->scalar('client_ip')
->maxLength('client_ip', 45)
->requirePresence('client_ip', 'create')
->notEmptyString('client_ip');
->allowEmptyString('client_ip');
$validator
->scalar('name')
@@ -84,7 +83,7 @@ class ContactUsFormSubmissionsTable extends Table
// email
$validator->email('email');
if ($fields['email']) {
if ($fields['email'] ?? false) {
$validator->notEmptyString('email');
} else {
$validator->allowEmptyString('email');
@@ -94,7 +93,7 @@ class ContactUsFormSubmissionsTable extends Table
$validator
->scalar('subject')
->maxLength('subject', 255);
if ($fields['subject']) {
if ($fields['subject'] ?? false) {
$validator->notEmptyString('subject');
} else {
$validator->allowEmptyString('subject');
@@ -129,7 +128,7 @@ class ContactUsFormSubmissionsTable extends Table
}
$now = DateTime::now()->format(CakeContactUsPlugin::CAKE_CONTACT_US_MYSQL_DATETIME);
$updateData = [];
if (Configure::read('ContactUs.email.confirmation.enabled') && isset($contactUsFormSubmission->email)) {
if (Configure::read('ContactUs.fields.email.confirmation') && isset($contactUsFormSubmission->email)) {
$mailer = Configure::read('ContactUs.email.mailerClass', 'CakeContactUs.ContactUsFormSubmissions');
try {
$this->getMailer($mailer)->send('confirmation', [$contactUsFormSubmission]);
@@ -139,7 +138,7 @@ class ContactUsFormSubmissionsTable extends Table
}
}
if (Configure::readOrFail('ContactUs.email.backend.enabled')) {
if (Configure::readOrFail('ContactUs.fields.email.backend')) {
$mailer = Configure::read('ContactUs.email.mailerClass', 'CakeContactUs.ContactUsFormSubmissions');
try {
$this->getMailer($mailer)->send('backend', [$contactUsFormSubmission]);