Passed
Push — master ( fbd145...a5c159 )
by Kiran
14:08 queued 08:25
created
templates/payment-forms/elements/address-fields.php 1 patch
Spacing   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -12,75 +12,75 @@  discard block
 block discarded – undo
12 12
  * @var GetPaid_Payment_Form $form
13 13
  */
14 14
 
15
-defined( 'ABSPATH' ) || exit;
15
+defined('ABSPATH') || exit;
16 16
 
17
-$field_type = sanitize_key( $field_type );
17
+$field_type = sanitize_key($field_type);
18 18
 
19
-echo "<div class='row " . esc_attr( $field_type ) . "'>";
19
+echo "<div class='row " . esc_attr($field_type) . "'>";
20 20
 
21 21
 // Prepare current user.
22
-if ( ! empty( $form->invoice ) ) {
22
+if (!empty($form->invoice)) {
23 23
     $user_id = $form->invoice->get_user_id();
24 24
 }
25 25
 
26
-if ( empty( $user_id ) && is_user_logged_in() ) {
26
+if (empty($user_id) && is_user_logged_in()) {
27 27
     $user_id = get_current_user_id();
28 28
 }
29 29
 
30
-if ( ! empty( $user_id ) ) {
31
-    $user  = wp_get_current_user();
30
+if (!empty($user_id)) {
31
+    $user = wp_get_current_user();
32 32
 }
33 33
 
34
-foreach ( $fields as $address_field ) {
34
+foreach ($fields as $address_field) {
35 35
 
36 36
     // Skip if it is hidden.
37
-    if ( empty( $address_field['visible'] ) ) {
37
+    if (empty($address_field['visible'])) {
38 38
         continue;
39 39
     }
40 40
 
41
-    do_action( 'getpaid_payment_form_address_field_before_' . $address_field['name'], $field_type, $address_field );
41
+    do_action('getpaid_payment_form_address_field_before_' . $address_field['name'], $field_type, $address_field);
42 42
 
43 43
     // Prepare variables.
44 44
     $field_name  = $address_field['name'];
45 45
     $field_name  = "{$field_type}[$field_name]";
46
-    $wrap_class  = getpaid_get_form_element_grid_class( $address_field );
47
-    $wrap_class  = esc_attr( "$wrap_class getpaid-address-field-wrapper" );
48
-    $placeholder = empty( $address_field['placeholder'] ) ? '' : esc_attr( __( wp_unslash( $address_field['placeholder'] ), 'invoicing' ) );
49
-    $description = empty( $address_field['description'] ) ? '' : wp_kses_post( __( wp_unslash( $address_field['description'] ), 'invoicing' ) );
50
-    $value       = ! empty( $user_id ) ? get_user_meta( $user_id, '_' . $address_field['name'], true ) : '';
51
-    $label       = empty( $address_field['label'] ) ? '' : wp_kses_post( __( wp_unslash( $address_field['label'] ), 'invoicing' ) );
52
-
53
-    $method_name = 'get_' . str_replace( 'wpinv_', '', $address_field['name'] );
54
-    if ( ! empty( $form->invoice ) && is_callable( array( $form->invoice, $method_name ) ) ) {
55
-        $value = call_user_func( array( $form->invoice, $method_name ) );
46
+    $wrap_class  = getpaid_get_form_element_grid_class($address_field);
47
+    $wrap_class  = esc_attr("$wrap_class getpaid-address-field-wrapper");
48
+    $placeholder = empty($address_field['placeholder']) ? '' : esc_attr(__(wp_unslash($address_field['placeholder']), 'invoicing'));
49
+    $description = empty($address_field['description']) ? '' : wp_kses_post(__(wp_unslash($address_field['description']), 'invoicing'));
50
+    $value       = !empty($user_id) ? get_user_meta($user_id, '_' . $address_field['name'], true) : '';
51
+    $label       = empty($address_field['label']) ? '' : wp_kses_post(__(wp_unslash($address_field['label']), 'invoicing'));
52
+
53
+    $method_name = 'get_' . str_replace('wpinv_', '', $address_field['name']);
54
+    if (!empty($form->invoice) && is_callable(array($form->invoice, $method_name))) {
55
+        $value = call_user_func(array($form->invoice, $method_name));
56 56
     }
57 57
 
58
-    if ( empty( $value ) && 'wpinv_first_name' === $address_field['name'] && ! empty( $user ) ) {
58
+    if (empty($value) && 'wpinv_first_name' === $address_field['name'] && !empty($user)) {
59 59
         $value = $user->first_name;
60 60
     }
61 61
 
62
-    if ( empty( $value ) && 'wpinv_last_name' === $address_field['name'] && ! empty( $user ) ) {
62
+    if (empty($value) && 'wpinv_last_name' === $address_field['name'] && !empty($user)) {
63 63
         $value = $user->last_name;
64 64
     }
65 65
 
66
-    if ( ! empty( $address_field['required'] ) ) {
66
+    if (!empty($address_field['required'])) {
67 67
         $label .= "<span class='text-danger'> *</span>";
68 68
     }
69 69
 
70 70
     // Display the country.
71
-    if ( 'wpinv_country' === $address_field['name'] ) {
71
+    if ('wpinv_country' === $address_field['name']) {
72 72
 
73
-        echo "<div class='form-group mb-3 " . esc_attr( $wrap_class ) . " getpaid-address-field-wrapper__country'";
73
+        echo "<div class='form-group mb-3 " . esc_attr($wrap_class) . " getpaid-address-field-wrapper__country'";
74 74
 
75 75
         aui()->select(
76 76
             array(
77 77
                 'options'          => wpinv_get_country_list(),
78
-                'name'             => esc_attr( $field_name ),
79
-                'id'               => sanitize_html_class( $field_name ) . $uniqid,
80
-                'value'            => esc_attr( $country ),
78
+                'name'             => esc_attr($field_name),
79
+                'id'               => sanitize_html_class($field_name) . $uniqid,
80
+                'value'            => esc_attr($country),
81 81
                 'placeholder'      => $placeholder,
82
-                'required'         => ! empty( $address_field['required'] ),
83
-                'label'            => wp_kses_post( $label ),
82
+                'required'         => !empty($address_field['required']),
83
+                'label'            => wp_kses_post($label),
84 84
                 'label_type'       => 'vertical',
85 85
                 'help_text'        => $description,
86 86
                 'class'            => 'getpaid-address-field wpinv_country',
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
             true
95 95
         );
96 96
 
97
-        if ( wpinv_should_validate_vat_number() ) {
97
+        if (wpinv_should_validate_vat_number()) {
98 98
 
99 99
             aui()->input(
100 100
                 array(
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
                     'id'         => "shipping-toggle$uniqid",
104 104
                     'wrap_class' => 'getpaid-address-field-wrapper__address-confirm mt-1 d-none',
105 105
                     'required'   => false,
106
-                    'label'      => __( 'I certify that I live in the country selected above', 'invoicing' ) . "<span class='text-danger'> *</span>",
106
+                    'label'      => __('I certify that I live in the country selected above', 'invoicing') . "<span class='text-danger'> *</span>",
107 107
                     'value'      => 1,
108 108
                     'checked'    => true,
109 109
                     'class'      => 'w-auto',
@@ -118,9 +118,9 @@  discard block
 block discarded – undo
118 118
     }
119 119
 
120 120
     // Display the state.
121
-    elseif ( 'wpinv_state' == $address_field['name'] ) {
121
+    elseif ('wpinv_state' == $address_field['name']) {
122 122
 
123
-        if ( empty( $value ) ) {
123
+        if (empty($value)) {
124 124
             $value = wpinv_get_default_state();
125 125
         }
126 126
 
@@ -130,7 +130,7 @@  discard block
 block discarded – undo
130 130
             $placeholder,
131 131
             $label,
132 132
             $description,
133
-            ! empty( $address_field['required'] ),
133
+            !empty($address_field['required']),
134 134
             $wrap_class,
135 135
             $field_name,
136 136
             true
@@ -138,8 +138,8 @@  discard block
 block discarded – undo
138 138
 
139 139
     } else {
140 140
 
141
-        $key      = str_replace( 'wpinv_', '', $address_field['name'] );
142
-        $key      = esc_attr( str_replace( '_', '-', $key ) );
141
+        $key      = str_replace('wpinv_', '', $address_field['name']);
142
+        $key      = esc_attr(str_replace('_', '-', $key));
143 143
         $autocomplete = '';
144 144
         $replacements = array(
145 145
             'zip'        => 'postal-code',
@@ -152,37 +152,37 @@  discard block
 block discarded – undo
152 152
         );
153 153
 
154 154
 
155
-        if ( isset( $replacements[ $key ] ) ) {
155
+        if (isset($replacements[$key])) {
156 156
             $autocomplete = array(
157
-                'autocomplete' => "$field_type {$replacements[ $key ]}",
157
+                'autocomplete' => "$field_type {$replacements[$key]}",
158 158
             );
159 159
         }
160 160
 
161 161
         $append = '';
162 162
 
163
-        if ( 'billing' === $field_type && wpinv_should_validate_vat_number() && 'vat-number' === $key ) {
164
-            $valid    = esc_attr__( 'Valid', 'invoicing' );
165
-            $invalid  = esc_attr__( 'Invalid', 'invoicing' );
166
-            $validate = esc_attr__( 'Validate', 'invoicing' );
163
+        if ('billing' === $field_type && wpinv_should_validate_vat_number() && 'vat-number' === $key) {
164
+            $valid    = esc_attr__('Valid', 'invoicing');
165
+            $invalid  = esc_attr__('Invalid', 'invoicing');
166
+            $validate = esc_attr__('Validate', 'invoicing');
167 167
             $append   = "<span class='btn btn-primary getpaid-vat-number-validate' data-valid='$valid' data-invalid='$invalid' data-validate='$validate'>$validate</span>";
168 168
         }
169 169
 
170
-        if ( 'billing' === $field_type ) {
171
-            $description .= '<div class="getpaid-error-' . esc_attr( $field_name ) . ' getpaid-custom-payment-form-errors alert alert-danger d-none"></div>';
170
+        if ('billing' === $field_type) {
171
+            $description .= '<div class="getpaid-error-' . esc_attr($field_name) . ' getpaid-custom-payment-form-errors alert alert-danger d-none"></div>';
172 172
         }
173 173
 
174 174
         aui()->input(
175 175
             array(
176
-                'name'              => esc_attr( $field_name ),
177
-                'id'                => sanitize_html_class( $field_name ) . $uniqid,
178
-                'required'          => ! empty( $address_field['required'] ),
176
+                'name'              => esc_attr($field_name),
177
+                'id'                => sanitize_html_class($field_name) . $uniqid,
178
+                'required'          => !empty($address_field['required']),
179 179
                 'placeholder'       => $placeholder,
180
-                'label'             => wp_kses_post( $label ),
180
+                'label'             => wp_kses_post($label),
181 181
                 'label_type'        => 'vertical',
182 182
                 'help_text'         => $description,
183 183
                 'type'              => 'text',
184
-                'value'             => apply_filters( 'getpaid_payment_form_value_' . $address_field['name'], esc_attr( $value ) ),
185
-                'class'             => 'getpaid-address-field ' . esc_attr( $address_field['name'] ),
184
+                'value'             => apply_filters('getpaid_payment_form_value_' . $address_field['name'], esc_attr($value)),
185
+                'class'             => 'getpaid-address-field ' . esc_attr($address_field['name']),
186 186
                 'wrap_class'        => "$wrap_class getpaid-address-field-wrapper__$key",
187 187
                 'label_class'       => 'getpaid-address-field-label getpaid-address-field-label__' . $key,
188 188
                 'extra_attributes'  => $autocomplete,
@@ -193,7 +193,7 @@  discard block
 block discarded – undo
193 193
 
194 194
     }
195 195
 
196
-    do_action( 'getpaid_payment_form_address_field_after_' . $address_field['name'], $field_type, $address_field );
196
+    do_action('getpaid_payment_form_address_field_after_' . $address_field['name'], $field_type, $address_field);
197 197
 }
198 198
 
199 199
 echo '</div>';
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/ayecode-ui-loader.php 3 patches
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -7,40 +7,40 @@
 block discarded – undo
7 7
  * Bail if we are not in WP.
8 8
  */
9 9
 if ( ! defined( 'ABSPATH' ) ) {
10
-	exit;
10
+    exit;
11 11
 }
12 12
 
13 13
 /**
14 14
  * Set the version only if its the current newest while loading.
15 15
  */
16 16
 add_action('after_setup_theme', function () {
17
-	global $ayecode_ui_version,$ayecode_ui_file_key;
18
-	$this_version = "0.2.41";
19
-	if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
-		$ayecode_ui_version = $this_version ;
21
-		$ayecode_ui_file_key = wp_hash( __FILE__ );
22
-	}
17
+    global $ayecode_ui_version,$ayecode_ui_file_key;
18
+    $this_version = "0.2.41";
19
+    if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
+        $ayecode_ui_version = $this_version ;
21
+        $ayecode_ui_file_key = wp_hash( __FILE__ );
22
+    }
23 23
 },0);
24 24
 
25 25
 /**
26 26
  * Load this version of WP Bootstrap Settings only if the file hash is the current one.
27 27
  */
28 28
 add_action('after_setup_theme', function () {
29
-	global $ayecode_ui_file_key;
30
-	if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
-		include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
-		include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
-	}
29
+    global $ayecode_ui_file_key;
30
+    if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
+        include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
+        include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
+    }
34 34
 },1);
35 35
 
36 36
 /**
37 37
  * Add the function that calls the class.
38 38
  */
39 39
 if(!function_exists('aui')){
40
-	function aui(){
41
-		if(!class_exists("AUI",false)){
42
-			return false;
43
-		}
44
-		return AUI::instance();
45
-	}
40
+    function aui(){
41
+        if(!class_exists("AUI",false)){
42
+            return false;
43
+        }
44
+        return AUI::instance();
45
+    }
46 46
 }
Please login to merge, or discard this patch.
Switch Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -1,4 +1,4 @@  discard block
 block discarded – undo
1
-<?php
1
+    <?php
2 2
 /**
3 3
  * This is a file takes advantage of anonymous functions to to load the latest version of the AyeCode UI Settings.
4 4
  */
@@ -6,41 +6,41 @@  discard block
 block discarded – undo
6 6
 /**
7 7
  * Bail if we are not in WP.
8 8
  */
9
-if ( ! defined( 'ABSPATH' ) ) {
10
-	exit;
9
+    if ( ! defined( 'ABSPATH' ) ) {
10
+	    exit;
11 11
 }
12 12
 
13 13
 /**
14 14
  * Set the version only if its the current newest while loading.
15 15
  */
16
-add_action('after_setup_theme', function () {
17
-	global $ayecode_ui_version,$ayecode_ui_file_key;
18
-	$this_version = "0.2.41";
19
-	if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
-		$ayecode_ui_version = $this_version ;
21
-		$ayecode_ui_file_key = wp_hash( __FILE__ );
22
-	}
16
+    add_action('after_setup_theme', function () {
17
+	    global $ayecode_ui_version,$ayecode_ui_file_key;
18
+	    $this_version = "0.2.41";
19
+	    if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
+		    $ayecode_ui_version = $this_version ;
21
+		    $ayecode_ui_file_key = wp_hash( __FILE__ );
22
+	    }
23 23
 },0);
24 24
 
25 25
 /**
26 26
  * Load this version of WP Bootstrap Settings only if the file hash is the current one.
27 27
  */
28
-add_action('after_setup_theme', function () {
29
-	global $ayecode_ui_file_key;
30
-	if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
-		include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
-		include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
-	}
28
+    add_action('after_setup_theme', function () {
29
+	    global $ayecode_ui_file_key;
30
+	    if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
+		    include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
+		    include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
33
+	    }
34 34
 },1);
35 35
 
36 36
 /**
37 37
  * Add the function that calls the class.
38 38
  */
39
-if(!function_exists('aui')){
40
-	function aui(){
41
-		if(!class_exists("AUI",false)){
42
-			return false;
43
-		}
44
-		return AUI::instance();
45
-	}
39
+    if(!function_exists('aui')){
40
+	    function aui(){
41
+		    if(!class_exists("AUI",false)){
42
+			    return false;
43
+		    }
44
+		    return AUI::instance();
45
+	    }
46 46
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -6,39 +6,39 @@
 block discarded – undo
6 6
 /**
7 7
  * Bail if we are not in WP.
8 8
  */
9
-if ( ! defined( 'ABSPATH' ) ) {
9
+if (!defined('ABSPATH')) {
10 10
 	exit;
11 11
 }
12 12
 
13 13
 /**
14 14
  * Set the version only if its the current newest while loading.
15 15
  */
16
-add_action('after_setup_theme', function () {
17
-	global $ayecode_ui_version,$ayecode_ui_file_key;
16
+add_action('after_setup_theme', function() {
17
+	global $ayecode_ui_version, $ayecode_ui_file_key;
18 18
 	$this_version = "0.2.41";
19
-	if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){
20
-		$ayecode_ui_version = $this_version ;
21
-		$ayecode_ui_file_key = wp_hash( __FILE__ );
19
+	if (empty($ayecode_ui_version) || version_compare($this_version, $ayecode_ui_version, '>')) {
20
+		$ayecode_ui_version = $this_version;
21
+		$ayecode_ui_file_key = wp_hash(__FILE__);
22 22
 	}
23 23
 },0);
24 24
 
25 25
 /**
26 26
  * Load this version of WP Bootstrap Settings only if the file hash is the current one.
27 27
  */
28
-add_action('after_setup_theme', function () {
28
+add_action('after_setup_theme', function() {
29 29
 	global $ayecode_ui_file_key;
30
-	if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){
31
-		include_once( dirname( __FILE__ ) . '/includes/class-aui.php' );
32
-		include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' );
30
+	if ($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash(__FILE__)) {
31
+		include_once(dirname(__FILE__) . '/includes/class-aui.php');
32
+		include_once(dirname(__FILE__) . '/includes/ayecode-ui-settings.php');
33 33
 	}
34 34
 },1);
35 35
 
36 36
 /**
37 37
  * Add the function that calls the class.
38 38
  */
39
-if(!function_exists('aui')){
40
-	function aui(){
41
-		if(!class_exists("AUI",false)){
39
+if (!function_exists('aui')) {
40
+	function aui() {
41
+		if (!class_exists("AUI", false)) {
42 42
 			return false;
43 43
 		}
44 44
 		return AUI::instance();
Please login to merge, or discard this patch.
invoicing.php 2 patches
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,16 +19,16 @@  discard block
 block discarded – undo
19 19
 
20 20
 // Define constants.
21 21
 if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
22
+    define( 'WPINV_PLUGIN_FILE', __FILE__ );
23 23
 }
24 24
 
25 25
 if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.33' );
26
+    define( 'WPINV_VERSION', '2.8.33' );
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30 30
 if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
31
+    require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -43,7 +43,7 @@  discard block
 block discarded – undo
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
46
-	return $GLOBALS['invoicing'];
46
+    return $GLOBALS['invoicing'];
47 47
 }
48 48
 
49 49
 /**
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -15,20 +15,20 @@  discard block
 block discarded – undo
15 15
  * @package GetPaid
16 16
  */
17 17
 
18
-defined( 'ABSPATH' ) || exit;
18
+defined('ABSPATH') || exit;
19 19
 
20 20
 // Define constants.
21
-if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) {
22
-	define( 'WPINV_PLUGIN_FILE', __FILE__ );
21
+if (!defined('WPINV_PLUGIN_FILE')) {
22
+	define('WPINV_PLUGIN_FILE', __FILE__);
23 23
 }
24 24
 
25
-if ( ! defined( 'WPINV_VERSION' ) ) {
26
-	define( 'WPINV_VERSION', '2.8.33' );
25
+if (!defined('WPINV_VERSION')) {
26
+	define('WPINV_VERSION', '2.8.33');
27 27
 }
28 28
 
29 29
 // Include the main Invoicing class.
30
-if ( ! class_exists( 'WPInv_Plugin', false ) ) {
31
-	require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php';
30
+if (!class_exists('WPInv_Plugin', false)) {
31
+	require_once plugin_dir_path(WPINV_PLUGIN_FILE) . 'includes/class-wpinv.php';
32 32
 }
33 33
 
34 34
 /**
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
  */
40 40
 function getpaid() {
41 41
 
42
-    if ( empty( $GLOBALS['invoicing'] ) ) {
42
+    if (empty($GLOBALS['invoicing'])) {
43 43
         $GLOBALS['invoicing'] = new WPInv_Plugin();
44 44
     }
45 45
 
@@ -52,9 +52,9 @@  discard block
 block discarded – undo
52 52
  * @since  2.0.8
53 53
  */
54 54
 function getpaid_deactivation_hook() {
55
-    update_option( 'wpinv_flush_permalinks', 1 );
55
+    update_option('wpinv_flush_permalinks', 1);
56 56
 }
57
-register_deactivation_hook( __FILE__, 'getpaid_deactivation_hook' );
57
+register_deactivation_hook(__FILE__, 'getpaid_deactivation_hook');
58 58
 
59 59
 /**
60 60
  * @deprecated
@@ -64,4 +64,4 @@  discard block
 block discarded – undo
64 64
 }
65 65
 
66 66
 // Kickstart the plugin.
67
-add_action( 'plugins_loaded', 'getpaid', 0 );
67
+add_action('plugins_loaded', 'getpaid', 0);
Please login to merge, or discard this patch.