WP-CLI не распознает обновления коммерческих плагинов

11

Я столкнулся с проблемой, с которой я не сталкивался ранее, когда WP-CLI не распознает обновления плагинов для коммерческих плагинов.

Обновления плагинов появляются на моей панели инструментов WordPress, но при запуске ../wp-cli.phar plugin update --allони не обновляются. Если я запускаю, ../wp-cli.phar plugin listон не показывает их обновления.

Я запускаю обновления через WP-CLI для тех же коммерческих плагинов на других серверах без каких-либо проблем. На этом сервере отличается только то, что у меня нет sudoдоступа, поэтому, как вы видите, я звоню wp-cli.pharнапрямую, а не через wpкоманду.

WP-CLI без проблем обрабатывает обновления плагинов из репозитория .org.

NateWr
источник
1
Привет Нейт, я не могу повторить этот вызов wp-cli.pharнапрямую с профессиональной версией Advanced Custom Fields. Доступно обновление, и оно отображается как доступное в выводе wp-cli. С какими плагинами вы пытаетесь это сделать? Возможно ли, что они обходят обычные процедуры WP для этого и, таким образом, не попадают в wp-cli?
Тим Мэлоун
Спасибо за ответ, Тим. За многие месяцы я обнаружил, что это довольно спорадично, но, как правило, происходит с плагинами, использующими лицензирование программного обеспечения EDD, которое, я считаю, использует обычные методы WP для обновлений. Это происходило везде, где я использовал WP-CLI (локальный разработчик, несколько разных серверов).
NateWr
Хм. Я должен проверить, используют ли коммерческие плагины, которые у меня есть, также EDD. Вы зарегистрировали проблему с wp-cli?
Тим Мэлоун
Нет, я не регистрировал проблему, потому что она такая спорадическая. Я не могу достоверно воспроизвести его (мне было интересно, если это проблема с переходными процессами). Но Даниэль посмотрел на этот вопрос SE и сказал, что он не слышал о проблеме и не мог придумать ничего, что могло бы ее вызвать.
до
1
Но я столкнулся с подобной проблемой только в прошлом месяце, после нескольких часов, почесывая голову, я обнаружил, что моя проблема напрямую связана с проблемой распознавателя DNS на хосте. В конечном итоге время разрешения DNS для хоста истекло, поэтому он не смог подключиться к источнику обновления для выполнения проверки. Спорадический характер вашей проблемы может указывать на то, что у вас возникла похожая проблема. Я бы потратил несколько минут, чтобы проверить разрешение DNS и исходящие соединения с хоста.
Стив

Ответы:

1

Возможно, у вас возникли проблемы с сетевым уровнем или кто-то временно удалил ресурсы для загрузки. Например, до обновления.

Большинство деталей вы можете получить из исходного кода https://github.com/wp-cli/wp-cli.

Функция обновления плагина там выглядит следующим образом.

function update( $args, $assoc_args ) {
        if ( isset( $assoc_args['version'] ) ) {
            foreach ( $this->fetcher->get_many( $args ) as $plugin ) {
                $assoc_args['force'] = 1;
                $this->install( array( $plugin->name ), $assoc_args );
            }
        } else {
            parent::update_many( $args, $assoc_args );
        }
    }

И когда вы указываете wp plugin update --allэто на самом деле проходит через parent::update_manyфункцию, где родительский CommandWithUpgradeкласс на самом деле класс.

Подводя итог, wp-cliиспользует ресурсы, предоставляемые плагинами, как это:

# Install from a remote zip file
wp plugin install http://s3.amazonaws.com/bucketname/my-plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef

Но там вы можете увидеть информацию, которую вы не должны видеть.

Примечание

Обратите внимание, что некоторые премиальные плагины не поддерживают обновление через WP-CLI. Например, я знаю, что BackupBuddy и Gravity Forms работают нормально, а плагины от Yoast - нет. Это может измениться.

прости
источник
1

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

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

Описанные симптомы относятся к этой ситуации, поэтому для некоторых это будет решением.

Энди
источник