/**
* 分類的 FAQ 欄位(沒有就建)
*
* 存原始文字,不經過 filter_compile() —— 那支會把 < > " ( ) 直接刪掉,
* 「(特殊材質另計)」的括號會不見。正確做法是原樣存、輸出時轉義。
*
* @return bool
*/
function ecs_seo_ensure_faq_schema()
{
static $ready = null;
if ($ready !== null)
{
return $ready;
}
if (empty($GLOBALS['db']) || empty($GLOBALS['ecs']))
{
$ready = false;
return $ready;
}
$db = $GLOBALS['db'];
$ecs = $GLOBALS['ecs'];
/* 不能傳 $limited = true —— cls_mysql 會補 LIMIT 1,SHOW COLUMNS 不吃 */
$has = $db->getOne("SHOW COLUMNS FROM " . $ecs->table('category') . " LIKE 'cat_faq'");
if (empty($has))
{
$db->query(
"ALTER TABLE " . $ecs->table('category') .
" ADD `cat_faq` text NULL COMMENT '常見問答,一行 Q: 一行 A:'",
'SILENT'
);
$has = $db->getOne("SHOW COLUMNS FROM " . $ecs->table('category') . " LIKE 'cat_faq'");
}
$ready = !empty($has);
return $ready;
}
/**
* 把後台填的文字拆成問答對
*
* 格式刻意做得寬鬆 —— 店主是在後台的文字框裡打字,不該要求他記語法:
*
* Q: 洗鞋要幾天?
* A: 一般 5 到 7 個工作天,特殊材質會先跟您確認。
*
* 問:麂皮可以洗嗎?
* 答:可以,麂皮要另外報價。
*
* Q/問/Q 都認,冒號全形半形都認。沒有配對到答案的問題會被丟掉 ——
* 只有問題沒有答案的 FAQPage,Google 不會採用。
*
* @param string $raw
* @return array array(array('q' => ..., 'a' => ...), ...)
*/
function ecs_seo_faq_parse($raw)
{
$raw = trim((string) $raw);
if ($raw === '')
{
return array();
}
$lines = preg_split('/\r\n|\r|\n/', $raw);
$out = array();
$cur_q = '';
$cur_a = '';
foreach ($lines as $line)
{
$line = trim($line);
if ($line === '')
{
continue;
}
if (preg_match('/^(?:Q|q|Q|問)\s*[::]\s*(.+)$/u', $line, $m))
{
/* 遇到新問題,先把上一組收起來 */
if ($cur_q !== '' && $cur_a !== '')
{
$out[] = array('q' => $cur_q, 'a' => $cur_a);
}
$cur_q = trim($m[1]);
$cur_a = '';
continue;
}
if (preg_match('/^(?:A|a|A|答)\s*[::]\s*(.+)$/u', $line, $m))
{
$cur_a = trim($m[1]);
continue;
}
/* 沒有前綴的行:接在答案後面,讓答案可以寫成多行 */
if ($cur_a !== '')
{
$cur_a .= "\n" . $line;
}
}
if ($cur_q !== '' && $cur_a !== '')
{
$out[] = array('q' => $cur_q, 'a' => $cur_a);
}
return $out;
}
/**
* FAQPage 結構化資料
*
* 只有兩組以上才輸出:一組問答的 FAQPage Google 幾乎不會採用,
* 送出去只是多一段沒用的標記。
*
* @param string|array $faq 原始文字或已解析的陣列
* @return array 空陣列代表不要輸出
*/
function ecs_seo_faq_ld($faq)
{
$pairs = is_array($faq) ? $faq : ecs_seo_faq_parse($faq);
if (count($pairs) < 2)
{
return array();
}
$items = array();
foreach ($pairs as $p)
{
$items[] = array(
'@type' => 'Question',
'name' => $p['q'],
'acceptedAnswer' => array(
'@type' => 'Answer',
'text' => $p['a'],
),
);
}
return array(
'@context' => 'https://schema.org',
'@type' => 'FAQPage',
'mainEntity' => $items,
);
}
桃園乾洗到府收送|沂恩精緻洗衣坊
桃園乾洗到府收送
怎樣運作
四個步驟,第一次送洗也不會卡住
-
1 LINE 約時間
加 LINE 說要洗什麼、住哪裡,約好到府收衣的時間。不在家也沒關係,放門口或管理室,在 LINE 拍張照告訴我們就行。
-
2 到府收衣、現場點件
當面清點,每件衣服掛上專屬標籤。看過衣況才報價,價格你點頭我們才收走 — 不會洗完了才追加費用。
-
3 依材質分開清洗
乾洗、水洗、柔洗分流處理,從收件到出貨全程錄影。洗好整燙、包裝,特殊污漬會另外告訴你處理結果。
-
4 洗好送回
LINE 通知你洗好了,約時間送回府上,或自己來店裡取件。進度隨時可以在 LINE 上查。
為什麼選我們
六件別家不一定做得到的事
📹
全程錄影
從收件、清洗到出貨全程錄影。衣服有狀況不用各說各話,調錄影出來看。
🏷️
每件掛牌
每件衣服掛上獨立標籤,洗到哪一站、放在哪個櫃位,查得到。不會跟別人的衣服混在一起。
💬
收件後報價
看過衣況才報價,你同意才洗。不會先收走、洗完再跟你說要加錢。
📱
LINE 約收送
不用打電話等接通。LINE 上約時間、傳照片、查進度,洗好自動通知。
🚚
蘆竹在地、當天收
就在蘆竹。南崁一帶今天說、今天到府收,不用等排班排到下週。
💳
儲值回饋
先儲值多一筆回饋金,之後每次送洗直接折抵。常送洗的客人等於長期打折。