Skip to content

佈景主題架構

子主題檔案組織、各檔案功能與覆寫的父主題模板。

主題資訊

啟用主題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-14woodmart_child_enqueue_styles載入子主題 CSS/JS,使用 filemtime 作為版本號
17-44crave_script_version_with_filemtime將主題 CSS/JS 版本號改寫為檔案修改時間
47-58add_custum_fontfamily為 TinyMCE 編輯器新增中英文字型
62-86my_hide_shipping_when_free_is_available滿額免運時隱藏其他運送方式,但保留超商取貨和 6H 配送(6H 改為 150 元)
90-118wh_CustomReadOrder訂單完成頁面觸發 GA4 purchase 事件
121-149affiliates_trank聯盟行銷追蹤 shortcode [affiliates],輸出 vbtrax 追蹤碼
151-231newebpay_cvscom_fix_status藍新超商取貨付款訂單狀態管理:門市選定後保持 pending,實際付款後才允許 completed
237-277newebpay_cvscom_manual_update後台手動更新訂單狀態時的攔截,超商取貨付款未實際付款時強制保持 pending
280-327custom_shop_order_column + custom_orders_list_column_content後台訂單列表新增「需出貨」欄位,超商取貨顯示「超取需出貨」,6H 顯示「6H出貨」
333-348crave_js_defer_attr為前台 script 標籤加入 defer 屬性
354-464crave_remove_version + crave_disable_emojis + crave_disable_embeds + crave_remove_jquery_migrate安全性與效能優化:移除 WP 版本號、停用 emoji/embeds、移除 jQuery Migrate
466-490dns_prefetch輸出 DNS prefetch 標籤
497-677filter_default_address_fields + custom_checkout_field_script結帳頁面:超商取貨時隱藏地址欄位,宅配時顯示並設必填
688-747wps_select_checkout_field_process結帳驗證:根據運送方式驗證必填地址欄位,6H 配送額外驗證配送區域
750-790checkout_action_wp_footer結帳頁面載入 jquery-confirm 並顯示 6H 配送注意事項
792-822set_line_tag注入 LINE Tag 追蹤碼,結帳頁面額外觸發轉換事件
826-847set_fb_verification_to_meta從文章內容取得 Facebook 驗證碼並輸出為 meta tag
849-858set_gtm注入 Google Tag Manager 程式碼
866-1164woodmart_page_title (override)覆寫 woodmart 主題的頁面標題函數,新增麵包屑導航
1167-1232ctk_check_order_stay_too_long (disabled)自動取消過久未付款訂單(已停用)
1235-1255addtoany_add_follow_services新增 LINE 好友連結到 AddToAny 分享外掛
1259-1282wc_check_coupon_is_valid + array_contains_case_insensitive修正 WooCommerce 折價券 email 限制的大小寫問題
1291-1299setNoindexIfEn英文網址路徑加 noindex/nofollow
1308-1357log_status + check_linepay_success_handler監控 LinePay 訂單狀態異常(處理中→失敗),5 分鐘後自動檢查並修正,寄信通知
1364-1397update_user_gender_meta + set_checkout_field_default_value結帳時儲存/回填使用者性別欄位
1405-1405woe_user_can_add_custom_php filter允許 Admin 在 Advanced Order Export 外掛中執行自訂 PHP
1411-1428wpwc_fix_yoast_seo_robots_txt移除 Yoast SEO 對 robots.txt 的修改
1431-1502add_student_role + add_student_role_on_coupon_use + check_and_remove_expired_student_roles + scheduling學生角色管理:使用 st- 開頭折價券自動加 student role,每季檢查一年到期自動移除
1504-1617gpt_question_button_shortcode + gpt_enqueue_scripts + gpt_handle_ajax_requestGPT 問答功能:shortcode 產生問題按鈕,AJAX 呼叫 OpenAI API,答案快取到 DB
1619-1687woodmart_related_products_exclude_init + woodmart_exclude_category_from_related_products + woodmart_modify_related_products_args排除 no-show 分類的商品不出現在相關商品中
1700-1822WC_Custom_CVSCOM_Shipping_Method class + registration自訂超商取貨運送方式類別,配合新版 newebpay-payment 外掛
1835-2171newebpay_shipping_payment_integration結帳頁面:根據運送方式控制付款選項顯示/隱藏、LINE Pay 限制、checkbox 自動控制
2178-2194prevent_linepay_with_store_pickup後端驗證:阻止 LINE Pay + 超商取貨的組合
2199-2232newebpay_handle_non_cvscom_shipping非超商取貨時清理 CVSCOM 相關 POST 資料
2238-2299newebpay_intercept_params_on_create + newebpay_intercept_before_payment_page訂單建立和付款頁面前攔截並修正 CVSCOM 參數
2305-2400newebpay_filter_cvscom_settings在前端動態過濾藍新金流外掛設定,非超商取貨時暫時關閉超商付款選項
2408-2426newebpay_modify_auto_submit_time將藍新金流付款頁面自動跳轉時間從 10 秒改為 3 秒

260119_functions.php功能擴充

functions.php 的備份檔案(2025-01-19),比當前版本少 103 行。主要差異在於新版增加了超商取貨運送方式類別和藍新整合邏輯

行數功能用途
1-2322backup2025-01-19 備份,缺少新版的 WC_Custom_CVSCOM_Shipping_Method 和部分藍新整合邏輯

footer.php功能擴充

覆寫父主題 footer 範本,整合 Omnichat 聊天外掛和完整的 Omnichat Tracker V1.0(追蹤商品瀏覽、加入購物車、移除、結帳、購買完成)

行數功能用途
1-73woodmart footer structure標準 woodmart footer 結構(從父主題複製)
76-143Omnichat data preparation (PHP)準備 Omnichat 追蹤所需的 PHP 變數:會員資訊、商品資訊、訂單資訊
146-177Omnichat chat widget注入 Omnichat 聊天視窗的 HTML 和 JS
179-407Omnichat Tracker V1.0完整的電商追蹤碼:init、view_product、add_to_cart、remove_from_cart、checkout、purchase

header.php功能擴充

覆寫父主題 header,加入 Tagtoo 廣告追蹤碼和 GTM noscript 標籤

行數功能用途
1-21HTML head setup標準 HTML head 設定,含 viewport、browser color meta
22-30Tagtoo tracking載入 Tagtoo 廣告追蹤碼
36-39GTM noscriptGTM noscript fallback iframe
12-12commented out stylesheet註解掉的直接 CSS 引用

header-elements/cart.php功能擴充

覆寫 woodmart header 購物車元件,將購物車連結改為直接導向結帳頁面而非購物車頁面

行數功能用途
1-116cart header element修改購物車圖示連結從 wc_get_cart_url() 改為 wc_get_checkout_url()

header-elements/column.php功能擴充

覆寫 woodmart header column 元件,在右側欄位顯示 SUMO 購物金點數

行數功能用途
1-23column with reward points使用 [rs_my_reward_points] shortcode 取得點數並顯示在 header

ultimate-member/email/welcome_email.php功能擴充

Ultimate Member 外掛的歡迎郵件範本

行數功能用途
1-19welcome email template新會員歡迎信,包含折扣碼 LETSHARU(九折)

woocommerce/emails/customer-completed-order.php功能擴充

自訂訂單完成 email,將完成訊息改為「已出貨」通知

行數功能用途
1-62completed order email修改訂單完成郵件文字為「Your order has been shipped」

woocommerce/emails/customer-on-hold-order.php功能擴充

自訂訂單等待中 email 範本

行數功能用途
1-61on-hold order email訂單等待付款確認郵件

woocommerce/emails/plain/customer-completed-order.php功能擴充

訂單完成 email 純文字版本

行數功能用途
1-61plain text completed order email純文字版訂單完成郵件,與 HTML 版對應

woocommerce/myaccount/orders.php功能擴充

自訂「我的帳戶」訂單列表,修改訂單狀態顯示和隱藏付款按鈕

行數功能用途
1-114orders list template訂單列表覆寫:超商取貨付款訂單狀態顯示為「超商取貨付款」而非原始狀態
115-120inline CSS隱藏付款按鈕,防止顧客切換付款方式

woocommerce/single-product.php功能擴充

自訂單一商品頁面範本,加入 GPT 問答 popup

行數功能用途
1-49standard single product templateWooCommerce 標準商品頁面迴圈
50-58GPT popup HTMLGPT 問答彈窗 HTML 結構

js/main.js功能擴充

前端主要 JavaScript:6H 配送地區限制、禮盒/預購運送規則、GPT 問答互動、麵包屑處理

行數功能用途
1-42setupSixHR + isInArea6H 配送郵遞區號檢查,限制台北地區才能選 6H
46-100setupGiftBox禮盒和預購商品運送限制
110-119checkout quantity auto-update結帳頁面變更數量時自動觸發更新購物車
122-123hamburger menu clone複製漢堡選單到手機導航中
125-198GPT popup interactionGPT 問答按鈕點擊、AJAX 呼叫、打字機效果顯示答案
199-236removeBreadcrumbLinks移除商品頁面麵包屑的中間連結(保留首頁連結)

js/241129_main.js功能擴充

main.js 的舊版備份(2024-11-29),包含一鍵結帳功能(當前版本已移除)

行數功能用途
1-271backup with one-click checkout舊版 main.js 加上一鍵結帳 UI 功能

style.css設定檔

子主題樣式表:結帳頁面、首頁商品區塊、購物車、手機選單、GPT popup、Header 等自訂樣式

行數功能用途
1-9theme header子主題定義(名稱、父主題、版本)
11-538custom styles各區塊自訂 CSS

_style.css樣式覆寫

style.css 的舊版備份(少了 header 調整、GPT popup、付款按鈕隱藏等樣式)

行數功能用途
1-411backup stylesheet舊版 CSS 備份

相關頁

佈景主題建議調整程式碼掃描外掛清單