Skip to content

Commit

Permalink
Merge pull request #2820 from woocommerce/PCP-3860-only-last-payment-…
Browse files Browse the repository at this point in the history
…token-is-available-because-a-new-customer-is-returned-each-time

Only last payment token is available because a new customer is returned each time (PCP-3860)
  • Loading branch information
Dinamiko authored Nov 21, 2024
2 parents 7bf579c + d3cc1ed commit 44b8854
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,24 @@ public function __construct( string $host, Bearer $bearer, LoggerInterface $logg
* Creates a setup token.
*
* @param PaymentSource $payment_source The payment source.
* @param string $customer_id PayPal customer ID.
*
* @return stdClass
*
* @throws RuntimeException When something when wrong with the request.
* @throws PayPalApiException When something when wrong setting up the token.
*/
public function setup_tokens( PaymentSource $payment_source ): stdClass {
public function setup_tokens( PaymentSource $payment_source, string $customer_id = '' ): stdClass {
$data = array(
'payment_source' => array(
$payment_source->name() => $payment_source->properties(),
),
);

if ( $customer_id ) {
$data['customer']['id'] = $customer_id;
}

$bearer = $this->bearer->bearer();
$url = trailingslashit( $this->host ) . 'v3/vault/setup-tokens';

Expand Down Expand Up @@ -109,19 +114,24 @@ public function setup_tokens( PaymentSource $payment_source ): stdClass {
* Creates a payment token for the given payment source.
*
* @param PaymentSource $payment_source The payment source.
* @param string $customer_id PayPal customer ID.
*
* @return stdClass
*
* @throws RuntimeException When something when wrong with the request.
* @throws PayPalApiException When something when wrong setting up the token.
*/
public function create_payment_token( PaymentSource $payment_source ): stdClass {
public function create_payment_token( PaymentSource $payment_source, string $customer_id = '' ): stdClass {
$data = array(
'payment_source' => array(
$payment_source->name() => $payment_source->properties(),
),
);

if ( $customer_id ) {
$data['customer']['id'] = $customer_id;
}

$bearer = $this->bearer->bearer();
$url = trailingslashit( $this->host ) . 'v3/vault/payment-tokens';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@ public function handle_request(): bool {
)
);

$result = $this->payment_method_tokens_endpoint->create_payment_token( $payment_source );
$customer_id = get_user_meta( get_current_user_id(), '_ppcp_target_customer_id', true );

$result = $this->payment_method_tokens_endpoint->create_payment_token( $payment_source, $customer_id );

if ( is_user_logged_in() && isset( $result->customer->id ) ) {
$current_user_id = get_current_user_id();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,9 @@ public function handle_request(): bool {
);
}

$result = $this->payment_method_tokens_endpoint->setup_tokens( $payment_source );
$customer_id = get_user_meta( get_current_user_id(), '_ppcp_target_customer_id', true );

$result = $this->payment_method_tokens_endpoint->setup_tokens( $payment_source, $customer_id );

wp_send_json_success( $result );
return true;
Expand Down
4 changes: 4 additions & 0 deletions modules/ppcp-vaulting/src/VaultingModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,10 @@ function( $item, $payment_token ) {
add_action(
'wp',
function() use ( $container ) {
if ( $container->get( 'vaulting.vault-v3-enabled' ) ) {
return;
}

global $wp;

if ( isset( $wp->query_vars['delete-payment-method'] ) ) {
Expand Down

0 comments on commit 44b8854

Please sign in to comment.