WooCommerce客制建立訂單的時間

此功能主要用來同事出檔期後回來要補做訂單的時候使用

原本建立完訂單後,再到訂單的頁面修改,使用此段function可以在結帳頁面建立日期

/**
 * 在 WooCommerce 結帳頁面上添加日期時間輸入字段
 */
function add_custom_order_datetime_field() {
    // 添加日期時間輸入字段
    ?>
    <p class="form-row form-row-wide">
        <label for="custom_order_datetime"><?php _e( '訂單時間', 'woocommerce' ); ?> <span class="required">*</span></label>
        <input type="datetime-local" class="input-text" name="custom_order_datetime" id="custom_order_datetime" required>
    </p>
    <?php
}
add_action( 'woocommerce_checkout_before_order_review', 'add_custom_order_datetime_field' );

/**
 * 將客戶在結帳時輸入的自定義訂單時間保存到訂單中的建立時間
 */
function save_custom_order_datetime_to_order_created_time( $order_id ) {
    // 檢查是否提交了自定義訂單時間
    if ( isset( $_POST['custom_order_datetime'] ) ) {
        // 獲取提交的自定義訂單時間
        $custom_order_datetime = sanitize_text_field( $_POST['custom_order_datetime'] );

        // 將自定義訂單時間保存到訂單建立時間中
        $order = wc_get_order( $order_id );
        if ( $order ) {
            $order->set_date_created( strtotime( $custom_order_datetime ) );
            $order->save();
        }
    }
}
add_action( 'woocommerce_checkout_update_order_meta', 'save_custom_order_datetime_to_order_created_time' );
瀏覽次數:6