Reputation: 343
<script language=”javascript”>
if (country_code==’US’)
{
document.write("[adrotate banner="1"]");
}
else
{
document.write("[adrotate banner="2"]");
}
</script>
[adrotate banner="x"]
are wordpress shortcodes used for the Adrotate plugin
This script doesen't work because somehow outputting [adrotate banner="x"]
is not possible?
It uses the globally saved variable country_code
.
I've tried with both "
and '
(and the inner using one of them and the outer the other), but with no luck.
Any way to work around this and still use JS?
Upvotes: 1
Views: 10177
Reputation: 11
Try to use ` backtick (Template literals) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals?retiredLocale=it
<script language=”javascript”>
var option1 = `[adrotate banner="1"]`;
var option2 = `[adrotate banner="2"]`;
if (country_code=='US') {
document.write(option1);
} else {
document.write(option2);
}
</script>
also work with php code (workaround for single and double quote) :
<script language=”javascript”>
var option1 = `<?php echo do_shortcode('[adrotate banner="1"]'); ?>`;
var option2 = `<?php echo do_shortcode('[adrotate banner="2"]'); ?>`;
if (country_code=='US') {
document.write(option1);
} else {
document.write(option2);
}
</script>
Upvotes: 1
Reputation: 27599
Shortcodes only work server side. If you want to work around it, you can submit the value using AJAX, call do_shortcode()
on it in your PHP, return the results as JSON, and then write to the page.
http://codex.wordpress.org/Function_Reference/do_shortcode
As a side note, your example has a syntax error because you have double quotes inside your string, since it won't process as a shortcode. You either need to escape it or use single quotes.
Upvotes: 3