Before posting this post I have browsed these resources:
On form submission how to send 2 email to different users
https://stackoverflow.com/questions/17157685/php-redirect-to-another-page-after-form-submit
https://stackoverflow.com/questions/10927682/how-to-send-e-mail-from-form-in-wordpress
How to send an email using wp_mail and using more than one BCC in the header
An external URL also.
I have a file in plugin by the name of shortcode.php. It has a form and on top of that I have written this code:
add_action('wp_ajax_nopriv_submit_contact_form', 'submit_visa_form');
function submit_visa_form() {
if(isset($_POST['submit'])) {
$email=$_POST['email'];
$firstname=$_POST['firstname'];
$familyname=$_POST['familyname'];
$other_names=$_POST['other_names'];
$dob_day=$_POST['dob_day'];
$dob_month=$_POST['dob_month'];
$dob_year=$_POST['dob_year'];
$city_of_birth=$_POST['city_of_birth'];
$country_of_birth=$_POST['country_of_birth'];
$gender=$_POST['gender'];
$form_message .= "First Name: ".clean_string($firstname)."\n";
$form_message .= "Family Name: ".clean_string($familyname)."\n";
$form_message .= "Email: ".clean_string($email)."\n";
$form_message .= "Other Name ".clean_string($other_names)."\n";
$form_message .= "DOB: ".clean_string($dob_day)."\n";
$form_message .= "DOM: ".clean_string($dob_month)."\n";
$form_message .= "DOY: ".clean_string($dob_year)."\n";
$form_message .= "COB: ".clean_string($city_of_birth)."\n";
$form_message .= "COOB: ".clean_string($country_of_birth)."\n";
$form_message .= "GENDER: ".clean_string($gender)."\n";
$email_to = "[email protected]";
$subject = "Form submitted by $email";
$headers = 'From: '. $firstname .' <'. $email .'>' . "\r\n";
if(wp_mail($email_to,$subject,$form_message,$headers)) {
echo json_encode(array("result"=>"complete"));
} else {
echo json_encode(array("result"=>"mail_error"));
var_dump($GLOBALS['phpmailer']->ErrorInfo);
}
wp_die();
}
}
in the form action I am using this currently →
action="<?php the_permalink(); ?>"
For reference live form can be seen here.
But ultimately I am not receiving the email after the form is filled.
what troubleshooting steps should I follow?
In the external link that I have given the form action is :
action="<?php echo admin_url('admin-ajax.php'); ?>"
when I used the abive URL it take me to admin page and gives this →
"0"
which one is the correct one?
Has someone faced the same issue while sending a custom form over the email? Is there a way to check what is causing the error?