I use this jquery-ajax script to send email:
$.ajax({
url: process.php,
type: "POST",
data: data,
cache: false,
...
in url
I call the php file that sends email, but ajax get it only if I specify the full path:
url: "http://www.domain.com/wp-content/themes/site_theme/templates/process.php",
but I have to use a syntax like this:
url: "../../templates/process.php",
or using a variable to declare in the html header/footer
Html
<script type="text/javascript">
var urlMail = '<?php bloginfo('template_url'); ?>/templates/process.php';
</script>
Script
url: "../../templates/process.php",
but with both the above cases the browser console retrieves this error:
POST http://www.domain.com/templates/process.php 404 Not Found 1.56s
Where am I wrong?
That’s not the way to implement ajax in wordpress. All ajax request should be made to
admin-ajax.php
.In your template file:
In your js:
in your functions.php:
Read about
Ajax in Plugins
.I would be recommended to you use system like Registry for save all “global” values in a one place.
Registry design pattern
There is my small jQuery plugin if this is may be interesting to you. GitHub rep
And to get value from the Registry you must use $.Registry.get(‘urlMail’);
I’ve solved using the code provided by RRikesh but replacing
with