Поддержка Проблемы и решения кеш? память? или что-то еще?

  • Решено mypowerlogo

    (@mypowerlogo)


    магазин
    версия WooCommerce: 3.5.0
    версия WordPress: 4.9.8
    WordPress ограничение памяти: 2 GB
    Информация о сервере: Apache/2.4.10 (Unix)
    PHP версии: 7.2.5
    Максимальный размер запроса PHP: 100 MB
    Ограничение времени выполнения PHP: 600
    Количество входящих параметров в запросе PHP: 5000
    Макс. размер загрузки: 999 MB

    установлено еще прядка 30 плагинов( внешний вид, аякс окна и т.д.)
    до 1000 посетителей в день

    Суть проблемы: после обновления плагинов прекратилось поступление заказов и так было 12 часов пока не произвел некие манипуляции(установил плагин «WP Super Cache» и в нем очистил кеш) после этого заказы снова начали поступать. Причем и до и после очистки если я делал тестовый заказ со своего ПК заказ приходил успешно.

    Предистория: ранее сталкивался 2 недели не приходили заказы при постоянном рекламном потоке посетителей. Хотя также тестовые заказы приходили с любого ПК успешно. Решилась проблема тем, что «WordPress ограничение памяти:» с 64мб увеличил до 2 GB.

    без каких либо индикаторов или на абум клацать каждый день «очистить кеш» тоже не выход ведь не понятно почему вообще это происходит и почему новые посетители не могут сделать заказ.

    Опережу некоторые вопросы:
    вопрос: то, что люди заходят не означает, что они что то покупают.
    ответ: 1000 человек это не 5, статистику не обманешь. Если изо дня в день 1000 человек делает 10-30 заказов, то не может быть, что резко стало 0 и люди перестали покупать вещи. тенденция на спад идет постепенно, а не резко.

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

    Подскажите, что может не работать и как это проверить или исправить.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 12 ответов — с 16 по 27 (всего 27)
  • производил поиск по «WC_Cart::get_cart» такой текст присутствует только в 2х файлах
    /wp-content/plugins/woocommerce/includes/legacy/class-wc-legacy-cart.php
    Php-errors.log

    больше файлов нет ни в теме, ни где нибудь еще

    Модератор Yuri

    (@yube)

    производил поиск по «WC_Cart::get_cart»

    Поищите cart->get_cart или даже ->get_cart

    cart->get_cart встречается как в некоторых плагинах(3-5 плагинов), так и в самом вукомерсе

    • Ответ изменён 5 лет, 1 месяц назад пользователем mypowerlogo.
    Модератор Yuri

    (@yube)

    Так это то же самое, только WC_Cart::get_cart вызов метода по имени класса, а cart->get_cart — вызов метода объекта класса.

    Там не все методы WC_Cart являются устаревшими (пока). The WC_Cart::get_cart_url function is deprecated как бы намекает, что надо искать
    cart->get_cart_url(). У себя на старом тестовом я нашел такое в двух плагинах.

    в плагине:$cart_url = WC()->cart->get_cart_url();
    в теме:

    function giga_store_cart_link() {
    			?>	
    			<a class="cart-contents text-right" href="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" title="<?php esc_html_e( 'View your shopping cart', 'giga-store' ); ?>">
    				<i class="fa fa-shopping-cart"><span class="count"><?php echo wp_kses_data( WC()->cart->get_cart_contents_count() ); ?></span></i><div class="amount-title"><?php echo esc_html_e( 'Cart ', 'giga-store' ); ?></div><div class="amount-cart"><?php echo wp_kses_data( WC()->cart->get_cart_subtotal() ); ?></div> 
    			</a>
    			<?php
    		}

    то что в теме можно удалить? а в плагине исправить? и как?

    Модератор Yuri

    (@yube)

    Удалять не надо, надо заменить на актуальный код

    
    <a class="cart-contents text-right" href="<?php echo esc_url( wc_get_cart_url() ); ?>" title="<?php esc_html_e( 'View your shopping cart', 'giga-store' ); ?>">
    

    Аналогично с другими deprecated функциями. Только аккуратно! Не все меняются так просто, параметры новой функции могут отличаться от параметров старой.

    С плагинами можно поступить аналогично. И надеяться, что при следующем обновлении (если оно будет) эти моменты будут учтены автором плагина.

    Разумеется, в самом woocommerce трогать ничего не нужно. Хотя бы потому, что он обновляется так часто, что фиг успеешь дочитать до конца what’s new:)

    Исправил. Как WC_Cart::get_cart_url
    превратилась в WC()->cart->get_cart_url() чтоб я мог подобные ошибки искать самостоятельно?

    • Ответ изменён 5 лет, 1 месяц назад пользователем mypowerlogo.
    • Ответ изменён 5 лет, 1 месяц назад пользователем mypowerlogo.
    Модератор Yuri

    (@yube)

    WC_Cart::get_cart_url — декларация: класс WC_Cart, метод get_cart_url.

    WC()->cart->get_cart_url() — вызов метода (функции) объекта. WC()->cart — объект класса WC_cart, get_cart_url() — вызов метода get_cart_url.

    Вот такое оно, объектно-ориентированное программирование, чуждое нам, субъектам программирования 🙂 И это только верхушка айсберга.

    во всех ошибках при поиске WC_Cart:: заменил на WC()->cart-> и нашел все упоминания в коде, затем заменил на новую функцию. Получилось
    WC()->cart->get_item_data заменить на wc_get_formatted_cart_item_data
    WC()->cart->get_cart_url заменить на wc_get_cart_url
    WC()->cart->get_remove_url заменить на wc_get_cart_remove_url
    осталось исправить
    PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in ,,,,,,,,,,,,/wp-includes/class-wp-hook.php on line 286
    а это как искать?

    • Ответ изменён 5 лет, 1 месяц назад пользователем mypowerlogo.
    • Ответ изменён 5 лет, 1 месяц назад пользователем mypowerlogo.
    Модератор Yuri

    (@yube)

    а это как искать?

    С этим сложнее. Это значит, что где есть add_filter('нечто', 'обработчик'), а вот функции, указанной как обработчик фильтра, нигде в коде нет. Искать то, чего нет, всегда сложнее. Я даже не знаю… Может, коллеги подскажут гуманный способ поймать вредителя?

    Критические ошибки были устранены эту тему можно закрыть. Для PHP Warning: лучше содать отдельную тему. Спасибо за помощ

    эту тему можно закрыть.

    Вы самостоятельно можете отметить её решённой.

Просмотр 12 ответов — с 16 по 27 (всего 27)
  • Тема «кеш? память? или что-то еще?» закрыта для новых ответов.