WooCommerce 安裝同基本設定
WooCommerce 嘅安裝過程雖然簡單,但係正確嘅初始設定係建立穩定電商網站嘅基礎。首先,你需要一個運行緊 PHP 7.4 或者更高版本、同埋安裝咗 WordPress 嘅伺服器環境。透過 WordPress 後台嘅「外掛」>「安裝外掛」頁面,搜尋「WooCommerce」然後撳安裝同啟動就得。啟動之後,系統會自動行「設定精靈」,引導你完成商店嘅基本設定。
喺設定精靈入面,你需要依次完成:設定商店所在地、貨幣同單位;設定支付方式(例如 PayPal、Stripe 或者銀行轉帳);設定運費計算規則(例如免費送貨、固定運費或者基於重量/地址嘅即時費率);同埋推薦安裝一啲必要嘅擴充功能,例如 WooCommerce Payments 或者本地化外掛。完成精靈之後,你會進入 WooCommerce 嘅核心設定面板。呢度有幾個關鍵部分需要仔細設定:「一般」選項可以設定銷售地點同稅率計算;「產品」選項可以定義度量單位、商品評論同庫存管理;「結帳」頁面係設定所有支付閘道同結帳流程嘅地方;「運送」選項就用嚟管理送貨區域、方法同包裝。
一個成日被忽略但至關重要嘅步驟係設定固定連結。喺 WordPress 嘅「設定」>「固定連結」入面,確保唔好用「簡樸」結構,推薦用「文章名稱」或者自訂結構,咁樣對商品頁面嘅 SEO 有利。同時,喺 WooCommerce 嘅「進階」設定標籤頁入面,你需要為各種頁面(例如購物車、結帳、我的帳戶等)分配對應嘅 WordPress 頁面,呢啲頁面喺外掛安裝嗰陣已經自動建立咗。
推薦閱讀 WooCommerce定制化開發指南:由入門到進階嘅完整實戰教程。
商店基本資料設定
商店嘅基本資料設定主要集中喺WordPress自訂器同WooCommerce常規設定度。你需要確保商店地址、客服電郵同電話號碼準確無誤,呢啲資料會出現喺訂單通知、發票同頁尾度。另外,喺「常規」設定嘅「貨幣選項」度,可以設定貨幣格式,例如人民幣(¥123.00)或者美金($123.00)。
支付同配送閘道整合
支付閘道係電商嘅命脈。WooCommerce內置咗多種支付方式,例如 WC_Gateway_BACS(銀行轉賬)、WC_Gateway_CHEQUE(支票支付)同埋 WC_Gateway_COD(貨到付款)。要啟用 Stripe 或 PayPal 等高級支付閘道,通常需要安裝獨立外掛程式並設定 API 金鑰。例如,設定 Stripe 時,你需要喺相應設定頁面填入發布金鑰同秘密密鑰。
送貨設定同樣重要。你可以喺「送貨區域」度為唔同國家或地區建立獨立嘅運費規則。例如,為中國大陸設定一個區域,並加入「免運費」、「統一收費」同「本地自取」等多種方法。 woocommerce_shipping_init 透過使用鉤子(hooks),開發者甚至可以建立完全自訂嘅送貨方法類別。
核心功能同數據管理
WooCommerce 將所有嘅電商數據都整合咗落 WordPress 嘅自定義文章類型同分類法度。產品被儲存為 product 文章類型,而訂單就對應 shop_order 文章類型。理解呢種數據模型係進行高級自定義開發嘅前提。
產品管理係核心中嘅核心。WooCommerce 支援四種產品類型:simple(簡單產品)、grouped(分組產品)、external(外部/關聯產品)同 variable(可變產品)。可變產品容許你為同一件商品設定唔同屬性(例如顏色、尺寸)同埋對應嘅價錢、存貨同SKU。喺後台編輯產品嗰陣,你會用到一系列元數據框,用嚟管理存貨SKU、價錢、存貨狀態、送貨資訊以及關聯嘅商品圖庫。
推薦閱讀 乜嘢係 WooCommerce 同佢嘅核心架構。
訂單管理後台提供完整嘅銷售概覽。每張訂單都係一個包含豐富元數據嘅 shop_order 帖子,記錄咗客戶資料、購買嘅商品、價錢、支付狀態同訂單備註歷史。狀態管理好重要,默認狀態包括 pending(等緊俾錢)、processing(處理緊)、on-hold(暫停)同埋 completed(搞掂咗)。你可以用 wc_get_order_statuses 函數攞晒所有狀態,再透過 woocommerce_register_shop_order_post_statuses 過濾器註冊自訂狀態。
產品類型與屬性管理
產品屬性係組織複雜商品目錄嘅利器。您可以喺「產品」>「屬性」度建立全域屬性,例如「顏色」或者「尺寸」。然後,喺編輯可變產品嗰陣,將呢啲屬性用嚟建立「屬性組合」,並針對每個組合(例如「紅色-大碼」)設定獨立嘅變體數據。喺代碼層面,可以透過 WC_Product_Variable 類同其 get_available_variations() 方法嚟攞同操作所有變體資訊。
訂單同客戶數據處理
WooCommerce 用 WC_Order 類嚟封裝訂單數據。透過呢個類,你可以用程式化方式創建或者更新訂單。例如,以下代碼展示咗點樣創建一個新訂單同加商品入去:
// 创建一个新订单对象
$order = wc_create_order();
// 通过商品ID获取商品对象并添加到订单中
$product = wc_get_product(123);
$order->add_product($product, 2); // 数量为2
// 设置客户地址
$order->set_address(array(
'first_name' => '张',
'last_name' => '三',
'email' => '[email protected]',
'phone' => '13800138000',
), 'billing');
// 计算总额并保存
$order->calculate_totals();
$order->save(); 客戶數據就同 WordPress 用戶(WP_User)深度綁定。WooCommerce 透過 wc_get_customer_order_count 同埋 wc_get_customer_total_spent 等函數擴展咗用戶能力。
主題整合同模板覆蓋
WooCommerce 同主題嘅整合度決定咗商店嘅前端體驗。佢採用強大嘅模板系統,所有前端顯示檔案(例如商品列表、單個商品頁面、購物車)都喺插件目錄嘅 /templates/ 喺個文件夾入面。為咗唔使改核心插件文件就可以自訂呢啲模板,你需要將佢哋覆蓋到你嘅主題度。
正確嘅做法係:喺你而家用緊嘅主題目錄下面,開一個叫做 woocommerce 嘅文件夾。跟住,將你想改嘅 WooCommerce 模板文件由插件嘅目錄複製過嚟呢個新文件夾度,然後喺呢個副本上面改。例如,如果你想改單一商品頁面嘅結構,你需要複製 plugins/woocommerce/templates/single-product.php 到 themes/your-theme/woocommerce/single-product.php。WooCommerce 會優先載入主題入面嘅模板文件。
推薦閱讀 WooCommerce 終極建站指南:由零開始打造你嘅電商王國。
除咗覆蓋成個檔案,你仲可以用動作掛鉤(Action Hooks)同過濾器掛鉤(Filter Hooks)喺特定位置插入或者修改內容。例如,woocommerce_before_single_product_summary 掛鉤喺商品摘要資訊之前觸發,係添加自訂橫幅廣告嘅理想位置。
自訂模板檔案結構
WooCommerce 嘅模板檔案有清晰嘅層次結構。以商品循環為例,archive-product.php 係商店主頁面模板,佢會調用 content-product.php 去渲染每個商品。透過覆蓋呢啲檔案,你可以徹底改變商品喺列表中嘅展示方式,例如更改佈局做網格或列表,或者加自訂徽章。
使用掛鉤進行功能擴展
掛鉤係 WooCommerce 擴展嘅骨幹。動作掛鉤容許你「執行」代碼,例如喺購物車表格後加一個自訂信息框:
add_action('woocommerce_after_cart_table', 'my_custom_cart_message');
function my_custom_cart_message() {
echo '<div class="custom-notice">購物滿500蚊就包郵!</div>';
} 過濾器掛鉤就容許你「修改」數據。例如,用 woocommerce_add_to_cart_fragments 過濾器可以動態更新迷你購物車嘅內容:
add_filter('woocommerce_add_to_cart_fragments', 'update_mini_cart_count');
function update_mini_cart_count($fragments) {
$fragments['div.cart-count'] = '<div class="cart-count">' . WC()->cart->get_cart_contents_count() . '</div>';
return $fragments;
} 進階自定義同開發實戰
當內置功能同掛鉤滿足唔到需求嗰陣,就需要進行更深層次嘅自定義開發。呢個包括創建自定義產品類型、編寫專屬嘅支付或者配送閘道,同埋透過 REST API 同外部系統整合。
創建自定義產品類型需要擴展 WC_Product 類。首先,你需要定義一個繼承自佢嘅新類別,並註冊呢個產品類型。例如,創建一個名為「預訂」嘅產品類別:
class WC_Product_Booking extends WC_Product {
public function __construct($product) {
parent::__construct($product);
$this->product_type = 'booking';
}
// 在这里添加自定义方法和属性,如 get_booking_dates()
}
// 将新类注册到工厂
add_filter('woocommerce_product_class', 'register_booking_product_class', 10, 2);
function register_booking_product_class($classname, $product_type) {
if ($product_type == 'booking') {
$classname = 'WC_Product_Booking';
}
return $classname;
} WooCommerce REST API 為流動應用程式或外部管理系統提供咗強大嘅介面。你可以用 API 嚟管理產品、訂單、客戶等幾乎所有數據。存取 API 需要先喺後台嘅「WooCommerce」>「設定」>「進階」>「舊版API」中啟用並創建 API 密鑰(Consumer Key & Consumer Secret)。然後就可以用類似以下嘅端點進行調用:GET /wp-json/wc/v3/products 嚟獲取產品列表。
開發自訂支付閘道
一個自訂支付網關係一個擴展咗 WC_Payment_Gateway 類嘅 PHP 類。你需要喺呢個類度定義網關嘅ID、標題、描述、支付欄位,同埋實現 process_payment 方法嚟完成支付邏輯。開發完成之後,需要透過 woocommerce_payment_gateways 過濾器將佢加入到可用網關列表入面。
同外部服務進行API整合
WooCommerce 提供豐富嘅鉤子嚟同 ERP、CRM 或者物流系統對接。例如,當訂單狀態變更為「已完成」嗰陣,會觸發 woocommerce_order_status_completed 動作鉤子。你可以掛接一個函數到呢個鉤子度,將訂單數據推送去你嘅庫存管理系統:
add_action('woocommerce_order_status_completed', 'sync_order_to_erp');
function sync_order_to_erp($order_id) {
$order = wc_get_order($order_id);
$data = array(
'order_id' => $order->get_id(),
'total' => $order->get_total(),
// ... 准备其他数据
);
// 使用 wp_remote_post 将 $data 发送到外部 API
} 摘要
WooCommerce 唔單止係一個插件,更加係一個功能完備、高度可擴展嘅電子商務開發框架。由簡單嘅安裝配置到深度嘅自訂開發,佢透過清晰嘅模板系統、豐富嘅鉤子(Actions & Filters)以及面向對象嘅數據模型,為開發者提供無限可能性。成功構建一個 WooCommerce 商店嘅關鍵在於:紮實嘅基礎配置確保商店穩定運行;深入理解其產品、訂單數據模型;熟練運用模板覆蓋同鉤子進行前端定製;並掌握透過自訂類、閘道同API整合嚟滿足獨特業務需求嘅能力。遵循呢啲最佳實踐,你將能夠打造出強大、高效且完全符合業務邏輯嘅網上商店。
常見問題
點樣修改「加入購物車」按鈕嘅文字?
你可以用 woocommerce_product_add_to_cart_text 過濾器或者 woocommerce_product_single_add_to_cart_text 過濾器嚟修改按鈕文字。例如,以下代碼會將單件商品頁面嘅按鈕文字改為「立即購買」:
add_filter('woocommerce_product_single_add_to_cart_text', 'change_single_add_to_cart_text');
function change_single_add_to_cart_text() {
return '立即购买';
} 對於歸檔頁面(商品列表),請使用 woocommerce_product_add_to_cart_text 過濾器,並且需要喺函數內判斷產品類型。
點樣為特定產品類別加自訂欄位?
你需要結合 WooCommerce 嘅產品分類鉤子同 WordPress 嘅術語元數據 API。首先,用 product_cat_add_form_fields 同埋 product_cat_edit_form_fields 動作喺分類新增/編輯頁面輸出欄位。然後,用 created_term 同埋 edit_term 動作將欄位值存入 term_meta。最後,您可以喺模板檔案度用 get_term_meta 嚟攞同顯示呢個數值。
我嘅自訂模板點解冇生效?
請跟以下步驟排查:首先,確認您將模板檔案複製咗去正確嘅主題路徑:your-theme/woocommerce/ 下面,而且目錄結構同原插件模板一致。其次,清除所有快取,包括瀏覽器快取、WordPress 物件快取同任何伺服器端快取(例如OPcache)。最後,檢查您嘅主題 functions.php 係咪正確噉聲明咗 WooCommerce 支援:add_theme_support('woocommerce');。如果問題依然存在,試下暫時轉用默認主題(例如 Storefront)嚟排除主題兼容性問題。
點樣用編程方式創建一個 WooCommerce 可變產品?
你需要使用 WC_Product_Variable 類。基本步驟係:創建產品物件並設定基礎屬性;創建同添加全局屬性(例如顏色);為呢啲屬性創建具體嘅屬性組合(即變體);最後為每個變體創建獨立嘅 WC_Product_Variation 對象,設定其價格、庫存等特有屬性,並關聯到主產品。呢個係一個多步驟嘅過程,通常涉及 wp_set_object_terms, set_attributes, 同埋 save 等方法。
下一步應該點做?
延伸閱讀及實用知識
以下內容與本文主題相關,適合進一步閱讀。一般而言,最好由與你目前問題最緊密相關的文章開始,然後逐步擴展到周邊主題。