У меня есть плагин, который отправляет электронное письмо при нажатии кнопки. Известно, что с формой нет проблем (поскольку данные отлично сохраняются в БД), что может быть неправильным в этом фрагменте кода, что он не может отправить электронное письмо ни клиенту, ни администратору.
Если нет проблем с формой, может быть проблема с SMTP
, что маловероятно, потому что контактная форма 7 отлично отправляет почту как клиенту, так и администратору.
Функция wte_enquiry_send_mail()
- это отправка электронной почты с использованием функции wp_mail()
.
function wte_enquiry_send_mail()
{
$email = sanitize_email( $_POST['enquiry_email'] );
$wp_travel_engine_settings = get_option( 'wp_travel_engine_settings',true );
$name = esc_attr( $_POST['enquiry_name'] );
$country = isset( $_POST['enquiry_country'] ) ? esc_attr( $_POST['enquiry_country'] ):'N/A';
$contact = esc_attr( $_POST['enquiry_contact'] );
$adult = isset( $_POST['enquiry_adult'] ) ? esc_attr( $_POST['enquiry_adult'] ):'N/A';
$children = isset( $_POST['enquiry_children'] ) ? esc_attr( $_POST['enquiry_children'] ):'N/A';
$message1 = esc_attr( $_POST['enquiry_message'] );
$postid = get_post( $_POST['enquiry_pid'] );
$slug = $postid->post_name;
$url = '<a href='.esc_url( get_permalink( $postid ) ).'>'.esc_attr( $slug ).'</a>';
$subject = isset( $wp_travel_engine_settings['query_subject'] ) ? esc_attr( $wp_travel_engine_settings['query_subject'] ):'Enquiry received';
$admin_email = get_option ('admin_email');
$to = sanitize_email($admin_email);
$email_from = $name.'<'.$email.'>';
$headers[] = 'From: '.$name.' <'.$admin_email .'>';
$headers[] = 'Reply-To: '.$name.' <'.$email .'>';
$message = __("Name: ","wp-travel-engine"). $name.'<br/>';
$message.= __("Country: ","wp-travel-engine"). $country.'<br/>';
$message.= __("Trip: ",'wp-travel-engine'). $url.'<br/>';
$message.= __("Email: ","wp-travel-engine"). $email.'<br/>';
$message.= __("Contact: ",'wp-travel-engine'). $contact.'<br/>';
$message.= __("Adult: ","wp-travel-engine"). $adult.'<br/>';
$message.= __("Children: ",'wp-travel-engine'). $children.'<br/>';
$message.= __("Message: ",'wp-travel-engine'). $message1.'<br/>';
add_filter('wp_mail_content_type', create_function('', 'return "text/html"; '));
if ( strpos( $wp_travel_engine_settings['email']['emails'], ',') !== false ) {
$wp_travel_engine_settings['email']['emails'] = str_replace(' ', '', $wp_travel_engine_settings['email']['emails']);
$admin_emails = explode( ',', $wp_travel_engine_settings['email']['emails'] );
foreach ( $admin_emails as $key => $value ) {
$admin_sent = wp_mail( $value, $subject, $message, $headers );
}
}
else{
$wp_travel_engine_settings['email']['emails'] = str_replace(' ', '', $wp_travel_engine_settings['email']['emails']);
$admin_sent = wp_mail( $to, $subject, $message, $headers );
}
Я ожидаю, что автоматическое письмо будет отправлено как клиенту, так и администратору после заполнения формы.