Passed
Push — master ( 039fc1...a932b5 )
by Brian
05:54
created
templates/emails/wpinv-email-header.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@
 block discarded – undo
25 25
                         <?php
26 26
                             $img = wpinv_get_option( 'email_header_image', '' );
27 27
                             if ( $img ) {
28
-							echo '<p style="margin-top:0;"><img style="max-width:100%" src="' . esc_url( $img ) . '" alt="' . esc_attr( wpinv_get_blogname() ) . '" /></p>';
28
+                            echo '<p style="margin-top:0;"><img style="max-width:100%" src="' . esc_url( $img ) . '" alt="' . esc_attr( wpinv_get_blogname() ) . '" /></p>';
29 29
                             }
30 30
                         ?>
31 31
                         </div>
Please login to merge, or discard this patch.
includes/admin/views/wizard-settings.php 1 patch
Indentation   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -21,101 +21,101 @@
 block discarded – undo
21 21
                     global $wp_settings_fields;
22 22
 
23 23
                     if ( isset( $wp_settings_fields[ $page ][ $section ] ) ) {
24
-					$settings = $wp_settings_fields[ $page ][ $section ];
25
-
26
-					foreach ( $settings as $field ) {
27
-
28
-						$name      = esc_attr( $field['id'] );
29
-						$id        = sanitize_key( $name );
30
-						$class     = '';
31
-						$value     = isset( $field['args']['std'] ) ? $field['args']['std'] : '';
32
-						$value     = wpinv_clean( wpinv_get_option( $field['args']['id'], $value ) );
33
-						$help_text = isset( $field['args']['desc'] ) ? wp_kses_post( $field['args']['desc'] ) : '';
34
-						$type      = str_replace( 'wpinv_', '', str_replace( '_callback', '', $field['callback'] ) );
35
-						$label     = isset( $field['args']['name'] ) ? wp_kses_post( $field['args']['name'] ) : '';
36
-						$options   = isset( $field['args']['options'] ) ? $field['args']['options'] : array();
37
-
38
-						if ( false !== strpos( $name, 'logo' ) ) {
39
-							$type = 'hidden';
24
+                    $settings = $wp_settings_fields[ $page ][ $section ];
25
+
26
+                    foreach ( $settings as $field ) {
27
+
28
+                        $name      = esc_attr( $field['id'] );
29
+                        $id        = sanitize_key( $name );
30
+                        $class     = '';
31
+                        $value     = isset( $field['args']['std'] ) ? $field['args']['std'] : '';
32
+                        $value     = wpinv_clean( wpinv_get_option( $field['args']['id'], $value ) );
33
+                        $help_text = isset( $field['args']['desc'] ) ? wp_kses_post( $field['args']['desc'] ) : '';
34
+                        $type      = str_replace( 'wpinv_', '', str_replace( '_callback', '', $field['callback'] ) );
35
+                        $label     = isset( $field['args']['name'] ) ? wp_kses_post( $field['args']['name'] ) : '';
36
+                        $options   = isset( $field['args']['options'] ) ? $field['args']['options'] : array();
37
+
38
+                        if ( false !== strpos( $name, 'logo' ) ) {
39
+                            $type = 'hidden';
40 40
                             }
41 41
 
42
-						if ( 'country_states' == $type ) {
42
+                        if ( 'country_states' == $type ) {
43 43
 
44
-							if ( 0 == count( wpinv_get_country_states( wpinv_get_default_country() ) ) ) {
45
-								$type = 'text';
44
+                            if ( 0 == count( wpinv_get_country_states( wpinv_get_default_country() ) ) ) {
45
+                                $type = 'text';
46 46
                                 } else {
47
-								$type = 'select';
47
+                                $type = 'select';
48 48
                                 }
49 49
 
50
-							$class = 'getpaid_js_field-state';
50
+                            $class = 'getpaid_js_field-state';
51 51
                             }
52 52
 
53
-						if ( 'wpinv_settings[default_country]' == $name ) {
54
-							$class = 'getpaid_js_field-country';
53
+                        if ( 'wpinv_settings[default_country]' == $name ) {
54
+                            $class = 'getpaid_js_field-country';
55 55
                             }
56 56
 
57
-						switch ( $type ) {
57
+                        switch ( $type ) {
58 58
 
59
-							case 'hidden':
60
-								echo "<input type='hidden' id='" . esc_attr( $id ) . "' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' />";
61
-								break;
62
-							case 'text':
59
+                            case 'hidden':
60
+                                echo "<input type='hidden' id='" . esc_attr( $id ) . "' name='" . esc_attr( $name ) . "' value='" . esc_attr( $value ) . "' />";
61
+                                break;
62
+                            case 'text':
63 63
                             case 'number':
64
-								aui()->input(
64
+                                aui()->input(
65 65
                                     array(
66
-								'type'        => $type,
67
-								'id'          => $id,
68
-								'name'        => $name,
69
-								'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
70
-								'required'    => false,
71
-								'help_text'   => $help_text,
72
-								'label'       => $label,
73
-								'class'       => $class,
74
-								'label_type'  => 'floating',
75
-								'label_class' => 'settings-label',
66
+                                'type'        => $type,
67
+                                'id'          => $id,
68
+                                'name'        => $name,
69
+                                'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
70
+                                'required'    => false,
71
+                                'help_text'   => $help_text,
72
+                                'label'       => $label,
73
+                                'class'       => $class,
74
+                                'label_type'  => 'floating',
75
+                                'label_class' => 'settings-label',
76 76
                                     ),
77
-									true
77
+                                    true
78 78
                                 );
79
-								break;
80
-							case 'textarea':
81
-								aui()->textarea(
82
-									array(
83
-										'id'          => $id,
84
-										'name'        => $name,
85
-										'value'       => is_scalar( $value ) ? esc_textarea( $value ) : '',
86
-										'required'    => false,
87
-										'help_text'   => $help_text,
88
-										'label'       => $label,
89
-										'rows'        => '4',
90
-										'class'       => $class,
91
-										'label_type'  => 'floating',
92
-										'label_class' => 'settings-label',
93
-									),
94
-									true
95
-								);
96
-
97
-								break;
98
-							case 'select':
99
-								aui()->select(
100
-									array(
101
-										'id'          => $id,
102
-										'name'        => $name,
103
-										'placeholder' => '',
104
-										'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
105
-										'required'    => false,
106
-										'help_text'   => $help_text,
107
-										'label'       => $label,
108
-										'options'     => $options,
109
-										'label_type'  => 'floating',
110
-										'label_class' => 'settings-label',
111
-										'class'       => $class,
112
-									),
113
-									true
114
-								);
115
-								break;
116
-							default:
117
-								// Do something.
118
-								break;
79
+                                break;
80
+                            case 'textarea':
81
+                                aui()->textarea(
82
+                                    array(
83
+                                        'id'          => $id,
84
+                                        'name'        => $name,
85
+                                        'value'       => is_scalar( $value ) ? esc_textarea( $value ) : '',
86
+                                        'required'    => false,
87
+                                        'help_text'   => $help_text,
88
+                                        'label'       => $label,
89
+                                        'rows'        => '4',
90
+                                        'class'       => $class,
91
+                                        'label_type'  => 'floating',
92
+                                        'label_class' => 'settings-label',
93
+                                    ),
94
+                                    true
95
+                                );
96
+
97
+                                break;
98
+                            case 'select':
99
+                                aui()->select(
100
+                                    array(
101
+                                        'id'          => $id,
102
+                                        'name'        => $name,
103
+                                        'placeholder' => '',
104
+                                        'value'       => is_scalar( $value ) ? esc_attr( $value ) : '',
105
+                                        'required'    => false,
106
+                                        'help_text'   => $help_text,
107
+                                        'label'       => $label,
108
+                                        'options'     => $options,
109
+                                        'label_type'  => 'floating',
110
+                                        'label_class' => 'settings-label',
111
+                                        'class'       => $class,
112
+                                    ),
113
+                                    true
114
+                                );
115
+                                break;
116
+                            default:
117
+                                // Do something.
118
+                                break;
119 119
                             }
120 120
                         }
121 121
                     }
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin-setup-wizard.php 1 patch
Indentation   +381 added lines, -381 removed lines patch added patch discarded remove patch
@@ -17,395 +17,395 @@
 block discarded – undo
17 17
  */
18 18
 class GetPaid_Admin_Setup_Wizard {
19 19
 
20
-	/**
21
-	 * @var string Current Step
22
-	 */
23
-	protected $step = '';
24
-
25
-	/**
26
-	 * @var string|false Previous Step
27
-	 */
28
-	protected $previous_step = '';
29
-
30
-	/**
31
-	 * @var string|false Next Step
32
-	 */
33
-	protected $next_step = '';
34
-
35
-	/**
36
-	 * @var array All available steps for the setup wizard
37
-	 */
38
-	protected $steps = array();
39
-
40
-	/**
41
-	 * Class constructor.
42
-	 *
43
-	 * @since 2.4.0
44
-	 */
45
-	public function __construct() {
46
-
47
-		if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
-			add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
-			add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
-		}
51
-
52
-	}
53
-
54
-	/**
55
-	 * Add admin menus/screens.
56
-	 *
57
-	 * @since 2.4.0
58
-	 */
59
-	public function add_menu() {
60
-		add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
-	}
62
-
63
-	/**
64
-	 * Sets up the setup wizard.
65
-	 *
66
-	 * @since 2.4.0
67
-	 */
68
-	public function setup_wizard() {
69
-
70
-		if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
-			$this->setup_globals();
72
-			$this->maybe_save_current_step();
73
-			$this->display_wizard();
74
-			exit;
75
-		}
76
-
77
-	}
78
-
79
-	/**
80
-	 * Sets up class variables.
81
-	 *
82
-	 * @since 2.4.0
83
-	 */
84
-	protected function setup_globals() {
85
-		$this->steps         = $this->get_setup_steps();
86
-		$this->step          = $this->get_current_step();
87
-		$this->previous_step = $this->get_previous_step();
88
-		$this->next_step     = $this->get_next_step();
89
-	}
90
-
91
-	/**
92
-	 * Saves the current step.
93
-	 *
94
-	 * @since 2.4.0
95
-	 */
96
-	protected function maybe_save_current_step() {
97
-		if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
-			call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
-		}
100
-	}
101
-
102
-	/**
103
-	 * Returns the setup steps.
104
-	 *
105
-	 * @since 2.4.0
106
-	 * @return array
107
-	 */
108
-	protected function get_setup_steps() {
109
-
110
-		$steps = array(
111
-
112
-			'introduction'     => array(
113
-				'name'    => __( 'Introduction', 'invoicing' ),
114
-				'view'    => array( $this, 'setup_introduction' ),
115
-				'handler' => '',
116
-			),
117
-
118
-			'business_details' => array(
119
-				'name'    => __( 'Business Details', 'invoicing' ),
120
-				'view'    => array( $this, 'setup_business' ),
121
-				'handler' => '',
122
-			),
123
-
124
-			'currency'         => array(
125
-				'name'    => __( 'Currency', 'invoicing' ),
126
-				'view'    => array( $this, 'setup_currency' ),
127
-				'handler' => '',
128
-			),
129
-
130
-			'payments'         => array(
131
-				'name'    => __( 'Payment Gateways', 'invoicing' ),
132
-				'view'    => array( $this, 'setup_payments' ),
133
-				'handler' => array( $this, 'setup_payments_save' ),
134
-			),
135
-
136
-			'recommend'        => array(
137
-				'name'    => __( 'Recommend', 'invoicing' ),
138
-				'view'    => array( $this, 'setup_recommend' ),
139
-				'handler' => '',
140
-			),
141
-
142
-			'next_steps'       => array(
143
-				'name'    => __( 'Get Paid', 'invoicing' ),
144
-				'view'    => array( $this, 'setup_ready' ),
145
-				'handler' => '',
146
-			),
147
-
148
-		);
149
-
150
-		return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
-
152
-	}
153
-
154
-	/**
155
-	 * Returns the current step.
156
-	 *
157
-	 * @since 2.4.0
158
-	 * @return string
159
-	 */
160
-	protected function get_current_step() {
161
-		$step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
-		return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
-	}
164
-
165
-	/**
166
-	 * Returns the previous step.
167
-	 *
168
-	 * @since 2.4.0
169
-	 * @return string|false
170
-	 */
171
-	protected function get_previous_step() {
172
-
173
-		$previous = false;
174
-		$current  = $this->step;
175
-		foreach ( array_keys( $this->steps ) as $step ) {
176
-			if ( $current === $step ) {
177
-				return $previous;
178
-			}
179
-
180
-			$previous = $step;
181
-		}
182
-
183
-		return false;
184
-	}
185
-
186
-	/**
187
-	 * Returns the next step.
188
-	 *
189
-	 * @since 2.4.0
190
-	 * @return string|false
191
-	 */
192
-	protected function get_next_step() {
193
-
194
-		$on_current = false;
195
-		$current    = $this->step;
196
-		foreach ( array_keys( $this->steps ) as $step ) {
197
-
198
-			if ( $on_current ) {
199
-				return $step;
200
-			}
201
-
202
-			if ( $current === $step ) {
203
-				return $on_current = true;
204
-			}
20
+    /**
21
+     * @var string Current Step
22
+     */
23
+    protected $step = '';
24
+
25
+    /**
26
+     * @var string|false Previous Step
27
+     */
28
+    protected $previous_step = '';
29
+
30
+    /**
31
+     * @var string|false Next Step
32
+     */
33
+    protected $next_step = '';
34
+
35
+    /**
36
+     * @var array All available steps for the setup wizard
37
+     */
38
+    protected $steps = array();
39
+
40
+    /**
41
+     * Class constructor.
42
+     *
43
+     * @since 2.4.0
44
+     */
45
+    public function __construct() {
46
+
47
+        if ( apply_filters( 'getpaid_enable_setup_wizard', true ) && wpinv_current_user_can_manage_invoicing() ) {
48
+            add_action( 'admin_menu', array( $this, 'add_menu' ) );
49
+            add_action( 'current_screen', array( $this, 'setup_wizard' ) );
50
+        }
51
+
52
+    }
53
+
54
+    /**
55
+     * Add admin menus/screens.
56
+     *
57
+     * @since 2.4.0
58
+     */
59
+    public function add_menu() {
60
+        add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
61
+    }
62
+
63
+    /**
64
+     * Sets up the setup wizard.
65
+     *
66
+     * @since 2.4.0
67
+     */
68
+    public function setup_wizard() {
69
+
70
+        if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
71
+            $this->setup_globals();
72
+            $this->maybe_save_current_step();
73
+            $this->display_wizard();
74
+            exit;
75
+        }
76
+
77
+    }
78
+
79
+    /**
80
+     * Sets up class variables.
81
+     *
82
+     * @since 2.4.0
83
+     */
84
+    protected function setup_globals() {
85
+        $this->steps         = $this->get_setup_steps();
86
+        $this->step          = $this->get_current_step();
87
+        $this->previous_step = $this->get_previous_step();
88
+        $this->next_step     = $this->get_next_step();
89
+    }
90
+
91
+    /**
92
+     * Saves the current step.
93
+     *
94
+     * @since 2.4.0
95
+     */
96
+    protected function maybe_save_current_step() {
97
+        if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
98
+            call_user_func( $this->steps[ $this->step ]['handler'], $this );
99
+        }
100
+    }
101
+
102
+    /**
103
+     * Returns the setup steps.
104
+     *
105
+     * @since 2.4.0
106
+     * @return array
107
+     */
108
+    protected function get_setup_steps() {
109
+
110
+        $steps = array(
111
+
112
+            'introduction'     => array(
113
+                'name'    => __( 'Introduction', 'invoicing' ),
114
+                'view'    => array( $this, 'setup_introduction' ),
115
+                'handler' => '',
116
+            ),
117
+
118
+            'business_details' => array(
119
+                'name'    => __( 'Business Details', 'invoicing' ),
120
+                'view'    => array( $this, 'setup_business' ),
121
+                'handler' => '',
122
+            ),
123
+
124
+            'currency'         => array(
125
+                'name'    => __( 'Currency', 'invoicing' ),
126
+                'view'    => array( $this, 'setup_currency' ),
127
+                'handler' => '',
128
+            ),
129
+
130
+            'payments'         => array(
131
+                'name'    => __( 'Payment Gateways', 'invoicing' ),
132
+                'view'    => array( $this, 'setup_payments' ),
133
+                'handler' => array( $this, 'setup_payments_save' ),
134
+            ),
135
+
136
+            'recommend'        => array(
137
+                'name'    => __( 'Recommend', 'invoicing' ),
138
+                'view'    => array( $this, 'setup_recommend' ),
139
+                'handler' => '',
140
+            ),
141
+
142
+            'next_steps'       => array(
143
+                'name'    => __( 'Get Paid', 'invoicing' ),
144
+                'view'    => array( $this, 'setup_ready' ),
145
+                'handler' => '',
146
+            ),
147
+
148
+        );
149
+
150
+        return apply_filters( 'getpaid_setup_wizard_steps', $steps );
151
+
152
+    }
153
+
154
+    /**
155
+     * Returns the current step.
156
+     *
157
+     * @since 2.4.0
158
+     * @return string
159
+     */
160
+    protected function get_current_step() {
161
+        $step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
162
+        return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
163
+    }
164
+
165
+    /**
166
+     * Returns the previous step.
167
+     *
168
+     * @since 2.4.0
169
+     * @return string|false
170
+     */
171
+    protected function get_previous_step() {
172
+
173
+        $previous = false;
174
+        $current  = $this->step;
175
+        foreach ( array_keys( $this->steps ) as $step ) {
176
+            if ( $current === $step ) {
177
+                return $previous;
178
+            }
179
+
180
+            $previous = $step;
181
+        }
182
+
183
+        return false;
184
+    }
185
+
186
+    /**
187
+     * Returns the next step.
188
+     *
189
+     * @since 2.4.0
190
+     * @return string|false
191
+     */
192
+    protected function get_next_step() {
193
+
194
+        $on_current = false;
195
+        $current    = $this->step;
196
+        foreach ( array_keys( $this->steps ) as $step ) {
197
+
198
+            if ( $on_current ) {
199
+                return $step;
200
+            }
201
+
202
+            if ( $current === $step ) {
203
+                return $on_current = true;
204
+            }
205 205
 }
206 206
 
207
-		return false;
208
-	}
209
-
210
-	/**
211
-	 * Displays the setup wizard.
212
-	 *
213
-	 * @since 2.4.0
214
-	 */
215
-	public function display_wizard() {
216
-		$this->display_header();
217
-		$this->display_current_step();
218
-		$this->display_footer();
219
-	}
220
-
221
-	/**
222
-	 * Displays the Wizard Header.
223
-	 *
224
-	 * @since 2.0.0
225
-	 */
226
-	public function display_header() {
227
-		$steps     = $this->steps;
228
-		$current   = $this->step;
229
-		$next_step = $this->next_step;
230
-		array_shift( $steps );
231
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
232
-	}
233
-
234
-	/**
235
-	 * Displays the content for the current step.
236
-	 *
237
-	 * @since 2.4.0
238
-	 */
239
-	public function display_current_step() {
240
-		?>
207
+        return false;
208
+    }
209
+
210
+    /**
211
+     * Displays the setup wizard.
212
+     *
213
+     * @since 2.4.0
214
+     */
215
+    public function display_wizard() {
216
+        $this->display_header();
217
+        $this->display_current_step();
218
+        $this->display_footer();
219
+    }
220
+
221
+    /**
222
+     * Displays the Wizard Header.
223
+     *
224
+     * @since 2.0.0
225
+     */
226
+    public function display_header() {
227
+        $steps     = $this->steps;
228
+        $current   = $this->step;
229
+        $next_step = $this->next_step;
230
+        array_shift( $steps );
231
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
232
+    }
233
+
234
+    /**
235
+     * Displays the content for the current step.
236
+     *
237
+     * @since 2.4.0
238
+     */
239
+    public function display_current_step() {
240
+        ?>
241 241
 			<div class="gp-setup-content rowx mw-100 text-center mb-3">
242 242
 				<div class="col-12 col-md-5 m-auto">
243 243
 					<?php call_user_func( $this->steps[ $this->step ]['view'], $this ); ?>
244 244
 				</div>
245 245
 			</div>
246 246
 		<?php
247
-	}
248
-
249
-	/**
250
-	 * Setup Wizard Footer.
251
-	 *
252
-	 * @since 2.4.0
253
-	 */
254
-	public function display_footer() {
255
-
256
-		if ( isset( $_GET['step'] ) ) {
257
-			$label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
258
-
259
-			echo '<p class="gd-return-to-dashboard-wrap"> <a href="' . esc_url( $this->get_next_step_link() ) . '" class="gd-return-to-dashboard btn btn-link d-block text-muted">' . esc_html( $label ) . '</a></p>';
260
-		}
261
-
262
-		echo '</body></html>';
263
-	}
264
-
265
-	/**
266
-	 * Introduction step.
267
-	 *
268
-	 * @since 2.0.0
269
-	 */
270
-	public function setup_introduction() {
271
-		$next_url = $this->get_next_step_link();
272
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
273
-	}
274
-
275
-	/**
276
-	 * Get the URL for the next step's screen.
277
-	 *
278
-	 * @param string step   slug (default: current step)
279
-	 *
280
-	 * @return string       URL for next step if a next step exists.
281
-	 *                      Admin URL if it's the last step.
282
-	 *                      Empty string on failure.
283
-	 * @since 3.0.0
284
-	 */
285
-	public function get_next_step_link( $step = '' ) {
286
-		if ( ! $step ) {
287
-			$step = $this->step;
288
-		}
289
-
290
-		$keys = array_keys( $this->steps );
291
-		if ( end( $keys ) === $step ) {
292
-			return admin_url();
293
-		}
294
-
295
-		$step_index = array_search( $step, $keys );
296
-		if ( false === $step_index ) {
297
-			return '';
298
-		}
299
-
300
-		return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
301
-	}
302
-
303
-	/**
304
-	 * Setup maps api.
305
-	 *
306
-	 * @since 2.0.0
307
-	 */
308
-	public function setup_business() {
309
-		$next_url = $this->get_next_step_link();
310
-		$wizard   = $this;
311
-		$page     = 'wpinv_settings_general_main';
312
-		$section  = 'wpinv_settings_general_main';
313
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
314
-	}
315
-
316
-	/**
317
-	 * Default Location settings.
318
-	 *
319
-	 * @since 2.0.0
320
-	 */
321
-	public function setup_currency() {
322
-		$next_url = $this->get_next_step_link();
323
-		$wizard   = $this;
324
-		$page     = 'wpinv_settings_general_currency_section';
325
-		$section  = 'wpinv_settings_general_currency_section';
326
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
327
-	}
328
-
329
-	/**
330
-	 * Installation of recommended plugins.
331
-	 *
332
-	 * @since 1.0.0
333
-	 */
334
-	public function setup_recommend() {
335
-		$next_url            = $this->get_next_step_link();
336
-		$recommended_plugins = self::get_recommend_wp_plugins();
337
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
338
-	}
339
-
340
-	/**
341
-	 * A list of recommended wp.org plugins.
342
-	 * @return array
343
-	 */
344
-	public static function get_recommend_wp_plugins() {
345
-		return array(
346
-			'ayecode-connect'  => array(
347
-				'file' => 'ayecode-connect/ayecode-connect.php',
348
-				'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
349
-				'slug' => 'ayecode-connect',
350
-				'name' => 'AyeCode Connect',
351
-				'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
352
-			),
353
-			'invoicing-quotes' => array(
354
-				'file' => 'invoicing-quotes/wpinv-quote.php',
355
-				'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
356
-				'slug' => 'invoicing-quotes',
357
-				'name' => 'Customer Quotes',
358
-				'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
359
-			),
360
-			'userswp'          => array(
361
-				'file' => 'userswp/userswp.php',
362
-				'url'  => 'https://wordpress.org/plugins/userswp/',
363
-				'slug' => 'userswp',
364
-				'name' => 'UsersWP',
365
-				'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
366
-			),
367
-		);
368
-	}
369
-
370
-	/**
371
-	 * Dummy Data setup.
372
-	 *
373
-	 * @since 2.4.0
374
-	 */
375
-	public function setup_payments() {
376
-		$next_url = $this->get_next_step_link();
377
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
378
-	}
379
-
380
-	/**
381
-	 * Dummy data save.
382
-	 *
383
-	 * This is done via ajax so we just pass onto the next step.
384
-	 *
385
-	 * @since 2.0.0
386
-	 */
387
-	public function setup_payments_save() {
388
-		check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
389
-		wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
390
-
391
-		if ( ! empty( $_POST['paypal-email'] ) ) {
392
-			wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
393
-			wpinv_update_option( 'paypal_active', 1 );
394
-			wpinv_update_option( 'paypal_sandbox', 0 );
395
-		}
396
-
397
-		wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
398
-		exit;
399
-	}
400
-
401
-	/**
402
-	 * Final step.
403
-	 *
404
-	 * @since 2.0.0
405
-	 */
406
-	public function setup_ready() {
407
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
408
-	}
247
+    }
248
+
249
+    /**
250
+     * Setup Wizard Footer.
251
+     *
252
+     * @since 2.4.0
253
+     */
254
+    public function display_footer() {
255
+
256
+        if ( isset( $_GET['step'] ) ) {
257
+            $label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
258
+
259
+            echo '<p class="gd-return-to-dashboard-wrap"> <a href="' . esc_url( $this->get_next_step_link() ) . '" class="gd-return-to-dashboard btn btn-link d-block text-muted">' . esc_html( $label ) . '</a></p>';
260
+        }
261
+
262
+        echo '</body></html>';
263
+    }
264
+
265
+    /**
266
+     * Introduction step.
267
+     *
268
+     * @since 2.0.0
269
+     */
270
+    public function setup_introduction() {
271
+        $next_url = $this->get_next_step_link();
272
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
273
+    }
274
+
275
+    /**
276
+     * Get the URL for the next step's screen.
277
+     *
278
+     * @param string step   slug (default: current step)
279
+     *
280
+     * @return string       URL for next step if a next step exists.
281
+     *                      Admin URL if it's the last step.
282
+     *                      Empty string on failure.
283
+     * @since 3.0.0
284
+     */
285
+    public function get_next_step_link( $step = '' ) {
286
+        if ( ! $step ) {
287
+            $step = $this->step;
288
+        }
289
+
290
+        $keys = array_keys( $this->steps );
291
+        if ( end( $keys ) === $step ) {
292
+            return admin_url();
293
+        }
294
+
295
+        $step_index = array_search( $step, $keys );
296
+        if ( false === $step_index ) {
297
+            return '';
298
+        }
299
+
300
+        return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
301
+    }
302
+
303
+    /**
304
+     * Setup maps api.
305
+     *
306
+     * @since 2.0.0
307
+     */
308
+    public function setup_business() {
309
+        $next_url = $this->get_next_step_link();
310
+        $wizard   = $this;
311
+        $page     = 'wpinv_settings_general_main';
312
+        $section  = 'wpinv_settings_general_main';
313
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
314
+    }
315
+
316
+    /**
317
+     * Default Location settings.
318
+     *
319
+     * @since 2.0.0
320
+     */
321
+    public function setup_currency() {
322
+        $next_url = $this->get_next_step_link();
323
+        $wizard   = $this;
324
+        $page     = 'wpinv_settings_general_currency_section';
325
+        $section  = 'wpinv_settings_general_currency_section';
326
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
327
+    }
328
+
329
+    /**
330
+     * Installation of recommended plugins.
331
+     *
332
+     * @since 1.0.0
333
+     */
334
+    public function setup_recommend() {
335
+        $next_url            = $this->get_next_step_link();
336
+        $recommended_plugins = self::get_recommend_wp_plugins();
337
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
338
+    }
339
+
340
+    /**
341
+     * A list of recommended wp.org plugins.
342
+     * @return array
343
+     */
344
+    public static function get_recommend_wp_plugins() {
345
+        return array(
346
+            'ayecode-connect'  => array(
347
+                'file' => 'ayecode-connect/ayecode-connect.php',
348
+                'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
349
+                'slug' => 'ayecode-connect',
350
+                'name' => 'AyeCode Connect',
351
+                'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
352
+            ),
353
+            'invoicing-quotes' => array(
354
+                'file' => 'invoicing-quotes/wpinv-quote.php',
355
+                'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
356
+                'slug' => 'invoicing-quotes',
357
+                'name' => 'Customer Quotes',
358
+                'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
359
+            ),
360
+            'userswp'          => array(
361
+                'file' => 'userswp/userswp.php',
362
+                'url'  => 'https://wordpress.org/plugins/userswp/',
363
+                'slug' => 'userswp',
364
+                'name' => 'UsersWP',
365
+                'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
366
+            ),
367
+        );
368
+    }
369
+
370
+    /**
371
+     * Dummy Data setup.
372
+     *
373
+     * @since 2.4.0
374
+     */
375
+    public function setup_payments() {
376
+        $next_url = $this->get_next_step_link();
377
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
378
+    }
379
+
380
+    /**
381
+     * Dummy data save.
382
+     *
383
+     * This is done via ajax so we just pass onto the next step.
384
+     *
385
+     * @since 2.0.0
386
+     */
387
+    public function setup_payments_save() {
388
+        check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
389
+        wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
390
+
391
+        if ( ! empty( $_POST['paypal-email'] ) ) {
392
+            wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
393
+            wpinv_update_option( 'paypal_active', 1 );
394
+            wpinv_update_option( 'paypal_sandbox', 0 );
395
+        }
396
+
397
+        wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
398
+        exit;
399
+    }
400
+
401
+    /**
402
+     * Final step.
403
+     *
404
+     * @since 2.0.0
405
+     */
406
+    public function setup_ready() {
407
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
408
+    }
409 409
 
410 410
 }
411 411
 
Please login to merge, or discard this patch.
includes/admin/meta-boxes/class-getpaid-meta-box-item-details.php 1 patch
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
  */
9 9
 
10 10
 if ( ! defined( 'ABSPATH' ) ) {
11
-	exit; // Exit if accessed directly
11
+    exit; // Exit if accessed directly
12 12
 }
13 13
 
14 14
 /**
@@ -17,10 +17,10 @@  discard block
 block discarded – undo
17 17
 class GetPaid_Meta_Box_Item_Details {
18 18
 
19 19
     /**
20
-	 * Output the metabox.
21
-	 *
22
-	 * @param WP_Post $post
23
-	 */
20
+     * Output the metabox.
21
+     *
22
+     * @param WP_Post $post
23
+     */
24 24
     public static function output( $post ) {
25 25
 
26 26
         // Prepare the item.
@@ -114,23 +114,23 @@  discard block
 block discarded – undo
114 114
                                 // Dynamic pricing.
115 115
                                 if ( $item->supports_dynamic_pricing() ) {
116 116
 
117
-								do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item );
117
+                                do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item );
118 118
 
119
-								// NYP toggle.
120
-								aui()->input(
119
+                                // NYP toggle.
120
+                                aui()->input(
121 121
                                     array(
122
-								'id'      => 'wpinv_name_your_price',
123
-								'name'    => 'wpinv_name_your_price',
124
-								'type'    => 'checkbox',
125
-								'label'   => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ),
126
-								'value'   => '1',
127
-								'checked' => $item->user_can_set_their_price(),
128
-								'no_wrap' => true,
122
+                                'id'      => 'wpinv_name_your_price',
123
+                                'name'    => 'wpinv_name_your_price',
124
+                                'type'    => 'checkbox',
125
+                                'label'   => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ),
126
+                                'value'   => '1',
127
+                                'checked' => $item->user_can_set_their_price(),
128
+                                'no_wrap' => true,
129 129
                                     ),
130 130
                                     true
131 131
                                 );
132 132
 
133
-							do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item );
133
+                            do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item );
134 134
 
135 135
                                 }
136 136
 
@@ -274,35 +274,35 @@  discard block
 block discarded – undo
274 274
     }
275 275
 
276 276
     /**
277
-	 * Save meta box data.
278
-	 *
279
-	 * @param int $post_id
280
-	 */
281
-	public static function save( $post_id ) {
277
+     * Save meta box data.
278
+     *
279
+     * @param int $post_id
280
+     */
281
+    public static function save( $post_id ) {
282 282
 
283 283
         // Prepare the item.
284 284
         $item = new WPInv_Item( $post_id );
285 285
 
286 286
         // Load new data.
287 287
         $item->set_props(
288
-			array(
289
-				'price'              => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null,
290
-				'vat_rule'           => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null,
291
-				'vat_class'          => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null,
292
-				'type'               => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null,
293
-				'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ),
288
+            array(
289
+                'price'              => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null,
290
+                'vat_rule'           => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null,
291
+                'vat_class'          => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null,
292
+                'type'               => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null,
293
+                'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ),
294 294
                 'minimum_price'      => isset( $_POST['wpinv_minimum_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_minimum_price'] ) : null,
295
-				'is_recurring'       => ! empty( $_POST['wpinv_is_recurring'] ),
296
-				'recurring_period'   => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null,
297
-				'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1,
298
-				'recurring_limit'    => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null,
299
-				'is_free_trial'      => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null,
300
-				'trial_period'       => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null,
301
-				'trial_interval'     => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null,
302
-			)
295
+                'is_recurring'       => ! empty( $_POST['wpinv_is_recurring'] ),
296
+                'recurring_period'   => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null,
297
+                'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1,
298
+                'recurring_limit'    => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null,
299
+                'is_free_trial'      => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null,
300
+                'trial_period'       => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null,
301
+                'trial_interval'     => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null,
302
+            )
303 303
         );
304 304
 
305
-		$item->save();
306
-		do_action( 'getpaid_item_metabox_save', $post_id, $item );
307
-	}
305
+        $item->save();
306
+        do_action( 'getpaid_item_metabox_save', $post_id, $item );
307
+    }
308 308
 }
Please login to merge, or discard this patch.
templates/invoice/fee-item.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -31,21 +31,21 @@  discard block
 block discarded – undo
31 31
                     // Item name.
32 32
                     if ( 'name' == $column ) {
33 33
 
34
-					// Display the name.
35
-					echo '<div class="mb-1">' . esc_html( $fee['name'] ) . '</div>';
34
+                    // Display the name.
35
+                    echo '<div class="mb-1">' . esc_html( $fee['name'] ) . '</div>';
36 36
 
37
-					// And an optional description.
38
-					$description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
39
-					echo wp_kses_post( "<small class='form-text text-muted pr-2 m-0'>$description</small>" );
37
+                    // And an optional description.
38
+                    $description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
39
+                    echo wp_kses_post( "<small class='form-text text-muted pr-2 m-0'>$description</small>" );
40 40
 
41 41
                     }
42 42
 
43 43
                     // Item price.
44 44
                     if ( 'price' == $column ) {
45 45
 
46
-					// Display the item price (or recurring price if this is a renewal invoice)
47
-					if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
48
-						wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
46
+                    // Display the item price (or recurring price if this is a renewal invoice)
47
+                    if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
48
+                        wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
49 49
                         } else {
50 50
                             wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
51 51
                         }
@@ -53,20 +53,20 @@  discard block
 block discarded – undo
53 53
 
54 54
                     // Item quantity.
55 55
                     if ( 'quantity' == $column ) {
56
-					echo '&mdash;';
56
+                    echo '&mdash;';
57 57
                     }
58 58
 
59 59
                     // Item tax.
60 60
                     if ( 'tax_rate' == $column ) {
61
-					echo '&mdash;';
61
+                    echo '&mdash;';
62 62
                     }
63 63
 
64 64
                     // Item sub total.
65 65
                     if ( 'subtotal' == $column ) {
66 66
 
67
-					// Display the item price (or recurring price if this is a renewal invoice)
68
-					if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
69
-						wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
67
+                    // Display the item price (or recurring price if this is a renewal invoice)
68
+                    if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
69
+                        wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
70 70
                         } else {
71 71
                             wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
72 72
                         }
Please login to merge, or discard this patch.
templates/payment-forms/elements/gateway_select.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -64,8 +64,8 @@
 block discarded – undo
64 64
                         $description = wpinv_get_gateway_description( $gateway );
65 65
 
66 66
                         if ( wpinv_is_test_mode( $gateway ) ) {
67
-						$sandbox_notice = apply_filters( "getpaid_{$gateway}_sandbox_notice", __( 'SANDBOX ENABLED: No real payments will occur.', 'invoicing' ) );
68
-						$description = "$description $sandbox_notice";
67
+                        $sandbox_notice = apply_filters( "getpaid_{$gateway}_sandbox_notice", __( 'SANDBOX ENABLED: No real payments will occur.', 'invoicing' ) );
68
+                        $description = "$description $sandbox_notice";
69 69
                         }
70 70
 
71 71
                         echo wp_kses_post( wpautop( $description ) );
Please login to merge, or discard this patch.
templates/emails/invoice-item.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -30,40 +30,40 @@
 block discarded – undo
30 30
                 // Item name.
31 31
                 if ( 'name' == $column ) {
32 32
 
33
-				// Display the name.
34
-				echo '<div class="wpinv_email_cart_item_title">' . esc_html( $item->get_name() ) . '</div>';
33
+                // Display the name.
34
+                echo '<div class="wpinv_email_cart_item_title">' . esc_html( $item->get_name() ) . '</div>';
35 35
 
36
-				// And an optional description.
37
-				$description = $item->get_description();
36
+                // And an optional description.
37
+                $description = $item->get_description();
38 38
 
39
-				if ( ! empty( $description ) ) {
40
-					echo "<p class='small'>" . wp_kses_post( $description ) . "</p>";
39
+                if ( ! empty( $description ) ) {
40
+                    echo "<p class='small'>" . wp_kses_post( $description ) . "</p>";
41 41
                     }
42 42
 }
43 43
 
44 44
                 // Item price.
45 45
                 if ( 'price' == $column ) {
46 46
 
47
-				// Display the item price (or recurring price if this is a renewal invoice)
48
-				$price = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price();
49
-				wpinv_the_price( $price, $invoice->get_currency() );
47
+                // Display the item price (or recurring price if this is a renewal invoice)
48
+                $price = $invoice->is_renewal() ? $item->get_price() : $item->get_initial_price();
49
+                wpinv_the_price( $price, $invoice->get_currency() );
50 50
 
51 51
                 }
52 52
 
53 53
                 // Item quantity.
54 54
                 if ( 'quantity' == $column ) {
55
-				echo (float) $item->get_quantity();
55
+                echo (float) $item->get_quantity();
56 56
                 }
57 57
 
58 58
                 // Tax rate.
59 59
                 if ( 'tax_rate' == $column ) {
60
-				echo floatval( round( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
60
+                echo floatval( round( getpaid_get_invoice_tax_rate( $invoice, $item ), 2 ) ) . '%';
61 61
                 }
62 62
 
63 63
                 // Item sub total.
64 64
                 if ( 'subtotal' == $column ) {
65
-				$subtotal = $invoice->is_renewal() ? $item->get_recurring_sub_total() : $item->get_sub_total();
66
-				wpinv_the_price( $subtotal, $invoice->get_currency() );
65
+                $subtotal = $invoice->is_renewal() ? $item->get_recurring_sub_total() : $item->get_sub_total();
66
+                wpinv_the_price( $subtotal, $invoice->get_currency() );
67 67
                 }
68 68
 
69 69
                 // Fires when printing a line item column.
Please login to merge, or discard this patch.
templates/emails/fee-item.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -30,21 +30,21 @@  discard block
 block discarded – undo
30 30
                 // Item name.
31 31
                 if ( 'name' == $column ) {
32 32
 
33
-				// Display the name.
34
-				echo '<div class="wpinv_email_cart_item_title">' . esc_html( $fee['name'] ) . '</div>';
33
+                // Display the name.
34
+                echo '<div class="wpinv_email_cart_item_title">' . esc_html( $fee['name'] ) . '</div>';
35 35
 
36
-				// And an optional description.
37
-				$description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
38
-				echo wp_kses_post( "<p class='small'>$description</p>" );
36
+                // And an optional description.
37
+                $description = empty( $fee['description'] ) ? esc_html__( 'Fee', 'invoicing' ) : esc_html( $fee['description'] );
38
+                echo wp_kses_post( "<p class='small'>$description</p>" );
39 39
 
40 40
                 }
41 41
 
42 42
                 // Item price.
43 43
                 if ( 'price' == $column ) {
44 44
 
45
-				// Display the item price (or recurring price if this is a renewal invoice)
46
-				if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
47
-					wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
45
+                // Display the item price (or recurring price if this is a renewal invoice)
46
+                if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
47
+                    wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
48 48
                     } else {
49 49
                         wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
50 50
                     }
@@ -52,18 +52,18 @@  discard block
 block discarded – undo
52 52
 
53 53
                 // Item quantity.
54 54
                 if ( 'quantity' == $column ) {
55
-				echo '&mdash;';
55
+                echo '&mdash;';
56 56
                 }
57 57
 
58 58
                 // Item tax.
59 59
                 if ( 'tax_rate' == $column ) {
60
-				echo '&mdash;';
60
+                echo '&mdash;';
61 61
                 }
62 62
 
63 63
                 // Item sub total.
64 64
                 if ( 'subtotal' == $column ) {
65
-				if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
66
-					wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
65
+                if ( $invoice->is_recurring() && $invoice->is_renewal() ) {
66
+                    wpinv_the_price( $fee['recurring_fee'], $invoice->get_currency() );
67 67
                 } else {
68 68
                     wpinv_the_price( $fee['initial_fee'], $invoice->get_currency() );
69 69
                 }
Please login to merge, or discard this patch.
templates/invoice-receipt.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -126,25 +126,25 @@
 block discarded – undo
126 126
 
127 127
             if ( ! empty( $invoice_actions ) ) {
128 128
 
129
-			echo '<div class="wpinv-receipt-actions text-right mt-1 mb-4">';
129
+            echo '<div class="wpinv-receipt-actions text-right mt-1 mb-4">';
130 130
 
131
-			foreach ( $invoice_actions as $key => $invoice_action ) {
131
+            foreach ( $invoice_actions as $key => $invoice_action ) {
132 132
 
133
-				$key    = sanitize_html_class( $key );
134
-				$class  = empty( $invoice_action['class'] ) ? 'btn-dark' : sanitize_html_class( $invoice_action['class'] );
135
-				$url    = empty( $invoice_action['url'] ) ? '#' : esc_url( $invoice_action['url'] );
136
-				$attrs  = empty( $invoice_action['attrs'] ) ? '' : $invoice_action['attrs'];
137
-				$anchor = esc_html( $invoice_action['name'] );
133
+                $key    = sanitize_html_class( $key );
134
+                $class  = empty( $invoice_action['class'] ) ? 'btn-dark' : sanitize_html_class( $invoice_action['class'] );
135
+                $url    = empty( $invoice_action['url'] ) ? '#' : esc_url( $invoice_action['url'] );
136
+                $attrs  = empty( $invoice_action['attrs'] ) ? '' : $invoice_action['attrs'];
137
+                $anchor = esc_html( $invoice_action['name'] );
138 138
 
139
-				echo wp_kses_post( "<a href='$url' class='btn btn-sm ml-1 $class $key' $attrs>$anchor</a>" );
139
+                echo wp_kses_post( "<a href='$url' class='btn btn-sm ml-1 $class $key' $attrs>$anchor</a>" );
140 140
                 }
141 141
 
142
-			echo '</div>';
142
+            echo '</div>';
143 143
 
144 144
             }
145 145
 
146 146
             if ( ! empty( $alert ) ) {
147
-			echo wp_kses_post( $alert );
147
+            echo wp_kses_post( $alert );
148 148
             }
149 149
 
150 150
         ?>
Please login to merge, or discard this patch.