You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WooCommerce报错:无法找到wp-admin-scripts资源注册表求助

解决WooCommerce禁用其他插件后出现的"Could not find asset registry for wp-admin-scripts"致命错误

问题描述

仅保留WooCommerce插件、禁用其余所有插件后,网站触发致命错误,报错为:未捕获异常“Could not find asset registry for wp-admin-scripts”,触发位置在/wp-content/plugins/woocommerce/src/Internal/Admin/WCAdminAssets.php第128行,完整堆栈跟踪如下:

Fatal error: Uncaught Exception: Could not find asset registry for wp-admin-scripts in /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-content/plugins/woocommerce/src/Internal/Admin/WCAdminAssets.php:128 
Stack trace: 
#0 /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-content/plugins/woocommerce/src/Internal/Admin/WCAdminAssets.php(401): Automattic\WooCommerce\Internal\Admin\WCAdminAssets::get_script_asset_filename('wp-admin-script...', 'product-trackin...') 
#1 /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-content/plugins/woocommerce/includes/tracks/events/class-wc-products-tracking.php(355): Automattic\WooCommerce\Internal\Admin\WCAdminAssets::register_script('wp-admin-script...', 'product-trackin...', false) 
#2 /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-includes/class-wp-hook.php(308): WC_Products_Tracking->possibly_add_product_tracking_scripts('edit.php') 
#3 /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-includes/class-wp-hook.php(332): W in /data/web/virtuals/298612/virtual/www/domains/miltexshop.cz/wp-content/plugins/woocommerce/src/Internal/Admin/WCAdminAssets.php on line 128

相关代码分析

报错来自WCAdminAssets.php中的get_script_asset_filename函数,该函数负责查找脚本的asset注册文件,代码如下:

/**
 * Gets a script asset registry filename. The asset registry lists dependencies for the given script.
 *
 * @param  string $script_path_name Path to where the script asset registry is contained.
 * @param  string $file File name (without extension).
 * @return string complete asset filename.
 *
 * @throws \Exception Throws an exception when a readable asset registry file cannot be found.
 */
public static function get_script_asset_filename( $script_path_name, $file ) {
    $minification_supported = Features::exists( 'minified-js' );
    $script_min_filename    = $file . '.min.asset.php';
    $script_nonmin_filename = $file . '.asset.php';
    $script_asset_path      = WC_ADMIN_ABSPATH . WC_ADMIN_DIST_JS_FOLDER . $script_path_name . '/';

    // Check minification is supported first, to avoid multiple is_readable checks when minification is
    // not supported.
    if ( $minification_supported && is_readable( $script_asset_path . $script_min_filename ) ) {
        return $script_min_filename;
    } elseif ( is_readable( $script_asset_path . $script_nonmin_filename ) ) {
        return $script_nonmin_filename;
    } else {
        // could not find an asset file, throw an error.
        throw new \Exception( 'Could not find asset registry for ' . $script_path_name );
    }
}

从代码逻辑看,函数尝试读取wp-admin-scripts目录下的product-tracking.min.asset.php或product-tracking.asset.php文件,若两者都找不到或无法读取,就会抛出错误。

无需重装的修复思路

  1. 检查目标文件是否存在
    登录服务器,导航到wp-content/plugins/woocommerce/packages/woocommerce-admin/dist/js/wp-admin-scripts/目录,确认product-tracking.asset.php和product-tracking.min.asset.php是否存在。如果缺失,从官方WooCommerce对应版本的安装包中提取这两个文件,上传到该目录。

  2. 修复目录与文件权限
    将wp-admin-scripts目录权限设置为755,目录内所有文件权限设置为644,确保WooCommerce能正常读取这些文件。

  3. 临时禁用产品跟踪功能
    若无法立即修复文件,可通过代码临时绕过错误:在当前主题的functions.php末尾添加以下代码:

    add_filter( 'woocommerce_products_tracking_enabled', '__return_false' );
    

    保存后刷新后台,验证是否能正常访问,后续再补全缺失文件。

  4. 验证版本兼容性
    确认当前WordPress版本与WooCommerce版本是否兼容,若版本不匹配导致文件结构异常,可升级或降级到兼容版本(直接覆盖对应版本的WooCommerce文件即可,无需重装)。

内容的提问来源于stack exchange,提问作者Pe Tr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 22:33:00