From dce8a06953bae914f090340d5e723988429e207d Mon Sep 17 00:00:00 2001 From: dinamiko Date: Wed, 12 Jan 2022 15:55:09 +0100 Subject: [PATCH] Do not regenerate guest customer id if already exist in the session --- modules/ppcp-api-client/src/Endpoint/IdentityToken.php | 4 ---- .../src/Repository/CustomerRepository.php | 9 ++++++++- 2 files changed, 8 insertions(+), 5 deletions(-) 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 );