插件简介
专为子比主题 (Zibll) 开发的前端商品发布解决方案,允许普通用户在前端发布和管理商品,完整支持多规格商品、订单处理、推广返佣和优惠活动。完全基于子比主题钩子开发,无需修改主题核心文件,样式与子比主题原生风格高度统一,完美适配日间 / 夜间模式。
版本更新
v1.2.0 – 重构优化版本(推荐升级)
本次更新进行了全面的代码架构重构和性能提升,解决了历史版本的维护性和安全性问题。
1. 代码架构优化
- 命名空间隔离:引入 PHP 命名空间彻底解决全局变量和函数冲突问题
- 单一职责拆分:将原 1866 行的单文件拆分为 8 个独立类文件
constants.php– 全局常量与状态枚举定义class-cache.php– 统一缓存管理class-security.php– 安全验证与输入清理class-product.php– 商品 CRUD 与业务逻辑class-order.php– 订单与售后管理class-settings.php– 插件设置管理class-ajax.php– AJAX 请求统一处理zibll-shop-frontend-publish.php– 主入口文件(仅保留钩子注册)
2. 安全性增强
- 文件上传双重验证:同时检查文件扩展名和真实 MIME 类型,防止恶意文件上传
- 请求速率限制:所有 AJAX 接口添加 60 秒内最多 10 次请求的限流保护
- 统一权限控制:新增
check_seller_permission()方法,集中管理商家权限 - 全面输入过滤:所有外部输入严格使用 WordPress 官方
sanitize_*函数处理
3. 性能优化
- 解决 N+1 查询问题:
- 订单列表批量获取关联商品、用户信息和缩略图
- 使用
get_posts()批量查询替代循环内单次查询
- 多层缓存机制:
- 商品分类列表缓存(1 小时)
- 优惠活动列表缓存(30 分钟)
- 商家统计数据缓存(5 分钟)
- 全部使用 WordPress 原生对象缓存
wp_cache_get/set替代get_transient
4. 代码质量提升
- 枚举常量替代魔法数字:
php运行
// 订单状态枚举 Order_Status::PENDING = 1; // 待付款 Order_Status::PAID = 2; // 已付款 Order_Status::SHIPPED = 3; // 已发货 Order_Status::COMPLETED = 4; // 已完成 Order_Status::CANCELLED = 5; // 已取消 // 售后状态枚举 After_Sale_Status::PENDING = '1'; After_Sale_Status::PROCESSING = '2'; After_Sale_Status::COMPLETED = '3'; After_Sale_Status::REJECTED = '4'; - 统一状态显示:新增
Status_Names类,集中处理所有状态的文本映射 - 标准化 AJAX 响应:封装
Security::ajax_error()和Security::ajax_success()方法
5. 前端体验优化
- 原生主题样式:完全采用子比主题 CSS 变量系统,无缝适配日间 / 夜间模式
- 实时表单验证:所有输入项添加实时验证和统一错误提示
- 危险操作确认:删除商品、取消订单等操作添加二次确认弹窗
- 加载状态优化:所有异步操作添加按钮加载状态和全局 loading 动画
- 移动端深度优化:重新设计移动端布局,提升触摸操作体验
6. 标准文件结构
plaintext
zibll-shop-frontend-publish/
├── zibll-shop-frontend-publish.php # 插件主入口
├── includes/ # 核心类文件
│ ├── constants.php # 常量与枚举定义
│ ├── class-cache.php # 缓存管理
│ ├── class-security.php # 安全验证
│ ├── class-product.php # 产品管理
│ ├── class-order.php # 订单与售后管理
│ ├── class-settings.php # 设置管理
│ └── class-ajax.php # AJAX处理
├── templates/ # 前端模板
│ ├── product-edit.php # 商品发布/编辑
│ ├── product-manage.php # 商品管理
│ └── seller-orders.php # 订单管理
└── assets/ # 静态资源
├── js/frontend.js # 前端脚本
└── css/frontend.css # 样式文件
v1.1.7
- 修复移动端响应式布局问题
- 修复积分商品收益计算错误
- 完善订单详情页积分商品信息显示
- 新增订单详情弹窗功能
- 添加商品类型(积分 / 付费)标识
- 优化移动端订单详情视图
v1.1.6
- 新增完整售后管理系统
- 支持用户提交退款 / 退货申请
- 商家端可处理退款确认和退货收货
- 新增售后状态统计面板
- 添加售后详情弹窗
- 实现售后状态变更实时通知
安装说明
- 下载插件并解压
- 将
zibll-shop-frontend-publish目录上传至wp-content/plugins/ - WordPress 后台 → 插件 → 启用「子比主题商城前端发布」
- 进入「设置」→「商城前端发布」进行配置
核心功能
- ✅ 前端商品发布与编辑
- ✅ 多规格商品支持(颜色、尺寸等)
- ✅ 商品分类与标签管理
- ✅ 推广返佣比例自定义
- ✅ 优惠活动关联选择
- ✅ 运费模板配置
- ✅ 商家端订单管理
- ✅ 完整售后管理流程
- ✅ 订单与售后消息通知
- ✅ 完美适配子比主题样式
- ✅ 全面支持日间 / 夜间模式
- ✅ 移动端深度优化
伪静态规则配置
Nginx(含宝塔面板)
添加到 Nginx 配置文件的
server块中:nginx
location /shop-edit {
try_files $uri $uri/ /index.php?zsfp_product_edit=$1;
}
location /shop-manage {
try_files $uri $uri/ /index.php?zsfp_product_manage=$1;
}
location /shop-orders {
try_files $uri $uri/ /index.php?zsfp_seller_orders=$1;
}
宝塔面板操作:网站设置 → 伪静态 → 自定义 → 粘贴规则 → 保存。
Apache (.htaccess)
添加到站点根目录
.htaccess文件:apache
RewriteEngine On
RewriteRule ^shop-edit/?$ index.php?zsfp_product_edit=add [L]
RewriteRule ^shop-edit/([0-9]+)/?$ index.php?zsfp_product_edit=$1 [L]
RewriteRule ^shop-manage/?$ index.php?zsfp_product_manage=list [L]
RewriteRule ^shop-manage/([0-9]+)/?$ index.php?zsfp_product_manage=$1 [L]
RewriteRule ^shop-orders/?$ index.php?zsfp_seller_orders=list [L]
页面访问链接
配置伪静态后可通过以下地址访问:
- 发布新商品:
/shop-edit - 编辑商品:
/shop-edit/{商品ID} - 商品管理:
/shop-manage - 订单管理:
/shop-orders
配置选项
表格
| 配置选项 | 详细说明 | 默认值 |
|---|---|---|
| 允许用户发布商品 | 全局开关,控制前端发布功能 | 开启 |
| 允许游客发布 | 是否允许未登录用户发布(不推荐) | 关闭 |
| 默认收益分成比例 | 商家获得的销售额比例,平台获得剩余部分 | 70% |
| 会员级别限制 | 仅允许指定会员级别发布商品 | 无限制 |
| 禁止发布的用户 | 用户 ID 黑名单,多个用逗号分隔 | 空 |
| 新商品通知管理员 | 发布商品时邮件通知管理员 | 开启 |
| 订单消息通知商家 | 新订单时邮件 + 站内信通知商家 | 开启 |
| 自动同意售后申请 | 自动通过用户提交的售后申请 | 关闭 |
| 每日发布上限 | 每个用户每日最多发布商品数,0 为不限制 | 0 |
兼容性要求
- WordPress 5.0+
- 子比主题 (Zibll) 最新稳定版
- PHP 7.4+(推荐 PHP 8.0+)
技术支持
注意事项
- 本插件无需修改任何主题核心文件,升级主题不会影响插件功能
- 必须正确配置伪静态规则,否则页面将无法正常访问
- 建议定期备份数据库,以防数据丢失
- 如遇兼容性问题,请先升级 WordPress 和子比主题至最新版本
© 版权声明
本网站部分文件及内容来自互联网,版权归原作者所有。转载需授权,侵权必究。部分内容受《网络出版服务管理规定》保护,未经许可禁止商业使用。
THE END














暂无评论内容