輕鬆構建WooCommerce自訂產品頁面:從入門到精通

3分鐘閱讀
2026-03-20
2026-06-04
2,503
當你透過以下連結購物,我會獲得佣金,對你嚟講冇額外成本。.

對於WooCommerce商店嚟講,產品嘅展示方式直接關係到轉化率同用戶體驗。雖然WooCommerce提供咗標準單產品頁面,但有時標準佈局未必滿足特定業務需求,例如展示更複雜嘅配置選項、增加互動式內容,或者完全重塑信息流。自訂產品頁面嘅過程,跟從簡單到複雜嘅路徑,等開發者可以根據項目需求揀最合適嘅方法。

點解需要自訂產品頁面

標準WooCommerce產品頁面雖然功能全面,但有以下局限:
* 设计同质化:许多使用相同主题的商店外观雷同,难以建立品牌辨识度。
* 布局僵化:信息展示的顺序和方式是固定的(标题、图库、摘要、描述、评价等),可能不符合某些产品的逻辑展示流程。
* 功能受限:对于需要集成视频教程、3D模型查看器、实时配置计算器、高级定制选项(如雕刻文字或上传图片)的产品,标准页面显得捉襟见肘。
* 性能与体验优化不佳:标准页面可能加载了所有模块,而自定义页面可以按需加载,实现更快的加载速度和更优的用户交互路径。

自訂產品頁面容許你:
* 打造独特品牌体验:设计与品牌调性完全一致的购物流程。
* 优化转化路径:根据产品特性,将最重要的信息(如价值主张、行动号召按钮)置于视觉焦点。
* 增加高级功能:无缝集成第三方工具或自定义开发的功能,提供增值服务。
* 实现A/B测试:创建不同布局的页面,以数据驱动的方式优化转化率。

推薦閱讀 WooCommerce 電商網站開發與效能優化完全指南

自訂WooCommerce產品頁面嘅核心方法

實現自訂產品頁面主要有四種方法,每種方法適用於唔同技術水平同需求場景。

UltaHost WordPress 主機
30日退款保證,無限頻寬同數據庫,免費DDoS防護,買3年優惠50%

使用頁面構建器同主題自訂

呢個係最適合非開發者嘅入門方法。借助流行嘅頁面構建器(例如Elementor Pro、Divi、WPBakery)同埋佢哋專用嘅WooCommerce模組,你可以透過拖放介面,直觀地重新排列、設計產品頁面嘅各個部分。

例如,使用Elementor Pro嘅Single Product小部件,你可以喺畫布上自由擺放產品圖庫、標題、價錢、加入購物車按鈕、簡短描述、元資料等等。你甚至可以創建完全脫離標準佈局嘅「單一產品模板」,將佢應用喺特定產品或者成個產品分類。

呢個方法嘅優點係唔使寫程式碼,快速可視化。缺點係可能對頁面載入速度有啲影響,而且深度自訂能力受制於構建器提供嘅功能。

透過子主題覆蓋模板檔案

呢個係最經典、最靈活嘅開發者方式。WooCommerce使用模板檔案嚟渲染所有前端頁面,呢啲模板位於plugins/woocommerce/templates/目錄中。為咗安全噉修改佢哋,WordPress最佳實踐係使用子主題。

推薦閱讀 點樣喺 WordPress 度用 WooCommerce 建立強大嘅網上商店

核心步驟包括:
1. 在主题目录中创建woocommerce資料夾。
2. 将需要修改的原始模板文件(例如单产品页面的主文件single-product.php,或者更細粒度嘅single-product/title.php)複製到你嘅子主題入面woocommerce目錄下。
3. 在副本文件中进行所需的代码修改。

例如,要調整產品價格顯示嘅位置,你可以複製同編輯single-product/price.php檔案。呢個方法提供完全嘅程式碼控制權,效能最佳。

利用WooCommerce鈎子(Actions & Filters)

呢種係一種更優雅、更易於維護嘅代碼級定制方法,唔使直接修改模板文件。WooCommerce提供咗大量嘅動作掛鈎(Action Hooks)同過濾掛鈎(Filter Hooks),容許你喺特定時刻插入或者修改功能。

hosting.com 共享主機
高效能,配備 AMD EPYC 處理器、NVMe SSD 儲存同 LiteSpeed,提供全天候專業內部支援,採用先進安全措施,包括 SSL、暴力破解、惡意軟件同 DDoS 防護,可節省高達 73%。
  • 動作掛鈎(Action Hooks):用喺特定位置添加內容。例如,使用woocommerce_before_single_product掛鈎喺產品頁面頂部添加一個橫幅。
    add_action( 'woocommerce_before_single_product', 'my_custom_product_banner' );
    function my_custom_product_banner() {
        echo '<div class="custom-banner">限時優惠!</div>';
    }
  • 過濾掛鈎(Filter Hooks):用嚟修改輸出嘅數據。例如,使用woocommerce_product_tabs過濾器用嚟修改或者移除產品頁面嘅標籤頁(例如描述、評價、附加資訊)。
    add_filter( 'woocommerce_product_tabs', 'my_custom_product_tabs' );
    function my_custom_product_tabs( $tabs ) {
        // 移除“附加信息”标签页
        unset( $tabs['additional_information'] );
        // 添加一个自定义标签页
        $tabs['custom_tab'] = array(
            'title'    => __( '使用教程', 'textdomain' ),
            'priority' => 50,
            'callback' => 'my_custom_tab_content'
        );
        return $tabs;
    }

呢個方法會將自訂代碼集中喺子主題嘅functions.php檔案或者自訂插件入面,更新WooCommerce嗰陣唔會整唔見啲修改。

建立全新嘅自訂頁面模板

對於需要顛覆性改變嘅情況,你可以為產品創建一個全新嘅WordPress頁面模板。呢種方法通常涉及:
1. 在子主题中创建一个新的PHP文件,例如template-custom-product.php,並喺文件頭部聲明模板名稱。
2. 使用WP_Query或直接通過全局變量(如$product)攞返當前產品資料。
3. 完全自主地编写HTML、CSS和JavaScript来渲染整个页面,同时调用必要的WooCommerce函数(如wc_get_product(), do_action('woocommerce_before_add_to_cart_button'))嚟確保核心功能(例如購物車、庫存檢查)正常運作。
4. 在WordPress后台为特定产品或通过代码分配此模板。

呢個係最複雜但自由度最高嘅方法,適用於構建好似「產品配置器」或者「服務預訂」呢類高度定制化嘅互動式頁面。

推薦閱讀 一站式指南:由零開始建立你嘅 WooCommerce 獨立站

一個實戰案例:透過鉤子添加自定義字段同展示

假設我哋銷售定制T恤,需要喺產品頁面添加一個畀客戶輸入自定義文字嘅字段,並且喺頁面上即時顯示預覽。

喺添加到購物車按鈕前添加輸入框

我哋會用woocommerce_before_add_to_cart_button用個鉤子嚟插入一個文字輸入框。

InterServer 共享主機
共享主機:每月1TB,只需£2.50;首月只需£0.10,使用優惠碼 tryinterserver。461個雲端應用程式腳本,一鍵安裝。
add_action( 'woocommerce_before_add_to_cart_button', 'display_custom_text_field' );
function display_custom_text_field() {
    global $product;
    // 仅对特定产品ID或产品类型启用
    if ( $product-&gt;get_id() == 123 ) {
        echo '<div class="custom-field">
                <label for="custom_text">印製文字:</label>
                <input type="text" id="custom_text" name="custom_text" placeholder="輸入你想印製嘅文字" maxlength="50">
              </div>';
    }
}

將自訂數據保存到購物車入面

當產品被加入購物車嗰陣,我哋需要擷取呢個欄位嘅數值。呢度需要用woocommerce_add_cart_item_data過濾器。

add_filter( 'woocommerce_add_cart_item_data', 'save_custom_text_field_data', 10, 3 );
function save_custom_text_field_data( $cart_item_data, $product_id, $variation_id ) {
    if ( isset( $_POST['custom_text'] ) && ! empty( $_POST['custom_text'] ) ) {
        $cart_item_data['custom_text'] = sanitize_text_field( $_POST['custom_text'] );
        // 确保购物车中同一商品但文字不同时,被视为不同项目
        $cart_item_data['unique_key'] = md5( microtime().rand() );
    }
    return $cart_item_data;
}

喺購物車同埋結帳頁面顯示呢啲數據

保存之後,我哋仲需要喺購物車、結帳頁面,甚至訂單同電郵入面顯示呢個資訊。呢個可以透過woocommerce_get_item_data過濾器實現。

add_filter( 'woocommerce_get_item_data', 'display_custom_text_on_cart_and_checkout', 10, 2 );
function display_custom_text_on_cart_and_checkout( $item_data, $cart_item ) {
    if ( isset( $cart_item['custom_text'] ) ) {
        $item_data[] = array(
            'name'  => '印制文字',
            'value' => wc_clean( $cart_item['custom_text'] )
        );
    }
    return $item_data;
}

透過呢個簡單嘅例子,你可以睇到點樣利用鉤子,喺唔使修改核心模板嘅情況下,為產品頁面添加複雜嘅功能。

效能同最佳實踐考量

自訂產品頁面嗰陣,效能係至關重要嘅考慮因素。

  • 腳本同樣式管理:淨係喺產品頁面加載必要嘅CSS同JavaScript檔案。可以用wp_enqueue_script()同埋wp_enqueue_style()函數,再加埋is_product()條件標籤。
  • 圖像優化:如果自訂頁面包含大量圖片或者互動式媒體,務必使用響應式圖片、正確嘅格式(WebP)同懶加載技術。
  • 緩存策略:對於高度動態或者包含用戶個人化數據嘅頁面(好似上面T恤例子咁),需要小心設定緩存策略,避免所有用戶睇到相同內容。可以考慮用片段緩存或者Ajax動態載入個人化部分。
  • 移動端優先:確保自訂版面喺流動裝置上完美顯示同互動。
  • 代碼可維護性:將自訂功能整理喺子主題嘅functions.php或專屬自訂插件入面,同埋加上清晰註解。避免直接修改父主題或者WooCommerce核心檔案。
  • 測試:喺開發環境做全面測試,包括功能測試、跨瀏覽器測試同埋流動裝置測試,然後先部署到生產環境。

摘要

自訂WooCommerce產品頁面係一個由「微調」到「重建」嘅連續過程。對大部分用家嚟講,從頁面構建器或者掛鉤開始係最佳切入點,佢哋可以用較低嘅學習成本帶嚟顯著改變。對於追求極致性能、獨特體驗或者複雜功能嘅開發者,深入模板檔案同埋創建自訂頁面模板係必經之路。無論揀邊條路,核心原則都係:喺實現業務目標嘅同時,確保代碼嘅可維護性同埋網站嘅前端性能。透過本文介紹嘅方法,你應該能夠自信地開始打造更符合品牌形象、轉化率更高嘅WooCommerce產品頁面。

常見問題

自訂產品頁面會影響網站速度嗎?

可能會,但影響程度取決於你嘅實現方式。使用重型頁面構建器或者載入未經優化嘅自訂腳本同埋樣式,通常會導致頁面載入變慢。而採用掛鉤(Hooks)或者高效覆蓋模板檔案嘅方法,對性能嘅影響就微乎其微。最佳實踐係始終進行性能優化,例如圖片懶加載、代碼最小化同埋使用緩存。

更新WooCommerce插件之後,我嘅自訂設定會唔會冇咗?

呢個要睇你嘅自訂方法。如果你用子主題覆蓋模板檔案,而新版WooCommerce更新咗你覆蓋嘅模板檔案,咁你可能要檢查新模板嘅改動,再手動合併到你嘅副本度。如果你用緊掛鉤(Actions/Filters)或者頁面構建器嘅自訂模板,咁更新WooCommerce核心插件通常唔會影響你嘅自訂內容,兼容性更高。

可唔可以只係為特定產品或者分類自訂頁面?

完全冇問題。喺你嘅自訂代碼入面,可以用條件判斷函數嚟實現。例如,用is_product()is_product_category('t-shirts')或檢查產品ID($product->get_id() == 123)嚟限制自訂功能嘅生效範圍。頁面構建器通常亦都提供規則設定,容許你將自訂模板套用喺特定嘅分類、標籤或單一產品。

點樣為可變產品(包含款式)自訂頁面?

可變產品嘅自訂邏輯更加複雜,因為你需要處理款式選擇、價格變動、圖片切換等連動效果。WooCommerce為可變產品提供咗特定嘅模板檔案(例如single-product/add-to-cart/variable.php)同一系列JavaScript事件(例如found_variationreset_data)。建議優先透過鉤子同官方提供嘅JS事件監聽器嚟擴展功能,或者用經過良好測試嘅專業插件處理複雜嘅產品定制需求。