diff --git a/js/commerce_stripe.payment_element.js b/js/commerce_stripe.payment_element.js
index f6ad96a145..54e4b076bb 100644
--- a/js/commerce_stripe.payment_element.js
+++ b/js/commerce_stripe.payment_element.js
@@ -20,7 +20,7 @@
       async function processStripeForm(item) {
         const stripeForm = item.closest('form');
         const primaryButton = stripeForm.querySelector(
-          'input[data-drupal-selector="edit-actions-next"],button[data-drupal-selector="edit-actions-next"]',
+          `input[data-drupal-selector="${settings.buttonId}"],button[data-drupal-selector="${settings.buttonId}"]`,
         );

         const stripeOptions = {
diff --git a/src/Plugin/Commerce/CheckoutPane/StripeReview.php b/src/Plugin/Commerce/CheckoutPane/StripeReview.php
index 5999c0bcb5..3a9dcdbec3 100644
--- a/src/Plugin/Commerce/CheckoutPane/StripeReview.php
+++ b/src/Plugin/Commerce/CheckoutPane/StripeReview.php
@@ -263,6 +263,7 @@ public function buildPaneForm(array $pane_form, FormStateInterface $form_state,
         'apiVersion' => $stripe_plugin->getApiVersion(),
         'publishableKey' => $stripe_plugin->getPublishableKey(),
         'clientSecret' => $intent->client_secret,
+        'buttonId' => $this->configuration['button_id'],
         'returnUrl' => Url::fromRoute('commerce_payment.checkout.return', [
           'commerce_order' => $this->order->id(),
           'step' => 'review',
