此功能主要用來同事出檔期後回來要補做訂單的時候使用
原本建立完訂單後,再到訂單的頁面修改,使用此段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' );