WC_Order_Data_Store_CPT::update( WC_Order $order )
Method to update an order in the database.
Description Description
Parameters Parameters
- $order
-
(Required) Order object.
Source Source
File: includes/data-stores/class-wc-order-data-store-cpt.php
public function update( &$order ) {
// Before updating, ensure date paid is set if missing.
if ( ! $order->get_date_paid( 'edit' ) && version_compare( $order->get_version( 'edit' ), '3.0', '<' ) && $order->has_status( apply_filters( 'woocommerce_payment_complete_order_status', $order->needs_processing() ? 'processing' : 'completed', $order->get_id(), $order ) ) ) {
$order->set_date_paid( $order->get_date_created( 'edit' ) );
}
// Also grab the current status so we can compare.
$previous_status = get_post_status( $order->get_id() );
// Update the order.
parent::update( $order );
// Fire a hook depending on the status - this should be considered a creation if it was previously draft status.
$new_status = $order->get_status( 'edit' );
if ( $new_status !== $previous_status && in_array( $previous_status, array( 'new', 'auto-draft', 'draft' ), true ) ) {
do_action( 'woocommerce_new_order', $order->get_id(), $order );
} else {
do_action( 'woocommerce_update_order', $order->get_id(), $order );
}
}