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

    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, с авторизацией и как положено?
  • Где найти расположение конфигурации php?

    Жалгас, если у них настроено, тогда да - с вашей стороны скрипт должен через sendmail отправлять письма как адрес@ваш-домен.com, а не какой-нибудь дефолтный user@localhost
  • Как изменить slug у custom post type в зависимости от языка?

    И вообще, имхо на мультиязычных сайтах структура URL должна быть идентична на всех языках. И в одном из двух вариантов:
    1. /{lang}/any/number/of/path/elements/ - код языка меняется, все остальное идентично для всех языков (обычно на английском).
    2. /{lang}/{any}/{number}/{of}/{path}/{elements}/ - меняется и код языка, и все что идет после него тоже переводится/транслитерируется на выбранный язык.
  • Как изменить slug у custom post type в зависимости от языка?

    Присоединяюсь к вопросу Михаил Кобзарев - зачем это? Звучит реально как костыль. Это раз. Два - у вас там WPML, он так не работает, а вы его будете пытаться через колено ломать. Это плохая затея изначально.
  • Как реализовать выпадающий список с разной информацией?

    Возможно есть готовые решения на Wordpress?

    За вас погуглить?