я создал тему для WordPress для клиента. Я попытался включить php mailer для отправки писем, а также метод «have_posts ()», специфичный для wordpress, чтобы показать все различные посты, создаваемые через панель администратора.
При первой загрузке страницы все работает нормально. Но после отправки письма с формой отправки сообщения из WordPress исчезают. Кажется, это проблема с методом post из формы отправки, так как я тестировал его без кода phpmailer и ссылок.
Пожалуйста, помогите мне. Я ищу решение с нескольких дней.
Спасибо:)
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;
require 'vendor/PHPMailer/src/Exception.php';
require 'vendor/PHPMailer/src/PHPMailer.php';
require 'vendor/PHPMailer/src/SMTP.php';
$msg = '';
$msgone ="";
$msgtwo ="";
$msgthree = '';
if (array_key_exists('email', $_POST)) {
date_default_timezone_set('Etc/UTC');
//Create a new PHPMailer instance
$mail = new PHPMailer();
$mail->IsSMTP();
//Tell PHPMailer to use SMTP - requires a local mail server
//Faster and safer than using mail()
$mail->Host = 'server'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'mail'; // SMTP username
$mail->Password = 'password'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to conne
//Use a fixed address in your own domain as the from address
//**DO NOT** use the submitter's address here as it will be forgery
//and will cause your messages to fail SPF checks
//Recipients
$mail->setFrom('mail');
$mail->addAddress('mail'); // Add a recipient
//Put the submitter's address in a reply-to header
//This will fail if the address provided is invalid,
//in which case we should ignore the whole request
if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
$mail->Subject = 'PHPMailer contact form';
//Keep it simple - don't use HTML
$mail->isHTML(false);
//Build a simple message body
$mail->Body = <<<EOT
Email: {$_POST['email']}
Company: {$_POST['company']}
Company: {$_POST['phone']}
Name: {$_POST['name']}
Message: {$_POST['message']}
EOT;
//Send the message, check for errors
if (!$mail->send()) {
//The reason for failing to send will be in $mail->ErrorInfo
//but you shouldn't display errors to users - process the error, log it on your server.
$msgone = 'Sorry, etwas ist schief gelaufen. Bitte versuche es später nochmal.';
} else {
$msgtwo = 'Die Nachricht wurde abgeschickt! Danke für deine Kontaktaufnahme mit uns.';
}
} else {
$msgthree = 'Ungültige Email Adresse. Die Nachricht wurde nicht abgeschickt.';
}
}
?>
над кодом php mailer
<form id="contactForm" action="#contactForm" method="post">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<input class="form-control" id="name" name="name" type="text" placeholder="Vor- und Nachname *" required>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<input class="form-control" id="company" name="company" type="text" placeholder="Firmenname">
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<input class="form-control" id="email" name="email" type="email" placeholder="E-mail *" required>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<input class="form-control" id="phone" name="phone" type="tel" placeholder="Telefonnummer ">
<p class="help-block text-danger"></p>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<textarea class="form-control" id="message" name="message" type="text" placeholder="Deine Nachricht"></textarea>
<p class="help-block text-danger"></p>
</div>
</div>
<div class="clearfix"></div>
<div id="alert-message-container">
<?php if (!empty($msgone)){echo
"<div class='text-center alert alert-warning alert-dismissible fade show alert-message-class'>
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
$msgone
</div>";}
?>
<?php if (!empty($msgtwo)){echo
"<div class='text-center alert alert-success alert-dismissible fade show alert-message-class'>
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
$msgtwo
</div>";}?>
<?php if (!empty($msgthree)){echo
"<div class='text-center alert alert-danger alert-dismissible fade show alert-message-class'>
<button type='button' class='close' data-dismiss='alert' aria-label='Close'>
<span aria-hidden='true'>×</span>
</button>
$msgthree
</div>";}?>
</div>
<div class="col-lg-12 text-center">
<div id="success"></div>
<button id="sendMessageButton" name="submit" class="btn btn-xl text-uppercase" type="submit" >Senden</button>
</div>
</div>
</form>
над формой представления
<?php $modal_article_counter = 0; ?>
<!-- Start the Loop. -->
<?php
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php ++$modal_article_counter; ?>
<!-- Post template start -->
<div class="list-group" onclick="triggervar('#modal-article-<?php echo $modal_article_counter; ?>')">
<a href="javascript:void(0)" class="list-group-item bg-sr text-white" >
<h4 class="list-group-item-heading"><?php the_title(); ?></h4>
<div class="row no-m no-p">
<div class="col-12 col-md-8 no-m no-p article-category">
<p class="no-m no-p"><u><small>Kategorie: <?php foreach((get_the_category()) as $category) { echo $category->cat_name . ' '; } ?></small></u></p>
</div>
<div class="col-12 col-md-4 no-m no-p article-date">
<p class="no-m no-p"><u><small><?php the_time('F jS, Y'); ?></small></u></p>
</div>
</div>
</a>
</div>
<!-- Stop The Loop (but note the "else:" - see next line). -->
<?php endwhile; else : ?>
<!-- The very first "if" tested to see if there were any Posts to -->
<!-- display. This "else" part tells what do if there weren't any. -->
<p class="text-center text-sr"><?php esc_html_e( 'Sorry wir haben aktuell keine Neuigkeiten für dich.' ); ?></p>
<!-- REALLY stop The Loop. -->
<?php endif;
?>
над циклом WordPress для отображения сообщений