[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
- 基礎命令