Я - абсолютный новичок, когда дело доходит до php и js, и тянуло мои волосы, пытаясь найти работоспособное решение для следующего требования.Как предотвратить/отключить <a href> на основе данных геоинформации
У меня есть расширение подписки Joomla с кнопкой «подписаться» с помощью тега href.
То, что я хотел бы достичь, основан на местоположении геоинформации, посетители, просматривающие из-за пределов Великобритании, лишены доступа к действию нажатия кнопки, но с сообщением, объясняющим почему.
До сих пор все, что я в состоянии достигнуть, кнопка отключена, которая до сих пор кликабельны ...
Маленький-бит я был в состоянии достигнуть до сих пор находится ниже. Надеюсь, кто-то может мне помочь.
<?php
// Added Geo IP Location Tracking
$user_ip = getenv('REMOTE_ADDR');
// http://www.geoplugin.net/php.gp?ip=$user_ip
$geo = unserialize(file_get_contents("http://www.geoplugin.net/php.gp?ip=$user_ip"));
$city = $geo["geoplugin_city"];
$region = $geo["geoplugin_regionName"];
$country = $geo["geoplugin_countryName"];
$countryCode = $geo["geoplugin_countryCode"];
}
?>
<?php
if ($countryCode == 'CH') {
echo "Unfortunately China is not covered by our service!"."<br>";
}
?>
<p><a class="btn btn-large btn-primary" <?php if ($countryCode == 'CH'){ ?> disabled <?php } ?> href="<?php echo JRoute::_('index.php?option=com_axisubs&view=subscribe&plan='.$item->slug); ?>">
<i class="icon-ok"></i>
<?php if ($item->hasTrial()) : ?>
<?php echo JText::_('COM_AXISUBS_START_TRIAL'); ?>
<?php else: ?>
<?php echo JText::_('COM_AXISUBS_SUBSCRIBE_NOW'); ?>
<?php endif; ?>
</a>
Это великолепно! Как я могу заблокировать каждую страну, кроме Великобритании, а затем отобразить одно и то же сообщение. Спасибо Crozet – Wiggins
спасибо за это предложение. Поле предупреждения полезно и фактически лучше, чем скрытие фактической кнопки. Может ли кто-то просто подтвердить, что мне нужно будет добавить каждый $ countryCode, чтобы блокировать их по одному за раз? – Wiggins
Если у вас есть много стран для блокировки, было бы лучше заменить '$ countryCode == 'CH'' функцией' isBlocked() ', которая вернет true или false или' in_array ($ countryCode, $ blockedCountryCodes) ' где $ countryCode is '['CH', 'UK', 'DE']' (список заблокированных кодов стран) см. мое редактирование –