Advanced Order Export For WooCommerce匯出黑貓宅配單筆記

下面是用來匯出黑貓宅急便的範本,對應好欄位後就能一鍵匯出,當然也要自己修改,例如我有判斷什麼付款方式會變成貨到付款

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);

瀏覽次數:13