Mr Jonny Wood
Mr Jonny Wood

Reputation: 3854

Call PHP Function before loading with jQuery

This is a bit of a follow on from this question/answer: https://stackoverflow.com/a/4152528/348922

I'm simply not sure how to apply this to my situation (if it's at all possible).

I have a container div that when a button is clicked a file is loaded into the div via jquery:

var root = location.protocol + '//' + location.host;

$(".button-book").click(function(e) {
    e.preventDefault();
    $('#container').load(root+'/loaded-file.php');
});

Fine. BUT that file has a number of text strings that I need wrapped in php in order to hook into them for translation purposes (using WPML plugin for Wordpress):

<?php _e('Arrival Date', 'mywptheme'); ?>
<?php _e("Day", 'mywptheme'); ?>
<?php _e("Month", 'mywptheme'); ?>
<?php _e("Year", 'mywptheme'); ?>
// etc...

Obviously this doesn't work when the file is loaded dynamically. Is it at all possible or am I completely wasting my time?

Upvotes: 0

Views: 83

Answers (1)

Steve
Steve

Reputation: 20469

Your issue is that _e(...) is a wordpress function, so when this file (loaded-file.php) is executed outside of wordress, it does not work. Its not actually anything to do with jquery - if you visit the file directly in your browser it wont work either.

Simply add the following to the top of loaded-file.php:

require($_SERVER['DOCUMENT_ROOT'].'/blog/wp-blog-header.php');

Adjust for your actual wordress location, in the above case wordpress is in domain.com/blog/

Upvotes: 1

Related Questions