外觀
佈景主題架構
子主題檔案組織、各檔案功能與覆寫的父主題模板。
主題資訊
| 啟用主題 | Woodmart Child |
| 父主題 | woodmart |
| 子主題 | 是 |
| 作者 | XTemos |
| 版本 | 1.0.0 |
| 檔案數 | 29(PHP 12 / CSS 5 / JS 4) |
目錄結構
woodmart-child/
├── 260119_functions.php
├── _style.css
├── _style.min.css
├── footer.php
├── functions.php
├── header.php
├── style.css
├── CSS backup/
│ ├── style.css
│ └── style.min.css
├── header-elements/
│ ├── cart.php
│ └── column.php
├── js/
│ ├── 241129_main.js
│ ├── 241129_main.min.js
│ ├── main.js
│ └── main.min.js
├── ultimate-member/email/
│ └── welcome_email.php
├── woocommerce/
│ └── single-product.php
├── woocommerce/emails/
│ ├── customer-completed-order.php
│ └── customer-on-hold-order.php
├── woocommerce/emails/plain/
│ └── customer-completed-order.php
└── woocommerce/myaccount/
└── orders.php檔案審查
functions.php覆寫父主題
子主題核心檔案,包含所有自訂功能:資源載入、金流整合、運送邏輯、追蹤碼、GPT 問答、角色管理、SEO 修正、頁面標題覆寫等
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-14 | woodmart_child_enqueue_styles | 載入子主題 CSS/JS,使用 filemtime 作為版本號 |
| 17-44 | crave_script_version_with_filemtime | 將主題 CSS/JS 版本號改寫為檔案修改時間 |
| 47-58 | add_custum_fontfamily | 為 TinyMCE 編輯器新增中英文字型 |
| 62-86 | my_hide_shipping_when_free_is_available | 滿額免運時隱藏其他運送方式,但保留超商取貨和 6H 配送(6H 改為 150 元) |
| 90-118 | wh_CustomReadOrder | 訂單完成頁面觸發 GA4 purchase 事件 |
| 121-149 | affiliates_trank | 聯盟行銷追蹤 shortcode [affiliates],輸出 vbtrax 追蹤碼 |
| 151-231 | newebpay_cvscom_fix_status | 藍新超商取貨付款訂單狀態管理:門市選定後保持 pending,實際付款後才允許 completed |
| 237-277 | newebpay_cvscom_manual_update | 後台手動更新訂單狀態時的攔截,超商取貨付款未實際付款時強制保持 pending |
| 280-327 | custom_shop_order_column + custom_orders_list_column_content | 後台訂單列表新增「需出貨」欄位,超商取貨顯示「超取需出貨」,6H 顯示「6H出貨」 |
| 333-348 | crave_js_defer_attr | 為前台 script 標籤加入 defer 屬性 |
| 354-464 | crave_remove_version + crave_disable_emojis + crave_disable_embeds + crave_remove_jquery_migrate | 安全性與效能優化:移除 WP 版本號、停用 emoji/embeds、移除 jQuery Migrate |
| 466-490 | dns_prefetch | 輸出 DNS prefetch 標籤 |
| 497-677 | filter_default_address_fields + custom_checkout_field_script | 結帳頁面:超商取貨時隱藏地址欄位,宅配時顯示並設必填 |
| 688-747 | wps_select_checkout_field_process | 結帳驗證:根據運送方式驗證必填地址欄位,6H 配送額外驗證配送區域 |
| 750-790 | checkout_action_wp_footer | 結帳頁面載入 jquery-confirm 並顯示 6H 配送注意事項 |
| 792-822 | set_line_tag | 注入 LINE Tag 追蹤碼,結帳頁面額外觸發轉換事件 |
| 826-847 | set_fb_verification_to_meta | 從文章內容取得 Facebook 驗證碼並輸出為 meta tag |
| 849-858 | set_gtm | 注入 Google Tag Manager 程式碼 |
| 866-1164 | woodmart_page_title (override) | 覆寫 woodmart 主題的頁面標題函數,新增麵包屑導航 |
| 1167-1232 | ctk_check_order_stay_too_long (disabled) | 自動取消過久未付款訂單(已停用) |
| 1235-1255 | addtoany_add_follow_services | 新增 LINE 好友連結到 AddToAny 分享外掛 |
| 1259-1282 | wc_check_coupon_is_valid + array_contains_case_insensitive | 修正 WooCommerce 折價券 email 限制的大小寫問題 |
| 1291-1299 | setNoindexIfEn | 英文網址路徑加 noindex/nofollow |
| 1308-1357 | log_status + check_linepay_success_handler | 監控 LinePay 訂單狀態異常(處理中→失敗),5 分鐘後自動檢查並修正,寄信通知 |
| 1364-1397 | update_user_gender_meta + set_checkout_field_default_value | 結帳時儲存/回填使用者性別欄位 |
| 1405-1405 | woe_user_can_add_custom_php filter | 允許 Admin 在 Advanced Order Export 外掛中執行自訂 PHP |
| 1411-1428 | wpwc_fix_yoast_seo_robots_txt | 移除 Yoast SEO 對 robots.txt 的修改 |
| 1431-1502 | add_student_role + add_student_role_on_coupon_use + check_and_remove_expired_student_roles + scheduling | 學生角色管理:使用 st- 開頭折價券自動加 student role,每季檢查一年到期自動移除 |
| 1504-1617 | gpt_question_button_shortcode + gpt_enqueue_scripts + gpt_handle_ajax_request | GPT 問答功能:shortcode 產生問題按鈕,AJAX 呼叫 OpenAI API,答案快取到 DB |
| 1619-1687 | woodmart_related_products_exclude_init + woodmart_exclude_category_from_related_products + woodmart_modify_related_products_args | 排除 no-show 分類的商品不出現在相關商品中 |
| 1700-1822 | WC_Custom_CVSCOM_Shipping_Method class + registration | 自訂超商取貨運送方式類別,配合新版 newebpay-payment 外掛 |
| 1835-2171 | newebpay_shipping_payment_integration | 結帳頁面:根據運送方式控制付款選項顯示/隱藏、LINE Pay 限制、checkbox 自動控制 |
| 2178-2194 | prevent_linepay_with_store_pickup | 後端驗證:阻止 LINE Pay + 超商取貨的組合 |
| 2199-2232 | newebpay_handle_non_cvscom_shipping | 非超商取貨時清理 CVSCOM 相關 POST 資料 |
| 2238-2299 | newebpay_intercept_params_on_create + newebpay_intercept_before_payment_page | 訂單建立和付款頁面前攔截並修正 CVSCOM 參數 |
| 2305-2400 | newebpay_filter_cvscom_settings | 在前端動態過濾藍新金流外掛設定,非超商取貨時暫時關閉超商付款選項 |
| 2408-2426 | newebpay_modify_auto_submit_time | 將藍新金流付款頁面自動跳轉時間從 10 秒改為 3 秒 |
260119_functions.php功能擴充
functions.php 的備份檔案(2025-01-19),比當前版本少 103 行。主要差異在於新版增加了超商取貨運送方式類別和藍新整合邏輯
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-2322 | backup | 2025-01-19 備份,缺少新版的 WC_Custom_CVSCOM_Shipping_Method 和部分藍新整合邏輯 |
footer.php功能擴充
覆寫父主題 footer 範本,整合 Omnichat 聊天外掛和完整的 Omnichat Tracker V1.0(追蹤商品瀏覽、加入購物車、移除、結帳、購買完成)
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-73 | woodmart footer structure | 標準 woodmart footer 結構(從父主題複製) |
| 76-143 | Omnichat data preparation (PHP) | 準備 Omnichat 追蹤所需的 PHP 變數:會員資訊、商品資訊、訂單資訊 |
| 146-177 | Omnichat chat widget | 注入 Omnichat 聊天視窗的 HTML 和 JS |
| 179-407 | Omnichat Tracker V1.0 | 完整的電商追蹤碼:init、view_product、add_to_cart、remove_from_cart、checkout、purchase |
header.php功能擴充
覆寫父主題 header,加入 Tagtoo 廣告追蹤碼和 GTM noscript 標籤
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-21 | HTML head setup | 標準 HTML head 設定,含 viewport、browser color meta |
| 22-30 | Tagtoo tracking | 載入 Tagtoo 廣告追蹤碼 |
| 36-39 | GTM noscript | GTM noscript fallback iframe |
| 12-12 | commented out stylesheet | 註解掉的直接 CSS 引用 |
header-elements/cart.php功能擴充
覆寫 woodmart header 購物車元件,將購物車連結改為直接導向結帳頁面而非購物車頁面
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-116 | cart header element | 修改購物車圖示連結從 wc_get_cart_url() 改為 wc_get_checkout_url() |
header-elements/column.php功能擴充
覆寫 woodmart header column 元件,在右側欄位顯示 SUMO 購物金點數
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-23 | column with reward points | 使用 [rs_my_reward_points] shortcode 取得點數並顯示在 header |
ultimate-member/email/welcome_email.php功能擴充
Ultimate Member 外掛的歡迎郵件範本
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-19 | welcome email template | 新會員歡迎信,包含折扣碼 LETSHARU(九折) |
woocommerce/emails/customer-completed-order.php功能擴充
自訂訂單完成 email,將完成訊息改為「已出貨」通知
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-62 | completed order email | 修改訂單完成郵件文字為「Your order has been shipped」 |
woocommerce/emails/customer-on-hold-order.php功能擴充
自訂訂單等待中 email 範本
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-61 | on-hold order email | 訂單等待付款確認郵件 |
woocommerce/emails/plain/customer-completed-order.php功能擴充
訂單完成 email 純文字版本
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-61 | plain text completed order email | 純文字版訂單完成郵件,與 HTML 版對應 |
woocommerce/myaccount/orders.php功能擴充
自訂「我的帳戶」訂單列表,修改訂單狀態顯示和隱藏付款按鈕
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-114 | orders list template | 訂單列表覆寫:超商取貨付款訂單狀態顯示為「超商取貨付款」而非原始狀態 |
| 115-120 | inline CSS | 隱藏付款按鈕,防止顧客切換付款方式 |
woocommerce/single-product.php功能擴充
自訂單一商品頁面範本,加入 GPT 問答 popup
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-49 | standard single product template | WooCommerce 標準商品頁面迴圈 |
| 50-58 | GPT popup HTML | GPT 問答彈窗 HTML 結構 |
js/main.js功能擴充
前端主要 JavaScript:6H 配送地區限制、禮盒/預購運送規則、GPT 問答互動、麵包屑處理
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-42 | setupSixHR + isInArea | 6H 配送郵遞區號檢查,限制台北地區才能選 6H |
| 46-100 | setupGiftBox | 禮盒和預購商品運送限制 |
| 110-119 | checkout quantity auto-update | 結帳頁面變更數量時自動觸發更新購物車 |
| 122-123 | hamburger menu clone | 複製漢堡選單到手機導航中 |
| 125-198 | GPT popup interaction | GPT 問答按鈕點擊、AJAX 呼叫、打字機效果顯示答案 |
| 199-236 | removeBreadcrumbLinks | 移除商品頁面麵包屑的中間連結(保留首頁連結) |
js/241129_main.js功能擴充
main.js 的舊版備份(2024-11-29),包含一鍵結帳功能(當前版本已移除)
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-271 | backup with one-click checkout | 舊版 main.js 加上一鍵結帳 UI 功能 |
style.css設定檔
子主題樣式表:結帳頁面、首頁商品區塊、購物車、手機選單、GPT popup、Header 等自訂樣式
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-9 | theme header | 子主題定義(名稱、父主題、版本) |
| 11-538 | custom styles | 各區塊自訂 CSS |
_style.css樣式覆寫
style.css 的舊版備份(少了 header 調整、GPT popup、付款按鈕隱藏等樣式)
| 行數 | 功能 | 用途 |
|---|---|---|
| 1-411 | backup stylesheet | 舊版 CSS 備份 |
