WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru
функция не описана

WC_Meta_Box_Order_Data::save() public WC 1.0

Save meta box data.

Это метод класса: WC_Meta_Box_Order_Data{}

Хуков нет.

Возвращает

Null. Ничего.

Использование

$result = WC_Meta_Box_Order_Data::save( $order_id );
$order_id(число) (обязательный)
Order ID.

Код WC_Meta_Box_Order_Data::save() WC 4.5.2

woocommerce/includes/admin/meta-boxes/class-wc-meta-box-order-data.php
<?php
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();
		}

		$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();
}