Задать вопрос
  • Как лучше реализовать отправку писем с задержкой в пару часов?

    Benderm, ну я о них же. Варианты зависят от того, какую платформу вы используете. Для YII не подскажу что лучше/удобнее - сам работаю с WordPress / Laravel в основном, немного Symfony. Думаю стоит смотреть в сторону RabbitMQ.
  • Как подключить стили в WordPress с GET запросом?

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

    Кстати да, я об этом даже не подумал. Должно же работать. Хз в таком случае, явно в коде тогда проблема. Ну. в любом случае, подобный метод сам по себе не очень ок, так что в другую сторону копать надо.
  • Как подключить стили в WordPress с GET запросом?

    Роман Вопроскин, Во-первых, стили - не самая большая проблема и никогда ими не были. Основной стиль темы в голову документа, как обычно. Второстепенные - в шапке или подвале с async или defer (тут смотрите по ситуации, что они делают). В идеале из основного можно извлечь critical css и запихнуть в html (в head), но это не так часто нужно в реальности - не дает прям сильного прироста по производительности. А вот что даст реальный мега-заметный прирост, так это использование протокола HTTP/2, настройки веб-сервера максимально быстро отдавать статику и, конечно же, адекватные заголовки кеширования для этих файлов.
  • Как подключить стили в WordPress с GET запросом?

    Роман Вопроскин, потому что WordPress обрабатывает эту строку по своему и в процессе делает ей explode по символу "?". Посмотрите код метода enqueue() класса WP_Dependencies (и другие связанные методы).

    А вообще, положа руку на сердце, выдавать стили динамикой и вообще поднимать для этого целый движок PHP и WordPress - крайне неэффективная мера и сомнительная практика. Вы "не туда оптимизируете", коллега :)
  • Как лучше реализовать отправку писем с задержкой в пару часов?

    Benderm, Вам прям вот такая поминутная точность действительно нужна? Имхо, интервал в 5 минут более чем точный. Вы же понимаете что в цепочке доставки письма к конечному клиенту еще есть ряд шагов и сервисов, каждый со своими задержками. Даже если вы в 14:17 отправили письмо клиенту, нет совершенно никакой гарантии, что оно придет ему в 14:17.
  • Стоит ли становиться fullstack?

    Сергей Горностаев, да, тут есть грань. Иметь понимание (а желательно минимально проходные навыки) по смежным технологиям - обязательно. Чем их больше и уровень лучше - тем, очевидно, больше пользы от такого разработчика. Но есть грань. За этой гранью если разработчик пытается понять тонкости этих смежных направлений, у него попросту начинается нехватка времени, и дальше - продвинулись в одном направлении, просели в другом. Грубо говоря, например для бекенд разработчика под веб нужно кроме серверного языка + БД как минимум понимать верстку (HTML/CSS), фронтенд-функциональность (Javascript, протокол HTTP(S), куки и тому подобное), основы девопс (файловые системы, сетевой стек, кеширование, bash/shell и тому подобные плюхи на сервере). Но уровень всего этого понимания совершенно не должен соответствовать уровню специализированного фронтендера или админа/девопса. Разбираться бекендеру в настройках TCP congestion control в linux kernel версий 2.* против версий 3.* совершенно не нужно - это уже к девопсу.
  • Как дать клиенту прямую ссылку на покупку через WooCommerce?

    Дмитрий,
    Интересное решение, спасибо. а вот эту фукнцию prefix_automatically_add_to_cart я вешаю получается куда?

    Вы невнимательны:
    add_action( 'template_redirect', 'prefix_automatically_add_to_cart' );

    Код висит на экнше template_redirect. Это оптимальный хук, в этот момент вы имеете доступ к данным в REQUEST (GET/POST), заголовки еще не отправлены. Определяете, есть ли запрос на автоматическое добавление в корзину (об этом в коде в комментарии написано), берете переданный ID товара ну и добавляете его в корзину, после чего делаете переадресацию туда же.

    на просмотр товара?

    Нет, вам нужно решить как вы будете формировать ссылку, которая будет автоматом добавлять в корзину, потом эту ссылку выводить где-то (в email отправлять или как там вам надо). При переходе по этой специализированной ссылке будет отрабаывать ваша логика (см. выше).

    ну я буду отдавать так, как он выглядит в админке в списке товаров.
    то есть .../product/testovyj-tovar/

    Вы шутите? Хотите чтобы ссылка на информацию о товаре автоматом миновала страницу товара и кидала на корзину? Я б за такое в монитор плюнул.
  • Как пользоваться сервис контейнером в своих классах?

    jazzus, ну почему же? Может вам тон комментариев не нравится, но по сути JhaoDa скорее прав, чем нет - в коде слегка бардак, в качестве обучающего материала такое выдавать не очень ок. Чтобы не быть голословным - вот пример где комментарий откровенно врет и не совпадает с сигнатурой метода. Впрочем, он тут вообще лишний - входящих параметров нет, возвращаемое значение указано в самой сигнатуре, а тело метода очевидно и само себя "документирует". Я уже молчу про разное оформление комментариев от класса к классу (и от метода к методу), об отсутствии какой-либо логики где комментарии есть, а где нет. Ну и naming conventions - отдельная песня. Почему метод, который возвращает ссылку на оплату строкой называется pay?
    /**
         * Get link to pay
         * @param $link
         * @return string
         */
        public function pay(): string
        {
            return (string)$this->paymentLink;
        }

    Это нюансы, на которые я лично закрыл бы глаза, если бы не ваша придирка к JhaoDa.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, 301й редирект тоже вариант. И в паре с canonical url в нижнем регистре должно по идее быть ок. Но что реально лучше для SEO - 301 или 404 - это уже спрашивайте у сеошников. Технически и то, и другое должно быть реализуемо.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, это совершенно разные уровни решения проблемы. Если в htaccess, за обработку запроса будет отвечать только сервер, и он решит вернуть ли 404. Это будет быстрее, ниже нагрузка. В PHP коде - это ж надо PHP поднять, фреймворк / CMS, и там на каком-то этапе посмотреть регистр и принять решение о возврате 404й / переадресации на страницу 404й ошибки. Тут вам решать. Я бы на уровне сервера делал, ибо он на это по идее способен, поднимать для этого PHP - лишнее. К тому же, если есть full page cache, то приложение может все равно либо не подниматься, либо по короткому циклу проходить, а значит ваш код может и не выполниться. Пробуйте на уровне htaccess
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    lamer350, на самом деле я считаю, что если CMS / ваш код передает canonical url то в дополнительных мерах нет необходимости. Впрочем, тут еще зависит и от настроек вебсервера. Насколько мне известно (но могу ошибаться), IIS не чувствителен к регистру, а вот Nginx и Apache - чувствительны. Не знаю деталей по Apache (избегаю его), но в Nginx можно указывать маски ~* для location и включать режим нечувствительности к регистру. Впрочем, везде это делать крайне не рекоммендуется из-за производительности. Чувствительность же, если она по умолчанию есть, должна приводить к тому, что сервер сам будет возвращать 404, и SEOшники будут довольны. Но это касается только физических урл, если же речь идет о ЧПУ, то тут же сервер (Apache / Nginx) просто передает запрошенный путь as is на бекенд, который уже решает что с ним делать - игнорировать регистр и возвращать 200, или возвращать 404. Думаю, можно регулярками заставить сервер определять верхний регистр и сразу возвращать 404, не передавая запрос на бекенд, но сам никогда подобны не заморачивался, поэтому это только теоретические рассуждения.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    Руслан, можно через htaccess, гуглите. Но как именно подсказать не смогу - к Апачу не прикасался (и не собираюсь) уже много лет.
  • Как убрать дубли страниц со строчными и заглавными буквами в URL в WordPress?

    lamer350, Согласно спецификации путь скорее чувствителен к регистру:

    6.2.2.1. Case Normalization

    For all URIs, the hexadecimal digits within a percent-encoding
    triplet (e.g., "%3a" versus "%3A") are case-insensitive and therefore
    should be normalized to use uppercase letters for the digits A-F.

    When a URI uses components of the generic syntax, the component
    syntax equivalence rules always apply; namely, that the scheme and
    host are case-insensitive and therefore should be normalized to
    lowercase. For example, the URI is
    equivalent to . The other generic syntax
    components are assumed to be case-sensitive unless specifically
    defined otherwise by the scheme
    (see Section 6.2.3).
  • Как изменить slug у custom post type в зависимости от языка?

    alex steel, Ну, во-первых "это надо для SEO" аргумент такой-себе. Горе-сеошнику, который требует сохранить старые корявые урлы посоветуйте пойти почитать матчасть. Делайте нормальную структуру, готовьте список необходимых редиректов и на уровне сервера их подключайте. Далее идете в консоль поисковика и контролируете обновление индекса. Робот придет, перейдет по 301му (постоянному) редиректу и обновит все ссылки в индексе. SEO-показатели в худшем случае просядут на короткое время (пока обновляется индекс), но быстро вернутся в норму.

    Во-вторых, поскольку SEO-шная проблема надуманная, перелопачивать движок из-за этого не является разумным изначально, потенциальных багов не избежать в дальнейшем. Не советую идти по этому пути. Через полгода вы сами или другой разраб, который придет после вас, скажете спасибо.

    И третье, по урлам. Схема, которую вы хотите, тоже костыль (хоть и популряный). Чтобы понять почему - изучите список правил rewrite_rules и как вообще этот механизм работает. Статичный category base нужен именно для того чтобы движок сразу понимал что это запрос на рубрику, все что идет после /categories/ - название рубрики. Именно благодаря наличию слова categories (или кастомного слага если вы его поменяли) в урл WordPress определяет регуляркой в rewrite какой тип запроса WP_Query формировать, какие параметры запросу передавать, какой шаблон из иерархии подключать и тд. Без него он знать не знает что вы запросили. Впрочем, костыльное решение есть - есть даже готовые плагины для этого типа No Category Base. Но нужно понимать как они работают, чтобы понимать возможные побочные эффекты - например, если категорий много, то пострадает производительность. Работают данные плагины по такой схеме - для каждой категории генерируется свое буквальное rewrite_rule, и помещается в начало списка правил (top). Когда WP проверяет текущий урл по массиву rewrite_rules, он встречает в первую очередь эти правила, и если есть реальное совпадение по имени категории, то WP корректно генерит запрос и прекращает проверку rewrite_rules. Если же реального правила категорий с таким урл он не нашел, то дальше по списку проверяются стандартные правила и метчит уже как обычно. Погуглите плагин по ключевым словам "no category base" и посмотрите код.
  • Как настроить кодировку php формы?

    FIKSER, покажите код куда вы заголовок добавили. Скорее всего он не используется вообще.
  • Где найти расположение конфигурации php?

    Жалгас, хз что они имеют в виду под "усложнить" :) Возможно намек на то, что письма слать лучше через какой-нибудь SwiftMailer или PhpMailer? И вообще по SMTP, с авторизацией и как положено?