跳到主要内容

常见问题

本页面旨在记录已知的常见问题、遇到的问题以及它们的解决方案或解决方法。 如果您遇到了此处未提及但应该记录的问题,请随时将其添加到列表中。

Composer 在 Automattic\Jetpack\Autoloader\AutoloadGenerator 上的错误

[ErrorException]
Declaration of Automattic\Jetpack\Autoloader\AutoloadGenerator::dump(Composer\Config $config, Composer\Repository\Inst
alledRepositoryInterface $localRepo, Composer\Package\PackageInterface $mainPackage, Composer\Installer\InstallationMa
nager $installationManager, $targetDir, $scanPsrPackages = false, $suffix = NULL) should be compatible with Composer\A
utoload\AutoloadGenerator::dump(Composer\Config $config, Composer\Repository\InstalledRepositoryInterface $localRepo,
Composer\Package\RootPackageInterface $rootPackage, Composer\Installer\InstallationManager $installationManager, $targ
etDir, $scanPsrPackages = false, $suffix = '')

Composer 2.0.7 的一个更改 导致我们的自动加载器与新的 AutoloadGenerator 签名不兼容。 尝试降级到 composer 2.0.6,使用 composer self-update 2.0.6 命令。

VVV: HostsUpdater vagrant 插件错误

...vagrant-hostsupdater/HostsUpdater.rb:126:in ``digest': no implicit conversion of nil into String (TypeError)

您可能正在运行不受支持的 Vagrant 版本。 撰写本文时,VVV 与 Vagrant 2.2.7 兼容。 请检查 VVV 的要求

VVV: install-wp-tests.sh 错误

mysqladmin: CREATE DATABASE failed; error: 'Access denied for user 'wp'@'localhost' to database 'wordpress-one-tests''

解决方法:

  • 使用 sudo mysql 打开 MySQL。
  • 运行 GRANT ALL PRIVILEGES ON * . * TO 'wp'@'localhost';。 通过输入 exit; 退出。
  • 再次运行 install-wp-tests.sh 脚本。

运行端到端测试时出现超时/404 错误

Store owner can complete onboarding wizard › can complete the product types section

TimeoutError: waiting for function failed: timeout 30000ms exceeded

1 | export const waitForElementCount = function ( page, domSelector, count ) {
> 2 | return page.waitForFunction(
| ^
3 | ( domSelector, count ) => {
4 | return document.querySelectorAll( domSelector ).length === count;
5 | },

端到端测试中的超时或 404 错误表明现有的构建可能已损坏。 运行 npm install && npm run clean && npm run build 以生成一个全新的构建。 值得注意的是,我们的某些 npm 脚本也会删除当前的构建,因此,在运行端到端测试之前,始终构建是一个好习惯。

Docker 容器构建失败,导致端到端测试无法执行

Thu Dec 3 11:55:56 +08 2020 - Docker 容器正在构建中
Thu Dec 3 11:56:06 +08 2020 - Docker 容器正在构建中
Thu Dec 3 11:56:16 +08 2020 - Docker 容器正在构建中
Thu Dec 3 11:56:26 +08 2020 - Docker 容器构建失败
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @woocommerce/e2e-environment@0.1.6 test:e2e: `bash ./bin/wait-for-build.sh && ./bin/e2e-test-integration.js`
npm ERR! Exit status 1

请确保 Docker 正在运行。虽然脚本显示“Docker 容器正在构建中”,但它实际上并不负责运行 Docker;它只是等待现有的 Docker 实例做出响应。如果未运行,请运行 npm run docker:up

设置 WooCommerce Payments 开发模式

将以下内容添加到 wp-config.php

define( 'WCPAY_DEV_MODE', true );

另请参阅 此文档

获取 WooCommerce 管理员安装时间戳

要获取安装时间戳(例如,在 NoteTraits 中的 wc_admin_active_for() 函数中),请尝试以下 SQL 语句:

SELECT * FROM wp_options WHERE option_name = 'woocommerce_admin_install_timestamp'

重置引导向导

删除 woocommerce_onboarding_profile 选项:

DELETE FROM wp_options WHERE option_name = 'woocommerce_onboarding_profile'

启用控制台中的跟踪调试

localStorage.setItem( 'debug', 'wc-admin:tracks' );

并将 Chrome 的日志级别设置为“详细”(verbose),并选中“已选中”状态。

使用 Vagrant (VVV) 运行 PHP 单元测试

  1. 通过 SSH 连接到 Vagrant 虚拟机 (vagrant ssh)
  2. cd /srv/www/<WP_INSTANCE>/public_html/wp-content/plugins/woocommerce-admin
  3. 执行设置:bin/install-wp-tests.sh wc-admin-tests root root
  4. 快速测试:./vendor/bin/phpunit --group fast
  5. 所有测试:./vendor/bin/phpunit

如果 phpunit 不存在,您可能需要运行 composer install