Poprawiona obsługa walidacji przy wysyłce

This commit is contained in:
2025-05-20 22:34:46 +02:00
parent 3e9115811a
commit eedaba390d

View File

@@ -35,23 +35,27 @@ class Shortcode
{ {
$em_name = null; $em_name = null;
$em_mail = null; $em_mail = null;
$em_meeessage = null; $em_message = null;
$class = null; $class = null;
$html = null; $html = null;
$error = null; $error = null;
$body = null; $body = null;
$telefon = null; $telefon = null;
$mailResult = 0;
$form_submitted = ($_SERVER['REQUEST_METHOD'] === 'POST');
if(!empty($_POST['website'])) die(); if(!empty($_POST['website'])) die();
if ($form_submitted) {
$emmsg = (isset($_POST['emmsg']) ? $_POST['emmsg'] : ''); $emmsg = (isset($_POST['emmsg']) ? $_POST['emmsg'] : '');
if(isset($_POST['em_name'])) { $em_name = $_POST['em_name']; } else {
$error .= 'Proszę wprowadź nazwę'; if(!empty($_POST['em_name'])) { $em_name = $_POST['em_name']; } else {
$error .= 'Please enter your name </br>';
} }
if(isset($_POST['em_mail'])) { $em_mail = $_POST['em_mail']; } else { if(!empty($_POST['em_mail'])) { $em_mail = $_POST['em_mail']; } else {
$error .= 'Proszę wprowadź adres email'; $error .= 'Please enter your email address </br>';
} }
if(isset($_POST['em_meeessage'])) { $em_meeessage = $_POST['em_meeessage']; } else { if(!empty($_POST['em_message'])) { $em_message = $_POST['em_message']; } else {
$error .= 'Proszę wprowadź tersć wiadmości'; $error .= 'Please enter your message </br>';
} }
$targetEmail = 'To: Tylkofotografia <' .get_option('incontact-target-mail') .'>'; $targetEmail = 'To: Tylkofotografia <' .get_option('incontact-target-mail') .'>';
@@ -64,9 +68,6 @@ class Shortcode
'From: ' . $em_name . ' <'.$em_mail.'>', 'From: ' . $em_name . ' <'.$em_mail.'>',
'Reply-To: ' . $em_name . ' <'.$em_mail.'>' 'Reply-To: ' . $em_name . ' <'.$em_mail.'>'
); );
$gRecaptchaResponse = (isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : '');
$body = '<!DOCTYPE html> $body = '<!DOCTYPE html>
<html lang="pl"> <html lang="pl">
<head> <head>
@@ -158,14 +159,17 @@ class Shortcode
'; ';
$body = str_replace( $body = str_replace(
['{{IMIE_NAZWISKO}}', '{{EMAIL}}', '{{TELEFON}}', '{{WIADOMOSC}}', '{{ROK}}'], ['{{IMIE_NAZWISKO}}', '{{EMAIL}}', '{{TELEFON}}', '{{WIADOMOSC}}', '{{ROK}}'],
[$em_name, $em_mail, $telefon, nl2br($em_meeessage), date("Y")], [$em_name, $em_mail, $telefon, str_replace(array("\r\n", "\r", "\n"), "<br />", $em_message), date("Y")],
$body $body
) ; ) ;
//$gRecaptchaResponse = (isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : '');
if (!empty($atts['class'])) {
/*if (!empty($atts['class'])) {
$class = $atts['class']; $class = $atts['class'];
} }*/
if ($emmsg == 'true' && $error) { if (!empty($error)) {
$html .= '<div class="alert alert-success" role="alert">' . $error . '</div>'; $html .= '<div class="alert alert-success" role="alert">' . $error . '</div>';
} elseif ($emmsg == 'true') } elseif ($emmsg == 'true')
@@ -184,47 +188,49 @@ class Shortcode
$errors = $resp->getErrorCodes(); $errors = $resp->getErrorCodes();
}*/ }*/
} }
}
wp_enqueue_style('ContactCss', plugins_url( '/css/cform.css', __FILE__ )); wp_enqueue_style('ContactCss', plugins_url( '/css/cform.css', __FILE__ ));
$html .= '<script src="https://www.google.com/recaptcha/api.js"></script> /*$html .= '<script src="https://www.google.com/recaptcha/api.js"></script>
<script> <script>
$(document).ready(function(){window.setTimeout(function(){$(".alert").fadeTo(500,0).slideUp(500,function(){$(this).remove()})},2e3)}),$(document).ready(function(){"use strict";window.addEventListener("load",function(){var t=document.getElementsByClassName("needs-validation");Array.prototype.filter.call(t,function(t){t.addEventListener("submit",function(e){!1===t.checkValidity()&&(e.preventDefault(),e.stopPropagation()),t.classList.add("was-validated")},!1)})},!1)})(); $(document).ready(function(){window.setTimeout(function(){$(".alert").fadeTo(500,0).slideUp(500,function(){$(this).remove()})},2e3)}),$(document).ready(function(){"use strict";window.addEventListener("load",function(){var t=document.getElementsByClassName("needs-validation");Array.prototype.filter.call(t,function(t){t.addEventListener("submit",function(e){!1===t.checkValidity()&&(e.preventDefault(),e.stopPropagation()),t.classList.add("was-validated")},!1)})},!1)})();
</script>'."\n"; </script>'."\n";*/
$html .= '<div class="row justify-content-md-center"> $html .= '<div class="row justify-content-md-center">
<div class="col-12">'; <div class="col-12">';
if ($mailResult == 1) if ($mailResult == 1)
{ {
$html .= '<div class="alert alert-success" role="alert">Wiadomość wysłana pomyślnie!</div>'; $html .= '<div class="alert alert-success" role="alert">Thanks! Your message was sent.</div>';
} }
$html .= '<div class="jumbotron"><form action="" class="needs-validation" novalidate method="post" id="demo-form"> $html .= '<div class="jumbotron"><form action="" class="needs-validation" novalidate method="post" id="demo-form">
<input type="hidden" name="emmsg" value="true" /> <input type="hidden" name="emmsg" value="true" />
<input type="text" id="website" name="website" /> <input type="text" id="website" name="website" />
<div class="jumbotron"> <div class="jumbotron">
<div class="form-group"> <div class="form-group">
<label for="name" class="col-2 control-label">Nazwa</label> <label for="name" class="col-2 control-label">Name</label>
<div class="col-12"> <div class="col-12">
<input type="text" class="form-control" id="name" name="em_name" placeholder="Imię i nazwisko" value="" required> <input type="text" class="form-control" id="name" name="em_name" placeholder="Full name" value="" required>
<div class="invalid-feedback"> <div class="invalid-feedback">
Wprowadź nazwę! Please enter your name!
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="email" class="col-2 control-label">Email</label> <label for="email" class="col-2 control-label">Email</label>
<div class="col-12"> <div class="col-12">
<input type="email" class="form-control" id="email" name="em_mail" placeholder="twoj@email.com" value="" required> <input type="email" class="form-control" id="email" name="em_mail" placeholder="you@example.com" value="" required>
<div class="invalid-feedback"> <div class="invalid-feedback">
Podaj adres email! Please enter your email address!
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<p class="col-2 control-label">Wiadomość</p> <p class="col-2 control-label">Message</p>
<div class="col-12"> <div class="col-12">
<textarea class="form-control" rows="4" name="em_meeessage" required></textarea> <textarea class="form-control" rows="4" name="em_message" placeholder="Write your message here..." required></textarea>
<div class="invalid-feedback"> <div class="invalid-feedback">
Wprowadź treść wiadmości! Please enter your message!
</div> </div>
</div> </div>
</div> </div>
@@ -234,9 +240,10 @@ class Shortcode
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<p></p>
<div class="col-4"> <div class="col-4">
<button id="submit" name="submit" type="submit" value="Send" class="btn btn-primary"> <button id="submit" name="submit" type="submit" value="Send" class="btn btn-primary">
<i class="fas fa-paper-plane"></i> Wyślij <i class="fas fa-paper-plane"></i> Send
</button> </button>
</div> </div>
</div> </div>
@@ -244,6 +251,7 @@ class Shortcode
</form> </form>
</div> </div>
</div></div>'; </div></div>';
return $html; return $html;
} }