• Как пофиксить баг с выводом первого значения из input?

    @DooX
    А можно эту игруху замутить и без php а JS и использовать локалстор, смысл?? только если что то нужно хранить историю действий.
    а если это сетевая игра, то тогда есть такая штука как вебсокет и тогда все эти конструкции из иф не нужны

    делаешь просто открываешь соеденение вебсокет , в этой сессии ты создаешь массив и при каждом отправлении ты вначале полученое слово:
    1. приводишь к общему регистру
    пример:
    $wordsArray = [города]
    $wordToSearch = "город";
    $lowercaseWordToSearch = strtolower($wordToSearch);
    
    $minSimilarity = 80; // Процент сходства, который считается достаточным так как человек же мог ошибиться в названии города, и ещё бы я составил бы массив сокращенных названий городов. слово питер, санкт-петербург, ёбург и т д  
    foreach ($wordsArray as $word) {
        similar_text($word, $wordToSearch, $similarity);
    
        if ($similarity >= $minSimilarity) {
            echo "Город такой уже назвали: $word\n";
            break;
        }
    }
    Потом уже ты запускаешь проверку
    $firstLetter = substr($wordToSearch, 0, 1);
    или ещё короче
    $firstLetter = $wordToSearch[0];
    получаешь последнее слово(город) в массиве
    $lastElement = end($wordsArray);
    $lastLetter = $lastElement[strlen($lastElement) - 1];
    ну и сравниваешь
    Ответ написан
    Комментировать
  • Как ускорить процесс загрузки файлов в PHP?

    @DooX
    Очень интересно. Кто то бы написал что-то плохое. Но я помню себя так лет 5 назад так что!

    по физике php и судя по тому что я вижу html ты отправляешь сразу несколько файлов. а может быть у тебя ещё репитер стоит и ты шлешь больше двух. Но ты делаешь один канал связи и шлешь в порядки очереди эти файлы пока они загрузятся все форма висит. ТАк как php не асинхронный.
    1. это не как не решить, просто визуально js показывай что файлы грузятся.
    2. Используй ajax и отправляешь при клике в цикле каждый файл отдельно но не ожидая загрузки первого а сразу открываешь несколько соиденений с сервером и грузишь (сокращая время загрузки на 30-60%) просто они идут параллельно. так делают и на майле и яндексе ит д и т п.
    2.1. А можно вообще намутить так:
    создаешь на сервере ендпоинт допустим pre_upload.php
    Повесить евент на input file как только он изменился ты делаешь сразу загрузку асинхронно на сервер вызывая pre_upload.php , pre_upload.php вернет тебе то что ты там настроишь, допустим загрузку во временную папку и возврат эксклюзивное имя файла.
    Пока идет загрузка файла ты на фронте делаешь анимацию загрузки и как промис вернул положительным ты в input hidden записываешь имя файла.

    тем самым юзер видит что что то происходит и может в форме сразу же выбрать несколько файлов. в момент нажатия загрузить ты по факту ничего не грузишь а тупо отправляешь на file-upload.php массив из имен файлов
    там скрипт проверяет папку временной загрузки находит эти файлы и перемещает на постоянное место.

    что в итоге мы получаем? Юзер видит какие то либо действия, и в момент нажатия кнопки отправить по факту уже все загружено и складывается впечатление что прошли секунды.

    если Юзер передумал грузить какой то либо файл он нажал удалить файл и ты опять удаляешь из временой папки файл.
    3. На сервере настрой keep-alive.
    4. upload_max_filesize и post_max_size для пыхи
    5. gzip

    Так же ещё сервисы большие юзают CDN, если понимаешь принцип то тут ясно почему у них кажется что быстрее все грузится.
    Удачи в покорении вершин!
    Ответ написан
    Комментировать
  • Написал код чтобы он сверял с бд. Если файл не существует в бд он удаляется с хостинга?

    @DooX
    // Сброс указателя результатов запроса перед новой итерацией
        $result->data_seek(0);


    Привет. При каждой итерации цикла foreach он сбрасывает указатель результатов запроса $result->data_seek(0), что приводит к повторной обработке всех строк результата запроса. Это приводит к удалению всех файлов, так как они поочередно не находятся в базе данных на каждой итерации.

    Попробуй по другому.

    // Параметры подключения к базе данных
    $servername = "localhost";
    $username = "username";
    $password = "password";
    $dbname = "username";
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Проверка подключения к базе данных
    if ($conn->connect_error) {
        die("Ошибка подключения к базе данных: " . $conn->connect_error);
    }
    
    // Выполнение запроса к базе данных для получения списка всех файлов
    $sql = "SELECT img_images FROM img_ads";
    $result = $conn->query($sql);
    
    // Получение списка файлов из базы данных
    $filesInDatabase = array();
    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            $filesInDatabase[] = $row['img_images'];
        }
    }
    
    // Получение списка файлов в папке
    $imagesFolder = "media/images/";
    $files = glob($imagesFolder . "*.webp");
    
    // Проход по каждому файлу в папке
    foreach ($files as $file) {
        // Проверка, существует ли файл в базе данных
        $filename = basename($file);
    
        if (!in_array($filename, $filesInDatabase)) {
            if (unlink($file)) {
                echo "Файл удален: " . $file . "<br>";
                // Запись результатов в файл log.txt
                file_put_contents("log/log.txt", "Удален файл: " . $file . PHP_EOL, FILE_APPEND);
            } else {
                echo "Не удалось удалить файл: " . $file . "<br>";
                // Запись результатов в файл log.txt
                file_put_contents("log/log.txt", "Не удалось удалить файл: " . $file . PHP_EOL, FILE_APPEND);
            }
        }
    }
    
    // Закрытие подключения к базе данных
    $conn->close();
    Ответ написан
  • Срабатывание запроса в Mysql при клике на кнопку, ajax?

    @DooX
    1. В вашем коде не вижу ajax.
    2. Видно что вы юзаете jq старый добрый.
    3. Все что в php отрабатывает только на стороне сервера по. Генерации страницы и отдачи ее клиенту.
    Не буду умничать, дам просто совет.
    При клике на кнопку, делайте релоад страницы)))) тогда уж точно все будет работать.

    А если серьезно. Вы на сервере должны создать ендпоинт при при вызове которого будет запускаться нужный вам алгоритм и возвращать вам что то нужное.
    А вы уже получая через ajax используете эти данные по своему усмотрению.
    Ответ написан
    Комментировать
  • Как сделать фильтрацию товаров по категориям?

    @DooX
    Тут все от вас зависит. Или плагин используете.
    Или если знаете jq или js то у wp или wc есть endpoint для ajax запроса. И тогда все можно сделать.
    Ответ написан
  • Как добавить такой треугольник к странице?

    @DooX
    Или псевдоклассом before рисуешь блочок и трансформируешь
    Ответ написан
    Комментировать
  • Как сделать сортировку по произвольному полю Wordpress ACF?

    @DooX
    все верно указал предыдущий человек.
    $wp_query = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'directory_listings',
    'meta_key' => 'название_type',
    'orderby' => 'meta_value',
    ));

    но для начала через вардамп бы получил бы все метатермины поста чтоб реально понять как они заносяться в объект
    Ответ написан
    Комментировать
  • Как задать разное к-во товаров в ряд woocommerce на разных экранах?

    @DooX
    Врятли, так как размер экрана сервер должен получить от клиента.
    а это динамическая история.
    В твоём случае не делал бы геморой, а выводил бы на экран товары через допустим ajax запрос.
    И в случае после загрузки документа js получает ширину экрана и взависимости от ширины отправляет ajax, который аргументом говорит сколько вернуть товаров. ну и все

    ну или сказал бы дизайнеру пусть сам мучается дальше так.
    Ответ написан
    Комментировать
  • Как указать путь к файлу в скрипте js?

    @DooX
    если вы работаете в WP? То зачем делать отдельный файл обработчик ajax запроса.
    Когда можно в function.php темы прописать нужный код и уже стандартным способом обращаться.
    Ответ написан
    Комментировать
  • Как в боковом меню выводить текущие подкатегории?

    @DooX
    Вероятно есть, но нужно искать! проще самому написать.

    на странице категории получить его id
    дальше используя https://wp-kama.ru/function/get_categories
    можно в аргумент родитель вставить полученный id и будет выводить только дочернии категории
    Ответ написан
    Комментировать
  • Разделение постов в результатах поиска Wordpress?

    @DooX
    Добрый день.
    По идеи, в цикл while передаётся объект результата поиска и в нем посты.
    внутри цикла значит автоматом можно получить айди категории. get_the_category()
    а дальше в зависимости от номера категории строите DOM но должны понимать, что это заплатка.
    яб добавил какой ни будь маркер к категориям и от него плясал бы.
    или если нужно стилизовать то можно в результат в контейнер вывести body_class() классы, поидеи он будет пихать туда слаг категории.
    Ответ написан
  • Как удалить кнопку на сайте wordpress?

    @DooX
    Скрин header.php покажите. или смотрите последовательность.
    <div class="header-main">
    <div class="row">
    тут кнопка и поиск
    </div>
    потом меню обычно функцией темы вставляется
    <div>
    Ответ написан
    Комментировать
  • Как сделать что бы wooconerce считал десятые при выборе количества товара?

    @DooX
    ну во первых!
    все что обведено это input
    который имеет тип числовой
    чтоб можно было вводить ручками числа

    если вы хотите чтоб посетитель мог использовать стрелки вверх и вниз то присмотритесь в сторону
    атрибута step="any"
    в нем вы число шага указываем. если указать 0.1 то при клике вверх он будет плюсовать к числу 0.1
    далее по аналогии.
    потом нужно установить плагин для вуу который меняет тип этого поля
    или ручками проследить если где фильтр который значение с этого поля меняет на int даже если стоит float и данный код поменять
    Ответ написан
    1 комментарий
  • Не работает форма обратной связи в PrestaShop, что мне делать?

    @DooX
    PHP Fatal error: require_once() - если перевести данную штуку то видно всё.
    что функция вставки файла в код не отрабатывает.
    тут нужно смотреть в каком файле вызывается эта функция.
    так же смотреть адрес этого файла.
    и адрес вызываемого.
    вообще этот кусок кода опубликуй
    Ответ написан
    Комментировать
  • Как вывести посты используя фильтр через Advanced Custom Fields?

    @DooX
    Acf упрощённый вид стандартных полей для записи и т д. Метатермины вроде как в базе они.
    Так вот на сайте офф acf есть даже инструкция как фильтровать по этим полям.
    Или смотрите фильтр полей по кастумным полям.
    Так же не забывайте что если вы юзаете фильтр по полям кастумным то значит нужно отслеживать что они были наполнены.

    // args
    $args = array(
    	'numberposts'	=> -1,
    	'post_type'		=> 'event',
    	'meta_key'		=> 'location',
    	'meta_value'	=> 'Melbourne'
    );
    
    
    // query
    $the_query = new WP_Query( $args )
    Ответ написан
    Комментировать
  • Почему возникает ошибка 500 только в debug false?

    @DooX
    надо смотреть логи. это однозначно.

    если через гет идёт запрос, то я обычно не тестирую на фронте, а прям через admin-ajax.php там тестирую, если и там выдаст 500, то 100% в самой вызываемой функции ошибка, что то не передаётся и надо смотреть что именно.
    Ответ написан
    Комментировать
  • Как реализовать фильтр вывода с изменением Title и Description?

    @DooX
    вот на счет коротких не думаю что будет легко сделать на автомате.
    а все остальное wp_query и производные...

    или фильтровать по кастумным полям.
    тоесть создать для записи кастумное поле куда будет вставляться короткие и т д

    или использовать метки, и это самый легкий способ.
    Ответ написан
  • Почему Wordpress удаляет параграфы?

    @DooX
    тут все зависит чем этот код выводится, одна функция чистит всё, а другая нет.
    копайте в сторону the_content
    Ответ написан
    Комментировать