Отправить по электронной почте кнопку

Я разрабатываю веб-сайт, используя кодирование Wordpress в HTML, CSS, jQuery и PHP, и мне нужно создать кнопку с этой информацией: имя, почта и сообщение, и когда пользователь нажимает кнопку отправки с этой заполненной информацией, она будет отправлена ​​на электронная почта, у меня вопрос, как заставить работать кнопку, я тестирую ее на живом сайте. Кроме того, где я могу указать адрес электронной почты, на который он будет получать всю информацию.

    <?php

  //response generation function

  $response = "";

  //function to generate response
  function my_contact_form_generate_response($type, $message){

    global $response;

    if ($type == "success") $response = "<div class='success'>{$message}</div>";
    else $response = "<div class='error'>{$message}</div>";

  }

  //response messages
  $not_human       = "Human verification incorrect.";
  $missing_content = "Please supply all information.";
  $email_invalid   = "Email Address Invalid.";
  $message_unsent  = "Message was not sent. Try Again.";
  $message_sent    = "Thanks! Your message has been sent.";

  //user posted variables
  $name = $_POST['message_name'];
  $email = $_POST['message_email'];
  $message = $_POST['message_text'];
  $human = 2;

  //php mailer variables
  $to = get_option('admin_email');
  $subject = "Someone sent a message from ".get_bloginfo('name');
  $headers = 'From: '. $email . "\r\n" .
    'Reply-To: ' . $email . "\r\n";

  if (!$human == 0){
    if ($human != 2) my_contact_form_generate_response("error", $not_human); //not human!
    else {

      //validate email
      if (!filter_var($email, FILTER_VALIDATE_EMAIL))
        my_contact_form_generate_response("error", $email_invalid);
      else //email is valid
      {
        //validate presence of name and message
        if (empty($name) || empty($message)){
          my_contact_form_generate_response("error", $missing_content);
        }
        else //ready to go!
        {
          $sent = wp_mail($to, $subject, strip_tags($message), $headers);
          if ($sent) my_contact_form_generate_response("success", $message_sent); //message sent!
          else my_contact_form_generate_response("error", $message_unsent); //message wasn't sent
        }
      }
    }
  }
  else if ($_POST['submitted']) my_contact_form_generate_response("error", $missing_content);

?>

<?php get_header(); ?>

  <div id = "primary" class = "site-content">
    <div id = "content" role = "main">

      <?php while ( have_posts() ) : the_post(); ?>

          <article id = "post-<?php the_ID(); ?>" <?php post_class(); ?>>

            <header class = "entry-header">
              <h1 class = "entry-title"><?php the_title(); ?></h1>
            </header>

            <div class = "entry-content">
              <?php the_content(); ?>

              <style type = "text/css">
                .error{
                  padding: 5px 9px;
                  border: 1px solid red;
                  color: red;
                  border-radius: 3px;
                }

                .success{
                  padding: 5px 9px;
                  border: 1px solid green;
                  color: green;
                  border-radius: 3px;
                }

                form span{
                  color: red;
                }
              </style>

              <div id = "respond">
                <?php echo $response; ?>
                <form action = "<?php the_permalink(); ?>" method = "post">
                  <p><label for = "name">Name: <span>*</span> <br><input type = "text" name = "message_name" value = "<?php echo esc_attr($_POST['message_name']); ?>"></label></p>
                  <p><label for = "message_email">Email: <span>*</span> <br><input type = "text" name = "message_email" value = "<?php echo esc_attr($_POST['message_email']); ?>"></label></p>
                  <p><label for = "message_text">Message: <span>*</span> <br><textarea type = "text" name = "message_text"><?php echo esc_textarea($_POST['message_text']); ?></textarea></label></p>
                  <input type = "hidden" name = "submitted" value = "1">
                  <p><input type = "submit"></p>
                </form>
              </div>


            </div><!-- .entry-content -->

          </article><!-- #post -->

      <?php endwhile; // end of the loop. ?>

    </div><!-- #content -->
  </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

PHPMailer, вероятно, немного поможет. github.com/PHPMailer/PHPMailer

Matthew Goheen 21.06.2018 17:14

Будет ли оно отправлено на тот же адрес электронной почты? или адрес электронной почты будет каждый раз отличаться в зависимости от пользователя?

Ibrahim Hafiji 21.06.2018 17:21

на тот же адрес электронной почты

Esteban Torres 21.06.2018 19:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
134
2

Ответы 2

Как заявил @Matthew Goheen; PHPMailer очень поможет. Вам понадобится html-форма с кнопкой:

<form action = "phpmailingscript.php" method = "POST">
    <input type = "text" name = "information"></input>
    <button type = "submit">Submit</button>
</form>

эта форма отправит данные формы в файл phpmailingscript.php. Чтобы получить доступ к этой информации из скрипта php:

<?php   
if (isset($_POST['information']){
    $information = $_POST['information'];
}

затем вам нужно будет реализовать phpmailer для отправки электронной почты

Сначала вам нужно будет создать html-форму, которая может принимать данные, введенные пользователем, и отправлять их через POST в файл PHP. (См. Ответ Исаака).

Сначала проверьте функциональность публикации ваших данных на другой странице и вывода всех переменных, чтобы убедиться, что вы можете увидеть их на следующей странице. Например, в коде Исаака он назвал файл, в который будут отправлены данные, «phpmailingscript.php».

После успешной публикации данных в "phpmailingscript.php" используйте PHPMailer отправить почту.

Ниже приведен пример кода, который я написал для работы и отлично работает. Возможно, придется внести некоторые изменения в соответствии с вашими требованиями, но они должны дать вам хорошую отправную точку. $ Mail = new PHPMailer ();

  $message_header = "This is the message header\n;

  $message_footer = "This is the message footer";


  // Email FILE

  $filename = "you can define an attachment name here. delete this if not needed";
  $file_to_attach = "enter/the/filepath/to/the/attachment/here";


  $message_body = "This is the body of the message";
  $message = $message_header.$message_body.$message_footer;

  //you can change this to anything
  $mail->addReplyTo("[email protected]");
  $mail->From          = "[email protected]";
  $mail->FromName      = "[email protected]";
  $mail->Sender        = "[email protected]";



  /add the email address here
  // Add a BCC recipient, copy and paste the below line for multiple recepients
  $mail->AddBCC( "[email protected]" );
  $mail->AddBCC( "[email protected]" );

  // Set email format to plain text
  $mail->IsHTML( false );                                

  $mail->Subject = "Enter the subject of the message";
  $mail->Body    = $message;

  //add the attachment from above. 
  //delete if not needed
  $mail->AddAttachment( $file_to_attach, $filename );      

  $mail->send();

Другие вопросы по теме