'Prepare To Print Date', 'in_print_date' => 'In Print Date', 'external_ref_ord_date' => 'External Order Date', 'external_ref_ord_delivered' => 'External Order Delivered', ); private $text_fields = array( 'external_ref_ord_no' => 'External Order Number', ); public function __construct() { add_action('woocommerce_admin_order_data_after_order_details', array($this, 'display_custom_order_fields')); add_action('woocommerce_process_shop_order_meta', array($this, 'save_custom_order_fields')); } public function display_custom_order_fields($order) { ?>

'to_print_date', 'label' => __('Prepare To Print Date', 'studiou-wc-ord-print-statuses'), 'type' => 'datetime-local', 'value' => $this->mysql_to_datetime_local($order->get_meta('to_print_date')), 'wrapper_class' => 'form-field-wide', )); woocommerce_wp_text_input(array( 'id' => 'in_print_date', 'label' => __('In Print Date', 'studiou-wc-ord-print-statuses'), 'type' => 'datetime-local', 'value' => $this->mysql_to_datetime_local($order->get_meta('in_print_date')), 'wrapper_class' => 'form-field-wide', )); woocommerce_wp_text_input(array( 'id' => 'external_ref_ord_no', 'label' => __('External Order Number', 'studiou-wc-ord-print-statuses'), 'value' => $order->get_meta('external_ref_ord_no'), 'wrapper_class' => 'form-field-wide', )); woocommerce_wp_text_input(array( 'id' => 'external_ref_ord_date', 'label' => __('External Order Date', 'studiou-wc-ord-print-statuses'), 'type' => 'datetime-local', 'value' => $this->mysql_to_datetime_local($order->get_meta('external_ref_ord_date')), 'wrapper_class' => 'form-field-wide', )); woocommerce_wp_text_input(array( 'id' => 'external_ref_ord_delivered', 'label' => __('External Order Delivered', 'studiou-wc-ord-print-statuses'), 'type' => 'datetime-local', 'value' => $this->mysql_to_datetime_local($order->get_meta('external_ref_ord_delivered')), 'wrapper_class' => 'form-field-wide', )); ?>
datetime_fields) as $field) { if (isset($_POST[$field])) { $order->update_meta_data($field, $this->datetime_local_to_mysql($_POST[$field])); } } foreach (array_keys($this->text_fields) as $field) { if (isset($_POST[$field])) { $order->update_meta_data($field, sanitize_text_field(wp_unslash($_POST[$field]))); } } $order->save(); } private function mysql_to_datetime_local($value) { if (empty($value)) { return ''; } $timestamp = strtotime($value); return $timestamp ? date('Y-m-d\TH:i', $timestamp) : ''; } private function datetime_local_to_mysql($value) { $value = sanitize_text_field(wp_unslash($value)); if ($value === '') { return ''; } $timestamp = strtotime($value); return $timestamp ? date('Y-m-d H:i:s', $timestamp) : ''; } }