diff --git a/modules/checkout/src/Plugin/Commerce/CheckoutFlow/CheckoutFlowBase.php b/modules/checkout/src/Plugin/Commerce/CheckoutFlow/CheckoutFlowBase.php
index ecbca1b..a509ca5 100644
--- a/modules/checkout/src/Plugin/Commerce/CheckoutFlow/CheckoutFlowBase.php
+++ b/modules/checkout/src/Plugin/Commerce/CheckoutFlow/CheckoutFlowBase.php
@@ -138,7 +138,7 @@ abstract class CheckoutFlowBase extends PluginBase implements CheckoutFlowInterf
       ],
       'complete' => [
         'label' => $this->t('Complete'),
-        'next_label' => $this->t('Pay and complete purchase'),
+        'next_label' => $this->t('Complete purchase'),
         'has_sidebar' => FALSE,
       ],
     ];
diff --git a/modules/payment/src/Plugin/Commerce/CheckoutPane/PaymentProcess.php b/modules/payment/src/Plugin/Commerce/CheckoutPane/PaymentProcess.php
index f4094e3..5e055af 100644
--- a/modules/payment/src/Plugin/Commerce/CheckoutPane/PaymentProcess.php
+++ b/modules/payment/src/Plugin/Commerce/CheckoutPane/PaymentProcess.php
@@ -84,7 +84,9 @@ class PaymentProcess extends CheckoutPaneBase {
   public function isVisible() {
     // This pane can't be used without the PaymentInformation pane.
     $payment_info_pane = $this->checkoutFlow->getPane('payment_information');
-    return $payment_info_pane->isVisible() && $payment_info_pane->getStepId() != '_disabled';
+    // This pane is not necessary if the total price is zero or below.
+    $order_total = $this->order->getTotalPrice()->getNumber();
+    return $payment_info_pane->isVisible() && $payment_info_pane->getStepId() != '_disabled' && floatval($order_total) > 0;
   }
 
   /**
