yith-brand-migrator/品牌迁移指南.md
2025-10-21 14:45:34 +00:00

5.2 KiB
Raw Permalink Blame History

YITH WooCommerce Brands Add-On 到 WooCommerce 原生品牌功能迁移指南

概述

本指南将帮助您将现有的 YITH WooCommerce Brands Add-On 数据迁移到 WooCommerce 9.4+ 的原生品牌功能。

数据结构分析

YITH WooCommerce Brands Add-On 结构

  • 分类法名称: yith_product_brand
  • 数据存储: 使用标准 WordPress 分类法表
    • wp_terms - 品牌名称和别名
    • wp_term_taxonomy - 分类法类型和描述
    • wp_term_relationships - 产品与品牌关联
    • wp_termmeta - 品牌元数据logo、banner等

WooCommerce 原生品牌功能结构

  • 分类法名称: product_brand
  • 数据存储: 同样使用标准 WordPress 分类法表
  • 兼容性: 与现有 WooCommerce 架构完全集成

迁移方案

方案一:使用提供的 PHP 迁移脚本

  1. 上传脚本

    # 将 migrate-yith-brands.php 上传到 WordPress 根目录
    
  2. 执行迁移

    # 方法1浏览器访问
    http://yoursite.com/migrate-yith-brands.php
    
    # 方法2WP-CLI 执行
    wp eval-file migrate-yith-brands.php
    
  3. 验证结果

    • 检查 WooCommerce > 产品 > 品牌 页面
    • 确认品牌数据正确显示
    • 验证产品页面品牌关联

方案二:手动 SQL 迁移

-- 1. 更新分类法名称
UPDATE wp_term_taxonomy 
SET taxonomy = 'product_brand' 
WHERE taxonomy = 'yith_product_brand';

-- 2. 刷新 WordPress 缓存
-- 需要在 WordPress 后台或通过代码执行

方案三:使用 WP-CLI推荐

# 预览迁移(不执行实际操作)
wp eval-file wp-cli-migrate-brands.php --dry-run=true

# 执行迁移
wp eval-file wp-cli-migrate-brands.php

# 迁移并清理旧数据
wp eval-file wp-cli-migrate-brands.php --cleanup=true

迁移步骤详解

1. 备份数据库

# 使用 mysqldump 备份
mysqldump -u username -p database_name > backup_before_migration.sql

# 或使用 WP-CLI
wp db export backup_before_migration.sql

2. 检查当前品牌数据

-- 查看现有品牌数量
SELECT COUNT(*) FROM wp_term_taxonomy WHERE taxonomy = 'yith_product_brand';

-- 查看品牌名称
SELECT t.name, t.slug, tt.description, tt.count 
FROM wp_terms t 
JOIN wp_term_taxonomy tt ON t.term_id = tt.term_id 
WHERE tt.taxonomy = 'yith_product_brand';

3. 启用 WooCommerce 原生品牌功能

functions.php 中添加:

// 启用 WooCommerce 原生品牌功能
add_action('init', function() {
    if (class_exists('WooCommerce')) {
        // 注册品牌分类法
        register_taxonomy('product_brand', 'product', [
            'labels' => [
                'name' => '品牌',
                'singular_name' => '品牌',
                'menu_name' => '品牌',
            ],
            'public' => true,
            'show_ui' => true,
            'show_in_menu' => true,
            'show_admin_column' => true,
            'hierarchical' => true,
            'rewrite' => ['slug' => 'product-brand'],
            'show_in_rest' => true,
        ]);
    }
});

4. 执行迁移

选择上述任一方案执行迁移。

5. 更新主题模板

如果主题中有自定义的品牌显示代码,需要更新:

// 旧代码
$brands = get_the_terms($product_id, 'yith_product_brand');

// 新代码  
$brands = get_the_terms($product_id, 'product_brand');

6. 测试验证

  • 品牌页面正常显示
  • 产品页面品牌信息正确
  • 品牌筛选功能正常
  • 品牌 logo 和描述正确显示
  • SEO URL 正常工作

注意事项

兼容性检查

  • 确保 WooCommerce 版本 ≥ 9.4
  • 检查主题是否支持原生品牌功能
  • 验证相关插件兼容性

数据完整性

  • 迁移前后品牌数量应一致
  • 产品关联关系应保持不变
  • 品牌元数据logo、描述等应完整迁移

性能优化

// 迁移后清理缓存
wp_cache_flush();
delete_option('_transient_wc_attribute_taxonomies');

回滚方案

如果迁移出现问题,可以通过以下方式回滚:

-- 恢复原分类法名称
UPDATE wp_term_taxonomy 
SET taxonomy = 'yith_product_brand' 
WHERE taxonomy = 'product_brand';

或直接恢复数据库备份:

mysql -u username -p database_name < backup_before_migration.sql

常见问题

Q: 迁移后品牌页面显示 404

A: 需要刷新固定链接设置

wp rewrite flush

Q: 品牌 logo 丢失

A: 检查 termmeta 表中的元数据是否正确迁移

SELECT * FROM wp_termmeta WHERE meta_key LIKE '%brand%';

Q: 产品页面不显示品牌

A: 检查主题模板是否使用了正确的分类法名称

后续维护

禁用 YITH 插件

迁移成功后,可以安全禁用 YITH WooCommerce Brands Add-On 插件。

清理旧数据

-- 删除旧的分类法数据(谨慎操作)
DELETE FROM wp_term_taxonomy WHERE taxonomy = 'yith_product_brand';

更新相关代码

检查并更新所有使用 yith_product_brand 的代码为 product_brand

技术支持

如果在迁移过程中遇到问题,请:

  1. 检查错误日志
  2. 验证数据库连接
  3. 确认权限设置
  4. 联系技术支持团队