Задать вопрос
  • Что не нравится яблокам?

    Максим Тимофеев, А какая верси Сафари? Ибо у меня все ок (самые свежие версии iOS и macOS + последние сафарики там и там)
  • Как в WP разрешить чтение постов с другим статусом?

    Евгений Ефимченко, Ась? Вы вообще куда-то не туда копаете. User Role Editor - это плагин для редактирования capabilities пользователей. В данном случае у вас нет проблемы с capabilities пользователя, а гости (неавторизованные) вообще не проходят через capabilities.

    Создать нового пользователя с наследованием "ничего" и дать ему права на чтение всего.

    Это ничего не даст. Читать все сможет только этот пользователь, если он авторизован.

    А вот со ссылками как быть, непонятно пока что.

    Ссылки - это rewrite rules. Они генерируются автоматически, если разрешено аргументами, переданными в register_post_status.

    Внимательно перечитайте еще раз мой ответ. Не изобретайте танцы с бубном и завываниями.

    Если данный статус зарегистрирован как непубличный, вы хоть тресните, а WP не включит его в SQL запрос, и не сгенерирует ему rewrite rules. И никакие танцы с правами (capabilities) вам не помогут, потому что WP записи с этим статусом будет упорно игнорировать на фронте. Ибо так ему указано в аргументах, переданных при регистрации данного статуса.
  • Как вывести все дочерние страницы определенной страницы wordpress?

    не совсем уместны, поскольку на изучение того, что предлагаете уйдут недели и месяцы.

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

    Остановитесь, выдохните, почитайте про $query_vars вместо использования ненадежного и небезопасного $_SERVER['REQUEST_URI'].

    прошу специалистов помочь показать, что в моем коде не так

    Все не так, именно об этом мой комментарий. То, что у вас сама архитектура сделана ахово, это одно. Но вы даже не понимаете, что WP уже и так парсит реквест и держит в глобальном скоупе все необходимые вам данные. Если бы вы понимали цикл от запроса до ответа, то задачу спокойно решили бы сами.

    как лучше реализовать эту задачу, даже с иным решением.

    Переписать архитектуру с нуля, на custom post types и custom taxonomies.
  • Как заменить в админке в статусе заказа гостя на зарегистрованного пользователя?

    ligisayan,
    Естественно, т.к. woocommerce предлагает для этого еще поставить галку зарегистрироваться и все равно ты новый клиент или повторный, но просто не залогиненый, а это неудобно.

    Вот тут мысль как раз пришла. По идее у WooCommerce есть фильтр перед самим созданием пользователя. Данные, возвращаемые этим фильтром передаются далее в wp_insert_user(). Если в эти данные добавить ID юзера (а его мы можем получить проверив на существование по мылу или телефону), то будет обновлен существующий юзер + далее этот же ID существующего юзера будет возвращен далее в WooCommerce в виде $customer_id. То есть, будет получен нужный результат.
  • Как заменить в админке в статусе заказа гостя на зарегистрованного пользователя?

    ligisayan, Хм, пробежал по диагонали эту статью, интересно. Уверен, что это не единственный (и возможно даже не самый разумный) способ, но ковырять и решать столь объемную задачу сейчас, увы, времени и возможности нет (хотя не скрою, она меня заинтересовала). Работает - и хорошо. Для вас на данном этапе это самое главное.

    А это как? Просить вводить юзера не полный телефон? чревато ошибками, расчет на дурака всегда должен быть

    Нормализация это и есть комплекс мер, которые включают и защиту от дурака, и форсирование определенного формата, и валидацию ошибок, и потом, после того как данные прошли, их последующая обработка, чтобы в БД они всегда хранились в одинаковом формате. Например:
    - ввести можно только цифры (пробелы, скобки, +, дефисы и тд - не принимаются полем типа "number")
    - длина должна быть 10 (3 цифры код оператора/региона + 7 цифр сам номер) или 12 (+2 цифры международного формата). Это для Украины - у нас 38 код страны, 0XX код оператора и XXX XX XX - сам номер. У США код страны 1 цифра, например. Подробнее по нужным странам можно посмотреть тут.
    - далее, если 12 цифр - валидируем что первые 2 соответствуют коду страны
    - на бекенде смотрим, если 10 цифр, дописываем код страны
    - сохраняем в БД в одинаковом формате: 12 цифр (код страны + код оператора + номер)

    Это минимально адекватный вариант. В зависимости от требований учесть другие страны можно логику усложнять - можно выбор страны сделать селектом + геолокация, отдельно код оператора/региона (+валидировать его чтобы он был реальный, все эти коды известны и есть их базы), отдельно сам номер 7 цифр без пробелов и других символов. В общем, это не так сложно, как кажется на первый взгляд.
  • Как заменить в админке в статусе заказа гостя на зарегистрованного пользователя?

    ligisayan, по метаданным можно искать конкретного юзера через WP_User_Query, принцип тот же что и с WP_Query. Впрочем, если телефонный номер считается более уникальным, чем имейл (и на него опираемся), то я бы в таком случае модифицировал регистрационный процесс - нормализация телефонного номера (к одному стандарту - полный международный формат, только цифры) и использование его в качестве логина. Тогда возвращаемся к get_user_by. В любом случае, нужно этот фрагмент упрощать и оптимизировать, потому что брать всех и перебирать со сравнением - это бутылочное горлышко.

    А какие хуки у регистрации клиента woocommerce?

    Ну я смотрю что у вас на thankyou происходит wp_insert_user() и это как бы совсем неправильно. WooCommerce умеет регистрировать гостей в процессе оформления заказа, и в этом случае на страницу thankyou уже прилетает созданный пользователь, а заказ уже привязан к нему. Вы же, видимо, не используете родную фичу WC, а пытаетесь делать это самостоятельно.
  • Почему на западе любят поддомен www в адресе сайте, а у нас корень домена?

    Siberian_Bear, я когда-то сам задавался этим вопросом, и тоже что-то меня изнутри грызло, подозревало что не все так однозначно. Углубился, исследовал, порасспрашивал более опытных коллег на западе - и все прояснилось. Рад передать знания дальше.
  • Зачем нужен PHPDoc в php-7?

    WordPress тоже страдает таким повсеместно, там часто бывает целый зоопарк на выходе типа WP_Post|int|bool|null (при чем int может быть только 0, а bool - false).
  • Почему worpress добавляет перед каждым символом (') или ("). (\) В методе get и post?

    zeni1agent, Забудьте, мы на разных языках говорим. Я не анализировал ваш js-код и понятия не имею что вы там делаете. Говорю лишь о том, что WordPress делает addslashes() не просто так. Если в вашем конкретном случае они не нужны (и вы в этом уверены на 100%) - тогда делайте stripslashes() и вопрос закрыт.
  • Почему worpress добавляет перед каждым символом (') или ("). (\) В методе get и post?

    zeni1agent, https://www.sitepoint.com/php-security-blunders-2/
    Технически, возможно в вашем случае не принципиально, тогда делайте stripslashes. Но WordPress обязательно будет экранировать спецсимволы, чтобы новички, ничего не смыслящие в написании безопасного кода, не оставляли за собой открытые двери.
  • Почему worpress добавляет перед каждым символом (') или ("). (\) В методе get и post?

    zeni1agent, ну, изучать весь ваш код не вижу смысла, просто напомню вам о том, что с таким же успехом в ваше текстовое поле можно ввести javascript-код, который будет без проблем выполнен.
  • Как переименовать произвольный тип записи?

    aliasst, ну я же говорил что проблема сама по себе тривиальная. Но вопрос у вас получился совсем сумбурным потоком сознания, сложно было уловить что именно вам поменять надо.
  • Почему worpress добавляет перед каждым символом (') или ("). (\) В методе get и post?

    zeni1agent, ну, подобные функции в PHP почти все идут парами - одна добавляет, другая убирает. Дело не в этом. Если вам вообще приходится делать это вручную в контексте CMS (в данном случае WordPress), то что-то вы не так делаете. Грубо говоря, вы приняли на стороне сервера через POST данные с экранированными кавычками (так и должно быть), что дальше вы будете с этими данными такое делать, что вам нужно убрать слэши?
  • Как переименовать произвольный тип записи?

    Ничего не понятно, хотя проблемка-то мелкая и простая. Но из вашего описания непонятно с какой стороны начать.
  • Проблема с оптимизацией скорости сайта?

    azerphoenix, pagespeed жалуется правильно, какая разница что скрипты их же?) Сам концепт замедляет сайт, факт. Но иногда он неизбежен, ибо приходится аналитику подключать (ну и все такое прочее). Удобство подключения (копи-паста кусочка кода из аналитики) в ущерб скорости. А там где балом правят разрабы и те, кто понимает толк в оптимизации все равно будет сделано так, как лучше для скорости.

    Возможно, что я ошибаюсь, но как по мне предпочтительнее отдавать статику из CDN, чем из локалки.

    Тут нет однозначного ответа и нет "правильно" или "неправильно". Сильно зависит от специфики проекта, конкретного кода, аудитории сайта, расположения серверов и тд. К примеру, сейчас запускаем сайт австралийской локальной компании, для местной ЦА (95%+ посетителей из одного региона Австралии). В этом случае CDN лишний, даже несмотря на то, что половина сайта это посадочные продающие страницы с тучей мелкой графики, autoplay видосами и тд (много запросов на статику). Сервер в Мельбурне с обычным HTTP/2, адекватным prefetch/preload/preconnect и http push позволяет грузить все практически мгновенно. Если бы аудитория этого сайта была по всему миру - тогда только CDN, без вариантов. А если относительно простой сайт с к-вом статических запросов <40-50, то CDN вообще не нужен (при условии что используется HTTP/2), заметного выигрыша не даст. В общем, все нужно тестировать и замерять в каждом конкретном случае. Одного волшебного рецепта не существует.
  • Проблема с оптимизацией скорости сайта?

    в порядке БРЕДА можете локально отдавать эти скрипты. Чтобы они были актуальны обновляйте по CRON.

    Говорю заранее, это не самый лучший вариант (отдавать скрипты локально, но чтобы гугл перестал жаловаться на них, можно сделать так)

    Вообще-то это как раз тема, рекоммендуемая (втихаря правда) самими разрабами из гугла, команды хрома и тд. Тот же Addy Osmani регулярно в своих постах или докладах это упоминает. И ничего опасного в этом нет, если делать с умом (и, конечно же, понимать что делать). У нас на многих проектах практикуется - и аналитика, и шрифты, и даже google tag manager. Работает как часы, никаких проблем.
  • Почему на wordpess конфликтуют jquery и jquery-ui и я получаю ошибку Uncaught TypeError: Cannot read property 'safari' of undefined?

    zeni1agent, это звучит очень и очень странно. Сервер какой? ОС? Похоже больше на какое-то кеширование.
  • Почему на wordpess конфликтуют jquery и jquery-ui и я получаю ошибку Uncaught TypeError: Cannot read property 'safari' of undefined?

    zeni1agent,
    Это уже второй раз как wordpress повел себя странно первый раз он резко перестал показывать конфликт ванильного jquery и jquery.min.

    WordPress не ведет себя странно или нормально, в зависимости от погодных условий или настроения. Это не женщина. Если что-то странное происходит, в 99.999999% случаев это вы что-то не то делаете.