| @@ -50,10 +50,18 @@ | ||
| 50 | 50 | if ( ! in_array( $status, self::VALID_STATUSES, true ) ) { |
| 51 | 51 | return; |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | - update_post_meta( $order_id, self::META_KEY_SUBMISSION_STATUS, $status ); | |
| 55 | - update_post_meta( $order_id, self::META_KEY_STATUS_UPDATED_AT, current_time( 'mysql', true ) ); | |
| 54 | + // Through the order object, not update_post_meta(): on HPOS the order's meta | |
| 55 | + // table is wc_orders_meta and a postmeta row is invisible to get_submission_status(). | |
| 56 | + $order = wc_get_order( $order_id ); | |
| 57 | + if ( ! $order ) { | |
| 58 | + return; | |
| 59 | + } | |
| 60 | + | |
| 61 | + $order->update_meta_data( self::META_KEY_SUBMISSION_STATUS, $status ); | |
| 62 | + $order->update_meta_data( self::META_KEY_STATUS_UPDATED_AT, current_time( 'mysql', true ) ); | |
| 63 | + $order->save(); | |
| 56 | 64 | } |
| 57 | 65 | |
| 58 | 66 | /** |
| 59 | 67 | * Get submission status for an order. |
| @@ -62,9 +70,10 @@ | ||
| 62 | 70 | * |
| 63 | 71 | * @return string |
| 64 | 72 | */ |
| 65 | 73 | public function get_submission_status( int $order_id ): string { |
| 66 | - $status = get_post_meta( $order_id, self::META_KEY_SUBMISSION_STATUS, true ); | |
| 74 | + $order = wc_get_order( $order_id ); | |
| 75 | + $status = $order ? $order->get_meta( self::META_KEY_SUBMISSION_STATUS ) : ''; | |
| 67 | 76 | |
| 68 | 77 | if ( in_array( $status, self::VALID_STATUSES, true ) ) { |
| 69 | 78 | return $status; |
| 70 | 79 | } |