• Как скрыть метод доставки до тех пор пока в корзине не накопилась определенная сумма?

    Expany
    @Expany
    $this->get('skill');
    В чем проблема?
    Предположим нечто подобное для примера:
    <div class="summary_block">
        <span class="summary">3000</span>руб.
        <input id="summary" type="hidden" value="3000">
    </div>
    <div class="delivery_method hide">Описания или форма или что там у тебя</div>
    <div class="product_grid">
        <div class="product_item">
            <p>Описание товара</p>
            <a href="/buy" id="product_buy" data-id="100">В корзину</a>
        </div>
        <div class="product_item">
            <p>Описание товара</p>
            <a href="/buy" id="product_buy" data-id="101">В корзину</a>
        </div>
        <div class="product_item">
            <p>Описание товара</p>
            <a href="/buy" id="product_buy" data-id="101">В корзину</a>
        </div>
    </div>

    Капля стилей:
    .hide {
        display: none;
    }

    Немного js(ориентируюсб на jQuery, так как он у вордпресса из коробки):
    jQuery(document).on('load', function() {
        jQuery('#product_buy').on('click', function(e) {
            e.preventDefault(); // Сбрасываю клик по ссылке, так как скорее всего тут должно быть что-то еще для добавления товара в корзину
            let summary = jQuery('#summary').val(); // Получаю число из скрытого поля
            if(Number(summary) >= 5000) { // Проверяю соответствует ли оно требуемому и если да, показываю блок
                jQuery('.delivery_method').removeClass('hide');
            } else { // Иначе скрываю блок обратно
                jQuery('.delivery_method').addClass('hide');
            }
        });


    Вариант исключает вукомерс, так как заметил тег уже после того как склепал пример (´• ω •`)
    Да и с самим вукомерс не работал.

    Но предположу что стоит посмотреть шаблон темы, если корзина в шапке то предположу какой-нибудь header.php
    Оттуда можно оттолкнуться, и понять куда копать(если не шибко мудреная). ¯\_(ツ)_/¯
    Ответ написан
    Комментировать
  • Преобразовать в JSON?

    Expany
    @Expany
    $this->get('skill');
    <?php
    $regexp = '/\d+\s\w+\s\d+/iu'; // ыыы, регуларке обожае
    // Тупа твой вывод ыыы
    $response = "default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
       No Members
       No Callers
    
    110 has 0 calls (max unlimited) in 'rrmemory' strategy (100s holdtime, 78s talktime), W:0, C:12, A:18, SL:25.0% within 60s
       Members: 
          Local/801@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 4 calls (last was 6516 secs ago)
          Local/769@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 4535 secs ago)
          Local/744@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/739@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 6952 secs ago)
          Local/771@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 3 calls (last was 1905 secs ago)
          Local/756@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 9914 secs ago)
          Local/746@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken 1 calls (last was 2874 secs ago)
          Local/774@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/755@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/748@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/779@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/726@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
          Local/728@from-queue/n (ringinuse disabled)[1;36;40m (dynamic)[0m[0m[0m[0m ([1;32;40mNot in use[0m) has taken no calls yet
       No Callers";
    // хо ба
    preg_match($regexp,$response,$match);
    // не ну тут всо ясно
    $match = explode(' ',$match[0]);
    $json = [$match[0] => $match[2]]; // не ну а чо :D
    echo json_encode($json);
    Ответ написан
    2 комментария
  • Зачем нужно ООП?

    Expany
    @Expany
    $this->get('skill');
    Меня щас тапками закидают, но!
    ИМХО, честно, за все время практики, я сталкивался с разношорстной кучей функциопальщины и процедурщины, от малого к большему от простого к сложному.

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

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

    Есть у нас на одном проекте, легаси с классами старше моей мамы(шутка), там все как раз по такому принципу и построено.

    Все внутренние методы, собраны в класс ради того что бы использовать его как сказано выше, не более того(и я честно не назвал бы это ООП, вот вообще, но что делать, работаем с тем, что есть).

    В целом, это наверное самое простое и того, чем и как можно было бы описать ООП(хотя это не точно).
    Ответ написан
    Комментировать
  • Какую CMS можно использовать для html сайтов, скачанных с вебархива?

    Expany
    @Expany
    $this->get('skill');
    Начать бы с того, что автор банально втирает дичь.
    "Массовая" замена - это в редакторе кода, а не в cms.
    Что до сайтиков с веб-архива и движка для них, был вроде живой archivarix.
    Ответ написан
    2 комментария
  • Есть ли сервисы для генерации регулярных выражений?

    Expany
    @Expany
    $this->get('skill');
    Пример теста то где? Или из головы вид и форму изобретать?
    Ответ написан
    Комментировать
  • Как Записать в базу данных если выполнено условие?

    Expany
    @Expany
    $this->get('skill');
    Все ответы бесполезны (ИМХО).
    Вполне вероятно, что пусть и не очень хорошо, но при визите юзера(предположим авторизованного) в базу записывается текущий TIMESTAMP, при попытке манипуляций вызывающих db_insert, будет вызвана аналогичная процедура получения TIMESTAMP с целью вычислить разность по времени, и если результирующее больше или равно требуемому, выполнить запись в базу, иначе можно сообщить пользователю что еще рановато.

    Что до ответа Сёмки, то тоже имеет место быть, вынести подобную логику стоило бы на плечи js.
    Ответ написан
    Комментировать
  • Можно ли получить доступ к url в PHP?

    Expany
    @Expany
    $this->get('skill');
    Есть куча способов решить этот вопрос.
    Одним существенным отличием от выше упомянутых будет сказать, что подобные манипуляции логичнее переложить на плечи js.
    В противном случае я бы рекомендовал генерировать css средствами php целиком, подставляя нужные значения и соответствующий
    header('Content-type: text/css');
    Если основа задачи лежит в подмене значений в реальном времени(по мере скролла, нажатий) то это однозначно работа js, иначе, можно использовать php.

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

    Опять же, важным моментом является конкретизация вашей задачи. Телепатов тут нет, изложите суть, а ответ себя ждать не заставит.
    Ответ написан
    Комментировать
  • Очистка и валидация данных в $_POST?

    Expany
    @Expany
    $this->get('skill');
    nonce - это похоже на защиту от CSRF атак(атаки с подменой).
    Устройство filter_var() для валидации входящих данных.

    Этого вполне должно быть достаточно для фильтрации данных, но исходя из личной паранойи, я бы добавил еще:
    функция всяких экранирований
    function filter_data ($value, $db) {
        $quotes = array ("\x27", "\x22", "\x60", "\t", "\n", "\r", "*", "%", "<", ">", "?", "!","-", "+", "#");
        $value = trim($value);
        $value = preg_replace("/[\r\n]{3,}/i", "\r\n\r\n", $value);
        $value = stripslashes($value);
        $value = strip_tags($value);
        $value = str_replace($quotes, '', $value);
        $value = $db->real_escape_string($value);
        return $value;
    }



    И возможно что-нибудь еще, для большей паранойи.
    Ответ написан
  • Может ли провайдер фиксировать задержку сигнала между wifi роутером и гаджетами?

    Expany
    @Expany
    $this->get('skill');
    Чот никто не учел что помимо клиентского роутера и задержек по расстоянию между гаджетом и роутером так же влияет и занимаемый канал. Точнее говоря, наличие других роутеров на этом или соседних каналах(справедливо для многоквартирных домов).

    Ну и конечно же да, это исключительно маркетинг.
    Ответ написан
    Комментировать
  • Чем отличается backend в веб от мобильного?

    Expany
    @Expany
    $this->get('skill');
    Имхо, отличий - 0.
    Ответ написан
    Комментировать
  • Как устроить электрогенерацию в домашних условиях?

    Expany
    @Expany
    $this->get('skill');
    Полагаю что габариты генератора окажутся выше предусмотренных жил.площадью, для компенсации затрат.
    Что до гашения долга за счет переработки, увы, в России неосуществимо. ИМХО
    Ответ написан
    Комментировать
  • Как запретить параллельное (одновременное) использование одного аккаунта разными пользователями?

    Expany
    @Expany
    $this->get('skill');
    по IP, по статусу создания куки, по сессии, по дополнительному идентификатору, который ты можешь отследить, в рамках текущего сеанса пользователя. Вариантгв масса.

    Я бы использовал дополнительное поле в базе, куда записывал бы 1, после авторизации.
    А на этапе авторизации, проверял бы это поле, если там 1, облом, иначе авторизуем.

    Но это лишь пример.
    Ответ написан
  • Как отключить css в браузере chrome (selenium)?

    Expany
    @Expany
    $this->get('skill');
    Простите, я может чего-то не понимаю, но зачем отключать стили?
    Ответ написан
  • Есть ли альтернативы findface сервиса?

    Expany
    @Expany
    $this->get('skill');
    Яндекс ищет достаточно не дурно
    Ответ написан
    Комментировать
  • Какие есть решения по организации некого Changelog для разработчиков и системных администраторов?

    Expany
    @Expany
    $this->get('skill');
    Доски на trello.com?
    Ответ написан
    Комментировать
  • Как сделать тяжелый импорт из excel 800к товаров?

    Expany
    @Expany
    $this->get('skill');
    Че пасаны, цикл на № итераций, с паузой, не?
    К примеру на 100 итераций и паузу в 1с, не?
    Ответ написан
  • Почему сразу после регистрации домена на него сразу же приходят неизвестные IP?

    Expany
    @Expany
    $this->get('skill');
    Раз уж удалось определить, что после регистрации к вам бегают сомнительные IP, значит и собрать статистику с них можно. Ловите все что можно, функционал php\js в помощь.
    Ответ написан
  • Как искать заказчиков в соц. сетях (продвигать себя в соц. сетях)?

    Expany
    @Expany
    $this->get('skill');
    Находим паблики по тематике
    покупаем в них рекламу
    ???
    Профит
    Ответ написан
  • Возможен ли VK Bot на php без cron?

    Expany
    @Expany
    $this->get('skill');
    Использовать php-deamon(бесконечный цикл) же
    Ответ написан
    Комментировать