Automattic\WooCommerce\Internal\DataStores\Orders
OrdersTableDataStore::maybe_create_backup_post
Takes care of creating the backup post in the posts table (placeholder or actual order post, depending on sync settings).
Method of the class: OrdersTableDataStore{}
No Hooks.
Returns
Int. The new post ID.
Usage
// protected - for code of main (parent) or child class $result = $this->maybe_create_backup_post( $order, $context ): int;
- $order(WC_Abstract_Order) (required) (passed by reference — &)
- The order.
- $context(string) (required)
- The context: either 'create' or 'backfill'.
Changelog
| Since 8.8.0 | Introduced. |
OrdersTableDataStore::maybe_create_backup_post() OrdersTableDataStore::maybe create backup post code WC 10.4.3
protected function maybe_create_backup_post( &$order, string $context ): int {
$data_sync = wc_get_container()->get( DataSynchronizer::class );
$data = array(
'post_type' => $data_sync->data_sync_is_enabled() ? $order->get_type() : $data_sync::PLACEHOLDER_ORDER_POST_TYPE,
'post_status' => 'draft',
'post_parent' => $order->get_changes()['parent_id'] ?? $order->get_data()['parent_id'] ?? 0,
'post_date' => gmdate( 'Y-m-d H:i:s', $order->get_date_created( 'edit' )->getOffsetTimestamp() ),
'post_date_gmt' => gmdate( 'Y-m-d H:i:s', $order->get_date_created( 'edit' )->getTimestamp() ),
);
if ( 'backfill' === $context ) {
if ( ! $order->get_id() ) {
return 0;
}
$data['import_id'] = $order->get_id();
}
return wp_insert_post( $data );
}