У вас список большой и постоянно меняется? Или нифига не меняется и небольшое количество IP?
Если список предполагается, что будет меняться или большое количество IP, тогда заносите в файл в формате
175.40.0
58.68.0
27.248.0
49.136.0
101.208.0
Если третья цифра всегда 0, то можно в формате
175.40
58.68
поскольку вам нужно только совпадение первых двух.
Как то так
Пишем функцию
function GetTextbyIP() { $ipaddr = $_SERVER['REMOTE_ADDR']; $exp_ip = explode(".", $ipaddr); $ip1 = $exp_ip[0]; $ip2 = $exp_ip[1]; $fl = FILE('ips.txt'); for($i=0; $i<count($fl); $i++) { $exp_file = explode(".", $fl[$i]); if($exp_file[0] == $ip1 && $exp_file[1] == $ip2) { $fou = TRUE; break;} } if($fou) return TRUE; else return FALSE; }
Ну и где нить проверяем где надо.
if(GetTextbyIP()) echo "нужный текст"; else echo "обычный текст";
Update
Заметил, что у вас по второй цифре возможен диапазон. Ну тогда допишите в файл лишние пару строк.
49.136.
49.137.
49.138.
Или адаптировать код под диапазон
С опенкартом попроще будет в плане найти исполнителя под свой бюджет из-за более известной системы
Из ВП делать доску объявлений - не для этого движок. Такие же извращения как и WooCommerce.
Ну если вариант с покупкой лицензии совсем не вариант, а сайт у ру хостера и слезть с дле тоже не вариант, то остается только cloudflare и такой то матери )))
Берете бесплатный вариант от cloudflare, обновляете днс. В истории домена у вас будет
днс1, днс2 - вашего хостера, затем днс1, днс2 - от клаудфларе
Как только сайт заработал на днс от клауда, меняете хостинг, в админке клауда ставите днс нового хостера.
А в истории домена остаются записи днс вашего хостера и затем днс клауд.
Не знаю насколько в вашем случае этот вариант рабочий, чисто теория
И, если дле узнал про ваш сайт, то вероятно что ваш же сайт правообладателям о себе и сообщил. Или через систему обновлений или еще какой функцией. Не в ручную же они сайты со своей cms ищут ))
У вас где то в коде шелл конструктор, который инициализируется вместе с друпалом.
Нужно рыть и искать. Поднимать логи, доступ в админку закройте через htaccess, хотя при наличии шелла внутри сайта, это вряд ли поможет.
Файлы лучше не просто удалять, а копии делать, чтобы понять для каких целей взлом сайта. Или там связка будет или шелл под спам или слив трафа - от этого уже плясать дальше.
Вы везде по сайту в query добавляете не экранируемые данные? 😮
Живой проект? С такой скоростью скоро увидим вас в ветке - сайт заражен, что делать ))
Используйте хотя бы mysql_real_escape_string до передачи параметров в запрос.
<?php
function isUser($login = '', $pass = '') { $login = mysql_real_escape_string($login, $link_to_db_connection); $password = mysql_real_escape_string($pass, $link_to_db_connection); $query = mysql_query("select id from users where login='".$login."' and password='".$password."'"); if(mysql_num_rows($query) > 0) return true; else return false; }
В коде
if(isUser) { ваш код сессии, пишите в сессию ид и например хеш, а не пароль в чистом виде }
В коде, что юзер авторизован проверка наличия хеша в сессии и его соответствие ид пользователя.
Как то так, если я правильно понял идею автора
Попробуйте использовать параметр JSON_UNESCAPED_UNICODE
или как вариант, данные ключей кодировать в base64, а потом уже весь массив в json, а на выходе уже наоборот.
Коли базу трогать нельзя
Я один не понял, что значит старых позиций карточек товаров?
Речь о том, что у старых, когда то добавленных товаров, мета не меняются, а у новых, заведенных через админку, недавно все отлично меняется? Так?
Судя по названию параметра - эти фильтры у вас стороннее решение какое то к WooCommerce. В этом случае прямиком в mod_rewrite и htaccess
Это все равно, что в мерседесе в двери сделать еще одну дверку для декоративной собачки 🤪😂 Я про то, что не вижу причин зацикливаться на WooCommerce
У вас тогда еще проще, раз сохранение в БД даже не нужно и вывод на сайте объявлений тоже.
Форма заказа в любую страницу с валидацией и интеграцией платежного шлюза, ну и отправка на мыло редактора или админа или куда там еще нужно