diff --git a/使用说明.md b/使用说明.md new file mode 100644 index 0000000..5ca5bb4 --- /dev/null +++ b/使用说明.md @@ -0,0 +1,80 @@ +# YITH 品牌迁移脚本工具包 + +## 📁 文件结构 + +``` +yith/ +├── migrate-script.php # 迁移执行脚本 +├── verify-data.php # 数据验证脚本 +├── rollback-script.php # 回滚脚本 +├── test-plugin.php # 状态检查脚本 +├── 品牌迁移指南.md # 详细迁移指南 +└── 使用说明.md # 本文件 +``` + +## 🚀 使用方法 + +### 1. 检查当前状态 +```bash +php test-plugin.php +``` + +### 2. 执行迁移 +```bash +php migrate-script.php +``` + +### 3. 验证数据 +```bash +php verify-data.php +``` + +### 4. 回滚(如需要) +```bash +php rollback-script.php +``` + +## 📊 脚本功能说明 + +### test-plugin.php +- 显示当前品牌数据统计 +- 检查数据库连接状态 +- 快速状态检查 + +### migrate-script.php +- 执行完整的迁移流程 +- 显示迁移前后数据对比 +- 包含事务安全保护 +- 自动清理缓存 + +### verify-data.php +- 验证迁移后的数据完整性 +- 显示品牌列表和统计信息 +- 检查产品关联和元数据 + +### rollback-script.php +- 将原生品牌回滚为 YITH 品牌 +- 完全逆向操作 +- 包含安全检查 + +## ⚠️ 注意事项 + +1. **备份数据**:执行迁移前请备份数据库 +2. **测试环境**:建议先在测试环境中验证 +3. **插件冲突**:确保 YITH 品牌插件已停用 +4. **权限检查**:确保有足够的数据库操作权限 + +## 🔧 技术细节 + +- **数据库操作**:使用 WordPress 原生 `$wpdb` 类 +- **事务安全**:所有操作都包含在数据库事务中 +- **缓存处理**:自动清理 WordPress 和 WooCommerce 缓存 +- **错误处理**:完整的错误捕获和回滚机制 + +## 📞 技术支持 + +如遇到问题,请检查: +1. WordPress 和 WooCommerce 版本兼容性 +2. 数据库权限设置 +3. PHP 错误日志 +4. 插件冲突情况 \ No newline at end of file diff --git a/品牌迁移指南.md b/品牌迁移指南.md new file mode 100644 index 0000000..1be726c --- /dev/null +++ b/品牌迁移指南.md @@ -0,0 +1,215 @@ +# 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. **上传脚本** + ```bash + # 将 migrate-yith-brands.php 上传到 WordPress 根目录 + ``` + +2. **执行迁移** + ```bash + # 方法1:浏览器访问 + http://yoursite.com/migrate-yith-brands.php + + # 方法2:WP-CLI 执行 + wp eval-file migrate-yith-brands.php + ``` + +3. **验证结果** + - 检查 WooCommerce > 产品 > 品牌 页面 + - 确认品牌数据正确显示 + - 验证产品页面品牌关联 + +### 方案二:手动 SQL 迁移 + +```sql +-- 1. 更新分类法名称 +UPDATE wp_term_taxonomy +SET taxonomy = 'product_brand' +WHERE taxonomy = 'yith_product_brand'; + +-- 2. 刷新 WordPress 缓存 +-- 需要在 WordPress 后台或通过代码执行 +``` + +### 方案三:使用 WP-CLI(推荐) + +```bash +# 预览迁移(不执行实际操作) +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. 备份数据库 +```bash +# 使用 mysqldump 备份 +mysqldump -u username -p database_name > backup_before_migration.sql + +# 或使用 WP-CLI +wp db export backup_before_migration.sql +``` + +### 2. 检查当前品牌数据 +```sql +-- 查看现有品牌数量 +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` 中添加: +```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. 更新主题模板 + +如果主题中有自定义的品牌显示代码,需要更新: + +```php +// 旧代码 +$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、描述等)应完整迁移 + +### 性能优化 +```php +// 迁移后清理缓存 +wp_cache_flush(); +delete_option('_transient_wc_attribute_taxonomies'); +``` + +## 回滚方案 + +如果迁移出现问题,可以通过以下方式回滚: + +```sql +-- 恢复原分类法名称 +UPDATE wp_term_taxonomy +SET taxonomy = 'yith_product_brand' +WHERE taxonomy = 'product_brand'; +``` + +或直接恢复数据库备份: +```bash +mysql -u username -p database_name < backup_before_migration.sql +``` + +## 常见问题 + +### Q: 迁移后品牌页面显示 404 +**A**: 需要刷新固定链接设置 +```bash +wp rewrite flush +``` + +### Q: 品牌 logo 丢失 +**A**: 检查 termmeta 表中的元数据是否正确迁移 +```sql +SELECT * FROM wp_termmeta WHERE meta_key LIKE '%brand%'; +``` + +### Q: 产品页面不显示品牌 +**A**: 检查主题模板是否使用了正确的分类法名称 + +## 后续维护 + +### 禁用 YITH 插件 +迁移成功后,可以安全禁用 YITH WooCommerce Brands Add-On 插件。 + +### 清理旧数据 +```sql +-- 删除旧的分类法数据(谨慎操作) +DELETE FROM wp_term_taxonomy WHERE taxonomy = 'yith_product_brand'; +``` + +### 更新相关代码 +检查并更新所有使用 `yith_product_brand` 的代码为 `product_brand`。 + +## 技术支持 + +如果在迁移过程中遇到问题,请: +1. 检查错误日志 +2. 验证数据库连接 +3. 确认权限设置 +4. 联系技术支持团队 \ No newline at end of file