Passed
Pull Request — master (#860)
by Kiran
08:35 queued 02:43
created
includes/gateways/class-getpaid-bank-transfer-gateway.php 1 patch
Indentation   +363 added lines, -363 removed lines patch added patch discarded remove patch
@@ -13,47 +13,47 @@  discard block
 block discarded – undo
13 13
 class GetPaid_Bank_Transfer_Gateway extends GetPaid_Payment_Gateway {
14 14
 
15 15
     /**
16
-	 * Payment method id.
17
-	 *
18
-	 * @var string
19
-	 */
16
+     * Payment method id.
17
+     *
18
+     * @var string
19
+     */
20 20
     public $id = 'bank_transfer';
21 21
 
22
-	/**
23
-	 * An array of features that this gateway supports.
24
-	 *
25
-	 * @var array
26
-	 */
27
-	protected $supports = array(
28
-		'subscription',
29
-		'addons',
30
-		'single_subscription_group',
31
-		'multiple_subscription_groups',
32
-		'subscription_date_change',
33
-		'subscription_bill_times_change',
34
-	);
22
+    /**
23
+     * An array of features that this gateway supports.
24
+     *
25
+     * @var array
26
+     */
27
+    protected $supports = array(
28
+        'subscription',
29
+        'addons',
30
+        'single_subscription_group',
31
+        'multiple_subscription_groups',
32
+        'subscription_date_change',
33
+        'subscription_bill_times_change',
34
+    );
35
+
36
+    /**
37
+     * Payment method order.
38
+     *
39
+     * @var int
40
+     */
41
+    public $order = 8;
42
+
43
+    /**
44
+     * Bank transfer instructions.
45
+     */
46
+    public $instructions;
35 47
 
36 48
     /**
37
-	 * Payment method order.
38
-	 *
39
-	 * @var int
40
-	 */
41
-	public $order = 8;
42
-
43
-	/**
44
-	 * Bank transfer instructions.
45
-	 */
46
-	public $instructions;
47
-
48
-	/**
49
-	 * Locale array.
50
-	 */
51
-	public $locale;
49
+     * Locale array.
50
+     */
51
+    public $locale;
52 52
 
53 53
     /**
54
-	 * Class constructor.
55
-	 */
56
-	public function __construct() {
54
+     * Class constructor.
55
+     */
56
+    public function __construct() {
57 57
         parent::__construct();
58 58
 
59 59
         $this->title                = __( 'Direct bank transfer', 'invoicing' );
@@ -61,43 +61,43 @@  discard block
 block discarded – undo
61 61
         $this->checkout_button_text = __( 'Proceed', 'invoicing' );
62 62
         $this->instructions         = apply_filters( 'wpinv_bank_instructions', $this->get_option( 'info' ) );
63 63
 
64
-		add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
65
-		add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
66
-		add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
67
-		add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
68
-		add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ), 12, 2 );
69
-		add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
70
-
71
-		add_filter( 'wpinv_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
72
-		add_filter( 'getpaid_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
73
-		add_filter( 'getpaid_' . $this->id . '_supports_subscription', array( $this, 'supports_subscription' ), 20, 1 );
74
-	}
75
-
76
-	/**
77
-	 * Check gateway supports for subscription.
78
-	 *
79
-	 * @since 2.8.24
80
-	 *
81
-	 * @param bool $supports True if supports else False.
82
-	 * @return bool True if supports else False.
83
-	 */
84
-	public function supports_subscription( $supports ) {
85
-		if ( $supports && (int) $this->get_option( 'no_subscription' ) ) {
86
-			$supports = false;
87
-		}
88
-
89
-		return $supports;
90
-	}
91
-
92
-	/**
93
-	 * Process Payment.
94
-	 *
95
-	 * @param WPInv_Invoice $invoice Invoice.
96
-	 * @param array $submission_data Posted checkout fields.
97
-	 * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
98
-	 * @return array
99
-	 */
100
-	public function process_payment( $invoice, $submission_data, $submission ) {
64
+        add_action( 'wpinv_receipt_end', array( $this, 'thankyou_page' ) );
65
+        add_action( 'getpaid_invoice_line_items', array( $this, 'thankyou_page' ), 40 );
66
+        add_action( 'wpinv_pdf_content_billing', array( $this, 'thankyou_page' ), 11 );
67
+        add_action( 'wpinv_email_invoice_details', array( $this, 'email_instructions' ), 10, 3 );
68
+        add_action( 'getpaid_should_renew_subscription', array( $this, 'maybe_renew_subscription' ), 12, 2 );
69
+        add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 );
70
+
71
+        add_filter( 'wpinv_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
72
+        add_filter( 'getpaid_' . $this->id . '_support_subscription', array( $this, 'supports_subscription' ), 20, 1 );
73
+        add_filter( 'getpaid_' . $this->id . '_supports_subscription', array( $this, 'supports_subscription' ), 20, 1 );
74
+    }
75
+
76
+    /**
77
+     * Check gateway supports for subscription.
78
+     *
79
+     * @since 2.8.24
80
+     *
81
+     * @param bool $supports True if supports else False.
82
+     * @return bool True if supports else False.
83
+     */
84
+    public function supports_subscription( $supports ) {
85
+        if ( $supports && (int) $this->get_option( 'no_subscription' ) ) {
86
+            $supports = false;
87
+        }
88
+
89
+        return $supports;
90
+    }
91
+
92
+    /**
93
+     * Process Payment.
94
+     *
95
+     * @param WPInv_Invoice $invoice Invoice.
96
+     * @param array $submission_data Posted checkout fields.
97
+     * @param GetPaid_Payment_Form_Submission $submission Checkout submission.
98
+     * @return array
99
+     */
100
+    public function process_payment( $invoice, $submission_data, $submission ) {
101 101
 
102 102
         // Add a transaction id.
103 103
         $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) );
@@ -118,66 +118,66 @@  discard block
 block discarded – undo
118 118
     }
119 119
 
120 120
     /**
121
-	 * Output for the order received page.
122
-	 *
123
-	 * @param WPInv_Invoice $invoice Invoice.
124
-	 */
125
-	public function thankyou_page( $invoice ) {
121
+     * Output for the order received page.
122
+     *
123
+     * @param WPInv_Invoice $invoice Invoice.
124
+     */
125
+    public function thankyou_page( $invoice ) {
126 126
 
127 127
         if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
128 128
 
129
-			echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
129
+            echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL;
130 130
 
131 131
             if ( ! empty( $this->instructions ) ) {
132 132
                 echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) );
133
-			}
133
+            }
134 134
 
135
-			$this->bank_details( $invoice );
135
+            $this->bank_details( $invoice );
136 136
 
137
-			echo '</div>';
137
+            echo '</div>';
138 138
 
139 139
         }
140 140
 
141
-	}
141
+    }
142 142
 
143 143
     /**
144
-	 * Add content to the WPI emails.
145
-	 *
146
-	 * @param WPInv_Invoice $invoice Invoice.
147
-	 * @param string     $email_type Email format: plain text or HTML.
148
-	 * @param bool     $sent_to_admin Sent to admin.
149
-	 */
150
-	public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
144
+     * Add content to the WPI emails.
145
+     *
146
+     * @param WPInv_Invoice $invoice Invoice.
147
+     * @param string     $email_type Email format: plain text or HTML.
148
+     * @param bool     $sent_to_admin Sent to admin.
149
+     */
150
+    public function email_instructions( $invoice, $email_type, $sent_to_admin ) {
151 151
 
152
-		if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
152
+        if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) {
153 153
 
154
-			echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
154
+            echo '<div class="wpi-email-row getpaid-bank-transfer-details">';
155 155
 
156
-			if ( $this->instructions ) {
157
-				echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
156
+            if ( $this->instructions ) {
157
+                echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL );
158 158
             }
159 159
 
160
-			$this->bank_details( $invoice );
160
+            $this->bank_details( $invoice );
161 161
 
162
-			echo '</div>';
162
+            echo '</div>';
163 163
 
164
-		}
164
+        }
165 165
 
166 166
     }
167 167
 
168 168
     /**
169
-	 * Get bank details and place into a list format.
170
-	 *
171
-	 * @param WPInv_Invoice $invoice Invoice.
172
-	 */
173
-	protected function bank_details( $invoice ) {
169
+     * Get bank details and place into a list format.
170
+     *
171
+     * @param WPInv_Invoice $invoice Invoice.
172
+     */
173
+    protected function bank_details( $invoice ) {
174 174
 
175
-		// Get the invoice country and country $locale.
176
-		$country = $invoice->get_country();
177
-		$locale  = $this->get_country_locale();
175
+        // Get the invoice country and country $locale.
176
+        $country = $invoice->get_country();
177
+        $locale  = $this->get_country_locale();
178 178
 
179
-		// Get shortcode label in the $locale array and use appropriate one.
180
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
179
+        // Get shortcode label in the $locale array and use appropriate one.
180
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
181 181
 
182 182
         $bank_fields = array(
183 183
             'ac_name'   => __( 'Account Name', 'invoicing' ),
@@ -196,11 +196,11 @@  discard block
 block discarded – undo
196 196
 
197 197
             if ( ! empty( $value ) ) {
198 198
                 $bank_info[ $field ] = array(
199
-					'label' => $label,
200
-					'value' => $value,
201
-				);
199
+                    'label' => $label,
200
+                    'value' => $value,
201
+                );
202 202
             }
203
-		}
203
+        }
204 204
 
205 205
         $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice );
206 206
 
@@ -208,177 +208,177 @@  discard block
 block discarded – undo
208 208
             return;
209 209
         }
210 210
 
211
-		echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL;
211
+        echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL;
212
+
213
+        echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
214
+
215
+        foreach ( $bank_info as $key => $data ) {
216
+            echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL;
217
+        }
218
+
219
+        echo '</table>';
220
+
221
+    }
222
+
223
+    /**
224
+     * Get country locale if localized.
225
+     *
226
+     * @return array
227
+     */
228
+    public function get_country_locale() {
229
+
230
+        if ( empty( $this->locale ) ) {
231
+
232
+            // Locale information to be used - only those that are not 'Sort Code'.
233
+            $this->locale = apply_filters(
234
+                'getpaid_get_bank_transfer_locale',
235
+                array(
236
+                    'AU' => array(
237
+                        'sortcode' => array(
238
+                            'label' => __( 'BSB', 'invoicing' ),
239
+                        ),
240
+                    ),
241
+                    'CA' => array(
242
+                        'sortcode' => array(
243
+                            'label' => __( 'Bank transit number', 'invoicing' ),
244
+                        ),
245
+                    ),
246
+                    'IN' => array(
247
+                        'sortcode' => array(
248
+                            'label' => __( 'IFSC', 'invoicing' ),
249
+                        ),
250
+                    ),
251
+                    'IT' => array(
252
+                        'sortcode' => array(
253
+                            'label' => __( 'Branch sort', 'invoicing' ),
254
+                        ),
255
+                    ),
256
+                    'NZ' => array(
257
+                        'sortcode' => array(
258
+                            'label' => __( 'Bank code', 'invoicing' ),
259
+                        ),
260
+                    ),
261
+                    'SE' => array(
262
+                        'sortcode' => array(
263
+                            'label' => __( 'Bank code', 'invoicing' ),
264
+                        ),
265
+                    ),
266
+                    'US' => array(
267
+                        'sortcode' => array(
268
+                            'label' => __( 'Routing number', 'invoicing' ),
269
+                        ),
270
+                    ),
271
+                    'ZA' => array(
272
+                        'sortcode' => array(
273
+                            'label' => __( 'Branch code', 'invoicing' ),
274
+                        ),
275
+                    ),
276
+                )
277
+            );
278
+
279
+        }
280
+
281
+        return $this->locale;
282
+
283
+    }
284
+
285
+    /**
286
+     * Filters the gateway settings.
287
+     *
288
+     * @param array $admin_settings
289
+     */
290
+    public function admin_settings( $admin_settings ) {
291
+        $admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
292
+        $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
293
+
294
+        $_settings = array();
295
+
296
+        foreach ( $admin_settings as $key => $setting ) {
297
+            $_settings[ $key ] = $setting;
298
+
299
+            if ( $key == 'bank_transfer_active' ) {
300
+                // Enable/disable subscriptions setting.
301
+                $_settings['bank_transfer_no_subscription'] = array(
302
+                    'id' => 'bank_transfer_no_subscription',
303
+                    'type' => 'checkbox',
304
+                    'name' => __( 'Disable Subscriptions', 'invoicing' ),
305
+                    'desc' => __( 'Tick to disable support for recurring items.', 'invoicing' ),
306
+                    'std' => 0
307
+                );
308
+            }
309
+        }
310
+
311
+        $admin_settings = $_settings;
312
+
313
+        $locale  = $this->get_country_locale();
314
+
315
+        // Get sortcode label in the $locale array and use appropriate one.
316
+        $country  = wpinv_default_billing_country();
317
+        $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
318
+
319
+        $admin_settings['bank_transfer_ac_name'] = array(
320
+            'type' => 'text',
321
+            'id'   => 'bank_transfer_ac_name',
322
+            'name' => __( 'Account Name', 'invoicing' ),
323
+        );
324
+
325
+        $admin_settings['bank_transfer_ac_no'] = array(
326
+            'type' => 'text',
327
+            'id'   => 'bank_transfer_ac_no',
328
+            'name' => __( 'Account Number', 'invoicing' ),
329
+        );
330
+
331
+        $admin_settings['bank_transfer_bank_name'] = array(
332
+            'type' => 'text',
333
+            'id'   => 'bank_transfer_bank_name',
334
+            'name' => __( 'Bank Name', 'invoicing' ),
335
+        );
212 336
 
213
-		echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL;
337
+        $admin_settings['bank_transfer_ifsc'] = array(
338
+            'type' => 'text',
339
+            'id'   => 'bank_transfer_ifsc',
340
+            'name' => __( 'IFSC Code', 'invoicing' ),
341
+        );
342
+
343
+        $admin_settings['bank_transfer_iban'] = array(
344
+            'type' => 'text',
345
+            'id'   => 'bank_transfer_iban',
346
+            'name' => __( 'IBAN', 'invoicing' ),
347
+        );
348
+
349
+        $admin_settings['bank_transfer_bic'] = array(
350
+            'type' => 'text',
351
+            'id'   => 'bank_transfer_bic',
352
+            'name' => __( 'BIC/Swift Code', 'invoicing' ),
353
+        );
214 354
 
215
-		foreach ( $bank_info as $key => $data ) {
216
-			echo "<tr class='getpaid-bank-transfer-" . esc_attr( $key ) . "'><th class='font-weight-bold'>" . wp_kses_post( $data['label'] ) . "</th><td class='w-75'>" . wp_kses_post( wptexturize( $data['value'] ) ) . '</td></tr>' . PHP_EOL;
217
-		}
355
+        $admin_settings['bank_transfer_sort_code'] = array(
356
+            'type' => 'text',
357
+            'id'   => 'bank_transfer_sort_code',
358
+            'name' => $sortcode,
359
+        );
218 360
 
219
-		echo '</table>';
361
+        $admin_settings['bank_transfer_info'] = array(
362
+            'id'   => 'bank_transfer_info',
363
+            'name' => __( 'Instructions', 'invoicing' ),
364
+            'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
365
+            'type' => 'textarea',
366
+            'std'  => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ),
367
+            'cols' => 50,
368
+            'rows' => 5,
369
+        );
220 370
 
371
+        return $admin_settings;
221 372
     }
222 373
 
223 374
     /**
224
-	 * Get country locale if localized.
225
-	 *
226
-	 * @return array
227
-	 */
228
-	public function get_country_locale() {
229
-
230
-		if ( empty( $this->locale ) ) {
231
-
232
-			// Locale information to be used - only those that are not 'Sort Code'.
233
-			$this->locale = apply_filters(
234
-				'getpaid_get_bank_transfer_locale',
235
-				array(
236
-					'AU' => array(
237
-						'sortcode' => array(
238
-							'label' => __( 'BSB', 'invoicing' ),
239
-						),
240
-					),
241
-					'CA' => array(
242
-						'sortcode' => array(
243
-							'label' => __( 'Bank transit number', 'invoicing' ),
244
-						),
245
-					),
246
-					'IN' => array(
247
-						'sortcode' => array(
248
-							'label' => __( 'IFSC', 'invoicing' ),
249
-						),
250
-					),
251
-					'IT' => array(
252
-						'sortcode' => array(
253
-							'label' => __( 'Branch sort', 'invoicing' ),
254
-						),
255
-					),
256
-					'NZ' => array(
257
-						'sortcode' => array(
258
-							'label' => __( 'Bank code', 'invoicing' ),
259
-						),
260
-					),
261
-					'SE' => array(
262
-						'sortcode' => array(
263
-							'label' => __( 'Bank code', 'invoicing' ),
264
-						),
265
-					),
266
-					'US' => array(
267
-						'sortcode' => array(
268
-							'label' => __( 'Routing number', 'invoicing' ),
269
-						),
270
-					),
271
-					'ZA' => array(
272
-						'sortcode' => array(
273
-							'label' => __( 'Branch code', 'invoicing' ),
274
-						),
275
-					),
276
-				)
277
-			);
278
-
279
-		}
280
-
281
-		return $this->locale;
282
-
283
-	}
284
-
285
-	/**
286
-	 * Filters the gateway settings.
287
-	 *
288
-	 * @param array $admin_settings
289
-	 */
290
-	public function admin_settings( $admin_settings ) {
291
-		$admin_settings['bank_transfer_desc']['std']    = __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' );
292
-		$admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' );
293
-
294
-		$_settings = array();
295
-
296
-		foreach ( $admin_settings as $key => $setting ) {
297
-			$_settings[ $key ] = $setting;
298
-
299
-			if ( $key == 'bank_transfer_active' ) {
300
-				// Enable/disable subscriptions setting.
301
-				$_settings['bank_transfer_no_subscription'] = array(
302
-					'id' => 'bank_transfer_no_subscription',
303
-					'type' => 'checkbox',
304
-					'name' => __( 'Disable Subscriptions', 'invoicing' ),
305
-					'desc' => __( 'Tick to disable support for recurring items.', 'invoicing' ),
306
-					'std' => 0
307
-				);
308
-			}
309
-		}
310
-
311
-		$admin_settings = $_settings;
312
-
313
-		$locale  = $this->get_country_locale();
314
-
315
-		// Get sortcode label in the $locale array and use appropriate one.
316
-		$country  = wpinv_default_billing_country();
317
-		$sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' );
318
-
319
-		$admin_settings['bank_transfer_ac_name'] = array(
320
-			'type' => 'text',
321
-			'id'   => 'bank_transfer_ac_name',
322
-			'name' => __( 'Account Name', 'invoicing' ),
323
-		);
324
-
325
-		$admin_settings['bank_transfer_ac_no'] = array(
326
-			'type' => 'text',
327
-			'id'   => 'bank_transfer_ac_no',
328
-			'name' => __( 'Account Number', 'invoicing' ),
329
-		);
330
-
331
-		$admin_settings['bank_transfer_bank_name'] = array(
332
-			'type' => 'text',
333
-			'id'   => 'bank_transfer_bank_name',
334
-			'name' => __( 'Bank Name', 'invoicing' ),
335
-		);
336
-
337
-		$admin_settings['bank_transfer_ifsc'] = array(
338
-			'type' => 'text',
339
-			'id'   => 'bank_transfer_ifsc',
340
-			'name' => __( 'IFSC Code', 'invoicing' ),
341
-		);
342
-
343
-		$admin_settings['bank_transfer_iban'] = array(
344
-			'type' => 'text',
345
-			'id'   => 'bank_transfer_iban',
346
-			'name' => __( 'IBAN', 'invoicing' ),
347
-		);
348
-
349
-		$admin_settings['bank_transfer_bic'] = array(
350
-			'type' => 'text',
351
-			'id'   => 'bank_transfer_bic',
352
-			'name' => __( 'BIC/Swift Code', 'invoicing' ),
353
-		);
354
-
355
-		$admin_settings['bank_transfer_sort_code'] = array(
356
-			'type' => 'text',
357
-			'id'   => 'bank_transfer_sort_code',
358
-			'name' => $sortcode,
359
-		);
360
-
361
-		$admin_settings['bank_transfer_info'] = array(
362
-			'id'   => 'bank_transfer_info',
363
-			'name' => __( 'Instructions', 'invoicing' ),
364
-			'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ),
365
-			'type' => 'textarea',
366
-			'std'  => __( "Make your payment directly into our bank account. Please use your Invoice Number as the payment reference. Your invoice won't be processed until the funds have cleared in our account.", 'invoicing' ),
367
-			'cols' => 50,
368
-			'rows' => 5,
369
-		);
370
-
371
-		return $admin_settings;
372
-	}
373
-
374
-	/**
375
-	 * Processes invoice addons.
376
-	 *
377
-	 * @param WPInv_Invoice $invoice
378
-	 * @param GetPaid_Form_Item[] $items
379
-	 * @return WPInv_Invoice
380
-	 */
381
-	public function process_addons( $invoice, $items ) {
375
+     * Processes invoice addons.
376
+     *
377
+     * @param WPInv_Invoice $invoice
378
+     * @param GetPaid_Form_Item[] $items
379
+     * @return WPInv_Invoice
380
+     */
381
+    public function process_addons( $invoice, $items ) {
382 382
 
383 383
         foreach ( $items as $item ) {
384 384
             $invoice->add_item( $item );
@@ -386,98 +386,98 @@  discard block
 block discarded – undo
386 386
 
387 387
         $invoice->recalculate_total();
388 388
         $invoice->save();
389
-	}
390
-
391
-	/**
392
-	 * (Maybe) renews a bank transfer subscription profile.
393
-	 *
394
-	 *
395
-	 * @param WPInv_Subscription $subscription
396
-	 */
397
-	public function maybe_renew_subscription( $subscription, $parent_invoice ) {
398
-		// Ensure its our subscription && it's active.
399
-		if ( ! empty( $parent_invoice ) && $this->id === $parent_invoice->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
400
-			add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
401
-
402
-			$invoice = $subscription->create_payment();
403
-
404
-			if ( ! empty( $invoice ) ) {
405
-				$is_logged_in = is_user_logged_in();
406
-
407
-				// Cron run.
408
-				if ( ! $is_logged_in ) {
409
-					$note = wp_sprintf( __( 'Renewal %1$s created with the status "%2$s".', 'invoicing' ), $invoice->get_invoice_quote_type(), wpinv_status_nicename( $invoice->get_status(), $invoice ) );
410
-
411
-					$invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in );
412
-				}
413
-			}
414
-
415
-			remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
416
-		}
417
-	}
418
-
419
-	/**
420
-	 * Process a bank transfer payment.
421
-	 *
422
-	 *
389
+    }
390
+
391
+    /**
392
+     * (Maybe) renews a bank transfer subscription profile.
393
+     *
394
+     *
395
+     * @param WPInv_Subscription $subscription
396
+     */
397
+    public function maybe_renew_subscription( $subscription, $parent_invoice ) {
398
+        // Ensure its our subscription && it's active.
399
+        if ( ! empty( $parent_invoice ) && $this->id === $parent_invoice->get_gateway() && $subscription->has_status( 'active trialling' ) ) {
400
+            add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
401
+
402
+            $invoice = $subscription->create_payment();
403
+
404
+            if ( ! empty( $invoice ) ) {
405
+                $is_logged_in = is_user_logged_in();
406
+
407
+                // Cron run.
408
+                if ( ! $is_logged_in ) {
409
+                    $note = wp_sprintf( __( 'Renewal %1$s created with the status "%2$s".', 'invoicing' ), $invoice->get_invoice_quote_type(), wpinv_status_nicename( $invoice->get_status(), $invoice ) );
410
+
411
+                    $invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in );
412
+                }
413
+            }
414
+
415
+            remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 );
416
+        }
417
+    }
418
+
419
+    /**
420
+     * Process a bank transfer payment.
421
+     *
422
+     *
423 423
      * @param WPInv_Invoice $invoice
424
-	 */
425
-	public function invoice_paid( $invoice ) {
426
-
427
-		// Abort if not paid by bank transfer.
428
-		if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
429
-			return;
430
-		}
431
-
432
-		// Is it a parent payment?
433
-		if ( 0 == $invoice->get_parent_id() ) {
434
-
435
-			// (Maybe) activate subscriptions.
436
-			$subscriptions = getpaid_get_invoice_subscriptions( $invoice );
437
-
438
-			if ( ! empty( $subscriptions ) ) {
439
-				$subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
440
-
441
-				foreach ( $subscriptions as $subscription ) {
442
-					if ( $subscription->exists() ) {
443
-						$duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
444
-						$expiry   = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
445
-
446
-						$subscription->set_next_renewal_date( $expiry );
447
-						$subscription->set_date_created( current_time( 'mysql' ) );
448
-						$subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
449
-						$subscription->activate();
450
-					}
451
-				}
452
-			}
453
-		} else {
454
-
455
-			$subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
456
-
457
-			// Renew the subscription.
458
-			if ( $subscription && $subscription->exists() ) {
459
-				$subscription->add_payment( array(), $invoice );
460
-				$subscription->renew( strtotime( $invoice->get_date_created() ) );
461
-			}
462
-		}
424
+     */
425
+    public function invoice_paid( $invoice ) {
426
+
427
+        // Abort if not paid by bank transfer.
428
+        if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) {
429
+            return;
430
+        }
431
+
432
+        // Is it a parent payment?
433
+        if ( 0 == $invoice->get_parent_id() ) {
434
+
435
+            // (Maybe) activate subscriptions.
436
+            $subscriptions = getpaid_get_invoice_subscriptions( $invoice );
437
+
438
+            if ( ! empty( $subscriptions ) ) {
439
+                $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions );
440
+
441
+                foreach ( $subscriptions as $subscription ) {
442
+                    if ( $subscription->exists() ) {
443
+                        $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() );
444
+                        $expiry   = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) );
445
+
446
+                        $subscription->set_next_renewal_date( $expiry );
447
+                        $subscription->set_date_created( current_time( 'mysql' ) );
448
+                        $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() );
449
+                        $subscription->activate();
450
+                    }
451
+                }
452
+            }
453
+        } else {
454
+
455
+            $subscription = getpaid_get_subscription( $invoice->get_subscription_id() );
456
+
457
+            // Renew the subscription.
458
+            if ( $subscription && $subscription->exists() ) {
459
+                $subscription->add_payment( array(), $invoice );
460
+                $subscription->renew( strtotime( $invoice->get_date_created() ) );
461
+            }
462
+        }
463 463
 
464 464
     }
465 465
 
466
-	/**
467
-	 * Force created from payment false to allow email for auto renewal generation invoice.
468
-	 *
469
-	 * @since 2.8.11
470
-	 *
471
-	 * @param bool $is_payment_form_invoice True when invoice created via payment form else false.
472
-	 * @param int  $invoice Invoice ID.
473
-	 * @return bool True when invoice created via payment form else false.
474
-	 */
475
-	public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) {
476
-		if ( $is_payment_form_invoice ) {
477
-			$is_payment_form_invoice = false;
478
-		}
479
-
480
-		return $is_payment_form_invoice;
481
-	}
466
+    /**
467
+     * Force created from payment false to allow email for auto renewal generation invoice.
468
+     *
469
+     * @since 2.8.11
470
+     *
471
+     * @param bool $is_payment_form_invoice True when invoice created via payment form else false.
472
+     * @param int  $invoice Invoice ID.
473
+     * @return bool True when invoice created via payment form else false.
474
+     */
475
+    public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) {
476
+        if ( $is_payment_form_invoice ) {
477
+            $is_payment_form_invoice = false;
478
+        }
479
+
480
+        return $is_payment_form_invoice;
481
+    }
482 482
 
483 483
 }
Please login to merge, or discard this patch.
includes/admin/class-getpaid-admin-setup-wizard.php 1 patch
Indentation   +388 added lines, -388 removed lines patch added patch discarded remove patch
@@ -17,402 +17,402 @@
 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
-			add_action( 'admin_init', array( $this, 'remove_deprecated_functions' ) );
51
-		}
52
-
53
-	}
54
-
55
-	/**
56
-	 * Add admin menus/screens.
57
-	 *
58
-	 * @since 2.4.0
59
-	 */
60
-	public function add_menu() {
61
-		add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
62
-	}
63
-
64
-	/**
65
-	 * Sets up the setup wizard.
66
-	 *
67
-	 * @since 2.4.0
68
-	 */
69
-	public function setup_wizard() {
70
-
71
-		if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
72
-			$this->setup_globals();
73
-			$this->maybe_save_current_step();
74
-			$this->display_wizard();
75
-			exit;
76
-		}
77
-
78
-	}
79
-
80
-	public function remove_deprecated_functions() {
81
-		// removes deprecated warnings from page
82
-		remove_action('admin_print_styles', 'print_emoji_styles');
83
-		remove_action( 'admin_head', 'wp_admin_bar_header' );
84
-	}
85
-
86
-	/**
87
-	 * Sets up class variables.
88
-	 *
89
-	 * @since 2.4.0
90
-	 */
91
-	protected function setup_globals() {
92
-		$this->steps         = $this->get_setup_steps();
93
-		$this->step          = $this->get_current_step();
94
-		$this->previous_step = $this->get_previous_step();
95
-		$this->next_step     = $this->get_next_step();
96
-	}
97
-
98
-	/**
99
-	 * Saves the current step.
100
-	 *
101
-	 * @since 2.4.0
102
-	 */
103
-	protected function maybe_save_current_step() {
104
-		if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
105
-			call_user_func( $this->steps[ $this->step ]['handler'], $this );
106
-		}
107
-	}
108
-
109
-	/**
110
-	 * Returns the setup steps.
111
-	 *
112
-	 * @since 2.4.0
113
-	 * @return array
114
-	 */
115
-	protected function get_setup_steps() {
116
-
117
-		$steps = array(
118
-
119
-			'introduction'     => array(
120
-				'name'    => __( 'Introduction', 'invoicing' ),
121
-				'view'    => array( $this, 'setup_introduction' ),
122
-				'handler' => '',
123
-			),
124
-
125
-			'business_details' => array(
126
-				'name'    => __( 'Business Details', 'invoicing' ),
127
-				'view'    => array( $this, 'setup_business' ),
128
-				'handler' => '',
129
-			),
130
-
131
-			'currency'         => array(
132
-				'name'    => __( 'Currency', 'invoicing' ),
133
-				'view'    => array( $this, 'setup_currency' ),
134
-				'handler' => '',
135
-			),
136
-
137
-			'payments'         => array(
138
-				'name'    => __( 'Payment Gateways', 'invoicing' ),
139
-				'view'    => array( $this, 'setup_payments' ),
140
-				'handler' => array( $this, 'setup_payments_save' ),
141
-			),
142
-
143
-			'recommend'        => array(
144
-				'name'    => __( 'Recommend', 'invoicing' ),
145
-				'view'    => array( $this, 'setup_recommend' ),
146
-				'handler' => '',
147
-			),
148
-
149
-			'next_steps'       => array(
150
-				'name'    => __( 'Get Paid', 'invoicing' ),
151
-				'view'    => array( $this, 'setup_ready' ),
152
-				'handler' => '',
153
-			),
154
-
155
-		);
156
-
157
-		return apply_filters( 'getpaid_setup_wizard_steps', $steps );
158
-
159
-	}
160
-
161
-	/**
162
-	 * Returns the current step.
163
-	 *
164
-	 * @since 2.4.0
165
-	 * @return string
166
-	 */
167
-	protected function get_current_step() {
168
-		$step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
169
-		return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
170
-	}
171
-
172
-	/**
173
-	 * Returns the previous step.
174
-	 *
175
-	 * @since 2.4.0
176
-	 * @return string|false
177
-	 */
178
-	protected function get_previous_step() {
179
-
180
-		$previous = false;
181
-		$current  = $this->step;
182
-		foreach ( array_keys( $this->steps ) as $step ) {
183
-			if ( $current === $step ) {
184
-				return $previous;
185
-			}
186
-
187
-			$previous = $step;
188
-		}
189
-
190
-		return false;
191
-	}
192
-
193
-	/**
194
-	 * Returns the next step.
195
-	 *
196
-	 * @since 2.4.0
197
-	 * @return string|false
198
-	 */
199
-	protected function get_next_step() {
200
-
201
-		$on_current = false;
202
-		$current    = $this->step;
203
-		foreach ( array_keys( $this->steps ) as $step ) {
204
-
205
-			if ( $on_current ) {
206
-				return $step;
207
-			}
208
-
209
-			if ( $current === $step ) {
210
-				return $on_current = true;
211
-			}
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
+            add_action( 'admin_init', array( $this, 'remove_deprecated_functions' ) );
51
+        }
52
+
53
+    }
54
+
55
+    /**
56
+     * Add admin menus/screens.
57
+     *
58
+     * @since 2.4.0
59
+     */
60
+    public function add_menu() {
61
+        add_dashboard_page( '', '', wpinv_get_capability(), 'gp-setup', '' );
62
+    }
63
+
64
+    /**
65
+     * Sets up the setup wizard.
66
+     *
67
+     * @since 2.4.0
68
+     */
69
+    public function setup_wizard() {
70
+
71
+        if ( isset( $_GET['page'] ) && 'gp-setup' === $_GET['page'] ) {
72
+            $this->setup_globals();
73
+            $this->maybe_save_current_step();
74
+            $this->display_wizard();
75
+            exit;
76
+        }
77
+
78
+    }
79
+
80
+    public function remove_deprecated_functions() {
81
+        // removes deprecated warnings from page
82
+        remove_action('admin_print_styles', 'print_emoji_styles');
83
+        remove_action( 'admin_head', 'wp_admin_bar_header' );
84
+    }
85
+
86
+    /**
87
+     * Sets up class variables.
88
+     *
89
+     * @since 2.4.0
90
+     */
91
+    protected function setup_globals() {
92
+        $this->steps         = $this->get_setup_steps();
93
+        $this->step          = $this->get_current_step();
94
+        $this->previous_step = $this->get_previous_step();
95
+        $this->next_step     = $this->get_next_step();
96
+    }
97
+
98
+    /**
99
+     * Saves the current step.
100
+     *
101
+     * @since 2.4.0
102
+     */
103
+    protected function maybe_save_current_step() {
104
+        if ( ! empty( $_POST['save_step'] ) && is_callable( $this->steps[ $this->step ]['handler'] ) ) {
105
+            call_user_func( $this->steps[ $this->step ]['handler'], $this );
106
+        }
107
+    }
108
+
109
+    /**
110
+     * Returns the setup steps.
111
+     *
112
+     * @since 2.4.0
113
+     * @return array
114
+     */
115
+    protected function get_setup_steps() {
116
+
117
+        $steps = array(
118
+
119
+            'introduction'     => array(
120
+                'name'    => __( 'Introduction', 'invoicing' ),
121
+                'view'    => array( $this, 'setup_introduction' ),
122
+                'handler' => '',
123
+            ),
124
+
125
+            'business_details' => array(
126
+                'name'    => __( 'Business Details', 'invoicing' ),
127
+                'view'    => array( $this, 'setup_business' ),
128
+                'handler' => '',
129
+            ),
130
+
131
+            'currency'         => array(
132
+                'name'    => __( 'Currency', 'invoicing' ),
133
+                'view'    => array( $this, 'setup_currency' ),
134
+                'handler' => '',
135
+            ),
136
+
137
+            'payments'         => array(
138
+                'name'    => __( 'Payment Gateways', 'invoicing' ),
139
+                'view'    => array( $this, 'setup_payments' ),
140
+                'handler' => array( $this, 'setup_payments_save' ),
141
+            ),
142
+
143
+            'recommend'        => array(
144
+                'name'    => __( 'Recommend', 'invoicing' ),
145
+                'view'    => array( $this, 'setup_recommend' ),
146
+                'handler' => '',
147
+            ),
148
+
149
+            'next_steps'       => array(
150
+                'name'    => __( 'Get Paid', 'invoicing' ),
151
+                'view'    => array( $this, 'setup_ready' ),
152
+                'handler' => '',
153
+            ),
154
+
155
+        );
156
+
157
+        return apply_filters( 'getpaid_setup_wizard_steps', $steps );
158
+
159
+    }
160
+
161
+    /**
162
+     * Returns the current step.
163
+     *
164
+     * @since 2.4.0
165
+     * @return string
166
+     */
167
+    protected function get_current_step() {
168
+        $step = isset( $_GET['step'] ) ? sanitize_key( $_GET['step'] ) : '';
169
+        return ! empty( $step ) && in_array( $step, array_keys( $this->steps ) ) ? $step : current( array_keys( $this->steps ) );
170
+    }
171
+
172
+    /**
173
+     * Returns the previous step.
174
+     *
175
+     * @since 2.4.0
176
+     * @return string|false
177
+     */
178
+    protected function get_previous_step() {
179
+
180
+        $previous = false;
181
+        $current  = $this->step;
182
+        foreach ( array_keys( $this->steps ) as $step ) {
183
+            if ( $current === $step ) {
184
+                return $previous;
185
+            }
186
+
187
+            $previous = $step;
188
+        }
189
+
190
+        return false;
191
+    }
192
+
193
+    /**
194
+     * Returns the next step.
195
+     *
196
+     * @since 2.4.0
197
+     * @return string|false
198
+     */
199
+    protected function get_next_step() {
200
+
201
+        $on_current = false;
202
+        $current    = $this->step;
203
+        foreach ( array_keys( $this->steps ) as $step ) {
204
+
205
+            if ( $on_current ) {
206
+                return $step;
207
+            }
208
+
209
+            if ( $current === $step ) {
210
+                return $on_current = true;
211
+            }
212 212
 }
213 213
 
214
-		return false;
215
-	}
216
-
217
-	/**
218
-	 * Displays the setup wizard.
219
-	 *
220
-	 * @since 2.4.0
221
-	 */
222
-	public function display_wizard() {
223
-		$this->display_header();
224
-		$this->display_current_step();
225
-		$this->display_footer();
226
-	}
227
-
228
-	/**
229
-	 * Displays the Wizard Header.
230
-	 *
231
-	 * @since 2.0.0
232
-	 */
233
-	public function display_header() {
234
-		$steps     = $this->steps;
235
-		$current   = $this->step;
236
-		$next_step = $this->next_step;
237
-		array_shift( $steps );
238
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
239
-	}
240
-
241
-	/**
242
-	 * Displays the content for the current step.
243
-	 *
244
-	 * @since 2.4.0
245
-	 */
246
-	public function display_current_step() {
247
-		?>
214
+        return false;
215
+    }
216
+
217
+    /**
218
+     * Displays the setup wizard.
219
+     *
220
+     * @since 2.4.0
221
+     */
222
+    public function display_wizard() {
223
+        $this->display_header();
224
+        $this->display_current_step();
225
+        $this->display_footer();
226
+    }
227
+
228
+    /**
229
+     * Displays the Wizard Header.
230
+     *
231
+     * @since 2.0.0
232
+     */
233
+    public function display_header() {
234
+        $steps     = $this->steps;
235
+        $current   = $this->step;
236
+        $next_step = $this->next_step;
237
+        array_shift( $steps );
238
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-header.php';
239
+    }
240
+
241
+    /**
242
+     * Displays the content for the current step.
243
+     *
244
+     * @since 2.4.0
245
+     */
246
+    public function display_current_step() {
247
+        ?>
248 248
 			<div class="gp-setup-content rowx mw-100 text-center mb-3">
249 249
 				<div class="col-12 col-md-5 m-auto">
250 250
 					<?php call_user_func( $this->steps[ $this->step ]['view'], $this ); ?>
251 251
 				</div>
252 252
 			</div>
253 253
 		<?php
254
-	}
255
-
256
-	/**
257
-	 * Setup Wizard Footer.
258
-	 *
259
-	 * @since 2.4.0
260
-	 */
261
-	public function display_footer() {
262
-
263
-		if ( isset( $_GET['step'] ) ) {
264
-			$label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
265
-
266
-			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>';
267
-		}
268
-
269
-		echo '</body></html>';
270
-	}
271
-
272
-	/**
273
-	 * Introduction step.
274
-	 *
275
-	 * @since 2.0.0
276
-	 */
277
-	public function setup_introduction() {
278
-		$next_url = $this->get_next_step_link();
279
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
280
-	}
281
-
282
-	/**
283
-	 * Get the URL for the next step's screen.
284
-	 *
285
-	 * @param string step   slug (default: current step)
286
-	 *
287
-	 * @return string       URL for next step if a next step exists.
288
-	 *                      Admin URL if it's the last step.
289
-	 *                      Empty string on failure.
290
-	 * @since 3.0.0
291
-	 */
292
-	public function get_next_step_link( $step = '' ) {
293
-		if ( ! $step ) {
294
-			$step = $this->step;
295
-		}
296
-
297
-		$keys = array_keys( $this->steps );
298
-		if ( end( $keys ) === $step ) {
299
-			return admin_url();
300
-		}
301
-
302
-		$step_index = array_search( $step, $keys );
303
-		if ( false === $step_index ) {
304
-			return '';
305
-		}
306
-
307
-		return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
308
-	}
309
-
310
-	/**
311
-	 * Setup maps api.
312
-	 *
313
-	 * @since 2.0.0
314
-	 */
315
-	public function setup_business() {
316
-		$next_url = $this->get_next_step_link();
317
-		$wizard   = $this;
318
-		$page     = 'wpinv_settings_general_main';
319
-		$section  = 'wpinv_settings_general_main';
320
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
321
-	}
322
-
323
-	/**
324
-	 * Default Location settings.
325
-	 *
326
-	 * @since 2.0.0
327
-	 */
328
-	public function setup_currency() {
329
-		$next_url = $this->get_next_step_link();
330
-		$wizard   = $this;
331
-		$page     = 'wpinv_settings_general_currency_section';
332
-		$section  = 'wpinv_settings_general_currency_section';
333
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
334
-	}
335
-
336
-	/**
337
-	 * Installation of recommended plugins.
338
-	 *
339
-	 * @since 1.0.0
340
-	 */
341
-	public function setup_recommend() {
342
-		$next_url            = $this->get_next_step_link();
343
-		$recommended_plugins = self::get_recommend_wp_plugins();
344
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
345
-	}
346
-
347
-	/**
348
-	 * A list of recommended wp.org plugins.
349
-	 * @return array
350
-	 */
351
-	public static function get_recommend_wp_plugins() {
352
-		return array(
353
-			'ayecode-connect'  => array(
354
-				'file' => 'ayecode-connect/ayecode-connect.php',
355
-				'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
356
-				'slug' => 'ayecode-connect',
357
-				'name' => 'AyeCode Connect',
358
-				'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
359
-			),
360
-			'invoicing-quotes' => array(
361
-				'file' => 'invoicing-quotes/wpinv-quote.php',
362
-				'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
363
-				'slug' => 'invoicing-quotes',
364
-				'name' => 'Customer Quotes',
365
-				'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
366
-			),
367
-			'userswp'          => array(
368
-				'file' => 'userswp/userswp.php',
369
-				'url'  => 'https://wordpress.org/plugins/userswp/',
370
-				'slug' => 'userswp',
371
-				'name' => 'UsersWP',
372
-				'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
373
-			),
374
-		);
375
-	}
376
-
377
-	/**
378
-	 * Dummy Data setup.
379
-	 *
380
-	 * @since 2.4.0
381
-	 */
382
-	public function setup_payments() {
383
-		$next_url = $this->get_next_step_link();
384
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
385
-	}
386
-
387
-	/**
388
-	 * Dummy data save.
389
-	 *
390
-	 * This is done via ajax so we just pass onto the next step.
391
-	 *
392
-	 * @since 2.0.0
393
-	 */
394
-	public function setup_payments_save() {
395
-		check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
396
-		wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
397
-
398
-		if ( ! empty( $_POST['paypal-email'] ) ) {
399
-			wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
400
-			wpinv_update_option( 'paypal_active', 1 );
401
-			wpinv_update_option( 'paypal_sandbox', 0 );
402
-		}
403
-
404
-		wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
405
-		exit;
406
-	}
407
-
408
-	/**
409
-	 * Final step.
410
-	 *
411
-	 * @since 2.0.0
412
-	 */
413
-	public function setup_ready() {
414
-		include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
415
-	}
254
+    }
255
+
256
+    /**
257
+     * Setup Wizard Footer.
258
+     *
259
+     * @since 2.4.0
260
+     */
261
+    public function display_footer() {
262
+
263
+        if ( isset( $_GET['step'] ) ) {
264
+            $label    = $this->step == 'next_steps' ? __( 'Return to the WordPress Dashboard', 'invoicing' ) : __( 'Skip this step', 'invoicing' );
265
+
266
+            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>';
267
+        }
268
+
269
+        echo '</body></html>';
270
+    }
271
+
272
+    /**
273
+     * Introduction step.
274
+     *
275
+     * @since 2.0.0
276
+     */
277
+    public function setup_introduction() {
278
+        $next_url = $this->get_next_step_link();
279
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-introduction.php';
280
+    }
281
+
282
+    /**
283
+     * Get the URL for the next step's screen.
284
+     *
285
+     * @param string step   slug (default: current step)
286
+     *
287
+     * @return string       URL for next step if a next step exists.
288
+     *                      Admin URL if it's the last step.
289
+     *                      Empty string on failure.
290
+     * @since 3.0.0
291
+     */
292
+    public function get_next_step_link( $step = '' ) {
293
+        if ( ! $step ) {
294
+            $step = $this->step;
295
+        }
296
+
297
+        $keys = array_keys( $this->steps );
298
+        if ( end( $keys ) === $step ) {
299
+            return admin_url();
300
+        }
301
+
302
+        $step_index = array_search( $step, $keys );
303
+        if ( false === $step_index ) {
304
+            return '';
305
+        }
306
+
307
+        return remove_query_arg( 'settings-updated', add_query_arg( 'step', $keys[ $step_index + 1 ] ) );
308
+    }
309
+
310
+    /**
311
+     * Setup maps api.
312
+     *
313
+     * @since 2.0.0
314
+     */
315
+    public function setup_business() {
316
+        $next_url = $this->get_next_step_link();
317
+        $wizard   = $this;
318
+        $page     = 'wpinv_settings_general_main';
319
+        $section  = 'wpinv_settings_general_main';
320
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
321
+    }
322
+
323
+    /**
324
+     * Default Location settings.
325
+     *
326
+     * @since 2.0.0
327
+     */
328
+    public function setup_currency() {
329
+        $next_url = $this->get_next_step_link();
330
+        $wizard   = $this;
331
+        $page     = 'wpinv_settings_general_currency_section';
332
+        $section  = 'wpinv_settings_general_currency_section';
333
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-settings.php';
334
+    }
335
+
336
+    /**
337
+     * Installation of recommended plugins.
338
+     *
339
+     * @since 1.0.0
340
+     */
341
+    public function setup_recommend() {
342
+        $next_url            = $this->get_next_step_link();
343
+        $recommended_plugins = self::get_recommend_wp_plugins();
344
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-plugins.php';
345
+    }
346
+
347
+    /**
348
+     * A list of recommended wp.org plugins.
349
+     * @return array
350
+     */
351
+    public static function get_recommend_wp_plugins() {
352
+        return array(
353
+            'ayecode-connect'  => array(
354
+                'file' => 'ayecode-connect/ayecode-connect.php',
355
+                'url'  => 'https://wordpress.org/plugins/ayecode-connect/',
356
+                'slug' => 'ayecode-connect',
357
+                'name' => 'AyeCode Connect',
358
+                'desc' => __( 'Documentation and Support from within your WordPress admin.', 'invoicing' ),
359
+            ),
360
+            'invoicing-quotes' => array(
361
+                'file' => 'invoicing-quotes/wpinv-quote.php',
362
+                'url'  => 'https://wordpress.org/plugins/invoicing-quotes/',
363
+                'slug' => 'invoicing-quotes',
364
+                'name' => 'Customer Quotes',
365
+                'desc' => __( 'Create & Send Quotes to Customers and have them accept and pay.', 'invoicing' ),
366
+            ),
367
+            'userswp'          => array(
368
+                'file' => 'userswp/userswp.php',
369
+                'url'  => 'https://wordpress.org/plugins/userswp/',
370
+                'slug' => 'userswp',
371
+                'name' => 'UsersWP',
372
+                'desc' => __( 'Frontend user login and registration as well as slick profile pages.', 'invoicing' ),
373
+            ),
374
+        );
375
+    }
376
+
377
+    /**
378
+     * Dummy Data setup.
379
+     *
380
+     * @since 2.4.0
381
+     */
382
+    public function setup_payments() {
383
+        $next_url = $this->get_next_step_link();
384
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-gateways.php';
385
+    }
386
+
387
+    /**
388
+     * Dummy data save.
389
+     *
390
+     * This is done via ajax so we just pass onto the next step.
391
+     *
392
+     * @since 2.0.0
393
+     */
394
+    public function setup_payments_save() {
395
+        check_admin_referer( 'getpaid-setup-wizard', 'getpaid-setup-wizard' );
396
+        wpinv_update_option( 'manual_active', ! empty( $_POST['enable-manual-gateway'] ) );
397
+
398
+        if ( ! empty( $_POST['paypal-email'] ) ) {
399
+            wpinv_update_option( 'paypal_email', sanitize_email( $_POST['paypal-email'] ) );
400
+            wpinv_update_option( 'paypal_active', 1 );
401
+            wpinv_update_option( 'paypal_sandbox', 0 );
402
+        }
403
+
404
+        wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
405
+        exit;
406
+    }
407
+
408
+    /**
409
+     * Final step.
410
+     *
411
+     * @since 2.0.0
412
+     */
413
+    public function setup_ready() {
414
+        include plugin_dir_path( __FILE__ ) . 'views/wizard-thank-you.php';
415
+    }
416 416
 
417 417
 }
418 418
 
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/sd-functions.php 1 patch
Indentation   +2869 added lines, -2869 removed lines patch added patch discarded remove patch
@@ -11,21 +11,21 @@  discard block
 block discarded – undo
11 11
  * @return mixed|void
12 12
  */
13 13
 function sd_pagenow_exclude() {
14
-	return apply_filters(
15
-		'sd_pagenow_exclude',
16
-		array(
17
-			'upload.php',
18
-			'edit-comments.php',
19
-			'edit-tags.php',
20
-			'index.php',
21
-			'media-new.php',
22
-			'options-discussion.php',
23
-			'options-writing.php',
24
-			'edit.php',
25
-			'themes.php',
26
-			'users.php',
27
-		)
28
-	);
14
+    return apply_filters(
15
+        'sd_pagenow_exclude',
16
+        array(
17
+            'upload.php',
18
+            'edit-comments.php',
19
+            'edit-tags.php',
20
+            'index.php',
21
+            'media-new.php',
22
+            'options-discussion.php',
23
+            'options-writing.php',
24
+            'edit.php',
25
+            'themes.php',
26
+            'users.php',
27
+        )
28
+    );
29 29
 }
30 30
 
31 31
 
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
  * @return mixed|void
38 38
  */
39 39
 function sd_widget_exclude() {
40
-	return apply_filters( 'sd_widget_exclude', array() );
40
+    return apply_filters( 'sd_widget_exclude', array() );
41 41
 }
42 42
 
43 43
 
@@ -50,83 +50,83 @@  discard block
 block discarded – undo
50 50
  * @return array
51 51
  */
52 52
 function sd_get_margin_input( $type = 'mt', $overwrite = array(), $include_negatives = true ) {
53
-	global $aui_bs5;
54
-	$options = array(
55
-		''     => __( 'None', 'ayecode-connect' ),
56
-		'auto' => __( 'auto', 'ayecode-connect' ),
57
-		'0'    => '0',
58
-		'1'    => '1',
59
-		'2'    => '2',
60
-		'3'    => '3',
61
-		'4'    => '4',
62
-		'5'    => '5',
63
-		'6'    => '6',
64
-		'7'    => '7',
65
-		'8'    => '8',
66
-		'9'    => '9',
67
-		'10'   => '10',
68
-		'11'   => '11',
69
-		'12'   => '12',
70
-	);
71
-
72
-	if ( $include_negatives ) {
73
-		$options['n1']  = '-1';
74
-		$options['n2']  = '-2';
75
-		$options['n3']  = '-3';
76
-		$options['n4']  = '-4';
77
-		$options['n5']  = '-5';
78
-		$options['n6']  = '-6';
79
-		$options['n7']  = '-7';
80
-		$options['n8']  = '-8';
81
-		$options['n9']  = '-9';
82
-		$options['n10'] = '-10';
83
-		$options['n11'] = '-11';
84
-		$options['n12'] = '-12';
85
-	}
86
-
87
-	$defaults = array(
88
-		'type'     => 'select',
89
-		'title'    => __( 'Margin top', 'ayecode-connect' ),
90
-		'options'  => $options,
91
-		'default'  => '',
92
-		'desc_tip' => true,
93
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
94
-	);
95
-
96
-	// title
97
-	if ( $type == 'mt' ) {
98
-		$defaults['title'] = __( 'Margin top', 'ayecode-connect' );
99
-		$defaults['icon']  = 'box-top';
100
-		$defaults['row']   = array(
101
-			'title' => __( 'Margins', 'ayecode-connect' ),
102
-			'key'   => 'wrapper-margins',
103
-			'open'  => true,
104
-			'class' => 'text-center',
105
-		);
106
-	} elseif ( $type == 'mr' ) {
107
-		$defaults['title'] = __( 'Margin right', 'ayecode-connect' );
108
-		$defaults['icon']  = 'box-right';
109
-		$defaults['row']   = array(
110
-			'key' => 'wrapper-margins',
111
-		);
112
-	} elseif ( $type == 'mb' ) {
113
-		$defaults['title'] = __( 'Margin bottom', 'ayecode-connect' );
114
-		$defaults['icon']  = 'box-bottom';
115
-		$defaults['row']   = array(
116
-			'key' => 'wrapper-margins',
117
-		);
118
-	} elseif ( $type == 'ml' ) {
119
-		$defaults['title'] = __( 'Margin left', 'ayecode-connect' );
120
-		$defaults['icon']  = 'box-left';
121
-		$defaults['row']   = array(
122
-			'key'   => 'wrapper-margins',
123
-			'close' => true,
124
-		);
125
-	}
126
-
127
-	$input = wp_parse_args( $overwrite, $defaults );
128
-
129
-	return $input;
53
+    global $aui_bs5;
54
+    $options = array(
55
+        ''     => __( 'None', 'ayecode-connect' ),
56
+        'auto' => __( 'auto', 'ayecode-connect' ),
57
+        '0'    => '0',
58
+        '1'    => '1',
59
+        '2'    => '2',
60
+        '3'    => '3',
61
+        '4'    => '4',
62
+        '5'    => '5',
63
+        '6'    => '6',
64
+        '7'    => '7',
65
+        '8'    => '8',
66
+        '9'    => '9',
67
+        '10'   => '10',
68
+        '11'   => '11',
69
+        '12'   => '12',
70
+    );
71
+
72
+    if ( $include_negatives ) {
73
+        $options['n1']  = '-1';
74
+        $options['n2']  = '-2';
75
+        $options['n3']  = '-3';
76
+        $options['n4']  = '-4';
77
+        $options['n5']  = '-5';
78
+        $options['n6']  = '-6';
79
+        $options['n7']  = '-7';
80
+        $options['n8']  = '-8';
81
+        $options['n9']  = '-9';
82
+        $options['n10'] = '-10';
83
+        $options['n11'] = '-11';
84
+        $options['n12'] = '-12';
85
+    }
86
+
87
+    $defaults = array(
88
+        'type'     => 'select',
89
+        'title'    => __( 'Margin top', 'ayecode-connect' ),
90
+        'options'  => $options,
91
+        'default'  => '',
92
+        'desc_tip' => true,
93
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
94
+    );
95
+
96
+    // title
97
+    if ( $type == 'mt' ) {
98
+        $defaults['title'] = __( 'Margin top', 'ayecode-connect' );
99
+        $defaults['icon']  = 'box-top';
100
+        $defaults['row']   = array(
101
+            'title' => __( 'Margins', 'ayecode-connect' ),
102
+            'key'   => 'wrapper-margins',
103
+            'open'  => true,
104
+            'class' => 'text-center',
105
+        );
106
+    } elseif ( $type == 'mr' ) {
107
+        $defaults['title'] = __( 'Margin right', 'ayecode-connect' );
108
+        $defaults['icon']  = 'box-right';
109
+        $defaults['row']   = array(
110
+            'key' => 'wrapper-margins',
111
+        );
112
+    } elseif ( $type == 'mb' ) {
113
+        $defaults['title'] = __( 'Margin bottom', 'ayecode-connect' );
114
+        $defaults['icon']  = 'box-bottom';
115
+        $defaults['row']   = array(
116
+            'key' => 'wrapper-margins',
117
+        );
118
+    } elseif ( $type == 'ml' ) {
119
+        $defaults['title'] = __( 'Margin left', 'ayecode-connect' );
120
+        $defaults['icon']  = 'box-left';
121
+        $defaults['row']   = array(
122
+            'key'   => 'wrapper-margins',
123
+            'close' => true,
124
+        );
125
+    }
126
+
127
+    $input = wp_parse_args( $overwrite, $defaults );
128
+
129
+    return $input;
130 130
 }
131 131
 
132 132
 /**
@@ -138,67 +138,67 @@  discard block
 block discarded – undo
138 138
  * @return array
139 139
  */
140 140
 function sd_get_padding_input( $type = 'pt', $overwrite = array() ) {
141
-	$options = array(
142
-		''   => __( 'None', 'ayecode-connect' ),
143
-		'0'  => '0',
144
-		'1'  => '1',
145
-		'2'  => '2',
146
-		'3'  => '3',
147
-		'4'  => '4',
148
-		'5'  => '5',
149
-		'6'  => '6',
150
-		'7'  => '7',
151
-		'8'  => '8',
152
-		'9'  => '9',
153
-		'10' => '10',
154
-		'11' => '11',
155
-		'12' => '12',
156
-	);
157
-
158
-	$defaults = array(
159
-		'type'     => 'select',
160
-		'title'    => __( 'Padding top', 'ayecode-connect' ),
161
-		'options'  => $options,
162
-		'default'  => '',
163
-		'desc_tip' => true,
164
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
165
-	);
166
-
167
-	// title
168
-	if ( $type == 'pt' ) {
169
-		$defaults['title'] = __( 'Padding top', 'ayecode-connect' );
170
-		$defaults['icon']  = 'box-top';
171
-		$defaults['row']   = array(
172
-			'title' => __( 'Padding', 'ayecode-connect' ),
173
-			'key'   => 'wrapper-padding',
174
-			'open'  => true,
175
-			'class' => 'text-center',
176
-		);
177
-	} elseif ( $type == 'pr' ) {
178
-		$defaults['title'] = __( 'Padding right', 'ayecode-connect' );
179
-		$defaults['icon']  = 'box-right';
180
-		$defaults['row']   = array(
181
-			'key' => 'wrapper-padding',
182
-		);
183
-	} elseif ( $type == 'pb' ) {
184
-		$defaults['title'] = __( 'Padding bottom', 'ayecode-connect' );
185
-		$defaults['icon']  = 'box-bottom';
186
-		$defaults['row']   = array(
187
-			'key' => 'wrapper-padding',
188
-		);
189
-	} elseif ( $type == 'pl' ) {
190
-		$defaults['title'] = __( 'Padding left', 'ayecode-connect' );
191
-		$defaults['icon']  = 'box-left';
192
-		$defaults['row']   = array(
193
-			'key'   => 'wrapper-padding',
194
-			'close' => true,
195
-
196
-		);
197
-	}
198
-
199
-	$input = wp_parse_args( $overwrite, $defaults );
200
-
201
-	return $input;
141
+    $options = array(
142
+        ''   => __( 'None', 'ayecode-connect' ),
143
+        '0'  => '0',
144
+        '1'  => '1',
145
+        '2'  => '2',
146
+        '3'  => '3',
147
+        '4'  => '4',
148
+        '5'  => '5',
149
+        '6'  => '6',
150
+        '7'  => '7',
151
+        '8'  => '8',
152
+        '9'  => '9',
153
+        '10' => '10',
154
+        '11' => '11',
155
+        '12' => '12',
156
+    );
157
+
158
+    $defaults = array(
159
+        'type'     => 'select',
160
+        'title'    => __( 'Padding top', 'ayecode-connect' ),
161
+        'options'  => $options,
162
+        'default'  => '',
163
+        'desc_tip' => true,
164
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
165
+    );
166
+
167
+    // title
168
+    if ( $type == 'pt' ) {
169
+        $defaults['title'] = __( 'Padding top', 'ayecode-connect' );
170
+        $defaults['icon']  = 'box-top';
171
+        $defaults['row']   = array(
172
+            'title' => __( 'Padding', 'ayecode-connect' ),
173
+            'key'   => 'wrapper-padding',
174
+            'open'  => true,
175
+            'class' => 'text-center',
176
+        );
177
+    } elseif ( $type == 'pr' ) {
178
+        $defaults['title'] = __( 'Padding right', 'ayecode-connect' );
179
+        $defaults['icon']  = 'box-right';
180
+        $defaults['row']   = array(
181
+            'key' => 'wrapper-padding',
182
+        );
183
+    } elseif ( $type == 'pb' ) {
184
+        $defaults['title'] = __( 'Padding bottom', 'ayecode-connect' );
185
+        $defaults['icon']  = 'box-bottom';
186
+        $defaults['row']   = array(
187
+            'key' => 'wrapper-padding',
188
+        );
189
+    } elseif ( $type == 'pl' ) {
190
+        $defaults['title'] = __( 'Padding left', 'ayecode-connect' );
191
+        $defaults['icon']  = 'box-left';
192
+        $defaults['row']   = array(
193
+            'key'   => 'wrapper-padding',
194
+            'close' => true,
195
+
196
+        );
197
+    }
198
+
199
+    $input = wp_parse_args( $overwrite, $defaults );
200
+
201
+    return $input;
202 202
 }
203 203
 
204 204
 /**
@@ -210,96 +210,96 @@  discard block
 block discarded – undo
210 210
  * @return array
211 211
  */
212 212
 function sd_get_border_input( $type = 'border', $overwrite = array() ) {
213
-	global $aui_bs5;
214
-
215
-	$defaults = array(
216
-		'type'     => 'select',
217
-		'title'    => __( 'Border', 'ayecode-connect' ),
218
-		'options'  => array(),
219
-		'default'  => '',
220
-		'desc_tip' => true,
221
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
222
-	);
223
-
224
-	// title
225
-	if ( 'rounded' === $type ) {
226
-		$defaults['title']           = __( 'Border radius type', 'ayecode-connect' );
227
-		$defaults['options']         = array(
228
-			''               => __( 'Default', 'ayecode-connect' ),
229
-			'rounded'        => 'rounded',
230
-			'rounded-top'    => 'rounded-top',
231
-			'rounded-right'  => 'rounded-right',
232
-			'rounded-bottom' => 'rounded-bottom',
233
-			'rounded-left'   => 'rounded-left',
234
-		);
235
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
236
-	} elseif ( 'rounded_size' === $type ) {
237
-		$defaults['title'] = __( 'Border radius size', 'ayecode-connect' );
238
-
239
-		if ( $aui_bs5 ) {
240
-			$defaults['options'] = array(
241
-				''       => __( 'Default', 'ayecode-connect' ),
242
-				'0'      => '0',
243
-				'1'      => '1',
244
-				'2'      => '2',
245
-				'3'      => '3',
246
-				'4'      => '4',
247
-				'circle' => 'circle',
248
-				'pill'   => 'pill',
249
-			);
250
-		} else {
251
-			$defaults['options'] = array(
252
-				''   => __( 'Default', 'ayecode-connect' ),
253
-				'sm' => __( 'Small', 'ayecode-connect' ),
254
-				'lg' => __( 'Large', 'ayecode-connect' ),
255
-			);
256
-		}
257
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
258
-	} elseif ( 'width' === $type ) { // BS%
259
-		$defaults['title']           = __( 'Border width', 'ayecode-connect' );
260
-		$defaults['options']         = array(
261
-			''         => __( 'Default', 'ayecode-connect' ),
262
-			'border-2' => '2',
263
-			'border-3' => '3',
264
-			'border-4' => '4',
265
-			'border-5' => '5',
266
-		);
267
-		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
268
-	} elseif ( 'opacity' === $type ) { // BS%
269
-		$defaults['title']           = __( 'Border opacity', 'ayecode-connect' );
270
-		$defaults['options']         = array(
271
-			''                  => __( 'Default', 'ayecode-connect' ),
272
-			'border-opacity-75' => '75%',
273
-			'border-opacity-50' => '50%',
274
-			'border-opacity-25' => '25%',
275
-			'border-opacity-10' => '10%',
276
-		);
277
-		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
278
-	} elseif ( 'type' === $type ) {
279
-		$defaults['title']           = __( 'Border show', 'ayecode-connect' );
280
-		$defaults['options']         = array(
281
-			'border'          => __( 'Full (set color to show)', 'ayecode-connect' ),
282
-			'border-top'      => __( 'Top', 'ayecode-connect' ),
283
-			'border-bottom'   => __( 'Bottom', 'ayecode-connect' ),
284
-			'border-left'     => __( 'Left', 'ayecode-connect' ),
285
-			'border-right'    => __( 'Right', 'ayecode-connect' ),
286
-			'border-top-0'    => __( '-Top', 'ayecode-connect' ),
287
-			'border-bottom-0' => __( '-Bottom', 'ayecode-connect' ),
288
-			'border-left-0'   => __( '-Left', 'ayecode-connect' ),
289
-			'border-right-0'  => __( '-Right', 'ayecode-connect' ),
290
-		);
291
-		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
292
-	} else {
293
-		$defaults['title']   = __( 'Border color', 'ayecode-connect' );
294
-		$defaults['options'] = array(
295
-			''  => __( 'Default', 'ayecode-connect' ),
296
-			'0' => __( 'None', 'ayecode-connect' )
297
-		) + sd_aui_colors( false, false, false, false, true );
298
-	}
299
-
300
-	$input = wp_parse_args( $overwrite, $defaults );
301
-
302
-	return $input;
213
+    global $aui_bs5;
214
+
215
+    $defaults = array(
216
+        'type'     => 'select',
217
+        'title'    => __( 'Border', 'ayecode-connect' ),
218
+        'options'  => array(),
219
+        'default'  => '',
220
+        'desc_tip' => true,
221
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
222
+    );
223
+
224
+    // title
225
+    if ( 'rounded' === $type ) {
226
+        $defaults['title']           = __( 'Border radius type', 'ayecode-connect' );
227
+        $defaults['options']         = array(
228
+            ''               => __( 'Default', 'ayecode-connect' ),
229
+            'rounded'        => 'rounded',
230
+            'rounded-top'    => 'rounded-top',
231
+            'rounded-right'  => 'rounded-right',
232
+            'rounded-bottom' => 'rounded-bottom',
233
+            'rounded-left'   => 'rounded-left',
234
+        );
235
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
236
+    } elseif ( 'rounded_size' === $type ) {
237
+        $defaults['title'] = __( 'Border radius size', 'ayecode-connect' );
238
+
239
+        if ( $aui_bs5 ) {
240
+            $defaults['options'] = array(
241
+                ''       => __( 'Default', 'ayecode-connect' ),
242
+                '0'      => '0',
243
+                '1'      => '1',
244
+                '2'      => '2',
245
+                '3'      => '3',
246
+                '4'      => '4',
247
+                'circle' => 'circle',
248
+                'pill'   => 'pill',
249
+            );
250
+        } else {
251
+            $defaults['options'] = array(
252
+                ''   => __( 'Default', 'ayecode-connect' ),
253
+                'sm' => __( 'Small', 'ayecode-connect' ),
254
+                'lg' => __( 'Large', 'ayecode-connect' ),
255
+            );
256
+        }
257
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
258
+    } elseif ( 'width' === $type ) { // BS%
259
+        $defaults['title']           = __( 'Border width', 'ayecode-connect' );
260
+        $defaults['options']         = array(
261
+            ''         => __( 'Default', 'ayecode-connect' ),
262
+            'border-2' => '2',
263
+            'border-3' => '3',
264
+            'border-4' => '4',
265
+            'border-5' => '5',
266
+        );
267
+        $defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
268
+    } elseif ( 'opacity' === $type ) { // BS%
269
+        $defaults['title']           = __( 'Border opacity', 'ayecode-connect' );
270
+        $defaults['options']         = array(
271
+            ''                  => __( 'Default', 'ayecode-connect' ),
272
+            'border-opacity-75' => '75%',
273
+            'border-opacity-50' => '50%',
274
+            'border-opacity-25' => '25%',
275
+            'border-opacity-10' => '10%',
276
+        );
277
+        $defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
278
+    } elseif ( 'type' === $type ) {
279
+        $defaults['title']           = __( 'Border show', 'ayecode-connect' );
280
+        $defaults['options']         = array(
281
+            'border'          => __( 'Full (set color to show)', 'ayecode-connect' ),
282
+            'border-top'      => __( 'Top', 'ayecode-connect' ),
283
+            'border-bottom'   => __( 'Bottom', 'ayecode-connect' ),
284
+            'border-left'     => __( 'Left', 'ayecode-connect' ),
285
+            'border-right'    => __( 'Right', 'ayecode-connect' ),
286
+            'border-top-0'    => __( '-Top', 'ayecode-connect' ),
287
+            'border-bottom-0' => __( '-Bottom', 'ayecode-connect' ),
288
+            'border-left-0'   => __( '-Left', 'ayecode-connect' ),
289
+            'border-right-0'  => __( '-Right', 'ayecode-connect' ),
290
+        );
291
+        $defaults['element_require'] = '([%border%]&&[%border%]!="0")';
292
+    } else {
293
+        $defaults['title']   = __( 'Border color', 'ayecode-connect' );
294
+        $defaults['options'] = array(
295
+            ''  => __( 'Default', 'ayecode-connect' ),
296
+            '0' => __( 'None', 'ayecode-connect' )
297
+        ) + sd_aui_colors( false, false, false, false, true );
298
+    }
299
+
300
+    $input = wp_parse_args( $overwrite, $defaults );
301
+
302
+    return $input;
303 303
 }
304 304
 
305 305
 /**
@@ -311,25 +311,25 @@  discard block
 block discarded – undo
311 311
  * @return array
312 312
  */
313 313
 function sd_get_shadow_input( $type = 'shadow', $overwrite = array() ) {
314
-	$options = array(
315
-		''          => __( 'None', 'ayecode-connect' ),
316
-		'shadow-sm' => __( 'Small', 'ayecode-connect' ),
317
-		'shadow'    => __( 'Regular', 'ayecode-connect' ),
318
-		'shadow-lg' => __( 'Large', 'ayecode-connect' ),
319
-	);
314
+    $options = array(
315
+        ''          => __( 'None', 'ayecode-connect' ),
316
+        'shadow-sm' => __( 'Small', 'ayecode-connect' ),
317
+        'shadow'    => __( 'Regular', 'ayecode-connect' ),
318
+        'shadow-lg' => __( 'Large', 'ayecode-connect' ),
319
+    );
320 320
 
321
-	$defaults = array(
322
-		'type'     => 'select',
323
-		'title'    => __( 'Shadow', 'ayecode-connect' ),
324
-		'options'  => $options,
325
-		'default'  => '',
326
-		'desc_tip' => true,
327
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
328
-	);
321
+    $defaults = array(
322
+        'type'     => 'select',
323
+        'title'    => __( 'Shadow', 'ayecode-connect' ),
324
+        'options'  => $options,
325
+        'default'  => '',
326
+        'desc_tip' => true,
327
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
328
+    );
329 329
 
330
-	$input = wp_parse_args( $overwrite, $defaults );
330
+    $input = wp_parse_args( $overwrite, $defaults );
331 331
 
332
-	return $input;
332
+    return $input;
333 333
 }
334 334
 
335 335
 /**
@@ -341,23 +341,23 @@  discard block
 block discarded – undo
341 341
  * @return array
342 342
  */
343 343
 function sd_get_background_input( $type = 'bg', $overwrite = array() ) {
344
-	$options = array(
345
-		           ''            => __( 'None', 'ayecode-connect' ),
346
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
347
-	           ) + sd_aui_colors(false,false,false,false,true);
344
+    $options = array(
345
+                    ''            => __( 'None', 'ayecode-connect' ),
346
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
347
+                ) + sd_aui_colors(false,false,false,false,true);
348 348
 
349
-	$defaults = array(
350
-		'type'     => 'select',
351
-		'title'    => __( 'Background color', 'ayecode-connect' ),
352
-		'options'  => $options,
353
-		'default'  => '',
354
-		'desc_tip' => true,
355
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
356
-	);
349
+    $defaults = array(
350
+        'type'     => 'select',
351
+        'title'    => __( 'Background color', 'ayecode-connect' ),
352
+        'options'  => $options,
353
+        'default'  => '',
354
+        'desc_tip' => true,
355
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
356
+    );
357 357
 
358
-	$input = wp_parse_args( $overwrite, $defaults );
358
+    $input = wp_parse_args( $overwrite, $defaults );
359 359
 
360
-	return $input;
360
+    return $input;
361 361
 }
362 362
 
363 363
 /**
@@ -369,35 +369,35 @@  discard block
 block discarded – undo
369 369
  * @return array
370 370
  */
371 371
 function sd_get_opacity_input( $type = 'opacity', $overwrite = array() ) {
372
-	$options = array(
373
-		''            => __( 'Default', 'ayecode-connect' ),
374
-		'opacity-10'  => '10%',
375
-		'opacity-15'  => '15%',
376
-		'opacity-25'  => '25%',
377
-		'opacity-35'  => '35%',
378
-		'opacity-40'  => '40%',
379
-		'opacity-50'  => '50%',
380
-		'opacity-60'  => '60%',
381
-		'opacity-65'  => '65%',
382
-		'opacity-70'  => '70%',
383
-		'opacity-75'  => '75%',
384
-		'opacity-80'  => '80%',
385
-		'opacity-90'  => '90%',
386
-		'opacity-100' => '100%',
387
-	);
388
-
389
-	$defaults = array(
390
-		'type'     => 'select',
391
-		'title'    => __( 'Opacity', 'ayecode-connect' ),
392
-		'options'  => $options,
393
-		'default'  => '',
394
-		'desc_tip' => true,
395
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
396
-	);
397
-
398
-	$input = wp_parse_args( $overwrite, $defaults );
399
-
400
-	return $input;
372
+    $options = array(
373
+        ''            => __( 'Default', 'ayecode-connect' ),
374
+        'opacity-10'  => '10%',
375
+        'opacity-15'  => '15%',
376
+        'opacity-25'  => '25%',
377
+        'opacity-35'  => '35%',
378
+        'opacity-40'  => '40%',
379
+        'opacity-50'  => '50%',
380
+        'opacity-60'  => '60%',
381
+        'opacity-65'  => '65%',
382
+        'opacity-70'  => '70%',
383
+        'opacity-75'  => '75%',
384
+        'opacity-80'  => '80%',
385
+        'opacity-90'  => '90%',
386
+        'opacity-100' => '100%',
387
+    );
388
+
389
+    $defaults = array(
390
+        'type'     => 'select',
391
+        'title'    => __( 'Opacity', 'ayecode-connect' ),
392
+        'options'  => $options,
393
+        'default'  => '',
394
+        'desc_tip' => true,
395
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
396
+    );
397
+
398
+    $input = wp_parse_args( $overwrite, $defaults );
399
+
400
+    return $input;
401 401
 }
402 402
 
403 403
 /**
@@ -410,124 +410,124 @@  discard block
 block discarded – undo
410 410
  */
411 411
 function sd_get_background_inputs( $type = 'bg', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array(), $include_button_colors = false ) {
412 412
 
413
-	$color_options = $include_button_colors ? sd_aui_colors( false, true, true, true, true ) : sd_aui_colors(false, false, false, false, true );
414
-
415
-	$options = array(
416
-		           ''            => __( 'None', 'ayecode-connect' ),
417
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
418
-	           ) + $color_options;
419
-
420
-	if ( false !== $overwrite_color ) {
421
-		$options['custom-color'] = __( 'Custom Color', 'ayecode-connect' );
422
-	}
423
-
424
-	if ( false !== $overwrite_gradient ) {
425
-		$options['custom-gradient'] = __( 'Custom Gradient', 'ayecode-connect' );
426
-	}
427
-
428
-	$defaults = array(
429
-		'type'     => 'select',
430
-		'title'    => __( 'Background Color', 'ayecode-connect' ),
431
-		'options'  => $options,
432
-		'default'  => '',
433
-		'desc_tip' => true,
434
-		'group'    => __( 'Background', 'ayecode-connect' ),
435
-	);
436
-
437
-	if ( $overwrite !== false ) {
438
-		$input[ $type ] = wp_parse_args( $overwrite, $defaults );
439
-	}
440
-
441
-	if ( $overwrite_color !== false ) {
442
-		$input[ $type . '_color' ] = wp_parse_args(
443
-			$overwrite_color,
444
-			array(
445
-				'type'            => 'color',
446
-				'title'           => __( 'Custom color', 'ayecode-connect' ),
447
-				'placeholder'     => '',
448
-				'default'         => '#0073aa',
449
-				'desc_tip'        => true,
450
-				'group'           => __( 'Background', 'ayecode-connect' ),
451
-				'element_require' => '[%' . $type . '%]=="custom-color"',
452
-			)
453
-		);
454
-	}
455
-
456
-	if ( $overwrite_gradient !== false ) {
457
-		$input[ $type . '_gradient' ] = wp_parse_args(
458
-			$overwrite_gradient,
459
-			array(
460
-				'type'            => 'gradient',
461
-				'title'           => __( 'Custom gradient', 'ayecode-connect' ),
462
-				'placeholder'     => '',
463
-				'default'         => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
464
-				'desc_tip'        => true,
465
-				'group'           => __( 'Background', 'ayecode-connect' ),
466
-				'element_require' => '[%' . $type . '%]=="custom-gradient"',
467
-			)
468
-		);
469
-	}
470
-
471
-	if ( $overwrite_image !== false ) {
472
-
473
-		$input[ $type . '_image_fixed' ] = array(
474
-			'type'            => 'checkbox',
475
-			'title'           => __( 'Fixed background', 'ayecode-connect' ),
476
-			'default'         => '',
477
-			'desc_tip'        => true,
478
-			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
479
-			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
480
-
481
-		);
482
-
483
-		$input[ $type . '_image_use_featured' ] = array(
484
-			'type'            => 'checkbox',
485
-			'title'           => __( 'Use featured image', 'ayecode-connect' ),
486
-			'default'         => '',
487
-			'desc_tip'        => true,
488
-			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
489
-			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
490
-
491
-		);
492
-
493
-		$input[ $type . '_image' ] = wp_parse_args(
494
-			$overwrite_image,
495
-			array(
496
-				'type'        => 'image',
497
-				'title'       => __( 'Custom image', 'ayecode-connect' ),
498
-				'placeholder' => '',
499
-				'default'     => '',
500
-				'desc_tip'    => true,
501
-				'group'       => __( 'Background', 'ayecode-connect' ),
502
-				//          'element_require' => ' ![%' . $type . '_image_use_featured%] '
503
-			)
504
-		);
505
-
506
-		$input[ $type . '_image_id' ] = wp_parse_args(
507
-			$overwrite_image,
508
-			array(
509
-				'type'        => 'hidden',
510
-				'hidden_type' => 'number',
511
-				'title'       => '',
512
-				'placeholder' => '',
513
-				'default'     => '',
514
-				'group'       => __( 'Background', 'ayecode-connect' ),
515
-			)
516
-		);
517
-
518
-		$input[ $type . '_image_xy' ] = wp_parse_args(
519
-			$overwrite_image,
520
-			array(
521
-				'type'        => 'image_xy',
522
-				'title'       => '',
523
-				'placeholder' => '',
524
-				'default'     => '',
525
-				'group'       => __( 'Background', 'ayecode-connect' ),
526
-			)
527
-		);
528
-	}
529
-
530
-	return $input;
413
+    $color_options = $include_button_colors ? sd_aui_colors( false, true, true, true, true ) : sd_aui_colors(false, false, false, false, true );
414
+
415
+    $options = array(
416
+                    ''            => __( 'None', 'ayecode-connect' ),
417
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
418
+                ) + $color_options;
419
+
420
+    if ( false !== $overwrite_color ) {
421
+        $options['custom-color'] = __( 'Custom Color', 'ayecode-connect' );
422
+    }
423
+
424
+    if ( false !== $overwrite_gradient ) {
425
+        $options['custom-gradient'] = __( 'Custom Gradient', 'ayecode-connect' );
426
+    }
427
+
428
+    $defaults = array(
429
+        'type'     => 'select',
430
+        'title'    => __( 'Background Color', 'ayecode-connect' ),
431
+        'options'  => $options,
432
+        'default'  => '',
433
+        'desc_tip' => true,
434
+        'group'    => __( 'Background', 'ayecode-connect' ),
435
+    );
436
+
437
+    if ( $overwrite !== false ) {
438
+        $input[ $type ] = wp_parse_args( $overwrite, $defaults );
439
+    }
440
+
441
+    if ( $overwrite_color !== false ) {
442
+        $input[ $type . '_color' ] = wp_parse_args(
443
+            $overwrite_color,
444
+            array(
445
+                'type'            => 'color',
446
+                'title'           => __( 'Custom color', 'ayecode-connect' ),
447
+                'placeholder'     => '',
448
+                'default'         => '#0073aa',
449
+                'desc_tip'        => true,
450
+                'group'           => __( 'Background', 'ayecode-connect' ),
451
+                'element_require' => '[%' . $type . '%]=="custom-color"',
452
+            )
453
+        );
454
+    }
455
+
456
+    if ( $overwrite_gradient !== false ) {
457
+        $input[ $type . '_gradient' ] = wp_parse_args(
458
+            $overwrite_gradient,
459
+            array(
460
+                'type'            => 'gradient',
461
+                'title'           => __( 'Custom gradient', 'ayecode-connect' ),
462
+                'placeholder'     => '',
463
+                'default'         => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
464
+                'desc_tip'        => true,
465
+                'group'           => __( 'Background', 'ayecode-connect' ),
466
+                'element_require' => '[%' . $type . '%]=="custom-gradient"',
467
+            )
468
+        );
469
+    }
470
+
471
+    if ( $overwrite_image !== false ) {
472
+
473
+        $input[ $type . '_image_fixed' ] = array(
474
+            'type'            => 'checkbox',
475
+            'title'           => __( 'Fixed background', 'ayecode-connect' ),
476
+            'default'         => '',
477
+            'desc_tip'        => true,
478
+            'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
479
+            'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
480
+
481
+        );
482
+
483
+        $input[ $type . '_image_use_featured' ] = array(
484
+            'type'            => 'checkbox',
485
+            'title'           => __( 'Use featured image', 'ayecode-connect' ),
486
+            'default'         => '',
487
+            'desc_tip'        => true,
488
+            'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
489
+            'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
490
+
491
+        );
492
+
493
+        $input[ $type . '_image' ] = wp_parse_args(
494
+            $overwrite_image,
495
+            array(
496
+                'type'        => 'image',
497
+                'title'       => __( 'Custom image', 'ayecode-connect' ),
498
+                'placeholder' => '',
499
+                'default'     => '',
500
+                'desc_tip'    => true,
501
+                'group'       => __( 'Background', 'ayecode-connect' ),
502
+                //          'element_require' => ' ![%' . $type . '_image_use_featured%] '
503
+            )
504
+        );
505
+
506
+        $input[ $type . '_image_id' ] = wp_parse_args(
507
+            $overwrite_image,
508
+            array(
509
+                'type'        => 'hidden',
510
+                'hidden_type' => 'number',
511
+                'title'       => '',
512
+                'placeholder' => '',
513
+                'default'     => '',
514
+                'group'       => __( 'Background', 'ayecode-connect' ),
515
+            )
516
+        );
517
+
518
+        $input[ $type . '_image_xy' ] = wp_parse_args(
519
+            $overwrite_image,
520
+            array(
521
+                'type'        => 'image_xy',
522
+                'title'       => '',
523
+                'placeholder' => '',
524
+                'default'     => '',
525
+                'group'       => __( 'Background', 'ayecode-connect' ),
526
+            )
527
+        );
528
+    }
529
+
530
+    return $input;
531 531
 }
532 532
 
533 533
 /**
@@ -540,175 +540,175 @@  discard block
 block discarded – undo
540 540
  */
541 541
 function sd_get_shape_divider_inputs( $type = 'sd', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array() ) {
542 542
 
543
-	$options = array(
544
-		''                      => __( 'None', 'ayecode-connect' ),
545
-		'mountains'             => __( 'Mountains', 'ayecode-connect' ),
546
-		'drops'                 => __( 'Drops', 'ayecode-connect' ),
547
-		'clouds'                => __( 'Clouds', 'ayecode-connect' ),
548
-		'zigzag'                => __( 'Zigzag', 'ayecode-connect' ),
549
-		'pyramids'              => __( 'Pyramids', 'ayecode-connect' ),
550
-		'triangle'              => __( 'Triangle', 'ayecode-connect' ),
551
-		'triangle-asymmetrical' => __( 'Triangle Asymmetrical', 'ayecode-connect' ),
552
-		'tilt'                  => __( 'Tilt', 'ayecode-connect' ),
553
-		'opacity-tilt'          => __( 'Opacity Tilt', 'ayecode-connect' ),
554
-		'opacity-fan'           => __( 'Opacity Fan', 'ayecode-connect' ),
555
-		'curve'                 => __( 'Curve', 'ayecode-connect' ),
556
-		'curve-asymmetrical'    => __( 'Curve Asymmetrical', 'ayecode-connect' ),
557
-		'waves'                 => __( 'Waves', 'ayecode-connect' ),
558
-		'wave-brush'            => __( 'Wave Brush', 'ayecode-connect' ),
559
-		'waves-pattern'         => __( 'Waves Pattern', 'ayecode-connect' ),
560
-		'arrow'                 => __( 'Arrow', 'ayecode-connect' ),
561
-		'split'                 => __( 'Split', 'ayecode-connect' ),
562
-		'book'                  => __( 'Book', 'ayecode-connect' ),
563
-	);
564
-
565
-	$defaults = array(
566
-		'type'     => 'select',
567
-		'title'    => __( 'Type', 'ayecode-connect' ),
568
-		'options'  => $options,
569
-		'default'  => '',
570
-		'desc_tip' => true,
571
-		'group'    => __( 'Shape Divider', 'ayecode-connect' ),
572
-	);
573
-
574
-	$input[ $type ] = wp_parse_args( $overwrite, $defaults );
575
-
576
-	$input[ $type . '_notice' ] = array(
577
-		'type'            => 'notice',
578
-		'desc'            => __( 'Parent element must be position `relative`', 'ayecode-connect' ),
579
-		'status'          => 'warning',
580
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
581
-		'element_require' => '[%' . $type . '%]!=""',
582
-	);
583
-
584
-	$input[ $type . '_position' ] = wp_parse_args(
585
-		$overwrite_color,
586
-		array(
587
-			'type'            => 'select',
588
-			'title'           => __( 'Position', 'ayecode-connect' ),
589
-			'options'         => array(
590
-				'top'    => __( 'Top', 'ayecode-connect' ),
591
-				'bottom' => __( 'Bottom', 'ayecode-connect' ),
592
-			),
593
-			'desc_tip'        => true,
594
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
595
-			'element_require' => '[%' . $type . '%]!=""',
596
-		)
597
-	);
598
-
599
-	$options = array(
600
-		           ''            => __( 'None', 'ayecode-connect' ),
601
-		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
602
-	           ) + sd_aui_colors(false,false,false,false,true )
603
-	           + array(
604
-		           'custom-color' => __( 'Custom Color', 'ayecode-connect' ),
605
-	           );
606
-
607
-	$input[ $type . '_color' ] = wp_parse_args(
608
-		$overwrite_color,
609
-		array(
610
-			'type'            => 'select',
611
-			'title'           => __( 'Color', 'ayecode-connect' ),
612
-			'options'         => $options,
613
-			'desc_tip'        => true,
614
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
615
-			'element_require' => '[%' . $type . '%]!=""',
616
-		)
617
-	);
618
-
619
-	$input[ $type . '_custom_color' ] = wp_parse_args(
620
-		$overwrite_color,
621
-		array(
622
-			'type'            => 'color',
623
-			'title'           => __( 'Custom color', 'ayecode-connect' ),
624
-			'placeholder'     => '',
625
-			'default'         => '#0073aa',
626
-			'desc_tip'        => true,
627
-			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
628
-			'element_require' => '[%' . $type . '_color%]=="custom-color" && [%' . $type . '%]!=""',
629
-		)
630
-	);
631
-
632
-	$input[ $type . '_width' ] = wp_parse_args(
633
-		$overwrite_gradient,
634
-		array(
635
-			'type'              => 'range',
636
-			'title'             => __( 'Width', 'ayecode-connect' ),
637
-			'placeholder'       => '',
638
-			'default'           => '200',
639
-			'desc_tip'          => true,
640
-			'custom_attributes' => array(
641
-				'min' => 100,
642
-				'max' => 300,
643
-			),
644
-			'group'             => __( 'Shape Divider', 'ayecode-connect' ),
645
-			'element_require'   => '[%' . $type . '%]!=""',
646
-		)
647
-	);
648
-
649
-	$input[ $type . '_height' ] = array(
650
-		'type'              => 'range',
651
-		'title'             => __( 'Height', 'ayecode-connect' ),
652
-		'default'           => '100',
653
-		'desc_tip'          => true,
654
-		'custom_attributes' => array(
655
-			'min' => 0,
656
-			'max' => 500,
657
-		),
658
-		'group'             => __( 'Shape Divider', 'ayecode-connect' ),
659
-		'element_require'   => '[%' . $type . '%]!=""',
660
-	);
661
-
662
-	$requires = array(
663
-		'mountains'             => array( 'flip' ),
664
-		'drops'                 => array( 'flip', 'invert' ),
665
-		'clouds'                => array( 'flip', 'invert' ),
666
-		'zigzag'                => array(),
667
-		'pyramids'              => array( 'flip', 'invert' ),
668
-		'triangle'              => array( 'invert' ),
669
-		'triangle-asymmetrical' => array( 'flip', 'invert' ),
670
-		'tilt'                  => array( 'flip' ),
671
-		'opacity-tilt'          => array( 'flip' ),
672
-		'opacity-fan'           => array(),
673
-		'curve'                 => array( 'invert' ),
674
-		'curve-asymmetrical'    => array( 'flip', 'invert' ),
675
-		'waves'                 => array( 'flip', 'invert' ),
676
-		'wave-brush'            => array( 'flip' ),
677
-		'waves-pattern'         => array( 'flip' ),
678
-		'arrow'                 => array( 'invert' ),
679
-		'split'                 => array( 'invert' ),
680
-		'book'                  => array( 'invert' ),
681
-	);
682
-
683
-	$input[ $type . '_flip' ] = array(
684
-		'type'            => 'checkbox',
685
-		'title'           => __( 'Flip', 'ayecode-connect' ),
686
-		'default'         => '',
687
-		'desc_tip'        => true,
688
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
689
-		'element_require' => sd_get_element_require_string( $requires, 'flip', 'sd' ),
690
-	);
691
-
692
-	$input[ $type . '_invert' ] = array(
693
-		'type'            => 'checkbox',
694
-		'title'           => __( 'Invert', 'ayecode-connect' ),
695
-		'default'         => '',
696
-		'desc_tip'        => true,
697
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
698
-		'element_require' => sd_get_element_require_string( $requires, 'invert', 'sd' ),
699
-	);
700
-
701
-	$input[ $type . '_btf' ] = array(
702
-		'type'            => 'checkbox',
703
-		'title'           => __( 'Bring to front', 'ayecode-connect' ),
704
-		'default'         => '',
705
-		'desc_tip'        => true,
706
-		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
707
-		'element_require' => '[%' . $type . '%]!=""',
708
-
709
-	);
710
-
711
-	return $input;
543
+    $options = array(
544
+        ''                      => __( 'None', 'ayecode-connect' ),
545
+        'mountains'             => __( 'Mountains', 'ayecode-connect' ),
546
+        'drops'                 => __( 'Drops', 'ayecode-connect' ),
547
+        'clouds'                => __( 'Clouds', 'ayecode-connect' ),
548
+        'zigzag'                => __( 'Zigzag', 'ayecode-connect' ),
549
+        'pyramids'              => __( 'Pyramids', 'ayecode-connect' ),
550
+        'triangle'              => __( 'Triangle', 'ayecode-connect' ),
551
+        'triangle-asymmetrical' => __( 'Triangle Asymmetrical', 'ayecode-connect' ),
552
+        'tilt'                  => __( 'Tilt', 'ayecode-connect' ),
553
+        'opacity-tilt'          => __( 'Opacity Tilt', 'ayecode-connect' ),
554
+        'opacity-fan'           => __( 'Opacity Fan', 'ayecode-connect' ),
555
+        'curve'                 => __( 'Curve', 'ayecode-connect' ),
556
+        'curve-asymmetrical'    => __( 'Curve Asymmetrical', 'ayecode-connect' ),
557
+        'waves'                 => __( 'Waves', 'ayecode-connect' ),
558
+        'wave-brush'            => __( 'Wave Brush', 'ayecode-connect' ),
559
+        'waves-pattern'         => __( 'Waves Pattern', 'ayecode-connect' ),
560
+        'arrow'                 => __( 'Arrow', 'ayecode-connect' ),
561
+        'split'                 => __( 'Split', 'ayecode-connect' ),
562
+        'book'                  => __( 'Book', 'ayecode-connect' ),
563
+    );
564
+
565
+    $defaults = array(
566
+        'type'     => 'select',
567
+        'title'    => __( 'Type', 'ayecode-connect' ),
568
+        'options'  => $options,
569
+        'default'  => '',
570
+        'desc_tip' => true,
571
+        'group'    => __( 'Shape Divider', 'ayecode-connect' ),
572
+    );
573
+
574
+    $input[ $type ] = wp_parse_args( $overwrite, $defaults );
575
+
576
+    $input[ $type . '_notice' ] = array(
577
+        'type'            => 'notice',
578
+        'desc'            => __( 'Parent element must be position `relative`', 'ayecode-connect' ),
579
+        'status'          => 'warning',
580
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
581
+        'element_require' => '[%' . $type . '%]!=""',
582
+    );
583
+
584
+    $input[ $type . '_position' ] = wp_parse_args(
585
+        $overwrite_color,
586
+        array(
587
+            'type'            => 'select',
588
+            'title'           => __( 'Position', 'ayecode-connect' ),
589
+            'options'         => array(
590
+                'top'    => __( 'Top', 'ayecode-connect' ),
591
+                'bottom' => __( 'Bottom', 'ayecode-connect' ),
592
+            ),
593
+            'desc_tip'        => true,
594
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
595
+            'element_require' => '[%' . $type . '%]!=""',
596
+        )
597
+    );
598
+
599
+    $options = array(
600
+                    ''            => __( 'None', 'ayecode-connect' ),
601
+                    'transparent' => __( 'Transparent', 'ayecode-connect' ),
602
+                ) + sd_aui_colors(false,false,false,false,true )
603
+               + array(
604
+                    'custom-color' => __( 'Custom Color', 'ayecode-connect' ),
605
+                );
606
+
607
+    $input[ $type . '_color' ] = wp_parse_args(
608
+        $overwrite_color,
609
+        array(
610
+            'type'            => 'select',
611
+            'title'           => __( 'Color', 'ayecode-connect' ),
612
+            'options'         => $options,
613
+            'desc_tip'        => true,
614
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
615
+            'element_require' => '[%' . $type . '%]!=""',
616
+        )
617
+    );
618
+
619
+    $input[ $type . '_custom_color' ] = wp_parse_args(
620
+        $overwrite_color,
621
+        array(
622
+            'type'            => 'color',
623
+            'title'           => __( 'Custom color', 'ayecode-connect' ),
624
+            'placeholder'     => '',
625
+            'default'         => '#0073aa',
626
+            'desc_tip'        => true,
627
+            'group'           => __( 'Shape Divider', 'ayecode-connect' ),
628
+            'element_require' => '[%' . $type . '_color%]=="custom-color" && [%' . $type . '%]!=""',
629
+        )
630
+    );
631
+
632
+    $input[ $type . '_width' ] = wp_parse_args(
633
+        $overwrite_gradient,
634
+        array(
635
+            'type'              => 'range',
636
+            'title'             => __( 'Width', 'ayecode-connect' ),
637
+            'placeholder'       => '',
638
+            'default'           => '200',
639
+            'desc_tip'          => true,
640
+            'custom_attributes' => array(
641
+                'min' => 100,
642
+                'max' => 300,
643
+            ),
644
+            'group'             => __( 'Shape Divider', 'ayecode-connect' ),
645
+            'element_require'   => '[%' . $type . '%]!=""',
646
+        )
647
+    );
648
+
649
+    $input[ $type . '_height' ] = array(
650
+        'type'              => 'range',
651
+        'title'             => __( 'Height', 'ayecode-connect' ),
652
+        'default'           => '100',
653
+        'desc_tip'          => true,
654
+        'custom_attributes' => array(
655
+            'min' => 0,
656
+            'max' => 500,
657
+        ),
658
+        'group'             => __( 'Shape Divider', 'ayecode-connect' ),
659
+        'element_require'   => '[%' . $type . '%]!=""',
660
+    );
661
+
662
+    $requires = array(
663
+        'mountains'             => array( 'flip' ),
664
+        'drops'                 => array( 'flip', 'invert' ),
665
+        'clouds'                => array( 'flip', 'invert' ),
666
+        'zigzag'                => array(),
667
+        'pyramids'              => array( 'flip', 'invert' ),
668
+        'triangle'              => array( 'invert' ),
669
+        'triangle-asymmetrical' => array( 'flip', 'invert' ),
670
+        'tilt'                  => array( 'flip' ),
671
+        'opacity-tilt'          => array( 'flip' ),
672
+        'opacity-fan'           => array(),
673
+        'curve'                 => array( 'invert' ),
674
+        'curve-asymmetrical'    => array( 'flip', 'invert' ),
675
+        'waves'                 => array( 'flip', 'invert' ),
676
+        'wave-brush'            => array( 'flip' ),
677
+        'waves-pattern'         => array( 'flip' ),
678
+        'arrow'                 => array( 'invert' ),
679
+        'split'                 => array( 'invert' ),
680
+        'book'                  => array( 'invert' ),
681
+    );
682
+
683
+    $input[ $type . '_flip' ] = array(
684
+        'type'            => 'checkbox',
685
+        'title'           => __( 'Flip', 'ayecode-connect' ),
686
+        'default'         => '',
687
+        'desc_tip'        => true,
688
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
689
+        'element_require' => sd_get_element_require_string( $requires, 'flip', 'sd' ),
690
+    );
691
+
692
+    $input[ $type . '_invert' ] = array(
693
+        'type'            => 'checkbox',
694
+        'title'           => __( 'Invert', 'ayecode-connect' ),
695
+        'default'         => '',
696
+        'desc_tip'        => true,
697
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
698
+        'element_require' => sd_get_element_require_string( $requires, 'invert', 'sd' ),
699
+    );
700
+
701
+    $input[ $type . '_btf' ] = array(
702
+        'type'            => 'checkbox',
703
+        'title'           => __( 'Bring to front', 'ayecode-connect' ),
704
+        'default'         => '',
705
+        'desc_tip'        => true,
706
+        'group'           => __( 'Shape Divider', 'ayecode-connect' ),
707
+        'element_require' => '[%' . $type . '%]!=""',
708
+
709
+    );
710
+
711
+    return $input;
712 712
 }
713 713
 
714 714
 /**
@@ -721,22 +721,22 @@  discard block
 block discarded – undo
721 721
  * @return string
722 722
  */
723 723
 function sd_get_element_require_string( $args, $key, $type ) {
724
-	$output   = '';
725
-	$requires = array();
724
+    $output   = '';
725
+    $requires = array();
726 726
 
727
-	if ( ! empty( $args ) ) {
728
-		foreach ( $args as $t => $k ) {
729
-			if ( in_array( $key, $k ) ) {
730
-				$requires[] = '[%' . $type . '%]=="' . $t . '"';
731
-			}
732
-		}
727
+    if ( ! empty( $args ) ) {
728
+        foreach ( $args as $t => $k ) {
729
+            if ( in_array( $key, $k ) ) {
730
+                $requires[] = '[%' . $type . '%]=="' . $t . '"';
731
+            }
732
+        }
733 733
 
734
-		if ( ! empty( $requires ) ) {
735
-			$output = '(' . implode( ' || ', $requires ) . ')';
736
-		}
737
-	}
734
+        if ( ! empty( $requires ) ) {
735
+            $output = '(' . implode( ' || ', $requires ) . ')';
736
+        }
737
+    }
738 738
 
739
-	return $output;
739
+    return $output;
740 740
 }
741 741
 
742 742
 /**
@@ -748,41 +748,41 @@  discard block
 block discarded – undo
748 748
  * @return array
749 749
  */
750 750
 function sd_get_text_color_input( $type = 'text_color', $overwrite = array(), $has_custom = false, $emphasis = true ) {
751
-	$options = array(
752
-		           '' => __( 'None', 'ayecode-connect' ),
753
-	           ) + sd_aui_colors(false,false,false,false,false, true);
751
+    $options = array(
752
+                    '' => __( 'None', 'ayecode-connect' ),
753
+                ) + sd_aui_colors(false,false,false,false,false, true);
754 754
 
755
-	if ( $has_custom ) {
756
-		$options['custom'] = __( 'Custom color', 'ayecode-connect' );
757
-	}
755
+    if ( $has_custom ) {
756
+        $options['custom'] = __( 'Custom color', 'ayecode-connect' );
757
+    }
758 758
 
759
-	$defaults = array(
760
-		'type'     => 'select',
761
-		'title'    => __( 'Text color', 'ayecode-connect' ),
762
-		'options'  => $options,
763
-		'default'  => '',
764
-		'desc_tip' => true,
765
-		'group'    => __( 'Typography', 'ayecode-connect' ),
766
-	);
759
+    $defaults = array(
760
+        'type'     => 'select',
761
+        'title'    => __( 'Text color', 'ayecode-connect' ),
762
+        'options'  => $options,
763
+        'default'  => '',
764
+        'desc_tip' => true,
765
+        'group'    => __( 'Typography', 'ayecode-connect' ),
766
+    );
767 767
 
768
-	$input = wp_parse_args( $overwrite, $defaults );
768
+    $input = wp_parse_args( $overwrite, $defaults );
769 769
 
770
-	return $input;
770
+    return $input;
771 771
 }
772 772
 
773 773
 function sd_get_text_color_input_group( $type = 'text_color', $overwrite = array(), $overwrite_custom = array() ) {
774
-	$inputs = array();
774
+    $inputs = array();
775 775
 
776
-	if ( $overwrite !== false ) {
777
-		$inputs[ $type ] = sd_get_text_color_input( $type, $overwrite, true );
778
-	}
776
+    if ( $overwrite !== false ) {
777
+        $inputs[ $type ] = sd_get_text_color_input( $type, $overwrite, true );
778
+    }
779 779
 
780
-	if ( $overwrite_custom !== false ) {
781
-		$custom            = $type . '_custom';
782
-		$inputs[ $custom ] = sd_get_custom_color_input( $custom, $overwrite_custom, $type );
783
-	}
780
+    if ( $overwrite_custom !== false ) {
781
+        $custom            = $type . '_custom';
782
+        $inputs[ $custom ] = sd_get_custom_color_input( $custom, $overwrite_custom, $type );
783
+    }
784 784
 
785
-	return $inputs;
785
+    return $inputs;
786 786
 }
787 787
 
788 788
 /**
@@ -795,22 +795,22 @@  discard block
 block discarded – undo
795 795
  */
796 796
 function sd_get_custom_color_input( $type = 'color_custom', $overwrite = array(), $parent_type = '' ) {
797 797
 
798
-	$defaults = array(
799
-		'type'        => 'color',
800
-		'title'       => __( 'Custom color', 'ayecode-connect' ),
801
-		'default'     => '',
802
-		'placeholder' => '',
803
-		'desc_tip'    => true,
804
-		'group'       => __( 'Typography', 'ayecode-connect' ),
805
-	);
798
+    $defaults = array(
799
+        'type'        => 'color',
800
+        'title'       => __( 'Custom color', 'ayecode-connect' ),
801
+        'default'     => '',
802
+        'placeholder' => '',
803
+        'desc_tip'    => true,
804
+        'group'       => __( 'Typography', 'ayecode-connect' ),
805
+    );
806 806
 
807
-	if ( $parent_type ) {
808
-		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
809
-	}
807
+    if ( $parent_type ) {
808
+        $defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
809
+    }
810 810
 
811
-	$input = wp_parse_args( $overwrite, $defaults );
811
+    $input = wp_parse_args( $overwrite, $defaults );
812 812
 
813
-	return $input;
813
+    return $input;
814 814
 }
815 815
 
816 816
 /**
@@ -823,44 +823,44 @@  discard block
 block discarded – undo
823 823
  */
824 824
 function sd_get_col_input( $type = 'col', $overwrite = array() ) {
825 825
 
826
-	$device_size = '';
827
-	if ( ! empty( $overwrite['device_type'] ) ) {
828
-		if ( $overwrite['device_type'] == 'Tablet' ) {
829
-			$device_size = '-md';
830
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
831
-			$device_size = '-lg';
832
-		}
833
-	}
834
-	$options = array(
835
-		''     => __( 'Default', 'ayecode-connect' ),
836
-		'auto' => __( 'auto', 'ayecode-connect' ),
837
-		'1'    => '1/12',
838
-		'2'    => '2/12',
839
-		'3'    => '3/12',
840
-		'4'    => '4/12',
841
-		'5'    => '5/12',
842
-		'6'    => '6/12',
843
-		'7'    => '7/12',
844
-		'8'    => '8/12',
845
-		'9'    => '9/12',
846
-		'10'   => '10/12',
847
-		'11'   => '11/12',
848
-		'12'   => '12/12',
849
-	);
850
-
851
-	$defaults = array(
852
-		'type'            => 'select',
853
-		'title'           => __( 'Column width', 'ayecode-connect' ),
854
-		'options'         => $options,
855
-		'default'         => '',
856
-		'desc_tip'        => true,
857
-		'group'           => __( 'Container', 'ayecode-connect' ),
858
-		'element_require' => '[%container%]=="col"',
859
-	);
860
-
861
-	$input = wp_parse_args( $overwrite, $defaults );
862
-
863
-	return $input;
826
+    $device_size = '';
827
+    if ( ! empty( $overwrite['device_type'] ) ) {
828
+        if ( $overwrite['device_type'] == 'Tablet' ) {
829
+            $device_size = '-md';
830
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
831
+            $device_size = '-lg';
832
+        }
833
+    }
834
+    $options = array(
835
+        ''     => __( 'Default', 'ayecode-connect' ),
836
+        'auto' => __( 'auto', 'ayecode-connect' ),
837
+        '1'    => '1/12',
838
+        '2'    => '2/12',
839
+        '3'    => '3/12',
840
+        '4'    => '4/12',
841
+        '5'    => '5/12',
842
+        '6'    => '6/12',
843
+        '7'    => '7/12',
844
+        '8'    => '8/12',
845
+        '9'    => '9/12',
846
+        '10'   => '10/12',
847
+        '11'   => '11/12',
848
+        '12'   => '12/12',
849
+    );
850
+
851
+    $defaults = array(
852
+        'type'            => 'select',
853
+        'title'           => __( 'Column width', 'ayecode-connect' ),
854
+        'options'         => $options,
855
+        'default'         => '',
856
+        'desc_tip'        => true,
857
+        'group'           => __( 'Container', 'ayecode-connect' ),
858
+        'element_require' => '[%container%]=="col"',
859
+    );
860
+
861
+    $input = wp_parse_args( $overwrite, $defaults );
862
+
863
+    return $input;
864 864
 }
865 865
 
866 866
 /**
@@ -873,37 +873,37 @@  discard block
 block discarded – undo
873 873
  */
874 874
 function sd_get_row_cols_input( $type = 'row_cols', $overwrite = array() ) {
875 875
 
876
-	$device_size = '';
877
-	if ( ! empty( $overwrite['device_type'] ) ) {
878
-		if ( $overwrite['device_type'] == 'Tablet' ) {
879
-			$device_size = '-md';
880
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
881
-			$device_size = '-lg';
882
-		}
883
-	}
884
-	$options = array(
885
-		''  => __( 'auto', 'ayecode-connect' ),
886
-		'1' => '1',
887
-		'2' => '2',
888
-		'3' => '3',
889
-		'4' => '4',
890
-		'5' => '5',
891
-		'6' => '6',
892
-	);
893
-
894
-	$defaults = array(
895
-		'type'            => 'select',
896
-		'title'           => __( 'Row columns', 'ayecode-connect' ),
897
-		'options'         => $options,
898
-		'default'         => '',
899
-		'desc_tip'        => true,
900
-		'group'           => __( 'Container', 'ayecode-connect' ),
901
-		'element_require' => '[%container%]=="row"',
902
-	);
903
-
904
-	$input = wp_parse_args( $overwrite, $defaults );
905
-
906
-	return $input;
876
+    $device_size = '';
877
+    if ( ! empty( $overwrite['device_type'] ) ) {
878
+        if ( $overwrite['device_type'] == 'Tablet' ) {
879
+            $device_size = '-md';
880
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
881
+            $device_size = '-lg';
882
+        }
883
+    }
884
+    $options = array(
885
+        ''  => __( 'auto', 'ayecode-connect' ),
886
+        '1' => '1',
887
+        '2' => '2',
888
+        '3' => '3',
889
+        '4' => '4',
890
+        '5' => '5',
891
+        '6' => '6',
892
+    );
893
+
894
+    $defaults = array(
895
+        'type'            => 'select',
896
+        'title'           => __( 'Row columns', 'ayecode-connect' ),
897
+        'options'         => $options,
898
+        'default'         => '',
899
+        'desc_tip'        => true,
900
+        'group'           => __( 'Container', 'ayecode-connect' ),
901
+        'element_require' => '[%container%]=="row"',
902
+    );
903
+
904
+    $input = wp_parse_args( $overwrite, $defaults );
905
+
906
+    return $input;
907 907
 }
908 908
 
909 909
 /**
@@ -916,33 +916,33 @@  discard block
 block discarded – undo
916 916
  */
917 917
 function sd_get_text_align_input( $type = 'text_align', $overwrite = array() ) {
918 918
 
919
-	$device_size = '';
920
-	if ( ! empty( $overwrite['device_type'] ) ) {
921
-		if ( $overwrite['device_type'] == 'Tablet' ) {
922
-			$device_size = '-md';
923
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
924
-			$device_size = '-lg';
925
-		}
926
-	}
927
-	$options = array(
928
-		''                                => __( 'Default', 'ayecode-connect' ),
929
-		'text' . $device_size . '-left'   => __( 'Left', 'ayecode-connect' ),
930
-		'text' . $device_size . '-right'  => __( 'Right', 'ayecode-connect' ),
931
-		'text' . $device_size . '-center' => __( 'Center', 'ayecode-connect' ),
932
-	);
919
+    $device_size = '';
920
+    if ( ! empty( $overwrite['device_type'] ) ) {
921
+        if ( $overwrite['device_type'] == 'Tablet' ) {
922
+            $device_size = '-md';
923
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
924
+            $device_size = '-lg';
925
+        }
926
+    }
927
+    $options = array(
928
+        ''                                => __( 'Default', 'ayecode-connect' ),
929
+        'text' . $device_size . '-left'   => __( 'Left', 'ayecode-connect' ),
930
+        'text' . $device_size . '-right'  => __( 'Right', 'ayecode-connect' ),
931
+        'text' . $device_size . '-center' => __( 'Center', 'ayecode-connect' ),
932
+    );
933 933
 
934
-	$defaults = array(
935
-		'type'     => 'select',
936
-		'title'    => __( 'Text align', 'ayecode-connect' ),
937
-		'options'  => $options,
938
-		'default'  => '',
939
-		'desc_tip' => true,
940
-		'group'    => __( 'Typography', 'ayecode-connect' ),
941
-	);
934
+    $defaults = array(
935
+        'type'     => 'select',
936
+        'title'    => __( 'Text align', 'ayecode-connect' ),
937
+        'options'  => $options,
938
+        'default'  => '',
939
+        'desc_tip' => true,
940
+        'group'    => __( 'Typography', 'ayecode-connect' ),
941
+    );
942 942
 
943
-	$input = wp_parse_args( $overwrite, $defaults );
943
+    $input = wp_parse_args( $overwrite, $defaults );
944 944
 
945
-	return $input;
945
+    return $input;
946 946
 }
947 947
 
948 948
 /**
@@ -955,39 +955,39 @@  discard block
 block discarded – undo
955 955
  */
956 956
 function sd_get_display_input( $type = 'display', $overwrite = array() ) {
957 957
 
958
-	$device_size = '';
959
-	if ( ! empty( $overwrite['device_type'] ) ) {
960
-		if ( $overwrite['device_type'] == 'Tablet' ) {
961
-			$device_size = '-md';
962
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
963
-			$device_size = '-lg';
964
-		}
965
-	}
966
-	$options = array(
967
-		''                                   => __( 'Default', 'ayecode-connect' ),
968
-		'd' . $device_size . '-none'         => 'none',
969
-		'd' . $device_size . '-inline'       => 'inline',
970
-		'd' . $device_size . '-inline-block' => 'inline-block',
971
-		'd' . $device_size . '-block'        => 'block',
972
-		'd' . $device_size . '-table'        => 'table',
973
-		'd' . $device_size . '-table-cell'   => 'table-cell',
974
-		'd' . $device_size . '-table-row'    => 'table-row',
975
-		'd' . $device_size . '-flex'         => 'flex',
976
-		'd' . $device_size . '-inline-flex'  => 'inline-flex',
977
-	);
978
-
979
-	$defaults = array(
980
-		'type'     => 'select',
981
-		'title'    => __( 'Display', 'ayecode-connect' ),
982
-		'options'  => $options,
983
-		'default'  => '',
984
-		'desc_tip' => true,
985
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
986
-	);
987
-
988
-	$input = wp_parse_args( $overwrite, $defaults );
989
-
990
-	return $input;
958
+    $device_size = '';
959
+    if ( ! empty( $overwrite['device_type'] ) ) {
960
+        if ( $overwrite['device_type'] == 'Tablet' ) {
961
+            $device_size = '-md';
962
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
963
+            $device_size = '-lg';
964
+        }
965
+    }
966
+    $options = array(
967
+        ''                                   => __( 'Default', 'ayecode-connect' ),
968
+        'd' . $device_size . '-none'         => 'none',
969
+        'd' . $device_size . '-inline'       => 'inline',
970
+        'd' . $device_size . '-inline-block' => 'inline-block',
971
+        'd' . $device_size . '-block'        => 'block',
972
+        'd' . $device_size . '-table'        => 'table',
973
+        'd' . $device_size . '-table-cell'   => 'table-cell',
974
+        'd' . $device_size . '-table-row'    => 'table-row',
975
+        'd' . $device_size . '-flex'         => 'flex',
976
+        'd' . $device_size . '-inline-flex'  => 'inline-flex',
977
+    );
978
+
979
+    $defaults = array(
980
+        'type'     => 'select',
981
+        'title'    => __( 'Display', 'ayecode-connect' ),
982
+        'options'  => $options,
983
+        'default'  => '',
984
+        'desc_tip' => true,
985
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
986
+    );
987
+
988
+    $input = wp_parse_args( $overwrite, $defaults );
989
+
990
+    return $input;
991 991
 }
992 992
 
993 993
 /**
@@ -1000,17 +1000,17 @@  discard block
 block discarded – undo
1000 1000
  */
1001 1001
 function sd_get_text_justify_input( $type = 'text_justify', $overwrite = array() ) {
1002 1002
 
1003
-	$defaults = array(
1004
-		'type'     => 'checkbox',
1005
-		'title'    => __( 'Text justify', 'ayecode-connect' ),
1006
-		'default'  => '',
1007
-		'desc_tip' => true,
1008
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1009
-	);
1003
+    $defaults = array(
1004
+        'type'     => 'checkbox',
1005
+        'title'    => __( 'Text justify', 'ayecode-connect' ),
1006
+        'default'  => '',
1007
+        'desc_tip' => true,
1008
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1009
+    );
1010 1010
 
1011
-	$input = wp_parse_args( $overwrite, $defaults );
1011
+    $input = wp_parse_args( $overwrite, $defaults );
1012 1012
 
1013
-	return $input;
1013
+    return $input;
1014 1014
 }
1015 1015
 
1016 1016
 /**
@@ -1023,114 +1023,114 @@  discard block
 block discarded – undo
1023 1023
  * @return array
1024 1024
  */
1025 1025
 function sd_aui_colors( $include_branding = false, $include_outlines = false, $outline_button_only_text = false, $include_translucent = false, $include_subtle = false, $include_emphasis = false ) {
1026
-	$theme_colors = array();
1027
-
1028
-	$theme_colors['primary']   = __( 'Primary', 'ayecode-connect' );
1029
-	$theme_colors['secondary'] = __( 'Secondary', 'ayecode-connect' );
1030
-	$theme_colors['success']   = __( 'Success', 'ayecode-connect' );
1031
-	$theme_colors['danger']    = __( 'Danger', 'ayecode-connect' );
1032
-	$theme_colors['warning']   = __( 'Warning', 'ayecode-connect' );
1033
-	$theme_colors['info']      = __( 'Info', 'ayecode-connect' );
1034
-	$theme_colors['light']     = __( 'Light', 'ayecode-connect' );
1035
-	$theme_colors['dark']      = __( 'Dark', 'ayecode-connect' );
1036
-	$theme_colors['black']     = __( 'Black', 'ayecode-connect' );
1037
-	$theme_colors['white']     = __( 'White', 'ayecode-connect' );
1038
-	$theme_colors['purple']    = __( 'Purple', 'ayecode-connect' );
1039
-	$theme_colors['salmon']    = __( 'Salmon', 'ayecode-connect' );
1040
-	$theme_colors['cyan']      = __( 'Cyan', 'ayecode-connect' );
1041
-	$theme_colors['gray']      = __( 'Gray', 'ayecode-connect' );
1042
-	$theme_colors['muted']     = __( 'Muted', 'ayecode-connect' );
1043
-	$theme_colors['gray-dark'] = __( 'Gray dark', 'ayecode-connect' );
1044
-	$theme_colors['indigo']    = __( 'Indigo', 'ayecode-connect' );
1045
-	$theme_colors['orange']    = __( 'Orange', 'ayecode-connect' );
1046
-	$theme_colors['body']      = __( 'Body', 'ayecode-connect' );
1047
-
1048
-
1049
-	// for bg and borders
1050
-	if ( $include_subtle ) {
1051
-		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1052
-		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1053
-		$theme_colors['secondary-subtle'] = __( 'Secondary Subtle', 'ayecode-connect' );
1054
-		$theme_colors['success-subtle']   = __( 'Success Subtle', 'ayecode-connect' );
1055
-		$theme_colors['danger-subtle']    = __( 'Danger Subtle', 'ayecode-connect' );
1056
-		$theme_colors['warning-subtle']   = __( 'Warning Subtle', 'ayecode-connect' );
1057
-		$theme_colors['info-subtle']      = __( 'Info Subtle', 'ayecode-connect' );
1058
-		$theme_colors['light-subtle']     = __( 'Light Subtle', 'ayecode-connect' );
1059
-		$theme_colors['dark-subtle']      = __( 'Dark Subtle', 'ayecode-connect' );
1060
-		$theme_colors['purple-subtle']    = __( 'Purple Subtle', 'ayecode-connect' );
1061
-		$theme_colors['salmon-subtle']    = __( 'Salmon Subtle', 'ayecode-connect' );
1062
-		$theme_colors['cyan-subtle']      = __( 'Cyan Subtle', 'ayecode-connect' );
1063
-		$theme_colors['gray-subtle']      = __( 'Gray Subtle', 'ayecode-connect' );
1064
-		$theme_colors['gray-dark-subtle'] = __( 'Gray dark Subtle', 'ayecode-connect' );
1065
-		$theme_colors['indigo-subtle']    = __( 'Indigo Subtle', 'ayecode-connect' );
1066
-		$theme_colors['orange-subtle']    = __( 'Orange Subtle', 'ayecode-connect' );
1067
-	}
1068
-
1069
-	// for texts
1070
-	if ($include_emphasis) {
1071
-		$theme_colors['primary-emphasis']   = __( 'Primary Emphasis', 'ayecode-connect' );
1072
-		$theme_colors['secondary-emphasis'] = __( 'Secondary Emphasis', 'ayecode-connect' );
1073
-		$theme_colors['success-emphasis']   = __( 'Success Emphasis', 'ayecode-connect' );
1074
-		$theme_colors['danger-emphasis']    = __( 'Danger Emphasis', 'ayecode-connect' );
1075
-		$theme_colors['warning-emphasis']   = __( 'Warning Emphasis', 'ayecode-connect' );
1076
-		$theme_colors['info-emphasis']      = __( 'Info Emphasis', 'ayecode-connect' );
1077
-		$theme_colors['light-emphasis']     = __( 'Light Emphasis', 'ayecode-connect' );
1078
-		$theme_colors['dark-emphasis']      = __( 'Dark Emphasis', 'ayecode-connect' );
1079
-		$theme_colors['purple-emphasis']    = __( 'Purple Emphasis', 'ayecode-connect' );
1080
-		$theme_colors['salmon-emphasis']    = __( 'Salmon Emphasis', 'ayecode-connect' );
1081
-		$theme_colors['cyan-emphasis']      = __( 'Cyan Emphasis', 'ayecode-connect' );
1082
-		$theme_colors['gray-emphasis']      = __( 'Gray Emphasis', 'ayecode-connect' );
1083
-		$theme_colors['muted-emphasis']     = __( 'Muted Emphasis', 'ayecode-connect' );
1084
-		$theme_colors['gray-dark-emphasis'] = __( 'Gray dark Emphasis', 'ayecode-connect' );
1085
-		$theme_colors['indigo-emphasis']    = __( 'Indigo Emphasis', 'ayecode-connect' );
1086
-		$theme_colors['orange-emphasis']    = __( 'Orange Emphasis', 'ayecode-connect' );
1087
-	}
1088
-
1089
-	if ( $include_outlines ) {
1090
-		$button_only                       = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1091
-		$theme_colors['outline-primary']   = __( 'Primary outline', 'ayecode-connect' ) . $button_only;
1092
-		$theme_colors['outline-secondary'] = __( 'Secondary outline', 'ayecode-connect' ) . $button_only;
1093
-		$theme_colors['outline-success']   = __( 'Success outline', 'ayecode-connect' ) . $button_only;
1094
-		$theme_colors['outline-danger']    = __( 'Danger outline', 'ayecode-connect' ) . $button_only;
1095
-		$theme_colors['outline-warning']   = __( 'Warning outline', 'ayecode-connect' ) . $button_only;
1096
-		$theme_colors['outline-info']      = __( 'Info outline', 'ayecode-connect' ) . $button_only;
1097
-		$theme_colors['outline-light']     = __( 'Light outline', 'ayecode-connect' ) . $button_only;
1098
-		$theme_colors['outline-dark']      = __( 'Dark outline', 'ayecode-connect' ) . $button_only;
1099
-		$theme_colors['outline-white']     = __( 'White outline', 'ayecode-connect' ) . $button_only;
1100
-		$theme_colors['outline-purple']    = __( 'Purple outline', 'ayecode-connect' ) . $button_only;
1101
-		$theme_colors['outline-salmon']    = __( 'Salmon outline', 'ayecode-connect' ) . $button_only;
1102
-		$theme_colors['outline-cyan']      = __( 'Cyan outline', 'ayecode-connect' ) . $button_only;
1103
-		$theme_colors['outline-gray']      = __( 'Gray outline', 'ayecode-connect' ) . $button_only;
1104
-		$theme_colors['outline-gray-dark'] = __( 'Gray dark outline', 'ayecode-connect' ) . $button_only;
1105
-		$theme_colors['outline-indigo']    = __( 'Indigo outline', 'ayecode-connect' ) . $button_only;
1106
-		$theme_colors['outline-orange']    = __( 'Orange outline', 'ayecode-connect' ) . $button_only;
1107
-	}
1108
-
1109
-	if ( $include_branding ) {
1110
-		$theme_colors = $theme_colors + sd_aui_branding_colors();
1111
-	}
1112
-
1113
-	if ( $include_translucent ) {
1114
-		$button_only                           = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1115
-		$theme_colors['translucent-primary']   = __( 'Primary translucent', 'ayecode-connect' ) . $button_only;
1116
-		$theme_colors['translucent-secondary'] = __( 'Secondary translucent', 'ayecode-connect' ) . $button_only;
1117
-		$theme_colors['translucent-success']   = __( 'Success translucent', 'ayecode-connect' ) . $button_only;
1118
-		$theme_colors['translucent-danger']    = __( 'Danger translucent', 'ayecode-connect' ) . $button_only;
1119
-		$theme_colors['translucent-warning']   = __( 'Warning translucent', 'ayecode-connect' ) . $button_only;
1120
-		$theme_colors['translucent-info']      = __( 'Info translucent', 'ayecode-connect' ) . $button_only;
1121
-		$theme_colors['translucent-light']     = __( 'Light translucent', 'ayecode-connect' ) . $button_only;
1122
-		$theme_colors['translucent-dark']      = __( 'Dark translucent', 'ayecode-connect' ) . $button_only;
1123
-		$theme_colors['translucent-white']     = __( 'White translucent', 'ayecode-connect' ) . $button_only;
1124
-		$theme_colors['translucent-purple']    = __( 'Purple translucent', 'ayecode-connect' ) . $button_only;
1125
-		$theme_colors['translucent-salmon']    = __( 'Salmon translucent', 'ayecode-connect' ) . $button_only;
1126
-		$theme_colors['translucent-cyan']      = __( 'Cyan translucent', 'ayecode-connect' ) . $button_only;
1127
-		$theme_colors['translucent-gray']      = __( 'Gray translucent', 'ayecode-connect' ) . $button_only;
1128
-		$theme_colors['translucent-gray-dark'] = __( 'Gray dark translucent', 'ayecode-connect' ) . $button_only;
1129
-		$theme_colors['translucent-indigo']    = __( 'Indigo translucent', 'ayecode-connect' ) . $button_only;
1130
-		$theme_colors['translucent-orange']    = __( 'Orange translucent', 'ayecode-connect' ) . $button_only;
1131
-	}
1132
-
1133
-	return apply_filters( 'sd_aui_colors', $theme_colors, $include_outlines, $include_branding );
1026
+    $theme_colors = array();
1027
+
1028
+    $theme_colors['primary']   = __( 'Primary', 'ayecode-connect' );
1029
+    $theme_colors['secondary'] = __( 'Secondary', 'ayecode-connect' );
1030
+    $theme_colors['success']   = __( 'Success', 'ayecode-connect' );
1031
+    $theme_colors['danger']    = __( 'Danger', 'ayecode-connect' );
1032
+    $theme_colors['warning']   = __( 'Warning', 'ayecode-connect' );
1033
+    $theme_colors['info']      = __( 'Info', 'ayecode-connect' );
1034
+    $theme_colors['light']     = __( 'Light', 'ayecode-connect' );
1035
+    $theme_colors['dark']      = __( 'Dark', 'ayecode-connect' );
1036
+    $theme_colors['black']     = __( 'Black', 'ayecode-connect' );
1037
+    $theme_colors['white']     = __( 'White', 'ayecode-connect' );
1038
+    $theme_colors['purple']    = __( 'Purple', 'ayecode-connect' );
1039
+    $theme_colors['salmon']    = __( 'Salmon', 'ayecode-connect' );
1040
+    $theme_colors['cyan']      = __( 'Cyan', 'ayecode-connect' );
1041
+    $theme_colors['gray']      = __( 'Gray', 'ayecode-connect' );
1042
+    $theme_colors['muted']     = __( 'Muted', 'ayecode-connect' );
1043
+    $theme_colors['gray-dark'] = __( 'Gray dark', 'ayecode-connect' );
1044
+    $theme_colors['indigo']    = __( 'Indigo', 'ayecode-connect' );
1045
+    $theme_colors['orange']    = __( 'Orange', 'ayecode-connect' );
1046
+    $theme_colors['body']      = __( 'Body', 'ayecode-connect' );
1047
+
1048
+
1049
+    // for bg and borders
1050
+    if ( $include_subtle ) {
1051
+        $theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1052
+        $theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1053
+        $theme_colors['secondary-subtle'] = __( 'Secondary Subtle', 'ayecode-connect' );
1054
+        $theme_colors['success-subtle']   = __( 'Success Subtle', 'ayecode-connect' );
1055
+        $theme_colors['danger-subtle']    = __( 'Danger Subtle', 'ayecode-connect' );
1056
+        $theme_colors['warning-subtle']   = __( 'Warning Subtle', 'ayecode-connect' );
1057
+        $theme_colors['info-subtle']      = __( 'Info Subtle', 'ayecode-connect' );
1058
+        $theme_colors['light-subtle']     = __( 'Light Subtle', 'ayecode-connect' );
1059
+        $theme_colors['dark-subtle']      = __( 'Dark Subtle', 'ayecode-connect' );
1060
+        $theme_colors['purple-subtle']    = __( 'Purple Subtle', 'ayecode-connect' );
1061
+        $theme_colors['salmon-subtle']    = __( 'Salmon Subtle', 'ayecode-connect' );
1062
+        $theme_colors['cyan-subtle']      = __( 'Cyan Subtle', 'ayecode-connect' );
1063
+        $theme_colors['gray-subtle']      = __( 'Gray Subtle', 'ayecode-connect' );
1064
+        $theme_colors['gray-dark-subtle'] = __( 'Gray dark Subtle', 'ayecode-connect' );
1065
+        $theme_colors['indigo-subtle']    = __( 'Indigo Subtle', 'ayecode-connect' );
1066
+        $theme_colors['orange-subtle']    = __( 'Orange Subtle', 'ayecode-connect' );
1067
+    }
1068
+
1069
+    // for texts
1070
+    if ($include_emphasis) {
1071
+        $theme_colors['primary-emphasis']   = __( 'Primary Emphasis', 'ayecode-connect' );
1072
+        $theme_colors['secondary-emphasis'] = __( 'Secondary Emphasis', 'ayecode-connect' );
1073
+        $theme_colors['success-emphasis']   = __( 'Success Emphasis', 'ayecode-connect' );
1074
+        $theme_colors['danger-emphasis']    = __( 'Danger Emphasis', 'ayecode-connect' );
1075
+        $theme_colors['warning-emphasis']   = __( 'Warning Emphasis', 'ayecode-connect' );
1076
+        $theme_colors['info-emphasis']      = __( 'Info Emphasis', 'ayecode-connect' );
1077
+        $theme_colors['light-emphasis']     = __( 'Light Emphasis', 'ayecode-connect' );
1078
+        $theme_colors['dark-emphasis']      = __( 'Dark Emphasis', 'ayecode-connect' );
1079
+        $theme_colors['purple-emphasis']    = __( 'Purple Emphasis', 'ayecode-connect' );
1080
+        $theme_colors['salmon-emphasis']    = __( 'Salmon Emphasis', 'ayecode-connect' );
1081
+        $theme_colors['cyan-emphasis']      = __( 'Cyan Emphasis', 'ayecode-connect' );
1082
+        $theme_colors['gray-emphasis']      = __( 'Gray Emphasis', 'ayecode-connect' );
1083
+        $theme_colors['muted-emphasis']     = __( 'Muted Emphasis', 'ayecode-connect' );
1084
+        $theme_colors['gray-dark-emphasis'] = __( 'Gray dark Emphasis', 'ayecode-connect' );
1085
+        $theme_colors['indigo-emphasis']    = __( 'Indigo Emphasis', 'ayecode-connect' );
1086
+        $theme_colors['orange-emphasis']    = __( 'Orange Emphasis', 'ayecode-connect' );
1087
+    }
1088
+
1089
+    if ( $include_outlines ) {
1090
+        $button_only                       = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1091
+        $theme_colors['outline-primary']   = __( 'Primary outline', 'ayecode-connect' ) . $button_only;
1092
+        $theme_colors['outline-secondary'] = __( 'Secondary outline', 'ayecode-connect' ) . $button_only;
1093
+        $theme_colors['outline-success']   = __( 'Success outline', 'ayecode-connect' ) . $button_only;
1094
+        $theme_colors['outline-danger']    = __( 'Danger outline', 'ayecode-connect' ) . $button_only;
1095
+        $theme_colors['outline-warning']   = __( 'Warning outline', 'ayecode-connect' ) . $button_only;
1096
+        $theme_colors['outline-info']      = __( 'Info outline', 'ayecode-connect' ) . $button_only;
1097
+        $theme_colors['outline-light']     = __( 'Light outline', 'ayecode-connect' ) . $button_only;
1098
+        $theme_colors['outline-dark']      = __( 'Dark outline', 'ayecode-connect' ) . $button_only;
1099
+        $theme_colors['outline-white']     = __( 'White outline', 'ayecode-connect' ) . $button_only;
1100
+        $theme_colors['outline-purple']    = __( 'Purple outline', 'ayecode-connect' ) . $button_only;
1101
+        $theme_colors['outline-salmon']    = __( 'Salmon outline', 'ayecode-connect' ) . $button_only;
1102
+        $theme_colors['outline-cyan']      = __( 'Cyan outline', 'ayecode-connect' ) . $button_only;
1103
+        $theme_colors['outline-gray']      = __( 'Gray outline', 'ayecode-connect' ) . $button_only;
1104
+        $theme_colors['outline-gray-dark'] = __( 'Gray dark outline', 'ayecode-connect' ) . $button_only;
1105
+        $theme_colors['outline-indigo']    = __( 'Indigo outline', 'ayecode-connect' ) . $button_only;
1106
+        $theme_colors['outline-orange']    = __( 'Orange outline', 'ayecode-connect' ) . $button_only;
1107
+    }
1108
+
1109
+    if ( $include_branding ) {
1110
+        $theme_colors = $theme_colors + sd_aui_branding_colors();
1111
+    }
1112
+
1113
+    if ( $include_translucent ) {
1114
+        $button_only                           = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1115
+        $theme_colors['translucent-primary']   = __( 'Primary translucent', 'ayecode-connect' ) . $button_only;
1116
+        $theme_colors['translucent-secondary'] = __( 'Secondary translucent', 'ayecode-connect' ) . $button_only;
1117
+        $theme_colors['translucent-success']   = __( 'Success translucent', 'ayecode-connect' ) . $button_only;
1118
+        $theme_colors['translucent-danger']    = __( 'Danger translucent', 'ayecode-connect' ) . $button_only;
1119
+        $theme_colors['translucent-warning']   = __( 'Warning translucent', 'ayecode-connect' ) . $button_only;
1120
+        $theme_colors['translucent-info']      = __( 'Info translucent', 'ayecode-connect' ) . $button_only;
1121
+        $theme_colors['translucent-light']     = __( 'Light translucent', 'ayecode-connect' ) . $button_only;
1122
+        $theme_colors['translucent-dark']      = __( 'Dark translucent', 'ayecode-connect' ) . $button_only;
1123
+        $theme_colors['translucent-white']     = __( 'White translucent', 'ayecode-connect' ) . $button_only;
1124
+        $theme_colors['translucent-purple']    = __( 'Purple translucent', 'ayecode-connect' ) . $button_only;
1125
+        $theme_colors['translucent-salmon']    = __( 'Salmon translucent', 'ayecode-connect' ) . $button_only;
1126
+        $theme_colors['translucent-cyan']      = __( 'Cyan translucent', 'ayecode-connect' ) . $button_only;
1127
+        $theme_colors['translucent-gray']      = __( 'Gray translucent', 'ayecode-connect' ) . $button_only;
1128
+        $theme_colors['translucent-gray-dark'] = __( 'Gray dark translucent', 'ayecode-connect' ) . $button_only;
1129
+        $theme_colors['translucent-indigo']    = __( 'Indigo translucent', 'ayecode-connect' ) . $button_only;
1130
+        $theme_colors['translucent-orange']    = __( 'Orange translucent', 'ayecode-connect' ) . $button_only;
1131
+    }
1132
+
1133
+    return apply_filters( 'sd_aui_colors', $theme_colors, $include_outlines, $include_branding );
1134 1134
 }
1135 1135
 
1136 1136
 /**
@@ -1139,19 +1139,19 @@  discard block
 block discarded – undo
1139 1139
  * @return array
1140 1140
  */
1141 1141
 function sd_aui_branding_colors() {
1142
-	return array(
1143
-		'facebook'  => __( 'Facebook', 'ayecode-connect' ),
1144
-		'twitter'   => __( 'Twitter', 'ayecode-connect' ),
1145
-		'instagram' => __( 'Instagram', 'ayecode-connect' ),
1146
-		'linkedin'  => __( 'Linkedin', 'ayecode-connect' ),
1147
-		'flickr'    => __( 'Flickr', 'ayecode-connect' ),
1148
-		'github'    => __( 'GitHub', 'ayecode-connect' ),
1149
-		'youtube'   => __( 'YouTube', 'ayecode-connect' ),
1150
-		'wordpress' => __( 'WordPress', 'ayecode-connect' ),
1151
-		'google'    => __( 'Google', 'ayecode-connect' ),
1152
-		'yahoo'     => __( 'Yahoo', 'ayecode-connect' ),
1153
-		'vkontakte' => __( 'Vkontakte', 'ayecode-connect' ),
1154
-	);
1142
+    return array(
1143
+        'facebook'  => __( 'Facebook', 'ayecode-connect' ),
1144
+        'twitter'   => __( 'Twitter', 'ayecode-connect' ),
1145
+        'instagram' => __( 'Instagram', 'ayecode-connect' ),
1146
+        'linkedin'  => __( 'Linkedin', 'ayecode-connect' ),
1147
+        'flickr'    => __( 'Flickr', 'ayecode-connect' ),
1148
+        'github'    => __( 'GitHub', 'ayecode-connect' ),
1149
+        'youtube'   => __( 'YouTube', 'ayecode-connect' ),
1150
+        'wordpress' => __( 'WordPress', 'ayecode-connect' ),
1151
+        'google'    => __( 'Google', 'ayecode-connect' ),
1152
+        'yahoo'     => __( 'Yahoo', 'ayecode-connect' ),
1153
+        'vkontakte' => __( 'Vkontakte', 'ayecode-connect' ),
1154
+    );
1155 1155
 }
1156 1156
 
1157 1157
 
@@ -1165,43 +1165,43 @@  discard block
 block discarded – undo
1165 1165
  */
1166 1166
 function sd_get_container_class_input( $type = 'container', $overwrite = array() ) {
1167 1167
 
1168
-	$options = array(
1169
-		'container'                                                             => __( 'container (default)', 'ayecode-connect' ),
1170
-		'container-sm'                                                          => 'container-sm',
1171
-		'container-md'                                                          => 'container-md',
1172
-		'container-lg'                                                          => 'container-lg',
1173
-		'container-xl'                                                          => 'container-xl',
1174
-		'container-xxl'                                                         => 'container-xxl',
1175
-		'container-fluid'                                                       => 'container-fluid',
1176
-		'row'                                                                   => 'row',
1177
-		'col'                                                                   => 'col',
1178
-		'card'                                                                  => 'card',
1179
-		'card-header'                                                           => 'card-header',
1180
-		'card-img-top'                                                          => 'card-img-top',
1181
-		'card-body'                                                             => 'card-body',
1182
-		'card-footer'                                                           => 'card-footer',
1183
-		'list-group'                                                            => 'list-group',
1184
-		'list-group list-group-flush'                                           => 'list-group list-group-flush',
1185
-		'list-group list-group-numbered'                                        => 'list-group list-group-numbered',
1186
-		'list-group list-group-flush list-group-numbered'                       => 'list-group list-group-flush list-group-numbered',
1187
-		'list-group list-group-horizontal'                                      => 'list-group list-group-horizontal',
1188
-		'list-group list-group-horizontal list-group-numbered'                  => 'list-group list-group-horizontal list-group-numbered',
1189
-		'list-group-item'                                                       => 'list-group-item',
1190
-		''                                                                      => __( 'no container class', 'ayecode-connect' ),
1191
-	);
1192
-
1193
-	$defaults = array(
1194
-		'type'     => 'select',
1195
-		'title'    => __( 'Type', 'ayecode-connect' ),
1196
-		'options'  => $options,
1197
-		'default'  => '',
1198
-		'desc_tip' => true,
1199
-		'group'    => __( 'Container', 'ayecode-connect' ),
1200
-	);
1201
-
1202
-	$input = wp_parse_args( $overwrite, $defaults );
1203
-
1204
-	return $input;
1168
+    $options = array(
1169
+        'container'                                                             => __( 'container (default)', 'ayecode-connect' ),
1170
+        'container-sm'                                                          => 'container-sm',
1171
+        'container-md'                                                          => 'container-md',
1172
+        'container-lg'                                                          => 'container-lg',
1173
+        'container-xl'                                                          => 'container-xl',
1174
+        'container-xxl'                                                         => 'container-xxl',
1175
+        'container-fluid'                                                       => 'container-fluid',
1176
+        'row'                                                                   => 'row',
1177
+        'col'                                                                   => 'col',
1178
+        'card'                                                                  => 'card',
1179
+        'card-header'                                                           => 'card-header',
1180
+        'card-img-top'                                                          => 'card-img-top',
1181
+        'card-body'                                                             => 'card-body',
1182
+        'card-footer'                                                           => 'card-footer',
1183
+        'list-group'                                                            => 'list-group',
1184
+        'list-group list-group-flush'                                           => 'list-group list-group-flush',
1185
+        'list-group list-group-numbered'                                        => 'list-group list-group-numbered',
1186
+        'list-group list-group-flush list-group-numbered'                       => 'list-group list-group-flush list-group-numbered',
1187
+        'list-group list-group-horizontal'                                      => 'list-group list-group-horizontal',
1188
+        'list-group list-group-horizontal list-group-numbered'                  => 'list-group list-group-horizontal list-group-numbered',
1189
+        'list-group-item'                                                       => 'list-group-item',
1190
+        ''                                                                      => __( 'no container class', 'ayecode-connect' ),
1191
+    );
1192
+
1193
+    $defaults = array(
1194
+        'type'     => 'select',
1195
+        'title'    => __( 'Type', 'ayecode-connect' ),
1196
+        'options'  => $options,
1197
+        'default'  => '',
1198
+        'desc_tip' => true,
1199
+        'group'    => __( 'Container', 'ayecode-connect' ),
1200
+    );
1201
+
1202
+    $input = wp_parse_args( $overwrite, $defaults );
1203
+
1204
+    return $input;
1205 1205
 }
1206 1206
 
1207 1207
 /**
@@ -1214,30 +1214,30 @@  discard block
 block discarded – undo
1214 1214
  */
1215 1215
 function sd_get_position_class_input( $type = 'position', $overwrite = array() ) {
1216 1216
 
1217
-	$options = array(
1218
-		''                  => __( 'Default', 'ayecode-connect' ),
1219
-		'position-static'   => 'static',
1220
-		'position-relative' => 'relative',
1221
-		'position-absolute' => 'absolute',
1222
-		'position-fixed'    => 'fixed',
1223
-		'position-sticky'   => 'sticky',
1224
-		'fixed-top'         => 'fixed-top',
1225
-		'fixed-bottom'      => 'fixed-bottom',
1226
-		'sticky-top'        => 'sticky-top',
1227
-	);
1217
+    $options = array(
1218
+        ''                  => __( 'Default', 'ayecode-connect' ),
1219
+        'position-static'   => 'static',
1220
+        'position-relative' => 'relative',
1221
+        'position-absolute' => 'absolute',
1222
+        'position-fixed'    => 'fixed',
1223
+        'position-sticky'   => 'sticky',
1224
+        'fixed-top'         => 'fixed-top',
1225
+        'fixed-bottom'      => 'fixed-bottom',
1226
+        'sticky-top'        => 'sticky-top',
1227
+    );
1228 1228
 
1229
-	$defaults = array(
1230
-		'type'     => 'select',
1231
-		'title'    => __( 'Position', 'ayecode-connect' ),
1232
-		'options'  => $options,
1233
-		'default'  => '',
1234
-		'desc_tip' => true,
1235
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1236
-	);
1229
+    $defaults = array(
1230
+        'type'     => 'select',
1231
+        'title'    => __( 'Position', 'ayecode-connect' ),
1232
+        'options'  => $options,
1233
+        'default'  => '',
1234
+        'desc_tip' => true,
1235
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1236
+    );
1237 1237
 
1238
-	$input = wp_parse_args( $overwrite, $defaults );
1238
+    $input = wp_parse_args( $overwrite, $defaults );
1239 1239
 
1240
-	return $input;
1240
+    return $input;
1241 1241
 }
1242 1242
 
1243 1243
 /**
@@ -1248,32 +1248,32 @@  discard block
 block discarded – undo
1248 1248
  */
1249 1249
 function sd_get_absolute_position_input( $type = 'absolute_position', $overwrite = array() ) {
1250 1250
 
1251
-	$options = array(
1252
-		''              => __( 'Default', 'ayecode-connect' ),
1253
-		'top-left'      => 'top-left',
1254
-		'top-center'    => 'top-center',
1255
-		'top-right'     => 'top-right',
1256
-		'center-left'   => 'middle-left',
1257
-		'center'        => 'center',
1258
-		'center-right'  => 'middle-right',
1259
-		'bottom-left'   => 'bottom-left',
1260
-		'bottom-center' => 'bottom-center',
1261
-		'bottom-right'  => 'bottom-right',
1262
-	);
1251
+    $options = array(
1252
+        ''              => __( 'Default', 'ayecode-connect' ),
1253
+        'top-left'      => 'top-left',
1254
+        'top-center'    => 'top-center',
1255
+        'top-right'     => 'top-right',
1256
+        'center-left'   => 'middle-left',
1257
+        'center'        => 'center',
1258
+        'center-right'  => 'middle-right',
1259
+        'bottom-left'   => 'bottom-left',
1260
+        'bottom-center' => 'bottom-center',
1261
+        'bottom-right'  => 'bottom-right',
1262
+    );
1263 1263
 
1264
-	$defaults = array(
1265
-		'type'            => 'select',
1266
-		'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1267
-		'options'         => $options,
1268
-		'default'         => '',
1269
-		'desc_tip'        => true,
1270
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1271
-		'element_require' => '[%position%]=="position-absolute"',
1272
-	);
1264
+    $defaults = array(
1265
+        'type'            => 'select',
1266
+        'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1267
+        'options'         => $options,
1268
+        'default'         => '',
1269
+        'desc_tip'        => true,
1270
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1271
+        'element_require' => '[%position%]=="position-absolute"',
1272
+    );
1273 1273
 
1274
-	$input = wp_parse_args( $overwrite, $defaults );
1274
+    $input = wp_parse_args( $overwrite, $defaults );
1275 1275
 
1276
-	return $input;
1276
+    return $input;
1277 1277
 }
1278 1278
 
1279 1279
 /**
@@ -1286,38 +1286,38 @@  discard block
 block discarded – undo
1286 1286
  */
1287 1287
 function sd_get_sticky_offset_input( $type = 'top', $overwrite = array() ) {
1288 1288
 
1289
-	$defaults = array(
1290
-		'type'            => 'number',
1291
-		'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1292
-		//'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1293
-		'default'         => '',
1294
-		'desc_tip'        => true,
1295
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1296
-		'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1297
-	);
1298
-
1299
-	// title
1300
-	if ( $type == 'top' ) {
1301
-		$defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1302
-		$defaults['icon']  = 'box-top';
1303
-		$defaults['row']   = array(
1304
-			'title' => __( 'Sticky offset', 'ayecode-connect' ),
1305
-			'key'   => 'sticky-offset',
1306
-			'open'  => true,
1307
-			'class' => 'text-center',
1308
-		);
1309
-	} elseif ( $type == 'bottom' ) {
1310
-		$defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1311
-		$defaults['icon']  = 'box-bottom';
1312
-		$defaults['row']   = array(
1313
-			'key'   => 'sticky-offset',
1314
-			'close' => true,
1315
-		);
1316
-	}
1317
-
1318
-	$input = wp_parse_args( $overwrite, $defaults );
1319
-
1320
-	return $input;
1289
+    $defaults = array(
1290
+        'type'            => 'number',
1291
+        'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1292
+        //'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1293
+        'default'         => '',
1294
+        'desc_tip'        => true,
1295
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1296
+        'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1297
+    );
1298
+
1299
+    // title
1300
+    if ( $type == 'top' ) {
1301
+        $defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1302
+        $defaults['icon']  = 'box-top';
1303
+        $defaults['row']   = array(
1304
+            'title' => __( 'Sticky offset', 'ayecode-connect' ),
1305
+            'key'   => 'sticky-offset',
1306
+            'open'  => true,
1307
+            'class' => 'text-center',
1308
+        );
1309
+    } elseif ( $type == 'bottom' ) {
1310
+        $defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1311
+        $defaults['icon']  = 'box-bottom';
1312
+        $defaults['row']   = array(
1313
+            'key'   => 'sticky-offset',
1314
+            'close' => true,
1315
+        );
1316
+    }
1317
+
1318
+    $input = wp_parse_args( $overwrite, $defaults );
1319
+
1320
+    return $input;
1321 1321
 }
1322 1322
 
1323 1323
 /**
@@ -1329,61 +1329,61 @@  discard block
 block discarded – undo
1329 1329
  * @return array
1330 1330
  */
1331 1331
 function sd_get_font_size_input( $type = 'font_size', $overwrite = array(), $has_custom = false ) {
1332
-	global $aui_bs5;
1333
-
1334
-	$options[] = __( 'Inherit from parent', 'ayecode-connect' );
1335
-	if ( $aui_bs5 ) {
1336
-		// responsive font sizes
1337
-		$options['fs-base'] = 'fs-base (body default)';
1338
-		$options['fs-6']    = 'fs-6';
1339
-		$options['fs-5']    = 'fs-5';
1340
-		$options['fs-4']    = 'fs-4';
1341
-		$options['fs-3']    = 'fs-3';
1342
-		$options['fs-2']    = 'fs-2';
1343
-		$options['fs-1']    = 'fs-1';
1344
-
1345
-		// custom
1346
-		$options['fs-lg']  = 'fs-lg';
1347
-		$options['fs-sm']  = 'fs-sm';
1348
-		$options['fs-xs']  = 'fs-xs';
1349
-		$options['fs-xxs'] = 'fs-xxs';
1350
-
1351
-	}
1352
-
1353
-	$options = $options + array(
1354
-			'h6'        => 'h6',
1355
-			'h5'        => 'h5',
1356
-			'h4'        => 'h4',
1357
-			'h3'        => 'h3',
1358
-			'h2'        => 'h2',
1359
-			'h1'        => 'h1',
1360
-			'display-1' => 'display-1',
1361
-			'display-2' => 'display-2',
1362
-			'display-3' => 'display-3',
1363
-			'display-4' => 'display-4',
1364
-		);
1365
-
1366
-	if ( $aui_bs5 ) {
1367
-		$options['display-5'] = 'display-5';
1368
-		$options['display-6'] = 'display-6';
1369
-	}
1370
-
1371
-	if ( $has_custom ) {
1372
-		$options['custom'] = __( 'Custom size', 'ayecode-connect' );
1373
-	}
1374
-
1375
-	$defaults = array(
1376
-		'type'     => 'select',
1377
-		'title'    => __( 'Font size', 'ayecode-connect' ),
1378
-		'options'  => $options,
1379
-		'default'  => '',
1380
-		'desc_tip' => true,
1381
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1382
-	);
1383
-
1384
-	$input = wp_parse_args( $overwrite, $defaults );
1385
-
1386
-	return $input;
1332
+    global $aui_bs5;
1333
+
1334
+    $options[] = __( 'Inherit from parent', 'ayecode-connect' );
1335
+    if ( $aui_bs5 ) {
1336
+        // responsive font sizes
1337
+        $options['fs-base'] = 'fs-base (body default)';
1338
+        $options['fs-6']    = 'fs-6';
1339
+        $options['fs-5']    = 'fs-5';
1340
+        $options['fs-4']    = 'fs-4';
1341
+        $options['fs-3']    = 'fs-3';
1342
+        $options['fs-2']    = 'fs-2';
1343
+        $options['fs-1']    = 'fs-1';
1344
+
1345
+        // custom
1346
+        $options['fs-lg']  = 'fs-lg';
1347
+        $options['fs-sm']  = 'fs-sm';
1348
+        $options['fs-xs']  = 'fs-xs';
1349
+        $options['fs-xxs'] = 'fs-xxs';
1350
+
1351
+    }
1352
+
1353
+    $options = $options + array(
1354
+            'h6'        => 'h6',
1355
+            'h5'        => 'h5',
1356
+            'h4'        => 'h4',
1357
+            'h3'        => 'h3',
1358
+            'h2'        => 'h2',
1359
+            'h1'        => 'h1',
1360
+            'display-1' => 'display-1',
1361
+            'display-2' => 'display-2',
1362
+            'display-3' => 'display-3',
1363
+            'display-4' => 'display-4',
1364
+        );
1365
+
1366
+    if ( $aui_bs5 ) {
1367
+        $options['display-5'] = 'display-5';
1368
+        $options['display-6'] = 'display-6';
1369
+    }
1370
+
1371
+    if ( $has_custom ) {
1372
+        $options['custom'] = __( 'Custom size', 'ayecode-connect' );
1373
+    }
1374
+
1375
+    $defaults = array(
1376
+        'type'     => 'select',
1377
+        'title'    => __( 'Font size', 'ayecode-connect' ),
1378
+        'options'  => $options,
1379
+        'default'  => '',
1380
+        'desc_tip' => true,
1381
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1382
+    );
1383
+
1384
+    $input = wp_parse_args( $overwrite, $defaults );
1385
+
1386
+    return $input;
1387 1387
 }
1388 1388
 
1389 1389
 /**
@@ -1396,27 +1396,27 @@  discard block
 block discarded – undo
1396 1396
  */
1397 1397
 function sd_get_font_custom_size_input( $type = 'font_size_custom', $overwrite = array(), $parent_type = '' ) {
1398 1398
 
1399
-	$defaults = array(
1400
-		'type'              => 'number',
1401
-		'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1402
-		'default'           => '',
1403
-		'placeholder'       => '1.25',
1404
-		'custom_attributes' => array(
1405
-			'step' => '0.1',
1406
-			'min'  => '0',
1407
-			'max'  => '100',
1408
-		),
1409
-		'desc_tip'          => true,
1410
-		'group'             => __( 'Typography', 'ayecode-connect' ),
1411
-	);
1399
+    $defaults = array(
1400
+        'type'              => 'number',
1401
+        'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1402
+        'default'           => '',
1403
+        'placeholder'       => '1.25',
1404
+        'custom_attributes' => array(
1405
+            'step' => '0.1',
1406
+            'min'  => '0',
1407
+            'max'  => '100',
1408
+        ),
1409
+        'desc_tip'          => true,
1410
+        'group'             => __( 'Typography', 'ayecode-connect' ),
1411
+    );
1412 1412
 
1413
-	if ( $parent_type ) {
1414
-		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1415
-	}
1413
+    if ( $parent_type ) {
1414
+        $defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1415
+    }
1416 1416
 
1417
-	$input = wp_parse_args( $overwrite, $defaults );
1417
+    $input = wp_parse_args( $overwrite, $defaults );
1418 1418
 
1419
-	return $input;
1419
+    return $input;
1420 1420
 }
1421 1421
 
1422 1422
 /**
@@ -1429,23 +1429,23 @@  discard block
 block discarded – undo
1429 1429
  */
1430 1430
 function sd_get_font_line_height_input( $type = 'font_line_height', $overwrite = array() ) {
1431 1431
 
1432
-	$defaults = array(
1433
-		'type'              => 'number',
1434
-		'title'             => __( 'Font Line Height', 'ayecode-connect' ),
1435
-		'default'           => '',
1436
-		'placeholder'       => '1.75',
1437
-		'custom_attributes' => array(
1438
-			'step' => '0.1',
1439
-			'min'  => '0',
1440
-			'max'  => '100',
1441
-		),
1442
-		'desc_tip'          => true,
1443
-		'group'             => __( 'Typography', 'ayecode-connect' ),
1444
-	);
1432
+    $defaults = array(
1433
+        'type'              => 'number',
1434
+        'title'             => __( 'Font Line Height', 'ayecode-connect' ),
1435
+        'default'           => '',
1436
+        'placeholder'       => '1.75',
1437
+        'custom_attributes' => array(
1438
+            'step' => '0.1',
1439
+            'min'  => '0',
1440
+            'max'  => '100',
1441
+        ),
1442
+        'desc_tip'          => true,
1443
+        'group'             => __( 'Typography', 'ayecode-connect' ),
1444
+    );
1445 1445
 
1446
-	$input = wp_parse_args( $overwrite, $defaults );
1446
+    $input = wp_parse_args( $overwrite, $defaults );
1447 1447
 
1448
-	return $input;
1448
+    return $input;
1449 1449
 }
1450 1450
 
1451 1451
 /**
@@ -1458,18 +1458,18 @@  discard block
 block discarded – undo
1458 1458
  */
1459 1459
 function sd_get_font_size_input_group( $type = 'font_size', $overwrite = array(), $overwrite_custom = array() ) {
1460 1460
 
1461
-	$inputs = array();
1461
+    $inputs = array();
1462 1462
 
1463
-	if ( $overwrite !== false ) {
1464
-		$inputs[ $type ] = sd_get_font_size_input( $type, $overwrite, true );
1465
-	}
1463
+    if ( $overwrite !== false ) {
1464
+        $inputs[ $type ] = sd_get_font_size_input( $type, $overwrite, true );
1465
+    }
1466 1466
 
1467
-	if ( $overwrite_custom !== false ) {
1468
-		$custom            = $type . '_custom';
1469
-		$inputs[ $custom ] = sd_get_font_custom_size_input( $custom, $overwrite_custom, $type );
1470
-	}
1467
+    if ( $overwrite_custom !== false ) {
1468
+        $custom            = $type . '_custom';
1469
+        $inputs[ $custom ] = sd_get_font_custom_size_input( $custom, $overwrite_custom, $type );
1470
+    }
1471 1471
 
1472
-	return $inputs;
1472
+    return $inputs;
1473 1473
 }
1474 1474
 
1475 1475
 /**
@@ -1482,33 +1482,33 @@  discard block
 block discarded – undo
1482 1482
  */
1483 1483
 function sd_get_font_weight_input( $type = 'font_weight', $overwrite = array() ) {
1484 1484
 
1485
-	$options = array(
1486
-		''                                => __( 'Inherit', 'ayecode-connect' ),
1487
-		'font-weight-bold'                => 'bold',
1488
-		'font-weight-bolder'              => 'bolder',
1489
-		'font-weight-normal'              => 'normal',
1490
-		'font-weight-light'               => 'light',
1491
-		'font-weight-lighter'             => 'lighter',
1492
-		'font-italic'                     => 'italic',
1493
-		'font-weight-bold font-italic'    => 'bold italic',
1494
-		'font-weight-bolder font-italic'  => 'bolder italic',
1495
-		'font-weight-normal font-italic'  => 'normal italic',
1496
-		'font-weight-light font-italic'   => 'light italic',
1497
-		'font-weight-lighter font-italic' => 'lighter italic',
1498
-	);
1485
+    $options = array(
1486
+        ''                                => __( 'Inherit', 'ayecode-connect' ),
1487
+        'font-weight-bold'                => 'bold',
1488
+        'font-weight-bolder'              => 'bolder',
1489
+        'font-weight-normal'              => 'normal',
1490
+        'font-weight-light'               => 'light',
1491
+        'font-weight-lighter'             => 'lighter',
1492
+        'font-italic'                     => 'italic',
1493
+        'font-weight-bold font-italic'    => 'bold italic',
1494
+        'font-weight-bolder font-italic'  => 'bolder italic',
1495
+        'font-weight-normal font-italic'  => 'normal italic',
1496
+        'font-weight-light font-italic'   => 'light italic',
1497
+        'font-weight-lighter font-italic' => 'lighter italic',
1498
+    );
1499 1499
 
1500
-	$defaults = array(
1501
-		'type'     => 'select',
1502
-		'title'    => __( 'Appearance', 'ayecode-connect' ),
1503
-		'options'  => $options,
1504
-		'default'  => '',
1505
-		'desc_tip' => true,
1506
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1507
-	);
1500
+    $defaults = array(
1501
+        'type'     => 'select',
1502
+        'title'    => __( 'Appearance', 'ayecode-connect' ),
1503
+        'options'  => $options,
1504
+        'default'  => '',
1505
+        'desc_tip' => true,
1506
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1507
+    );
1508 1508
 
1509
-	$input = wp_parse_args( $overwrite, $defaults );
1509
+    $input = wp_parse_args( $overwrite, $defaults );
1510 1510
 
1511
-	return $input;
1511
+    return $input;
1512 1512
 }
1513 1513
 
1514 1514
 /**
@@ -1521,25 +1521,25 @@  discard block
 block discarded – undo
1521 1521
  */
1522 1522
 function sd_get_font_case_input( $type = 'font_weight', $overwrite = array() ) {
1523 1523
 
1524
-	$options = array(
1525
-		''                => __( 'Default', 'ayecode-connect' ),
1526
-		'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1527
-		'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1528
-		'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1529
-	);
1524
+    $options = array(
1525
+        ''                => __( 'Default', 'ayecode-connect' ),
1526
+        'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1527
+        'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1528
+        'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1529
+    );
1530 1530
 
1531
-	$defaults = array(
1532
-		'type'     => 'select',
1533
-		'title'    => __( 'Letter case', 'ayecode-connect' ),
1534
-		'options'  => $options,
1535
-		'default'  => '',
1536
-		'desc_tip' => true,
1537
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1538
-	);
1531
+    $defaults = array(
1532
+        'type'     => 'select',
1533
+        'title'    => __( 'Letter case', 'ayecode-connect' ),
1534
+        'options'  => $options,
1535
+        'default'  => '',
1536
+        'desc_tip' => true,
1537
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1538
+    );
1539 1539
 
1540
-	$input = wp_parse_args( $overwrite, $defaults );
1540
+    $input = wp_parse_args( $overwrite, $defaults );
1541 1541
 
1542
-	return $input;
1542
+    return $input;
1543 1543
 }
1544 1544
 
1545 1545
 /**
@@ -1553,23 +1553,23 @@  discard block
 block discarded – undo
1553 1553
  */
1554 1554
 function sd_get_font_italic_input( $type = 'font_italic', $overwrite = array() ) {
1555 1555
 
1556
-	$options = array(
1557
-		''            => __( 'No', 'ayecode-connect' ),
1558
-		'font-italic' => __( 'Yes', 'ayecode-connect' ),
1559
-	);
1556
+    $options = array(
1557
+        ''            => __( 'No', 'ayecode-connect' ),
1558
+        'font-italic' => __( 'Yes', 'ayecode-connect' ),
1559
+    );
1560 1560
 
1561
-	$defaults = array(
1562
-		'type'     => 'select',
1563
-		'title'    => __( 'Font italic', 'ayecode-connect' ),
1564
-		'options'  => $options,
1565
-		'default'  => '',
1566
-		'desc_tip' => true,
1567
-		'group'    => __( 'Typography', 'ayecode-connect' ),
1568
-	);
1561
+    $defaults = array(
1562
+        'type'     => 'select',
1563
+        'title'    => __( 'Font italic', 'ayecode-connect' ),
1564
+        'options'  => $options,
1565
+        'default'  => '',
1566
+        'desc_tip' => true,
1567
+        'group'    => __( 'Typography', 'ayecode-connect' ),
1568
+    );
1569 1569
 
1570
-	$input = wp_parse_args( $overwrite, $defaults );
1570
+    $input = wp_parse_args( $overwrite, $defaults );
1571 1571
 
1572
-	return $input;
1572
+    return $input;
1573 1573
 }
1574 1574
 
1575 1575
 /**
@@ -1582,18 +1582,18 @@  discard block
 block discarded – undo
1582 1582
  */
1583 1583
 function sd_get_anchor_input( $type = 'anchor', $overwrite = array() ) {
1584 1584
 
1585
-	$defaults = array(
1586
-		'type'     => 'text',
1587
-		'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1588
-		'desc'     => __( 'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.', 'ayecode-connect' ),
1589
-		'default'  => '',
1590
-		'desc_tip' => true,
1591
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1592
-	);
1585
+    $defaults = array(
1586
+        'type'     => 'text',
1587
+        'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1588
+        'desc'     => __( 'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.', 'ayecode-connect' ),
1589
+        'default'  => '',
1590
+        'desc_tip' => true,
1591
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1592
+    );
1593 1593
 
1594
-	$input = wp_parse_args( $overwrite, $defaults );
1594
+    $input = wp_parse_args( $overwrite, $defaults );
1595 1595
 
1596
-	return $input;
1596
+    return $input;
1597 1597
 }
1598 1598
 
1599 1599
 /**
@@ -1606,18 +1606,18 @@  discard block
 block discarded – undo
1606 1606
  */
1607 1607
 function sd_get_class_input( $type = 'css_class', $overwrite = array() ) {
1608 1608
 
1609
-	$defaults = array(
1610
-		'type'     => 'text',
1611
-		'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1612
-		'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1613
-		'default'  => '',
1614
-		'desc_tip' => true,
1615
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1616
-	);
1609
+    $defaults = array(
1610
+        'type'     => 'text',
1611
+        'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1612
+        'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1613
+        'default'  => '',
1614
+        'desc_tip' => true,
1615
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1616
+    );
1617 1617
 
1618
-	$input = wp_parse_args( $overwrite, $defaults );
1618
+    $input = wp_parse_args( $overwrite, $defaults );
1619 1619
 
1620
-	return $input;
1620
+    return $input;
1621 1621
 }
1622 1622
 
1623 1623
 /**
@@ -1630,18 +1630,18 @@  discard block
 block discarded – undo
1630 1630
  */
1631 1631
 function sd_get_custom_name_input( $type = 'metadata_name', $overwrite = array() ) {
1632 1632
 
1633
-	$defaults = array(
1634
-		'type'     => 'text',
1635
-		'title'    => __( 'Block Name', 'ayecode-connect' ),
1636
-		'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1637
-		'default'  => '',
1638
-		'desc_tip' => true,
1639
-		'group'    => __( 'Advanced', 'ayecode-connect' ),
1640
-	);
1633
+    $defaults = array(
1634
+        'type'     => 'text',
1635
+        'title'    => __( 'Block Name', 'ayecode-connect' ),
1636
+        'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1637
+        'default'  => '',
1638
+        'desc_tip' => true,
1639
+        'group'    => __( 'Advanced', 'ayecode-connect' ),
1640
+    );
1641 1641
 
1642
-	$input = wp_parse_args( $overwrite, $defaults );
1642
+    $input = wp_parse_args( $overwrite, $defaults );
1643 1643
 
1644
-	return $input;
1644
+    return $input;
1645 1645
 }
1646 1646
 
1647 1647
 /**
@@ -1654,341 +1654,341 @@  discard block
 block discarded – undo
1654 1654
  */
1655 1655
 function sd_get_hover_animations_input( $type = 'hover_animations', $overwrite = array() ) {
1656 1656
 
1657
-	$options = array(
1658
-		''                 => __( 'none', 'ayecode-connect' ),
1659
-		'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1660
-		'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1661
-		'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1662
-		'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1663
-		'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1664
-		'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1665
-	);
1657
+    $options = array(
1658
+        ''                 => __( 'none', 'ayecode-connect' ),
1659
+        'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1660
+        'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1661
+        'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1662
+        'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1663
+        'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1664
+        'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1665
+    );
1666 1666
 
1667
-	$defaults = array(
1668
-		'type'     => 'select',
1669
-		'multiple' => true,
1670
-		'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1671
-		'options'  => $options,
1672
-		'default'  => '',
1673
-		'desc_tip' => true,
1674
-		'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1675
-	);
1667
+    $defaults = array(
1668
+        'type'     => 'select',
1669
+        'multiple' => true,
1670
+        'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1671
+        'options'  => $options,
1672
+        'default'  => '',
1673
+        'desc_tip' => true,
1674
+        'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1675
+    );
1676 1676
 
1677
-	$input = wp_parse_args( $overwrite, $defaults );
1677
+    $input = wp_parse_args( $overwrite, $defaults );
1678 1678
 
1679
-	return $input;
1679
+    return $input;
1680 1680
 }
1681 1681
 
1682 1682
 
1683 1683
 function sd_get_flex_align_items_input( $type = 'align-items', $overwrite = array() ) {
1684
-	$device_size = '';
1685
-	if ( ! empty( $overwrite['device_type'] ) ) {
1686
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1687
-			$device_size = '-md';
1688
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1689
-			$device_size = '-lg';
1690
-		}
1691
-	}
1692
-	$options = array(
1693
-		''                                         => __( 'Default', 'ayecode-connect' ),
1694
-		'align-items' . $device_size . '-start'    => 'align-items-start',
1695
-		'align-items' . $device_size . '-end'      => 'align-items-end',
1696
-		'align-items' . $device_size . '-center'   => 'align-items-center',
1697
-		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1698
-		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1699
-	);
1700
-
1701
-	$defaults = array(
1702
-		'type'            => 'select',
1703
-		'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1704
-		'options'         => $options,
1705
-		'default'         => '',
1706
-		'desc_tip'        => true,
1707
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1708
-		'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1709
-
1710
-	);
1711
-
1712
-	$input = wp_parse_args( $overwrite, $defaults );
1713
-
1714
-	return $input;
1684
+    $device_size = '';
1685
+    if ( ! empty( $overwrite['device_type'] ) ) {
1686
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1687
+            $device_size = '-md';
1688
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1689
+            $device_size = '-lg';
1690
+        }
1691
+    }
1692
+    $options = array(
1693
+        ''                                         => __( 'Default', 'ayecode-connect' ),
1694
+        'align-items' . $device_size . '-start'    => 'align-items-start',
1695
+        'align-items' . $device_size . '-end'      => 'align-items-end',
1696
+        'align-items' . $device_size . '-center'   => 'align-items-center',
1697
+        'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1698
+        'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1699
+    );
1700
+
1701
+    $defaults = array(
1702
+        'type'            => 'select',
1703
+        'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1704
+        'options'         => $options,
1705
+        'default'         => '',
1706
+        'desc_tip'        => true,
1707
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1708
+        'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1709
+
1710
+    );
1711
+
1712
+    $input = wp_parse_args( $overwrite, $defaults );
1713
+
1714
+    return $input;
1715 1715
 }
1716 1716
 
1717 1717
 function sd_get_flex_align_items_input_group( $type = 'flex_align_items', $overwrite = array() ) {
1718
-	$inputs = array();
1719
-	$sizes  = array(
1720
-		''    => 'Mobile',
1721
-		'_md' => 'Tablet',
1722
-		'_lg' => 'Desktop',
1723
-	);
1718
+    $inputs = array();
1719
+    $sizes  = array(
1720
+        ''    => 'Mobile',
1721
+        '_md' => 'Tablet',
1722
+        '_lg' => 'Desktop',
1723
+    );
1724 1724
 
1725
-	if ( $overwrite !== false ) {
1725
+    if ( $overwrite !== false ) {
1726 1726
 
1727
-		foreach ( $sizes as $ds => $dt ) {
1728
-			$overwrite['device_type'] = $dt;
1729
-			$inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1730
-		}
1731
-	}
1727
+        foreach ( $sizes as $ds => $dt ) {
1728
+            $overwrite['device_type'] = $dt;
1729
+            $inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1730
+        }
1731
+    }
1732 1732
 
1733
-	return $inputs;
1733
+    return $inputs;
1734 1734
 }
1735 1735
 
1736 1736
 function sd_get_flex_justify_content_input( $type = 'flex_justify_content', $overwrite = array() ) {
1737
-	$device_size = '';
1738
-	if ( ! empty( $overwrite['device_type'] ) ) {
1739
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1740
-			$device_size = '-md';
1741
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1742
-			$device_size = '-lg';
1743
-		}
1744
-	}
1745
-	$options = array(
1746
-		''                                            => __( 'Default', 'ayecode-connect' ),
1747
-		'justify-content' . $device_size . '-start'   => 'justify-content-start',
1748
-		'justify-content' . $device_size . '-end'     => 'justify-content-end',
1749
-		'justify-content' . $device_size . '-center'  => 'justify-content-center',
1750
-		'justify-content' . $device_size . '-between' => 'justify-content-between',
1751
-		'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1752
-	);
1753
-
1754
-	$defaults = array(
1755
-		'type'            => 'select',
1756
-		'title'           => __( 'Justify content', 'ayecode-connect' ),
1757
-		'options'         => $options,
1758
-		'default'         => '',
1759
-		'desc_tip'        => true,
1760
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1761
-		'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1762
-
1763
-	);
1764
-
1765
-	$input = wp_parse_args( $overwrite, $defaults );
1766
-
1767
-	return $input;
1737
+    $device_size = '';
1738
+    if ( ! empty( $overwrite['device_type'] ) ) {
1739
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1740
+            $device_size = '-md';
1741
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1742
+            $device_size = '-lg';
1743
+        }
1744
+    }
1745
+    $options = array(
1746
+        ''                                            => __( 'Default', 'ayecode-connect' ),
1747
+        'justify-content' . $device_size . '-start'   => 'justify-content-start',
1748
+        'justify-content' . $device_size . '-end'     => 'justify-content-end',
1749
+        'justify-content' . $device_size . '-center'  => 'justify-content-center',
1750
+        'justify-content' . $device_size . '-between' => 'justify-content-between',
1751
+        'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1752
+    );
1753
+
1754
+    $defaults = array(
1755
+        'type'            => 'select',
1756
+        'title'           => __( 'Justify content', 'ayecode-connect' ),
1757
+        'options'         => $options,
1758
+        'default'         => '',
1759
+        'desc_tip'        => true,
1760
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1761
+        'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1762
+
1763
+    );
1764
+
1765
+    $input = wp_parse_args( $overwrite, $defaults );
1766
+
1767
+    return $input;
1768 1768
 }
1769 1769
 
1770 1770
 function sd_get_flex_justify_content_input_group( $type = 'flex_justify_content', $overwrite = array() ) {
1771
-	$inputs = array();
1772
-	$sizes  = array(
1773
-		''    => 'Mobile',
1774
-		'_md' => 'Tablet',
1775
-		'_lg' => 'Desktop',
1776
-	);
1771
+    $inputs = array();
1772
+    $sizes  = array(
1773
+        ''    => 'Mobile',
1774
+        '_md' => 'Tablet',
1775
+        '_lg' => 'Desktop',
1776
+    );
1777 1777
 
1778
-	if ( $overwrite !== false ) {
1778
+    if ( $overwrite !== false ) {
1779 1779
 
1780
-		foreach ( $sizes as $ds => $dt ) {
1781
-			$overwrite['device_type'] = $dt;
1782
-			$inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1783
-		}
1784
-	}
1780
+        foreach ( $sizes as $ds => $dt ) {
1781
+            $overwrite['device_type'] = $dt;
1782
+            $inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1783
+        }
1784
+    }
1785 1785
 
1786
-	return $inputs;
1786
+    return $inputs;
1787 1787
 }
1788 1788
 
1789 1789
 
1790 1790
 function sd_get_flex_align_self_input( $type = 'flex_align_self', $overwrite = array() ) {
1791
-	$device_size = '';
1792
-	if ( ! empty( $overwrite['device_type'] ) ) {
1793
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1794
-			$device_size = '-md';
1795
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1796
-			$device_size = '-lg';
1797
-		}
1798
-	}
1799
-	$options = array(
1800
-		''                                         => __( 'Default', 'ayecode-connect' ),
1801
-		'align-items' . $device_size . '-start'    => 'align-items-start',
1802
-		'align-items' . $device_size . '-end'      => 'align-items-end',
1803
-		'align-items' . $device_size . '-center'   => 'align-items-center',
1804
-		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1805
-		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1806
-	);
1807
-
1808
-	$defaults = array(
1809
-		'type'            => 'select',
1810
-		'title'           => __( 'Align Self', 'ayecode-connect' ),
1811
-		'options'         => $options,
1812
-		'default'         => '',
1813
-		'desc_tip'        => true,
1814
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1815
-		'element_require' => ' [%container%]=="col" ',
1816
-
1817
-	);
1818
-
1819
-	$input = wp_parse_args( $overwrite, $defaults );
1820
-
1821
-	return $input;
1791
+    $device_size = '';
1792
+    if ( ! empty( $overwrite['device_type'] ) ) {
1793
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1794
+            $device_size = '-md';
1795
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1796
+            $device_size = '-lg';
1797
+        }
1798
+    }
1799
+    $options = array(
1800
+        ''                                         => __( 'Default', 'ayecode-connect' ),
1801
+        'align-items' . $device_size . '-start'    => 'align-items-start',
1802
+        'align-items' . $device_size . '-end'      => 'align-items-end',
1803
+        'align-items' . $device_size . '-center'   => 'align-items-center',
1804
+        'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1805
+        'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1806
+    );
1807
+
1808
+    $defaults = array(
1809
+        'type'            => 'select',
1810
+        'title'           => __( 'Align Self', 'ayecode-connect' ),
1811
+        'options'         => $options,
1812
+        'default'         => '',
1813
+        'desc_tip'        => true,
1814
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1815
+        'element_require' => ' [%container%]=="col" ',
1816
+
1817
+    );
1818
+
1819
+    $input = wp_parse_args( $overwrite, $defaults );
1820
+
1821
+    return $input;
1822 1822
 }
1823 1823
 
1824 1824
 function sd_get_flex_align_self_input_group( $type = 'flex_align_self', $overwrite = array() ) {
1825
-	$inputs = array();
1826
-	$sizes  = array(
1827
-		''    => 'Mobile',
1828
-		'_md' => 'Tablet',
1829
-		'_lg' => 'Desktop',
1830
-	);
1825
+    $inputs = array();
1826
+    $sizes  = array(
1827
+        ''    => 'Mobile',
1828
+        '_md' => 'Tablet',
1829
+        '_lg' => 'Desktop',
1830
+    );
1831 1831
 
1832
-	if ( $overwrite !== false ) {
1832
+    if ( $overwrite !== false ) {
1833 1833
 
1834
-		foreach ( $sizes as $ds => $dt ) {
1835
-			$overwrite['device_type'] = $dt;
1836
-			$inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1837
-		}
1838
-	}
1834
+        foreach ( $sizes as $ds => $dt ) {
1835
+            $overwrite['device_type'] = $dt;
1836
+            $inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1837
+        }
1838
+    }
1839 1839
 
1840
-	return $inputs;
1840
+    return $inputs;
1841 1841
 }
1842 1842
 
1843 1843
 function sd_get_flex_order_input( $type = 'flex_order', $overwrite = array() ) {
1844
-	$device_size = '';
1845
-	if ( ! empty( $overwrite['device_type'] ) ) {
1846
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1847
-			$device_size = '-md';
1848
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1849
-			$device_size = '-lg';
1850
-		}
1851
-	}
1852
-	$options = array(
1853
-		'' => __( 'Default', 'ayecode-connect' ),
1854
-	);
1855
-
1856
-	$i = 0;
1857
-	while ( $i <= 5 ) {
1858
-		$options[ 'order' . $device_size . '-' . $i ] = $i;
1859
-		$i++;
1860
-	}
1861
-
1862
-	$defaults = array(
1863
-		'type'            => 'select',
1864
-		'title'           => __( 'Flex Order', 'ayecode-connect' ),
1865
-		'options'         => $options,
1866
-		'default'         => '',
1867
-		'desc_tip'        => true,
1868
-		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1869
-		'element_require' => ' [%container%]=="col" ',
1870
-
1871
-	);
1872
-
1873
-	$input = wp_parse_args( $overwrite, $defaults );
1874
-
1875
-	return $input;
1844
+    $device_size = '';
1845
+    if ( ! empty( $overwrite['device_type'] ) ) {
1846
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1847
+            $device_size = '-md';
1848
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1849
+            $device_size = '-lg';
1850
+        }
1851
+    }
1852
+    $options = array(
1853
+        '' => __( 'Default', 'ayecode-connect' ),
1854
+    );
1855
+
1856
+    $i = 0;
1857
+    while ( $i <= 5 ) {
1858
+        $options[ 'order' . $device_size . '-' . $i ] = $i;
1859
+        $i++;
1860
+    }
1861
+
1862
+    $defaults = array(
1863
+        'type'            => 'select',
1864
+        'title'           => __( 'Flex Order', 'ayecode-connect' ),
1865
+        'options'         => $options,
1866
+        'default'         => '',
1867
+        'desc_tip'        => true,
1868
+        'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1869
+        'element_require' => ' [%container%]=="col" ',
1870
+
1871
+    );
1872
+
1873
+    $input = wp_parse_args( $overwrite, $defaults );
1874
+
1875
+    return $input;
1876 1876
 }
1877 1877
 
1878 1878
 function sd_get_flex_order_input_group( $type = 'flex_order', $overwrite = array() ) {
1879
-	$inputs = array();
1880
-	$sizes  = array(
1881
-		''    => 'Mobile',
1882
-		'_md' => 'Tablet',
1883
-		'_lg' => 'Desktop',
1884
-	);
1879
+    $inputs = array();
1880
+    $sizes  = array(
1881
+        ''    => 'Mobile',
1882
+        '_md' => 'Tablet',
1883
+        '_lg' => 'Desktop',
1884
+    );
1885 1885
 
1886
-	if ( $overwrite !== false ) {
1886
+    if ( $overwrite !== false ) {
1887 1887
 
1888
-		foreach ( $sizes as $ds => $dt ) {
1889
-			$overwrite['device_type'] = $dt;
1890
-			$inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1891
-		}
1892
-	}
1888
+        foreach ( $sizes as $ds => $dt ) {
1889
+            $overwrite['device_type'] = $dt;
1890
+            $inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1891
+        }
1892
+    }
1893 1893
 
1894
-	return $inputs;
1894
+    return $inputs;
1895 1895
 }
1896 1896
 
1897 1897
 function sd_get_flex_wrap_group( $type = 'flex_wrap', $overwrite = array() ) {
1898
-	$inputs = array();
1899
-	$sizes  = array(
1900
-		''    => 'Mobile',
1901
-		'_md' => 'Tablet',
1902
-		'_lg' => 'Desktop',
1903
-	);
1898
+    $inputs = array();
1899
+    $sizes  = array(
1900
+        ''    => 'Mobile',
1901
+        '_md' => 'Tablet',
1902
+        '_lg' => 'Desktop',
1903
+    );
1904 1904
 
1905
-	if ( $overwrite !== false ) {
1905
+    if ( $overwrite !== false ) {
1906 1906
 
1907
-		foreach ( $sizes as $ds => $dt ) {
1908
-			$overwrite['device_type'] = $dt;
1909
-			$inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1910
-		}
1911
-	}
1907
+        foreach ( $sizes as $ds => $dt ) {
1908
+            $overwrite['device_type'] = $dt;
1909
+            $inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1910
+        }
1911
+    }
1912 1912
 
1913
-	return $inputs;
1913
+    return $inputs;
1914 1914
 }
1915 1915
 
1916 1916
 function sd_get_flex_wrap_input( $type = 'flex_wrap', $overwrite = array() ) {
1917
-	$device_size = '';
1918
-	if ( ! empty( $overwrite['device_type'] ) ) {
1919
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1920
-			$device_size = '-md';
1921
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1922
-			$device_size = '-lg';
1923
-		}
1924
-	}
1925
-	$options = array(
1926
-		''                                      => __( 'Default', 'ayecode-connect' ),
1927
-		'flex' . $device_size . '-nowrap'       => 'nowrap',
1928
-		'flex' . $device_size . '-wrap'         => 'wrap',
1929
-		'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1930
-	);
1931
-
1932
-	$defaults = array(
1933
-		'type'     => 'select',
1934
-		'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1935
-		'options'  => $options,
1936
-		'default'  => '',
1937
-		'desc_tip' => true,
1938
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1939
-	);
1940
-
1941
-	$input = wp_parse_args( $overwrite, $defaults );
1942
-
1943
-	return $input;
1917
+    $device_size = '';
1918
+    if ( ! empty( $overwrite['device_type'] ) ) {
1919
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1920
+            $device_size = '-md';
1921
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1922
+            $device_size = '-lg';
1923
+        }
1924
+    }
1925
+    $options = array(
1926
+        ''                                      => __( 'Default', 'ayecode-connect' ),
1927
+        'flex' . $device_size . '-nowrap'       => 'nowrap',
1928
+        'flex' . $device_size . '-wrap'         => 'wrap',
1929
+        'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1930
+    );
1931
+
1932
+    $defaults = array(
1933
+        'type'     => 'select',
1934
+        'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1935
+        'options'  => $options,
1936
+        'default'  => '',
1937
+        'desc_tip' => true,
1938
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1939
+    );
1940
+
1941
+    $input = wp_parse_args( $overwrite, $defaults );
1942
+
1943
+    return $input;
1944 1944
 }
1945 1945
 
1946 1946
 function sd_get_float_group( $type = 'float', $overwrite = array() ) {
1947
-	$inputs = array();
1948
-	$sizes  = array(
1949
-		''    => 'Mobile',
1950
-		'_md' => 'Tablet',
1951
-		'_lg' => 'Desktop',
1952
-	);
1947
+    $inputs = array();
1948
+    $sizes  = array(
1949
+        ''    => 'Mobile',
1950
+        '_md' => 'Tablet',
1951
+        '_lg' => 'Desktop',
1952
+    );
1953 1953
 
1954
-	if ( $overwrite !== false ) {
1954
+    if ( $overwrite !== false ) {
1955 1955
 
1956
-		foreach ( $sizes as $ds => $dt ) {
1957
-			$overwrite['device_type'] = $dt;
1958
-			$inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1959
-		}
1960
-	}
1956
+        foreach ( $sizes as $ds => $dt ) {
1957
+            $overwrite['device_type'] = $dt;
1958
+            $inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1959
+        }
1960
+    }
1961 1961
 
1962
-	return $inputs;
1962
+    return $inputs;
1963 1963
 }
1964 1964
 function sd_get_float_input( $type = 'float', $overwrite = array() ) {
1965
-	$device_size = '';
1966
-	if ( ! empty( $overwrite['device_type'] ) ) {
1967
-		if ( $overwrite['device_type'] == 'Tablet' ) {
1968
-			$device_size = '-md';
1969
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1970
-			$device_size = '-lg';
1971
-		}
1972
-	}
1973
-	$options = array(
1974
-		''                                      => __( 'Default', 'ayecode-connect' ),
1975
-		'float' . $device_size . '-start'       => 'left',
1976
-		'float' . $device_size . '-end'         => 'right',
1977
-		'float' . $device_size . '-none' => 'none',
1978
-	);
1979
-
1980
-	$defaults = array(
1981
-		'type'     => 'select',
1982
-		'title'    => __( 'Float', 'ayecode-connect' ),
1983
-		'options'  => $options,
1984
-		'default'  => '',
1985
-		'desc_tip' => true,
1986
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1987
-	);
1988
-
1989
-	$input = wp_parse_args( $overwrite, $defaults );
1990
-
1991
-	return $input;
1965
+    $device_size = '';
1966
+    if ( ! empty( $overwrite['device_type'] ) ) {
1967
+        if ( $overwrite['device_type'] == 'Tablet' ) {
1968
+            $device_size = '-md';
1969
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
1970
+            $device_size = '-lg';
1971
+        }
1972
+    }
1973
+    $options = array(
1974
+        ''                                      => __( 'Default', 'ayecode-connect' ),
1975
+        'float' . $device_size . '-start'       => 'left',
1976
+        'float' . $device_size . '-end'         => 'right',
1977
+        'float' . $device_size . '-none' => 'none',
1978
+    );
1979
+
1980
+    $defaults = array(
1981
+        'type'     => 'select',
1982
+        'title'    => __( 'Float', 'ayecode-connect' ),
1983
+        'options'  => $options,
1984
+        'default'  => '',
1985
+        'desc_tip' => true,
1986
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1987
+    );
1988
+
1989
+    $input = wp_parse_args( $overwrite, $defaults );
1990
+
1991
+    return $input;
1992 1992
 }
1993 1993
 
1994 1994
 /**
@@ -1999,26 +1999,26 @@  discard block
 block discarded – undo
1999 1999
  */
2000 2000
 function sd_get_zindex_input( $type = 'zindex', $overwrite = array() ) {
2001 2001
 
2002
-	$options = array(
2003
-		''          => __( 'Default', 'ayecode-connect' ),
2004
-		'zindex-0'  => '0',
2005
-		'zindex-1'  => '1',
2006
-		'zindex-5'  => '5',
2007
-		'zindex-10' => '10',
2008
-	);
2002
+    $options = array(
2003
+        ''          => __( 'Default', 'ayecode-connect' ),
2004
+        'zindex-0'  => '0',
2005
+        'zindex-1'  => '1',
2006
+        'zindex-5'  => '5',
2007
+        'zindex-10' => '10',
2008
+    );
2009 2009
 
2010
-	$defaults = array(
2011
-		'type'     => 'select',
2012
-		'title'    => __( 'Z-index', 'ayecode-connect' ),
2013
-		'options'  => $options,
2014
-		'default'  => '',
2015
-		'desc_tip' => true,
2016
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2017
-	);
2010
+    $defaults = array(
2011
+        'type'     => 'select',
2012
+        'title'    => __( 'Z-index', 'ayecode-connect' ),
2013
+        'options'  => $options,
2014
+        'default'  => '',
2015
+        'desc_tip' => true,
2016
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2017
+    );
2018 2018
 
2019
-	$input = wp_parse_args( $overwrite, $defaults );
2019
+    $input = wp_parse_args( $overwrite, $defaults );
2020 2020
 
2021
-	return $input;
2021
+    return $input;
2022 2022
 }
2023 2023
 
2024 2024
 /**
@@ -2029,26 +2029,26 @@  discard block
 block discarded – undo
2029 2029
  */
2030 2030
 function sd_get_overflow_input( $type = 'overflow', $overwrite = array() ) {
2031 2031
 
2032
-	$options = array(
2033
-		''                 => __( 'Default', 'ayecode-connect' ),
2034
-		'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2035
-		'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2036
-		'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2037
-		'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2038
-	);
2032
+    $options = array(
2033
+        ''                 => __( 'Default', 'ayecode-connect' ),
2034
+        'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2035
+        'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2036
+        'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2037
+        'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2038
+    );
2039 2039
 
2040
-	$defaults = array(
2041
-		'type'     => 'select',
2042
-		'title'    => __( 'Overflow', 'ayecode-connect' ),
2043
-		'options'  => $options,
2044
-		'default'  => '',
2045
-		'desc_tip' => true,
2046
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2047
-	);
2040
+    $defaults = array(
2041
+        'type'     => 'select',
2042
+        'title'    => __( 'Overflow', 'ayecode-connect' ),
2043
+        'options'  => $options,
2044
+        'default'  => '',
2045
+        'desc_tip' => true,
2046
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2047
+    );
2048 2048
 
2049
-	$input = wp_parse_args( $overwrite, $defaults );
2049
+    $input = wp_parse_args( $overwrite, $defaults );
2050 2050
 
2051
-	return $input;
2051
+    return $input;
2052 2052
 }
2053 2053
 
2054 2054
 /**
@@ -2059,19 +2059,19 @@  discard block
 block discarded – undo
2059 2059
  */
2060 2060
 function sd_get_max_height_input( $type = 'max_height', $overwrite = array() ) {
2061 2061
 
2062
-	$defaults = array(
2063
-		'type'        => 'text',
2064
-		'title'       => __( 'Max height', 'ayecode-connect' ),
2065
-		'value'       => '',
2066
-		'default'     => '',
2067
-		'placeholder' => '',
2068
-		'desc_tip'    => true,
2069
-		'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2070
-	);
2062
+    $defaults = array(
2063
+        'type'        => 'text',
2064
+        'title'       => __( 'Max height', 'ayecode-connect' ),
2065
+        'value'       => '',
2066
+        'default'     => '',
2067
+        'placeholder' => '',
2068
+        'desc_tip'    => true,
2069
+        'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2070
+    );
2071 2071
 
2072
-	$input = wp_parse_args( $overwrite, $defaults );
2072
+    $input = wp_parse_args( $overwrite, $defaults );
2073 2073
 
2074
-	return $input;
2074
+    return $input;
2075 2075
 }
2076 2076
 
2077 2077
 /**
@@ -2082,23 +2082,23 @@  discard block
 block discarded – undo
2082 2082
  */
2083 2083
 function sd_get_scrollbars_input( $type = 'scrollbars', $overwrite = array() ) {
2084 2084
 
2085
-	$options = array(
2086
-		''               => __( 'Default', 'ayecode-connect' ),
2087
-		'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2088
-	);
2085
+    $options = array(
2086
+        ''               => __( 'Default', 'ayecode-connect' ),
2087
+        'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2088
+    );
2089 2089
 
2090
-	$defaults = array(
2091
-		'type'     => 'select',
2092
-		'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2093
-		'options'  => $options,
2094
-		'default'  => '',
2095
-		'desc_tip' => true,
2096
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2097
-	);
2090
+    $defaults = array(
2091
+        'type'     => 'select',
2092
+        'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2093
+        'options'  => $options,
2094
+        'default'  => '',
2095
+        'desc_tip' => true,
2096
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2097
+    );
2098 2098
 
2099
-	$input = wp_parse_args( $overwrite, $defaults );
2099
+    $input = wp_parse_args( $overwrite, $defaults );
2100 2100
 
2101
-	return $input;
2101
+    return $input;
2102 2102
 }
2103 2103
 
2104 2104
 /**
@@ -2109,17 +2109,17 @@  discard block
 block discarded – undo
2109 2109
  */
2110 2110
 function sd_get_new_window_input( $type = 'target', $overwrite = array() ) {
2111 2111
 
2112
-	$defaults = array(
2113
-		'type'     => 'checkbox',
2114
-		'title'    => __( 'Open in new window', 'ayecode-connect' ),
2115
-		'default'  => '',
2116
-		'desc_tip' => true,
2117
-		'group'    => __( 'Link', 'ayecode-connect' ),
2118
-	);
2112
+    $defaults = array(
2113
+        'type'     => 'checkbox',
2114
+        'title'    => __( 'Open in new window', 'ayecode-connect' ),
2115
+        'default'  => '',
2116
+        'desc_tip' => true,
2117
+        'group'    => __( 'Link', 'ayecode-connect' ),
2118
+    );
2119 2119
 
2120
-	$input = wp_parse_args( $overwrite, $defaults );
2120
+    $input = wp_parse_args( $overwrite, $defaults );
2121 2121
 
2122
-	return $input;
2122
+    return $input;
2123 2123
 }
2124 2124
 
2125 2125
 /**
@@ -2130,17 +2130,17 @@  discard block
 block discarded – undo
2130 2130
  */
2131 2131
 function sd_get_nofollow_input( $type = 'nofollow', $overwrite = array() ) {
2132 2132
 
2133
-	$defaults = array(
2134
-		'type'     => 'checkbox',
2135
-		'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2136
-		'default'  => '',
2137
-		'desc_tip' => true,
2138
-		'group'    => __( 'Link', 'ayecode-connect' ),
2139
-	);
2133
+    $defaults = array(
2134
+        'type'     => 'checkbox',
2135
+        'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2136
+        'default'  => '',
2137
+        'desc_tip' => true,
2138
+        'group'    => __( 'Link', 'ayecode-connect' ),
2139
+    );
2140 2140
 
2141
-	$input = wp_parse_args( $overwrite, $defaults );
2141
+    $input = wp_parse_args( $overwrite, $defaults );
2142 2142
 
2143
-	return $input;
2143
+    return $input;
2144 2144
 }
2145 2145
 
2146 2146
 /**
@@ -2153,35 +2153,35 @@  discard block
 block discarded – undo
2153 2153
  */
2154 2154
 function sd_get_width_input( $type = 'width', $overwrite = array() ) {
2155 2155
 
2156
-	$device_size = '';
2157
-	if ( ! empty( $overwrite['device_type'] ) ) {
2158
-		if ( $overwrite['device_type'] == 'Tablet' ) {
2159
-			$device_size = '-md';
2160
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2161
-			$device_size = '-lg';
2162
-		}
2163
-	}
2164
-	$options = array(
2165
-		'' => __('Default', 'ayecode-connect'),
2166
-		'w' . $device_size . '-25' => '25%',
2167
-		'w' . $device_size . '-50' => '50%',
2168
-		'w' . $device_size . '-75' => '75%',
2169
-		'w' . $device_size . '-100' => '100%',
2170
-		'w' . $device_size . '-auto' => 'auto',
2171
-	);
2172
-
2173
-	$defaults = array(
2174
-		'type'     => 'select',
2175
-		'title'    => __( 'Width', 'ayecode-connect' ),
2176
-		'options'  => $options,
2177
-		'default'  => '',
2178
-		'desc_tip' => true,
2179
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2180
-	);
2181
-
2182
-	$input = wp_parse_args( $overwrite, $defaults );
2183
-
2184
-	return $input;
2156
+    $device_size = '';
2157
+    if ( ! empty( $overwrite['device_type'] ) ) {
2158
+        if ( $overwrite['device_type'] == 'Tablet' ) {
2159
+            $device_size = '-md';
2160
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
2161
+            $device_size = '-lg';
2162
+        }
2163
+    }
2164
+    $options = array(
2165
+        '' => __('Default', 'ayecode-connect'),
2166
+        'w' . $device_size . '-25' => '25%',
2167
+        'w' . $device_size . '-50' => '50%',
2168
+        'w' . $device_size . '-75' => '75%',
2169
+        'w' . $device_size . '-100' => '100%',
2170
+        'w' . $device_size . '-auto' => 'auto',
2171
+    );
2172
+
2173
+    $defaults = array(
2174
+        'type'     => 'select',
2175
+        'title'    => __( 'Width', 'ayecode-connect' ),
2176
+        'options'  => $options,
2177
+        'default'  => '',
2178
+        'desc_tip' => true,
2179
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2180
+    );
2181
+
2182
+    $input = wp_parse_args( $overwrite, $defaults );
2183
+
2184
+    return $input;
2185 2185
 }
2186 2186
 
2187 2187
 /**
@@ -2194,35 +2194,35 @@  discard block
 block discarded – undo
2194 2194
  */
2195 2195
 function sd_get_height_input( $type = 'height', $overwrite = array() ) {
2196 2196
 
2197
-	$device_size = '';
2198
-	if ( ! empty( $overwrite['device_type'] ) ) {
2199
-		if ( $overwrite['device_type'] == 'Tablet' ) {
2200
-			$device_size = '-md';
2201
-		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2202
-			$device_size = '-lg';
2203
-		}
2204
-	}
2205
-	$options = array(
2206
-		'' => __('Default', 'ayecode-connect'),
2207
-		'h' . $device_size . '-25' => '25%',
2208
-		'h' . $device_size . '-50' => '50%',
2209
-		'h' . $device_size . '-75' => '75%',
2210
-		'h' . $device_size . '-100' => '100%',
2211
-		'h' . $device_size . '-auto' => 'auto',
2212
-	);
2213
-
2214
-	$defaults = array(
2215
-		'type'     => 'select',
2216
-		'title'    => __( 'Height', 'ayecode-connect' ),
2217
-		'options'  => $options,
2218
-		'default'  => '',
2219
-		'desc_tip' => true,
2220
-		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2221
-	);
2222
-
2223
-	$input = wp_parse_args( $overwrite, $defaults );
2224
-
2225
-	return $input;
2197
+    $device_size = '';
2198
+    if ( ! empty( $overwrite['device_type'] ) ) {
2199
+        if ( $overwrite['device_type'] == 'Tablet' ) {
2200
+            $device_size = '-md';
2201
+        } elseif ( $overwrite['device_type'] == 'Desktop' ) {
2202
+            $device_size = '-lg';
2203
+        }
2204
+    }
2205
+    $options = array(
2206
+        '' => __('Default', 'ayecode-connect'),
2207
+        'h' . $device_size . '-25' => '25%',
2208
+        'h' . $device_size . '-50' => '50%',
2209
+        'h' . $device_size . '-75' => '75%',
2210
+        'h' . $device_size . '-100' => '100%',
2211
+        'h' . $device_size . '-auto' => 'auto',
2212
+    );
2213
+
2214
+    $defaults = array(
2215
+        'type'     => 'select',
2216
+        'title'    => __( 'Height', 'ayecode-connect' ),
2217
+        'options'  => $options,
2218
+        'default'  => '',
2219
+        'desc_tip' => true,
2220
+        'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2221
+    );
2222
+
2223
+    $input = wp_parse_args( $overwrite, $defaults );
2224
+
2225
+    return $input;
2226 2226
 }
2227 2227
 
2228 2228
 /**
@@ -2233,19 +2233,19 @@  discard block
 block discarded – undo
2233 2233
  */
2234 2234
 function sd_get_attributes_input( $type = 'attributes', $overwrite = array() ) {
2235 2235
 
2236
-	$defaults = array(
2237
-		'type'        => 'text',
2238
-		'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2239
-		'value'       => '',
2240
-		'default'     => '',
2241
-		'placeholder' => 'key|value,key2|value2',
2242
-		'desc_tip'    => true,
2243
-		'group'       => __( 'Link', 'ayecode-connect' ),
2244
-	);
2236
+    $defaults = array(
2237
+        'type'        => 'text',
2238
+        'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2239
+        'value'       => '',
2240
+        'default'     => '',
2241
+        'placeholder' => 'key|value,key2|value2',
2242
+        'desc_tip'    => true,
2243
+        'group'       => __( 'Link', 'ayecode-connect' ),
2244
+    );
2245 2245
 
2246
-	$input = wp_parse_args( $overwrite, $defaults );
2246
+    $input = wp_parse_args( $overwrite, $defaults );
2247 2247
 
2248
-	return $input;
2248
+    return $input;
2249 2249
 }
2250 2250
 
2251 2251
 /**
@@ -2254,32 +2254,32 @@  discard block
 block discarded – undo
2254 2254
  * @return string
2255 2255
  */
2256 2256
 function sd_build_attributes_string_escaped( $args ) {
2257
-	global $aui_bs5;
2257
+    global $aui_bs5;
2258 2258
 
2259
-	$attributes = array();
2260
-	$string_escaped = '';
2259
+    $attributes = array();
2260
+    $string_escaped = '';
2261 2261
 
2262
-	if ( ! empty( $args['custom'] ) ) {
2263
-		$attributes = sd_parse_custom_attributes($args['custom']);
2264
-	}
2262
+    if ( ! empty( $args['custom'] ) ) {
2263
+        $attributes = sd_parse_custom_attributes($args['custom']);
2264
+    }
2265 2265
 
2266
-	// new window
2267
-	if ( ! empty( $args['new_window'] ) ) {
2268
-		$attributes['target'] = '_blank';
2269
-	}
2266
+    // new window
2267
+    if ( ! empty( $args['new_window'] ) ) {
2268
+        $attributes['target'] = '_blank';
2269
+    }
2270 2270
 
2271
-	// nofollow
2272
-	if ( ! empty( $args['nofollow'] ) ) {
2273
-		$attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2274
-	}
2271
+    // nofollow
2272
+    if ( ! empty( $args['nofollow'] ) ) {
2273
+        $attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2274
+    }
2275 2275
 
2276
-	if(!empty($attributes )){
2277
-		foreach ( $attributes as $key => $val ) {
2278
-			$string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2279
-		}
2280
-	}
2276
+    if(!empty($attributes )){
2277
+        foreach ( $attributes as $key => $val ) {
2278
+            $string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2279
+        }
2280
+    }
2281 2281
 
2282
-	return $string_escaped;
2282
+    return $string_escaped;
2283 2283
 }
2284 2284
 
2285 2285
 /**
@@ -2291,38 +2291,38 @@  discard block
 block discarded – undo
2291 2291
  * @return array
2292 2292
  */
2293 2293
 function sd_parse_custom_attributes( $attributes_string, $delimiter = ',' ) {
2294
-	$attributes = explode( $delimiter, $attributes_string );
2295
-	$result = [];
2294
+    $attributes = explode( $delimiter, $attributes_string );
2295
+    $result = [];
2296 2296
 
2297
-	foreach ( $attributes as $attribute ) {
2298
-		$attr_key_value = explode( '|', $attribute );
2297
+    foreach ( $attributes as $attribute ) {
2298
+        $attr_key_value = explode( '|', $attribute );
2299 2299
 
2300
-		$attr_key = mb_strtolower( $attr_key_value[0] );
2300
+        $attr_key = mb_strtolower( $attr_key_value[0] );
2301 2301
 
2302
-		// Remove any not allowed characters.
2303
-		preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2302
+        // Remove any not allowed characters.
2303
+        preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2304 2304
 
2305
-		if ( empty( $attr_key_matches[0] ) ) {
2306
-			continue;
2307
-		}
2305
+        if ( empty( $attr_key_matches[0] ) ) {
2306
+            continue;
2307
+        }
2308 2308
 
2309
-		$attr_key = $attr_key_matches[0];
2309
+        $attr_key = $attr_key_matches[0];
2310 2310
 
2311
-		// Avoid Javascript events and unescaped href.
2312
-		if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2313
-			continue;
2314
-		}
2311
+        // Avoid Javascript events and unescaped href.
2312
+        if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2313
+            continue;
2314
+        }
2315 2315
 
2316
-		if ( isset( $attr_key_value[1] ) ) {
2317
-			$attr_value = trim( $attr_key_value[1] );
2318
-		} else {
2319
-			$attr_value = '';
2320
-		}
2316
+        if ( isset( $attr_key_value[1] ) ) {
2317
+            $attr_value = trim( $attr_key_value[1] );
2318
+        } else {
2319
+            $attr_value = '';
2320
+        }
2321 2321
 
2322
-		$result[ $attr_key ] = $attr_value;
2323
-	}
2322
+        $result[ $attr_key ] = $attr_value;
2323
+    }
2324 2324
 
2325
-	return $result;
2325
+    return $result;
2326 2326
 }
2327 2327
 
2328 2328
 /**
@@ -2334,424 +2334,424 @@  discard block
 block discarded – undo
2334 2334
  * @todo find best way to use px- py- or general p-
2335 2335
  */
2336 2336
 function sd_build_aui_class( $args ) {
2337
-	global $aui_bs5;
2338
-
2339
-	$classes = array();
2340
-
2341
-	if ( $aui_bs5 ) {
2342
-		$p_ml = 'ms-';
2343
-		$p_mr = 'me-';
2344
-
2345
-		$p_pl = 'ps-';
2346
-		$p_pr = 'pe-';
2347
-	} else {
2348
-		$p_ml = 'ml-';
2349
-		$p_mr = 'mr-';
2350
-
2351
-		$p_pl = 'pl-';
2352
-		$p_pr = 'pr-';
2353
-	}
2354
-
2355
-	// margins.
2356
-	if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2357
-		$classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2358
-		$mt        = $args['mt'];
2359
-	} else {
2360
-		$mt = null;
2361
-	}
2362
-	if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2363
-		$classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2364
-		$mr        = $args['mr'];
2365
-	} else {
2366
-		$mr = null;
2367
-	}
2368
-	if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2369
-		$classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2370
-		$mb        = $args['mb'];
2371
-	} else {
2372
-		$mb = null;
2373
-	}
2374
-	if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2375
-		$classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2376
-		$ml        = $args['ml'];
2377
-	} else {
2378
-		$ml = null;
2379
-	}
2380
-
2381
-	// margins tablet.
2382
-	if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2383
-		$classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2384
-		$mt_md     = $args['mt_md'];
2385
-	} else {
2386
-		$mt_md = null;
2387
-	}
2388
-	if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2389
-		$classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2390
-		$mt_md     = $args['mr_md'];
2391
-	} else {
2392
-		$mr_md = null;
2393
-	}
2394
-	if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2395
-		$classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2396
-		$mt_md     = $args['mb_md'];
2397
-	} else {
2398
-		$mb_md = null;
2399
-	}
2400
-	if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2401
-		$classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2402
-		$mt_md     = $args['ml_md'];
2403
-	} else {
2404
-		$ml_md = null;
2405
-	}
2406
-
2407
-	// margins desktop.
2408
-	if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2409
-		if ( $mt == null && $mt_md == null ) {
2410
-			$classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2411
-		} else {
2412
-			$classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2413
-		}
2414
-	}
2415
-	if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2416
-		if ( $mr == null && $mr_md == null ) {
2417
-			$classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2418
-		} else {
2419
-			$classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2420
-		}
2421
-	}
2422
-	if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2423
-		if ( $mb == null && $mb_md == null ) {
2424
-			$classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2425
-		} else {
2426
-			$classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2427
-		}
2428
-	}
2429
-	if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2430
-		if ( $ml == null && $ml_md == null ) {
2431
-			$classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2432
-		} else {
2433
-			$classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2434
-		}
2435
-	}
2436
-
2437
-	// padding.
2438
-	if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2439
-		$classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2440
-		$pt        = $args['pt'];
2441
-	} else {
2442
-		$pt = null;
2443
-	}
2444
-	if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2445
-		$classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2446
-		$pr        = $args['pr'];
2447
-	} else {
2448
-		$pr = null;
2449
-	}
2450
-	if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2451
-		$classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2452
-		$pb        = $args['pb'];
2453
-	} else {
2454
-		$pb = null;
2455
-	}
2456
-	if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2457
-		$classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2458
-		$pl        = $args['pl'];
2459
-	} else {
2460
-		$pl = null;
2461
-	}
2462
-
2463
-	// padding tablet.
2464
-	if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2465
-		$classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2466
-		$pt_md     = $args['pt_md'];
2467
-	} else {
2468
-		$pt_md = null;
2469
-	}
2470
-	if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2471
-		$classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2472
-		$pr_md     = $args['pr_md'];
2473
-	} else {
2474
-		$pr_md = null;
2475
-	}
2476
-	if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2477
-		$classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2478
-		$pb_md     = $args['pb_md'];
2479
-	} else {
2480
-		$pb_md = null;
2481
-	}
2482
-	if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2483
-		$classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2484
-		$pl_md     = $args['pl_md'];
2485
-	} else {
2486
-		$pl_md = null;
2487
-	}
2488
-
2489
-	// padding desktop.
2490
-	if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2491
-		if ( $pt == null && $pt_md == null ) {
2492
-			$classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2493
-		} else {
2494
-			$classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2495
-		}
2496
-	}
2497
-	if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2498
-		if ( $pr == null && $pr_md == null ) {
2499
-			$classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2500
-		} else {
2501
-			$classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2502
-		}
2503
-	}
2504
-	if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2505
-		if ( $pb == null && $pb_md == null ) {
2506
-			$classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2507
-		} else {
2508
-			$classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2509
-		}
2510
-	}
2511
-	if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2512
-		if ( $pl == null && $pl_md == null ) {
2513
-			$classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2514
-		} else {
2515
-			$classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2516
-		}
2517
-	}
2518
-
2519
-	// row cols, mobile, tablet, desktop
2520
-	if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2521
-		$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2522
-		$row_cols  = $args['row_cols'];
2523
-	} else {
2524
-		$row_cols = null;
2525
-	}
2526
-	if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2527
-		$classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2528
-		$row_cols_md = $args['row_cols_md'];
2529
-	} else {
2530
-		$row_cols_md = null;
2531
-	}
2532
-	if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2533
-		if ( $row_cols == null && $row_cols_md == null ) {
2534
-			$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2535
-		} else {
2536
-			$classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2537
-		}
2538
-	}
2539
-
2540
-	// columns , mobile, tablet, desktop
2541
-	if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2542
-		$classes[] = sanitize_html_class( 'col-' . $args['col'] );
2543
-		$col       = $args['col'];
2544
-	} else {
2545
-		$col = null;
2546
-	}
2547
-	if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2548
-		$classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2549
-		$col_md    = $args['col_md'];
2550
-	} else {
2551
-		$col_md = null;
2552
-	}
2553
-	if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2554
-		if ( $col == null && $col_md == null ) {
2555
-			$classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2556
-		} else {
2557
-			$classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2558
-		}
2559
-	}
2560
-
2561
-	// border
2562
-	if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2563
-		$classes[] = 'border-0';
2564
-	} elseif ( ! empty( $args['border'] ) ) {
2565
-		$border_class = 'border';
2566
-		if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2567
-			$border_class = '';
2568
-		}
2569
-		$classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2570
-	}
2571
-
2572
-	// border radius type
2573
-	if ( ! empty( $args['rounded'] ) ) {
2574
-		$classes[] = sanitize_html_class( $args['rounded'] );
2575
-	}
2576
-
2577
-	// border radius size BS4
2578
-	if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2579
-		$classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2580
-		// if we set a size then we need to remove "rounded" if set
2581
-		if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2582
-			unset( $classes[ $key ] );
2583
-		}
2584
-	} else {
2585
-
2586
-		// border radius size , mobile, tablet, desktop
2587
-		if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2588
-			$classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2589
-			$rounded_size = $args['rounded_size'];
2590
-		} else {
2591
-			$rounded_size = null;
2592
-		}
2593
-		if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2594
-			$classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2595
-			$rounded_size_md = $args['rounded_size_md'];
2596
-		} else {
2597
-			$rounded_size_md = null;
2598
-		}
2599
-		if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2600
-			if ( $rounded_size == null && $rounded_size_md == null ) {
2601
-				$classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2602
-			} else {
2603
-				$classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2604
-			}
2605
-		}
2606
-	}
2607
-
2608
-	// shadow
2609
-	//if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2610
-
2611
-	// background
2612
-	if ( ! empty( $args['bg'] ) ) {
2613
-		$classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2614
-	}
2615
-
2616
-	// background image fixed bg_image_fixed this helps fix a iOS bug
2617
-	if ( ! empty( $args['bg_image_fixed'] ) ) {
2618
-		$classes[] = 'bg-image-fixed';
2619
-	}
2620
-
2621
-	// text_color
2622
-	if ( ! empty( $args['text_color'] ) ) {
2623
-		$classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2624
-	}
2625
-
2626
-	// text_align
2627
-	if ( ! empty( $args['text_justify'] ) ) {
2628
-		$classes[] = 'text-justify';
2629
-	} else {
2630
-		if ( ! empty( $args['text_align'] ) ) {
2631
-			$classes[]  = sanitize_html_class( $args['text_align'] );
2632
-			$text_align = $args['text_align'];
2633
-		} else {
2634
-			$text_align = null;
2635
-		}
2636
-		if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2637
-			$classes[]     = sanitize_html_class( $args['text_align_md'] );
2638
-			$text_align_md = $args['text_align_md'];
2639
-		} else {
2640
-			$text_align_md = null;
2641
-		}
2642
-		if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2643
-			if ( $text_align == null && $text_align_md == null ) {
2644
-				$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2645
-			} else {
2646
-				$classes[] = sanitize_html_class( $args['text_align_lg'] );
2647
-			}
2648
-		}
2649
-	}
2650
-
2651
-	// display
2652
-	if ( ! empty( $args['display'] ) ) {
2653
-		$classes[] = sanitize_html_class( $args['display'] );
2654
-		$display   = $args['display'];
2655
-	} else {
2656
-		$display = null;
2657
-	}
2658
-	if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2659
-		$classes[]  = sanitize_html_class( $args['display_md'] );
2660
-		$display_md = $args['display_md'];
2661
-	} else {
2662
-		$display_md = null;
2663
-	}
2664
-	if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2665
-		if ( $display == null && $display_md == null ) {
2666
-			$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2667
-		} else {
2668
-			$classes[] = sanitize_html_class( $args['display_lg'] );
2669
-		}
2670
-	}
2671
-
2672
-	// bgtus - background transparent until scroll
2673
-	if ( ! empty( $args['bgtus'] ) ) {
2674
-		$classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2675
-	}
2676
-
2677
-	// cscos - change color scheme on scroll
2678
-	if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2679
-		$classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2680
-	}
2681
-
2682
-	// hover animations
2683
-	if ( ! empty( $args['hover_animations'] ) ) {
2684
-		$classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2685
-	}
2686
-
2687
-	// absolute_position
2688
-	if ( ! empty( $args['absolute_position'] ) ) {
2689
-		if ( 'top-left' === $args['absolute_position'] ) {
2690
-			$classes[] = 'start-0 top-0';
2691
-		} elseif ( 'top-center' === $args['absolute_position'] ) {
2692
-			$classes[] = 'start-50 top-0 translate-middle';
2693
-		} elseif ( 'top-right' === $args['absolute_position'] ) {
2694
-			$classes[] = 'end-0 top-0';
2695
-		} elseif ( 'center-left' === $args['absolute_position'] ) {
2696
-			$classes[] = 'start-0 top-50';
2697
-		} elseif ( 'center' === $args['absolute_position'] ) {
2698
-			$classes[] = 'start-50 top-50 translate-middle';
2699
-		} elseif ( 'center-right' === $args['absolute_position'] ) {
2700
-			$classes[] = 'end-0 top-50';
2701
-		} elseif ( 'bottom-left' === $args['absolute_position'] ) {
2702
-			$classes[] = 'start-0 bottom-0';
2703
-		} elseif ( 'bottom-center' === $args['absolute_position'] ) {
2704
-			$classes[] = 'start-50 bottom-0 translate-middle';
2705
-		} elseif ( 'bottom-right' === $args['absolute_position'] ) {
2706
-			$classes[] = 'end-0 bottom-0';
2707
-		}
2708
-	}
2709
-
2710
-	// build classes from build keys
2711
-	$build_keys = sd_get_class_build_keys();
2712
-	if ( ! empty( $build_keys ) ) {
2713
-		foreach ( $build_keys as $key ) {
2714
-
2715
-			if ( substr( $key, -4 ) == '-MTD' ) {
2716
-
2717
-				$k = str_replace( '-MTD', '', $key );
2718
-
2719
-				// Mobile, Tablet, Desktop
2720
-				if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2721
-					$classes[] = sanitize_html_class( $args[ $k ] );
2722
-					$v         = $args[ $k ];
2723
-				} else {
2724
-					$v = null;
2725
-				}
2726
-				if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2727
-					$classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2728
-					$v_md      = $args[ $k . '_md' ];
2729
-				} else {
2730
-					$v_md = null;
2731
-				}
2732
-				if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2733
-					if ( $v == null && $v_md == null ) {
2734
-						$classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2735
-					} else {
2736
-						$classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2737
-					}
2738
-				}
2739
-			} else {
2740
-				if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2741
-					continue;
2742
-				}
2743
-				if ( ! empty( $args[ $key ] ) ) {
2744
-					$classes[] = sd_sanitize_html_classes( $args[ $key ] );
2745
-				}
2746
-			}
2747
-		}
2748
-	}
2749
-
2750
-	if ( ! empty( $classes ) ) {
2751
-		$classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2752
-	}
2753
-
2754
-	return implode( ' ', $classes );
2337
+    global $aui_bs5;
2338
+
2339
+    $classes = array();
2340
+
2341
+    if ( $aui_bs5 ) {
2342
+        $p_ml = 'ms-';
2343
+        $p_mr = 'me-';
2344
+
2345
+        $p_pl = 'ps-';
2346
+        $p_pr = 'pe-';
2347
+    } else {
2348
+        $p_ml = 'ml-';
2349
+        $p_mr = 'mr-';
2350
+
2351
+        $p_pl = 'pl-';
2352
+        $p_pr = 'pr-';
2353
+    }
2354
+
2355
+    // margins.
2356
+    if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2357
+        $classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2358
+        $mt        = $args['mt'];
2359
+    } else {
2360
+        $mt = null;
2361
+    }
2362
+    if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2363
+        $classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2364
+        $mr        = $args['mr'];
2365
+    } else {
2366
+        $mr = null;
2367
+    }
2368
+    if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2369
+        $classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2370
+        $mb        = $args['mb'];
2371
+    } else {
2372
+        $mb = null;
2373
+    }
2374
+    if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2375
+        $classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2376
+        $ml        = $args['ml'];
2377
+    } else {
2378
+        $ml = null;
2379
+    }
2380
+
2381
+    // margins tablet.
2382
+    if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2383
+        $classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2384
+        $mt_md     = $args['mt_md'];
2385
+    } else {
2386
+        $mt_md = null;
2387
+    }
2388
+    if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2389
+        $classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2390
+        $mt_md     = $args['mr_md'];
2391
+    } else {
2392
+        $mr_md = null;
2393
+    }
2394
+    if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2395
+        $classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2396
+        $mt_md     = $args['mb_md'];
2397
+    } else {
2398
+        $mb_md = null;
2399
+    }
2400
+    if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2401
+        $classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2402
+        $mt_md     = $args['ml_md'];
2403
+    } else {
2404
+        $ml_md = null;
2405
+    }
2406
+
2407
+    // margins desktop.
2408
+    if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2409
+        if ( $mt == null && $mt_md == null ) {
2410
+            $classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2411
+        } else {
2412
+            $classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2413
+        }
2414
+    }
2415
+    if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2416
+        if ( $mr == null && $mr_md == null ) {
2417
+            $classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2418
+        } else {
2419
+            $classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2420
+        }
2421
+    }
2422
+    if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2423
+        if ( $mb == null && $mb_md == null ) {
2424
+            $classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2425
+        } else {
2426
+            $classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2427
+        }
2428
+    }
2429
+    if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2430
+        if ( $ml == null && $ml_md == null ) {
2431
+            $classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2432
+        } else {
2433
+            $classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2434
+        }
2435
+    }
2436
+
2437
+    // padding.
2438
+    if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2439
+        $classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2440
+        $pt        = $args['pt'];
2441
+    } else {
2442
+        $pt = null;
2443
+    }
2444
+    if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2445
+        $classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2446
+        $pr        = $args['pr'];
2447
+    } else {
2448
+        $pr = null;
2449
+    }
2450
+    if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2451
+        $classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2452
+        $pb        = $args['pb'];
2453
+    } else {
2454
+        $pb = null;
2455
+    }
2456
+    if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2457
+        $classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2458
+        $pl        = $args['pl'];
2459
+    } else {
2460
+        $pl = null;
2461
+    }
2462
+
2463
+    // padding tablet.
2464
+    if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2465
+        $classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2466
+        $pt_md     = $args['pt_md'];
2467
+    } else {
2468
+        $pt_md = null;
2469
+    }
2470
+    if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2471
+        $classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2472
+        $pr_md     = $args['pr_md'];
2473
+    } else {
2474
+        $pr_md = null;
2475
+    }
2476
+    if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2477
+        $classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2478
+        $pb_md     = $args['pb_md'];
2479
+    } else {
2480
+        $pb_md = null;
2481
+    }
2482
+    if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2483
+        $classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2484
+        $pl_md     = $args['pl_md'];
2485
+    } else {
2486
+        $pl_md = null;
2487
+    }
2488
+
2489
+    // padding desktop.
2490
+    if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2491
+        if ( $pt == null && $pt_md == null ) {
2492
+            $classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2493
+        } else {
2494
+            $classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2495
+        }
2496
+    }
2497
+    if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2498
+        if ( $pr == null && $pr_md == null ) {
2499
+            $classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2500
+        } else {
2501
+            $classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2502
+        }
2503
+    }
2504
+    if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2505
+        if ( $pb == null && $pb_md == null ) {
2506
+            $classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2507
+        } else {
2508
+            $classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2509
+        }
2510
+    }
2511
+    if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2512
+        if ( $pl == null && $pl_md == null ) {
2513
+            $classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2514
+        } else {
2515
+            $classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2516
+        }
2517
+    }
2518
+
2519
+    // row cols, mobile, tablet, desktop
2520
+    if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2521
+        $classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2522
+        $row_cols  = $args['row_cols'];
2523
+    } else {
2524
+        $row_cols = null;
2525
+    }
2526
+    if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2527
+        $classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2528
+        $row_cols_md = $args['row_cols_md'];
2529
+    } else {
2530
+        $row_cols_md = null;
2531
+    }
2532
+    if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2533
+        if ( $row_cols == null && $row_cols_md == null ) {
2534
+            $classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2535
+        } else {
2536
+            $classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2537
+        }
2538
+    }
2539
+
2540
+    // columns , mobile, tablet, desktop
2541
+    if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2542
+        $classes[] = sanitize_html_class( 'col-' . $args['col'] );
2543
+        $col       = $args['col'];
2544
+    } else {
2545
+        $col = null;
2546
+    }
2547
+    if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2548
+        $classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2549
+        $col_md    = $args['col_md'];
2550
+    } else {
2551
+        $col_md = null;
2552
+    }
2553
+    if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2554
+        if ( $col == null && $col_md == null ) {
2555
+            $classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2556
+        } else {
2557
+            $classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2558
+        }
2559
+    }
2560
+
2561
+    // border
2562
+    if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2563
+        $classes[] = 'border-0';
2564
+    } elseif ( ! empty( $args['border'] ) ) {
2565
+        $border_class = 'border';
2566
+        if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2567
+            $border_class = '';
2568
+        }
2569
+        $classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2570
+    }
2571
+
2572
+    // border radius type
2573
+    if ( ! empty( $args['rounded'] ) ) {
2574
+        $classes[] = sanitize_html_class( $args['rounded'] );
2575
+    }
2576
+
2577
+    // border radius size BS4
2578
+    if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2579
+        $classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2580
+        // if we set a size then we need to remove "rounded" if set
2581
+        if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2582
+            unset( $classes[ $key ] );
2583
+        }
2584
+    } else {
2585
+
2586
+        // border radius size , mobile, tablet, desktop
2587
+        if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2588
+            $classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2589
+            $rounded_size = $args['rounded_size'];
2590
+        } else {
2591
+            $rounded_size = null;
2592
+        }
2593
+        if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2594
+            $classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2595
+            $rounded_size_md = $args['rounded_size_md'];
2596
+        } else {
2597
+            $rounded_size_md = null;
2598
+        }
2599
+        if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2600
+            if ( $rounded_size == null && $rounded_size_md == null ) {
2601
+                $classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2602
+            } else {
2603
+                $classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2604
+            }
2605
+        }
2606
+    }
2607
+
2608
+    // shadow
2609
+    //if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2610
+
2611
+    // background
2612
+    if ( ! empty( $args['bg'] ) ) {
2613
+        $classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2614
+    }
2615
+
2616
+    // background image fixed bg_image_fixed this helps fix a iOS bug
2617
+    if ( ! empty( $args['bg_image_fixed'] ) ) {
2618
+        $classes[] = 'bg-image-fixed';
2619
+    }
2620
+
2621
+    // text_color
2622
+    if ( ! empty( $args['text_color'] ) ) {
2623
+        $classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2624
+    }
2625
+
2626
+    // text_align
2627
+    if ( ! empty( $args['text_justify'] ) ) {
2628
+        $classes[] = 'text-justify';
2629
+    } else {
2630
+        if ( ! empty( $args['text_align'] ) ) {
2631
+            $classes[]  = sanitize_html_class( $args['text_align'] );
2632
+            $text_align = $args['text_align'];
2633
+        } else {
2634
+            $text_align = null;
2635
+        }
2636
+        if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2637
+            $classes[]     = sanitize_html_class( $args['text_align_md'] );
2638
+            $text_align_md = $args['text_align_md'];
2639
+        } else {
2640
+            $text_align_md = null;
2641
+        }
2642
+        if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2643
+            if ( $text_align == null && $text_align_md == null ) {
2644
+                $classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2645
+            } else {
2646
+                $classes[] = sanitize_html_class( $args['text_align_lg'] );
2647
+            }
2648
+        }
2649
+    }
2650
+
2651
+    // display
2652
+    if ( ! empty( $args['display'] ) ) {
2653
+        $classes[] = sanitize_html_class( $args['display'] );
2654
+        $display   = $args['display'];
2655
+    } else {
2656
+        $display = null;
2657
+    }
2658
+    if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2659
+        $classes[]  = sanitize_html_class( $args['display_md'] );
2660
+        $display_md = $args['display_md'];
2661
+    } else {
2662
+        $display_md = null;
2663
+    }
2664
+    if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2665
+        if ( $display == null && $display_md == null ) {
2666
+            $classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2667
+        } else {
2668
+            $classes[] = sanitize_html_class( $args['display_lg'] );
2669
+        }
2670
+    }
2671
+
2672
+    // bgtus - background transparent until scroll
2673
+    if ( ! empty( $args['bgtus'] ) ) {
2674
+        $classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2675
+    }
2676
+
2677
+    // cscos - change color scheme on scroll
2678
+    if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2679
+        $classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2680
+    }
2681
+
2682
+    // hover animations
2683
+    if ( ! empty( $args['hover_animations'] ) ) {
2684
+        $classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2685
+    }
2686
+
2687
+    // absolute_position
2688
+    if ( ! empty( $args['absolute_position'] ) ) {
2689
+        if ( 'top-left' === $args['absolute_position'] ) {
2690
+            $classes[] = 'start-0 top-0';
2691
+        } elseif ( 'top-center' === $args['absolute_position'] ) {
2692
+            $classes[] = 'start-50 top-0 translate-middle';
2693
+        } elseif ( 'top-right' === $args['absolute_position'] ) {
2694
+            $classes[] = 'end-0 top-0';
2695
+        } elseif ( 'center-left' === $args['absolute_position'] ) {
2696
+            $classes[] = 'start-0 top-50';
2697
+        } elseif ( 'center' === $args['absolute_position'] ) {
2698
+            $classes[] = 'start-50 top-50 translate-middle';
2699
+        } elseif ( 'center-right' === $args['absolute_position'] ) {
2700
+            $classes[] = 'end-0 top-50';
2701
+        } elseif ( 'bottom-left' === $args['absolute_position'] ) {
2702
+            $classes[] = 'start-0 bottom-0';
2703
+        } elseif ( 'bottom-center' === $args['absolute_position'] ) {
2704
+            $classes[] = 'start-50 bottom-0 translate-middle';
2705
+        } elseif ( 'bottom-right' === $args['absolute_position'] ) {
2706
+            $classes[] = 'end-0 bottom-0';
2707
+        }
2708
+    }
2709
+
2710
+    // build classes from build keys
2711
+    $build_keys = sd_get_class_build_keys();
2712
+    if ( ! empty( $build_keys ) ) {
2713
+        foreach ( $build_keys as $key ) {
2714
+
2715
+            if ( substr( $key, -4 ) == '-MTD' ) {
2716
+
2717
+                $k = str_replace( '-MTD', '', $key );
2718
+
2719
+                // Mobile, Tablet, Desktop
2720
+                if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2721
+                    $classes[] = sanitize_html_class( $args[ $k ] );
2722
+                    $v         = $args[ $k ];
2723
+                } else {
2724
+                    $v = null;
2725
+                }
2726
+                if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2727
+                    $classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2728
+                    $v_md      = $args[ $k . '_md' ];
2729
+                } else {
2730
+                    $v_md = null;
2731
+                }
2732
+                if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2733
+                    if ( $v == null && $v_md == null ) {
2734
+                        $classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2735
+                    } else {
2736
+                        $classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2737
+                    }
2738
+                }
2739
+            } else {
2740
+                if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2741
+                    continue;
2742
+                }
2743
+                if ( ! empty( $args[ $key ] ) ) {
2744
+                    $classes[] = sd_sanitize_html_classes( $args[ $key ] );
2745
+                }
2746
+            }
2747
+        }
2748
+    }
2749
+
2750
+    if ( ! empty( $classes ) ) {
2751
+        $classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2752
+    }
2753
+
2754
+    return implode( ' ', $classes );
2755 2755
 }
2756 2756
 
2757 2757
 /**
@@ -2763,90 +2763,90 @@  discard block
 block discarded – undo
2763 2763
  */
2764 2764
 function sd_build_aui_styles( $args ) {
2765 2765
 
2766
-	$styles = array();
2767
-
2768
-	// background color
2769
-	if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2770
-		if ( $args['bg'] == 'custom-color' ) {
2771
-			$styles['background-color'] = $args['bg_color'];
2772
-		} elseif ( $args['bg'] == 'custom-gradient' ) {
2773
-			$styles['background-image'] = $args['bg_gradient'];
2774
-
2775
-			// use background on text.
2776
-			if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2777
-				$styles['background-clip']         = 'text';
2778
-				$styles['-webkit-background-clip'] = 'text';
2779
-				$styles['text-fill-color']         = 'transparent';
2780
-				$styles['-webkit-text-fill-color'] = 'transparent';
2781
-			}
2782
-		}
2783
-	}
2784
-
2785
-	if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2786
-		$hasImage = true;
2787
-		if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2788
-			$styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2789
-			$styles['background-blend-mode'] = 'overlay';
2790
-		} elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2791
-			$styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2792
-		} elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2793
-			// do nothing as we alreay have a preset
2794
-			$hasImage = false;
2795
-		} else {
2796
-			$styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2797
-		}
2798
-
2799
-		if ( $hasImage ) {
2800
-			$styles['background-size'] = 'cover';
2801
-
2802
-			if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2803
-				$styles['background-attachment'] = 'fixed';
2804
-			}
2805
-		}
2806
-
2807
-		if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2808
-			$styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2809
-		}
2810
-	}
2811
-
2812
-	// sticky offset top
2813
-	if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2814
-		$styles['top'] = absint( $args['sticky_offset_top'] );
2815
-	}
2816
-
2817
-	// sticky offset bottom
2818
-	if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2819
-		$styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2820
-	}
2821
-
2822
-	// font size
2823
-	if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2824
-		$styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2825
-	}
2826
-
2827
-	// font color
2828
-	if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2829
-		$styles['color'] = esc_attr( $args['text_color_custom'] );
2830
-	}
2831
-
2832
-	// font line height
2833
-	if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2834
-		$styles['line-height'] = esc_attr( $args['font_line_height'] );
2835
-	}
2836
-
2837
-	// max height
2838
-	if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2839
-		$styles['max-height'] = esc_attr( $args['max_height'] );
2840
-	}
2841
-
2842
-	$style_string = '';
2843
-	if ( ! empty( $styles ) ) {
2844
-		foreach ( $styles as $key => $val ) {
2845
-			$style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2846
-		}
2847
-	}
2848
-
2849
-	return $style_string;
2766
+    $styles = array();
2767
+
2768
+    // background color
2769
+    if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2770
+        if ( $args['bg'] == 'custom-color' ) {
2771
+            $styles['background-color'] = $args['bg_color'];
2772
+        } elseif ( $args['bg'] == 'custom-gradient' ) {
2773
+            $styles['background-image'] = $args['bg_gradient'];
2774
+
2775
+            // use background on text.
2776
+            if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2777
+                $styles['background-clip']         = 'text';
2778
+                $styles['-webkit-background-clip'] = 'text';
2779
+                $styles['text-fill-color']         = 'transparent';
2780
+                $styles['-webkit-text-fill-color'] = 'transparent';
2781
+            }
2782
+        }
2783
+    }
2784
+
2785
+    if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2786
+        $hasImage = true;
2787
+        if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2788
+            $styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2789
+            $styles['background-blend-mode'] = 'overlay';
2790
+        } elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2791
+            $styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2792
+        } elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2793
+            // do nothing as we alreay have a preset
2794
+            $hasImage = false;
2795
+        } else {
2796
+            $styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2797
+        }
2798
+
2799
+        if ( $hasImage ) {
2800
+            $styles['background-size'] = 'cover';
2801
+
2802
+            if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2803
+                $styles['background-attachment'] = 'fixed';
2804
+            }
2805
+        }
2806
+
2807
+        if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2808
+            $styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2809
+        }
2810
+    }
2811
+
2812
+    // sticky offset top
2813
+    if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2814
+        $styles['top'] = absint( $args['sticky_offset_top'] );
2815
+    }
2816
+
2817
+    // sticky offset bottom
2818
+    if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2819
+        $styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2820
+    }
2821
+
2822
+    // font size
2823
+    if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2824
+        $styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2825
+    }
2826
+
2827
+    // font color
2828
+    if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2829
+        $styles['color'] = esc_attr( $args['text_color_custom'] );
2830
+    }
2831
+
2832
+    // font line height
2833
+    if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2834
+        $styles['line-height'] = esc_attr( $args['font_line_height'] );
2835
+    }
2836
+
2837
+    // max height
2838
+    if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2839
+        $styles['max-height'] = esc_attr( $args['max_height'] );
2840
+    }
2841
+
2842
+    $style_string = '';
2843
+    if ( ! empty( $styles ) ) {
2844
+        foreach ( $styles as $key => $val ) {
2845
+            $style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2846
+        }
2847
+    }
2848
+
2849
+    return $style_string;
2850 2850
 
2851 2851
 }
2852 2852
 
@@ -2859,34 +2859,34 @@  discard block
 block discarded – undo
2859 2859
  * @return string
2860 2860
  */
2861 2861
 function sd_build_hover_styles( $args, $is_preview = false ) {
2862
-	$rules = '';
2863
-	// text color
2864
-	if ( ! empty( $args['styleid'] ) ) {
2865
-		$styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2866
-
2867
-		// text
2868
-		if ( ! empty( $args['text_color_hover'] ) ) {
2869
-			$key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2870
-			$color  = sd_get_color_from_var( $args[ $key ] );
2871
-			$rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2872
-		}
2873
-
2874
-		// bg
2875
-		if ( ! empty( $args['bg_hover'] ) ) {
2876
-			if ( 'custom-gradient' === $args['bg_hover'] ) {
2877
-				$color  = $args['bg_hover_gradient'];
2878
-				$rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2879
-				$rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2880
-			} else {
2881
-				$key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2882
-				$color  = sd_get_color_from_var( $args[ $key ] );
2883
-				$rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2884
-				$rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2885
-			}
2886
-		}
2887
-	}
2888
-
2889
-	return $rules ? '<style>' . $rules . '</style>' : '';
2862
+    $rules = '';
2863
+    // text color
2864
+    if ( ! empty( $args['styleid'] ) ) {
2865
+        $styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2866
+
2867
+        // text
2868
+        if ( ! empty( $args['text_color_hover'] ) ) {
2869
+            $key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2870
+            $color  = sd_get_color_from_var( $args[ $key ] );
2871
+            $rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2872
+        }
2873
+
2874
+        // bg
2875
+        if ( ! empty( $args['bg_hover'] ) ) {
2876
+            if ( 'custom-gradient' === $args['bg_hover'] ) {
2877
+                $color  = $args['bg_hover_gradient'];
2878
+                $rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2879
+                $rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2880
+            } else {
2881
+                $key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2882
+                $color  = sd_get_color_from_var( $args[ $key ] );
2883
+                $rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2884
+                $rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2885
+            }
2886
+        }
2887
+    }
2888
+
2889
+    return $rules ? '<style>' . $rules . '</style>' : '';
2890 2890
 }
2891 2891
 
2892 2892
 /**
@@ -2898,12 +2898,12 @@  discard block
 block discarded – undo
2898 2898
  */
2899 2899
 function sd_get_color_from_var( $var ) {
2900 2900
 
2901
-	//sanitize_hex_color() @todo this does not cover transparency
2902
-	if ( strpos( $var, '#' ) === false ) {
2903
-		$var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2904
-	}
2901
+    //sanitize_hex_color() @todo this does not cover transparency
2902
+    if ( strpos( $var, '#' ) === false ) {
2903
+        $var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2904
+    }
2905 2905
 
2906
-	return $var;
2906
+    return $var;
2907 2907
 }
2908 2908
 
2909 2909
 /**
@@ -2915,19 +2915,19 @@  discard block
 block discarded – undo
2915 2915
  * @return string
2916 2916
  */
2917 2917
 function sd_sanitize_html_classes( $classes, $sep = ' ' ) {
2918
-	$return = '';
2918
+    $return = '';
2919 2919
 
2920
-	if ( ! is_array( $classes ) ) {
2921
-		$classes = explode( $sep, $classes );
2922
-	}
2920
+    if ( ! is_array( $classes ) ) {
2921
+        $classes = explode( $sep, $classes );
2922
+    }
2923 2923
 
2924
-	if ( ! empty( $classes ) ) {
2925
-		foreach ( $classes as $class ) {
2926
-			$return .= sanitize_html_class( $class ) . ' ';
2927
-		}
2928
-	}
2924
+    if ( ! empty( $classes ) ) {
2925
+        foreach ( $classes as $class ) {
2926
+            $return .= sanitize_html_class( $class ) . ' ';
2927
+        }
2928
+    }
2929 2929
 
2930
-	return $return;
2930
+    return $return;
2931 2931
 }
2932 2932
 
2933 2933
 
@@ -2937,40 +2937,40 @@  discard block
 block discarded – undo
2937 2937
  * @return void
2938 2938
  */
2939 2939
 function sd_get_class_build_keys() {
2940
-	$keys = array(
2941
-		'container',
2942
-		'position',
2943
-		'flex_direction',
2944
-		'shadow',
2945
-		'rounded',
2946
-		'nav_style',
2947
-		'horizontal_alignment',
2948
-		'nav_fill',
2949
-		'width',
2950
-		'font_weight',
2951
-		'font_size',
2952
-		'font_case',
2953
-		'css_class',
2954
-		'flex_align_items-MTD',
2955
-		'flex_justify_content-MTD',
2956
-		'flex_align_self-MTD',
2957
-		'flex_order-MTD',
2958
-		'styleid',
2959
-		'border_opacity',
2960
-		'border_width',
2961
-		'border_type',
2962
-		'opacity',
2963
-		'zindex',
2964
-		'flex_wrap-MTD',
2965
-		'h100',
2966
-		'overflow',
2967
-		'scrollbars',
2968
-		'float-MTD',
2969
-		'height-MTD',
2970
-		'width-MTD'
2971
-	);
2972
-
2973
-	return apply_filters( 'sd_class_build_keys', $keys );
2940
+    $keys = array(
2941
+        'container',
2942
+        'position',
2943
+        'flex_direction',
2944
+        'shadow',
2945
+        'rounded',
2946
+        'nav_style',
2947
+        'horizontal_alignment',
2948
+        'nav_fill',
2949
+        'width',
2950
+        'font_weight',
2951
+        'font_size',
2952
+        'font_case',
2953
+        'css_class',
2954
+        'flex_align_items-MTD',
2955
+        'flex_justify_content-MTD',
2956
+        'flex_align_self-MTD',
2957
+        'flex_order-MTD',
2958
+        'styleid',
2959
+        'border_opacity',
2960
+        'border_width',
2961
+        'border_type',
2962
+        'opacity',
2963
+        'zindex',
2964
+        'flex_wrap-MTD',
2965
+        'h100',
2966
+        'overflow',
2967
+        'scrollbars',
2968
+        'float-MTD',
2969
+        'height-MTD',
2970
+        'width-MTD'
2971
+    );
2972
+
2973
+    return apply_filters( 'sd_class_build_keys', $keys );
2974 2974
 }
2975 2975
 
2976 2976
 /**
@@ -2982,18 +2982,18 @@  discard block
 block discarded – undo
2982 2982
  * @return array
2983 2983
  */
2984 2984
 function sd_get_visibility_conditions_input( $type = 'visibility_conditions', $overwrite = array() ) {
2985
-	$defaults = array(
2986
-		'type'         => 'visibility_conditions',
2987
-		'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2988
-		'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2989
-		'default'      => '',
2990
-		'desc_tip'     => true,
2991
-		'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2992
-	);
2985
+    $defaults = array(
2986
+        'type'         => 'visibility_conditions',
2987
+        'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2988
+        'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2989
+        'default'      => '',
2990
+        'desc_tip'     => true,
2991
+        'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2992
+    );
2993 2993
 
2994
-	$input = wp_parse_args( $overwrite, $defaults );
2994
+    $input = wp_parse_args( $overwrite, $defaults );
2995 2995
 
2996
-	return $input;
2996
+    return $input;
2997 2997
 }
2998 2998
 
2999 2999
 /**
@@ -3005,24 +3005,24 @@  discard block
 block discarded – undo
3005 3005
  * @return array An array of roles.
3006 3006
  */
3007 3007
 function sd_user_roles_options( $exclude = array() ) {
3008
-	$user_roles = array();
3008
+    $user_roles = array();
3009 3009
 
3010
-	if ( !function_exists('get_editable_roles') ) {
3011
-		require_once( ABSPATH . '/wp-admin/includes/user.php' );
3012
-	}
3010
+    if ( !function_exists('get_editable_roles') ) {
3011
+        require_once( ABSPATH . '/wp-admin/includes/user.php' );
3012
+    }
3013 3013
 
3014
-	$roles = get_editable_roles();
3014
+    $roles = get_editable_roles();
3015 3015
 
3016
-	foreach ( $roles as $role => $data ) {
3017
-		if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3018
-			$user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3019
-		}
3020
-	}
3016
+    foreach ( $roles as $role => $data ) {
3017
+        if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3018
+            $user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3019
+        }
3020
+    }
3021 3021
 
3022
-	// Logged out as a custom role.
3023
-	$user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3022
+    // Logged out as a custom role.
3023
+    $user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3024 3024
 
3025
-	return apply_filters( 'sd_user_roles_options', $user_roles );
3025
+    return apply_filters( 'sd_user_roles_options', $user_roles );
3026 3026
 }
3027 3027
 
3028 3028
 /**
@@ -3033,18 +3033,18 @@  discard block
 block discarded – undo
3033 3033
  * @return array Rule options.
3034 3034
  */
3035 3035
 function sd_visibility_rules_options() {
3036
-	$options = array(
3037
-		'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3038
-		'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3039
-		'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3040
-		'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3041
-	);
3036
+    $options = array(
3037
+        'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3038
+        'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3039
+        'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3040
+        'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3041
+    );
3042 3042
 
3043
-	if ( class_exists( 'GeoDirectory' ) ) {
3044
-		$options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3045
-	}
3043
+    if ( class_exists( 'GeoDirectory' ) ) {
3044
+        $options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3045
+    }
3046 3046
 
3047
-	return apply_filters( 'sd_visibility_rules_options', $options );
3047
+    return apply_filters( 'sd_visibility_rules_options', $options );
3048 3048
 }
3049 3049
 
3050 3050
 /**
@@ -3053,39 +3053,39 @@  discard block
 block discarded – undo
3053 3053
  * @return array
3054 3054
  */
3055 3055
 function sd_visibility_gd_field_options() {
3056
-	$fields = geodir_post_custom_fields( '', 'all', 'all', 'none' );
3056
+    $fields = geodir_post_custom_fields( '', 'all', 'all', 'none' );
3057 3057
 
3058
-	$keys = array();
3059
-	if ( ! empty( $fields ) ) {
3060
-		foreach( $fields as $field ) {
3061
-			if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3062
-				continue;
3063
-			}
3058
+    $keys = array();
3059
+    if ( ! empty( $fields ) ) {
3060
+        foreach( $fields as $field ) {
3061
+            if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3062
+                continue;
3063
+            }
3064 3064
 
3065
-			$keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3065
+            $keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3066 3066
 
3067
-			// Extra address fields
3068
-			if ( $field['htmlvar_name'] == 'address' && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3069
-				foreach ( $address_fields as $_field => $args ) {
3070
-					if ( $_field != 'map_directions' && $_field != 'street' ) {
3071
-						$keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3072
-					}
3073
-				}
3074
-			}
3075
-		}
3076
-	}
3067
+            // Extra address fields
3068
+            if ( $field['htmlvar_name'] == 'address' && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3069
+                foreach ( $address_fields as $_field => $args ) {
3070
+                    if ( $_field != 'map_directions' && $_field != 'street' ) {
3071
+                        $keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3072
+                    }
3073
+                }
3074
+            }
3075
+        }
3076
+    }
3077 3077
 
3078
-	$standard_fields = sd_visibility_gd_standard_field_options();
3078
+    $standard_fields = sd_visibility_gd_standard_field_options();
3079 3079
 
3080
-	if ( ! empty( $standard_fields ) ) {
3081
-		foreach ( $standard_fields as $key => $option ) {
3082
-			$keys[ $key ] = $option;
3083
-		}
3084
-	}
3080
+    if ( ! empty( $standard_fields ) ) {
3081
+        foreach ( $standard_fields as $key => $option ) {
3082
+            $keys[ $key ] = $option;
3083
+        }
3084
+    }
3085 3085
 
3086
-	$options = apply_filters( 'geodir_badge_field_keys', $keys );
3086
+    $options = apply_filters( 'geodir_badge_field_keys', $keys );
3087 3087
 
3088
-	return apply_filters( 'sd_visibility_gd_field_options', $options );
3088
+    return apply_filters( 'sd_visibility_gd_field_options', $options );
3089 3089
 }
3090 3090
 
3091 3091
 /**
@@ -3094,17 +3094,17 @@  discard block
 block discarded – undo
3094 3094
  * @return array
3095 3095
  */
3096 3096
 function sd_visibility_gd_standard_field_options( $post_type = '' ) {
3097
-	$fields = sd_visibility_gd_standard_fields( $post_type );
3097
+    $fields = sd_visibility_gd_standard_fields( $post_type );
3098 3098
 
3099
-	$options = array();
3099
+    $options = array();
3100 3100
 
3101
-	foreach ( $fields as $key => $field ) {
3102
-		if ( ! empty( $field['frontend_title'] ) ) {
3103
-			$options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3104
-		}
3105
-	}
3101
+    foreach ( $fields as $key => $field ) {
3102
+        if ( ! empty( $field['frontend_title'] ) ) {
3103
+            $options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3104
+        }
3105
+    }
3106 3106
 
3107
-	return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3107
+    return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3108 3108
 }
3109 3109
 
3110 3110
 /**
@@ -3113,17 +3113,17 @@  discard block
 block discarded – undo
3113 3113
  * @return array
3114 3114
  */
3115 3115
 function sd_visibility_gd_standard_fields( $post_type = '' ) {
3116
-	$standard_fields = geodir_post_meta_standard_fields( $post_type );
3116
+    $standard_fields = geodir_post_meta_standard_fields( $post_type );
3117 3117
 
3118
-	$fields = array();
3118
+    $fields = array();
3119 3119
 
3120
-	foreach ( $standard_fields as $key => $field ) {
3121
-		if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3122
-			$fields[ $key ] = $field;
3123
-		}
3124
-	}
3120
+    foreach ( $standard_fields as $key => $field ) {
3121
+        if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3122
+            $fields[ $key ] = $field;
3123
+        }
3124
+    }
3125 3125
 
3126
-	return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3126
+    return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3127 3127
 }
3128 3128
 
3129 3129
 /**
@@ -3132,18 +3132,18 @@  discard block
 block discarded – undo
3132 3132
  * @return array
3133 3133
  */
3134 3134
 function sd_visibility_field_condition_options(){
3135
-	$options = array(
3136
-		'is_empty' => __( 'is empty', 'ayecode-connect' ),
3137
-		'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3138
-		'is_equal' => __( 'is equal', 'ayecode-connect' ),
3139
-		'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3140
-		'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3141
-		'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3142
-		'is_contains' => __( 'is contains', 'ayecode-connect' ),
3143
-		'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3144
-	);
3135
+    $options = array(
3136
+        'is_empty' => __( 'is empty', 'ayecode-connect' ),
3137
+        'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3138
+        'is_equal' => __( 'is equal', 'ayecode-connect' ),
3139
+        'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3140
+        'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3141
+        'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3142
+        'is_contains' => __( 'is contains', 'ayecode-connect' ),
3143
+        'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3144
+    );
3145 3145
 
3146
-	return apply_filters( 'sd_visibility_field_condition_options', $options );
3146
+    return apply_filters( 'sd_visibility_field_condition_options', $options );
3147 3147
 }
3148 3148
 
3149 3149
 /**
@@ -3154,15 +3154,15 @@  discard block
 block discarded – undo
3154 3154
  * @return array Template type options.
3155 3155
  */
3156 3156
 function sd_visibility_output_options() {
3157
-	$options = array(
3158
-		''              => __( 'Show Block', 'ayecode-connect' ),
3159
-		'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3160
-		'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3161
-		'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3162
-		'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3163
-	);
3157
+    $options = array(
3158
+        ''              => __( 'Show Block', 'ayecode-connect' ),
3159
+        'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3160
+        'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3161
+        'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3162
+        'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3163
+    );
3164 3164
 
3165
-	return apply_filters( 'sd_visibility_output_options', $options );
3165
+    return apply_filters( 'sd_visibility_output_options', $options );
3166 3166
 }
3167 3167
 
3168 3168
 /**
@@ -3174,73 +3174,73 @@  discard block
 block discarded – undo
3174 3174
  * @return array Template page options.
3175 3175
  */
3176 3176
 function sd_template_page_options( $args = array() ) {
3177
-	global $wpdb, $sd_tmpl_page_options;
3177
+    global $wpdb, $sd_tmpl_page_options;
3178 3178
 
3179
-	$defaults = array(
3180
-		'nocache' => false,
3181
-		'with_slug' => false,
3182
-		'default_label' => __( 'Select Page...', 'ayecode-connect' )
3183
-	);
3179
+    $defaults = array(
3180
+        'nocache' => false,
3181
+        'with_slug' => false,
3182
+        'default_label' => __( 'Select Page...', 'ayecode-connect' )
3183
+    );
3184 3184
 
3185
-	$args = wp_parse_args( $args, $defaults );
3185
+    $args = wp_parse_args( $args, $defaults );
3186 3186
 
3187
-	if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3188
-		return $sd_tmpl_page_options;
3189
-	}
3187
+    if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3188
+        return $sd_tmpl_page_options;
3189
+    }
3190 3190
 
3191
-	$exclude_pages = array();
3192
-	if ( $page_on_front = get_option( 'page_on_front' ) ) {
3193
-		$exclude_pages[] = $page_on_front;
3194
-	}
3191
+    $exclude_pages = array();
3192
+    if ( $page_on_front = get_option( 'page_on_front' ) ) {
3193
+        $exclude_pages[] = $page_on_front;
3194
+    }
3195 3195
 
3196
-	if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3197
-		$exclude_pages[] = $page_for_posts;
3198
-	}
3196
+    if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3197
+        $exclude_pages[] = $page_for_posts;
3198
+    }
3199 3199
 
3200
-	$exclude_pages_placeholders = '';
3201
-	if ( ! empty( $exclude_pages ) ) {
3202
-		// Sanitize the array of excluded pages and implode it for the SQL query.
3203
-		$exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3204
-	}
3200
+    $exclude_pages_placeholders = '';
3201
+    if ( ! empty( $exclude_pages ) ) {
3202
+        // Sanitize the array of excluded pages and implode it for the SQL query.
3203
+        $exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3204
+    }
3205 3205
 
3206
-	// Prepare the base SQL query.
3207
-	$sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3206
+    // Prepare the base SQL query.
3207
+    $sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3208 3208
 
3209
-	// Add the exclusion if there are pages to exclude
3210
-	if ( ! empty( $exclude_pages ) ) {
3211
-		$sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3212
-	}
3209
+    // Add the exclusion if there are pages to exclude
3210
+    if ( ! empty( $exclude_pages ) ) {
3211
+        $sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3212
+    }
3213 3213
 
3214
-	// Add sorting.
3215
-	$sql .= " ORDER BY post_title ASC";
3214
+    // Add sorting.
3215
+    $sql .= " ORDER BY post_title ASC";
3216 3216
 
3217
-	// Add a limit.
3218
-	$limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3217
+    // Add a limit.
3218
+    $limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3219 3219
 
3220
-	if ( $limit > 0 ) {
3221
-		$sql .= " LIMIT " . (int) $limit;
3222
-	}
3220
+    if ( $limit > 0 ) {
3221
+        $sql .= " LIMIT " . (int) $limit;
3222
+    }
3223 3223
 
3224
-	// Prepare the SQL query to include the excluded pages only if we have placeholders.
3225
-	$pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3224
+    // Prepare the SQL query to include the excluded pages only if we have placeholders.
3225
+    $pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3226 3226
 
3227
-	if ( ! empty( $args['default_label'] ) ) {
3228
-		$options = array( '' => $args['default_label'] );
3229
-	} else {
3230
-		$options = array();
3231
-	}
3227
+    if ( ! empty( $args['default_label'] ) ) {
3228
+        $options = array( '' => $args['default_label'] );
3229
+    } else {
3230
+        $options = array();
3231
+    }
3232 3232
 
3233
-	if ( ! empty( $pages ) ) {
3234
-		foreach ( $pages as $page ) {
3235
-			$title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3233
+    if ( ! empty( $pages ) ) {
3234
+        foreach ( $pages as $page ) {
3235
+            $title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3236 3236
 
3237
-			$options[ $page->ID ] = $title;
3238
-		}
3239
-	}
3237
+            $options[ $page->ID ] = $title;
3238
+        }
3239
+    }
3240 3240
 
3241
-	$sd_tmpl_page_options = $options;
3241
+    $sd_tmpl_page_options = $options;
3242 3242
 
3243
-	return apply_filters( 'sd_template_page_options', $options, $args );
3243
+    return apply_filters( 'sd_template_page_options', $options, $args );
3244 3244
 }
3245 3245
 
3246 3246
 /**
@@ -3252,25 +3252,25 @@  discard block
 block discarded – undo
3252 3252
  * @return array Template part options.
3253 3253
  */
3254 3254
 function sd_template_part_options( $args = array() ) {
3255
-	global $sd_tmpl_part_options;
3255
+    global $sd_tmpl_part_options;
3256 3256
 
3257
-	if ( ! empty( $sd_tmpl_part_options ) ) {
3258
-		return $sd_tmpl_part_options;
3259
-	}
3257
+    if ( ! empty( $sd_tmpl_part_options ) ) {
3258
+        return $sd_tmpl_part_options;
3259
+    }
3260 3260
 
3261
-	$options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3261
+    $options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3262 3262
 
3263
-	$parts = get_block_templates( array(), 'wp_template_part' );
3263
+    $parts = get_block_templates( array(), 'wp_template_part' );
3264 3264
 
3265
-	if ( ! empty( $parts ) ) {
3266
-		foreach ( $parts as $part ) {
3267
-			$options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3268
-		}
3269
-	}
3265
+    if ( ! empty( $parts ) ) {
3266
+        foreach ( $parts as $part ) {
3267
+            $options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3268
+        }
3269
+    }
3270 3270
 
3271
-	$sd_tmpl_part_options = $options;
3271
+    $sd_tmpl_part_options = $options;
3272 3272
 
3273
-	return apply_filters( 'sd_template_part_options', $options, $args );
3273
+    return apply_filters( 'sd_template_part_options', $options, $args );
3274 3274
 }
3275 3275
 
3276 3276
 /**
@@ -3282,25 +3282,25 @@  discard block
 block discarded – undo
3282 3282
  * @return array Template part object.
3283 3283
  */
3284 3284
 function sd_get_template_part_by_slug( $slug ) {
3285
-	global $bs_tmpl_part_by_slug;
3285
+    global $bs_tmpl_part_by_slug;
3286 3286
 
3287
-	if ( empty( $bs_tmpl_part_by_slug ) ) {
3288
-		$bs_tmpl_part_by_slug = array();
3289
-	}
3287
+    if ( empty( $bs_tmpl_part_by_slug ) ) {
3288
+        $bs_tmpl_part_by_slug = array();
3289
+    }
3290 3290
 
3291
-	if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3292
-		return $bs_tmpl_part_by_slug[ $slug ];
3293
-	}
3291
+    if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3292
+        return $bs_tmpl_part_by_slug[ $slug ];
3293
+    }
3294 3294
 
3295
-	$template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3295
+    $template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3296 3296
 
3297
-	$query_post = ! empty( $template_query ) ? $template_query[0] : array();
3297
+    $query_post = ! empty( $template_query ) ? $template_query[0] : array();
3298 3298
 
3299
-	$template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3299
+    $template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3300 3300
 
3301
-	$bs_tmpl_part_by_slug[ $slug ] = $template_part;
3301
+    $bs_tmpl_part_by_slug[ $slug ] = $template_part;
3302 3302
 
3303
-	return apply_filters( 'sd_get_template_part_by_slug', $template_part, $slug );
3303
+    return apply_filters( 'sd_get_template_part_by_slug', $template_part, $slug );
3304 3304
 }
3305 3305
 
3306 3306
 /**
@@ -3313,511 +3313,511 @@  discard block
 block discarded – undo
3313 3313
  * @param WP_Block $instance      The block instance.
3314 3314
  */
3315 3315
 function sd_render_block( $block_content, $block, $instance = '' ) {
3316
-	// No block visibility conditions set.
3317
-	if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3318
-		return $block_content;
3319
-	}
3320
-
3321
-	$attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3322
-	$rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3323
-
3324
-	// remove rules with missing validators.
3325
-	$valid_rules = sd_visibility_rules_options();
3326
-
3327
-	if ( ! empty( $rules ) ) {
3328
-		foreach ( $rules as $key => $rule ) {
3329
-			if ( ! isset( $valid_rules[ $rule['type'] ] ) ) {
3330
-				unset( $rules[ $key ] );
3331
-			}
3332
-		}
3333
-	}
3334
-
3335
-	// No rules set.
3336
-	if ( empty( $rules ) ) {
3337
-		return $block_content;
3338
-	}
3339
-
3340
-	$check_rules = null;
3341
-	$_block_content = $block_content;
3342
-
3343
-	if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3344
-		$check_rules = sd_block_check_rules( $rules );
3345
-
3346
-		if ( $check_rules ) {
3347
-			$output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3348
-		} else {
3349
-			$output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3350
-		}
3351
-
3352
-		if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3353
-			switch ( $output_condition['type'] ) {
3354
-				case 'hide':
3355
-					$valid_type = true;
3356
-					$content = '';
3357
-
3358
-					break;
3359
-				case 'message':
3360
-					$valid_type = true;
3361
-
3362
-					if ( isset( $output_condition['message'] ) ) {
3363
-						$content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3364
-
3365
-						if ( ! empty( $output_condition['message_type'] ) ) {
3366
-							$content = aui()->alert( array(
3367
-									'type'=> $output_condition['message_type'],
3368
-									'content'=> $content
3369
-								)
3370
-							);
3371
-						}
3372
-					}
3373
-
3374
-					break;
3375
-				case 'page':
3376
-					$valid_type = true;
3377
-
3378
-					$page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3379
-					$content = sd_get_page_content( $page_id );
3380
-
3381
-					break;
3382
-				case 'template_part':
3383
-					$valid_type = true;
3384
-
3385
-					$template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3386
-					$content = sd_get_template_part_content( $template_part );
3387
-
3388
-					break;
3389
-				default:
3390
-					$valid_type = false;
3391
-					break;
3392
-			}
3393
-
3394
-			if ( $valid_type ) {
3395
-				$block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-rule' . ( $output_condition['type'] == 'hide' ? ' sd-block-hide-rule' : '' ) . '">' . $content . '</div>';
3396
-			}
3397
-		}
3398
-	}
3399
-
3400
-	return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3316
+    // No block visibility conditions set.
3317
+    if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3318
+        return $block_content;
3319
+    }
3320
+
3321
+    $attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3322
+    $rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3323
+
3324
+    // remove rules with missing validators.
3325
+    $valid_rules = sd_visibility_rules_options();
3326
+
3327
+    if ( ! empty( $rules ) ) {
3328
+        foreach ( $rules as $key => $rule ) {
3329
+            if ( ! isset( $valid_rules[ $rule['type'] ] ) ) {
3330
+                unset( $rules[ $key ] );
3331
+            }
3332
+        }
3333
+    }
3334
+
3335
+    // No rules set.
3336
+    if ( empty( $rules ) ) {
3337
+        return $block_content;
3338
+    }
3339
+
3340
+    $check_rules = null;
3341
+    $_block_content = $block_content;
3342
+
3343
+    if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3344
+        $check_rules = sd_block_check_rules( $rules );
3345
+
3346
+        if ( $check_rules ) {
3347
+            $output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3348
+        } else {
3349
+            $output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3350
+        }
3351
+
3352
+        if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3353
+            switch ( $output_condition['type'] ) {
3354
+                case 'hide':
3355
+                    $valid_type = true;
3356
+                    $content = '';
3357
+
3358
+                    break;
3359
+                case 'message':
3360
+                    $valid_type = true;
3361
+
3362
+                    if ( isset( $output_condition['message'] ) ) {
3363
+                        $content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3364
+
3365
+                        if ( ! empty( $output_condition['message_type'] ) ) {
3366
+                            $content = aui()->alert( array(
3367
+                                    'type'=> $output_condition['message_type'],
3368
+                                    'content'=> $content
3369
+                                )
3370
+                            );
3371
+                        }
3372
+                    }
3373
+
3374
+                    break;
3375
+                case 'page':
3376
+                    $valid_type = true;
3377
+
3378
+                    $page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3379
+                    $content = sd_get_page_content( $page_id );
3380
+
3381
+                    break;
3382
+                case 'template_part':
3383
+                    $valid_type = true;
3384
+
3385
+                    $template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3386
+                    $content = sd_get_template_part_content( $template_part );
3387
+
3388
+                    break;
3389
+                default:
3390
+                    $valid_type = false;
3391
+                    break;
3392
+            }
3393
+
3394
+            if ( $valid_type ) {
3395
+                $block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-rule' . ( $output_condition['type'] == 'hide' ? ' sd-block-hide-rule' : '' ) . '">' . $content . '</div>';
3396
+            }
3397
+        }
3398
+    }
3399
+
3400
+    return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3401 3401
 }
3402 3402
 add_filter( 'render_block', 'sd_render_block', 9, 3 );
3403 3403
 
3404 3404
 function sd_get_page_content( $page_id ) {
3405
-	$content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3405
+    $content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3406 3406
 
3407
-	// Maybe bypass content
3408
-	$bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3409
-	if ( $bypass_content ) {
3410
-		return $bypass_content;
3411
-	}
3407
+    // Maybe bypass content
3408
+    $bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3409
+    if ( $bypass_content ) {
3410
+        return $bypass_content;
3411
+    }
3412 3412
 
3413
-	// Run the shortcodes on the content.
3414
-	$content = do_shortcode( $content );
3413
+    // Run the shortcodes on the content.
3414
+    $content = do_shortcode( $content );
3415 3415
 
3416
-	// Run block content if its available.
3417
-	if ( function_exists( 'do_blocks' ) ) {
3418
-		$content = do_blocks( $content );
3419
-	}
3416
+    // Run block content if its available.
3417
+    if ( function_exists( 'do_blocks' ) ) {
3418
+        $content = do_blocks( $content );
3419
+    }
3420 3420
 
3421
-	return apply_filters( 'sd_get_page_content', $content, $page_id );
3421
+    return apply_filters( 'sd_get_page_content', $content, $page_id );
3422 3422
 }
3423 3423
 
3424 3424
 function sd_get_template_part_content( $template_part ) {
3425
-	$template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3426
-	$content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3425
+    $template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3426
+    $content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3427 3427
 
3428
-	// Maybe bypass content
3429
-	$bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3430
-	if ( $bypass_content ) {
3431
-		return $bypass_content;
3432
-	}
3428
+    // Maybe bypass content
3429
+    $bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3430
+    if ( $bypass_content ) {
3431
+        return $bypass_content;
3432
+    }
3433 3433
 
3434
-	// Run the shortcodes on the content.
3435
-	$content = do_shortcode( $content );
3434
+    // Run the shortcodes on the content.
3435
+    $content = do_shortcode( $content );
3436 3436
 
3437
-	// Run block content if its available.
3438
-	if ( function_exists( 'do_blocks' ) ) {
3439
-		$content = do_blocks( $content );
3440
-	}
3437
+    // Run block content if its available.
3438
+    if ( function_exists( 'do_blocks' ) ) {
3439
+        $content = do_blocks( $content );
3440
+    }
3441 3441
 
3442
-	return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3442
+    return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3443 3443
 }
3444 3444
 
3445 3445
 function sd_block_parse_rules( $attrs ) {
3446
-	$rules = array();
3446
+    $rules = array();
3447 3447
 
3448
-	if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3449
-		$attrs_keys = array_keys( $attrs );
3448
+    if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3449
+        $attrs_keys = array_keys( $attrs );
3450 3450
 
3451
-		for ( $i = 1; $i <= count( $attrs_keys ); $i++ ) {
3452
-			if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3453
-				$rules[] = $attrs[ 'rule' . $i ];
3454
-			}
3455
-		}
3456
-	}
3451
+        for ( $i = 1; $i <= count( $attrs_keys ); $i++ ) {
3452
+            if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3453
+                $rules[] = $attrs[ 'rule' . $i ];
3454
+            }
3455
+        }
3456
+    }
3457 3457
 
3458
-	return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3458
+    return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3459 3459
 }
3460 3460
 
3461 3461
 function sd_block_check_rules( $rules ) {
3462
-	if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3463
-		return true;
3464
-	}
3462
+    if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3463
+        return true;
3464
+    }
3465 3465
 
3466
-	foreach ( $rules as $key => $rule ) {
3467
-		$match = apply_filters( 'sd_block_check_rule', true, $rule );
3466
+    foreach ( $rules as $key => $rule ) {
3467
+        $match = apply_filters( 'sd_block_check_rule', true, $rule );
3468 3468
 
3469
-		if ( ! $match ) {
3470
-			break;
3471
-		}
3472
-	}
3469
+        if ( ! $match ) {
3470
+            break;
3471
+        }
3472
+    }
3473 3473
 
3474
-	return apply_filters( 'sd_block_check_rules', $match, $rules );
3474
+    return apply_filters( 'sd_block_check_rules', $match, $rules );
3475 3475
 }
3476 3476
 
3477 3477
 function sd_block_check_rule( $match, $rule ) {
3478
-	global $post;
3479
-
3480
-	if ( $match && ! empty( $rule['type'] ) ) {
3481
-		switch ( $rule['type'] ) {
3482
-			case 'logged_in':
3483
-				$match = (bool) is_user_logged_in();
3484
-
3485
-				break;
3486
-			case 'logged_out':
3487
-				$match = ! is_user_logged_in();
3488
-
3489
-				break;
3490
-			case 'post_author':
3491
-				if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3492
-					$match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3493
-				} else {
3494
-					$match = false;
3495
-				}
3496
-
3497
-				break;
3498
-			case 'user_roles':
3499
-				$match = false;
3500
-
3501
-				if ( ! empty( $rule['user_roles'] ) ) {
3502
-					$user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3503
-
3504
-					if ( is_array( $user_roles ) ) {
3505
-						$user_roles = array_filter( array_map( 'trim', $user_roles ) );
3506
-					}
3507
-
3508
-					if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3509
-						if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3510
-							$current_user_roles = $current_user->roles;
3511
-
3512
-							foreach ( $user_roles as $role ) {
3513
-								if ( in_array( $role, $current_user_roles ) ) {
3514
-									$match = true;
3515
-								}
3516
-							}
3517
-						} else {
3518
-							// Logged out role.
3519
-							if ( in_array( 'logged_out', $user_roles ) ) {
3520
-								$match = true;
3521
-							}
3522
-						}
3523
-					}
3524
-				}
3525
-
3526
-				break;
3527
-			case 'gd_field':
3528
-				$match = sd_block_check_rule_gd_field( $rule );
3529
-
3530
-				break;
3531
-
3532
-			default:
3533
-				$match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3534
-				break;
3535
-		}
3536
-	}
3537
-
3538
-	return $match;
3478
+    global $post;
3479
+
3480
+    if ( $match && ! empty( $rule['type'] ) ) {
3481
+        switch ( $rule['type'] ) {
3482
+            case 'logged_in':
3483
+                $match = (bool) is_user_logged_in();
3484
+
3485
+                break;
3486
+            case 'logged_out':
3487
+                $match = ! is_user_logged_in();
3488
+
3489
+                break;
3490
+            case 'post_author':
3491
+                if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3492
+                    $match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3493
+                } else {
3494
+                    $match = false;
3495
+                }
3496
+
3497
+                break;
3498
+            case 'user_roles':
3499
+                $match = false;
3500
+
3501
+                if ( ! empty( $rule['user_roles'] ) ) {
3502
+                    $user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3503
+
3504
+                    if ( is_array( $user_roles ) ) {
3505
+                        $user_roles = array_filter( array_map( 'trim', $user_roles ) );
3506
+                    }
3507
+
3508
+                    if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3509
+                        if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3510
+                            $current_user_roles = $current_user->roles;
3511
+
3512
+                            foreach ( $user_roles as $role ) {
3513
+                                if ( in_array( $role, $current_user_roles ) ) {
3514
+                                    $match = true;
3515
+                                }
3516
+                            }
3517
+                        } else {
3518
+                            // Logged out role.
3519
+                            if ( in_array( 'logged_out', $user_roles ) ) {
3520
+                                $match = true;
3521
+                            }
3522
+                        }
3523
+                    }
3524
+                }
3525
+
3526
+                break;
3527
+            case 'gd_field':
3528
+                $match = sd_block_check_rule_gd_field( $rule );
3529
+
3530
+                break;
3531
+
3532
+            default:
3533
+                $match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3534
+                break;
3535
+        }
3536
+    }
3537
+
3538
+    return $match;
3539 3539
 }
3540 3540
 add_filter( 'sd_block_check_rule', 'sd_block_check_rule', 10, 2 );
3541 3541
 
3542 3542
 function sd_block_check_rule_gd_field( $rule ) {
3543
-	global $gd_post;
3544
-
3545
-	$match_found = false;
3546
-
3547
-	if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3548
-		$args['block_visibility'] = true;
3549
-		$args['key'] = $rule['field'];
3550
-		$args['condition'] = $rule['condition'];
3551
-		$args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3552
-
3553
-		if ( $args['key'] == 'street' ) {
3554
-			$args['key'] = 'address';
3555
-		}
3556
-
3557
-		$match_field = $_match_field = $args['key'];
3558
-
3559
-		if ( $match_field == 'address' ) {
3560
-			$match_field = 'street';
3561
-		} elseif ( $match_field == 'post_images' ) {
3562
-			$match_field = 'featured_image';
3563
-		}
3564
-
3565
-		$find_post = $gd_post;
3566
-		$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3567
-
3568
-		if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3569
-			$find_post = geodir_get_post_info( (int) $find_post->ID );
3570
-			$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3571
-		}
3572
-
3573
-		if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3574
-			$address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3575
-			$field = array();
3576
-			$empty_field = false;
3577
-
3578
-			$standard_fields = sd_visibility_gd_standard_fields();
3579
-
3580
-			if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3581
-				$package_id = geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
3582
-				$fields = geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
3583
-
3584
-				foreach ( $fields as $field_info ) {
3585
-					if ( $match_field == $field_info['htmlvar_name'] ) {
3586
-						$field = $field_info;
3587
-						break;
3588
-					} elseif( $_match_field == $field_info['htmlvar_name'] ) {
3589
-						$field = $field_info;
3590
-						break;
3591
-					}
3592
-				}
3593
-
3594
-				if ( empty( $field ) ) {
3595
-					$empty_field = true;
3596
-				}
3597
-			}
3598
-
3599
-			// Address fields.
3600
-			if ( in_array( $match_field, $address_fields ) && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3601
-				if ( ! empty( $address_fields[ $match_field ] ) ) {
3602
-					$field = $address_fields[ $match_field ];
3603
-				}
3604
-			} else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3605
-				if ( ! empty( $standard_fields[ $match_field ] ) ) {
3606
-					$field = $standard_fields[ $match_field ];
3607
-				}
3608
-			}
3609
-
3610
-			// Parse search.
3611
-			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3612
-
3613
-			$is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3614
-			$is_date = apply_filters( 'geodir_post_badge_is_date', $is_date, $match_field, $field, $args, $find_post );
3615
-
3616
-			$match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3617
-			$match_found = $match_field === '' ? true : false;
3618
-
3619
-			if ( ! $match_found ) {
3620
-				if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3621
-					if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3622
-						$search = '+' . $search;
3623
-					}
3624
-					$the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3625
-					$until_time = strtotime( $the_time . ' ' . $search . ' days' );
3626
-					$now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3627
-					if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3628
-						$match_found = true;
3629
-					} elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3630
-						$match_found = true;
3631
-					}
3632
-				} else {
3633
-					switch ( $args['condition'] ) {
3634
-						case 'is_equal':
3635
-							$match_found = (bool) ( $search != '' && $match_value == $search );
3636
-							break;
3637
-						case 'is_not_equal':
3638
-							$match_found = (bool) ( $search != '' && $match_value != $search );
3639
-							break;
3640
-						case 'is_greater_than':
3641
-							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3642
-							break;
3643
-						case 'is_less_than':
3644
-							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3645
-							break;
3646
-						case 'is_empty':
3647
-							$match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3648
-							break;
3649
-						case 'is_not_empty':
3650
-							$match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3651
-							break;
3652
-						case 'is_contains':
3653
-							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3654
-							break;
3655
-						case 'is_not_contains':
3656
-							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3657
-							break;
3658
-					}
3659
-				}
3660
-			}
3661
-
3662
-			$match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3663
-		} else {
3664
-			$field = array();
3665
-
3666
-			// Parse search.
3667
-			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3668
-
3669
-			$match_value = '';
3670
-			$match_found = $match_field === '' ? true : false;
3671
-
3672
-			if ( ! $match_found ) {
3673
-				switch ( $args['condition'] ) {
3674
-					case 'is_equal':
3675
-						$match_found = (bool) ( $search != '' && $match_value == $search );
3676
-						break;
3677
-					case 'is_not_equal':
3678
-						$match_found = (bool) ( $search != '' && $match_value != $search );
3679
-						break;
3680
-					case 'is_greater_than':
3681
-						$match_found = false;
3682
-						break;
3683
-					case 'is_less_than':
3684
-						$match_found = false;
3685
-						break;
3686
-					case 'is_empty':
3687
-						$match_found = true;
3688
-						break;
3689
-					case 'is_not_empty':
3690
-						$match_found = false;
3691
-						break;
3692
-					case 'is_contains':
3693
-						$match_found = false;
3694
-						break;
3695
-					case 'is_not_contains':
3696
-						$match_found = false;
3697
-						break;
3698
-				}
3699
-			}
3700
-
3701
-			$match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3702
-		}
3703
-	}
3704
-
3705
-	return $match_found;
3543
+    global $gd_post;
3544
+
3545
+    $match_found = false;
3546
+
3547
+    if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3548
+        $args['block_visibility'] = true;
3549
+        $args['key'] = $rule['field'];
3550
+        $args['condition'] = $rule['condition'];
3551
+        $args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3552
+
3553
+        if ( $args['key'] == 'street' ) {
3554
+            $args['key'] = 'address';
3555
+        }
3556
+
3557
+        $match_field = $_match_field = $args['key'];
3558
+
3559
+        if ( $match_field == 'address' ) {
3560
+            $match_field = 'street';
3561
+        } elseif ( $match_field == 'post_images' ) {
3562
+            $match_field = 'featured_image';
3563
+        }
3564
+
3565
+        $find_post = $gd_post;
3566
+        $find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3567
+
3568
+        if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3569
+            $find_post = geodir_get_post_info( (int) $find_post->ID );
3570
+            $find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3571
+        }
3572
+
3573
+        if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3574
+            $address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3575
+            $field = array();
3576
+            $empty_field = false;
3577
+
3578
+            $standard_fields = sd_visibility_gd_standard_fields();
3579
+
3580
+            if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3581
+                $package_id = geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
3582
+                $fields = geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
3583
+
3584
+                foreach ( $fields as $field_info ) {
3585
+                    if ( $match_field == $field_info['htmlvar_name'] ) {
3586
+                        $field = $field_info;
3587
+                        break;
3588
+                    } elseif( $_match_field == $field_info['htmlvar_name'] ) {
3589
+                        $field = $field_info;
3590
+                        break;
3591
+                    }
3592
+                }
3593
+
3594
+                if ( empty( $field ) ) {
3595
+                    $empty_field = true;
3596
+                }
3597
+            }
3598
+
3599
+            // Address fields.
3600
+            if ( in_array( $match_field, $address_fields ) && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
3601
+                if ( ! empty( $address_fields[ $match_field ] ) ) {
3602
+                    $field = $address_fields[ $match_field ];
3603
+                }
3604
+            } else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3605
+                if ( ! empty( $standard_fields[ $match_field ] ) ) {
3606
+                    $field = $standard_fields[ $match_field ];
3607
+                }
3608
+            }
3609
+
3610
+            // Parse search.
3611
+            $search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3612
+
3613
+            $is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3614
+            $is_date = apply_filters( 'geodir_post_badge_is_date', $is_date, $match_field, $field, $args, $find_post );
3615
+
3616
+            $match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3617
+            $match_found = $match_field === '' ? true : false;
3618
+
3619
+            if ( ! $match_found ) {
3620
+                if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3621
+                    if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3622
+                        $search = '+' . $search;
3623
+                    }
3624
+                    $the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3625
+                    $until_time = strtotime( $the_time . ' ' . $search . ' days' );
3626
+                    $now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3627
+                    if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3628
+                        $match_found = true;
3629
+                    } elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3630
+                        $match_found = true;
3631
+                    }
3632
+                } else {
3633
+                    switch ( $args['condition'] ) {
3634
+                        case 'is_equal':
3635
+                            $match_found = (bool) ( $search != '' && $match_value == $search );
3636
+                            break;
3637
+                        case 'is_not_equal':
3638
+                            $match_found = (bool) ( $search != '' && $match_value != $search );
3639
+                            break;
3640
+                        case 'is_greater_than':
3641
+                            $match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3642
+                            break;
3643
+                        case 'is_less_than':
3644
+                            $match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3645
+                            break;
3646
+                        case 'is_empty':
3647
+                            $match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3648
+                            break;
3649
+                        case 'is_not_empty':
3650
+                            $match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3651
+                            break;
3652
+                        case 'is_contains':
3653
+                            $match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3654
+                            break;
3655
+                        case 'is_not_contains':
3656
+                            $match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3657
+                            break;
3658
+                    }
3659
+                }
3660
+            }
3661
+
3662
+            $match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3663
+        } else {
3664
+            $field = array();
3665
+
3666
+            // Parse search.
3667
+            $search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3668
+
3669
+            $match_value = '';
3670
+            $match_found = $match_field === '' ? true : false;
3671
+
3672
+            if ( ! $match_found ) {
3673
+                switch ( $args['condition'] ) {
3674
+                    case 'is_equal':
3675
+                        $match_found = (bool) ( $search != '' && $match_value == $search );
3676
+                        break;
3677
+                    case 'is_not_equal':
3678
+                        $match_found = (bool) ( $search != '' && $match_value != $search );
3679
+                        break;
3680
+                    case 'is_greater_than':
3681
+                        $match_found = false;
3682
+                        break;
3683
+                    case 'is_less_than':
3684
+                        $match_found = false;
3685
+                        break;
3686
+                    case 'is_empty':
3687
+                        $match_found = true;
3688
+                        break;
3689
+                    case 'is_not_empty':
3690
+                        $match_found = false;
3691
+                        break;
3692
+                    case 'is_contains':
3693
+                        $match_found = false;
3694
+                        break;
3695
+                    case 'is_not_contains':
3696
+                        $match_found = false;
3697
+                        break;
3698
+                }
3699
+            }
3700
+
3701
+            $match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3702
+        }
3703
+    }
3704
+
3705
+    return $match_found;
3706 3706
 }
3707 3707
 
3708 3708
 function sd_gd_field_rule_search( $search, $post_type, $rule, $field = array(), $gd_post = array() ) {
3709
-	global $post;
3710
-
3711
-	if ( ! $search ) {
3712
-		return $search;
3713
-	}
3714
-
3715
-	$orig_search = $search;
3716
-	$_search = strtolower( $search );
3717
-
3718
-	if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3719
-		if ( $search == 'current_user' ) {
3720
-			$search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3721
-		} else if ( $search == 'current_author' ) {
3722
-			$search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3723
-		}
3724
-	} else if ( $_search == 'date_today' ) {
3725
-		$search = date( 'Y-m-d' );
3726
-	} else if ( $_search == 'date_tomorrow' ) {
3727
-		$search = date( 'Y-m-d', strtotime( "+1 day" ) );
3728
-	} else if ( $_search == 'date_yesterday' ) {
3729
-		$search = date( 'Y-m-d', strtotime( "-1 day" ) );
3730
-	} else if ( $_search == 'time_his' ) {
3731
-		$search = date( 'H:i:s' );
3732
-	} else if ( $_search == 'time_hi' ) {
3733
-		$search = date( 'H:i' );
3734
-	} else if ( $_search == 'datetime_now' ) {
3735
-		$search = date( 'Y-m-d H:i:s' );
3736
-	} else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3737
-		$_searches = explode( 'datetime_after_', $_search, 2 );
3738
-
3739
-		if ( ! empty( $_searches[1] ) ) {
3740
-			$search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
-		} else {
3742
-			$search = date( 'Y-m-d H:i:s' );
3743
-		}
3744
-	} else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3745
-		$_searches = explode( 'datetime_before_', $_search, 2 );
3746
-
3747
-		if ( ! empty( $_searches[1] ) ) {
3748
-			$search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
-		} else {
3750
-			$search = date( 'Y-m-d H:i:s' );
3751
-		}
3752
-	} else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3753
-		$_searches = explode( 'date_after_', $_search, 2 );
3754
-
3755
-		if ( ! empty( $_searches[1] ) ) {
3756
-			$search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3757
-		} else {
3758
-			$search = date( 'Y-m-d' );
3759
-		}
3760
-	} else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3761
-		$_searches = explode( 'date_before_', $_search, 2 );
3762
-
3763
-		if ( ! empty( $_searches[1] ) ) {
3764
-			$search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3765
-		} else {
3766
-			$search = date( 'Y-m-d' );
3767
-		}
3768
-	}
3769
-
3770
-	return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3709
+    global $post;
3710
+
3711
+    if ( ! $search ) {
3712
+        return $search;
3713
+    }
3714
+
3715
+    $orig_search = $search;
3716
+    $_search = strtolower( $search );
3717
+
3718
+    if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3719
+        if ( $search == 'current_user' ) {
3720
+            $search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3721
+        } else if ( $search == 'current_author' ) {
3722
+            $search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3723
+        }
3724
+    } else if ( $_search == 'date_today' ) {
3725
+        $search = date( 'Y-m-d' );
3726
+    } else if ( $_search == 'date_tomorrow' ) {
3727
+        $search = date( 'Y-m-d', strtotime( "+1 day" ) );
3728
+    } else if ( $_search == 'date_yesterday' ) {
3729
+        $search = date( 'Y-m-d', strtotime( "-1 day" ) );
3730
+    } else if ( $_search == 'time_his' ) {
3731
+        $search = date( 'H:i:s' );
3732
+    } else if ( $_search == 'time_hi' ) {
3733
+        $search = date( 'H:i' );
3734
+    } else if ( $_search == 'datetime_now' ) {
3735
+        $search = date( 'Y-m-d H:i:s' );
3736
+    } else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3737
+        $_searches = explode( 'datetime_after_', $_search, 2 );
3738
+
3739
+        if ( ! empty( $_searches[1] ) ) {
3740
+            $search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
+        } else {
3742
+            $search = date( 'Y-m-d H:i:s' );
3743
+        }
3744
+    } else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3745
+        $_searches = explode( 'datetime_before_', $_search, 2 );
3746
+
3747
+        if ( ! empty( $_searches[1] ) ) {
3748
+            $search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
+        } else {
3750
+            $search = date( 'Y-m-d H:i:s' );
3751
+        }
3752
+    } else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3753
+        $_searches = explode( 'date_after_', $_search, 2 );
3754
+
3755
+        if ( ! empty( $_searches[1] ) ) {
3756
+            $search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3757
+        } else {
3758
+            $search = date( 'Y-m-d' );
3759
+        }
3760
+    } else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3761
+        $_searches = explode( 'date_before_', $_search, 2 );
3762
+
3763
+        if ( ! empty( $_searches[1] ) ) {
3764
+            $search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3765
+        } else {
3766
+            $search = date( 'Y-m-d' );
3767
+        }
3768
+    }
3769
+
3770
+    return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3771 3771
 }
3772 3772
 
3773 3773
 
3774 3774
 if(!function_exists('sd_blocks_render_blocks')){
3775
-	/**
3776
-	 * Add the shortcodes to the block content if set as an attribute.
3777
-	 *
3778
-	 * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3779
-	 *
3780
-	 * @param $block_content
3781
-	 * @param $parsed_block
3782
-	 * @param $thiss
3783
-	 * @return mixed|string
3784
-	 */
3785
-	function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
3786
-		// Check hide block visibility conditions.
3787
-		if ( ! empty( $parsed_block ) && ! empty( $parsed_block['attrs']['visibility_conditions'] ) && $block_content && strpos( strrev( $block_content ), strrev( ' sd-block-has-rule sd-block-hide-rule"></div>' ) ) === 0 && ! empty( $thiss ) && $thiss->name ) {
3788
-			$match_content = '<div class="' . esc_attr( wp_get_block_default_classname( $thiss->name ) ) . ' sd-block-has-rule sd-block-hide-rule"></div>';
3789
-
3790
-			// Return empty content to hide block.
3791
-			if ( $block_content == $match_content ) {
3792
-				return '';
3793
-			}
3794
-		}
3795
-
3796
-		// Check if ita a nested block that needs to be wrapped
3797
-		if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3798
-			$content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3799
-			$block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3800
-
3801
-			$block_content = do_shortcode($block_content);
3802
-
3803
-		}elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3804
-			$has_warp = false;
3805
-			if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3806
-				$parts = explode('></', $block_content);
3807
-				if(count($parts) === 2){
3808
-					$block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3809
-					$has_warp = true;
3810
-				}
3811
-			}
3812
-			if (!$has_warp) {
3813
-				// Add the shortcode if its not a wrapped block
3814
-				$block_content .= $parsed_block['attrs']['sd_shortcode'];
3815
-			}
3816
-
3817
-			$block_content = do_shortcode($block_content);
3818
-		}
3819
-		return  $block_content;
3820
-	}
3775
+    /**
3776
+     * Add the shortcodes to the block content if set as an attribute.
3777
+     *
3778
+     * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3779
+     *
3780
+     * @param $block_content
3781
+     * @param $parsed_block
3782
+     * @param $thiss
3783
+     * @return mixed|string
3784
+     */
3785
+    function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
3786
+        // Check hide block visibility conditions.
3787
+        if ( ! empty( $parsed_block ) && ! empty( $parsed_block['attrs']['visibility_conditions'] ) && $block_content && strpos( strrev( $block_content ), strrev( ' sd-block-has-rule sd-block-hide-rule"></div>' ) ) === 0 && ! empty( $thiss ) && $thiss->name ) {
3788
+            $match_content = '<div class="' . esc_attr( wp_get_block_default_classname( $thiss->name ) ) . ' sd-block-has-rule sd-block-hide-rule"></div>';
3789
+
3790
+            // Return empty content to hide block.
3791
+            if ( $block_content == $match_content ) {
3792
+                return '';
3793
+            }
3794
+        }
3795
+
3796
+        // Check if ita a nested block that needs to be wrapped
3797
+        if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3798
+            $content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3799
+            $block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3800
+
3801
+            $block_content = do_shortcode($block_content);
3802
+
3803
+        }elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3804
+            $has_warp = false;
3805
+            if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3806
+                $parts = explode('></', $block_content);
3807
+                if(count($parts) === 2){
3808
+                    $block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3809
+                    $has_warp = true;
3810
+                }
3811
+            }
3812
+            if (!$has_warp) {
3813
+                // Add the shortcode if its not a wrapped block
3814
+                $block_content .= $parsed_block['attrs']['sd_shortcode'];
3815
+            }
3816
+
3817
+            $block_content = do_shortcode($block_content);
3818
+        }
3819
+        return  $block_content;
3820
+    }
3821 3821
 }
3822 3822
 
3823 3823
 add_filter('render_block', 'sd_blocks_render_blocks',10,3);
Please login to merge, or discard this patch.
vendor/ayecode/wp-super-duper/includes/class-super-duper-bricks-element.php 1 patch
Indentation   +259 added lines, -259 removed lines patch added patch discarded remove patch
@@ -6,259 +6,259 @@  discard block
 block discarded – undo
6 6
 
7 7
 class Super_Duper_Bricks_Element extends \Bricks\Element {
8 8
 
9
-	public $widget;
10
-
11
-	public function __construct( $element = null ) {
12
-
13
-
14
-		$block_icon = !empty($this->widget->options['block-icon']) ? $this->widget->options['block-icon'] : '';
9
+    public $widget;
15 10
 
11
+    public function __construct( $element = null ) {
12
+
13
+
14
+        $block_icon = !empty($this->widget->options['block-icon']) ? $this->widget->options['block-icon'] : '';
15
+
16
+
17
+        $this->category = !empty($this->widget->options['textdomain']) ? esc_attr( $this->widget->options['textdomain'] ) : 'Super Duper';
18
+        $this->name     = $this->widget->id_base;
19
+        $this->icon     = (strpos($block_icon, 'fa') === 0) ? esc_attr($this->widget->options['block-icon']) : 'fas fa-globe-americas';
20
+
21
+        parent::__construct($element);
22
+    }
23
+
24
+    /**
25
+     * Set the element name.
26
+     *
27
+     * @return array|string|string[]|null
28
+     */
29
+    public function get_label() {
30
+        $escaped_text = esc_attr( $this->widget->name );
31
+        return str_replace( ' &gt; ', ' > ', $escaped_text ); // keep our > but have it safe
32
+    }
33
+
34
+    /**
35
+     * Bricks function to set the controls
36
+     *
37
+     * @return void
38
+     */
39
+    public function set_controls() {
40
+        $args = $this->sd_convert_arguments($this->widget);
41
+
42
+        if (!empty($args)) {
43
+            $this->controls = $this->controls + $args;
44
+        }
45
+
46
+    }
47
+
48
+    /**
49
+     * Set the bricks control groups from the GD ones.
50
+     *
51
+     * @return void
52
+     */
53
+    public function set_control_groups() {
54
+        $args = $this->sd_get_arguments();
55
+
56
+        $groups = array();
57
+        if(!empty($args)) {
58
+            foreach ($args as $k => $v) {
59
+                $g_slug = !empty($v['group']) ? sanitize_title( $v['group'] ) : '';
60
+                if($g_slug && empty($groups[$g_slug])) {
61
+                    $groups[$g_slug] = array(
62
+                        'title' => esc_html( $v['group'] ),
63
+                        'tab' => 'content',
64
+                    );
65
+                }
66
+            }
67
+        }
68
+
69
+        if(!empty($groups)) {
70
+            $this->control_groups = $this->control_groups + $groups;
71
+        }
72
+
73
+    }
74
+
75
+    /**
76
+     * Get the setting input arguments.
77
+     *
78
+     * @return mixed
79
+     */
80
+    public function sd_get_arguments() {
81
+        $args = $this->widget->set_arguments();
82
+
83
+        $widget_options = ! empty( $this->widget->options ) ? $this->widget->options : array();
84
+        $widget_instance = ! empty( $this->widget->instance ) ? $this->widget->instance : array();
85
+
86
+        $args = apply_filters( 'wp_super_duper_arguments', $args, $widget_options, $widget_instance );
87
+
88
+        $arg_keys_subtract = $this->sd_remove_arguments();
89
+
90
+        if ( ! empty( $arg_keys_subtract ) ) {
91
+            foreach($arg_keys_subtract as $key ){
92
+                unset($args[$key]);
93
+            }
94
+        }
95
+
96
+        return $args;
97
+    }
98
+
99
+
100
+    /**
101
+     * Simply use our own render function for the output.
102
+     *
103
+     * @return void
104
+     */
105
+    public function render() {
106
+        $settings = $this->sd_maybe_convert_values( $this->settings );
107
+
108
+        // Set the AyeCode UI calss on the wrapper
109
+        $this->set_attribute( '_root', 'class', 'bsui' );
110
+
111
+        // We might need to add a placeholder here for previews.
112
+
113
+        do_action( 'super_duper_before_render_bricks_element', $settings, $this->widget, $this );
114
+
115
+        // Add the bricks attributes to wrapper
116
+        echo "<div {$this->render_attributes( '_root' )}>";
117
+        echo $this->widget->output( $settings );
118
+        echo '</div>';
119
+    }
120
+
121
+    /**
122
+     * Values can never be arrays so convert if bricks setting make it an array.
123
+     *
124
+     * @param $settings
125
+     * @return mixed
126
+     */
127
+    public function sd_maybe_convert_values( $settings ) {
128
+
129
+
130
+        if (!empty($settings)) {
131
+            foreach( $settings as $k => $v ) {
132
+                if(is_array($v)) {
133
+                    $value = '';
134
+                    // is color
135
+                    if (isset($v['hex'])) {
136
+                        $value = $v['hex'];
137
+                    } elseif (isset($v['icon'])) {
138
+                        $value = $v['icon'];
139
+                    }
140
+
141
+
142
+                    // set the value
143
+                    $settings[$k] = $value;
144
+                }
145
+
146
+            }
147
+        }
148
+
149
+        return $settings;
150
+    }
151
+
152
+    /**
153
+     * Convert SD arguments to Bricks arguments.
154
+     *
155
+     * @param $widget
156
+     *
157
+     * @return array
158
+     */
159
+    public function sd_convert_arguments() {
160
+        $bricks_args = array();
161
+
162
+        $args = $this->sd_get_arguments();
163
+
164
+        if ( ! empty( $args ) ) {
165
+            foreach ( $args as $key => $arg ) {
166
+                // convert title
167
+                if ( ! empty( $arg['title'] ) ) {
168
+                    $arg['label'] = $arg['title'];
169
+                    unset( $arg['title'] );
170
+                }
171
+
172
+                // set fields not to use dynamic data
173
+                $arg['hasDynamicData'] = false;
174
+
175
+                if ( ! empty( $arg['group'] ) ) {
176
+                    $arg['group'] =  sanitize_title( $arg['group'] );
177
+                }
178
+
179
+                $arg['rerender'] = true;
180
+
181
+                // required
182
+                if( ! empty( $arg['element_require'] ) ) {
183
+                    $arg['required'] = $this->sd_convert_required( $arg['element_require'] );
184
+                    unset( $arg['element_require'] );
185
+                }
186
+
187
+                // icons
188
+                if ( 'icon' === $key ) {
189
+                    $arg['type'] = 'icon';
190
+                }
191
+
192
+                // Bricks don't render dropdown when first option key is 0.
193
+                if ( in_array( $key, array( 'zoom', 'mapzoom' ) ) && ! empty( $arg['options'] ) && is_array( $arg['options'] ) && ( $option_keys = array_keys( $arg['options'] ) ) ) {
194
+                    // Move first element to last.
195
+                    if ( $option_keys[0] === 0 || $option_keys[0] === '0' ) {
196
+                        $options = $arg['options'];
197
+                        unset( $arg['options'][0] );
198
+                        $arg['options'][0] = $options[0];
199
+                    }
200
+                }
201
+
202
+                $bricks_args[$key] = $arg;
203
+            }
204
+        }
205
+
206
+        return $bricks_args;
207
+    }
208
+
209
+    /**
210
+     * Convert the SD element_required to the Bricks required syntax.
211
+     *
212
+     * @param $element_require
213
+     * @return array
214
+     */
215
+    public function sd_convert_required($element_require) {
216
+        $bricks_required = [];
217
+
218
+        // Handle logical OR (||) for multiple values
219
+        if (strpos($element_require, '||') !== false) {
220
+            preg_match('/\[%(.+?)%\] *== *"(.*?)"/', $element_require, $matches);
221
+            if ($matches) {
222
+                $control_id = $matches[1];
223
+                preg_match_all('/\[%.*?%\] *== *"(.*?)"/', $element_require, $value_matches);
224
+                $values = $value_matches[1];
225
+                $bricks_required[] = [$control_id, '=', $values];
226
+            }
227
+            return $bricks_required;
228
+        }
229
+
230
+        // Match individual conditions
231
+        preg_match_all('/(!)?\[%(.*?)%\](?:\s*([!=<>]=?)\s*(".*?"|\'.*?\'|\d+))?/', $element_require, $matches, PREG_SET_ORDER);
232
+
233
+        foreach ($matches as $match) {
234
+            $is_negation = isset($match[1]) && $match[1] === '!';
235
+            $control_id = $match[2];
236
+            $operator = isset($match[3]) ? str_replace('==', '=', $match[3]) : ($is_negation ? '=' : '!=');
237
+            $value = isset($match[4]) ? trim($match[4], '"\'') : ($is_negation ? '' : '');
238
+
239
+            // Adjust for negation without explicit operator
240
+            if ($is_negation && !isset($match[3])) {
241
+                $operator = '=';
242
+                $value = '';
243
+            }
244
+
245
+            $bricks_required[] = [$control_id, $operator, $value];
246
+        }
247
+
248
+        return $bricks_required;
249
+    }
250
+
251
+
252
+    /**
253
+     * A way to remove some settings by keys.
254
+     *
255
+     * @return array
256
+     */
257
+    public function sd_remove_arguments()
258
+    {
259
+        return array();
260
+    }
16 261
 
17
-		$this->category = !empty($this->widget->options['textdomain']) ? esc_attr( $this->widget->options['textdomain'] ) : 'Super Duper';
18
-		$this->name     = $this->widget->id_base;
19
-		$this->icon     = (strpos($block_icon, 'fa') === 0) ? esc_attr($this->widget->options['block-icon']) : 'fas fa-globe-americas';
20
-
21
-		parent::__construct($element);
22
-	}
23
-
24
-	/**
25
-	 * Set the element name.
26
-	 *
27
-	 * @return array|string|string[]|null
28
-	 */
29
-	public function get_label() {
30
-		$escaped_text = esc_attr( $this->widget->name );
31
-		return str_replace( ' &gt; ', ' > ', $escaped_text ); // keep our > but have it safe
32
-	}
33
-
34
-	/**
35
-	 * Bricks function to set the controls
36
-	 *
37
-	 * @return void
38
-	 */
39
-	public function set_controls() {
40
-		$args = $this->sd_convert_arguments($this->widget);
41
-
42
-		if (!empty($args)) {
43
-			$this->controls = $this->controls + $args;
44
-		}
45
-
46
-	}
47
-
48
-	/**
49
-	 * Set the bricks control groups from the GD ones.
50
-	 *
51
-	 * @return void
52
-	 */
53
-	public function set_control_groups() {
54
-		$args = $this->sd_get_arguments();
55
-
56
-		$groups = array();
57
-		if(!empty($args)) {
58
-			foreach ($args as $k => $v) {
59
-				$g_slug = !empty($v['group']) ? sanitize_title( $v['group'] ) : '';
60
-				if($g_slug && empty($groups[$g_slug])) {
61
-					$groups[$g_slug] = array(
62
-						'title' => esc_html( $v['group'] ),
63
-						'tab' => 'content',
64
-					);
65
-				}
66
-			}
67
-		}
68
-
69
-		if(!empty($groups)) {
70
-			$this->control_groups = $this->control_groups + $groups;
71
-		}
72
-
73
-	}
74
-
75
-	/**
76
-	 * Get the setting input arguments.
77
-	 *
78
-	 * @return mixed
79
-	 */
80
-	public function sd_get_arguments() {
81
-		$args = $this->widget->set_arguments();
82
-
83
-		$widget_options = ! empty( $this->widget->options ) ? $this->widget->options : array();
84
-		$widget_instance = ! empty( $this->widget->instance ) ? $this->widget->instance : array();
85
-
86
-		$args = apply_filters( 'wp_super_duper_arguments', $args, $widget_options, $widget_instance );
87
-
88
-		$arg_keys_subtract = $this->sd_remove_arguments();
89
-
90
-		if ( ! empty( $arg_keys_subtract ) ) {
91
-			foreach($arg_keys_subtract as $key ){
92
-				unset($args[$key]);
93
-			}
94
-		}
95
-
96
-		return $args;
97
-	}
98
-
99
-
100
-	/**
101
-	 * Simply use our own render function for the output.
102
-	 *
103
-	 * @return void
104
-	 */
105
-	public function render() {
106
-		$settings = $this->sd_maybe_convert_values( $this->settings );
107
-
108
-		// Set the AyeCode UI calss on the wrapper
109
-		$this->set_attribute( '_root', 'class', 'bsui' );
110
-
111
-		// We might need to add a placeholder here for previews.
112
-
113
-		do_action( 'super_duper_before_render_bricks_element', $settings, $this->widget, $this );
114
-
115
-		// Add the bricks attributes to wrapper
116
-		echo "<div {$this->render_attributes( '_root' )}>";
117
-		echo $this->widget->output( $settings );
118
-		echo '</div>';
119
-	}
120
-
121
-	/**
122
-	 * Values can never be arrays so convert if bricks setting make it an array.
123
-	 *
124
-	 * @param $settings
125
-	 * @return mixed
126
-	 */
127
-	public function sd_maybe_convert_values( $settings ) {
128
-
129
-
130
-		if (!empty($settings)) {
131
-			foreach( $settings as $k => $v ) {
132
-				if(is_array($v)) {
133
-					$value = '';
134
-					// is color
135
-					if (isset($v['hex'])) {
136
-						$value = $v['hex'];
137
-					} elseif (isset($v['icon'])) {
138
-						$value = $v['icon'];
139
-					}
140
-
141
-
142
-					// set the value
143
-					$settings[$k] = $value;
144
-				}
145
-
146
-			}
147
-		}
148
-
149
-		return $settings;
150
-	}
151
-
152
-	/**
153
-	 * Convert SD arguments to Bricks arguments.
154
-	 *
155
-	 * @param $widget
156
-	 *
157
-	 * @return array
158
-	 */
159
-	public function sd_convert_arguments() {
160
-		$bricks_args = array();
161
-
162
-		$args = $this->sd_get_arguments();
163
-
164
-		if ( ! empty( $args ) ) {
165
-			foreach ( $args as $key => $arg ) {
166
-				// convert title
167
-				if ( ! empty( $arg['title'] ) ) {
168
-					$arg['label'] = $arg['title'];
169
-					unset( $arg['title'] );
170
-				}
171
-
172
-				// set fields not to use dynamic data
173
-				$arg['hasDynamicData'] = false;
174
-
175
-				if ( ! empty( $arg['group'] ) ) {
176
-					$arg['group'] =  sanitize_title( $arg['group'] );
177
-				}
178
-
179
-				$arg['rerender'] = true;
180
-
181
-				// required
182
-				if( ! empty( $arg['element_require'] ) ) {
183
-					$arg['required'] = $this->sd_convert_required( $arg['element_require'] );
184
-					unset( $arg['element_require'] );
185
-				}
186
-
187
-				// icons
188
-				if ( 'icon' === $key ) {
189
-					$arg['type'] = 'icon';
190
-				}
191
-
192
-				// Bricks don't render dropdown when first option key is 0.
193
-				if ( in_array( $key, array( 'zoom', 'mapzoom' ) ) && ! empty( $arg['options'] ) && is_array( $arg['options'] ) && ( $option_keys = array_keys( $arg['options'] ) ) ) {
194
-					// Move first element to last.
195
-					if ( $option_keys[0] === 0 || $option_keys[0] === '0' ) {
196
-						$options = $arg['options'];
197
-						unset( $arg['options'][0] );
198
-						$arg['options'][0] = $options[0];
199
-					}
200
-				}
201
-
202
-				$bricks_args[$key] = $arg;
203
-			}
204
-		}
205
-
206
-		return $bricks_args;
207
-	}
208
-
209
-	/**
210
-	 * Convert the SD element_required to the Bricks required syntax.
211
-	 *
212
-	 * @param $element_require
213
-	 * @return array
214
-	 */
215
-	public function sd_convert_required($element_require) {
216
-		$bricks_required = [];
217
-
218
-		// Handle logical OR (||) for multiple values
219
-		if (strpos($element_require, '||') !== false) {
220
-			preg_match('/\[%(.+?)%\] *== *"(.*?)"/', $element_require, $matches);
221
-			if ($matches) {
222
-				$control_id = $matches[1];
223
-				preg_match_all('/\[%.*?%\] *== *"(.*?)"/', $element_require, $value_matches);
224
-				$values = $value_matches[1];
225
-				$bricks_required[] = [$control_id, '=', $values];
226
-			}
227
-			return $bricks_required;
228
-		}
229
-
230
-		// Match individual conditions
231
-		preg_match_all('/(!)?\[%(.*?)%\](?:\s*([!=<>]=?)\s*(".*?"|\'.*?\'|\d+))?/', $element_require, $matches, PREG_SET_ORDER);
232
-
233
-		foreach ($matches as $match) {
234
-			$is_negation = isset($match[1]) && $match[1] === '!';
235
-			$control_id = $match[2];
236
-			$operator = isset($match[3]) ? str_replace('==', '=', $match[3]) : ($is_negation ? '=' : '!=');
237
-			$value = isset($match[4]) ? trim($match[4], '"\'') : ($is_negation ? '' : '');
238
-
239
-			// Adjust for negation without explicit operator
240
-			if ($is_negation && !isset($match[3])) {
241
-				$operator = '=';
242
-				$value = '';
243
-			}
244
-
245
-			$bricks_required[] = [$control_id, $operator, $value];
246
-		}
247
-
248
-		return $bricks_required;
249
-	}
250
-
251
-
252
-	/**
253
-	 * A way to remove some settings by keys.
254
-	 *
255
-	 * @return array
256
-	 */
257
-	public function sd_remove_arguments()
258
-	{
259
-		return array();
260
-	}
261
-
262 262
 }
263 263
 
264 264
 
@@ -267,12 +267,12 @@  discard block
 block discarded – undo
267 267
  */
268 268
 add_action( 'wp_enqueue_scripts', function() {
269 269
 
270
-	// Check if we're in the Bricks Editor
271
-	if ( isset( $_GET['bricks'] ) && $_GET['bricks'] && bricks_is_builder_main() ) {
272
-		// Add inline script to the 'bricks-builder' script
273
-		wp_add_inline_script(
274
-			'bricks-builder',
275
-			"
270
+    // Check if we're in the Bricks Editor
271
+    if ( isset( $_GET['bricks'] ) && $_GET['bricks'] && bricks_is_builder_main() ) {
272
+        // Add inline script to the 'bricks-builder' script
273
+        wp_add_inline_script(
274
+            'bricks-builder',
275
+            "
276 276
 
277 277
 (function () {
278 278
     // Function to get the current breakpoint from the #bricks-preview class
@@ -479,6 +479,6 @@  discard block
 block discarded – undo
479 479
     addIconsToLabels();
480 480
 })();
481 481
 "
482
-		);
483
-	}
482
+        );
483
+    }
484 484
 });
Please login to merge, or discard this patch.
includes/admin/class-wpinv-subscriptions-list-table.php 1 patch
Indentation   +475 added lines, -475 removed lines patch added patch discarded remove patch
@@ -8,7 +8,7 @@  discard block
 block discarded – undo
8 8
 }
9 9
 
10 10
 if ( ! class_exists( 'WP_List_Table' ) ) {
11
-	include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
11
+    include_once ABSPATH . 'wp-admin/includes/class-wp-list-table.php';
12 12
 }
13 13
 
14 14
 /**
@@ -16,479 +16,479 @@  discard block
 block discarded – undo
16 16
  */
17 17
 class WPInv_Subscriptions_List_Table extends WP_List_Table {
18 18
 
19
-	/**
20
-	 * URL of this page
21
-	 *
22
-	 * @var   string
23
-	 * @since 1.0.19
24
-	 */
25
-	public $base_url;
26
-
27
-	/**
28
-	 * Query
29
-	 *
30
-	 * @var   GetPaid_Subscriptions_Query
31
-	 * @since 1.0.19
32
-	 */
33
-	public $query;
34
-
35
-	/**
36
-	 * Total subscriptions
37
-	 *
38
-	 * @var   string
39
-	 * @since 1.0.0
40
-	 */
41
-	public $total_count;
42
-
43
-	/**
44
-	 * Current status subscriptions
45
-	 *
46
-	 * @var   string
47
-	 * @since 1.0.0
48
-	 */
49
-	public $current_total_count;
50
-
51
-	/**
52
-	 * Status counts
53
-	 *
54
-	 * @var   array
55
-	 * @since 1.0.19
56
-	 */
57
-	public $status_counts;
58
-
59
-	/**
60
-	 * Number of results to show per page
61
-	 *
62
-	 * @var   int
63
-	 * @since 1.0.0
64
-	 */
65
-	public $per_page = 10;
66
-
67
-	/**
68
-	 *  Constructor function.
69
-	 */
70
-	public function __construct() {
71
-
72
-		parent::__construct(
73
-			array(
74
-				'singular' => 'subscription',
75
-				'plural'   => 'subscriptions',
76
-			)
77
-		);
78
-
79
-		$this->process_bulk_action();
80
-
81
-		$this->prepare_query();
82
-
83
-		$this->base_url = remove_query_arg( 'status' );
84
-
85
-	}
86
-
87
-	/**
88
-	 *  Prepares the display query
89
-	 */
90
-	public function prepare_query() {
91
-
92
-		// Prepare query args.
93
-		$query = array(
94
-			'number'      => $this->per_page,
95
-			'paged'       => $this->get_paged(),
96
-			'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
-			'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
-			'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
-			'customer_in' => $this->get_user_in(),
100
-		);
101
-
102
-		if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
-			$this->total_count         = 0;
104
-			$this->current_total_count = 0;
105
-			$this->items               = array();
106
-			$this->status_counts       = array();
107
-			return;
108
-		}
109
-
110
-		// Prepare class properties.
111
-		$this->query               = new GetPaid_Subscriptions_Query( $query );
112
-		$this->total_count         = $this->query->get_total();
113
-		$this->current_total_count = $this->query->get_total();
114
-		$this->items               = $this->query->get_results();
115
-		$this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
-
117
-		if ( 'all' != $query['status'] ) {
118
-			unset( $query['status'] );
119
-			$this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
-		}
121
-
122
-	}
123
-
124
-	/**
125
-	 * Get user in.
126
-	 *
127
-	 */
128
-	public function get_user_in() {
129
-
130
-		// Abort if no user.
131
-		if ( empty( $_GET['s'] ) ) {
132
-			return null;
133
-		}
134
-
135
-		// Or invalid user.
136
-		$user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
-
138
-		if ( empty( $user ) ) {
139
-			return null;
140
-		}
141
-
142
-		// Search matching users.
143
-		$user  = '*' . $user . '*';
144
-		$users = new WP_User_Query(
145
-			array(
146
-				'fields'      => 'ID',
147
-				'search'      => $user,
148
-				'count_total' => false,
149
-			)
150
-		);
151
-
152
-		return $users->get_results();
153
-	}
154
-
155
-	/**
156
-	 * Gets the list of views available on this table.
157
-	 *
158
-	 * The format is an associative array:
159
-	 * - `'id' => 'link'`
160
-	 *
161
-	 * @since 1.0.0
162
-	 *
163
-	 * @return array
164
-	 */
165
-	public function get_views() {
166
-
167
-		$current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
-		$views    = array(
169
-
170
-			'all' => sprintf(
171
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
-				esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
-				$current === 'all' ? ' class="current"' : '',
174
-				__( 'All', 'invoicing' ),
175
-				$this->total_count
176
-			),
177
-
178
-		);
179
-
180
-		foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
-
182
-			$views[ $status ] = sprintf(
183
-				'<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
-				esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
-				$current === $status ? ' class="current"' : '',
186
-				esc_html( getpaid_get_subscription_status_label( $status ) ),
187
-				$count
188
-			);
189
-
190
-		}
191
-
192
-		return $views;
193
-
194
-	}
195
-
196
-	/**
197
-	 * Render most columns
198
-	 *
199
-	 * @access      private
200
-	 * @since       1.0.0
201
-	 * @return      string
202
-	 */
203
-	public function column_default( $item, $column_name ) {
204
-		return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
-	}
206
-
207
-	/**
208
-	 * This is how checkbox column renders.
209
-	 *
210
-	 * @param WPInv_Subscription $item
211
-	 * @return string
212
-	 */
213
-	public function column_cb( $item ) {
214
-		return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
-	}
216
-
217
-	/**
218
-	 * Status column
219
-	 *
220
-	 * @param WPInv_Subscription $item
221
-	 * @since       1.0.0
222
-	 * @return      string
223
-	 */
224
-	public function column_status( $item ) {
225
-		$extra = $item->has_status( 'expired' ) ? '<small class="text-muted d-block">' . wp_sprintf( _x( 'On: %s', 'Expired On:', 'invoicing' ), getpaid_format_date_value( $item->get_expiration() ) ) . '</small>' : '';
226
-
227
-		return $item->get_status_label_html() . $extra;
228
-	}
229
-
230
-	/**
231
-	 * Subscription column
232
-	 *
233
-	 * @param WPInv_Subscription $item
234
-	 * @since       1.0.0
235
-	 * @return      string
236
-	 */
237
-	public function column_subscription( $item ) {
238
-
239
-		$username = __( '(Missing User)', 'invoicing' );
240
-
241
-		$user = get_userdata( $item->get_customer_id() );
242
-		$capabilities = wpinv_current_user_can_manage_invoicing();
243
-
244
-		if ( $user ) {
245
-			$username = sprintf(
246
-				'<a href="user-edit.php?user_id=%s">%s</a>',
247
-				absint( $user->ID ),
248
-				! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
249
-			);
250
-		}
251
-
252
-		// translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
253
-		$column_content = sprintf(
254
-			_x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
255
-			'<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
256
-			'<strong>' . esc_attr( $item->get_id() ) . '</strong>',
257
-			'</a>',
258
-			$username
259
-		);
260
-
261
-		$row_actions = array();
262
-
263
-		// View subscription.
264
-		$view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
265
-		$row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
266
-
267
-		// View invoice.
268
-		$invoice = get_post( $item->get_parent_invoice_id() );
269
-
270
-		if ( ! empty( $invoice ) ) {
271
-			$invoice_url            = get_edit_post_link( $invoice );
272
-			$row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
273
-		}
274
-
275
-		$delete_url            = esc_url(
276
-			wp_nonce_url(
277
-				add_query_arg(
278
-					array(
279
-						'getpaid-admin-action' => 'subscription_manual_delete',
280
-						'id'                   => $item->get_id(),
281
-					)
282
-				),
283
-				'getpaid-nonce',
284
-				'getpaid-nonce'
285
-			)
286
-		);
287
-		$row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
288
-
289
-		if ( ! $capabilities ) {
290
-			$row_actions = array();
291
-		}
292
-
293
-		$row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
294
-
295
-		return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
296
-	}
297
-
298
-	/**
299
-	 * Renewal date column
300
-	 *
301
-	 * @param WPInv_Subscription $item
302
-	 * @since       1.0.0
303
-	 * @return      string
304
-	 */
305
-	public function column_renewal_date( $item ) {
306
-		if ( $item->has_status( 'active trialling' ) ) {
307
-			$value = getpaid_format_date_value( $item->get_expiration() );
308
-		} else {
309
-			$value = '-';
310
-		}
311
-
312
-		return $value;
313
-	}
314
-
315
-	/**
316
-	 * Start date column
317
-	 *
318
-	 * @param WPInv_Subscription $item
319
-	 * @since       1.0.0
320
-	 * @return      string
321
-	 */
322
-	public function column_start_date( $item ) {
323
-
324
-		$gateway = $item->get_parent_invoice()->get_gateway_title();
325
-
326
-		if ( empty( $gateway ) ) {
327
-			return getpaid_format_date_value( $item->get_date_created() );
328
-		}
329
-
330
-		$url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
331
-		if ( ! empty( $url ) ) {
332
-
333
-			return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
334
-				__( 'Via %s', 'invoicing' ),
335
-				'<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
336
-			);
337
-
338
-		}
339
-
340
-		return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
341
-			__( 'Via %s', 'invoicing' ),
342
-			'<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
343
-		);
344
-
345
-	}
346
-
347
-	/**
348
-	 * Amount column
349
-	 *
350
-	 * @param WPInv_Subscription $item
351
-	 * @since       1.0.19
352
-	 * @return      string
353
-	 */
354
-	public static function column_amount( $item ) {
355
-		$amount = getpaid_get_formatted_subscription_amount( $item );
356
-		return "<span class='text-muted form-text mt-2 mb-2 ms-1 ml-1'>$amount</span>";
357
-	}
358
-
359
-	/**
360
-	 * Billing Times column
361
-	 *
362
-	 * @param WPInv_Subscription $item
363
-	 * @since       1.0.0
364
-	 * @return      string
365
-	 */
366
-	public function column_renewals( $item ) {
367
-		$max_bills = $item->get_bill_times();
368
-		return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
369
-	}
370
-
371
-	/**
372
-	 * Product ID column
373
-	 *
374
-	 * @param WPInv_Subscription $item
375
-	 * @since       1.0.0
376
-	 * @return      string
377
-	 */
378
-	public function column_item( $item ) {
379
-		$subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
380
-
381
-		if ( empty( $subscription_group ) ) {
382
-			return $this->generate_item_markup( $item->get_product_id() );
383
-		}
384
-
385
-		$markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
386
-		return implode( ' | ', $markup );
387
-
388
-	}
389
-
390
-	/**
391
-	 * Generates the items markup.
392
-	 *
393
-	 * @param int $item_id
394
-	 * @since       1.0.0
395
-	 * @return      string
396
-	 */
397
-	public static function generate_item_markup( $item_id ) {
398
-		$item = get_post( $item_id );
399
-
400
-		if ( ! empty( $item ) ) {
401
-			$link = get_edit_post_link( $item );
402
-			$name = esc_html( get_the_title( $item ) );
403
-			return wpinv_current_user_can_manage_invoicing() ? "<a href='" . ( $link ? esc_url( $link ) : '#' ) . "'>$name</a>" : $name;
404
-		} else {
405
-			return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
406
-		}
407
-
408
-	}
409
-
410
-	/**
411
-	 * Retrieve the current page number
412
-	 *
413
-	 * @return      int
414
-	 */
415
-	public function get_paged() {
416
-		return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
417
-	}
418
-
419
-	/**
420
-	 * Setup the final data for the table
421
-	 *
422
-	 */
423
-	public function prepare_items() {
424
-
425
-		$columns  = $this->get_columns();
426
-		$hidden   = array();
427
-		$sortable = $this->get_sortable_columns();
428
-
429
-		$this->_column_headers = array( $columns, $hidden, $sortable );
430
-
431
-		$this->set_pagination_args(
432
-			array(
433
-				'total_items' => $this->current_total_count,
434
-				'per_page'    => $this->per_page,
435
-				'total_pages' => ceil( $this->current_total_count / $this->per_page ),
436
-			)
437
-		);
438
-	}
439
-
440
-	/**
441
-	 * Table columns
442
-	 *
443
-	 * @return array
444
-	 */
445
-	public function get_columns() {
446
-		$columns = array(
447
-			'cb'           => '<input type="checkbox" />',
448
-			'subscription' => __( 'Subscription', 'invoicing' ),
449
-			'start_date'   => __( 'Start Date', 'invoicing' ),
450
-			'renewal_date' => __( 'Next Payment', 'invoicing' ),
451
-			'renewals'     => __( 'Payments', 'invoicing' ),
452
-			'item'         => __( 'Items', 'invoicing' ),
453
-			'status'       => __( 'Status', 'invoicing' ),
454
-		);
455
-
456
-		return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
457
-	}
458
-
459
-	/**
460
-	 * Sortable table columns.
461
-	 *
462
-	 * @return array
463
-	 */
464
-	public function get_sortable_columns() {
465
-		$sortable = array(
466
-			'subscription' => array( 'id', true ),
467
-			'start_date'   => array( 'created', true ),
468
-			'renewal_date' => array( 'expiration', true ),
469
-			'renewals'     => array( 'bill_times', true ),
470
-			'item'         => array( 'product_id', true ),
471
-			'status'       => array( 'status', true ),
472
-		);
473
-
474
-		return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
475
-	}
476
-
477
-	/**
478
-	 * Whether the table has items to display or not
479
-	 *
480
-	 * @return bool
481
-	 */
482
-	public function has_items() {
483
-		return ! empty( $this->current_total_count );
484
-	}
485
-
486
-	/**
487
-	 * Processes bulk actions.
488
-	 *
489
-	 */
490
-	public function process_bulk_action() {
491
-
492
-	}
19
+    /**
20
+     * URL of this page
21
+     *
22
+     * @var   string
23
+     * @since 1.0.19
24
+     */
25
+    public $base_url;
26
+
27
+    /**
28
+     * Query
29
+     *
30
+     * @var   GetPaid_Subscriptions_Query
31
+     * @since 1.0.19
32
+     */
33
+    public $query;
34
+
35
+    /**
36
+     * Total subscriptions
37
+     *
38
+     * @var   string
39
+     * @since 1.0.0
40
+     */
41
+    public $total_count;
42
+
43
+    /**
44
+     * Current status subscriptions
45
+     *
46
+     * @var   string
47
+     * @since 1.0.0
48
+     */
49
+    public $current_total_count;
50
+
51
+    /**
52
+     * Status counts
53
+     *
54
+     * @var   array
55
+     * @since 1.0.19
56
+     */
57
+    public $status_counts;
58
+
59
+    /**
60
+     * Number of results to show per page
61
+     *
62
+     * @var   int
63
+     * @since 1.0.0
64
+     */
65
+    public $per_page = 10;
66
+
67
+    /**
68
+     *  Constructor function.
69
+     */
70
+    public function __construct() {
71
+
72
+        parent::__construct(
73
+            array(
74
+                'singular' => 'subscription',
75
+                'plural'   => 'subscriptions',
76
+            )
77
+        );
78
+
79
+        $this->process_bulk_action();
80
+
81
+        $this->prepare_query();
82
+
83
+        $this->base_url = remove_query_arg( 'status' );
84
+
85
+    }
86
+
87
+    /**
88
+     *  Prepares the display query
89
+     */
90
+    public function prepare_query() {
91
+
92
+        // Prepare query args.
93
+        $query = array(
94
+            'number'      => $this->per_page,
95
+            'paged'       => $this->get_paged(),
96
+            'status'      => ( isset( $_GET['status'] ) && array_key_exists( $_GET['status'], getpaid_get_subscription_statuses() ) ) ? sanitize_text_field( $_GET['status'] ) : 'all',
97
+            'orderby'     => ( isset( $_GET['orderby'] ) ) ? sanitize_text_field( $_GET['orderby'] ) : 'id',
98
+            'order'       => ( isset( $_GET['order'] ) ) ? sanitize_text_field( $_GET['order'] ) : 'DESC',
99
+            'customer_in' => $this->get_user_in(),
100
+        );
101
+
102
+        if ( is_array( $query['customer_in'] ) && empty( $query['customer_in'] ) ) {
103
+            $this->total_count         = 0;
104
+            $this->current_total_count = 0;
105
+            $this->items               = array();
106
+            $this->status_counts       = array();
107
+            return;
108
+        }
109
+
110
+        // Prepare class properties.
111
+        $this->query               = new GetPaid_Subscriptions_Query( $query );
112
+        $this->total_count         = $this->query->get_total();
113
+        $this->current_total_count = $this->query->get_total();
114
+        $this->items               = $this->query->get_results();
115
+        $this->status_counts       = getpaid_get_subscription_status_counts( $query );
116
+
117
+        if ( 'all' != $query['status'] ) {
118
+            unset( $query['status'] );
119
+            $this->total_count   = getpaid_get_subscriptions( $query, 'count' );
120
+        }
121
+
122
+    }
123
+
124
+    /**
125
+     * Get user in.
126
+     *
127
+     */
128
+    public function get_user_in() {
129
+
130
+        // Abort if no user.
131
+        if ( empty( $_GET['s'] ) ) {
132
+            return null;
133
+        }
134
+
135
+        // Or invalid user.
136
+        $user = wp_unslash( sanitize_text_field( $_REQUEST['s'] ) );
137
+
138
+        if ( empty( $user ) ) {
139
+            return null;
140
+        }
141
+
142
+        // Search matching users.
143
+        $user  = '*' . $user . '*';
144
+        $users = new WP_User_Query(
145
+            array(
146
+                'fields'      => 'ID',
147
+                'search'      => $user,
148
+                'count_total' => false,
149
+            )
150
+        );
151
+
152
+        return $users->get_results();
153
+    }
154
+
155
+    /**
156
+     * Gets the list of views available on this table.
157
+     *
158
+     * The format is an associative array:
159
+     * - `'id' => 'link'`
160
+     *
161
+     * @since 1.0.0
162
+     *
163
+     * @return array
164
+     */
165
+    public function get_views() {
166
+
167
+        $current  = isset( $_GET['status'] ) ? sanitize_text_field( $_GET['status'] ) : 'all';
168
+        $views    = array(
169
+
170
+            'all' => sprintf(
171
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
172
+                esc_url( add_query_arg( 'status', false, $this->base_url ) ),
173
+                $current === 'all' ? ' class="current"' : '',
174
+                __( 'All', 'invoicing' ),
175
+                $this->total_count
176
+            ),
177
+
178
+        );
179
+
180
+        foreach ( array_filter( $this->status_counts ) as $status => $count ) {
181
+
182
+            $views[ $status ] = sprintf(
183
+                '<a href="%s" %s>%s&nbsp;<span class="count">(%d)</span></a>',
184
+                esc_url( add_query_arg( 'status', urlencode( $status ), $this->base_url ) ),
185
+                $current === $status ? ' class="current"' : '',
186
+                esc_html( getpaid_get_subscription_status_label( $status ) ),
187
+                $count
188
+            );
189
+
190
+        }
191
+
192
+        return $views;
193
+
194
+    }
195
+
196
+    /**
197
+     * Render most columns
198
+     *
199
+     * @access      private
200
+     * @since       1.0.0
201
+     * @return      string
202
+     */
203
+    public function column_default( $item, $column_name ) {
204
+        return apply_filters( "getpaid_subscriptions_table_column_$column_name", $item->$column_name );
205
+    }
206
+
207
+    /**
208
+     * This is how checkbox column renders.
209
+     *
210
+     * @param WPInv_Subscription $item
211
+     * @return string
212
+     */
213
+    public function column_cb( $item ) {
214
+        return sprintf( '<input type="checkbox" name="id[]" value="%s" />', esc_html( $item->get_id() ) );
215
+    }
216
+
217
+    /**
218
+     * Status column
219
+     *
220
+     * @param WPInv_Subscription $item
221
+     * @since       1.0.0
222
+     * @return      string
223
+     */
224
+    public function column_status( $item ) {
225
+        $extra = $item->has_status( 'expired' ) ? '<small class="text-muted d-block">' . wp_sprintf( _x( 'On: %s', 'Expired On:', 'invoicing' ), getpaid_format_date_value( $item->get_expiration() ) ) . '</small>' : '';
226
+
227
+        return $item->get_status_label_html() . $extra;
228
+    }
229
+
230
+    /**
231
+     * Subscription column
232
+     *
233
+     * @param WPInv_Subscription $item
234
+     * @since       1.0.0
235
+     * @return      string
236
+     */
237
+    public function column_subscription( $item ) {
238
+
239
+        $username = __( '(Missing User)', 'invoicing' );
240
+
241
+        $user = get_userdata( $item->get_customer_id() );
242
+        $capabilities = wpinv_current_user_can_manage_invoicing();
243
+
244
+        if ( $user ) {
245
+            $username = sprintf(
246
+                '<a href="user-edit.php?user_id=%s">%s</a>',
247
+                absint( $user->ID ),
248
+                ! empty( $user->display_name ) ? esc_html( $user->display_name ) : sanitize_email( $user->user_email )
249
+            );
250
+        }
251
+
252
+        // translators: $1: is opening link, $2: is subscription id number, $3: is closing link tag, $4: is user's name
253
+        $column_content = sprintf(
254
+            _x( '%1$s#%2$s%3$s for %4$s', 'Subscription title on admin table. (e.g.: #211 for John Doe)', 'invoicing' ),
255
+            '<a href="' . esc_url( admin_url( 'admin.php?page=wpinv-subscriptions&id=' . absint( $item->get_id() ) ) ) . '">',
256
+            '<strong>' . esc_attr( $item->get_id() ) . '</strong>',
257
+            '</a>',
258
+            $username
259
+        );
260
+
261
+        $row_actions = array();
262
+
263
+        // View subscription.
264
+        $view_url    = esc_url( add_query_arg( 'id', $item->get_id(), admin_url( 'admin.php?page=wpinv-subscriptions' ) ) );
265
+        $row_actions['view'] = '<a href="' . $view_url . '">' . __( 'View Subscription', 'invoicing' ) . '</a>';
266
+
267
+        // View invoice.
268
+        $invoice = get_post( $item->get_parent_invoice_id() );
269
+
270
+        if ( ! empty( $invoice ) ) {
271
+            $invoice_url            = get_edit_post_link( $invoice );
272
+            $row_actions['invoice'] = '<a href="' . $invoice_url . '">' . __( 'View Invoice', 'invoicing' ) . '</a>';
273
+        }
274
+
275
+        $delete_url            = esc_url(
276
+            wp_nonce_url(
277
+                add_query_arg(
278
+                    array(
279
+                        'getpaid-admin-action' => 'subscription_manual_delete',
280
+                        'id'                   => $item->get_id(),
281
+                    )
282
+                ),
283
+                'getpaid-nonce',
284
+                'getpaid-nonce'
285
+            )
286
+        );
287
+        $row_actions['delete'] = '<a class="text-danger" href="' . $delete_url . '">' . __( 'Delete Subscription', 'invoicing' ) . '</a>';
288
+
289
+        if ( ! $capabilities ) {
290
+            $row_actions = array();
291
+        }
292
+
293
+        $row_actions = $this->row_actions( apply_filters( 'getpaid_subscription_table_row_actions', $row_actions, $item ) );
294
+
295
+        return "<strong>$column_content</strong>" . $this->column_amount( $item ) . $row_actions;
296
+    }
297
+
298
+    /**
299
+     * Renewal date column
300
+     *
301
+     * @param WPInv_Subscription $item
302
+     * @since       1.0.0
303
+     * @return      string
304
+     */
305
+    public function column_renewal_date( $item ) {
306
+        if ( $item->has_status( 'active trialling' ) ) {
307
+            $value = getpaid_format_date_value( $item->get_expiration() );
308
+        } else {
309
+            $value = '-';
310
+        }
311
+
312
+        return $value;
313
+    }
314
+
315
+    /**
316
+     * Start date column
317
+     *
318
+     * @param WPInv_Subscription $item
319
+     * @since       1.0.0
320
+     * @return      string
321
+     */
322
+    public function column_start_date( $item ) {
323
+
324
+        $gateway = $item->get_parent_invoice()->get_gateway_title();
325
+
326
+        if ( empty( $gateway ) ) {
327
+            return getpaid_format_date_value( $item->get_date_created() );
328
+        }
329
+
330
+        $url = apply_filters( 'getpaid_remote_subscription_profile_url', '', $item );
331
+        if ( ! empty( $url ) ) {
332
+
333
+            return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
334
+                __( 'Via %s', 'invoicing' ),
335
+                '<strong><a href="' . esc_url( $url ) . '" target="_blank">' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</a></strong>'
336
+            );
337
+
338
+        }
339
+
340
+        return getpaid_format_date_value( $item->get_date_created() ) . '<br>' . sprintf(
341
+            __( 'Via %s', 'invoicing' ),
342
+            '<strong>' . esc_html( $item->get_parent_invoice()->get_gateway_title() ) . '</strong>'
343
+        );
344
+
345
+    }
346
+
347
+    /**
348
+     * Amount column
349
+     *
350
+     * @param WPInv_Subscription $item
351
+     * @since       1.0.19
352
+     * @return      string
353
+     */
354
+    public static function column_amount( $item ) {
355
+        $amount = getpaid_get_formatted_subscription_amount( $item );
356
+        return "<span class='text-muted form-text mt-2 mb-2 ms-1 ml-1'>$amount</span>";
357
+    }
358
+
359
+    /**
360
+     * Billing Times column
361
+     *
362
+     * @param WPInv_Subscription $item
363
+     * @since       1.0.0
364
+     * @return      string
365
+     */
366
+    public function column_renewals( $item ) {
367
+        $max_bills = $item->get_bill_times();
368
+        return $item->get_times_billed() . ' / ' . ( empty( $max_bills ) ? '&infin;' : $max_bills );
369
+    }
370
+
371
+    /**
372
+     * Product ID column
373
+     *
374
+     * @param WPInv_Subscription $item
375
+     * @since       1.0.0
376
+     * @return      string
377
+     */
378
+    public function column_item( $item ) {
379
+        $subscription_group = getpaid_get_invoice_subscription_group( $item->get_parent_invoice_id(), $item->get_id() );
380
+
381
+        if ( empty( $subscription_group ) ) {
382
+            return $this->generate_item_markup( $item->get_product_id() );
383
+        }
384
+
385
+        $markup = array_map( array( $this, 'generate_item_markup' ), array_keys( $subscription_group['items'] ) );
386
+        return implode( ' | ', $markup );
387
+
388
+    }
389
+
390
+    /**
391
+     * Generates the items markup.
392
+     *
393
+     * @param int $item_id
394
+     * @since       1.0.0
395
+     * @return      string
396
+     */
397
+    public static function generate_item_markup( $item_id ) {
398
+        $item = get_post( $item_id );
399
+
400
+        if ( ! empty( $item ) ) {
401
+            $link = get_edit_post_link( $item );
402
+            $name = esc_html( get_the_title( $item ) );
403
+            return wpinv_current_user_can_manage_invoicing() ? "<a href='" . ( $link ? esc_url( $link ) : '#' ) . "'>$name</a>" : $name;
404
+        } else {
405
+            return sprintf( __( 'Item #%s', 'invoicing' ), $item_id );
406
+        }
407
+
408
+    }
409
+
410
+    /**
411
+     * Retrieve the current page number
412
+     *
413
+     * @return      int
414
+     */
415
+    public function get_paged() {
416
+        return isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 1;
417
+    }
418
+
419
+    /**
420
+     * Setup the final data for the table
421
+     *
422
+     */
423
+    public function prepare_items() {
424
+
425
+        $columns  = $this->get_columns();
426
+        $hidden   = array();
427
+        $sortable = $this->get_sortable_columns();
428
+
429
+        $this->_column_headers = array( $columns, $hidden, $sortable );
430
+
431
+        $this->set_pagination_args(
432
+            array(
433
+                'total_items' => $this->current_total_count,
434
+                'per_page'    => $this->per_page,
435
+                'total_pages' => ceil( $this->current_total_count / $this->per_page ),
436
+            )
437
+        );
438
+    }
439
+
440
+    /**
441
+     * Table columns
442
+     *
443
+     * @return array
444
+     */
445
+    public function get_columns() {
446
+        $columns = array(
447
+            'cb'           => '<input type="checkbox" />',
448
+            'subscription' => __( 'Subscription', 'invoicing' ),
449
+            'start_date'   => __( 'Start Date', 'invoicing' ),
450
+            'renewal_date' => __( 'Next Payment', 'invoicing' ),
451
+            'renewals'     => __( 'Payments', 'invoicing' ),
452
+            'item'         => __( 'Items', 'invoicing' ),
453
+            'status'       => __( 'Status', 'invoicing' ),
454
+        );
455
+
456
+        return apply_filters( 'manage_getpaid_subscriptions_table_columns', $columns );
457
+    }
458
+
459
+    /**
460
+     * Sortable table columns.
461
+     *
462
+     * @return array
463
+     */
464
+    public function get_sortable_columns() {
465
+        $sortable = array(
466
+            'subscription' => array( 'id', true ),
467
+            'start_date'   => array( 'created', true ),
468
+            'renewal_date' => array( 'expiration', true ),
469
+            'renewals'     => array( 'bill_times', true ),
470
+            'item'         => array( 'product_id', true ),
471
+            'status'       => array( 'status', true ),
472
+        );
473
+
474
+        return apply_filters( 'manage_getpaid_subscriptions_sortable_table_columns', $sortable );
475
+    }
476
+
477
+    /**
478
+     * Whether the table has items to display or not
479
+     *
480
+     * @return bool
481
+     */
482
+    public function has_items() {
483
+        return ! empty( $this->current_total_count );
484
+    }
485
+
486
+    /**
487
+     * Processes bulk actions.
488
+     *
489
+     */
490
+    public function process_bulk_action() {
491
+
492
+    }
493 493
 
494 494
 }
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/includes/inc/bs5-js.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -1075,8 +1075,8 @@
 block discarded – undo
1075 1075
     aui_flip_color_scheme_on_scroll();
1076 1076
 
1077 1077
 	<?php
1078
-	// FSE tweaks.
1079
-	if(!empty($_REQUEST['postType']) || !empty($_REQUEST['canvas']) ){ ?>
1078
+    // FSE tweaks.
1079
+    if(!empty($_REQUEST['postType']) || !empty($_REQUEST['canvas']) ){ ?>
1080 1080
     function aui_fse_set_data_scroll() {
1081 1081
         console.log('init scroll');
1082 1082
         let Iframe = document.getElementsByClassName("edit-site-visual-editor__editor-canvas");
Please login to merge, or discard this patch.
vendor/ayecode/wp-ayecode-ui/includes/inc/bs4-js.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -962,8 +962,8 @@
 block discarded – undo
962 962
     aui_flip_color_scheme_on_scroll();
963 963
 
964 964
 	<?php
965
-	// FSE tweaks.
966
-	if(!empty($_REQUEST['postType']) && $_REQUEST['postType']=='wp_template' || !empty($_REQUEST['canvas']) ){ ?>
965
+    // FSE tweaks.
966
+    if(!empty($_REQUEST['postType']) && $_REQUEST['postType']=='wp_template' || !empty($_REQUEST['canvas']) ){ ?>
967 967
     function aui_fse_set_data_scroll() {
968 968
         console.log('init scroll');
969 969
         let Iframe = document.getElementsByClassName("edit-site-visual-editor__editor-canvas");
Please login to merge, or discard this patch.
templates/subscriptions/subscriptions-table-row.php 1 patch
Indentation   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -13,47 +13,47 @@
 block discarded – undo
13 13
 
14 14
 foreach ( array_keys( $widget->get_subscriptions_table_columns() ) as $column ) :
15 15
 
16
-	$class = sanitize_html_class( $column );
17
-	echo "<td class='getpaid-subscriptions-table-column-" . esc_attr( $class ) . "'>";
16
+    $class = sanitize_html_class( $column );
17
+    echo "<td class='getpaid-subscriptions-table-column-" . esc_attr( $class ) . "'>";
18 18
 
19
-		do_action( "getpaid_subscriptions_before_frontend_subscription_table_$column", $subscription );
19
+        do_action( "getpaid_subscriptions_before_frontend_subscription_table_$column", $subscription );
20 20
 
21
-		switch ( $column ) :
21
+        switch ( $column ) :
22 22
 
23
-		case 'subscription':
24
-			$subscription_id = (int) $subscription->get_id();
25
-			$url             = esc_url( $subscription->get_view_url() );
26
-			$id_label        = sprintf(
27
-				esc_attr_x( '#%s', 'subscription id', 'invoicing' ),
28
-				(int) $subscription->get_id()
29
-			);
23
+        case 'subscription':
24
+            $subscription_id = (int) $subscription->get_id();
25
+            $url             = esc_url( $subscription->get_view_url() );
26
+            $id_label        = sprintf(
27
+                esc_attr_x( '#%s', 'subscription id', 'invoicing' ),
28
+                (int) $subscription->get_id()
29
+            );
30 30
 
31
-			echo wp_kses_post( "<a href='$url' class='font-weight-bold text-decoration-none'>$id_label</a>" );
32
-			break;
31
+            echo wp_kses_post( "<a href='$url' class='font-weight-bold text-decoration-none'>$id_label</a>" );
32
+            break;
33 33
 
34
-		case 'status':
35
-			echo wp_kses_post( $subscription->get_status_label_html() );
36
-			break;
34
+        case 'status':
35
+            echo wp_kses_post( $subscription->get_status_label_html() );
36
+            break;
37 37
 
38
-		case 'renewal-date':
39
-			$renewal = getpaid_format_date_value( $subscription->get_next_renewal_date() );
40
-			echo $subscription->is_active() ? esc_html( $renewal ) : '&mdash;';
41
-			break;
38
+        case 'renewal-date':
39
+            $renewal = getpaid_format_date_value( $subscription->get_next_renewal_date() );
40
+            echo $subscription->is_active() ? esc_html( $renewal ) : '&mdash;';
41
+            break;
42 42
 
43
-		case 'amount':
44
-			$frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
45
-			$amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
46
-			echo wp_kses_post( "<span>$amount</span> / <span class='getpaid-item-recurring-period'>$frequency</span>" );
47
-			break;
43
+        case 'amount':
44
+            $frequency = getpaid_get_subscription_period_label( $subscription->get_period(), $subscription->get_frequency(), '' );
45
+            $amount    = wpinv_price( $subscription->get_recurring_amount(), $subscription->get_parent_payment()->get_currency() );
46
+            echo wp_kses_post( "<span>$amount</span> / <span class='getpaid-item-recurring-period'>$frequency</span>" );
47
+            break;
48 48
 
49
-		case 'actions':
50
-			echo wp_kses_post( $widget->add_row_actions( '', $subscription ) );
51
-			break;
49
+        case 'actions':
50
+            echo wp_kses_post( $widget->add_row_actions( '', $subscription ) );
51
+            break;
52 52
 
53
-		endswitch;
53
+        endswitch;
54 54
 
55
-		do_action( "getpaid_subscriptions_frontend_subscription_table_$column", $subscription );
55
+        do_action( "getpaid_subscriptions_frontend_subscription_table_$column", $subscription );
56 56
 
57
-	echo '</td>';
57
+    echo '</td>';
58 58
 
59 59
 endforeach;
Please login to merge, or discard this patch.
includes/wpinv-subscription.php 1 patch
Indentation   +1036 added lines, -1036 removed lines patch added patch discarded remove patch
@@ -15,125 +15,125 @@  discard block
 block discarded – undo
15 15
  */
16 16
 class WPInv_Subscription extends GetPaid_Data {
17 17
 
18
-	/**
19
-	 * Which data store to load.
20
-	 *
21
-	 * @var string
22
-	 */
23
-	protected $data_store_name = 'subscription';
24
-
25
-	/**
26
-	 * This is the name of this object type.
27
-	 *
28
-	 * @var string
29
-	 */
30
-	protected $object_type = 'subscription';
31
-
32
-	/**
33
-	 * Item Data array. This is the core item data exposed in APIs.
34
-	 *
35
-	 * @since 1.0.19
36
-	 * @var array
37
-	 */
38
-	protected $data = array(
39
-		'customer_id'       => 0,
40
-		'frequency'         => 1,
41
-		'period'            => 'D',
42
-		'initial_amount'    => null,
43
-		'recurring_amount'  => null,
44
-		'bill_times'        => 0,
45
-		'transaction_id'    => '',
46
-		'parent_payment_id' => null,
47
-		'product_id'        => 0,
48
-		'created'           => '0000-00-00 00:00:00',
49
-		'expiration'        => '0000-00-00 00:00:00',
50
-		'trial_period'      => '',
51
-		'status'            => 'pending',
52
-		'profile_id'        => '',
53
-		'gateway'           => '',
54
-		'customer'          => '',
55
-	);
56
-
57
-	/**
58
-	 * Stores the status transition information.
59
-	 *
60
-	 * @since 1.0.19
61
-	 * @var bool
62
-	 */
63
-	protected $status_transition = false;
64
-
65
-	/**
66
-	 * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
-	 *
68
-	 * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
-	 * @param  bool $deprecated
70
-	 */
71
-	function __construct( $subscription = 0, $deprecated = false ) {
72
-
73
-		parent::__construct( $subscription );
74
-
75
-		if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
-			$this->set_id( $subscription );
77
-		} elseif ( $subscription instanceof self ) {
78
-			$this->set_id( $subscription->get_id() );
79
-		} elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
-			$this->set_id( $subscription_id );
81
-		} elseif ( ! empty( $subscription->id ) ) {
82
-			$this->set_id( $subscription->id );
83
-		} else {
84
-			$this->set_object_read( true );
85
-		}
86
-
87
-		// Load the datastore.
88
-		$this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
-
90
-		if ( $this->get_id() > 0 ) {
91
-			$this->data_store->read( $this );
92
-		}
93
-
94
-	}
95
-
96
-	/**
97
-	 * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
-	 *
99
-	 *
100
-	 * @static
101
-	 * @param string $value
102
-	 * @param string $field Either invoice_id, transaction_id or profile_id.
103
-	 * @since 1.0.19
104
-	 * @return int
105
-	 */
106
-	public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
18
+    /**
19
+     * Which data store to load.
20
+     *
21
+     * @var string
22
+     */
23
+    protected $data_store_name = 'subscription';
24
+
25
+    /**
26
+     * This is the name of this object type.
27
+     *
28
+     * @var string
29
+     */
30
+    protected $object_type = 'subscription';
31
+
32
+    /**
33
+     * Item Data array. This is the core item data exposed in APIs.
34
+     *
35
+     * @since 1.0.19
36
+     * @var array
37
+     */
38
+    protected $data = array(
39
+        'customer_id'       => 0,
40
+        'frequency'         => 1,
41
+        'period'            => 'D',
42
+        'initial_amount'    => null,
43
+        'recurring_amount'  => null,
44
+        'bill_times'        => 0,
45
+        'transaction_id'    => '',
46
+        'parent_payment_id' => null,
47
+        'product_id'        => 0,
48
+        'created'           => '0000-00-00 00:00:00',
49
+        'expiration'        => '0000-00-00 00:00:00',
50
+        'trial_period'      => '',
51
+        'status'            => 'pending',
52
+        'profile_id'        => '',
53
+        'gateway'           => '',
54
+        'customer'          => '',
55
+    );
56
+
57
+    /**
58
+     * Stores the status transition information.
59
+     *
60
+     * @since 1.0.19
61
+     * @var bool
62
+     */
63
+    protected $status_transition = false;
64
+
65
+    /**
66
+     * Get the subscription if ID is passed, otherwise the subscription is new and empty.
67
+     *
68
+     * @param  int|string|object|WPInv_Subscription $subscription Subscription id, profile_id, or object to read.
69
+     * @param  bool $deprecated
70
+     */
71
+    function __construct( $subscription = 0, $deprecated = false ) {
72
+
73
+        parent::__construct( $subscription );
74
+
75
+        if ( ! $deprecated && ! empty( $subscription ) && is_numeric( $subscription ) ) {
76
+            $this->set_id( $subscription );
77
+        } elseif ( $subscription instanceof self ) {
78
+            $this->set_id( $subscription->get_id() );
79
+        } elseif ( $deprecated && $subscription_id = self::get_subscription_id_by_field( $subscription, 'profile_id' ) ) {
80
+            $this->set_id( $subscription_id );
81
+        } elseif ( ! empty( $subscription->id ) ) {
82
+            $this->set_id( $subscription->id );
83
+        } else {
84
+            $this->set_object_read( true );
85
+        }
86
+
87
+        // Load the datastore.
88
+        $this->data_store = GetPaid_Data_Store::load( $this->data_store_name );
89
+
90
+        if ( $this->get_id() > 0 ) {
91
+            $this->data_store->read( $this );
92
+        }
93
+
94
+    }
95
+
96
+    /**
97
+     * Given an invoice id, profile id, transaction id, it returns the subscription's id.
98
+     *
99
+     *
100
+     * @static
101
+     * @param string $value
102
+     * @param string $field Either invoice_id, transaction_id or profile_id.
103
+     * @since 1.0.19
104
+     * @return int
105
+     */
106
+    public static function get_subscription_id_by_field( $value, $field = 'profile_id' ) {
107 107
         global $wpdb;
108 108
 
109
-		// Trim the value.
110
-		$value = trim( $value );
109
+        // Trim the value.
110
+        $value = trim( $value );
111 111
 
112
-		if ( empty( $value ) ) {
113
-			return 0;
114
-		}
112
+        if ( empty( $value ) ) {
113
+            return 0;
114
+        }
115 115
 
116
-		if ( 'invoice_id' == $field ) {
117
-			$field = 'parent_payment_id';
118
-		}
116
+        if ( 'invoice_id' == $field ) {
117
+            $field = 'parent_payment_id';
118
+        }
119 119
 
120 120
         // Valid fields.
121 121
         $fields = array(
122
-			'parent_payment_id',
123
-			'transaction_id',
124
-			'profile_id',
125
-		);
126
-
127
-		// Ensure a field has been passed.
128
-		if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
-			return 0;
130
-		}
131
-
132
-		// Maybe retrieve from the cache.
133
-		$subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
-		if ( ! empty( $subscription_id ) ) {
135
-			return $subscription_id;
136
-		}
122
+            'parent_payment_id',
123
+            'transaction_id',
124
+            'profile_id',
125
+        );
126
+
127
+        // Ensure a field has been passed.
128
+        if ( empty( $field ) || ! in_array( $field, $fields ) ) {
129
+            return 0;
130
+        }
131
+
132
+        // Maybe retrieve from the cache.
133
+        $subscription_id   = wp_cache_get( $value, "getpaid_subscription_{$field}s_to_subscription_ids" );
134
+        if ( ! empty( $subscription_id ) ) {
135
+            return $subscription_id;
136
+        }
137 137
 
138 138
         // Fetch from the db.
139 139
         $table            = $wpdb->prefix . 'wpinv_subscriptions';
@@ -141,42 +141,42 @@  discard block
 block discarded – undo
141 141
             $wpdb->prepare( "SELECT `id` FROM $table WHERE `$field`=%s LIMIT 1", $value )
142 142
         );
143 143
 
144
-		if ( empty( $subscription_id ) ) {
145
-			return 0;
146
-		}
144
+        if ( empty( $subscription_id ) ) {
145
+            return 0;
146
+        }
147 147
 
148
-		// Update the cache with our data.
149
-		wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
148
+        // Update the cache with our data.
149
+        wp_cache_set( $value, $subscription_id, "getpaid_subscription_{$field}s_to_subscription_ids" );
150 150
 
151
-		return $subscription_id;
152
-	}
151
+        return $subscription_id;
152
+    }
153 153
 
154
-	/**
154
+    /**
155 155
      * Clears the subscription's cache.
156 156
      */
157 157
     public function clear_cache() {
158
-		$caches = array(
159
-			'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(),
160
-			'getpaid_subscription_transaction_ids_to_subscription_ids'    => $this->get_transaction_id(),
161
-			'getpaid_subscription_profile_ids_to_subscription_ids'        => $this->get_profile_id(),
162
-			'getpaid_subscriptions'                                       => $this->get_id(),
163
-		);
164
-
165
-		foreach ( $caches as $cache => $value ) {
166
-			if ( '' !== $value && false !== $value ) {
167
-				wp_cache_delete( $value, $cache );
168
-			}
169
-		}
170
-	}
171
-
172
-	/**
158
+        $caches = array(
159
+            'getpaid_subscription_parent_payment_ids_to_subscription_ids' => $this->get_parent_payment_id(),
160
+            'getpaid_subscription_transaction_ids_to_subscription_ids'    => $this->get_transaction_id(),
161
+            'getpaid_subscription_profile_ids_to_subscription_ids'        => $this->get_profile_id(),
162
+            'getpaid_subscriptions'                                       => $this->get_id(),
163
+        );
164
+
165
+        foreach ( $caches as $cache => $value ) {
166
+            if ( '' !== $value && false !== $value ) {
167
+                wp_cache_delete( $value, $cache );
168
+            }
169
+        }
170
+    }
171
+
172
+    /**
173 173
      * Checks if a subscription key is set.
174 174
      */
175 175
     public function _isset( $key ) {
176 176
         return isset( $this->data[ $key ] ) || method_exists( $this, "get_$key" );
177
-	}
177
+    }
178 178
 
179
-	/*
179
+    /*
180 180
 	|--------------------------------------------------------------------------
181 181
 	| CRUD methods
182 182
 	|--------------------------------------------------------------------------
@@ -185,57 +185,57 @@  discard block
 block discarded – undo
185 185
 	|
186 186
     */
187 187
 
188
-	/*
188
+    /*
189 189
 	|--------------------------------------------------------------------------
190 190
 	| Getters
191 191
 	|--------------------------------------------------------------------------
192 192
 	*/
193 193
 
194
-	/**
195
-	 * Get customer id.
196
-	 *
197
-	 * @since 1.0.19
198
-	 * @param  string $context View or edit context.
199
-	 * @return int
200
-	 */
201
-	public function get_customer_id( $context = 'view' ) {
202
-		return (int) $this->get_prop( 'customer_id', $context );
203
-	}
204
-
205
-	/**
206
-	 * Get customer information.
207
-	 *
208
-	 * @since 1.0.19
209
-	 * @param  string $context View or edit context.
210
-	 * @return WP_User|false WP_User object on success, false on failure.
211
-	 */
212
-	public function get_customer( $context = 'view' ) {
213
-		return get_userdata( $this->get_customer_id( $context ) );
214
-	}
215
-
216
-	/**
217
-	 * Get parent invoice id.
218
-	 *
219
-	 * @since 1.0.19
220
-	 * @param  string $context View or edit context.
221
-	 * @return int
222
-	 */
223
-	public function get_parent_invoice_id( $context = 'view' ) {
224
-		return (int) $this->get_prop( 'parent_payment_id', $context );
225
-	}
226
-
227
-	/**
228
-	 * Alias for self::get_parent_invoice_id().
229
-	 *
230
-	 * @since 1.0.19
231
-	 * @param  string $context View or edit context.
232
-	 * @return int
233
-	 */
194
+    /**
195
+     * Get customer id.
196
+     *
197
+     * @since 1.0.19
198
+     * @param  string $context View or edit context.
199
+     * @return int
200
+     */
201
+    public function get_customer_id( $context = 'view' ) {
202
+        return (int) $this->get_prop( 'customer_id', $context );
203
+    }
204
+
205
+    /**
206
+     * Get customer information.
207
+     *
208
+     * @since 1.0.19
209
+     * @param  string $context View or edit context.
210
+     * @return WP_User|false WP_User object on success, false on failure.
211
+     */
212
+    public function get_customer( $context = 'view' ) {
213
+        return get_userdata( $this->get_customer_id( $context ) );
214
+    }
215
+
216
+    /**
217
+     * Get parent invoice id.
218
+     *
219
+     * @since 1.0.19
220
+     * @param  string $context View or edit context.
221
+     * @return int
222
+     */
223
+    public function get_parent_invoice_id( $context = 'view' ) {
224
+        return (int) $this->get_prop( 'parent_payment_id', $context );
225
+    }
226
+
227
+    /**
228
+     * Alias for self::get_parent_invoice_id().
229
+     *
230
+     * @since 1.0.19
231
+     * @param  string $context View or edit context.
232
+     * @return int
233
+     */
234 234
     public function get_parent_payment_id( $context = 'view' ) {
235 235
         return $this->get_parent_invoice_id( $context );
236
-	}
236
+    }
237 237
 
238
-	/**
238
+    /**
239 239
      * Alias for self::get_parent_invoice_id().
240 240
      *
241 241
      * @since  1.0.0
@@ -245,390 +245,390 @@  discard block
 block discarded – undo
245 245
         return $this->get_parent_invoice_id( $context );
246 246
     }
247 247
 
248
-	/**
249
-	 * Get parent invoice.
250
-	 *
251
-	 * @since 1.0.19
252
-	 * @param  string $context View or edit context.
253
-	 * @return WPInv_Invoice
254
-	 */
255
-	public function get_parent_invoice( $context = 'view' ) {
256
-		return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
257
-	}
258
-
259
-	/**
260
-	 * Alias for self::get_parent_invoice().
261
-	 *
262
-	 * @since 1.0.19
263
-	 * @param  string $context View or edit context.
264
-	 * @return WPInv_Invoice
265
-	 */
248
+    /**
249
+     * Get parent invoice.
250
+     *
251
+     * @since 1.0.19
252
+     * @param  string $context View or edit context.
253
+     * @return WPInv_Invoice
254
+     */
255
+    public function get_parent_invoice( $context = 'view' ) {
256
+        return new WPInv_Invoice( $this->get_parent_invoice_id( $context ) );
257
+    }
258
+
259
+    /**
260
+     * Alias for self::get_parent_invoice().
261
+     *
262
+     * @since 1.0.19
263
+     * @param  string $context View or edit context.
264
+     * @return WPInv_Invoice
265
+     */
266 266
     public function get_parent_payment( $context = 'view' ) {
267 267
         return $this->get_parent_invoice( $context );
268
-	}
269
-
270
-	/**
271
-	 * Get subscription's product id.
272
-	 *
273
-	 * @since 1.0.19
274
-	 * @param  string $context View or edit context.
275
-	 * @return int
276
-	 */
277
-	public function get_product_id( $context = 'view' ) {
278
-		return (int) $this->get_prop( 'product_id', $context );
279
-	}
280
-
281
-	/**
282
-	 * Get the subscription product.
283
-	 *
284
-	 * @since 1.0.19
285
-	 * @param  string $context View or edit context.
286
-	 * @return WPInv_Item
287
-	 */
288
-	public function get_product( $context = 'view' ) {
289
-		return new WPInv_Item( $this->get_product_id( $context ) );
290
-	}
291
-
292
-	/**
293
-	 * Get parent invoice's gateway.
294
-	 *
295
-	 * Here for backwards compatibility.
296
-	 *
297
-	 * @since 1.0.19
298
-	 * @param  string $context View or edit context.
299
-	 * @return string
300
-	 */
301
-	public function get_gateway( $context = 'view' ) {
302
-		return $this->get_parent_invoice( $context )->get_gateway();
303
-	}
304
-
305
-	/**
306
-	 * Get the period of a renewal.
307
-	 *
308
-	 * @since 1.0.19
309
-	 * @param  string $context View or edit context.
310
-	 * @return string
311
-	 */
312
-	public function get_period( $context = 'view' ) {
313
-		return $this->get_prop( 'period', $context );
314
-	}
315
-
316
-	/**
317
-	 * Get number of periods each renewal is valid for.
318
-	 *
319
-	 * @since 1.0.19
320
-	 * @param  string $context View or edit context.
321
-	 * @return int
322
-	 */
323
-	public function get_frequency( $context = 'view' ) {
324
-		return (int) $this->get_prop( 'frequency', $context );
325
-	}
326
-
327
-	/**
328
-	 * Get the initial amount for the subscription.
329
-	 *
330
-	 * @since 1.0.19
331
-	 * @param  string $context View or edit context.
332
-	 * @return float
333
-	 */
334
-	public function get_initial_amount( $context = 'view' ) {
335
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
336
-	}
337
-
338
-	/**
339
-	 * Get the recurring amount for the subscription.
340
-	 *
341
-	 * @since 1.0.19
342
-	 * @param  string $context View or edit context.
343
-	 * @return float
344
-	 */
345
-	public function get_recurring_amount( $context = 'view' ) {
346
-		return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
347
-	}
348
-
349
-	/**
350
-	 * Get number of times that this subscription can be renewed.
351
-	 *
352
-	 * @since 1.0.19
353
-	 * @param  string $context View or edit context.
354
-	 * @return int
355
-	 */
356
-	public function get_bill_times( $context = 'view' ) {
357
-		return (int) $this->get_prop( 'bill_times', $context );
358
-	}
359
-
360
-	/**
361
-	 * Get transaction id of this subscription's parent invoice.
362
-	 *
363
-	 * @since 1.0.19
364
-	 * @param  string $context View or edit context.
365
-	 * @return string
366
-	 */
367
-	public function get_transaction_id( $context = 'view' ) {
368
-		return $this->get_prop( 'transaction_id', $context );
369
-	}
370
-
371
-	/**
372
-	 * Get the date that the subscription was created.
373
-	 *
374
-	 * @since 1.0.19
375
-	 * @param  string $context View or edit context.
376
-	 * @return string
377
-	 */
378
-	public function get_created( $context = 'view' ) {
379
-		return $this->get_prop( 'created', $context );
380
-	}
381
-
382
-	/**
383
-	 * Alias for self::get_created().
384
-	 *
385
-	 * @since 1.0.19
386
-	 * @param  string $context View or edit context.
387
-	 * @return string
388
-	 */
389
-	public function get_date_created( $context = 'view' ) {
390
-		return $this->get_created( $context );
391
-	}
392
-
393
-	/**
394
-	 * Retrieves the creation date in a timestamp
395
-	 *
396
-	 * @since  1.0.0
397
-	 * @return int
398
-	 */
399
-	public function get_time_created() {
400
-		$created = $this->get_date_created();
401
-		return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
402
-	}
403
-
404
-	/**
405
-	 * Get GMT date when the subscription was created.
406
-	 *
407
-	 * @since 1.0.19
408
-	 * @param  string $context View or edit context.
409
-	 * @return string
410
-	 */
411
-	public function get_date_created_gmt( $context = 'view' ) {
268
+    }
269
+
270
+    /**
271
+     * Get subscription's product id.
272
+     *
273
+     * @since 1.0.19
274
+     * @param  string $context View or edit context.
275
+     * @return int
276
+     */
277
+    public function get_product_id( $context = 'view' ) {
278
+        return (int) $this->get_prop( 'product_id', $context );
279
+    }
280
+
281
+    /**
282
+     * Get the subscription product.
283
+     *
284
+     * @since 1.0.19
285
+     * @param  string $context View or edit context.
286
+     * @return WPInv_Item
287
+     */
288
+    public function get_product( $context = 'view' ) {
289
+        return new WPInv_Item( $this->get_product_id( $context ) );
290
+    }
291
+
292
+    /**
293
+     * Get parent invoice's gateway.
294
+     *
295
+     * Here for backwards compatibility.
296
+     *
297
+     * @since 1.0.19
298
+     * @param  string $context View or edit context.
299
+     * @return string
300
+     */
301
+    public function get_gateway( $context = 'view' ) {
302
+        return $this->get_parent_invoice( $context )->get_gateway();
303
+    }
304
+
305
+    /**
306
+     * Get the period of a renewal.
307
+     *
308
+     * @since 1.0.19
309
+     * @param  string $context View or edit context.
310
+     * @return string
311
+     */
312
+    public function get_period( $context = 'view' ) {
313
+        return $this->get_prop( 'period', $context );
314
+    }
315
+
316
+    /**
317
+     * Get number of periods each renewal is valid for.
318
+     *
319
+     * @since 1.0.19
320
+     * @param  string $context View or edit context.
321
+     * @return int
322
+     */
323
+    public function get_frequency( $context = 'view' ) {
324
+        return (int) $this->get_prop( 'frequency', $context );
325
+    }
326
+
327
+    /**
328
+     * Get the initial amount for the subscription.
329
+     *
330
+     * @since 1.0.19
331
+     * @param  string $context View or edit context.
332
+     * @return float
333
+     */
334
+    public function get_initial_amount( $context = 'view' ) {
335
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'initial_amount', $context ) );
336
+    }
337
+
338
+    /**
339
+     * Get the recurring amount for the subscription.
340
+     *
341
+     * @since 1.0.19
342
+     * @param  string $context View or edit context.
343
+     * @return float
344
+     */
345
+    public function get_recurring_amount( $context = 'view' ) {
346
+        return (float) wpinv_sanitize_amount( $this->get_prop( 'recurring_amount', $context ) );
347
+    }
348
+
349
+    /**
350
+     * Get number of times that this subscription can be renewed.
351
+     *
352
+     * @since 1.0.19
353
+     * @param  string $context View or edit context.
354
+     * @return int
355
+     */
356
+    public function get_bill_times( $context = 'view' ) {
357
+        return (int) $this->get_prop( 'bill_times', $context );
358
+    }
359
+
360
+    /**
361
+     * Get transaction id of this subscription's parent invoice.
362
+     *
363
+     * @since 1.0.19
364
+     * @param  string $context View or edit context.
365
+     * @return string
366
+     */
367
+    public function get_transaction_id( $context = 'view' ) {
368
+        return $this->get_prop( 'transaction_id', $context );
369
+    }
370
+
371
+    /**
372
+     * Get the date that the subscription was created.
373
+     *
374
+     * @since 1.0.19
375
+     * @param  string $context View or edit context.
376
+     * @return string
377
+     */
378
+    public function get_created( $context = 'view' ) {
379
+        return $this->get_prop( 'created', $context );
380
+    }
381
+
382
+    /**
383
+     * Alias for self::get_created().
384
+     *
385
+     * @since 1.0.19
386
+     * @param  string $context View or edit context.
387
+     * @return string
388
+     */
389
+    public function get_date_created( $context = 'view' ) {
390
+        return $this->get_created( $context );
391
+    }
392
+
393
+    /**
394
+     * Retrieves the creation date in a timestamp
395
+     *
396
+     * @since  1.0.0
397
+     * @return int
398
+     */
399
+    public function get_time_created() {
400
+        $created = $this->get_date_created();
401
+        return empty( $created ) ? current_time( 'timestamp' ) : strtotime( $created, current_time( 'timestamp' ) );
402
+    }
403
+
404
+    /**
405
+     * Get GMT date when the subscription was created.
406
+     *
407
+     * @since 1.0.19
408
+     * @param  string $context View or edit context.
409
+     * @return string
410
+     */
411
+    public function get_date_created_gmt( $context = 'view' ) {
412 412
         $date = $this->get_date_created( $context );
413 413
 
414 414
         if ( $date ) {
415 415
             $date = get_gmt_from_date( $date );
416 416
         }
417
-		return $date;
418
-	}
419
-
420
-	/**
421
-	 * Get the date that the subscription will renew.
422
-	 *
423
-	 * @since 1.0.19
424
-	 * @param  string $context View or edit context.
425
-	 * @return string
426
-	 */
427
-	public function get_next_renewal_date( $context = 'view' ) {
428
-		return $this->get_prop( 'expiration', $context );
429
-	}
430
-
431
-	/**
432
-	 * Alias for self::get_next_renewal_date().
433
-	 *
434
-	 * @since 1.0.19
435
-	 * @param  string $context View or edit context.
436
-	 * @return string
437
-	 */
438
-	public function get_expiration( $context = 'view' ) {
439
-		return $this->get_next_renewal_date( $context );
440
-	}
441
-
442
-	/**
443
-	 * Retrieves the expiration date in a timestamp
444
-	 *
445
-	 * @since  1.0.0
446
-	 * @return int
447
-	 */
448
-	public function get_expiration_time() {
449
-		$expiration = $this->get_expiration();
450
-
451
-		if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
452
-			return current_time( 'timestamp' );
453
-		}
454
-
455
-		$expiration = strtotime( $expiration, current_time( 'timestamp' ) );
456
-		return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
457
-	}
458
-
459
-	/**
460
-	 * Get GMT date when the subscription will renew.
461
-	 *
462
-	 * @since 1.0.19
463
-	 * @param  string $context View or edit context.
464
-	 * @return string
465
-	 */
466
-	public function get_next_renewal_date_gmt( $context = 'view' ) {
417
+        return $date;
418
+    }
419
+
420
+    /**
421
+     * Get the date that the subscription will renew.
422
+     *
423
+     * @since 1.0.19
424
+     * @param  string $context View or edit context.
425
+     * @return string
426
+     */
427
+    public function get_next_renewal_date( $context = 'view' ) {
428
+        return $this->get_prop( 'expiration', $context );
429
+    }
430
+
431
+    /**
432
+     * Alias for self::get_next_renewal_date().
433
+     *
434
+     * @since 1.0.19
435
+     * @param  string $context View or edit context.
436
+     * @return string
437
+     */
438
+    public function get_expiration( $context = 'view' ) {
439
+        return $this->get_next_renewal_date( $context );
440
+    }
441
+
442
+    /**
443
+     * Retrieves the expiration date in a timestamp
444
+     *
445
+     * @since  1.0.0
446
+     * @return int
447
+     */
448
+    public function get_expiration_time() {
449
+        $expiration = $this->get_expiration();
450
+
451
+        if ( empty( $expiration ) || '0000-00-00 00:00:00' == $expiration ) {
452
+            return current_time( 'timestamp' );
453
+        }
454
+
455
+        $expiration = strtotime( $expiration, current_time( 'timestamp' ) );
456
+        return $expiration < current_time( 'timestamp' ) ? current_time( 'timestamp' ) : $expiration;
457
+    }
458
+
459
+    /**
460
+     * Get GMT date when the subscription will renew.
461
+     *
462
+     * @since 1.0.19
463
+     * @param  string $context View or edit context.
464
+     * @return string
465
+     */
466
+    public function get_next_renewal_date_gmt( $context = 'view' ) {
467 467
         $date = $this->get_next_renewal_date( $context );
468 468
 
469 469
         if ( $date ) {
470 470
             $date = get_gmt_from_date( $date );
471 471
         }
472
-		return $date;
473
-	}
474
-
475
-	/**
476
-	 * Get the subscription's trial period.
477
-	 *
478
-	 * @since 1.0.19
479
-	 * @param  string $context View or edit context.
480
-	 * @return string
481
-	 */
482
-	public function get_trial_period( $context = 'view' ) {
483
-		return $this->get_prop( 'trial_period', $context );
484
-	}
485
-
486
-	/**
487
-	 * Get the subscription's status.
488
-	 *
489
-	 * @since 1.0.19
490
-	 * @param  string $context View or edit context.
491
-	 * @return string
492
-	 */
493
-	public function get_status( $context = 'view' ) {
494
-		return $this->get_prop( 'status', $context );
495
-	}
496
-
497
-	/**
498
-	 * Get the subscription's profile id.
499
-	 *
500
-	 * @since 1.0.19
501
-	 * @param  string $context View or edit context.
502
-	 * @return string
503
-	 */
504
-	public function get_profile_id( $context = 'view' ) {
505
-		return $this->get_prop( 'profile_id', $context );
506
-	}
507
-
508
-	/*
472
+        return $date;
473
+    }
474
+
475
+    /**
476
+     * Get the subscription's trial period.
477
+     *
478
+     * @since 1.0.19
479
+     * @param  string $context View or edit context.
480
+     * @return string
481
+     */
482
+    public function get_trial_period( $context = 'view' ) {
483
+        return $this->get_prop( 'trial_period', $context );
484
+    }
485
+
486
+    /**
487
+     * Get the subscription's status.
488
+     *
489
+     * @since 1.0.19
490
+     * @param  string $context View or edit context.
491
+     * @return string
492
+     */
493
+    public function get_status( $context = 'view' ) {
494
+        return $this->get_prop( 'status', $context );
495
+    }
496
+
497
+    /**
498
+     * Get the subscription's profile id.
499
+     *
500
+     * @since 1.0.19
501
+     * @param  string $context View or edit context.
502
+     * @return string
503
+     */
504
+    public function get_profile_id( $context = 'view' ) {
505
+        return $this->get_prop( 'profile_id', $context );
506
+    }
507
+
508
+    /*
509 509
 	|--------------------------------------------------------------------------
510 510
 	| Setters
511 511
 	|--------------------------------------------------------------------------
512 512
 	*/
513 513
 
514
-	/**
515
-	 * Set customer id.
516
-	 *
517
-	 * @since 1.0.19
518
-	 * @param  int $value The customer's id.
519
-	 */
520
-	public function set_customer_id( $value ) {
521
-		$this->set_prop( 'customer_id', (int) $value );
522
-	}
523
-
524
-	/**
525
-	 * Set parent invoice id.
526
-	 *
527
-	 * @since 1.0.19
528
-	 * @param  int $value The parent invoice id.
529
-	 */
530
-	public function set_parent_invoice_id( $value ) {
531
-		$this->set_prop( 'parent_payment_id', (int) $value );
532
-	}
533
-
534
-	/**
535
-	 * Alias for self::set_parent_invoice_id().
536
-	 *
537
-	 * @since 1.0.19
538
-	 * @param  int $value The parent invoice id.
539
-	 */
540
-    public function set_parent_payment_id( $value ) {
541
-        $this->set_parent_invoice_id( $value );
542
-	}
514
+    /**
515
+     * Set customer id.
516
+     *
517
+     * @since 1.0.19
518
+     * @param  int $value The customer's id.
519
+     */
520
+    public function set_customer_id( $value ) {
521
+        $this->set_prop( 'customer_id', (int) $value );
522
+    }
523
+
524
+    /**
525
+     * Set parent invoice id.
526
+     *
527
+     * @since 1.0.19
528
+     * @param  int $value The parent invoice id.
529
+     */
530
+    public function set_parent_invoice_id( $value ) {
531
+        $this->set_prop( 'parent_payment_id', (int) $value );
532
+    }
533
+
534
+    /**
535
+     * Alias for self::set_parent_invoice_id().
536
+     *
537
+     * @since 1.0.19
538
+     * @param  int $value The parent invoice id.
539
+     */
540
+    public function set_parent_payment_id( $value ) {
541
+        $this->set_parent_invoice_id( $value );
542
+    }
543
+
544
+    /**
545
+     * Alias for self::set_parent_invoice_id().
546
+     *
547
+     * @since 1.0.19
548
+     * @param  int $value The parent invoice id.
549
+     */
550
+    public function set_original_payment_id( $value ) {
551
+        $this->set_parent_invoice_id( $value );
552
+    }
553
+
554
+    /**
555
+     * Set subscription's product id.
556
+     *
557
+     * @since 1.0.19
558
+     * @param  int $value The subscription product id.
559
+     */
560
+    public function set_product_id( $value ) {
561
+        $this->set_prop( 'product_id', (int) $value );
562
+    }
563
+
564
+    /**
565
+     * Set the period of a renewal.
566
+     *
567
+     * @since 1.0.19
568
+     * @param  string $value The renewal period.
569
+     */
570
+    public function set_period( $value ) {
571
+        $this->set_prop( 'period', $value );
572
+    }
573
+
574
+    /**
575
+     * Set number of periods each renewal is valid for.
576
+     *
577
+     * @since 1.0.19
578
+     * @param  int $value The subscription frequency.
579
+     */
580
+    public function set_frequency( $value ) {
581
+        $value = empty( $value ) ? 1 : (int) $value;
582
+        $this->set_prop( 'frequency', absint( $value ) );
583
+    }
584
+
585
+    /**
586
+     * Set the initial amount for the subscription.
587
+     *
588
+     * @since 1.0.19
589
+     * @param  float $value The initial subcription amount.
590
+     */
591
+    public function set_initial_amount( $value ) {
592
+        $this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
593
+    }
594
+
595
+    /**
596
+     * Set the recurring amount for the subscription.
597
+     *
598
+     * @since 1.0.19
599
+     * @param  float $value The recurring subcription amount.
600
+     */
601
+    public function set_recurring_amount( $value ) {
602
+        $this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
603
+    }
604
+
605
+    /**
606
+     * Set number of times that this subscription can be renewed.
607
+     *
608
+     * @since 1.0.19
609
+     * @param  int $value Bill times.
610
+     */
611
+    public function set_bill_times( $value ) {
612
+        $this->set_prop( 'bill_times', (int) $value );
613
+    }
614
+
615
+    /**
616
+     * Get transaction id of this subscription's parent invoice.
617
+     *
618
+     * @since 1.0.19
619
+     * @param string $value Bill times.
620
+     */
621
+    public function set_transaction_id( $value ) {
622
+        $this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
623
+    }
543 624
 
544
-	/**
545
-     * Alias for self::set_parent_invoice_id().
625
+    /**
626
+     * Set date when this subscription started.
546 627
      *
547 628
      * @since 1.0.19
548
-	 * @param  int $value The parent invoice id.
629
+     * @param string $value strtotime compliant date.
549 630
      */
550
-    public function set_original_payment_id( $value ) {
551
-        $this->set_parent_invoice_id( $value );
552
-	}
553
-
554
-	/**
555
-	 * Set subscription's product id.
556
-	 *
557
-	 * @since 1.0.19
558
-	 * @param  int $value The subscription product id.
559
-	 */
560
-	public function set_product_id( $value ) {
561
-		$this->set_prop( 'product_id', (int) $value );
562
-	}
563
-
564
-	/**
565
-	 * Set the period of a renewal.
566
-	 *
567
-	 * @since 1.0.19
568
-	 * @param  string $value The renewal period.
569
-	 */
570
-	public function set_period( $value ) {
571
-		$this->set_prop( 'period', $value );
572
-	}
573
-
574
-	/**
575
-	 * Set number of periods each renewal is valid for.
576
-	 *
577
-	 * @since 1.0.19
578
-	 * @param  int $value The subscription frequency.
579
-	 */
580
-	public function set_frequency( $value ) {
581
-		$value = empty( $value ) ? 1 : (int) $value;
582
-		$this->set_prop( 'frequency', absint( $value ) );
583
-	}
584
-
585
-	/**
586
-	 * Set the initial amount for the subscription.
587
-	 *
588
-	 * @since 1.0.19
589
-	 * @param  float $value The initial subcription amount.
590
-	 */
591
-	public function set_initial_amount( $value ) {
592
-		$this->set_prop( 'initial_amount', wpinv_sanitize_amount( $value ) );
593
-	}
594
-
595
-	/**
596
-	 * Set the recurring amount for the subscription.
597
-	 *
598
-	 * @since 1.0.19
599
-	 * @param  float $value The recurring subcription amount.
600
-	 */
601
-	public function set_recurring_amount( $value ) {
602
-		$this->set_prop( 'recurring_amount', wpinv_sanitize_amount( $value ) );
603
-	}
604
-
605
-	/**
606
-	 * Set number of times that this subscription can be renewed.
607
-	 *
608
-	 * @since 1.0.19
609
-	 * @param  int $value Bill times.
610
-	 */
611
-	public function set_bill_times( $value ) {
612
-		$this->set_prop( 'bill_times', (int) $value );
613
-	}
614
-
615
-	/**
616
-	 * Get transaction id of this subscription's parent invoice.
617
-	 *
618
-	 * @since 1.0.19
619
-	 * @param string $value Bill times.
620
-	 */
621
-	public function set_transaction_id( $value ) {
622
-		$this->set_prop( 'transaction_id', sanitize_text_field( $value ) );
623
-	}
624
-
625
-	/**
626
-	 * Set date when this subscription started.
627
-	 *
628
-	 * @since 1.0.19
629
-	 * @param string $value strtotime compliant date.
630
-	 */
631
-	public function set_created( $value ) {
631
+    public function set_created( $value ) {
632 632
         $date = strtotime( $value );
633 633
 
634 634
         if ( $date && $value !== '0000-00-00 00:00:00' ) {
@@ -636,93 +636,93 @@  discard block
 block discarded – undo
636 636
             return;
637 637
         }
638 638
 
639
-		$this->set_prop( 'created', '' );
639
+        $this->set_prop( 'created', '' );
640 640
 
641
-	}
641
+    }
642 642
 
643
-	/**
644
-	 * Alias for self::set_created().
645
-	 *
646
-	 * @since 1.0.19
647
-	 * @param string $value strtotime compliant date.
648
-	 */
649
-	public function set_date_created( $value ) {
650
-		$this->set_created( $value );
643
+    /**
644
+     * Alias for self::set_created().
645
+     *
646
+     * @since 1.0.19
647
+     * @param string $value strtotime compliant date.
648
+     */
649
+    public function set_date_created( $value ) {
650
+        $this->set_created( $value );
651 651
     }
652 652
 
653
-	/**
654
-	 * Set the date that the subscription will renew.
655
-	 *
656
-	 * @since 1.0.19
657
-	 * @param string $value strtotime compliant date.
658
-	 */
659
-	public function set_next_renewal_date( $value ) {
660
-		$date = strtotime( $value );
653
+    /**
654
+     * Set the date that the subscription will renew.
655
+     *
656
+     * @since 1.0.19
657
+     * @param string $value strtotime compliant date.
658
+     */
659
+    public function set_next_renewal_date( $value ) {
660
+        $date = strtotime( $value );
661 661
 
662 662
         if ( $date && $value !== '0000-00-00 00:00:00' ) {
663 663
             $this->set_prop( 'expiration', gmdate( 'Y-m-d H:i:s', $date ) );
664 664
             return;
665
-		}
666
-
667
-		$this->set_prop( 'expiration', '' );
668
-
669
-	}
670
-
671
-	/**
672
-	 * Alias for self::set_next_renewal_date().
673
-	 *
674
-	 * @since 1.0.19
675
-	 * @param string $value strtotime compliant date.
676
-	 */
677
-	public function set_expiration( $value ) {
678
-		$this->set_next_renewal_date( $value );
679
-    }
680
-
681
-	/**
682
-	 * Set the subscription's trial period.
683
-	 *
684
-	 * @since 1.0.19
685
-	 * @param string $value trial period e.g 1 year.
686
-	 */
687
-	public function set_trial_period( $value ) {
688
-		$this->set_prop( 'trial_period', $value );
689
-	}
690
-
691
-	/**
692
-	 * Set the subscription's status.
693
-	 *
694
-	 * @since 1.0.19
695
-	 * @param string $new_status    New subscription status.
696
-	 */
697
-	public function set_status( $new_status ) {
698
-
699
-		// Abort if this is not a valid status;
700
-		if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
701
-			return;
702
-		}
703
-
704
-		$old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
705
-		if ( true === $this->object_read && $old_status !== $new_status ) {
706
-			$this->status_transition = array(
707
-				'from' => $old_status,
708
-				'to'   => $new_status,
709
-			);
710
-		}
711
-
712
-		$this->set_prop( 'status', $new_status );
713
-	}
714
-
715
-	/**
716
-	 * Set the subscription's (remote) profile id.
717
-	 *
718
-	 * @since 1.0.19
719
-	 * @param  string $value the remote profile id.
720
-	 */
721
-	public function set_profile_id( $value ) {
722
-		$this->set_prop( 'profile_id', sanitize_text_field( $value ) );
723
-	}
724
-
725
-	/*
665
+        }
666
+
667
+        $this->set_prop( 'expiration', '' );
668
+
669
+    }
670
+
671
+    /**
672
+     * Alias for self::set_next_renewal_date().
673
+     *
674
+     * @since 1.0.19
675
+     * @param string $value strtotime compliant date.
676
+     */
677
+    public function set_expiration( $value ) {
678
+        $this->set_next_renewal_date( $value );
679
+    }
680
+
681
+    /**
682
+     * Set the subscription's trial period.
683
+     *
684
+     * @since 1.0.19
685
+     * @param string $value trial period e.g 1 year.
686
+     */
687
+    public function set_trial_period( $value ) {
688
+        $this->set_prop( 'trial_period', $value );
689
+    }
690
+
691
+    /**
692
+     * Set the subscription's status.
693
+     *
694
+     * @since 1.0.19
695
+     * @param string $new_status    New subscription status.
696
+     */
697
+    public function set_status( $new_status ) {
698
+
699
+        // Abort if this is not a valid status;
700
+        if ( ! array_key_exists( $new_status, getpaid_get_subscription_statuses() ) ) {
701
+            return;
702
+        }
703
+
704
+        $old_status = ! empty( $this->status_transition['from'] ) ? $this->status_transition['from'] : $this->get_status();
705
+        if ( true === $this->object_read && $old_status !== $new_status ) {
706
+            $this->status_transition = array(
707
+                'from' => $old_status,
708
+                'to'   => $new_status,
709
+            );
710
+        }
711
+
712
+        $this->set_prop( 'status', $new_status );
713
+    }
714
+
715
+    /**
716
+     * Set the subscription's (remote) profile id.
717
+     *
718
+     * @since 1.0.19
719
+     * @param  string $value the remote profile id.
720
+     */
721
+    public function set_profile_id( $value ) {
722
+        $this->set_prop( 'profile_id', sanitize_text_field( $value ) );
723
+    }
724
+
725
+    /*
726 726
 	|--------------------------------------------------------------------------
727 727
 	| Boolean methods
728 728
 	|--------------------------------------------------------------------------
@@ -731,55 +731,55 @@  discard block
 block discarded – undo
731 731
 	|
732 732
 	*/
733 733
 
734
-	/**
734
+    /**
735 735
      * Checks if the subscription has a given status.
736
-	 *
737
-	 * @param string|array String or array of strings to check for.
738
-	 * @return bool
736
+     *
737
+     * @param string|array String or array of strings to check for.
738
+     * @return bool
739 739
      */
740 740
     public function has_status( $status ) {
741 741
         return in_array( $this->get_status(), wpinv_clean( wpinv_parse_list( $status ) ) );
742
-	}
742
+    }
743 743
 
744
-	/**
744
+    /**
745 745
      * Checks if the subscription has a trial period.
746
-	 *
747
-	 * @return bool
746
+     *
747
+     * @return bool
748 748
      */
749 749
     public function has_trial_period() {
750
-		$period = $this->get_trial_period();
750
+        $period = $this->get_trial_period();
751 751
         return ! empty( $period );
752
-	}
753
-
754
-	/**
755
-	 * Is the subscription active?
756
-	 *
757
-	 * @return bool
758
-	 */
759
-	public function is_active() {
760
-		return $this->has_status( 'active trialling' ) && ! $this->is_expired();
761
-	}
762
-
763
-	/**
764
-	 * Is the subscription expired?
765
-	 *
766
-	 * @return bool
767
-	 */
768
-	public function is_expired() {
769
-		return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
770
-	}
771
-
772
-	/**
773
-	 * Is this the last renewals?
774
-	 *
775
-	 * @return bool
776
-	 */
777
-	public function is_last_renewal() {
778
-		$max_bills = $this->get_bill_times();
779
-		return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
780
-	}
781
-
782
-	/*
752
+    }
753
+
754
+    /**
755
+     * Is the subscription active?
756
+     *
757
+     * @return bool
758
+     */
759
+    public function is_active() {
760
+        return $this->has_status( 'active trialling' ) && ! $this->is_expired();
761
+    }
762
+
763
+    /**
764
+     * Is the subscription expired?
765
+     *
766
+     * @return bool
767
+     */
768
+    public function is_expired() {
769
+        return $this->has_status( 'expired' ) || ( $this->has_status( 'active cancelled trialling' ) && $this->get_expiration_time() < current_time( 'timestamp' ) );
770
+    }
771
+
772
+    /**
773
+     * Is this the last renewals?
774
+     *
775
+     * @return bool
776
+     */
777
+    public function is_last_renewal() {
778
+        $max_bills = $this->get_bill_times();
779
+        return ! empty( $max_bills ) && $max_bills <= $this->get_times_billed();
780
+    }
781
+
782
+    /*
783 783
 	|--------------------------------------------------------------------------
784 784
 	| Additional methods
785 785
 	|--------------------------------------------------------------------------
@@ -788,27 +788,27 @@  discard block
 block discarded – undo
788 788
 	|
789 789
 	*/
790 790
 
791
-	/**
792
-	 * Backwards compatibilty.
793
-	 */
794
-	public function create( $data = array() ) {
791
+    /**
792
+     * Backwards compatibilty.
793
+     */
794
+    public function create( $data = array() ) {
795 795
 
796
-		// Set the properties.
797
-		if ( is_array( $data ) ) {
798
-			$this->set_props( $data );
799
-		}
796
+        // Set the properties.
797
+        if ( is_array( $data ) ) {
798
+            $this->set_props( $data );
799
+        }
800 800
 
801
-		// Save the item.
802
-		return $this->save();
801
+        // Save the item.
802
+        return $this->save();
803 803
 
804
-	}
804
+    }
805 805
 
806
-	/**
807
-	 * Backwards compatibilty.
808
-	 */
809
-	public function update( $args = array() ) {
810
-		return $this->create( $args );
811
-	}
806
+    /**
807
+     * Backwards compatibilty.
808
+     */
809
+    public function update( $args = array() ) {
810
+        return $this->create( $args );
811
+    }
812 812
 
813 813
     /**
814 814
      * Retrieve renewal payments for a subscription
@@ -818,22 +818,22 @@  discard block
 block discarded – undo
818 818
      */
819 819
     public function get_child_payments( $hide_pending = true ) {
820 820
 
821
-		$statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
821
+        $statuses = array( 'publish', 'wpi-processing', 'wpi-renewal' );
822 822
 
823
-		if ( ! $hide_pending ) {
824
-			$statuses = array_keys( wpinv_get_invoice_statuses() );
825
-		}
823
+        if ( ! $hide_pending ) {
824
+            $statuses = array_keys( wpinv_get_invoice_statuses() );
825
+        }
826 826
 
827 827
         return get_posts(
828
-			array(
829
-            	'post_parent' => $this->get_parent_payment_id(),
830
-            	'numberposts' => -1,
831
-            	'post_status' => $statuses,
832
-            	'orderby'     => 'ID',
833
-            	'order'       => 'ASC',
834
-            	'post_type'   => 'wpi_invoice',
835
-			)
836
-		);
828
+            array(
829
+                'post_parent' => $this->get_parent_payment_id(),
830
+                'numberposts' => -1,
831
+                'post_status' => $statuses,
832
+                'orderby'     => 'ID',
833
+                'order'       => 'ASC',
834
+                'post_type'   => 'wpi_invoice',
835
+            )
836
+        );
837 837
     }
838 838
 
839 839
     /**
@@ -843,7 +843,7 @@  discard block
 block discarded – undo
843 843
      * @return int
844 844
      */
845 845
     public function get_total_payments() {
846
-		return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
846
+        return getpaid_count_subscription_invoices( $this->get_parent_invoice_id(), $this->get_id() );
847 847
     }
848 848
 
849 849
     /**
@@ -867,202 +867,202 @@  discard block
 block discarded – undo
867 867
      *
868 868
      * @since  2.4
869 869
      * @param  array $args Array of values for the payment, including amount and transaction ID
870
-	 * @param  WPInv_Invoice $invoice If adding an existing invoice.
870
+     * @param  WPInv_Invoice $invoice If adding an existing invoice.
871 871
      * @return bool
872 872
      */
873 873
     public function add_payment( $args = array(), $invoice = false ) {
874 874
 
875
-		// Process each payment once.
875
+        // Process each payment once.
876 876
         if ( ! empty( $args['transaction_id'] ) && $this->payment_exists( $args['transaction_id'] ) ) {
877 877
             return false;
878 878
         }
879 879
 
880
-		// Are we creating a new invoice?
881
-		if ( empty( $invoice ) ) {
882
-			$invoice = $this->create_payment( false );
880
+        // Are we creating a new invoice?
881
+        if ( empty( $invoice ) ) {
882
+            $invoice = $this->create_payment( false );
883 883
 
884
-			if ( empty( $invoice ) ) {
885
-				return false;
886
-			}
887
-		}
884
+            if ( empty( $invoice ) ) {
885
+                return false;
886
+            }
887
+        }
888 888
 
889
-		// Maybe set a transaction id.
890
-		if ( ! empty( $args['transaction_id'] ) ) {
891
-			$invoice->set_transaction_id( $args['transaction_id'] );
892
-		}
889
+        // Maybe set a transaction id.
890
+        if ( ! empty( $args['transaction_id'] ) ) {
891
+            $invoice->set_transaction_id( $args['transaction_id'] );
892
+        }
893 893
 
894
-		// Set the completed date.
895
-		$invoice->set_completed_date( current_time( 'mysql' ) );
894
+        // Set the completed date.
895
+        $invoice->set_completed_date( current_time( 'mysql' ) );
896 896
 
897
-		// And the gateway.
898
-		if ( ! empty( $args['gateway'] ) ) {
899
-			$invoice->set_gateway( $args['gateway'] );
900
-		}
897
+        // And the gateway.
898
+        if ( ! empty( $args['gateway'] ) ) {
899
+            $invoice->set_gateway( $args['gateway'] );
900
+        }
901 901
 
902
-		$invoice->set_status( 'wpi-renewal' );
903
-		$invoice->save();
902
+        $invoice->set_status( 'wpi-renewal' );
903
+        $invoice->save();
904 904
 
905
-		if ( ! $invoice->exists() ) {
906
-			return false;
907
-		}
905
+        if ( ! $invoice->exists() ) {
906
+            return false;
907
+        }
908 908
 
909
-		return $this->after_add_payment( $invoice );
910
-	}
909
+        return $this->after_add_payment( $invoice );
910
+    }
911 911
 
912 912
     public function after_add_payment( $invoice ) {
913 913
 
914
-		do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
915
-		do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
914
+        do_action( 'getpaid_after_create_subscription_renewal_invoice', $invoice, $this );
915
+        do_action( 'wpinv_recurring_add_subscription_payment', $invoice, $this );
916 916
         do_action( 'wpinv_recurring_record_payment', $invoice->get_id(), $this->get_parent_invoice_id(), $invoice->get_recurring_total(), $invoice->get_transaction_id() );
917 917
 
918 918
         update_post_meta( $invoice->get_id(), '_wpinv_subscription_id', $this->id );
919 919
 
920 920
         return $invoice->get_id();
921
-	}
921
+    }
922 922
 
923
-	/**
923
+    /**
924 924
      * Creates a new invoice and returns it.
925 925
      *
926 926
      * @since  1.0.19
927
-	 * @param bool $save Whether we should save the invoice.
927
+     * @param bool $save Whether we should save the invoice.
928 928
      * @return WPInv_Invoice|bool
929 929
      */
930 930
     public function create_payment( $save = true ) {
931 931
 
932
-		$parent_invoice = $this->get_parent_payment();
933
-
934
-		if ( ! $parent_invoice->exists() ) {
935
-			return false;
936
-		}
937
-
938
-		// Duplicate the parent invoice.
939
-		$invoice = getpaid_duplicate_invoice( $parent_invoice );
940
-		$invoice->set_parent_id( $parent_invoice->get_id() );
941
-		$invoice->set_subscription_id( $this->get_id() );
942
-		$invoice->set_remote_subscription_id( $this->get_profile_id() );
943
-
944
-		// Set invoice items.
945
-		$subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
946
-		$allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
947
-		$invoice_items      = array();
948
-
949
-		foreach ( $invoice->get_items() as $item ) {
950
-			if ( in_array( $item->get_id(), $allowed_items ) ) {
951
-				$invoice_items[] = $item;
952
-			}
953
-		}
954
-
955
-		$invoice->set_items( $invoice_items );
956
-
957
-		if ( ! empty( $subscription_group['fees'] ) ) {
958
-			$invoice->set_fees( $subscription_group['fees'] );
959
-		}
960
-
961
-		// Maybe recalculate discount (Pre-GetPaid Fix).
962
-		$discount = new WPInv_Discount( $invoice->get_discount_code() );
963
-
964
-		if ( $discount->exists() && $discount->is_recurring() ) {
965
-			$invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
966
-		}  else {
967
-			// Unset discount code.
968
-			$invoice->set_discount_code( '' );
969
-
970
-			$invoice->remove_discount( 'discount_code' );
971
-		}
972
-
973
-		$invoice->recalculate_total();
974
-		$invoice->set_status( 'wpi-pending' );
975
-
976
-		if ( ! $save ) {
977
-			return $invoice;
978
-		}
979
-
980
-		$invoice->save();
981
-
982
-		return $invoice->exists() ? $invoice : false;
983
-    }
984
-
985
-	/**
986
-	 * Renews or completes a subscription
987
-	 *
988
-	 * @since  1.0.0
989
-	 * @return int The subscription's id
990
-	 */
991
-	public function renew( $calculate_from = null, $_new_expiration = null ) {
992
-		// Complete subscription if applicable
993
-		if ( $this->is_last_renewal() ) {
994
-			return $this->complete();
995
-		}
996
-
997
-		if ( ! empty( $_new_expiration ) ) {
998
-			$new_expiration = $_new_expiration;
999
-		} else {
1000
-			// Calculate new expiration
1001
-			$frequency      = $this->get_frequency();
1002
-			$period         = $this->get_period();
1003
-			$calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from;
1004
-			$new_expiration = strtotime( "+ $frequency $period", $calculate_from );
1005
-			$new_expiration = date( 'Y-m-d H:i:s', $new_expiration );
1006
-		}
1007
-
1008
-		$this->set_expiration( $new_expiration );
1009
-		$this->set_status( 'active' );
1010
-		$this->save();
1011
-
1012
-		do_action( 'getpaid_subscription_renewed', $this );
1013
-
1014
-		return $this->get_id();
1015
-	}
1016
-
1017
-	/**
1018
-	 * Marks a subscription as completed
1019
-	 *
1020
-	 * Subscription is completed when the number of payments matches the billing_times field
1021
-	 *
1022
-	 * @since  1.0.0
1023
-	 * @return int|bool Subscription id or false if the subscription is cancelled.
1024
-	 */
1025
-	public function complete() {
1026
-
1027
-		// Only mark a subscription as complete if it's not already cancelled.
1028
-		if ( $this->has_status( 'cancelled' ) ) {
1029
-			return false;
1030
-		}
1031
-
1032
-		$this->set_status( 'completed' );
1033
-		return $this->save();
1034
-
1035
-	}
1036
-
1037
-	/**
1038
-	 * Marks a subscription as expired
1039
-	 *
1040
-	 * @since  1.0.0
1041
-	 * @param  bool $check_expiration
1042
-	 * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1043
-	 */
1044
-	public function expire( $check_expiration = false ) {
1045
-
1046
-		if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1047
-			// Do not mark as expired since real expiration date is in the future
1048
-			return false;
1049
-		}
1050
-
1051
-		$this->set_status( 'expired' );
1052
-		return $this->save();
1053
-
1054
-	}
1055
-
1056
-	/**
1057
-	 * Marks a subscription as failing
1058
-	 *
1059
-	 * @since  2.4.2
1060
-	 * @return int Subscription id.
1061
-	 */
1062
-	public function failing() {
1063
-		$this->set_status( 'failing' );
1064
-		return $this->save();
1065
-	}
932
+        $parent_invoice = $this->get_parent_payment();
933
+
934
+        if ( ! $parent_invoice->exists() ) {
935
+            return false;
936
+        }
937
+
938
+        // Duplicate the parent invoice.
939
+        $invoice = getpaid_duplicate_invoice( $parent_invoice );
940
+        $invoice->set_parent_id( $parent_invoice->get_id() );
941
+        $invoice->set_subscription_id( $this->get_id() );
942
+        $invoice->set_remote_subscription_id( $this->get_profile_id() );
943
+
944
+        // Set invoice items.
945
+        $subscription_group = getpaid_get_invoice_subscription_group( $parent_invoice->get_id(), $this->get_id() );
946
+        $allowed_items      = empty( $subscription_group ) ? array( $this->get_product_id() ) : array_keys( $subscription_group['items'] );
947
+        $invoice_items      = array();
948
+
949
+        foreach ( $invoice->get_items() as $item ) {
950
+            if ( in_array( $item->get_id(), $allowed_items ) ) {
951
+                $invoice_items[] = $item;
952
+            }
953
+        }
954
+
955
+        $invoice->set_items( $invoice_items );
956
+
957
+        if ( ! empty( $subscription_group['fees'] ) ) {
958
+            $invoice->set_fees( $subscription_group['fees'] );
959
+        }
960
+
961
+        // Maybe recalculate discount (Pre-GetPaid Fix).
962
+        $discount = new WPInv_Discount( $invoice->get_discount_code() );
963
+
964
+        if ( $discount->exists() && $discount->is_recurring() ) {
965
+            $invoice->add_discount( getpaid_calculate_invoice_discount( $invoice, $discount ) );
966
+        }  else {
967
+            // Unset discount code.
968
+            $invoice->set_discount_code( '' );
969
+
970
+            $invoice->remove_discount( 'discount_code' );
971
+        }
972
+
973
+        $invoice->recalculate_total();
974
+        $invoice->set_status( 'wpi-pending' );
975
+
976
+        if ( ! $save ) {
977
+            return $invoice;
978
+        }
979
+
980
+        $invoice->save();
981
+
982
+        return $invoice->exists() ? $invoice : false;
983
+    }
984
+
985
+    /**
986
+     * Renews or completes a subscription
987
+     *
988
+     * @since  1.0.0
989
+     * @return int The subscription's id
990
+     */
991
+    public function renew( $calculate_from = null, $_new_expiration = null ) {
992
+        // Complete subscription if applicable
993
+        if ( $this->is_last_renewal() ) {
994
+            return $this->complete();
995
+        }
996
+
997
+        if ( ! empty( $_new_expiration ) ) {
998
+            $new_expiration = $_new_expiration;
999
+        } else {
1000
+            // Calculate new expiration
1001
+            $frequency      = $this->get_frequency();
1002
+            $period         = $this->get_period();
1003
+            $calculate_from = empty( $calculate_from ) ? $this->get_expiration_time() : $calculate_from;
1004
+            $new_expiration = strtotime( "+ $frequency $period", $calculate_from );
1005
+            $new_expiration = date( 'Y-m-d H:i:s', $new_expiration );
1006
+        }
1007
+
1008
+        $this->set_expiration( $new_expiration );
1009
+        $this->set_status( 'active' );
1010
+        $this->save();
1011
+
1012
+        do_action( 'getpaid_subscription_renewed', $this );
1013
+
1014
+        return $this->get_id();
1015
+    }
1016
+
1017
+    /**
1018
+     * Marks a subscription as completed
1019
+     *
1020
+     * Subscription is completed when the number of payments matches the billing_times field
1021
+     *
1022
+     * @since  1.0.0
1023
+     * @return int|bool Subscription id or false if the subscription is cancelled.
1024
+     */
1025
+    public function complete() {
1026
+
1027
+        // Only mark a subscription as complete if it's not already cancelled.
1028
+        if ( $this->has_status( 'cancelled' ) ) {
1029
+            return false;
1030
+        }
1031
+
1032
+        $this->set_status( 'completed' );
1033
+        return $this->save();
1034
+
1035
+    }
1036
+
1037
+    /**
1038
+     * Marks a subscription as expired
1039
+     *
1040
+     * @since  1.0.0
1041
+     * @param  bool $check_expiration
1042
+     * @return int|bool Subscription id or false if $check_expiration is true and expiration date is in the future.
1043
+     */
1044
+    public function expire( $check_expiration = false ) {
1045
+
1046
+        if ( $check_expiration && $this->get_expiration_time() > current_time( 'timestamp' ) ) {
1047
+            // Do not mark as expired since real expiration date is in the future
1048
+            return false;
1049
+        }
1050
+
1051
+        $this->set_status( 'expired' );
1052
+        return $this->save();
1053
+
1054
+    }
1055
+
1056
+    /**
1057
+     * Marks a subscription as failing
1058
+     *
1059
+     * @since  2.4.2
1060
+     * @return int Subscription id.
1061
+     */
1062
+    public function failing() {
1063
+        $this->set_status( 'failing' );
1064
+        return $this->save();
1065
+    }
1066 1066
 
1067 1067
     /**
1068 1068
      * Marks a subscription as cancelled
@@ -1071,19 +1071,19 @@  discard block
 block discarded – undo
1071 1071
      * @return int Subscription id.
1072 1072
      */
1073 1073
     public function cancel() {
1074
-		$this->set_status( 'cancelled' );
1075
-		return $this->save();
1074
+        $this->set_status( 'cancelled' );
1075
+        return $this->save();
1076 1076
     }
1077 1077
 
1078
-	/**
1079
-	 * Determines if a subscription can be cancelled both locally and with a payment processor.
1080
-	 *
1081
-	 * @since  1.0.0
1082
-	 * @return bool
1083
-	 */
1084
-	public function can_cancel() {
1085
-		return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1086
-	}
1078
+    /**
1079
+     * Determines if a subscription can be cancelled both locally and with a payment processor.
1080
+     *
1081
+     * @since  1.0.0
1082
+     * @return bool
1083
+     */
1084
+    public function can_cancel() {
1085
+        return apply_filters( 'wpinv_subscription_can_cancel', $this->has_status( $this->get_cancellable_statuses() ), $this );
1086
+    }
1087 1087
 
1088 1088
     /**
1089 1089
      * Returns an array of subscription statuses that can be cancelled
@@ -1096,109 +1096,109 @@  discard block
 block discarded – undo
1096 1096
         return apply_filters( 'wpinv_recurring_cancellable_statuses', array( 'active', 'trialling', 'failing' ) );
1097 1097
     }
1098 1098
 
1099
-	/**
1100
-	 * Retrieves the URL to cancel subscription
1101
-	 *
1102
-	 * @since  1.0.0
1103
-	 * @return string
1104
-	 */
1105
-	public function get_cancel_url() {
1106
-		$url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1107
-		return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1108
-	}
1109
-
1110
-	/**
1111
-	 * Retrieves the URL to view a subscription
1112
-	 *
1113
-	 * @since  1.0.19
1114
-	 * @return string
1115
-	 */
1116
-	public function get_view_url() {
1117
-
1118
-		$url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1119
-		$url = add_query_arg( 'subscription', $this->get_id(), $url );
1120
-
1121
-		return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1122
-	}
1123
-
1124
-	/**
1125
-	 * Determines if subscription can be manually renewed
1126
-	 *
1127
-	 * This method is filtered by payment gateways in order to return true on subscriptions
1128
-	 * that can be renewed manually
1129
-	 *
1130
-	 * @since  2.5
1131
-	 * @return bool
1132
-	 */
1133
-	public function can_renew() {
1134
-		return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1135
-	}
1136
-
1137
-	/**
1138
-	 * Retrieves the URL to renew a subscription
1139
-	 *
1140
-	 * @since  2.5
1141
-	 * @return string
1142
-	 */
1143
-	public function get_renew_url() {
1144
-		$url = wp_nonce_url(
1099
+    /**
1100
+     * Retrieves the URL to cancel subscription
1101
+     *
1102
+     * @since  1.0.0
1103
+     * @return string
1104
+     */
1105
+    public function get_cancel_url() {
1106
+        $url = getpaid_get_authenticated_action_url( 'subscription_cancel', $this->get_view_url() );
1107
+        return apply_filters( 'wpinv_subscription_cancel_url', $url, $this );
1108
+    }
1109
+
1110
+    /**
1111
+     * Retrieves the URL to view a subscription
1112
+     *
1113
+     * @since  1.0.19
1114
+     * @return string
1115
+     */
1116
+    public function get_view_url() {
1117
+
1118
+        $url = getpaid_get_tab_url( 'gp-subscriptions', get_permalink( (int) wpinv_get_option( 'invoice_subscription_page' ) ) );
1119
+        $url = add_query_arg( 'subscription', $this->get_id(), $url );
1120
+
1121
+        return apply_filters( 'getpaid_get_subscription_view_url', $url, $this );
1122
+    }
1123
+
1124
+    /**
1125
+     * Determines if subscription can be manually renewed
1126
+     *
1127
+     * This method is filtered by payment gateways in order to return true on subscriptions
1128
+     * that can be renewed manually
1129
+     *
1130
+     * @since  2.5
1131
+     * @return bool
1132
+     */
1133
+    public function can_renew() {
1134
+        return apply_filters( 'wpinv_subscription_can_renew', true, $this );
1135
+    }
1136
+
1137
+    /**
1138
+     * Retrieves the URL to renew a subscription
1139
+     *
1140
+     * @since  2.5
1141
+     * @return string
1142
+     */
1143
+    public function get_renew_url() {
1144
+        $url = wp_nonce_url(
1145 1145
             add_query_arg(
1146 1146
                 array(
1147
-					'getpaid-action' => 'renew_subscription',
1148
-					'sub_id'         => $this->get_id,
1147
+                    'getpaid-action' => 'renew_subscription',
1148
+                    'sub_id'         => $this->get_id,
1149 1149
                 )
1150 1150
             ),
1151 1151
             'getpaid-nonce'
1152 1152
         );
1153
-		return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1154
-	}
1155
-
1156
-	/**
1157
-	 * Determines if subscription can have their payment method updated
1158
-	 *
1159
-	 * @since  1.0.0
1160
-	 * @return bool
1161
-	 */
1162
-	public function can_update() {
1163
-		return apply_filters( 'wpinv_subscription_can_update', false, $this );
1164
-	}
1165
-
1166
-	/**
1167
-	 * Retrieves the URL to update subscription
1168
-	 *
1169
-	 * @since  1.0.0
1170
-	 * @return string
1171
-	 */
1172
-	public function get_update_url() {
1173
-		$url = add_query_arg(
1153
+        return apply_filters( 'wpinv_subscription_renew_url', $url, $this );
1154
+    }
1155
+
1156
+    /**
1157
+     * Determines if subscription can have their payment method updated
1158
+     *
1159
+     * @since  1.0.0
1160
+     * @return bool
1161
+     */
1162
+    public function can_update() {
1163
+        return apply_filters( 'wpinv_subscription_can_update', false, $this );
1164
+    }
1165
+
1166
+    /**
1167
+     * Retrieves the URL to update subscription
1168
+     *
1169
+     * @since  1.0.0
1170
+     * @return string
1171
+     */
1172
+    public function get_update_url() {
1173
+        $url = add_query_arg(
1174 1174
             array(
1175
-				'action'          => 'update',
1176
-				'subscription_id' => $this->get_id(),
1175
+                'action'          => 'update',
1176
+                'subscription_id' => $this->get_id(),
1177 1177
             )
1178 1178
         );
1179
-		return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1180
-	}
1181
-
1182
-	/**
1183
-	 * Retrieves the subscription status label
1184
-	 *
1185
-	 * @since  1.0.0
1186
-	 * @return string
1187
-	 */
1188
-	public function get_status_label() {
1189
-		return getpaid_get_subscription_status_label( $this->get_status() );
1190
-	}
1191
-
1192
-	/**
1193
-	 * Retrieves the subscription status class
1194
-	 *
1195
-	 * @since  1.0.19
1196
-	 * @return string
1197
-	 */
1198
-	public function get_status_class() {
1199
-		$statuses = getpaid_get_subscription_status_classes();
1200
-		return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'bg-dark';
1201
-	}
1179
+        return apply_filters( 'wpinv_subscription_update_url', $url, $this );
1180
+    }
1181
+
1182
+    /**
1183
+     * Retrieves the subscription status label
1184
+     *
1185
+     * @since  1.0.0
1186
+     * @return string
1187
+     */
1188
+    public function get_status_label() {
1189
+        return getpaid_get_subscription_status_label( $this->get_status() );
1190
+    }
1191
+
1192
+    /**
1193
+     * Retrieves the subscription status class
1194
+     *
1195
+     * @since  1.0.19
1196
+     * @return string
1197
+     */
1198
+    public function get_status_class() {
1199
+        $statuses = getpaid_get_subscription_status_classes();
1200
+        return isset( $statuses[ $this->get_status() ] ) ? $statuses[ $this->get_status() ] : 'bg-dark';
1201
+    }
1202 1202
 
1203 1203
     /**
1204 1204
      * Retrieves the subscription status label
@@ -1208,11 +1208,11 @@  discard block
 block discarded – undo
1208 1208
      */
1209 1209
     public function get_status_label_html() {
1210 1210
 
1211
-		$status_label = sanitize_text_field( $this->get_status_label() );
1212
-		$class        = esc_attr( $this->get_status_class() );
1213
-		$status       = sanitize_html_class( $this->get_status() );
1211
+        $status_label = sanitize_text_field( $this->get_status_label() );
1212
+        $class        = esc_attr( $this->get_status_class() );
1213
+        $status       = sanitize_html_class( $this->get_status() );
1214 1214
 
1215
-		return "<span class='bsui'><span class='badge $class $status text-white'>$status_label</span></span>";
1215
+        return "<span class='bsui'><span class='badge $class $status text-white'>$status_label</span></span>";
1216 1216
     }
1217 1217
 
1218 1218
     /**
@@ -1223,75 +1223,75 @@  discard block
 block discarded – undo
1223 1223
      * @return bool
1224 1224
      */
1225 1225
     public function payment_exists( $txn_id = '' ) {
1226
-		$invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1226
+        $invoice_id = WPInv_Invoice::get_invoice_id_by_field( $txn_id, 'transaction_id' );
1227 1227
         return ! empty( $invoice_id );
1228
-	}
1229
-
1230
-	/**
1231
-	 * Handle the status transition.
1232
-	 */
1233
-	protected function status_transition() {
1234
-		$status_transition = $this->status_transition;
1235
-
1236
-		// Reset status transition variable.
1237
-		$this->status_transition = false;
1238
-
1239
-		if ( $status_transition ) {
1240
-			try {
1241
-
1242
-				// Fire a hook for the status change.
1243
-				do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1244
-				do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1245
-
1246
-				if ( ! empty( $status_transition['from'] ) ) {
1247
-
1248
-					/* translators: 1: old subscription status 2: new subscription status */
1249
-					$transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1250
-
1251
-					// Note the transition occurred.
1252
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1253
-
1254
-					// Fire another hook.
1255
-					do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1256
-					do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1257
-
1258
-				} else {
1259
-					/* translators: %s: new invoice status */
1260
-					$transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1261
-
1262
-					// Note the transition occurred.
1263
-					$this->get_parent_payment()->add_note( $transition_note, false, false, true );
1264
-
1265
-				}
1266
-			} catch ( Exception $e ) {
1267
-				$this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1268
-			}
1269
-		}
1270
-
1271
-	}
1272
-
1273
-	/**
1274
-	 * Save data to the database.
1275
-	 *
1276
-	 * @since 1.0.19
1277
-	 * @return int subscription ID
1278
-	 */
1279
-	public function save() {
1280
-		parent::save();
1281
-		$this->status_transition();
1282
-		return $this->get_id();
1283
-	}
1284
-
1285
-	/**
1286
-	 * Activates a subscription.
1287
-	 *
1288
-	 * @since 1.0.19
1289
-	 * @return int subscription ID
1290
-	 */
1291
-	public function activate() {
1292
-		$status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active';
1293
-		$this->set_status( $status );
1294
-		return $this->save();
1295
-	}
1228
+    }
1229
+
1230
+    /**
1231
+     * Handle the status transition.
1232
+     */
1233
+    protected function status_transition() {
1234
+        $status_transition = $this->status_transition;
1235
+
1236
+        // Reset status transition variable.
1237
+        $this->status_transition = false;
1238
+
1239
+        if ( $status_transition ) {
1240
+            try {
1241
+
1242
+                // Fire a hook for the status change.
1243
+                do_action( 'wpinv_subscription_' . $status_transition['to'], $this->get_id(), $this, $status_transition );
1244
+                do_action( 'getpaid_subscription_' . $status_transition['to'], $this, $status_transition );
1245
+
1246
+                if ( ! empty( $status_transition['from'] ) ) {
1247
+
1248
+                    /* translators: 1: old subscription status 2: new subscription status */
1249
+                    $transition_note = sprintf( __( 'Subscription status changed from %1$s to %2$s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['from'] ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1250
+
1251
+                    // Note the transition occurred.
1252
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1253
+
1254
+                    // Fire another hook.
1255
+                    do_action( 'getpaid_subscription_status_' . $status_transition['from'] . '_to_' . $status_transition['to'], $this->get_id(), $this );
1256
+                    do_action( 'getpaid_subscription_status_changed', $this, $status_transition['from'], $status_transition['to'] );
1257
+
1258
+                } else {
1259
+                    /* translators: %s: new invoice status */
1260
+                    $transition_note = sprintf( __( 'Subscription status set to %s.', 'invoicing' ), getpaid_get_subscription_status_label( $status_transition['to'] ) );
1261
+
1262
+                    // Note the transition occurred.
1263
+                    $this->get_parent_payment()->add_note( $transition_note, false, false, true );
1264
+
1265
+                }
1266
+            } catch ( Exception $e ) {
1267
+                $this->get_parent_payment()->add_note( __( 'Error during subscription status transition.', 'invoicing' ) . ' ' . $e->getMessage() );
1268
+            }
1269
+        }
1270
+
1271
+    }
1272
+
1273
+    /**
1274
+     * Save data to the database.
1275
+     *
1276
+     * @since 1.0.19
1277
+     * @return int subscription ID
1278
+     */
1279
+    public function save() {
1280
+        parent::save();
1281
+        $this->status_transition();
1282
+        return $this->get_id();
1283
+    }
1284
+
1285
+    /**
1286
+     * Activates a subscription.
1287
+     *
1288
+     * @since 1.0.19
1289
+     * @return int subscription ID
1290
+     */
1291
+    public function activate() {
1292
+        $status = $this->has_trial_period() && 'trialling' === $this->get_status() ? 'trialling' : 'active';
1293
+        $this->set_status( $status );
1294
+        return $this->save();
1295
+    }
1296 1296
 
1297 1297
 }
Please login to merge, or discard this patch.