diff --git a/modules/ppcp-api-client/src/Endpoint/IdentityToken.php b/modules/ppcp-api-client/src/Endpoint/IdentityToken.php index ecbc11913..a01e746ac 100644 --- a/modules/ppcp-api-client/src/Endpoint/IdentityToken.php +++ b/modules/ppcp-api-client/src/Endpoint/IdentityToken.php @@ -107,10 +107,6 @@ class IdentityToken { ) { $customer_id = $this->customer_repository->customer_id_for_user( ( $user_id ) ); - if ( 0 === $user_id ) { - WC()->session->set( 'ppcp_guest_customer_id', $customer_id ); - } - $args['body'] = wp_json_encode( array( 'customer_id' => $customer_id, diff --git a/modules/ppcp-api-client/src/Repository/CustomerRepository.php b/modules/ppcp-api-client/src/Repository/CustomerRepository.php index 61a3ca7b6..65deb9511 100644 --- a/modules/ppcp-api-client/src/Repository/CustomerRepository.php +++ b/modules/ppcp-api-client/src/Repository/CustomerRepository.php @@ -38,7 +38,14 @@ class CustomerRepository { */ public function customer_id_for_user( int $user_id ): string { if ( 0 === $user_id ) { - return $this->prefix . uniqid(); + if ( WC()->session->get( 'ppcp_guest_customer_id' ) ) { + return WC()->session->get( 'ppcp_guest_customer_id' ); + } + + $unique_id = $this->prefix . uniqid(); + WC()->session->set( 'ppcp_guest_customer_id', $unique_id ); + + return $unique_id; } $guest_customer_id = get_user_meta( $user_id, 'ppcp_guest_customer_id', true );