• Поиск только по заданной таксономии Wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Форма, предложенная Роман Краббз только передает через скрытое поле нужный параметр. Надо еще сам запрос модифицировать:
    function search_filter( $query ) {
      // Берем название таксономии из скрытого поля
      $taxonomy = sanitize_text_field( $_GET['taxonomy'] );
      // Получаем ID всех терминов в заданной таксономи
      $terms = get_terms( $taxonomy, array(
        'fields' => 'ids'
      ) );
      // Изолируем нужный запрос
      if ( !is_admin() && $query->is_main_query() && $query->is_search ) {
          // Формируем массив параметров подзапроса по таксономии
          $tax_query = array(
            array(
              'taxonomy' => $taxonomy,
              'field' => 'id',
              'terms' => $terms,
              'operator'  => 'IN'
            ),
          );
          // Передаем параметры подзапроса в основной запрос
          $query->set( 'tax_query', $tax_query );
      }
    }
    add_action( 'pre_get_posts', 'search_filter' );

    Если я правильно понимаю, вы хотите, чтобы введенное в поиске слово расценивалось как термин таксономии, и в результате выводились посты с этим термином в этой таксономии? Тогда в параметры в коде выше нужно передавать tax_query.
    Ответ написан
    8 комментариев
  • Какие штрафы, если хостинг находится не в РФ?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    1. Никто в здравом уме не делает массовые рассылки от себя. Для этого есть куча сервисов с api типа:
    https://www.mailgun.com/
    https://mailchimp.com/
    Потому что Вас быстро спам фильтры скушают и Ваши рассылки перестанут доходить до адресата. Вы будете много рассылать, платить за vds, а КПД будет 0.
    2. Если Ваш сайт никак не связан с Вами, то как Вам повесят штраф? Пришлют платежку на имя домена? "Уважаемый vk.com, с Вас 50 рублей." Пока нет явно связанного юрлица, они понятия не имеют чей это сайт. РосКомНадзор вообще самая безобидная организация. Это шайка Дон Кихот-ов.
    3. Вы же не vk. Вы мало интересны. Посмотрите сколько порносайтов и онлайн казино. И никто их не блокирует. А тут Вы. У Вас многомиллионный проект?
    4. Почему бы не почитать сам закон? minsvyaz.ru/ru/personaldata
    Ответ написан
    Комментировать
  • Как разослать push-уведомления?

    BupycNet
    @BupycNet
    Основатель PushAll
    Лучше слать через PushAll
    Но если самому - то копайте в сторону Push API. https://github.com/chrisdavidmills/push-api-demo
    Но надо понимать что бесплатно у вас получится лишь на хроме, ff и что на них основано. На Safari нужно сертификат делать через аккаунт разработчика Apple, для мобильных платформ приложения надо писать.
    Ну и самое сложное - надо поддерживать актуальные токены, обновлять их, следить за актуальностью подключенных устройств.

    Если понятнее - при закрытом сайте оно отправляется через сервисы браузера, далее он вызывает ваш код в Service Worker и он уже отображает уведомление.

    -----------
    Получил данный вопрос через IT вопросник
    https://pushall.ru/?fs=927
    Ответ написан
    1 комментарий
  • Какой cервис рассылки push уведомлений подойдет в данной ситуации?

    @BOT_Kooper
    https://onesignal.com/
    Уведомления будут приходить от браузера, соответственно не нужно ничего устанавливать. Работает идеально, задержка отправки уведомления 2-5 секунд
    Ответ написан
    1 комментарий
  • Push сервер, серверная часть, php+node.js, как правильно реализовать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Первое, это то, что вам нужно разобраться, как именно работают push-уведомления.
    Второе, ненужно порождать лишние компоненты.
    Для PHP тоже имеются решения https://packagist.org/packages/minishlink/web-push

    Для начала вам потребуется понять, что подписки браузеров нужно хранить в отдельной таблице или коллекции в зависимости от вашего основного хранилища.
    Для личных сообщений необходимо будет реализовать опциональную, но включенную по умолчанию связь. Следует помнить о том, что один и тот же пользователь может заходить с разных устройств. Например с десктопа, ноута и таблетки. У одного пользователя может быть несколько подписок.
    Вам потребуется сервер очередей, например RabbitMQ. У вас будет 2 вида задач - публичные и частные.
    Публичная задача - это широковещательная задача, цель которой охватить всех пользователей.
    Например, когда публикуется новый материал на сайте и сайт готов принять всех желающий.
    Для него потребуется простая очередь. Задача воркера будет заключаться в том, чтобы найти всех подписчиков, создать задание для каждого из них и поместить это задание во вторую очередь со множеством воркеров, которые будут непосредственно отправлять пуши.
    Первое задание будет содержать id - материала.
    Второе будет содержать id материала и id подписки.
    Данный подход позволит очереди работать очень быстро. Плюс выборка из базы по id практически мгновенна вне зависимости от движка + отлично кэшируется на уровне самой базы. Доставать из базы нужно только необходимый минимум полей.
    Рассылка личных сообщений может быть сделана на основе второй очереди, дополнив задание несколькими полями. Т.е. воркерам будет все равно что они доставляют.
    Записывать задание со всеми полями для глобальных публикаций не очень хорошая идея, т.к. это будет занимать много памяти и вызывать тормоза. Плюс такое решение не очень хорошо масштабируется.

    Воркеры можно сделать и на Node.js, а можно на PHP. У RabbitMQ есть все необходимое для этого. Можно поискать и другие очереди, однако RabbitMQ достаточно популярное и проверенное решение.
    Ответ написан
    Комментировать
  • Есть ли обучение по созданию push уведомлений?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Если ты не понимаешь теорию, значит на практике у тебя ничего стоящего не выйдет.
    А так вполне себе хорошая теория тут https://developer.mozilla.org/en-US/docs/Web/API/P...
    И она содержит ссылочку на вполне себе реальный пример https://github.com/chrisdavidmills/push-api-demo

    Как эта штука используется на практике.

    После того, как вы определились с тем, что вы собираетесь отправлять, вам нужно сделать несколько вещей.
    1. Запросить у пользователя разрешение на отправку уведомлений. Делается это через Notification.requestPermission. Если мы получили подтверждение, то идем дальше, если нет, забиваем на это дело. Здесь нужно быть очень осторожным и делать это ненавязчиво.

    2. Создать фоновый обработчик, который будет принимать push-уведомления от сервера. Это делается через вызов navigator.serviceWorker.register. Например так https://github.com/chrisdavidmills/push-api-demo/b...
    Он подписывается на канал. Канал - это как комната в чате.

    За канал отвечает сервер. Сервер слушает порт, браузер подключается к серверу и тупо ждет пока сервер что-нибудь пришлет. Сервер может периодически отправлять пустые сообщения, на которые клиент должен отвечать для поддержания соединения активным. Поэтому у сервера может быть много открытых соединенией.

    3. Написать сервер уведомлений. У nginx есть хороший модуль. Он будет обслуживать клиентов.

    Рекомендую к просмотру https://www.youtube.com/watch?v=5A5Iw9z6z2s
    Ответ написан
    7 комментариев
  • Получить доступ к dom из chrome расширения?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Во-первых, контент-скрипты имеют полный доступ к DOM-дереву страницы, никаких проблем с этим быть не должно. Нет только доступа к переменным, определенным "родными" скриптами страницы.

    Во-вторых, у вас какой-то странный content.js. Я не знаю, чего вы пытались этим добиться, но попытаюсь угадать:

    $(function () {
        $(document).on('click', function () {
            console.log('click');
        });
    });
    Ответ написан
    2 комментария
  • Как правильно разработать легкомасштабируемую платёжную систему?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    1. Скрипт на крон - однозначно плохая идея. Более правильная история - постоянно работающий скрипт который из очереди получает очередную задачу. Отличный вариант для организации очереди rabbitmq

    2. Слабая связанность компонент это хорошо. В вашем случае однозначно api (не очень правда понимаю метания от php к java но дело Ваше. пишите на том, что лучше знаете) + расширяемые апи для внешних интеграций + интерфейсы цепляемые к апи.

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

    3. С точки зрения быстродействия - Вы достаточно быстро упретесь в базу. Соответственно надо сразу думать о шардировании данных, о том как система будет себя вести в случае выхода из строя одной из задействованных в транзакции нод итд.

    4. Вам важна data consistency. Сразу думайте про железо. Любые сервера горят. Брендовые сервера горят точно так же как и не брендовые. С учетом п3 - я бы делал полностью независимые друг от друга ноды, с физическим дублированием внутри ноды, и привязывал каждый счет к одной ноде.

    5 [философский] Поймите важный момент - без ОЧЕНЬ серьезных инвестиций в маркетинг, проекты не взлетают. Если бы эти инвестиции были - Вы бы тут не писали (не в обиду). Соответственно вероятность того что к Вам внезапно придет огромный поток транзакций - стремится к нулю. К тому моменту когда Вы раскрутитесь - Вы успеете 5 раз сменить архитектуру проекта. Нельзя иметь одну архитектуру у стартапа собранного одним человеком, и у проекта с высокими HL/HA.
    Пишите на чем нравится, у Вас будет куча времени что бы переписать узкие места например на C.

    6 [юридический] Вы в курсе что Вам нужна пачка лицензий на осуществление деятельности в качестве оператора электронных денег и денежных переводов без открытия банковского счёта? :)

    PS Я хочу верить что Ваш вопрос - это задачка для саморазвития. Иначе я не представляю себе что это за система платежная, которую делает один человек, спрашивающий совета как делать такие штуки (опять же не в обиду Вам ) :)
    Ответ написан
    Комментировать
  • Как организовать расчеты между юр. и физ. лицами на сайте?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    чтобы через расчетный счет нашей фирмы не бродили чужие деньги, с которых мы не будем брать никаких комиссий.


    такого по белому не будет

    спросите у всяких Интеркасс и paymentwall ов что они могут предложить, но тоже маловероятно
    Ответ написан
    3 комментария
  • Билинговая система с удобным апи?

    @abroabr
    Вот для вот этого
    Разрабатывается сервис, где одни пользователи смогут продавать цифровой контент другим

    Вот это
    Интересует система которая позволит делать выплаты внутри пользователей продавцов

    является сердцем системы.
    Довольно странно использовать для таких целей внешний биллинг.
    Когда деньги выводятся из системы - можно использовать все те же платежные системы, что и обычно.
    Ответ написан
    2 комментария
  • Сканеры штрих-кодов и PHP

    @lesha_penguin
    Сканеры штрих-кода (из тех, с которыми мне довелось работать) обычно работают в двух вариантах:
    1) Эмуляция клавиатуры (те, кто подключаются через PS/2 или работают как USB HID)
    2) Эмуляция COM-порта (те, которые соответственно втыкаются в компорт либо являются USB Serial Device)

    Взаимодействие с первыми аналогично клавиатуре. В чем их плюс — возможность работы даже с тем софтом который не знает что такое «сканнер штрих-кода». Для программы это будет выглядеть полностью аналогично как если бы оператор набрал на клавиатуре артикул товара. (то есть полностью прозрачно для программ)
    Соответственно, сериальные устройства для тех программ, которые знают что такое сканнер штрих-кода и умеют с ним работать.

    Соответственно, вопрос. Вам для каких нужд? Если Вы хотите минимальными затратами организовать «рабочее место оператора» с взаимодействием через веб — то вариант с USB HID — это ваш вариант. Вы просто с помощью PHP рисуете форму, с полем, куда JS-ом выставляете фокус. Оператор «пикнув» сканнером штрихкода просто введет туда цифры. (И незабываем, какой еще ОГРОМНЫЙ плюс возникает, если штрихкод потерт и нечитается — оператор просто набивает артикул на клавиатуре в это поле.)

    Вариант с Serial-подключением имеет плюсы лишь когда вы организуете выделенное узкозаточенное рабочее место.
    Ответ написан
    Комментировать
  • В какое направление смотерть в PHP разработке?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Тестовые для джуниора:
    Какие тестовые проекты стоит написать

    Фреймворки:


    На CMS смотреть не стоит, разве только если CMS интернет-магазинов (кроме Битрикса — это тупиковые знания, замкнутые сами на себя, и сомнительного качества)
    Ответ написан
    1 комментарий
  • Почему не отправляется форма и $_POST пустой?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    у коллбека на submit должен быть аргумент event, вызовите первой строкой event.preventDefault(), чтобы подавит стандартный submit формы.
    Ответ написан
    3 комментария
  • Что я делаю не так при добавлении записи через PDO?

    Оберните group в `` (можно и другие поля).
    Group это служебное слово, плэтому выдается ошибка.

    Что бы не выводить ничего при ошибке - уберите вывод из catch
    Ответ написан
    4 комментария
  • Подключение платежного шлюза СберБанк. Как реализовать подключение?

    voronkovich
    @voronkovich
    Недавно столкнулся с той же проблемой. Почему-то Сбербанк не делает библиотек для работы со своим API, как все нормальные платежные шлюзы. Да и API у них - совершенно безумное. Документации в открытом доступе нет, какие-то пдфки в письме прислали. В итоге, сделал небольшую библиотеку на PHP https://github.com/voronkovich/sberbank-acquiring-... Надеюсь пригодится кому-нибудь еще.
    Ответ написан
    23 комментария
  • Склонение числительных, что я делаю не так?

    @imhuman
    То, что сразу бросается в глаза
    вместо } elseif (in_array($y, array("2,3,4"))) {
    нужно } elseif (in_array($y, array(2,3,4))) {
    Ответ написан
    Комментировать
  • Где находить хороших разработчиков ПО?

    platotel
    @platotel
    IT Product Manager
    Специалистов с опытом лучше искать на LinkedIn. Там студентов очень мало, но те, что есть, обычно очень продвинуты. Знают английский, закончили ведущие ВУЗы, имеют сертификаты. Тех, кто постарше, уже большинство. Это чаще всего уже состоявшиеся специалисты, с рекомендациями, отзывами. Попробуйте там тоже искать людей.

    Ну и расширяйте сеть знакомых. Чем больше людей из отрасли знаете, тем больше вероятность, что через них найдёте кандидатов. Ходите на конференции, выступайте, рассказывайте о компании, делайте технологические доклады, хотя бы просто просто ходите на мероприятия и знакомьтесь, добавляйте знакомых в LinkedIn (это именно профессиональная социальная сеть) и в другие соцсети, чтоб следить за их новостями. Это всё - работа по маркетингу. Увеличение заметности компании, обеспечение интереса к её вакансиям. Тогда уже не Вам нужно будет искать людей, а они будут интересоваться компанией.
    Ответ написан
    Комментировать
  • Неправильно обрабатывается Ajax форма, как исправить ошибку?

    success/error колбэки - они про сам аякс запрос, а не про правильность заполнения формы.

    у тебя при любом успешном (т.е. который дошел до сервера и вернул какой-то ответ) запросе будет очищаться форма.
    Ответ написан
    5 комментариев