一.不影响wordpess原来的功能,
二:在WordPress后台,每个列表,可以通过分类筛选,位置筛选,查找快速找到产品。
·二.1:WordPress后台[产品]列表中,显示,产品库存,产品分类,产品位置,产品图片,快捷操作.入库.出库。
·二.2:在WordPress后台产品列表快捷操作,可以直接入库出库,
·二.3:在WordPress后台产品列表可以直接在产品列表中快捷操作进行入库,入库需要填写入库数量,填写备注,上传入库签名图片,入库完,WordPress后台入库记录里显示刚刚的入库信息,就会调用刚刚入库产品信息,入库数量,入库签名图片形成一条完整的入库记录,这样入库一次形成一次完整的入库记录,方便以后查看,方便以后对账。
·二.4:在WordPress后台产品列表可以直接在产品列表中快捷操作进行出库,出库需要填写出库数量,填写备注,上传出库签名图片,出库完,WordPress后台出库记录里显示刚刚的出库信息,就会调用刚刚出库产品信息,出库数量,出库签名图片形成一条完整的出库记录,这样出库一次形成一次完整的出库记录,方便以后查看,方便以后对账。
·二.5:在WordPress后台[入库记录]列表中显示,产品名称,产品编码,客户编码,入库数量,产品分类,入库位置,入库签名图片,备注,日期。(显示所有入库日记)
·二.6:在WordPress后台[出库记录]列表中显示,产品名称,产品编码,客户编码,出库数量,产品分类,出库位置,出库签名图片,备注,日期。(显示所有出库日记)
·二.7:WordPress后台管理,
前端只能查看,前端布局跟wordpress后台一样,
·入库一次,在[�入库记录]列表中自动生成一条入库记录(入库日记)。入库记录名=入库+产品名称+。
·出库一次,在[�出库记录]列表中自动生成一条出库记录(出库日记)。出库记录名=出库+产品名称+。
·自动计算库存。
·自动计算入库总数。
·自动计算出库总数。
·二.8:产品分类要有文章分类目录的功能,·入库记录列表里,入库位置要有分类目录功能,产品分类要有分类目录功能。·出库记录列表里,出库位置要有分类目录功能,产品分类要有分类目录功能。
·二.9:在WordPress后台点击产品,查看产品就会显示产品的所有,入库记录,出库记录,方便对账。
三.1:前端以表格形式显示,WordPress的入库出库日记记录,不登录也能访问前端,
三.2:前端首页,显示所以产品库存,菜单,入库记录,出库记录,(就是所以得入库出库日记)可以筛选,可以通过搜索产品,进入到产品详细页面,
产品详细页面,先是产品图片,产品描述,下一行,以表格形式显示产品库存,
分两栏,点入库记录,显示所以的入库日记,点出库同理,
三.3:以表格形式显示,要有结存,产生一条记录,自动计算,登录后,可以直接在前端,入库出库,可以自定义,库存警报,
产品详细页面,可以通过二维码分享,
分享时,产品名字加二维码生成图片分享(产品名在第一行,第二行就是二维码)
分享后,扫描二维码,直接回到当时分享的产品,(每个产品都可以有独一无二的二维码,)
三.4:前端最下方,显示,搭建WordPress这博客名字,修改名字,最下方跟着更新
三.5:不登录也能访问,登录后菜单不显示登录(没有登录,菜单显示登录)不是管理员不能进入WordPress后台
三.6:操作出库入库需要登录后才能在前端操作,才能操作出库入库,
一定要兼容移动端(手机,平板,电脑)
硬性规则:
1. 如果输出空间不足,不要强行截断代码,主动分段输出;
2. 禁止使用 /* 省略代码 */ 、// ...剩余逻辑 这类占位简写;
3. PHP代码保证所有{}括号完整闭合,严格遵守WordPress编码规范;
4. 注册字段完整输出所有数组配置项,不要删减choices选项。
文章末尾固定信息






11F
仓库管理系统(WMS)超级详细开发维护手册
版本:2026.08 完整版
适用主题:wms-theme
核心文件:functions.php、wms-addons.php、style.css、模板文件
—
一、系统概述
本系统基于 WordPress 主题开发,集成了完整的仓库管理功能,包括:
· 产品管理(自定义文章类型 wh_product)
· 入库记录(wh_inbound)与出库记录(wh_outbound)
· 库存自动计算与预警
· 前端公开访问(可设置密码/登录限制)
· 用户权限控制(出入库权限分离)
· 产品 CSV 导入(支持字段级覆盖)
· 出入库记录 CSV 导出(自定义模板)
· 二维码生成、批量打印、批量导出(Excel/PDF/ZIP)
· 前端表格列自定义(后台可视化配置,独立保存)
· 操作日志记录
· 自定义登录 Logo、网站标题(微信/浏览器标题优化)
—
二、文件结构及功能详解
“`
wms-theme/
├── style.css # 前端全部样式(白灰主题、响应式表格、按钮、打印样式等)
├── functions.php # 核心功能模块(注册类型、库存逻辑、出入库处理、CSV导出、日志等)
├── wms-addons.php # 扩展功能模块(仓库设置、用户权限、导入产品、表格自定义、网站标题)
├── header.php # 导航栏、登录状态、博客名称显示
├── footer.php # 页脚
└── page-templates/
├── products.php # 产品列表(动态列、搜索、分类筛选、分页)
├── inbound-records.php # 入库记录(动态列、分类/日期筛选、分页、导出)
├── outbound-records.php # 出库记录(动态列、分类/日期筛选、分页、导出)
├── stock-alerts.php # 库存预警(动态列、补货按钮)
├── warehouse-home.php # 今日汇总(统计卡片、最近操作记录动态列)
└── product-detail.php # 产品详情(产品信息表格、出入库表单、入库/出库动态表格、二维码打印)
“`
各文件关键点
style.css
· 定义 CSS 变量(白灰配色)
· 响应式表格(.table-responsive + .wms-table)
· 按钮样式(.wms-btn 及变体)
· 表单样式(.wms-form-group)
· 打印样式(@media print)
· 导航栏样式(固定置顶)
· 产品信息表格样式(.wms-product-info-table)
· 类型列颜色(.wms-type-inbound / .wms-type-outbound)
· 二维码打印区域样式
functions.php
· 注册自定义文章类型:wh_product、wh_inbound、wh_outbound、wh_log
· 注册分类法:product_cat、storage_location、inbound_location、outbound_location
· 创建页面:主题激活时自动创建所需页面
· 模板加载:根据页面 slug 加载 page-templates 中对应模板
· 产品规格元框:在产品编辑页添加规格输入
· 出入库处理:wms_handle_stock_forms() 处理前端提交的入库/出库表单,更新库存并记录日志
· 删除记录调整库存:wms_before_delete_post()
· 操作日志:wms_add_log() 写入 wh_log 文章类型
· CSV 导出:wms_export_csv() 支持自定义模板和筛选
· AJAX 获取位置选项:wms_ajax_get_location_terms()
· 后台导入产品:wms_import_products_page()(旧版,可能被 wms-addons.php 中的 V2 替换)
· 后台导出模板管理:wms_export_templates_page()
· 后台操作日志页面:wms_logs_page()
· 自定义后台白灰样式:wms_custom_admin_css()
· 品牌信息替换:登录 Logo 链接、后台工具栏 Logo 隐藏、页脚文字等
· 批量打印二维码:wms_batch_print_page() 和 wms_batch_print_output()
· 批量导出二维码:wms_batch_export_qr_page() 和 wms_batch_export_qr_handle()
wms-addons.php
· 仓库设置:wms_settings_page()(登录 Logo、访问控制、网站标题)
· 前端访问控制:wms_front_access_control()(开放/密码/登录)
· 网站标题过滤器:wms_custom_document_title_parts()
· 用户权限管理:wms_user_permissions_page(),保存权限到 user_meta,拦截无权限操作
· 导入产品 V2:wms_import_products_page_v2() 支持字段级覆盖,替换旧版导入菜单
· 表格列自定义:wms_table_settings_page() 顶部按钮切换表格,独立保存列设置
· 自定义列:可添加自定义列键和名称,前端通过 meta 读取
—
三、数据模型详细说明
自定义文章类型
类型 名称 公开 后台菜单 说明
wh_product 产品 是 产品 产品信息,支持缩略图、编辑器
wh_inbound 入库记录 否 入库记录 不允许在后台手动创建(create_posts 禁用)
wh_outbound 出库记录 否 出库记录 同上
wh_log 操作日志 否 无(专用页面) 记录操作日志,后台通过专用页面查看
分类法
分类法 关联类型 层级 说明
product_cat 产品 是 产品分类
storage_location 产品 否 存放位置(标签)
inbound_location 入库记录 否 入库位置(标签)
outbound_location 出库记录 否 出库位置(标签)
产品 Meta 字段
Meta 键 类型 说明
_wms_stock 整数 当前库存,由出入库操作自动更新
_wms_low_stock_threshold 整数 预警阈值,默认5
_wms_spec 字符串 产品规格
_wms_signature URL 签名图片地址(可选)
_wms_doc_image URL 单据图片地址(可选)
_wms_location2 字符串 库位(可选)
出入库记录 Meta 字段
Meta 键 类型 说明
_wms_product_id 整数 关联产品 ID
_wms_quantity 整数 本次操作数量(正数)
_wms_operator 字符串 操作人用户名
_wms_date 时间戳 操作时间
_wms_balance 整数 操作后结存库存
_wms_note 文本 备注
_wms_customer_note 文本 客户备注(仅入库记录有)
_wms_customer_note_image URL 客户备注图片(仅入库记录有)
_wms_signature URL 签名图片(可选)
_wms_doc_image URL 单据图片(可选)
_wms_location2 字符串 库位(可选)
操作日志 Meta 字段
Meta 键 类型 说明
_wms_log_user_id 整数 用户 ID
_wms_log_username 字符串 用户名
_wms_log_action 字符串 操作类型(入库、出库、删除等)
_wms_log_description 文本 操作详情
_wms_log_time 时间戳 操作时间
_wms_log_product_id 整数 关联产品 ID(可选)
_wms_log_quantity 整数 数量(可选)
_wms_log_balance 整数 结存(可选)
—
四、关键函数索引
functions.php 中的函数
函数名 用途
wms_register_post_types() 注册自定义文章类型
wms_register_taxonomies() 注册分类法
wms_create_pages() 主题激活时创建页面
wms_template_include() 根据页面 slug 加载模板
wms_enqueue_scripts() 加载前端样式和脚本
wms_get_product_stock() 获取产品库存
wms_update_product_stock() 更新产品库存
wms_get_low_stock_threshold() 获取预警阈值
wms_add_log() 写入操作日志
wms_add_product_spec_meta_box() 添加产品规格元框
wms_save_product_spec() 保存产品规格
wms_handle_stock_forms() 处理出入库表单,更新库存,记录日志
wms_before_delete_post() 删除记录时调整库存,记录日志
wms_restrict_admin_access() 禁止非管理员访问后台
wms_export_csv() CSV 导出(支持模板)
wms_ajax_get_location_terms() AJAX 返回位置选项
wms_import_products_page() 旧版导入产品页面(可能被替换)
wms_export_templates_page() 导出模板管理
wms_logs_page() 操作日志查看页面
wms_custom_admin_css() 后台白灰样式
wms_batch_print_page() 批量打印二维码页面
wms_batch_print_output() 批量打印输出页面
wms_batch_export_qr_page() 批量导出二维码页面
wms_batch_export_qr_handle() 批量导出处理(Excel/PDF/ZIP)
wms-addons.php 中的函数
函数名 用途
wms_add_settings_page() / wms_settings_page() 仓库设置页面
wms_custom_login_logo_style() 登录 Logo 样式
wms_front_access_control() 前端访问控制
wms_custom_document_title_parts() 网站标题过滤器
wms_add_user_permissions_page() / wms_user_permissions_page() 用户权限管理
wms_check_stock_permission() 出入库权限拦截
wms_remove_and_replace_import_menu() 替换旧版导入菜单为 V2
wms_import_products_page_v2() 支持字段级覆盖的导入页面
wms_add_table_settings_page() / wms_table_settings_page() 表格列自定义页面
wms_get_table_definitions() 返回表格定义和默认列
wms_get_available_columns() 返回所有可用列(含自定义)
wms_get_table_settings() 获取指定表格的列设置
wms_find_chinese_font() 查找服务器中文字体(ZIP导出用)
—
五、后台菜单结构(产品菜单下)
菜单标题 页面 slug 功能
产品 edit.php?post_type=wh_product 产品列表
入库记录 edit.php?post_type=wh_inbound 入库记录列表
出库记录 edit.php?post_type=wh_outbound 出库记录列表
操作日志 wms-logs 查看操作日志
导入产品 wms-import-products-v2 CSV导入,支持字段覆盖
导出模板 wms-export-templates 自定义CSV导出模板
批量打印二维码 wms-batch-print 批量打印二维码
批量导出二维码 wms-batch-export-qr 批量导出二维码(Excel/PDF/ZIP)
用户权限 wms-user-permissions 用户出入库权限管理
表格设置 wms-table-settings 前端表格列自定义
仓库设置 wms-settings 登录Logo、访问控制、网站标题
—
六、表格列自定义机制
1. 可用列:定义在 wms_get_available_columns() 中,包含所有常用字段及自定义字段。自定义列可通过后台添加。
2. 表格定义:wms_get_table_definitions() 返回每个表格的默认列。
3. 前端模板:通过 wms_get_table_settings(‘表格键名’, 默认列数组) 获取当前生效的列顺序。
4. 后台保存:每个表格独立保存,互不影响。顶部按钮切换当前编辑的表格。
5. 自定义列:在表格设置页面上方可添加自定义列键(英文)和显示名称,添加后出现在所有表格的候选列表中。前端模板的 default 分支会尝试从 post_meta 或记录 post_meta 读取该键的值。
表格键名与对应页面
表格键名 页面
products 产品列表
inbound-records 入库记录
outbound-records 出库记录
stock-alerts 库存预警
warehouse-home 今日汇总-最近操作记录
product-inbound 产品详情-入库记录
product-outbound 产品详情-出库记录
—
七、已知常见问题与排查
1. 前端页面加载慢
· 检查模板是否分页(posts_per_page 应为20),避免 -1。
· 今日汇总的库存预警部分会获取所有产品,可优化为仅查询低库存产品。
2. 微信/浏览器标题显示网址
· 确认 wms_custom_document_title_parts 函数存在且未冲突。
· 确保后台「设置」→「常规」中站点标题不为空。
3. 表格设置保存后顺序丢失
· 确认 wms_save_current_table 使用 $_POST[‘columns’] 数组顺序保存。
4. ZIP 导出损坏或缓慢
· 检查 PHP GD 库是否启用。
· 增加 set_time_limit(0) 和内存限制。
· 减少单次导出产品数量,或使用本地二维码生成库。
5. 二维码打印大小不合适
· 调整 style.css 中 #print-area 的 CSS 或打印机设置。
6. 用户权限无效
· 确认用户不是管理员(管理员始终有全部权限)。
· 确认 wms_check_stock_permission 在 template_redirect 优先级为1。
7. 导入产品覆盖不生效
· 确认 CSV 中对应列有值,且勾选了对应覆盖字段。
—
八、修改历史记录
· 2026-08 初始:基础出入库、产品管理、库存计算。
· 后续新增:二维码打印/导出、用户权限、表格自定义、导入导出优化、网站标题、访问控制。
· 优化修复:前端加载性能、微信标题、ZIP 导出稳定性、Excel 布局。
—
九、未来改进方向(可扩展)
· 产品价格/成本字段
· 多仓库支持(每个产品可关联多个仓库库存)
· 扫描枪直接扫码出入库
· 更丰富的报表(库存周转率、月度汇总)
· 消息通知(低库存自动邮件/微信通知)
· 本地二维码生成(离线可用)
—
10F
1.你真棒,现在WordPress后台可以自定义顺序了,(最好实现,在WordPress后台,实现自定义表格,增加表头如增加
[类型]
[产品名称]
[产品规格]
[数量]
[入库数量]
[出库数量]
[当前库存]
[结存]
[产品分类]
[存放位置]
[入库位置]
[出库位置]
[库位]
[备注]
[操作人]
[操作时间]
[客户备注]
[产品分类]
[签名图片]
[单据图片]
,或删除,可以自由选择)
2.用微信扫码进去,还是显示博客地址,请帮我,(用微信扫码进去显示WordPress博客名称,然后页面名称,在游览器里,也同样)
3.在产品详细里,打印二维码,还是导出二维码,都只显示二维码+产品名称(字体要大,但宽度不能超过二维码)
9F
我要用WordPress,做一个仓库管理系统,
WordPress后台管理,
前端查看,
1.前端用表格显示(x‑data‑spreadsheet免费开源表格)
(先设置好,变量,然后可以在WordPress后台,自定义表格表头,可以增加表格表头,可以在WordPress后台改变表格表头顺序)
([产品名称]=文章名字
[产品分类]=分类
[产品规格]=文章内容
[类型]看操作是出库还是出库
[库位]
[入库数量]新建自定义字段,跟出库数量,结存,当前库存,关联
[结存]新建自定义字段,跟入库数量,结存,当前入库数量,关联
[出库数量]新建自定义字段,跟入库数量,结存,当前库存,关联
[结存]新建自定义字段,跟入库数量,结存,当前入库数量,关联
[出库位置]=标签
[入库位置]=标签
[备注]
[图片]列显示[查看]
[操作人]=WordPress用户昵称
[操作日期])
要满屏,屏幕装不下,可以滑动查看
前端美化(用白色灰白色,表头用按钮形式带侧影)
2.每个产品都有自己独立的二维码,
3.有导进导出导进功能,
4.可以自由(或多选择打印多二维码)打印二维码,或批量打印二维码,
5.批量导出二维码(导出格式,二维码上面是产品名称,)
请帮我写出文案,给我灵感
8F
我要用WordPress,做一个仓库管理系统,
WordPress后台管理,
前端查看,
1.前端用表格显示(x‑data‑spreadsheet免费开源表格)
要满屏,屏幕装不下,可以滑动查看
前端美化(用白色灰白色,表头用按钮形式带侧影)
2.每个产品都有自己独立的二维码,
3.有导出导出导进功能,
4.可以自由(或多选择打印多二维码)打印二维码,或批量打印二维码,
5.批量导出二维码(导出格式,二维码上面是产品名称,)
请帮我写出文案,给我灵感
7F
请帮我,在WordPress后台增加功能,
1.登录界面,增加在后台上传logo(没有logo,只显示博客名称)
2.导入产品,CSV 列:产品名称, 产品分类, 产品规格, 初始库存, 存放位置(当导入产品时,产品名称存在时,可以选择需不需要覆盖 [产品分类][产品规格] [初始库存] [存放位置] )
3.请帮我创建用户管理页面,(我在用户管理页面,可以给用户使用权限,比如我只想给A用户只有[出库]权限,给B用户[入库]权限,给C用户 [入库][出库]或者不给他权限 ),访问前端,是开放(所有人都能访问)还是通过密码访问前端(输入一次访问密码就可以了,)还是只有登录后才能访问
6F
1.在[今日汇总]页面点击,今日入库数量跳到入库记录页面,今日出库数量跳转到出库记录页面,产品总数跳转到产品列表页面,库存预警跳转到库存预警页面
5F
1.[出库记录]页面表头跟[产品页面](产品详情)[出库记录]表头如下,始终保持一致
[类型]
[产品名称]
[产品分类]
[产品规格]
[出库数量]
[结存]
[出库位置]
[备注]
[操作人]
[操作日期]
2.[入库记录]页面表头跟[产品页面](产品详情)[入库记录]表头如下,始终保持一致
[类型]
[产品名称]
[产品分类]
[产品规格]
[入库数量]
[结存]
[出库位置]
[备注]
[操作人]
[操作日期]
3.把二维码上面的产品名称,字体在调大些
4F
[产品名称]
[产品分类]
[产品规格]
[出库数量]
[结存]
[出库位置]
[备注]
[操作人]
[操作日期]
3F
1.前端优化,前端表格自动适应(根据文字,文字越多表格宽,)
2.[今日汇总]表格表头
[类型]
[产品名称]
[产品规格]
[数量]
[结存]
[产品分类]
[存放位置]
[备注]
[操作人]
[操作时间]
[客户备注]
2F
明天是昨天,昨天是周六,今天周日
1F
04还是05年的山东 上700分的有600多人 那会儿我也高中 同学的姐姐考了665哪都不敢报