#javascript #prestashop #smarty
#javascript #prestashop #умный
Вопрос:
Я использую этот код для отображения div только для клиентов из Великобритании, и он работает через встроенный конструктор страниц — prestashop.
К сожалению, я не могу заставить его работать в файле tpl для адресной формы. В принципе, мне нужен текст под формой адреса.
<div class="hide GB">text</div>
<script type="text/javascript">
{literal}
$.get("https://freegeoip.app/json/", function (response) {
document.getElementsByClassName(response.country_code)[0].style.display = "block";
}, "jsonp");
{/literal}
</script>
Я также пробовал этот:
{literal}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>$.ajax("https://freegeoip.app/json/")
.done(function (e) {
$('.hide').eq(e.country_code === 'GB' ? 0 : 1).show();
});</script>
<div class="hide">text</div>
<div id="country_code"></div>
{/literal}
Они оба работают в скрипте. Они оба работают в конструкторе страниц при добавлении в виде необработанного html (без буквенных тегов ofc)
Однако по какой-то причине я не могу заставить их работать в файле adress-form.tpl. Текст просто не будет отображаться. Однако код страны отображается там, где я этого хочу. Это просто текст, который не используется. Есть идеи? С уважением
Ответ №1:
{literal}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div id="GB">text</div>
<script>$.get("https://freegeoip.app/json/", function (response) {
$("#country_code").html(response.country_code);
if(response.country_code=='GB'){
document.getElementById(response.country_code).style.display = "block";
}
}, "jsonp");</script>
{/literal}
Я на самом деле решил это с помощью этого кода.
С точки зрения CSS:
#GB{display:none;}