WC_Meta_Box_Order_Data::save()
Save meta box data.
{} Это метод класса: WC_Meta_Box_Order_Data{}
Хуков нет.
Возвращает
null
. Ничего.
Использование
$result = WC_Meta_Box_Order_Data::save( $order_id );
- $order_id(int) (обязательный)
- Order ID.
Код WC_Meta_Box_Order_Data::save() WC Meta Box Order Data::save WC 6.4.1
public static function save( $order_id ) { self::init_address_fields(); // Ensure gateways are loaded in case they need to insert data into the emails. WC()->payment_gateways(); WC()->shipping(); // Get order object. $order = wc_get_order( $order_id ); $props = array(); // Create order key. if ( ! $order->get_order_key() ) { $props['order_key'] = wc_generate_order_key(); } // Update customer. $customer_id = isset( $_POST['customer_user'] ) ? absint( $_POST['customer_user'] ) : 0; if ( $customer_id !== $order->get_customer_id() ) { $props['customer_id'] = $customer_id; } // Update billing fields. if ( ! empty( self::$billing_fields ) ) { foreach ( self::$billing_fields as $key => $field ) { if ( ! isset( $field['id'] ) ) { $field['id'] = '_billing_' . $key; } if ( ! isset( $_POST[ $field['id'] ] ) ) { continue; } if ( is_callable( array( $order, 'set_billing_' . $key ) ) ) { $props[ 'billing_' . $key ] = wc_clean( wp_unslash( $_POST[ $field['id'] ] ) ); } else { $order->update_meta_data( $field['id'], wc_clean( wp_unslash( $_POST[ $field['id'] ] ) ) ); } } } // Update shipping fields. if ( ! empty( self::$shipping_fields ) ) { foreach ( self::$shipping_fields as $key => $field ) { if ( ! isset( $field['id'] ) ) { $field['id'] = '_shipping_' . $key; } if ( ! isset( $_POST[ $field['id'] ] ) ) { continue; } if ( is_callable( array( $order, 'set_shipping_' . $key ) ) ) { $props[ 'shipping_' . $key ] = wc_clean( wp_unslash( $_POST[ $field['id'] ] ) ); } else { $order->update_meta_data( $field['id'], wc_clean( wp_unslash( $_POST[ $field['id'] ] ) ) ); } } } if ( isset( $_POST['_transaction_id'] ) ) { $props['transaction_id'] = wc_clean( wp_unslash( $_POST['_transaction_id'] ) ); } // Payment method handling. if ( $order->get_payment_method() !== wp_unslash( $_POST['_payment_method'] ) ) { $methods = WC()->payment_gateways->payment_gateways(); $payment_method = wc_clean( wp_unslash( $_POST['_payment_method'] ) ); $payment_method_title = $payment_method; if ( isset( $methods ) && isset( $methods[ $payment_method ] ) ) { $payment_method_title = $methods[ $payment_method ]->get_title(); } if ( $payment_method == 'other') { $payment_method_title = esc_html__( 'Other', 'woocommerce' ); } $props['payment_method'] = $payment_method; $props['payment_method_title'] = $payment_method_title; } // Update date. if ( empty( $_POST['order_date'] ) ) { $date = time(); } else { $date = gmdate( 'Y-m-d H:i:s', strtotime( $_POST['order_date'] . ' ' . (int) $_POST['order_date_hour'] . ':' . (int) $_POST['order_date_minute'] . ':' . (int) $_POST['order_date_second'] ) ); } $props['date_created'] = $date; // Set created via prop if new post. if ( isset( $_POST['original_post_status'] ) && $_POST['original_post_status'] === 'auto-draft' ) { $props['created_via'] = 'admin'; } // Save order data. $order->set_props( $props ); $order->set_status( wc_clean( wp_unslash( $_POST['order_status'] ) ), '', true ); $order->save(); }