Sage Woocommerce - Попытка получить свойство необъекта (get_current_screen () -> id) - PullRequest
2 голосов
/ 24 апреля 2019

Я не совсем уверен, когда именно это происходит, поскольку это происходит только на работающем сервере, а не локально.Но время от времени (несколько раз в минуту) я получаю уведомление PHP в моем debug.log.

Уведомление PHP: Trying to get property of non-object in /path/to/wordpress/wp-content/themes/themename/vendor/roots/sage-woocommerce/src/woocommerce.php on line 57

Мне даже удалось точно определить точную проблему, которая составляет get_current_screen()->id.

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

Я пытался указать require_once(ABSPATH . 'wp-admin/includes/screen.php'); в файле sage woocommerce.php и var_dump(get_current_screen());, но это просто возвращает NULL.

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

Точный код, в котором эта проблема возникает в этом файле:

add_filter('wc_get_template', function ($template, $template_name, $args) {
        $theme_template = locate_template(WC()->template_path() . $template_name);

        // return theme filename for status screen
        if (is_admin() && ! wp_doing_ajax() && function_exists('get_current_screen') && get_current_screen() && get_current_screen()->id === 'woocommerce_page_wc-status') {
            return $theme_template ? : $template;
        }

        // return empty file, output already rendered by 'woocommerce_before_template_part' hook
        return $theme_template ? get_stylesheet_directory() . '/index.php' : $template;
    }, 100, 3);

Плюсом этого является то, что он не ограничивает возможность заказа товаров, а обратной стороной является:Мне не нравится это уведомление, и оно серьезно заполняет debug.log

Я ожидаю, что часть -> id вернет 'woocommerce_page_wc-status', но, как упоминалось ранее, она просто возвращает NULL независимо от того, что яделать.

Любая помощь будет принята с благодарностью, поскольку нигде нет статей / сообщений об этом.

...