Задать вопрос
@easycode
не боюсь задавать глупые вопросы ))

PHP Fatal error: Uncaught Error: Call to undefined function WP_CLI\Utils\check_proc_available() — при вызове с сайта?

В WordPress плагине есть у меня такая штука:

\WP_CLI::runcommand("db export $path/{$this->backup_filename}.sql --tables={$this->wpdb->prefix}table --skip-comments=true --no-create-info=true");


и вызов её находится в моём классе с пространством имен и autoload работает согласно тому что написано в composer.json

"autoload": {
        "psr-4": {
            "MYCLASS\\": "classes"
        }
    }


и вот когда в методе моего класса вызывается команда \WP_CLI::runcommand через GET-запрос в админке - а мне надо запускать экспорт таблицы из админки, то получаю я ошибку вида:

PHP Fatal error: Uncaught Error: Call to undefined function WP_CLI\Utils\check_proc_available() in ..../wp-content/mu-plugins/my-plugin/vendor/wp-cli/wp-cli/php/class-wp-cli.php:1316


при этом если этот же метод моего класса вызывать через wp-cli то всё нормально работает....
если заглянуть внутрь class-wp-cli.php - то там всё крашится на:

Utils\check_proc_available( 'launch option' );

как я понимаю, потому что ему не хватает \WP_CLI\ перед Utils или нет?

\WP_CLI\Utils\check_proc_available( 'launch option' );
  • Вопрос задан
  • 88 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Mike_Ro
@Mike_Ro Куратор тега WordPress
Python, JS, WordPress, SEO, Bots, Adversting
WP_CLI используется для работы через консоль и либо не поддерживает веб запросы, либо поддерживаем их с ограничениями.

Используйте в плагине выборку из БД без WP_CLI, например:
global $wpdb;
$data = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}table", ARRAY_A);
file_put_contents($path . '/' . $this->backup_filename . '.json', json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы