最後更新:2026/10/15
訂製家具、客製禮盒、公司大量訂購的贈品,價格常常要先問清楚尺寸、數量、交期才報得出來。這類商品放上 WooCommerce 卻會遇到一個問題:每件商品都要有價格才能賣。有人填 0 元,結果真的有人用 0 元下單;有人把價格留空,前台什麼都不顯示,客人不知道下一步要做什麼。
比較好的做法是讓這些商品照樣上架、照樣有商品頁和照片,只是價格換成「價格請洽詢」,客人不能直接結帳,商品頁多一顆「我要詢價」按鈕。這篇用一段程式碼做到,其他商品照常販售。
不想自己改?把這篇交給 AI
把這篇的網址(或全文)連同下面這段話貼給 AI:
我的網站是 WordPress,有裝 WooCommerce。我想照下面這篇文章,讓一部分商品改成詢價:顯示「價格請洽詢」、不能加入購物車、商品頁有詢價按鈕。
請先問我:哪些商品要詢價、詢價按鈕要連到聯絡表單還是 LINE、我用的是哪一個佈景主題。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)
改之前先備份,密碼不要貼給 AI。
先把詢價商品放進同一個分類
到「商品 > 分類」新增一個分類,名稱取你的客人看得懂的,例如「客製訂做」,代稱填 quote。以後要詢價的商品,編輯時勾這個分類就好,不用一件一件改設定。商品如果原本已經有分類,多勾一個也沒關係。
價格欄位照樣填一個數字,例如這件商品的起價,給自己參考,前台不會顯示。
完整程式碼
// 哪些商品要詢價:放在代稱 quote 的分類(例如「客製訂做」)
function mimi_is_quote_product($product) {
$id = $product->get_parent_id() ?: $product->get_id();
return has_term('quote', 'product_cat', $id);
}
// 1. 價格換成「價格請洽詢」(商店列表、商品頁、相關商品都一樣)
add_filter('woocommerce_get_price_html', function ($html, $product) {
return mimi_is_quote_product($product) ? '<span class="mimi-quote">價格請洽詢</span>' : $html;
}, 10, 2);
// 2. 不能加入購物車(直接用網址加入也會被擋)
add_filter('woocommerce_is_purchasable', function ($ok, $product) {
return mimi_is_quote_product($product) ? false : $ok;
}, 10, 2);
// 3. 商品頁放一顆「我要詢價」按鈕,連到聯絡頁並帶上商品名稱
add_action('woocommerce_single_product_summary', function () {
global $product;
if (!$product || !mimi_is_quote_product($product)) {
return;
}
$url = add_query_arg('item', rawurlencode($product->get_name()), home_url('/contact-us/'));
echo '<p><a class="button mimi-quote-btn" href="' . esc_url($url) . '">我要詢價</a></p>';
}, 31);
// 4. 給 Google 的商品資料也不要放價格,和畫面一致
add_filter('woocommerce_structured_data_product', function ($markup, $product) {
if (mimi_is_quote_product($product)) {
unset($markup['offers']);
}
return $markup;
}, 10, 2);
程式碼放在 Code Snippets 這類外掛或子主題,放法和備份方式見〈WooCommerce 結帳頁改成台灣習慣〉。
四段各做了什麼
最上面的 mimi_is_quote_product 負責判斷「這件商品要不要詢價」,看它有沒有在 quote 分類裡。有規格的商品(例如不同尺寸),規格本身不屬於任何分類,所以先找回它的主商品再判斷。
第 1 段把價格換成文字。網站上所有顯示價格的地方都會經過 woocommerce_get_price_html,所以商店頁、分類頁、商品頁、相關商品一次換掉。
第 2 段讓商品「不能購買」。只藏價格是不夠的:網路上有些做法只用 CSS 把價格和按鈕藏起來,但懂一點的人在網址後面加上 ?add-to-cart=商品編號,照樣能把商品放進購物車。我們在測試站試過,加了這段之後用網址加入,購物車還是空的。商品變成不能購買後,列表上的「加入購物車」按鈕會自動換成「查看內容」,帶客人去商品頁。
第 3 段在商品頁的簡短說明下面放一顆「我要詢價」按鈕,連到 /contact-us/,網址後面帶著商品名稱,例如 /contact-us/?item=客製皮革托特包。很多表單外掛可以把網址參數預先填進欄位,設定好之後,客人打開表單,「詢問的商品」那一格已經填好了。你的聯絡頁網址不同,把 /contact-us/ 換掉就好;想讓客人直接加 LINE,也可以把整個 $url 換成你的 LINE 官方帳號連結。
第 4 段處理給 Google 看的商品資料。WooCommerce 會在商品頁自動放一份結構化資料,裡面有價格。畫面寫「請洽詢」、資料卻寫 3,800 元,Google 可能在搜尋結果顯示一個你沒打算公開的價格,所以一起拿掉。拿掉之後,Search Console 的商品報表可能會提醒這件商品「少了價格」,詢價商品本來就沒有固定價格,這個提醒可以不用處理。結構化資料是什麼,可以看〈結構化資料是什麼?〉。
測試結果
我們在測試站用傳統佈景主題(Storefront)和新版區塊佈景主題(Twenty Twenty-Five)各測一次,結果一樣:
- 「客製訂做」分類的商品,商店頁顯示「價格請洽詢」,按鈕是「查看內容」。
- 商品頁沒有數量和加入購物車,換成「我要詢價」按鈕,連結帶著商品名稱。
- 用網址強制加入購物車,購物車還是空的。
- 商品頁的結構化資料沒有價格。
- 其他分類的商品完全不受影響,照常顯示價格、照常結帳。
另一種情況:批發價只給會員看
有些店家是反過來:價格有,但只給登入的批發客戶看。程式碼幾乎一樣,只要把最上面判斷的那一行:
return has_term('quote', 'product_cat', $id);
改成:
return !is_user_logged_in();
意思是「沒登入的人都算詢價」。我們測過,沒登入看到「價格請洽詢」、不能加入購物車;登入之後價格和按鈕都回來了。這時候顯示的文字可以改成「登入後看批發價」,按鈕連到登入頁。要注意這是全站商品都適用,如果只有部分商品是批發價,就把兩個條件合在一起判斷。
詢價商品,回覆速度就是你的價格
把價格換成「請洽詢」,等於請客人先開口。客人按下詢價、填完表單,接下來比的是誰回得快、回得清楚。表單問的問題要少,回覆的時間要寫在網站上,例如「一個工作天內回覆」。商品頁也可以多放幾張過去做過的成品和大概的價格區間,客人心裡有底,才願意花時間詢問。
如果你的網店同時有現貨和客製商品,想一次規劃好販售和詢價的流程,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼,商品頁怎麼讓客人願意開口,可以參考〈網站有人看卻沒人聯絡?〉。MIMI 專做客製化網頁設計,購物車電商網站可以依你的商品設計詢價流程。MIMI 提供臺北網頁設計服務,臺北的店家可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。
