[TOC]
# woocommerce 主题开发
*****
## 1. 概念
| 概念 | 说明 |
| --- | --- |
| 变量产品 | 允许设置不同属性和选项的产品。 |
| 捆绑产品 | 将多个产品捆绑在一起销售。 |
| 销售数量 | 设置产品的最低/最高购买数量。 |
| 属性标签 | 指定产品属性的名称。 |
| 促销价格 | woocommerce 支持折扣、活动票等方式设置产品价格。 |
| 定制下载 | 为下载类产品提供自定义下载功能。 |
| 自定义邮件 | 通过插件定制 woocommerce 邮件。 |
| 子产品 | 允许产品有子产品的功能。 |
| 用户角色 | woocommerce 定义了多种用户角色。 |
| 检查付款 | 通过支付网关或其他方式完成付款。 |
| 订单状态 | woocommerce 定义了多种订单状态。 |
| 返回和退款 | 允许产品退换货。 |
| 报表和统计 | woocommerce 支持详细的销售统计。 |
## 2, Filter 筛选过滤工具
> 通过add_filter函数过滤产品查询。重写部分属性。
```
add_filter( 'woocommerce_product_query', 'my_product_query' );
function my_product_query( $query ) {
// Only apply to the main WordPress query
if ( ! $query->is_main_query() ) {
return $query;
}
// Get current page number
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// Modify the query
$query->set( 'orderby', 'rand' );
$query->set( 'posts_per_page', '12' );
// Set custom query vars
$query->set( 'my_custom_var', $paged );
return $query;
}
```
**示例做了以下这些:**
1. 通过 woocommerce_product_query 过滤产品查询
2. 只应用到主查询上
3. 获取当前页数
4. 修改查询,设置随机排序
5. 设置每页 12 个产品
6. 设置自定义查询变量
7. 返回修改后的查询
修改产品信息
> woocommerce_product_query: 过滤产品查询结果,可以定制产品的筛选条件
> woocommerce_product_attribute_label: 修改产品属性标签
> woocommerce_get_price_html: 修改产品价格 HTML 显示
>
修改订单信息
> woocommerce_before_calculate_totals: 修改订单总额
> woocommerce_tax_totals: 修改税款金额
> woocommerce_order_item_class: 修改订单项目类
> woocommerce_order_details: 修改订单详情
修改购物车信息
> woocommerce_cart_item_class : 修改购物车项目类
修改产品页元素
> woocommerce_product_tabs: 修改产品页标签
修改账户和登录信息
> woocommerce_checkout_fields: 修改登录时要求的字段
> woocommerce_login_redirect: 修改登录重定向 URI
修改Checkout流程
> woocommerce_checkout_fields: 修改 checkout 时要求填写的字段
修改相关文本
> woocommerce_thankyou_order_received_text : 修改"您的订单已收到"相关文本
# Filter woocommerce
| Filter | 说明 |
|:--|:--|:--|
| woocommerce\_checkout\_fields | 过滤 checkout 字段。|
| woocommerce\_product\_query | 过滤产品查询结果。|
| woocommerce\_product\_tabs | 过滤产品页标签。|
| woocommerce\_cart\_item\_class | 过滤购物车项类。|
| woocommerce\_before\_calculate\_totals | 修改订单总额之前。|
| woocommerce\_tax\_totals | 过滤税款金额。|
| woocommerce\_order\_item\_class | 过滤订单项目类。|
| woocommerce\_order\_details | 过滤订单详情。|
| woocommerce\_login\_redirect | 修改登录重定向 URI。|
| woocommerce\_thankyou\_order\_received\_text| 过滤“您的订单已收到”文本。|
| woocommerce\_product\_attribute\_label| 过滤产品属性标签|
| woocommerce\_get\_price\_html | 过滤产品价格 HTML。|
- 系统设计
- 需求分析
- 概要设计
- 详细设计
- 逻辑模型设计
- 物理模型设计
- 产品设计
- 数据驱动产品设计
- 首页
- 逻辑理解
- 微服务架构的关系数据库优化
- Java基础架构
- 编程范式
- 面向对象编程【模拟现实】
- 泛型编程【参数化】
- 函数式编程
- 响应式编程【异步流】
- 并发编程【多线程】
- 面向切面编程【代码复用解耦】
- 声明式编程【注解和配置】
- 函数响应式编程
- 语法基础
- 包、接口、类、对象和切面案例代码
- Springboot按以下步骤面向切面设计程序
- 关键词
- 内部类、匿名类
- 数组、字符串、I/O
- 常用API
- 并发包
- XML
- Maven 包管理
- Pom.xml
- 技术框架
- SpringBoot
- 项目文件目录
- Vue
- Vue项目文件目录
- 远程组件
- 敏捷开发前端应用
- Pinia Store
- Vite
- Composition API
- uniapp
- 本地方法JNI
- 脚本机制
- 编译器API
- 注释
- 源码级注释
- Javadoc
- 安全
- Swing和图形化编程
- 国际化
- 精实或精益
- 精实软件数据库设计
- 精实的原理与方法
- 项目
- 零售软件
- 扩展
- 1001_docker 示例
- 1002_Docker 常用命令
- 1003_微服务
- 1004_微服务数据模型范式
- 1005_数据模型
- 1006_springCloud
- AI 流程图生成
- Wordpress_6
- Woocommerce_7
- WooCommerce常用的API和帮助函数
- WooCommerce的钩子和过滤器
- REST API
- 数据库API
- 模板系统
- 数据模型
- 1.Woo主题开发流程
- Filter
- Hook
- 可视编辑区域的函数工具
- 渲染字段函数
- 类库和框架
- TDD 通过测试来驱动开发
- 编程范式对WordPress开发
- WordPress和WooCommerce的核心代码类库组成
- 数据库修改
- 1.WP主题开发流程与时间规划
- moho
- Note 1
- 基础命令