下面是用來匯出黑貓宅急便的範本,對應好欄位後就能一鍵匯出,當然也要自己修改,例如我有判斷什麼付款方式會變成貨到付款
add_filter('woe_get_order_value_combined_shipping_address', function($value, $order, $fieldname) {
// 使用 WooCommerce 方法取得欄位資料
$shipping_state = $order->get_shipping_state(); // 縣市
$shipping_city = $order->get_shipping_city(); // 城市/區域
$shipping_address_1 = $order->get_shipping_address_1(); // 地址一
// 自行處理州/省的中文轉換
$state_names = [
'TAIPEI CITY' => '臺北市',
'NEW TAIPEI CITY' => '新北市',
'TAOYUAN CITY' => '桃園市',
'TAICHUNG CITY' => '臺中市',
'TAINAN CITY' => '臺南市',
'KAOHSIUNG CITY' => '高雄市',
'KEELUNG CITY' => '基隆市',
'HSINCHU CITY' => '新竹市',
'CHIAYI CITY' => '嘉義市',
'HSINCHU COUNTY' => '新竹縣',
'MIAOLI COUNTY' => '苗栗縣',
'CHANGHUA COUNTY' => '彰化縣',
'NANTOU COUNTY' => '南投縣',
'YUNLIN COUNTY' => '雲林縣',
'CHIAYI COUNTY' => '嘉義縣',
'PINGTUNG COUNTY' => '屏東縣',
'YILAN COUNTY' => '宜蘭縣',
'HUALIEN COUNTY' => '花蓮縣',
'TAITUNG COUNTY' => '臺東縣',
'PENGHU COUNTY' => '澎湖縣',
'KINMEN COUNTY' => '金門縣',
'LIENCHIANG COUNTY' => '連江縣',
];
$shipping_state_full = isset($state_names[$shipping_state]) ? $state_names[$shipping_state] : $shipping_state;
// 組合成完整地址
$combined_address = $shipping_state_full . ' ' . $shipping_city . ' ' . $shipping_address_1;
return $combined_address;
}, 10, 3);
add_filter('woe_get_order_value_shipping_state_check', function($value, $order, $fieldname) {
// 獲取 shipping_state 的值
$shipping_state = $order->get_shipping_state();
// 判斷值是否等於 "TAINAN CITY"
if ($shipping_state === 'TAINAN CITY') {
return '0'; // 如果是 TAINAN CITY
} else {
return '1'; // 如果不是
}
}, 10, 3);
add_filter('woe_get_order_value_payment_method_subtotal', function($value, $order, $fieldname) {
// 獲取付款方式和訂單小計
$payment_method = $order->get_payment_method();
$order_subtotal = $order->get_subtotal();
// 判斷付款方式
if ($payment_method === 'woocg-post-513' || $payment_method === 'woocg-post-514') {
return $order_subtotal; // 如果符合條件,返回訂單小計
} else {
return '0'; // 如果不符合條件,返回 "0"
}
}, 10, 3);
add_filter('woe_get_order_value_shipping_date', function($value, $order, $fieldname) {
// 獲取自訂欄位 additional_deliver_date
$additional_deliver_date = $order->get_meta('additional_deliver_date');
// 確保欄位有值
if (!empty($additional_deliver_date)) {
// 將日期轉換為 DateTime 格式並減去一天
try {
$deliver_date = new DateTime($additional_deliver_date);
$deliver_date->modify('-1 day'); // 減去一天
return $deliver_date->format('Y-m-d'); // 格式化日期為 YYYY-MM-DD
} catch (Exception $e) {
return 'Invalid Date'; // 如果日期格式錯誤
}
}
return 'No Date'; // 如果欄位不存在或為空
}, 10, 3);
add_filter('woe_get_order_value_custom_order_number', function($value, $order, $fieldname) {
// 獲取訂單編號
$order_number = $order->get_order_number();
// 在訂單編號前加上固定值
return 'M2024-' . $order_number;
}, 10, 3);