Skip to content

Instantly share code, notes, and snippets.

@karki-dennis
Last active May 2, 2022 06:15
Show Gist options
  • Save karki-dennis/0a8c66f494ee8b0f34c7f02ba76d1119 to your computer and use it in GitHub Desktop.
Save karki-dennis/0a8c66f494ee8b0f34c7f02ba76d1119 to your computer and use it in GitHub Desktop.
Send mail using ajax WP
<?php
add_action( 'wp_ajax_send_email', 'callback_send_email' );
add_action( 'wp_ajax_nopriv_send_email', 'callback_send_email' );
function callback_send_email() {
$forms = 'forms@xyz.com';
$name = $_REQUEST['name'];
$email_add = $_REQUEST['email_add'];
$business = $_REQUEST['business'];
$business_address = $_REQUEST['business_address'];
$url = $_REQUEST['url'];
$facebook_url = $_REQUEST['facebook_url'];
$source = $_REQUEST['business'];
$subject = "[XYZ] Host Interest Form";
$email_body = "XYZ FORM<br><br>" .
"Your name: $name. <br>" .
"Your email: $email_add. <br>" .
"Name of your business/operation: $business. <br>" .
"Your address: $business_address. <br>" .
"Your website address: $url. <br>" .
"Your Facebook address: $facebook_url. <br>" .
"How did you hear about Harvest Hosts?: $source. <br>";
$to = "team@XYZ.com";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: $business <$forms> \r\n";
$headers .= "Reply-To: $email_add \r\n";
$mail = mail( $to, $subject, $email_body, $headers );
}
?>
<script>
jQuery(document).ready(function ($) {
//Validate the form filed in next button click.
$('#btn-validate').click(function (e) {
var first_name = $('#input_name').val();
var email = $('#input_email').val();
var business_add = $('#business').val();
$(".error").remove();
if (first_name.length < 1) {
$('#input_name').after('<span class="error">This field is required</span>');
}
if (business_add.length < 1) {
$('#business').after('<span class="error">This field is required</span>');
}
if (email.length < 1) {
$('#input_email').after('<span class="error">This field is required</span>');
} else {
var regExp = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var validEmail = regExp.test(email);
if (!validEmail) {
$('#input_email').after('<span class="error">Enter a valid email</span>');
}
}
var errorClass = $(".first-form").find('.error');
if (errorClass.length < 1) {
$(".first-form").hide();
$(".second-form").addClass('visible');
$('#become-host .host-heading').text('A Few More Questions');
$('#host-form__sub-heading p').text('About Your Business');
var name = jQuery('#input_name').val();
var email_add = jQuery('#input_email').val();
var business = jQuery('#business').val();
var business_address = jQuery('#business-address').val();
var url = jQuery('#url').val();
var facebook_url = jQuery('#facebook-url').val();
var source = jQuery('#source').val();
jQuery.ajax({
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
type: "POST",
cache: false,
data: {
action: 'send_email',
name: name,
email_add: email_add,
business: business,
business_address: business_address,
url: url,
facebook_url: facebook_url,
source: source
},
success: function (res) {
console.log("Email Sent.");
}
});
}
});
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment