diff --git a/src/Element/Conditions.php b/src/Element/Conditions.php
index 872010d2..2c4fa34b 100644
--- a/src/Element/Conditions.php
+++ b/src/Element/Conditions.php
@@ -111,6 +111,7 @@ class Conditions extends FormElement {
     $tab_group = implode('][', array_merge($element['#parents'], ['conditions']));
 
     $element['#attached']['library'][] = 'commerce/conditions';
+    $element['#after_build'] = [[get_called_class(), 'clearValues']];
     $element['#categories'] = [];
 
     // Render vertical tabs only if there is more than a single category.
@@ -242,4 +243,25 @@ class Conditions extends FormElement {
     $form_state->setValueForElement($element, $value);
   }
 
+  /**
+   * Clears plugin configuration when a condition plugin checkbox is unchecked.
+   */
+  public static function clearValues(array $element, FormStateInterface $form_state) {
+    $triggering_element = $form_state->getTriggeringElement();
+    if (!$triggering_element) {
+      return $element;
+    }
+    $triggering_element_name = end($triggering_element['#parents']);
+    if ($triggering_element_name === 'enable' && !$triggering_element['#value']) {
+      $user_input = &$form_state->getUserInput();
+      array_pop($triggering_element['#parents']);
+      $values = NestedArray::getValue($user_input, $triggering_element['#parents']);
+      // Clear the configuration when the "enable" checkbox is unchecked.
+      unset($values['configuration']);
+      NestedArray::setValue($user_input, $triggering_element['#parents'], $values);
+    }
+
+    return $element;
+  }
+
 }
