@@ -21,20 +21,20 @@ |
||
21 | 21 | |
22 | 22 | foreach ( $file_types as $file_type ) { |
23 | 23 | |
24 | - if ( isset( $all_types[ $file_type ] ) ) { |
|
25 | - $types[] = $all_types[ $file_type ]; |
|
26 | - $file_type = explode( '|', $file_type ); |
|
24 | + if ( isset( $all_types[ $file_type ] ) ) { |
|
25 | + $types[] = $all_types[ $file_type ]; |
|
26 | + $file_type = explode( '|', $file_type ); |
|
27 | 27 | |
28 | - foreach ( $file_type as $type ) { |
|
29 | - $type = trim( $type ); |
|
30 | - $types[] = ".$type"; |
|
31 | - $_types[] = $type; |
|
32 | - } |
|
28 | + foreach ( $file_type as $type ) { |
|
29 | + $type = trim( $type ); |
|
30 | + $types[] = ".$type"; |
|
31 | + $_types[] = $type; |
|
32 | + } |
|
33 | 33 | } |
34 | 34 | } |
35 | 35 | |
36 | 36 | if ( ! empty( $required ) ) { |
37 | - $label .= "<span class='text-danger'> *</span>"; |
|
37 | + $label .= "<span class='text-danger'> *</span>"; |
|
38 | 38 | } |
39 | 39 | ?> |
40 | 40 | <label><span v-html="form_element.label"></span></label> |
@@ -13,47 +13,47 @@ discard block |
||
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; |
|
35 | 42 | |
36 | 43 | /** |
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; |
|
44 | + * Bank transfer instructions. |
|
45 | + */ |
|
46 | + public $instructions; |
|
52 | 47 | |
53 | 48 | /** |
54 | - * Class constructor. |
|
55 | - */ |
|
56 | - public function __construct() { |
|
49 | + * Locale array. |
|
50 | + */ |
|
51 | + public $locale; |
|
52 | + |
|
53 | + /** |
|
54 | + * Class constructor. |
|
55 | + */ |
|
56 | + public function __construct() { |
|
57 | 57 | parent::__construct(); |
58 | 58 | |
59 | 59 | $this->title = __( 'Direct bank transfer', 'invoicing' ); |
@@ -61,24 +61,24 @@ discard block |
||
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' ) ); |
|
69 | - add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
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' ) ); |
|
69 | + add_action( 'getpaid_invoice_status_publish', array( $this, 'invoice_paid' ), 20 ); |
|
70 | 70 | |
71 | 71 | } |
72 | 72 | |
73 | 73 | /** |
74 | - * Process Payment. |
|
75 | - * |
|
76 | - * @param WPInv_Invoice $invoice Invoice. |
|
77 | - * @param array $submission_data Posted checkout fields. |
|
78 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
79 | - * @return array |
|
80 | - */ |
|
81 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
74 | + * Process Payment. |
|
75 | + * |
|
76 | + * @param WPInv_Invoice $invoice Invoice. |
|
77 | + * @param array $submission_data Posted checkout fields. |
|
78 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
79 | + * @return array |
|
80 | + */ |
|
81 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
82 | 82 | |
83 | 83 | // Add a transaction id. |
84 | 84 | $invoice->set_transaction_id( $invoice->generate_key( 'bt_' ) ); |
@@ -99,66 +99,66 @@ discard block |
||
99 | 99 | } |
100 | 100 | |
101 | 101 | /** |
102 | - * Output for the order received page. |
|
103 | - * |
|
104 | - * @param WPInv_Invoice $invoice Invoice. |
|
105 | - */ |
|
106 | - public function thankyou_page( $invoice ) { |
|
102 | + * Output for the order received page. |
|
103 | + * |
|
104 | + * @param WPInv_Invoice $invoice Invoice. |
|
105 | + */ |
|
106 | + public function thankyou_page( $invoice ) { |
|
107 | 107 | |
108 | 108 | if ( 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
109 | 109 | |
110 | - echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
110 | + echo '<div class="mt-4 mb-2 getpaid-bank-transfer-details">' . PHP_EOL; |
|
111 | 111 | |
112 | 112 | if ( ! empty( $this->instructions ) ) { |
113 | 113 | echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) ); |
114 | - } |
|
114 | + } |
|
115 | 115 | |
116 | - $this->bank_details( $invoice ); |
|
116 | + $this->bank_details( $invoice ); |
|
117 | 117 | |
118 | - echo '</div>'; |
|
118 | + echo '</div>'; |
|
119 | 119 | |
120 | 120 | } |
121 | 121 | |
122 | - } |
|
122 | + } |
|
123 | 123 | |
124 | 124 | /** |
125 | - * Add content to the WPI emails. |
|
126 | - * |
|
127 | - * @param WPInv_Invoice $invoice Invoice. |
|
128 | - * @param string $email_type Email format: plain text or HTML. |
|
129 | - * @param bool $sent_to_admin Sent to admin. |
|
130 | - */ |
|
131 | - public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
125 | + * Add content to the WPI emails. |
|
126 | + * |
|
127 | + * @param WPInv_Invoice $invoice Invoice. |
|
128 | + * @param string $email_type Email format: plain text or HTML. |
|
129 | + * @param bool $sent_to_admin Sent to admin. |
|
130 | + */ |
|
131 | + public function email_instructions( $invoice, $email_type, $sent_to_admin ) { |
|
132 | 132 | |
133 | - if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
133 | + if ( ! $sent_to_admin && 'bank_transfer' === $invoice->get_gateway() && $invoice->needs_payment() ) { |
|
134 | 134 | |
135 | - echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
135 | + echo '<div class="wpi-email-row getpaid-bank-transfer-details">'; |
|
136 | 136 | |
137 | - if ( $this->instructions ) { |
|
138 | - echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
137 | + if ( $this->instructions ) { |
|
138 | + echo wp_kses_post( wpautop( wptexturize( $this->instructions ) ) . PHP_EOL ); |
|
139 | 139 | } |
140 | 140 | |
141 | - $this->bank_details( $invoice ); |
|
141 | + $this->bank_details( $invoice ); |
|
142 | 142 | |
143 | - echo '</div>'; |
|
143 | + echo '</div>'; |
|
144 | 144 | |
145 | - } |
|
145 | + } |
|
146 | 146 | |
147 | 147 | } |
148 | 148 | |
149 | 149 | /** |
150 | - * Get bank details and place into a list format. |
|
151 | - * |
|
152 | - * @param WPInv_Invoice $invoice Invoice. |
|
153 | - */ |
|
154 | - protected function bank_details( $invoice ) { |
|
150 | + * Get bank details and place into a list format. |
|
151 | + * |
|
152 | + * @param WPInv_Invoice $invoice Invoice. |
|
153 | + */ |
|
154 | + protected function bank_details( $invoice ) { |
|
155 | 155 | |
156 | - // Get the invoice country and country $locale. |
|
157 | - $country = $invoice->get_country(); |
|
158 | - $locale = $this->get_country_locale(); |
|
156 | + // Get the invoice country and country $locale. |
|
157 | + $country = $invoice->get_country(); |
|
158 | + $locale = $this->get_country_locale(); |
|
159 | 159 | |
160 | - // Get shortcode label in the $locale array and use appropriate one. |
|
161 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
160 | + // Get shortcode label in the $locale array and use appropriate one. |
|
161 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
162 | 162 | |
163 | 163 | $bank_fields = array( |
164 | 164 | 'ac_name' => __( 'Account Name', 'invoicing' ), |
@@ -177,11 +177,11 @@ discard block |
||
177 | 177 | |
178 | 178 | if ( ! empty( $value ) ) { |
179 | 179 | $bank_info[ $field ] = array( |
180 | - 'label' => $label, |
|
181 | - 'value' => $value, |
|
182 | - ); |
|
180 | + 'label' => $label, |
|
181 | + 'value' => $value, |
|
182 | + ); |
|
183 | 183 | } |
184 | - } |
|
184 | + } |
|
185 | 185 | |
186 | 186 | $bank_info = apply_filters( 'wpinv_bank_info', $bank_info, $invoice ); |
187 | 187 | |
@@ -189,139 +189,139 @@ discard block |
||
189 | 189 | return; |
190 | 190 | } |
191 | 191 | |
192 | - echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
192 | + echo '<h3 class="getpaid-bank-transfer-title"> ' . esc_html( apply_filters( 'wpinv_receipt_bank_details_title', __( 'Bank Details', 'invoicing' ), $invoice ) ) . '</h3>' . PHP_EOL; |
|
193 | 193 | |
194 | - echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
194 | + echo '<table class="table table-bordered getpaid-bank-transfer-details">' . PHP_EOL; |
|
195 | 195 | |
196 | - foreach ( $bank_info as $key => $data ) { |
|
197 | - 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; |
|
198 | - } |
|
196 | + foreach ( $bank_info as $key => $data ) { |
|
197 | + 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; |
|
198 | + } |
|
199 | 199 | |
200 | - echo '</table>'; |
|
200 | + echo '</table>'; |
|
201 | 201 | |
202 | 202 | } |
203 | 203 | |
204 | 204 | /** |
205 | - * Get country locale if localized. |
|
206 | - * |
|
207 | - * @return array |
|
208 | - */ |
|
209 | - public function get_country_locale() { |
|
210 | - |
|
211 | - if ( empty( $this->locale ) ) { |
|
212 | - |
|
213 | - // Locale information to be used - only those that are not 'Sort Code'. |
|
214 | - $this->locale = apply_filters( |
|
215 | - 'getpaid_get_bank_transfer_locale', |
|
216 | - array( |
|
217 | - 'AU' => array( |
|
218 | - 'sortcode' => array( |
|
219 | - 'label' => __( 'BSB', 'invoicing' ), |
|
220 | - ), |
|
221 | - ), |
|
222 | - 'CA' => array( |
|
223 | - 'sortcode' => array( |
|
224 | - 'label' => __( 'Bank transit number', 'invoicing' ), |
|
225 | - ), |
|
226 | - ), |
|
227 | - 'IN' => array( |
|
228 | - 'sortcode' => array( |
|
229 | - 'label' => __( 'IFSC', 'invoicing' ), |
|
230 | - ), |
|
231 | - ), |
|
232 | - 'IT' => array( |
|
233 | - 'sortcode' => array( |
|
234 | - 'label' => __( 'Branch sort', 'invoicing' ), |
|
235 | - ), |
|
236 | - ), |
|
237 | - 'NZ' => array( |
|
238 | - 'sortcode' => array( |
|
239 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
240 | - ), |
|
241 | - ), |
|
242 | - 'SE' => array( |
|
243 | - 'sortcode' => array( |
|
244 | - 'label' => __( 'Bank code', 'invoicing' ), |
|
245 | - ), |
|
246 | - ), |
|
247 | - 'US' => array( |
|
248 | - 'sortcode' => array( |
|
249 | - 'label' => __( 'Routing number', 'invoicing' ), |
|
250 | - ), |
|
251 | - ), |
|
252 | - 'ZA' => array( |
|
253 | - 'sortcode' => array( |
|
254 | - 'label' => __( 'Branch code', 'invoicing' ), |
|
255 | - ), |
|
256 | - ), |
|
257 | - ) |
|
258 | - ); |
|
259 | - |
|
260 | - } |
|
261 | - |
|
262 | - return $this->locale; |
|
263 | - |
|
264 | - } |
|
265 | - |
|
266 | - /** |
|
267 | - * Filters the gateway settings. |
|
268 | - * |
|
269 | - * @param array $admin_settings |
|
270 | - */ |
|
271 | - public function admin_settings( $admin_settings ) { |
|
205 | + * Get country locale if localized. |
|
206 | + * |
|
207 | + * @return array |
|
208 | + */ |
|
209 | + public function get_country_locale() { |
|
210 | + |
|
211 | + if ( empty( $this->locale ) ) { |
|
212 | + |
|
213 | + // Locale information to be used - only those that are not 'Sort Code'. |
|
214 | + $this->locale = apply_filters( |
|
215 | + 'getpaid_get_bank_transfer_locale', |
|
216 | + array( |
|
217 | + 'AU' => array( |
|
218 | + 'sortcode' => array( |
|
219 | + 'label' => __( 'BSB', 'invoicing' ), |
|
220 | + ), |
|
221 | + ), |
|
222 | + 'CA' => array( |
|
223 | + 'sortcode' => array( |
|
224 | + 'label' => __( 'Bank transit number', 'invoicing' ), |
|
225 | + ), |
|
226 | + ), |
|
227 | + 'IN' => array( |
|
228 | + 'sortcode' => array( |
|
229 | + 'label' => __( 'IFSC', 'invoicing' ), |
|
230 | + ), |
|
231 | + ), |
|
232 | + 'IT' => array( |
|
233 | + 'sortcode' => array( |
|
234 | + 'label' => __( 'Branch sort', 'invoicing' ), |
|
235 | + ), |
|
236 | + ), |
|
237 | + 'NZ' => array( |
|
238 | + 'sortcode' => array( |
|
239 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
240 | + ), |
|
241 | + ), |
|
242 | + 'SE' => array( |
|
243 | + 'sortcode' => array( |
|
244 | + 'label' => __( 'Bank code', 'invoicing' ), |
|
245 | + ), |
|
246 | + ), |
|
247 | + 'US' => array( |
|
248 | + 'sortcode' => array( |
|
249 | + 'label' => __( 'Routing number', 'invoicing' ), |
|
250 | + ), |
|
251 | + ), |
|
252 | + 'ZA' => array( |
|
253 | + 'sortcode' => array( |
|
254 | + 'label' => __( 'Branch code', 'invoicing' ), |
|
255 | + ), |
|
256 | + ), |
|
257 | + ) |
|
258 | + ); |
|
259 | + |
|
260 | + } |
|
261 | + |
|
262 | + return $this->locale; |
|
263 | + |
|
264 | + } |
|
265 | + |
|
266 | + /** |
|
267 | + * Filters the gateway settings. |
|
268 | + * |
|
269 | + * @param array $admin_settings |
|
270 | + */ |
|
271 | + public function admin_settings( $admin_settings ) { |
|
272 | 272 | |
273 | 273 | $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' ); |
274 | - $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
274 | + $admin_settings['bank_transfer_active']['desc'] = __( 'Enable bank transfer', 'invoicing' ); |
|
275 | 275 | |
276 | - $locale = $this->get_country_locale(); |
|
276 | + $locale = $this->get_country_locale(); |
|
277 | 277 | |
278 | - // Get sortcode label in the $locale array and use appropriate one. |
|
279 | - $country = wpinv_default_billing_country(); |
|
280 | - $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
278 | + // Get sortcode label in the $locale array and use appropriate one. |
|
279 | + $country = wpinv_default_billing_country(); |
|
280 | + $sortcode = isset( $locale[ $country ]['sortcode']['label'] ) ? $locale[ $country ]['sortcode']['label'] : __( 'Sort code', 'invoicing' ); |
|
281 | 281 | |
282 | - $admin_settings['bank_transfer_ac_name'] = array( |
|
282 | + $admin_settings['bank_transfer_ac_name'] = array( |
|
283 | 283 | 'type' => 'text', |
284 | 284 | 'id' => 'bank_transfer_ac_name', |
285 | 285 | 'name' => __( 'Account Name', 'invoicing' ), |
286 | - ); |
|
286 | + ); |
|
287 | 287 | |
288 | - $admin_settings['bank_transfer_ac_no'] = array( |
|
288 | + $admin_settings['bank_transfer_ac_no'] = array( |
|
289 | 289 | 'type' => 'text', |
290 | 290 | 'id' => 'bank_transfer_ac_no', |
291 | 291 | 'name' => __( 'Account Number', 'invoicing' ), |
292 | - ); |
|
292 | + ); |
|
293 | 293 | |
294 | - $admin_settings['bank_transfer_bank_name'] = array( |
|
294 | + $admin_settings['bank_transfer_bank_name'] = array( |
|
295 | 295 | 'type' => 'text', |
296 | 296 | 'id' => 'bank_transfer_bank_name', |
297 | 297 | 'name' => __( 'Bank Name', 'invoicing' ), |
298 | - ); |
|
298 | + ); |
|
299 | 299 | |
300 | - $admin_settings['bank_transfer_ifsc'] = array( |
|
300 | + $admin_settings['bank_transfer_ifsc'] = array( |
|
301 | 301 | 'type' => 'text', |
302 | 302 | 'id' => 'bank_transfer_ifsc', |
303 | 303 | 'name' => __( 'IFSC Code', 'invoicing' ), |
304 | - ); |
|
304 | + ); |
|
305 | 305 | |
306 | - $admin_settings['bank_transfer_iban'] = array( |
|
306 | + $admin_settings['bank_transfer_iban'] = array( |
|
307 | 307 | 'type' => 'text', |
308 | 308 | 'id' => 'bank_transfer_iban', |
309 | 309 | 'name' => __( 'IBAN', 'invoicing' ), |
310 | - ); |
|
310 | + ); |
|
311 | 311 | |
312 | - $admin_settings['bank_transfer_bic'] = array( |
|
312 | + $admin_settings['bank_transfer_bic'] = array( |
|
313 | 313 | 'type' => 'text', |
314 | 314 | 'id' => 'bank_transfer_bic', |
315 | 315 | 'name' => __( 'BIC/Swift Code', 'invoicing' ), |
316 | - ); |
|
316 | + ); |
|
317 | 317 | |
318 | - $admin_settings['bank_transfer_sort_code'] = array( |
|
319 | - 'type' => 'text', |
|
320 | - 'id' => 'bank_transfer_sort_code', |
|
321 | - 'name' => $sortcode, |
|
322 | - ); |
|
318 | + $admin_settings['bank_transfer_sort_code'] = array( |
|
319 | + 'type' => 'text', |
|
320 | + 'id' => 'bank_transfer_sort_code', |
|
321 | + 'name' => $sortcode, |
|
322 | + ); |
|
323 | 323 | |
324 | - $admin_settings['bank_transfer_info'] = array( |
|
324 | + $admin_settings['bank_transfer_info'] = array( |
|
325 | 325 | 'id' => 'bank_transfer_info', |
326 | 326 | 'name' => __( 'Instructions', 'invoicing' ), |
327 | 327 | 'desc' => __( 'Instructions that will be added to the thank you page and emails.', 'invoicing' ), |
@@ -331,17 +331,17 @@ discard block |
||
331 | 331 | 'rows' => 5, |
332 | 332 | ); |
333 | 333 | |
334 | - return $admin_settings; |
|
335 | - } |
|
334 | + return $admin_settings; |
|
335 | + } |
|
336 | 336 | |
337 | - /** |
|
338 | - * Processes invoice addons. |
|
339 | - * |
|
340 | - * @param WPInv_Invoice $invoice |
|
341 | - * @param GetPaid_Form_Item[] $items |
|
342 | - * @return WPInv_Invoice |
|
343 | - */ |
|
344 | - public function process_addons( $invoice, $items ) { |
|
337 | + /** |
|
338 | + * Processes invoice addons. |
|
339 | + * |
|
340 | + * @param WPInv_Invoice $invoice |
|
341 | + * @param GetPaid_Form_Item[] $items |
|
342 | + * @return WPInv_Invoice |
|
343 | + */ |
|
344 | + public function process_addons( $invoice, $items ) { |
|
345 | 345 | |
346 | 346 | foreach ( $items as $item ) { |
347 | 347 | $invoice->add_item( $item ); |
@@ -349,98 +349,98 @@ discard block |
||
349 | 349 | |
350 | 350 | $invoice->recalculate_total(); |
351 | 351 | $invoice->save(); |
352 | - } |
|
353 | - |
|
354 | - /** |
|
355 | - * (Maybe) renews a bank transfer subscription profile. |
|
356 | - * |
|
357 | - * |
|
358 | - * @param WPInv_Subscription $subscription |
|
359 | - */ |
|
360 | - public function maybe_renew_subscription( $subscription ) { |
|
361 | - // Ensure its our subscription && it's active. |
|
362 | - if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
363 | - add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 ); |
|
364 | - |
|
365 | - $invoice = $subscription->create_payment(); |
|
366 | - |
|
367 | - if ( ! empty( $invoice ) ) { |
|
368 | - $is_logged_in = is_user_logged_in(); |
|
369 | - |
|
370 | - // Cron run. |
|
371 | - if ( ! $is_logged_in ) { |
|
372 | - $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 ) ); |
|
373 | - |
|
374 | - $invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in ); |
|
375 | - } |
|
376 | - } |
|
377 | - |
|
378 | - remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 ); |
|
379 | - } |
|
380 | - } |
|
381 | - |
|
382 | - /** |
|
383 | - * Process a bank transfer payment. |
|
384 | - * |
|
385 | - * |
|
352 | + } |
|
353 | + |
|
354 | + /** |
|
355 | + * (Maybe) renews a bank transfer subscription profile. |
|
356 | + * |
|
357 | + * |
|
358 | + * @param WPInv_Subscription $subscription |
|
359 | + */ |
|
360 | + public function maybe_renew_subscription( $subscription ) { |
|
361 | + // Ensure its our subscription && it's active. |
|
362 | + if ( $this->id === $subscription->get_gateway() && $subscription->has_status( 'active trialling' ) ) { |
|
363 | + add_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 ); |
|
364 | + |
|
365 | + $invoice = $subscription->create_payment(); |
|
366 | + |
|
367 | + if ( ! empty( $invoice ) ) { |
|
368 | + $is_logged_in = is_user_logged_in(); |
|
369 | + |
|
370 | + // Cron run. |
|
371 | + if ( ! $is_logged_in ) { |
|
372 | + $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 ) ); |
|
373 | + |
|
374 | + $invoice->add_note( $note, false, $is_logged_in, ! $is_logged_in ); |
|
375 | + } |
|
376 | + } |
|
377 | + |
|
378 | + remove_filter( 'getpaid_invoice_notifications_is_payment_form_invoice', array( $this, 'force_is_payment_form_invoice' ), 10, 2 ); |
|
379 | + } |
|
380 | + } |
|
381 | + |
|
382 | + /** |
|
383 | + * Process a bank transfer payment. |
|
384 | + * |
|
385 | + * |
|
386 | 386 | * @param WPInv_Invoice $invoice |
387 | - */ |
|
388 | - public function invoice_paid( $invoice ) { |
|
389 | - |
|
390 | - // Abort if not paid by bank transfer. |
|
391 | - if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
392 | - return; |
|
393 | - } |
|
394 | - |
|
395 | - // Is it a parent payment? |
|
396 | - if ( 0 == $invoice->get_parent_id() ) { |
|
397 | - |
|
398 | - // (Maybe) activate subscriptions. |
|
399 | - $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
400 | - |
|
401 | - if ( ! empty( $subscriptions ) ) { |
|
402 | - $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
403 | - |
|
404 | - foreach ( $subscriptions as $subscription ) { |
|
405 | - if ( $subscription->exists() ) { |
|
406 | - $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
407 | - $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
408 | - |
|
409 | - $subscription->set_next_renewal_date( $expiry ); |
|
410 | - $subscription->set_date_created( current_time( 'mysql' ) ); |
|
411 | - $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
412 | - $subscription->activate(); |
|
413 | - } |
|
414 | - } |
|
415 | - } |
|
416 | - } else { |
|
417 | - |
|
418 | - $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
419 | - |
|
420 | - // Renew the subscription. |
|
421 | - if ( $subscription && $subscription->exists() ) { |
|
422 | - $subscription->add_payment( array(), $invoice ); |
|
423 | - $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
424 | - } |
|
425 | - } |
|
387 | + */ |
|
388 | + public function invoice_paid( $invoice ) { |
|
389 | + |
|
390 | + // Abort if not paid by bank transfer. |
|
391 | + if ( $this->id !== $invoice->get_gateway() || ! $invoice->is_recurring() ) { |
|
392 | + return; |
|
393 | + } |
|
394 | + |
|
395 | + // Is it a parent payment? |
|
396 | + if ( 0 == $invoice->get_parent_id() ) { |
|
397 | + |
|
398 | + // (Maybe) activate subscriptions. |
|
399 | + $subscriptions = getpaid_get_invoice_subscriptions( $invoice ); |
|
400 | + |
|
401 | + if ( ! empty( $subscriptions ) ) { |
|
402 | + $subscriptions = is_array( $subscriptions ) ? $subscriptions : array( $subscriptions ); |
|
403 | + |
|
404 | + foreach ( $subscriptions as $subscription ) { |
|
405 | + if ( $subscription->exists() ) { |
|
406 | + $duration = strtotime( $subscription->get_expiration() ) - strtotime( $subscription->get_date_created() ); |
|
407 | + $expiry = gmdate( 'Y-m-d H:i:s', ( current_time( 'timestamp' ) + $duration ) ); |
|
408 | + |
|
409 | + $subscription->set_next_renewal_date( $expiry ); |
|
410 | + $subscription->set_date_created( current_time( 'mysql' ) ); |
|
411 | + $subscription->set_profile_id( 'bt_sub_' . $invoice->get_id() . '_' . $subscription->get_id() ); |
|
412 | + $subscription->activate(); |
|
413 | + } |
|
414 | + } |
|
415 | + } |
|
416 | + } else { |
|
417 | + |
|
418 | + $subscription = getpaid_get_subscription( $invoice->get_subscription_id() ); |
|
419 | + |
|
420 | + // Renew the subscription. |
|
421 | + if ( $subscription && $subscription->exists() ) { |
|
422 | + $subscription->add_payment( array(), $invoice ); |
|
423 | + $subscription->renew( strtotime( $invoice->get_date_created() ) ); |
|
424 | + } |
|
425 | + } |
|
426 | 426 | |
427 | 427 | } |
428 | 428 | |
429 | - /** |
|
430 | - * Force created from payment false to allow email for auto renewal generation invoice. |
|
431 | - * |
|
432 | - * @since 2.8.11 |
|
433 | - * |
|
434 | - * @param bool $is_payment_form_invoice True when invoice created via payment form else false. |
|
435 | - * @param int $invoice Invoice ID. |
|
436 | - * @return bool True when invoice created via payment form else false. |
|
437 | - */ |
|
438 | - public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) { |
|
439 | - if ( $is_payment_form_invoice ) { |
|
440 | - $is_payment_form_invoice = false; |
|
441 | - } |
|
442 | - |
|
443 | - return $is_payment_form_invoice; |
|
444 | - } |
|
429 | + /** |
|
430 | + * Force created from payment false to allow email for auto renewal generation invoice. |
|
431 | + * |
|
432 | + * @since 2.8.11 |
|
433 | + * |
|
434 | + * @param bool $is_payment_form_invoice True when invoice created via payment form else false. |
|
435 | + * @param int $invoice Invoice ID. |
|
436 | + * @return bool True when invoice created via payment form else false. |
|
437 | + */ |
|
438 | + public function force_is_payment_form_invoice( $is_payment_form_invoice, $invoice ) { |
|
439 | + if ( $is_payment_form_invoice ) { |
|
440 | + $is_payment_form_invoice = false; |
|
441 | + } |
|
442 | + |
|
443 | + return $is_payment_form_invoice; |
|
444 | + } |
|
445 | 445 | |
446 | 446 | } |
@@ -15,321 +15,321 @@ |
||
15 | 15 | class GetPaid_Post_Types { |
16 | 16 | |
17 | 17 | /** |
18 | - * Hook in methods. |
|
19 | - */ |
|
20 | - public function __construct() { |
|
21 | - add_action( 'init', array( __CLASS__, 'register_post_types' ), 1 ); |
|
22 | - add_action( 'init', array( __CLASS__, 'register_post_status' ), 4 ); |
|
23 | - add_action( 'getpaid_flush_rewrite_rules', array( __CLASS__, 'flush_rewrite_rules' ) ); |
|
24 | - add_action( 'getpaid_after_register_post_types', array( __CLASS__, 'maybe_flush_rewrite_rules' ) ); |
|
25 | - } |
|
18 | + * Hook in methods. |
|
19 | + */ |
|
20 | + public function __construct() { |
|
21 | + add_action( 'init', array( __CLASS__, 'register_post_types' ), 1 ); |
|
22 | + add_action( 'init', array( __CLASS__, 'register_post_status' ), 4 ); |
|
23 | + add_action( 'getpaid_flush_rewrite_rules', array( __CLASS__, 'flush_rewrite_rules' ) ); |
|
24 | + add_action( 'getpaid_after_register_post_types', array( __CLASS__, 'maybe_flush_rewrite_rules' ) ); |
|
25 | + } |
|
26 | 26 | |
27 | - /** |
|
28 | - * Register core post types. |
|
29 | - */ |
|
30 | - public static function register_post_types() { |
|
27 | + /** |
|
28 | + * Register core post types. |
|
29 | + */ |
|
30 | + public static function register_post_types() { |
|
31 | 31 | |
32 | - if ( ! is_blog_installed() || post_type_exists( 'wpi_item' ) ) { |
|
33 | - return; |
|
34 | - } |
|
32 | + if ( ! is_blog_installed() || post_type_exists( 'wpi_item' ) ) { |
|
33 | + return; |
|
34 | + } |
|
35 | 35 | |
36 | - $capabilities = wpinv_current_user_can_manage_invoicing(); |
|
36 | + $capabilities = wpinv_current_user_can_manage_invoicing(); |
|
37 | 37 | |
38 | - // Fires before registering post types. |
|
39 | - do_action( 'getpaid_register_post_types' ); |
|
38 | + // Fires before registering post types. |
|
39 | + do_action( 'getpaid_register_post_types' ); |
|
40 | 40 | |
41 | - // Register item post type. |
|
42 | - register_post_type( |
|
43 | - 'wpi_item', |
|
44 | - apply_filters( |
|
45 | - 'wpinv_register_post_type_invoice_item', |
|
46 | - array( |
|
47 | - 'labels' => array( |
|
48 | - 'name' => _x( 'Items', 'post type general name', 'invoicing' ), |
|
49 | - 'singular_name' => _x( 'Item', 'post type singular name', 'invoicing' ), |
|
50 | - 'menu_name' => _x( 'Items', 'admin menu', 'invoicing' ), |
|
51 | - 'name_admin_bar' => _x( 'Item', 'add new on admin bar', 'invoicing' ), |
|
52 | - 'add_new' => _x( 'Add New', 'Item', 'invoicing' ), |
|
53 | - 'add_new_item' => __( 'Add New Item', 'invoicing' ), |
|
54 | - 'new_item' => __( 'New Item', 'invoicing' ), |
|
55 | - 'edit_item' => __( 'Edit Item', 'invoicing' ), |
|
56 | - 'view_item' => __( 'View Item', 'invoicing' ), |
|
57 | - 'all_items' => __( 'Items', 'invoicing' ), |
|
58 | - 'search_items' => __( 'Search items', 'invoicing' ), |
|
59 | - 'parent_item_colon' => __( 'Parent item:', 'invoicing' ), |
|
60 | - 'not_found' => __( 'No items found.', 'invoicing' ), |
|
61 | - 'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ), |
|
62 | - ), |
|
63 | - 'description' => __( 'This is where you can add new invoice items.', 'invoicing' ), |
|
64 | - 'public' => false, |
|
65 | - 'has_archive' => false, |
|
66 | - '_builtin' => false, |
|
67 | - 'show_ui' => $capabilities ? true : false, |
|
68 | - 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
69 | - 'show_in_nav_menus' => false, |
|
70 | - 'supports' => array( 'title', 'excerpt', 'thumbnail' ), |
|
71 | - 'rewrite' => false, |
|
72 | - 'query_var' => false, |
|
73 | - 'map_meta_cap' => true, |
|
74 | - 'show_in_admin_bar' => $capabilities ? true : false, |
|
75 | - 'can_export' => $capabilities ? true : false |
|
76 | - ) |
|
77 | - ) |
|
78 | - ); |
|
41 | + // Register item post type. |
|
42 | + register_post_type( |
|
43 | + 'wpi_item', |
|
44 | + apply_filters( |
|
45 | + 'wpinv_register_post_type_invoice_item', |
|
46 | + array( |
|
47 | + 'labels' => array( |
|
48 | + 'name' => _x( 'Items', 'post type general name', 'invoicing' ), |
|
49 | + 'singular_name' => _x( 'Item', 'post type singular name', 'invoicing' ), |
|
50 | + 'menu_name' => _x( 'Items', 'admin menu', 'invoicing' ), |
|
51 | + 'name_admin_bar' => _x( 'Item', 'add new on admin bar', 'invoicing' ), |
|
52 | + 'add_new' => _x( 'Add New', 'Item', 'invoicing' ), |
|
53 | + 'add_new_item' => __( 'Add New Item', 'invoicing' ), |
|
54 | + 'new_item' => __( 'New Item', 'invoicing' ), |
|
55 | + 'edit_item' => __( 'Edit Item', 'invoicing' ), |
|
56 | + 'view_item' => __( 'View Item', 'invoicing' ), |
|
57 | + 'all_items' => __( 'Items', 'invoicing' ), |
|
58 | + 'search_items' => __( 'Search items', 'invoicing' ), |
|
59 | + 'parent_item_colon' => __( 'Parent item:', 'invoicing' ), |
|
60 | + 'not_found' => __( 'No items found.', 'invoicing' ), |
|
61 | + 'not_found_in_trash' => __( 'No items found in trash.', 'invoicing' ), |
|
62 | + ), |
|
63 | + 'description' => __( 'This is where you can add new invoice items.', 'invoicing' ), |
|
64 | + 'public' => false, |
|
65 | + 'has_archive' => false, |
|
66 | + '_builtin' => false, |
|
67 | + 'show_ui' => $capabilities ? true : false, |
|
68 | + 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
69 | + 'show_in_nav_menus' => false, |
|
70 | + 'supports' => array( 'title', 'excerpt', 'thumbnail' ), |
|
71 | + 'rewrite' => false, |
|
72 | + 'query_var' => false, |
|
73 | + 'map_meta_cap' => true, |
|
74 | + 'show_in_admin_bar' => $capabilities ? true : false, |
|
75 | + 'can_export' => $capabilities ? true : false |
|
76 | + ) |
|
77 | + ) |
|
78 | + ); |
|
79 | 79 | |
80 | - // Register payment form post type. |
|
81 | - register_post_type( |
|
82 | - 'wpi_payment_form', |
|
83 | - apply_filters( |
|
84 | - 'wpinv_register_post_type_payment_form', |
|
85 | - array( |
|
86 | - 'labels' => array( |
|
87 | - 'name' => _x( 'Payment Forms', 'post type general name', 'invoicing' ), |
|
88 | - 'singular_name' => _x( 'Payment Form', 'post type singular name', 'invoicing' ), |
|
89 | - 'menu_name' => _x( 'Payment Forms', 'admin menu', 'invoicing' ), |
|
90 | - 'name_admin_bar' => _x( 'Payment Form', 'add new on admin bar', 'invoicing' ), |
|
91 | - 'add_new' => _x( 'Add New', 'Payment Form', 'invoicing' ), |
|
92 | - 'add_new_item' => __( 'Add New Payment Form', 'invoicing' ), |
|
93 | - 'new_item' => __( 'New Payment Form', 'invoicing' ), |
|
94 | - 'edit_item' => __( 'Edit Payment Form', 'invoicing' ), |
|
95 | - 'view_item' => __( 'View Payment Form', 'invoicing' ), |
|
96 | - 'all_items' => __( 'Payment Forms', 'invoicing' ), |
|
97 | - 'search_items' => __( 'Search Payment Forms', 'invoicing' ), |
|
98 | - 'parent_item_colon' => __( 'Parent Payment Forms:', 'invoicing' ), |
|
99 | - 'not_found' => __( 'No payment forms found.', 'invoicing' ), |
|
100 | - 'not_found_in_trash' => __( 'No payment forms found in trash.', 'invoicing' ), |
|
101 | - ), |
|
102 | - 'description' => __( 'Add new payment forms.', 'invoicing' ), |
|
103 | - 'public' => false, |
|
104 | - 'show_ui' => $capabilities ? true : false, |
|
105 | - 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
106 | - 'show_in_nav_menus' => false, |
|
107 | - 'query_var' => false, |
|
108 | - 'rewrite' => true, |
|
109 | - 'map_meta_cap' => true, |
|
110 | - 'has_archive' => false, |
|
111 | - 'hierarchical' => false, |
|
112 | - 'menu_position' => null, |
|
113 | - 'supports' => array( 'title' ), |
|
114 | - 'menu_icon' => 'dashicons-media-form', |
|
115 | - ) |
|
116 | - ) |
|
117 | - ); |
|
80 | + // Register payment form post type. |
|
81 | + register_post_type( |
|
82 | + 'wpi_payment_form', |
|
83 | + apply_filters( |
|
84 | + 'wpinv_register_post_type_payment_form', |
|
85 | + array( |
|
86 | + 'labels' => array( |
|
87 | + 'name' => _x( 'Payment Forms', 'post type general name', 'invoicing' ), |
|
88 | + 'singular_name' => _x( 'Payment Form', 'post type singular name', 'invoicing' ), |
|
89 | + 'menu_name' => _x( 'Payment Forms', 'admin menu', 'invoicing' ), |
|
90 | + 'name_admin_bar' => _x( 'Payment Form', 'add new on admin bar', 'invoicing' ), |
|
91 | + 'add_new' => _x( 'Add New', 'Payment Form', 'invoicing' ), |
|
92 | + 'add_new_item' => __( 'Add New Payment Form', 'invoicing' ), |
|
93 | + 'new_item' => __( 'New Payment Form', 'invoicing' ), |
|
94 | + 'edit_item' => __( 'Edit Payment Form', 'invoicing' ), |
|
95 | + 'view_item' => __( 'View Payment Form', 'invoicing' ), |
|
96 | + 'all_items' => __( 'Payment Forms', 'invoicing' ), |
|
97 | + 'search_items' => __( 'Search Payment Forms', 'invoicing' ), |
|
98 | + 'parent_item_colon' => __( 'Parent Payment Forms:', 'invoicing' ), |
|
99 | + 'not_found' => __( 'No payment forms found.', 'invoicing' ), |
|
100 | + 'not_found_in_trash' => __( 'No payment forms found in trash.', 'invoicing' ), |
|
101 | + ), |
|
102 | + 'description' => __( 'Add new payment forms.', 'invoicing' ), |
|
103 | + 'public' => false, |
|
104 | + 'show_ui' => $capabilities ? true : false, |
|
105 | + 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
106 | + 'show_in_nav_menus' => false, |
|
107 | + 'query_var' => false, |
|
108 | + 'rewrite' => true, |
|
109 | + 'map_meta_cap' => true, |
|
110 | + 'has_archive' => false, |
|
111 | + 'hierarchical' => false, |
|
112 | + 'menu_position' => null, |
|
113 | + 'supports' => array( 'title' ), |
|
114 | + 'menu_icon' => 'dashicons-media-form', |
|
115 | + ) |
|
116 | + ) |
|
117 | + ); |
|
118 | 118 | |
119 | - // Register invoice post type. |
|
120 | - register_post_type( |
|
121 | - 'wpi_invoice', |
|
122 | - apply_filters( |
|
123 | - 'wpinv_register_post_type_invoice', |
|
124 | - array( |
|
125 | - 'labels' => array( |
|
126 | - 'name' => __( 'Invoices', 'invoicing' ), |
|
127 | - 'singular_name' => __( 'Invoice', 'invoicing' ), |
|
128 | - 'all_items' => __( 'Invoices', 'invoicing' ), |
|
129 | - 'menu_name' => _x( 'Invoices', 'Admin menu name', 'invoicing' ), |
|
130 | - 'add_new' => __( 'Add New', 'invoicing' ), |
|
131 | - 'add_new_item' => __( 'Add new invoice', 'invoicing' ), |
|
132 | - 'edit' => __( 'Edit', 'invoicing' ), |
|
133 | - 'edit_item' => __( 'Edit invoice', 'invoicing' ), |
|
134 | - 'new_item' => __( 'New invoice', 'invoicing' ), |
|
135 | - 'view_item' => __( 'View invoice', 'invoicing' ), |
|
136 | - 'view_items' => __( 'View Invoices', 'invoicing' ), |
|
137 | - 'search_items' => __( 'Search invoices', 'invoicing' ), |
|
138 | - 'not_found' => __( 'No invoices found', 'invoicing' ), |
|
139 | - 'not_found_in_trash' => __( 'No invoices found in trash', 'invoicing' ), |
|
140 | - 'parent' => __( 'Parent invoice', 'invoicing' ), |
|
141 | - 'featured_image' => __( 'Invoice image', 'invoicing' ), |
|
142 | - 'set_featured_image' => __( 'Set invoice image', 'invoicing' ), |
|
143 | - 'remove_featured_image' => __( 'Remove invoice image', 'invoicing' ), |
|
144 | - 'use_featured_image' => __( 'Use as invoice image', 'invoicing' ), |
|
145 | - 'insert_into_item' => __( 'Insert into invoice', 'invoicing' ), |
|
146 | - 'uploaded_to_this_item' => __( 'Uploaded to this invoice', 'invoicing' ), |
|
147 | - 'filter_items_list' => __( 'Filter invoices', 'invoicing' ), |
|
148 | - 'items_list_navigation' => __( 'Invoices navigation', 'invoicing' ), |
|
149 | - 'items_list' => __( 'Invoices list', 'invoicing' ), |
|
150 | - ), |
|
151 | - 'description' => __( 'This is where invoices are stored.', 'invoicing' ), |
|
152 | - 'public' => true, |
|
153 | - 'has_archive' => false, |
|
154 | - 'publicly_queryable' => true, |
|
155 | - 'exclude_from_search' => true, |
|
156 | - 'show_ui' => $capabilities ? true : false, |
|
157 | - 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
158 | - 'show_in_nav_menus' => false, |
|
159 | - 'supports' => array( 'title', 'author', 'excerpt' ), |
|
160 | - 'rewrite' => array( |
|
161 | - 'slug' => 'invoice', |
|
162 | - 'with_front' => false, |
|
163 | - ), |
|
164 | - 'query_var' => false, |
|
165 | - 'map_meta_cap' => true, |
|
166 | - 'show_in_admin_bar' => $capabilities ? true : false, |
|
167 | - 'can_export' => $capabilities ? true : false, |
|
168 | - 'hierarchical' => false, |
|
169 | - 'menu_position' => null, |
|
170 | - 'menu_icon' => 'dashicons-media-spreadsheet', |
|
171 | - ) |
|
172 | - ) |
|
173 | - ); |
|
119 | + // Register invoice post type. |
|
120 | + register_post_type( |
|
121 | + 'wpi_invoice', |
|
122 | + apply_filters( |
|
123 | + 'wpinv_register_post_type_invoice', |
|
124 | + array( |
|
125 | + 'labels' => array( |
|
126 | + 'name' => __( 'Invoices', 'invoicing' ), |
|
127 | + 'singular_name' => __( 'Invoice', 'invoicing' ), |
|
128 | + 'all_items' => __( 'Invoices', 'invoicing' ), |
|
129 | + 'menu_name' => _x( 'Invoices', 'Admin menu name', 'invoicing' ), |
|
130 | + 'add_new' => __( 'Add New', 'invoicing' ), |
|
131 | + 'add_new_item' => __( 'Add new invoice', 'invoicing' ), |
|
132 | + 'edit' => __( 'Edit', 'invoicing' ), |
|
133 | + 'edit_item' => __( 'Edit invoice', 'invoicing' ), |
|
134 | + 'new_item' => __( 'New invoice', 'invoicing' ), |
|
135 | + 'view_item' => __( 'View invoice', 'invoicing' ), |
|
136 | + 'view_items' => __( 'View Invoices', 'invoicing' ), |
|
137 | + 'search_items' => __( 'Search invoices', 'invoicing' ), |
|
138 | + 'not_found' => __( 'No invoices found', 'invoicing' ), |
|
139 | + 'not_found_in_trash' => __( 'No invoices found in trash', 'invoicing' ), |
|
140 | + 'parent' => __( 'Parent invoice', 'invoicing' ), |
|
141 | + 'featured_image' => __( 'Invoice image', 'invoicing' ), |
|
142 | + 'set_featured_image' => __( 'Set invoice image', 'invoicing' ), |
|
143 | + 'remove_featured_image' => __( 'Remove invoice image', 'invoicing' ), |
|
144 | + 'use_featured_image' => __( 'Use as invoice image', 'invoicing' ), |
|
145 | + 'insert_into_item' => __( 'Insert into invoice', 'invoicing' ), |
|
146 | + 'uploaded_to_this_item' => __( 'Uploaded to this invoice', 'invoicing' ), |
|
147 | + 'filter_items_list' => __( 'Filter invoices', 'invoicing' ), |
|
148 | + 'items_list_navigation' => __( 'Invoices navigation', 'invoicing' ), |
|
149 | + 'items_list' => __( 'Invoices list', 'invoicing' ), |
|
150 | + ), |
|
151 | + 'description' => __( 'This is where invoices are stored.', 'invoicing' ), |
|
152 | + 'public' => true, |
|
153 | + 'has_archive' => false, |
|
154 | + 'publicly_queryable' => true, |
|
155 | + 'exclude_from_search' => true, |
|
156 | + 'show_ui' => $capabilities ? true : false, |
|
157 | + 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
158 | + 'show_in_nav_menus' => false, |
|
159 | + 'supports' => array( 'title', 'author', 'excerpt' ), |
|
160 | + 'rewrite' => array( |
|
161 | + 'slug' => 'invoice', |
|
162 | + 'with_front' => false, |
|
163 | + ), |
|
164 | + 'query_var' => false, |
|
165 | + 'map_meta_cap' => true, |
|
166 | + 'show_in_admin_bar' => $capabilities ? true : false, |
|
167 | + 'can_export' => $capabilities ? true : false, |
|
168 | + 'hierarchical' => false, |
|
169 | + 'menu_position' => null, |
|
170 | + 'menu_icon' => 'dashicons-media-spreadsheet', |
|
171 | + ) |
|
172 | + ) |
|
173 | + ); |
|
174 | 174 | |
175 | - // Register discount post type. |
|
176 | - register_post_type( |
|
177 | - 'wpi_discount', |
|
178 | - apply_filters( |
|
179 | - 'wpinv_register_post_type_discount', |
|
180 | - array( |
|
181 | - 'labels' => array( |
|
182 | - 'name' => __( 'Discounts', 'invoicing' ), |
|
183 | - 'singular_name' => __( 'Discount', 'invoicing' ), |
|
184 | - 'all_items' => __( 'Discounts', 'invoicing' ), |
|
185 | - 'menu_name' => _x( 'Discounts', 'Admin menu name', 'invoicing' ), |
|
186 | - 'add_new' => __( 'Add New', 'invoicing' ), |
|
187 | - 'add_new_item' => __( 'Add new discount', 'invoicing' ), |
|
188 | - 'edit' => __( 'Edit', 'invoicing' ), |
|
189 | - 'edit_item' => __( 'Edit discount', 'invoicing' ), |
|
190 | - 'new_item' => __( 'New discount', 'invoicing' ), |
|
191 | - 'view_item' => __( 'View discount', 'invoicing' ), |
|
192 | - 'view_items' => __( 'View Discounts', 'invoicing' ), |
|
193 | - 'search_items' => __( 'Search discounts', 'invoicing' ), |
|
194 | - 'not_found' => __( 'No discounts found', 'invoicing' ), |
|
195 | - 'not_found_in_trash' => __( 'No discounts found in trash', 'invoicing' ), |
|
196 | - 'parent' => __( 'Parent discount', 'invoicing' ), |
|
197 | - 'featured_image' => __( 'Discount image', 'invoicing' ), |
|
198 | - 'set_featured_image' => __( 'Set discount image', 'invoicing' ), |
|
199 | - 'remove_featured_image' => __( 'Remove discount image', 'invoicing' ), |
|
200 | - 'use_featured_image' => __( 'Use as discount image', 'invoicing' ), |
|
201 | - 'insert_into_item' => __( 'Insert into discount', 'invoicing' ), |
|
202 | - 'uploaded_to_this_item' => __( 'Uploaded to this discount', 'invoicing' ), |
|
203 | - 'filter_items_list' => __( 'Filter discounts', 'invoicing' ), |
|
204 | - 'items_list_navigation' => __( 'Discount navigation', 'invoicing' ), |
|
205 | - 'items_list' => __( 'Discounts list', 'invoicing' ), |
|
206 | - ), |
|
207 | - 'description' => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ), |
|
208 | - 'public' => false, |
|
209 | - 'can_export' => $capabilities ? true : false, |
|
210 | - '_builtin' => false, |
|
211 | - 'publicly_queryable' => false, |
|
212 | - 'exclude_from_search' => true, |
|
213 | - 'show_ui' => $capabilities ? true : false, |
|
214 | - 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
215 | - 'query_var' => false, |
|
216 | - 'rewrite' => false, |
|
217 | - 'map_meta_cap' => true, |
|
218 | - 'has_archive' => false, |
|
219 | - 'hierarchical' => false, |
|
220 | - 'supports' => array( 'title', 'excerpt' ), |
|
221 | - 'show_in_nav_menus' => false, |
|
222 | - 'show_in_admin_bar' => $capabilities ? true : false, |
|
223 | - 'menu_position' => null, |
|
224 | - ) |
|
225 | - ) |
|
226 | - ); |
|
175 | + // Register discount post type. |
|
176 | + register_post_type( |
|
177 | + 'wpi_discount', |
|
178 | + apply_filters( |
|
179 | + 'wpinv_register_post_type_discount', |
|
180 | + array( |
|
181 | + 'labels' => array( |
|
182 | + 'name' => __( 'Discounts', 'invoicing' ), |
|
183 | + 'singular_name' => __( 'Discount', 'invoicing' ), |
|
184 | + 'all_items' => __( 'Discounts', 'invoicing' ), |
|
185 | + 'menu_name' => _x( 'Discounts', 'Admin menu name', 'invoicing' ), |
|
186 | + 'add_new' => __( 'Add New', 'invoicing' ), |
|
187 | + 'add_new_item' => __( 'Add new discount', 'invoicing' ), |
|
188 | + 'edit' => __( 'Edit', 'invoicing' ), |
|
189 | + 'edit_item' => __( 'Edit discount', 'invoicing' ), |
|
190 | + 'new_item' => __( 'New discount', 'invoicing' ), |
|
191 | + 'view_item' => __( 'View discount', 'invoicing' ), |
|
192 | + 'view_items' => __( 'View Discounts', 'invoicing' ), |
|
193 | + 'search_items' => __( 'Search discounts', 'invoicing' ), |
|
194 | + 'not_found' => __( 'No discounts found', 'invoicing' ), |
|
195 | + 'not_found_in_trash' => __( 'No discounts found in trash', 'invoicing' ), |
|
196 | + 'parent' => __( 'Parent discount', 'invoicing' ), |
|
197 | + 'featured_image' => __( 'Discount image', 'invoicing' ), |
|
198 | + 'set_featured_image' => __( 'Set discount image', 'invoicing' ), |
|
199 | + 'remove_featured_image' => __( 'Remove discount image', 'invoicing' ), |
|
200 | + 'use_featured_image' => __( 'Use as discount image', 'invoicing' ), |
|
201 | + 'insert_into_item' => __( 'Insert into discount', 'invoicing' ), |
|
202 | + 'uploaded_to_this_item' => __( 'Uploaded to this discount', 'invoicing' ), |
|
203 | + 'filter_items_list' => __( 'Filter discounts', 'invoicing' ), |
|
204 | + 'items_list_navigation' => __( 'Discount navigation', 'invoicing' ), |
|
205 | + 'items_list' => __( 'Discounts list', 'invoicing' ), |
|
206 | + ), |
|
207 | + 'description' => __( 'This is where you can add new discounts that users can use in invoices.', 'invoicing' ), |
|
208 | + 'public' => false, |
|
209 | + 'can_export' => $capabilities ? true : false, |
|
210 | + '_builtin' => false, |
|
211 | + 'publicly_queryable' => false, |
|
212 | + 'exclude_from_search' => true, |
|
213 | + 'show_ui' => $capabilities ? true : false, |
|
214 | + 'show_in_menu' => $capabilities ? 'wpinv' : false, |
|
215 | + 'query_var' => false, |
|
216 | + 'rewrite' => false, |
|
217 | + 'map_meta_cap' => true, |
|
218 | + 'has_archive' => false, |
|
219 | + 'hierarchical' => false, |
|
220 | + 'supports' => array( 'title', 'excerpt' ), |
|
221 | + 'show_in_nav_menus' => false, |
|
222 | + 'show_in_admin_bar' => $capabilities ? true : false, |
|
223 | + 'menu_position' => null, |
|
224 | + ) |
|
225 | + ) |
|
226 | + ); |
|
227 | 227 | |
228 | - do_action( 'getpaid_after_register_post_types' ); |
|
229 | - } |
|
228 | + do_action( 'getpaid_after_register_post_types' ); |
|
229 | + } |
|
230 | 230 | |
231 | - /** |
|
232 | - * Register our custom post statuses. |
|
233 | - */ |
|
234 | - public static function register_post_status() { |
|
231 | + /** |
|
232 | + * Register our custom post statuses. |
|
233 | + */ |
|
234 | + public static function register_post_status() { |
|
235 | 235 | |
236 | - $invoice_statuses = apply_filters( |
|
237 | - 'getpaid_register_invoice_post_statuses', |
|
238 | - array( |
|
236 | + $invoice_statuses = apply_filters( |
|
237 | + 'getpaid_register_invoice_post_statuses', |
|
238 | + array( |
|
239 | 239 | |
240 | - 'wpi-pending' => array( |
|
241 | - 'label' => _x( 'Pending Payment', 'Invoice status', 'invoicing' ), |
|
242 | - 'public' => true, |
|
243 | - 'exclude_from_search' => true, |
|
244 | - 'show_in_admin_all_list' => true, |
|
245 | - 'show_in_admin_status_list' => true, |
|
246 | - /* translators: %s: number of invoices */ |
|
247 | - 'label_count' => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing' ), |
|
248 | - ), |
|
240 | + 'wpi-pending' => array( |
|
241 | + 'label' => _x( 'Pending Payment', 'Invoice status', 'invoicing' ), |
|
242 | + 'public' => true, |
|
243 | + 'exclude_from_search' => true, |
|
244 | + 'show_in_admin_all_list' => true, |
|
245 | + 'show_in_admin_status_list' => true, |
|
246 | + /* translators: %s: number of invoices */ |
|
247 | + 'label_count' => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'invoicing' ), |
|
248 | + ), |
|
249 | 249 | |
250 | - 'wpi-processing' => array( |
|
251 | - 'label' => _x( 'Processing', 'Invoice status', 'invoicing' ), |
|
252 | - 'public' => true, |
|
253 | - 'exclude_from_search' => true, |
|
254 | - 'show_in_admin_all_list' => true, |
|
255 | - 'show_in_admin_status_list' => true, |
|
256 | - /* translators: %s: number of invoices */ |
|
257 | - 'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ), |
|
258 | - ), |
|
250 | + 'wpi-processing' => array( |
|
251 | + 'label' => _x( 'Processing', 'Invoice status', 'invoicing' ), |
|
252 | + 'public' => true, |
|
253 | + 'exclude_from_search' => true, |
|
254 | + 'show_in_admin_all_list' => true, |
|
255 | + 'show_in_admin_status_list' => true, |
|
256 | + /* translators: %s: number of invoices */ |
|
257 | + 'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'invoicing' ), |
|
258 | + ), |
|
259 | 259 | |
260 | - 'wpi-onhold' => array( |
|
261 | - 'label' => _x( 'On Hold', 'Invoice status', 'invoicing' ), |
|
262 | - 'public' => true, |
|
263 | - 'exclude_from_search' => true, |
|
264 | - 'show_in_admin_all_list' => true, |
|
265 | - 'show_in_admin_status_list' => true, |
|
266 | - /* translators: %s: number of invoices */ |
|
267 | - 'label_count' => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ), |
|
268 | - ), |
|
260 | + 'wpi-onhold' => array( |
|
261 | + 'label' => _x( 'On Hold', 'Invoice status', 'invoicing' ), |
|
262 | + 'public' => true, |
|
263 | + 'exclude_from_search' => true, |
|
264 | + 'show_in_admin_all_list' => true, |
|
265 | + 'show_in_admin_status_list' => true, |
|
266 | + /* translators: %s: number of invoices */ |
|
267 | + 'label_count' => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'invoicing' ), |
|
268 | + ), |
|
269 | 269 | |
270 | - 'wpi-cancelled' => array( |
|
271 | - 'label' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
272 | - 'public' => true, |
|
273 | - 'exclude_from_search' => true, |
|
274 | - 'show_in_admin_all_list' => true, |
|
275 | - 'show_in_admin_status_list' => true, |
|
276 | - /* translators: %s: number of invoices */ |
|
277 | - 'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ), |
|
278 | - ), |
|
270 | + 'wpi-cancelled' => array( |
|
271 | + 'label' => _x( 'Cancelled', 'Invoice status', 'invoicing' ), |
|
272 | + 'public' => true, |
|
273 | + 'exclude_from_search' => true, |
|
274 | + 'show_in_admin_all_list' => true, |
|
275 | + 'show_in_admin_status_list' => true, |
|
276 | + /* translators: %s: number of invoices */ |
|
277 | + 'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'invoicing' ), |
|
278 | + ), |
|
279 | 279 | |
280 | - 'wpi-refunded' => array( |
|
281 | - 'label' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
282 | - 'public' => true, |
|
283 | - 'exclude_from_search' => true, |
|
284 | - 'show_in_admin_all_list' => true, |
|
285 | - 'show_in_admin_status_list' => true, |
|
286 | - /* translators: %s: number of invoices */ |
|
287 | - 'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ), |
|
288 | - ), |
|
280 | + 'wpi-refunded' => array( |
|
281 | + 'label' => _x( 'Refunded', 'Invoice status', 'invoicing' ), |
|
282 | + 'public' => true, |
|
283 | + 'exclude_from_search' => true, |
|
284 | + 'show_in_admin_all_list' => true, |
|
285 | + 'show_in_admin_status_list' => true, |
|
286 | + /* translators: %s: number of invoices */ |
|
287 | + 'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'invoicing' ), |
|
288 | + ), |
|
289 | 289 | |
290 | - 'wpi-failed' => array( |
|
291 | - 'label' => _x( 'Failed', 'Invoice status', 'invoicing' ), |
|
292 | - 'public' => true, |
|
293 | - 'exclude_from_search' => true, |
|
294 | - 'show_in_admin_all_list' => true, |
|
295 | - 'show_in_admin_status_list' => true, |
|
296 | - /* translators: %s: number of invoices */ |
|
297 | - 'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ), |
|
298 | - ), |
|
290 | + 'wpi-failed' => array( |
|
291 | + 'label' => _x( 'Failed', 'Invoice status', 'invoicing' ), |
|
292 | + 'public' => true, |
|
293 | + 'exclude_from_search' => true, |
|
294 | + 'show_in_admin_all_list' => true, |
|
295 | + 'show_in_admin_status_list' => true, |
|
296 | + /* translators: %s: number of invoices */ |
|
297 | + 'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'invoicing' ), |
|
298 | + ), |
|
299 | 299 | |
300 | - 'wpi-renewal' => array( |
|
301 | - 'label' => _x( 'Renewal', 'Invoice status', 'invoicing' ), |
|
302 | - 'public' => true, |
|
303 | - 'exclude_from_search' => true, |
|
304 | - 'show_in_admin_all_list' => true, |
|
305 | - 'show_in_admin_status_list' => true, |
|
306 | - /* translators: %s: number of invoices */ |
|
307 | - 'label_count' => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ), |
|
308 | - ), |
|
309 | - ) |
|
310 | - ); |
|
300 | + 'wpi-renewal' => array( |
|
301 | + 'label' => _x( 'Renewal', 'Invoice status', 'invoicing' ), |
|
302 | + 'public' => true, |
|
303 | + 'exclude_from_search' => true, |
|
304 | + 'show_in_admin_all_list' => true, |
|
305 | + 'show_in_admin_status_list' => true, |
|
306 | + /* translators: %s: number of invoices */ |
|
307 | + 'label_count' => _n_noop( 'Renewal <span class="count">(%s)</span>', 'Renewal <span class="count">(%s)</span>', 'invoicing' ), |
|
308 | + ), |
|
309 | + ) |
|
310 | + ); |
|
311 | 311 | |
312 | - foreach ( $invoice_statuses as $invoice_statuse => $args ) { |
|
313 | - register_post_status( $invoice_statuse, $args ); |
|
314 | - } |
|
315 | - } |
|
312 | + foreach ( $invoice_statuses as $invoice_statuse => $args ) { |
|
313 | + register_post_status( $invoice_statuse, $args ); |
|
314 | + } |
|
315 | + } |
|
316 | 316 | |
317 | - /** |
|
318 | - * Flush rewrite rules. |
|
319 | - */ |
|
320 | - public static function flush_rewrite_rules() { |
|
321 | - flush_rewrite_rules(); |
|
322 | - } |
|
317 | + /** |
|
318 | + * Flush rewrite rules. |
|
319 | + */ |
|
320 | + public static function flush_rewrite_rules() { |
|
321 | + flush_rewrite_rules(); |
|
322 | + } |
|
323 | 323 | |
324 | - /** |
|
325 | - * Flush rules to prevent 404. |
|
326 | - * |
|
327 | - */ |
|
328 | - public static function maybe_flush_rewrite_rules() { |
|
329 | - if ( ! get_option( 'getpaid_flushed_rewrite_rules' ) ) { |
|
330 | - update_option( 'getpaid_flushed_rewrite_rules', '1' ); |
|
331 | - self::flush_rewrite_rules(); |
|
332 | - } |
|
333 | - } |
|
324 | + /** |
|
325 | + * Flush rules to prevent 404. |
|
326 | + * |
|
327 | + */ |
|
328 | + public static function maybe_flush_rewrite_rules() { |
|
329 | + if ( ! get_option( 'getpaid_flushed_rewrite_rules' ) ) { |
|
330 | + update_option( 'getpaid_flushed_rewrite_rules', '1' ); |
|
331 | + self::flush_rewrite_rules(); |
|
332 | + } |
|
333 | + } |
|
334 | 334 | |
335 | 335 | } |
@@ -13,7 +13,7 @@ discard block |
||
13 | 13 | * Bail if we are not in WP. |
14 | 14 | */ |
15 | 15 | if ( ! defined( 'ABSPATH' ) ) { |
16 | - exit; |
|
16 | + exit; |
|
17 | 17 | } |
18 | 18 | |
19 | 19 | /** |
@@ -21,480 +21,480 @@ discard block |
||
21 | 21 | */ |
22 | 22 | if ( ! class_exists( 'AyeCode_UI_Settings' ) ) { |
23 | 23 | |
24 | - /** |
|
25 | - * A Class to be able to change settings for Font Awesome. |
|
26 | - * |
|
27 | - * Class AyeCode_UI_Settings |
|
28 | - * @ver 1.0.0 |
|
29 | - * @todo decide how to implement textdomain |
|
30 | - */ |
|
31 | - class AyeCode_UI_Settings { |
|
32 | - |
|
33 | - /** |
|
34 | - * Class version version. |
|
35 | - * |
|
36 | - * @var string |
|
37 | - */ |
|
38 | - public $version = '0.2.26'; |
|
39 | - |
|
40 | - /** |
|
41 | - * Class textdomain. |
|
42 | - * |
|
43 | - * @var string |
|
44 | - */ |
|
45 | - public $textdomain = 'aui'; |
|
46 | - |
|
47 | - /** |
|
48 | - * Latest version of Bootstrap at time of publish published. |
|
49 | - * |
|
50 | - * @var string |
|
51 | - */ |
|
52 | - public $latest = "5.2.2"; |
|
53 | - |
|
54 | - /** |
|
55 | - * Current version of select2 being used. |
|
56 | - * |
|
57 | - * @var string |
|
58 | - */ |
|
59 | - public $select2_version = "4.0.11"; |
|
60 | - |
|
61 | - /** |
|
62 | - * The title. |
|
63 | - * |
|
64 | - * @var string |
|
65 | - */ |
|
66 | - public $name = 'AyeCode UI'; |
|
67 | - |
|
68 | - /** |
|
69 | - * The relative url to the assets. |
|
70 | - * |
|
71 | - * @var string |
|
72 | - */ |
|
73 | - public $url = ''; |
|
74 | - |
|
75 | - /** |
|
76 | - * Holds the settings values. |
|
77 | - * |
|
78 | - * @var array |
|
79 | - */ |
|
80 | - private $settings; |
|
81 | - |
|
82 | - /** |
|
83 | - * AyeCode_UI_Settings instance. |
|
84 | - * |
|
85 | - * @access private |
|
86 | - * @since 1.0.0 |
|
87 | - * @var AyeCode_UI_Settings There can be only one! |
|
88 | - */ |
|
89 | - private static $instance = null; |
|
90 | - |
|
91 | - |
|
92 | - /** |
|
93 | - * Main AyeCode_UI_Settings Instance. |
|
94 | - * |
|
95 | - * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded. |
|
96 | - * |
|
97 | - * @since 1.0.0 |
|
98 | - * @static |
|
99 | - * @return AyeCode_UI_Settings - Main instance. |
|
100 | - */ |
|
101 | - public static function instance() { |
|
102 | - if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) { |
|
103 | - |
|
104 | - self::$instance = new AyeCode_UI_Settings; |
|
105 | - |
|
106 | - add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
107 | - |
|
108 | - if ( is_admin() ) { |
|
109 | - add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
110 | - add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
111 | - |
|
112 | - // Maybe show example page |
|
113 | - add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) ); |
|
114 | - |
|
115 | - if ( defined( 'BLOCKSTRAP_VERSION' ) ) { |
|
116 | - add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 ); |
|
117 | - } |
|
118 | - } |
|
24 | + /** |
|
25 | + * A Class to be able to change settings for Font Awesome. |
|
26 | + * |
|
27 | + * Class AyeCode_UI_Settings |
|
28 | + * @ver 1.0.0 |
|
29 | + * @todo decide how to implement textdomain |
|
30 | + */ |
|
31 | + class AyeCode_UI_Settings { |
|
32 | + |
|
33 | + /** |
|
34 | + * Class version version. |
|
35 | + * |
|
36 | + * @var string |
|
37 | + */ |
|
38 | + public $version = '0.2.26'; |
|
39 | + |
|
40 | + /** |
|
41 | + * Class textdomain. |
|
42 | + * |
|
43 | + * @var string |
|
44 | + */ |
|
45 | + public $textdomain = 'aui'; |
|
119 | 46 | |
120 | - add_action( 'customize_register', array( self::$instance, 'customizer_settings' )); |
|
47 | + /** |
|
48 | + * Latest version of Bootstrap at time of publish published. |
|
49 | + * |
|
50 | + * @var string |
|
51 | + */ |
|
52 | + public $latest = "5.2.2"; |
|
53 | + |
|
54 | + /** |
|
55 | + * Current version of select2 being used. |
|
56 | + * |
|
57 | + * @var string |
|
58 | + */ |
|
59 | + public $select2_version = "4.0.11"; |
|
121 | 60 | |
122 | - do_action( 'ayecode_ui_settings_loaded' ); |
|
123 | - } |
|
61 | + /** |
|
62 | + * The title. |
|
63 | + * |
|
64 | + * @var string |
|
65 | + */ |
|
66 | + public $name = 'AyeCode UI'; |
|
124 | 67 | |
125 | - return self::$instance; |
|
126 | - } |
|
68 | + /** |
|
69 | + * The relative url to the assets. |
|
70 | + * |
|
71 | + * @var string |
|
72 | + */ |
|
73 | + public $url = ''; |
|
127 | 74 | |
128 | - /** |
|
129 | - * Add custom colors to the color selector. |
|
130 | - * |
|
131 | - * @param $theme_colors |
|
132 | - * @param $include_outlines |
|
133 | - * @param $include_branding |
|
134 | - * |
|
135 | - * @return mixed |
|
136 | - */ |
|
137 | - public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){ |
|
75 | + /** |
|
76 | + * Holds the settings values. |
|
77 | + * |
|
78 | + * @var array |
|
79 | + */ |
|
80 | + private $settings; |
|
138 | 81 | |
82 | + /** |
|
83 | + * AyeCode_UI_Settings instance. |
|
84 | + * |
|
85 | + * @access private |
|
86 | + * @since 1.0.0 |
|
87 | + * @var AyeCode_UI_Settings There can be only one! |
|
88 | + */ |
|
89 | + private static $instance = null; |
|
139 | 90 | |
140 | - $setting = wp_get_global_settings(); |
|
141 | 91 | |
142 | - if(!empty($setting['color']['palette']['custom'])){ |
|
143 | - foreach($setting['color']['palette']['custom'] as $color){ |
|
144 | - $theme_colors[$color['slug']] = esc_attr($color['name']); |
|
145 | - } |
|
146 | - } |
|
147 | - |
|
148 | - return $theme_colors; |
|
149 | - } |
|
150 | - |
|
151 | - /** |
|
152 | - * Setup some constants. |
|
153 | - */ |
|
154 | - public function constants(){ |
|
155 | - define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" ); |
|
156 | - define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' ); |
|
157 | - define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' ); |
|
158 | - define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' ); |
|
159 | - define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' ); |
|
160 | - define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' ); |
|
161 | - define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' ); |
|
162 | - define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' ); |
|
163 | - define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' ); |
|
164 | - define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' ); |
|
165 | - define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' ); |
|
166 | - define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' ); |
|
167 | - define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' ); |
|
168 | - define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' ); |
|
169 | - define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' ); |
|
170 | - define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' ); |
|
171 | - |
|
172 | - if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) { |
|
173 | - define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL ); |
|
174 | - } |
|
175 | - if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) { |
|
176 | - define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL ); |
|
177 | - } |
|
178 | - if ( ! defined( 'AUI_INFO_COLOR' ) ) { |
|
179 | - define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL ); |
|
180 | - } |
|
181 | - if ( ! defined( 'AUI_WARNING_COLOR' ) ) { |
|
182 | - define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL ); |
|
183 | - } |
|
184 | - if ( ! defined( 'AUI_DANGER_COLOR' ) ) { |
|
185 | - define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL ); |
|
186 | - } |
|
187 | - if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) { |
|
188 | - define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL ); |
|
189 | - } |
|
190 | - if ( ! defined( 'AUI_LIGHT_COLOR' ) ) { |
|
191 | - define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL ); |
|
192 | - } |
|
193 | - if ( ! defined( 'AUI_DARK_COLOR' ) ) { |
|
194 | - define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL ); |
|
195 | - } |
|
196 | - if ( ! defined( 'AUI_WHITE_COLOR' ) ) { |
|
197 | - define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL ); |
|
198 | - } |
|
199 | - if ( ! defined( 'AUI_PURPLE_COLOR' ) ) { |
|
200 | - define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL ); |
|
201 | - } |
|
202 | - if ( ! defined( 'AUI_SALMON_COLOR' ) ) { |
|
203 | - define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL ); |
|
204 | - } |
|
205 | - if ( ! defined( 'AUI_CYAN_COLOR' ) ) { |
|
206 | - define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL ); |
|
207 | - } |
|
208 | - if ( ! defined( 'AUI_GRAY_COLOR' ) ) { |
|
209 | - define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL ); |
|
210 | - } |
|
211 | - if ( ! defined( 'AUI_INDIGO_COLOR' ) ) { |
|
212 | - define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL ); |
|
213 | - } |
|
214 | - if ( ! defined( 'AUI_ORANGE_COLOR' ) ) { |
|
215 | - define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL ); |
|
216 | - } |
|
217 | - if ( ! defined( 'AUI_BLACK_COLOR' ) ) { |
|
218 | - define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL ); |
|
219 | - } |
|
220 | - |
|
221 | - } |
|
222 | - |
|
223 | - public static function get_colors( $original = false){ |
|
224 | - |
|
225 | - if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) { |
|
226 | - return array(); |
|
227 | - } |
|
228 | - if ( $original ) { |
|
229 | - return array( |
|
230 | - 'primary' => AUI_PRIMARY_COLOR_ORIGINAL, |
|
231 | - 'secondary' => AUI_SECONDARY_COLOR_ORIGINAL, |
|
232 | - 'info' => AUI_INFO_COLOR_ORIGINAL, |
|
233 | - 'warning' => AUI_WARNING_COLOR_ORIGINAL, |
|
234 | - 'danger' => AUI_DANGER_COLOR_ORIGINAL, |
|
235 | - 'success' => AUI_SUCCESS_COLOR_ORIGINAL, |
|
236 | - 'light' => AUI_LIGHT_COLOR_ORIGINAL, |
|
237 | - 'dark' => AUI_DARK_COLOR_ORIGINAL, |
|
238 | - 'white' => AUI_WHITE_COLOR_ORIGINAL, |
|
239 | - 'purple' => AUI_PURPLE_COLOR_ORIGINAL, |
|
240 | - 'salmon' => AUI_SALMON_COLOR_ORIGINAL, |
|
241 | - 'cyan' => AUI_CYAN_COLOR_ORIGINAL, |
|
242 | - 'gray' => AUI_GRAY_COLOR_ORIGINAL, |
|
243 | - 'indigo' => AUI_INDIGO_COLOR_ORIGINAL, |
|
244 | - 'orange' => AUI_ORANGE_COLOR_ORIGINAL, |
|
245 | - 'black' => AUI_BLACK_COLOR_ORIGINAL, |
|
246 | - ); |
|
247 | - } |
|
248 | - |
|
249 | - return array( |
|
250 | - 'primary' => AUI_PRIMARY_COLOR, |
|
251 | - 'secondary' => AUI_SECONDARY_COLOR, |
|
252 | - 'info' => AUI_INFO_COLOR, |
|
253 | - 'warning' => AUI_WARNING_COLOR, |
|
254 | - 'danger' => AUI_DANGER_COLOR, |
|
255 | - 'success' => AUI_SUCCESS_COLOR, |
|
256 | - 'light' => AUI_LIGHT_COLOR, |
|
257 | - 'dark' => AUI_DARK_COLOR, |
|
258 | - 'white' => AUI_WHITE_COLOR, |
|
259 | - 'purple' => AUI_PURPLE_COLOR, |
|
260 | - 'salmon' => AUI_SALMON_COLOR, |
|
261 | - 'cyan' => AUI_CYAN_COLOR, |
|
262 | - 'gray' => AUI_GRAY_COLOR, |
|
263 | - 'indigo' => AUI_INDIGO_COLOR, |
|
264 | - 'orange' => AUI_ORANGE_COLOR, |
|
265 | - 'black' => AUI_BLACK_COLOR, |
|
266 | - ); |
|
267 | - } |
|
268 | - |
|
269 | - /** |
|
270 | - * Add admin body class to show when BS5 is active. |
|
271 | - * |
|
272 | - * @param $classes |
|
273 | - * |
|
274 | - * @return mixed |
|
275 | - */ |
|
276 | - public function add_bs5_admin_body_class( $classes = '' ) { |
|
277 | - $classes .= ' aui_bs5'; |
|
278 | - |
|
279 | - return $classes; |
|
280 | - } |
|
281 | - |
|
282 | - /** |
|
283 | - * Add a body class to show when BS5 is active. |
|
284 | - * |
|
285 | - * @param $classes |
|
286 | - * |
|
287 | - * @return mixed |
|
288 | - */ |
|
289 | - public function add_bs5_body_class( $classes ) { |
|
290 | - $classes[] = 'aui_bs5'; |
|
291 | - |
|
292 | - return $classes; |
|
293 | - } |
|
294 | - |
|
295 | - /** |
|
296 | - * Initiate the settings and add the required action hooks. |
|
297 | - */ |
|
298 | - public function init() { |
|
92 | + /** |
|
93 | + * Main AyeCode_UI_Settings Instance. |
|
94 | + * |
|
95 | + * Ensures only one instance of AyeCode_UI_Settings is loaded or can be loaded. |
|
96 | + * |
|
97 | + * @since 1.0.0 |
|
98 | + * @static |
|
99 | + * @return AyeCode_UI_Settings - Main instance. |
|
100 | + */ |
|
101 | + public static function instance() { |
|
102 | + if ( ! isset( self::$instance ) && ! ( self::$instance instanceof AyeCode_UI_Settings ) ) { |
|
103 | + |
|
104 | + self::$instance = new AyeCode_UI_Settings; |
|
105 | + |
|
106 | + add_action( 'init', array( self::$instance, 'init' ) ); // set settings |
|
107 | + |
|
108 | + if ( is_admin() ) { |
|
109 | + add_action( 'admin_menu', array( self::$instance, 'menu_item' ) ); |
|
110 | + add_action( 'admin_init', array( self::$instance, 'register_settings' ) ); |
|
111 | + |
|
112 | + // Maybe show example page |
|
113 | + add_action( 'template_redirect', array( self::$instance,'maybe_show_examples' ) ); |
|
114 | + |
|
115 | + if ( defined( 'BLOCKSTRAP_VERSION' ) ) { |
|
116 | + add_filter( 'sd_aui_colors', array( self::$instance,'sd_aui_colors' ), 10, 3 ); |
|
117 | + } |
|
118 | + } |
|
119 | + |
|
120 | + add_action( 'customize_register', array( self::$instance, 'customizer_settings' )); |
|
121 | + |
|
122 | + do_action( 'ayecode_ui_settings_loaded' ); |
|
123 | + } |
|
124 | + |
|
125 | + return self::$instance; |
|
126 | + } |
|
127 | + |
|
128 | + /** |
|
129 | + * Add custom colors to the color selector. |
|
130 | + * |
|
131 | + * @param $theme_colors |
|
132 | + * @param $include_outlines |
|
133 | + * @param $include_branding |
|
134 | + * |
|
135 | + * @return mixed |
|
136 | + */ |
|
137 | + public function sd_aui_colors( $theme_colors, $include_outlines, $include_branding ){ |
|
138 | + |
|
139 | + |
|
140 | + $setting = wp_get_global_settings(); |
|
141 | + |
|
142 | + if(!empty($setting['color']['palette']['custom'])){ |
|
143 | + foreach($setting['color']['palette']['custom'] as $color){ |
|
144 | + $theme_colors[$color['slug']] = esc_attr($color['name']); |
|
145 | + } |
|
146 | + } |
|
147 | + |
|
148 | + return $theme_colors; |
|
149 | + } |
|
150 | + |
|
151 | + /** |
|
152 | + * Setup some constants. |
|
153 | + */ |
|
154 | + public function constants(){ |
|
155 | + define( 'AUI_PRIMARY_COLOR_ORIGINAL', "#1e73be" ); |
|
156 | + define( 'AUI_SECONDARY_COLOR_ORIGINAL', '#6c757d' ); |
|
157 | + define( 'AUI_INFO_COLOR_ORIGINAL', '#17a2b8' ); |
|
158 | + define( 'AUI_WARNING_COLOR_ORIGINAL', '#ffc107' ); |
|
159 | + define( 'AUI_DANGER_COLOR_ORIGINAL', '#dc3545' ); |
|
160 | + define( 'AUI_SUCCESS_COLOR_ORIGINAL', '#44c553' ); |
|
161 | + define( 'AUI_LIGHT_COLOR_ORIGINAL', '#f8f9fa' ); |
|
162 | + define( 'AUI_DARK_COLOR_ORIGINAL', '#343a40' ); |
|
163 | + define( 'AUI_WHITE_COLOR_ORIGINAL', '#fff' ); |
|
164 | + define( 'AUI_PURPLE_COLOR_ORIGINAL', '#ad6edd' ); |
|
165 | + define( 'AUI_SALMON_COLOR_ORIGINAL', '#ff977a' ); |
|
166 | + define( 'AUI_CYAN_COLOR_ORIGINAL', '#35bdff' ); |
|
167 | + define( 'AUI_GRAY_COLOR_ORIGINAL', '#ced4da' ); |
|
168 | + define( 'AUI_INDIGO_COLOR_ORIGINAL', '#502c6c' ); |
|
169 | + define( 'AUI_ORANGE_COLOR_ORIGINAL', '#orange' ); |
|
170 | + define( 'AUI_BLACK_COLOR_ORIGINAL', '#000' ); |
|
171 | + |
|
172 | + if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) { |
|
173 | + define( 'AUI_PRIMARY_COLOR', AUI_PRIMARY_COLOR_ORIGINAL ); |
|
174 | + } |
|
175 | + if ( ! defined( 'AUI_SECONDARY_COLOR' ) ) { |
|
176 | + define( 'AUI_SECONDARY_COLOR', AUI_SECONDARY_COLOR_ORIGINAL ); |
|
177 | + } |
|
178 | + if ( ! defined( 'AUI_INFO_COLOR' ) ) { |
|
179 | + define( 'AUI_INFO_COLOR', AUI_INFO_COLOR_ORIGINAL ); |
|
180 | + } |
|
181 | + if ( ! defined( 'AUI_WARNING_COLOR' ) ) { |
|
182 | + define( 'AUI_WARNING_COLOR', AUI_WARNING_COLOR_ORIGINAL ); |
|
183 | + } |
|
184 | + if ( ! defined( 'AUI_DANGER_COLOR' ) ) { |
|
185 | + define( 'AUI_DANGER_COLOR', AUI_DANGER_COLOR_ORIGINAL ); |
|
186 | + } |
|
187 | + if ( ! defined( 'AUI_SUCCESS_COLOR' ) ) { |
|
188 | + define( 'AUI_SUCCESS_COLOR', AUI_SUCCESS_COLOR_ORIGINAL ); |
|
189 | + } |
|
190 | + if ( ! defined( 'AUI_LIGHT_COLOR' ) ) { |
|
191 | + define( 'AUI_LIGHT_COLOR', AUI_LIGHT_COLOR_ORIGINAL ); |
|
192 | + } |
|
193 | + if ( ! defined( 'AUI_DARK_COLOR' ) ) { |
|
194 | + define( 'AUI_DARK_COLOR', AUI_DARK_COLOR_ORIGINAL ); |
|
195 | + } |
|
196 | + if ( ! defined( 'AUI_WHITE_COLOR' ) ) { |
|
197 | + define( 'AUI_WHITE_COLOR', AUI_WHITE_COLOR_ORIGINAL ); |
|
198 | + } |
|
199 | + if ( ! defined( 'AUI_PURPLE_COLOR' ) ) { |
|
200 | + define( 'AUI_PURPLE_COLOR', AUI_PURPLE_COLOR_ORIGINAL ); |
|
201 | + } |
|
202 | + if ( ! defined( 'AUI_SALMON_COLOR' ) ) { |
|
203 | + define( 'AUI_SALMON_COLOR', AUI_SALMON_COLOR_ORIGINAL ); |
|
204 | + } |
|
205 | + if ( ! defined( 'AUI_CYAN_COLOR' ) ) { |
|
206 | + define( 'AUI_CYAN_COLOR', AUI_CYAN_COLOR_ORIGINAL ); |
|
207 | + } |
|
208 | + if ( ! defined( 'AUI_GRAY_COLOR' ) ) { |
|
209 | + define( 'AUI_GRAY_COLOR', AUI_GRAY_COLOR_ORIGINAL ); |
|
210 | + } |
|
211 | + if ( ! defined( 'AUI_INDIGO_COLOR' ) ) { |
|
212 | + define( 'AUI_INDIGO_COLOR', AUI_INDIGO_COLOR_ORIGINAL ); |
|
213 | + } |
|
214 | + if ( ! defined( 'AUI_ORANGE_COLOR' ) ) { |
|
215 | + define( 'AUI_ORANGE_COLOR', AUI_ORANGE_COLOR_ORIGINAL ); |
|
216 | + } |
|
217 | + if ( ! defined( 'AUI_BLACK_COLOR' ) ) { |
|
218 | + define( 'AUI_BLACK_COLOR', AUI_BLACK_COLOR_ORIGINAL ); |
|
219 | + } |
|
220 | + |
|
221 | + } |
|
222 | + |
|
223 | + public static function get_colors( $original = false){ |
|
224 | + |
|
225 | + if ( ! defined( 'AUI_PRIMARY_COLOR' ) ) { |
|
226 | + return array(); |
|
227 | + } |
|
228 | + if ( $original ) { |
|
229 | + return array( |
|
230 | + 'primary' => AUI_PRIMARY_COLOR_ORIGINAL, |
|
231 | + 'secondary' => AUI_SECONDARY_COLOR_ORIGINAL, |
|
232 | + 'info' => AUI_INFO_COLOR_ORIGINAL, |
|
233 | + 'warning' => AUI_WARNING_COLOR_ORIGINAL, |
|
234 | + 'danger' => AUI_DANGER_COLOR_ORIGINAL, |
|
235 | + 'success' => AUI_SUCCESS_COLOR_ORIGINAL, |
|
236 | + 'light' => AUI_LIGHT_COLOR_ORIGINAL, |
|
237 | + 'dark' => AUI_DARK_COLOR_ORIGINAL, |
|
238 | + 'white' => AUI_WHITE_COLOR_ORIGINAL, |
|
239 | + 'purple' => AUI_PURPLE_COLOR_ORIGINAL, |
|
240 | + 'salmon' => AUI_SALMON_COLOR_ORIGINAL, |
|
241 | + 'cyan' => AUI_CYAN_COLOR_ORIGINAL, |
|
242 | + 'gray' => AUI_GRAY_COLOR_ORIGINAL, |
|
243 | + 'indigo' => AUI_INDIGO_COLOR_ORIGINAL, |
|
244 | + 'orange' => AUI_ORANGE_COLOR_ORIGINAL, |
|
245 | + 'black' => AUI_BLACK_COLOR_ORIGINAL, |
|
246 | + ); |
|
247 | + } |
|
248 | + |
|
249 | + return array( |
|
250 | + 'primary' => AUI_PRIMARY_COLOR, |
|
251 | + 'secondary' => AUI_SECONDARY_COLOR, |
|
252 | + 'info' => AUI_INFO_COLOR, |
|
253 | + 'warning' => AUI_WARNING_COLOR, |
|
254 | + 'danger' => AUI_DANGER_COLOR, |
|
255 | + 'success' => AUI_SUCCESS_COLOR, |
|
256 | + 'light' => AUI_LIGHT_COLOR, |
|
257 | + 'dark' => AUI_DARK_COLOR, |
|
258 | + 'white' => AUI_WHITE_COLOR, |
|
259 | + 'purple' => AUI_PURPLE_COLOR, |
|
260 | + 'salmon' => AUI_SALMON_COLOR, |
|
261 | + 'cyan' => AUI_CYAN_COLOR, |
|
262 | + 'gray' => AUI_GRAY_COLOR, |
|
263 | + 'indigo' => AUI_INDIGO_COLOR, |
|
264 | + 'orange' => AUI_ORANGE_COLOR, |
|
265 | + 'black' => AUI_BLACK_COLOR, |
|
266 | + ); |
|
267 | + } |
|
268 | + |
|
269 | + /** |
|
270 | + * Add admin body class to show when BS5 is active. |
|
271 | + * |
|
272 | + * @param $classes |
|
273 | + * |
|
274 | + * @return mixed |
|
275 | + */ |
|
276 | + public function add_bs5_admin_body_class( $classes = '' ) { |
|
277 | + $classes .= ' aui_bs5'; |
|
278 | + |
|
279 | + return $classes; |
|
280 | + } |
|
281 | + |
|
282 | + /** |
|
283 | + * Add a body class to show when BS5 is active. |
|
284 | + * |
|
285 | + * @param $classes |
|
286 | + * |
|
287 | + * @return mixed |
|
288 | + */ |
|
289 | + public function add_bs5_body_class( $classes ) { |
|
290 | + $classes[] = 'aui_bs5'; |
|
291 | + |
|
292 | + return $classes; |
|
293 | + } |
|
294 | + |
|
295 | + /** |
|
296 | + * Initiate the settings and add the required action hooks. |
|
297 | + */ |
|
298 | + public function init() { |
|
299 | 299 | global $aui_bs5; |
300 | 300 | |
301 | - // Maybe fix settings |
|
302 | - if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) { |
|
303 | - $db_settings = get_option( 'ayecode-ui-settings' ); |
|
304 | - if ( ! empty( $db_settings ) ) { |
|
305 | - $db_settings['css_backend'] = 'compatibility'; |
|
306 | - $db_settings['js_backend'] = 'core-popper'; |
|
307 | - update_option( 'ayecode-ui-settings', $db_settings ); |
|
308 | - wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true")); |
|
309 | - } |
|
310 | - } |
|
301 | + // Maybe fix settings |
|
302 | + if ( ! empty( $_REQUEST['aui-fix-admin'] ) && !empty($_REQUEST['nonce']) && wp_verify_nonce( $_REQUEST['nonce'], "aui-fix-admin" ) ) { |
|
303 | + $db_settings = get_option( 'ayecode-ui-settings' ); |
|
304 | + if ( ! empty( $db_settings ) ) { |
|
305 | + $db_settings['css_backend'] = 'compatibility'; |
|
306 | + $db_settings['js_backend'] = 'core-popper'; |
|
307 | + update_option( 'ayecode-ui-settings', $db_settings ); |
|
308 | + wp_safe_redirect(admin_url("options-general.php?page=ayecode-ui-settings&updated=true")); |
|
309 | + } |
|
310 | + } |
|
311 | 311 | |
312 | - $this->constants(); |
|
313 | - $this->settings = $this->get_settings(); |
|
314 | - $this->url = $this->get_url(); |
|
312 | + $this->constants(); |
|
313 | + $this->settings = $this->get_settings(); |
|
314 | + $this->url = $this->get_url(); |
|
315 | 315 | |
316 | 316 | // define the version |
317 | - $aui_bs5 = $this->settings['bs_ver'] === '5'; |
|
318 | - |
|
319 | - if ( $aui_bs5 ) { |
|
320 | - include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' ); |
|
321 | - add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 ); |
|
322 | - add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) ); |
|
323 | - } |
|
324 | - |
|
325 | - /** |
|
326 | - * Maybe load CSS |
|
327 | - * |
|
328 | - * We load super early in case there is a theme version that might change the colors |
|
329 | - */ |
|
330 | - if ( $this->settings['css'] ) { |
|
331 | - $priority = $this->is_bs3_compat() ? 100 : 1; |
|
317 | + $aui_bs5 = $this->settings['bs_ver'] === '5'; |
|
318 | + |
|
319 | + if ( $aui_bs5 ) { |
|
320 | + include_once( dirname( __FILE__ ) . '/inc/bs-conversion.php' ); |
|
321 | + add_filter( 'admin_body_class', array( $this, 'add_bs5_admin_body_class' ), 99, 1 ); |
|
322 | + add_filter( 'body_class', array( $this, 'add_bs5_body_class' ) ); |
|
323 | + } |
|
324 | + |
|
325 | + /** |
|
326 | + * Maybe load CSS |
|
327 | + * |
|
328 | + * We load super early in case there is a theme version that might change the colors |
|
329 | + */ |
|
330 | + if ( $this->settings['css'] ) { |
|
331 | + $priority = $this->is_bs3_compat() ? 100 : 1; |
|
332 | 332 | $priority = $aui_bs5 ? 10 : $priority; |
333 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority ); |
|
334 | - } |
|
335 | - if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) { |
|
336 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
337 | - } |
|
338 | - |
|
339 | - // maybe load JS |
|
340 | - if ( $this->settings['js'] ) { |
|
341 | - $priority = $this->is_bs3_compat() ? 100 : 1; |
|
342 | - add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority ); |
|
343 | - } |
|
344 | - if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) { |
|
345 | - add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
346 | - } |
|
347 | - |
|
348 | - // Maybe set the HTML font size |
|
349 | - if ( $this->settings['html_font_size'] ) { |
|
350 | - add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 ); |
|
351 | - } |
|
352 | - |
|
353 | - // Maybe show backend style error |
|
354 | - if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){ |
|
355 | - add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) ); |
|
356 | - } |
|
357 | - |
|
358 | - } |
|
359 | - |
|
360 | - /** |
|
361 | - * Show admin notice if backend scripts not loaded. |
|
362 | - */ |
|
363 | - public function show_admin_style_notice(){ |
|
364 | - $fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin')); |
|
365 | - $button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>'; |
|
366 | - $message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button; |
|
367 | - echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>'; |
|
368 | - } |
|
369 | - |
|
370 | - /** |
|
371 | - * Check if we should load the admin scripts or not. |
|
372 | - * |
|
373 | - * @return bool |
|
374 | - */ |
|
375 | - public function load_admin_scripts(){ |
|
376 | - $result = true; |
|
377 | - |
|
378 | - // check if specifically disabled |
|
379 | - if(!empty($this->settings['disable_admin'])){ |
|
380 | - $url_parts = explode("\n",$this->settings['disable_admin']); |
|
381 | - foreach($url_parts as $part){ |
|
382 | - if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){ |
|
383 | - return false; // return early, no point checking further |
|
384 | - } |
|
385 | - } |
|
386 | - } |
|
387 | - |
|
388 | - return $result; |
|
389 | - } |
|
390 | - |
|
391 | - /** |
|
392 | - * Add a html font size to the footer. |
|
393 | - */ |
|
394 | - public function html_font_size(){ |
|
395 | - $this->settings = $this->get_settings(); |
|
396 | - echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>"; |
|
397 | - } |
|
398 | - |
|
399 | - /** |
|
400 | - * Check if the current admin screen should load scripts. |
|
401 | - * |
|
402 | - * @return bool |
|
403 | - */ |
|
404 | - public function is_aui_screen(){ |
|
333 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ), $priority ); |
|
334 | + } |
|
335 | + if ( $this->settings['css_backend'] && $this->load_admin_scripts() ) { |
|
336 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ), 1 ); |
|
337 | + } |
|
338 | + |
|
339 | + // maybe load JS |
|
340 | + if ( $this->settings['js'] ) { |
|
341 | + $priority = $this->is_bs3_compat() ? 100 : 1; |
|
342 | + add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), $priority ); |
|
343 | + } |
|
344 | + if ( $this->settings['js_backend'] && $this->load_admin_scripts() ) { |
|
345 | + add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 1 ); |
|
346 | + } |
|
347 | + |
|
348 | + // Maybe set the HTML font size |
|
349 | + if ( $this->settings['html_font_size'] ) { |
|
350 | + add_action( 'wp_footer', array( $this, 'html_font_size' ), 10 ); |
|
351 | + } |
|
352 | + |
|
353 | + // Maybe show backend style error |
|
354 | + if( $this->settings['css_backend'] != 'compatibility' || $this->settings['js_backend'] != 'core-popper' ){ |
|
355 | + add_action( 'admin_notices', array( $this, 'show_admin_style_notice' ) ); |
|
356 | + } |
|
357 | + |
|
358 | + } |
|
359 | + |
|
360 | + /** |
|
361 | + * Show admin notice if backend scripts not loaded. |
|
362 | + */ |
|
363 | + public function show_admin_style_notice(){ |
|
364 | + $fix_url = admin_url("options-general.php?page=ayecode-ui-settings&aui-fix-admin=true&nonce=".wp_create_nonce('aui-fix-admin')); |
|
365 | + $button = '<a href="'.esc_url($fix_url).'" class="button-primary">Fix Now</a>'; |
|
366 | + $message = __( '<b>Style Issue:</b> AyeCode UI is disable or set wrong.')." " .$button; |
|
367 | + echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>'; |
|
368 | + } |
|
369 | + |
|
370 | + /** |
|
371 | + * Check if we should load the admin scripts or not. |
|
372 | + * |
|
373 | + * @return bool |
|
374 | + */ |
|
375 | + public function load_admin_scripts(){ |
|
376 | + $result = true; |
|
377 | + |
|
378 | + // check if specifically disabled |
|
379 | + if(!empty($this->settings['disable_admin'])){ |
|
380 | + $url_parts = explode("\n",$this->settings['disable_admin']); |
|
381 | + foreach($url_parts as $part){ |
|
382 | + if( strpos($_SERVER['REQUEST_URI'], trim($part)) !== false ){ |
|
383 | + return false; // return early, no point checking further |
|
384 | + } |
|
385 | + } |
|
386 | + } |
|
387 | + |
|
388 | + return $result; |
|
389 | + } |
|
390 | + |
|
391 | + /** |
|
392 | + * Add a html font size to the footer. |
|
393 | + */ |
|
394 | + public function html_font_size(){ |
|
395 | + $this->settings = $this->get_settings(); |
|
396 | + echo "<style>html{font-size:".absint($this->settings['html_font_size'])."px;}</style>"; |
|
397 | + } |
|
398 | + |
|
399 | + /** |
|
400 | + * Check if the current admin screen should load scripts. |
|
401 | + * |
|
402 | + * @return bool |
|
403 | + */ |
|
404 | + public function is_aui_screen(){ |
|
405 | 405 | // echo '###';exit; |
406 | - $load = false; |
|
407 | - // check if we should load or not |
|
408 | - if ( is_admin() ) { |
|
409 | - // Only enable on set pages |
|
410 | - $aui_screens = array( |
|
411 | - 'page', |
|
406 | + $load = false; |
|
407 | + // check if we should load or not |
|
408 | + if ( is_admin() ) { |
|
409 | + // Only enable on set pages |
|
410 | + $aui_screens = array( |
|
411 | + 'page', |
|
412 | 412 | //'docs', |
413 | - 'post', |
|
414 | - 'settings_page_ayecode-ui-settings', |
|
415 | - 'appearance_page_gutenberg-widgets', |
|
416 | - 'widgets', |
|
417 | - 'ayecode-ui-settings', |
|
418 | - 'site-editor' |
|
419 | - ); |
|
420 | - $screen_ids = apply_filters( 'aui_screen_ids', $aui_screens ); |
|
413 | + 'post', |
|
414 | + 'settings_page_ayecode-ui-settings', |
|
415 | + 'appearance_page_gutenberg-widgets', |
|
416 | + 'widgets', |
|
417 | + 'ayecode-ui-settings', |
|
418 | + 'site-editor' |
|
419 | + ); |
|
420 | + $screen_ids = apply_filters( 'aui_screen_ids', $aui_screens ); |
|
421 | 421 | |
422 | - $screen = get_current_screen(); |
|
422 | + $screen = get_current_screen(); |
|
423 | 423 | |
424 | 424 | // echo '###'.$screen->id; |
425 | 425 | |
426 | - // check if we are on a AUI screen |
|
427 | - if ( $screen && in_array( $screen->id, $screen_ids ) ) { |
|
428 | - $load = true; |
|
429 | - } |
|
426 | + // check if we are on a AUI screen |
|
427 | + if ( $screen && in_array( $screen->id, $screen_ids ) ) { |
|
428 | + $load = true; |
|
429 | + } |
|
430 | 430 | |
431 | - //load for widget previews in WP 5.8 |
|
432 | - if( !empty($_REQUEST['legacy-widget-preview'])){ |
|
433 | - $load = true; |
|
434 | - } |
|
435 | - } |
|
431 | + //load for widget previews in WP 5.8 |
|
432 | + if( !empty($_REQUEST['legacy-widget-preview'])){ |
|
433 | + $load = true; |
|
434 | + } |
|
435 | + } |
|
436 | 436 | |
437 | 437 | |
438 | 438 | |
439 | - return apply_filters( 'aui_load_on_admin' , $load ); |
|
440 | - } |
|
439 | + return apply_filters( 'aui_load_on_admin' , $load ); |
|
440 | + } |
|
441 | 441 | |
442 | - /** |
|
443 | - * Check if the current theme is a block theme. |
|
444 | - * |
|
445 | - * @return bool |
|
446 | - */ |
|
447 | - public static function is_block_theme() { |
|
448 | - if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) { |
|
449 | - return true; |
|
450 | - } |
|
442 | + /** |
|
443 | + * Check if the current theme is a block theme. |
|
444 | + * |
|
445 | + * @return bool |
|
446 | + */ |
|
447 | + public static function is_block_theme() { |
|
448 | + if ( function_exists( 'wp_is_block_theme' && wp_is_block_theme() ) ) { |
|
449 | + return true; |
|
450 | + } |
|
451 | 451 | |
452 | - return false; |
|
453 | - } |
|
452 | + return false; |
|
453 | + } |
|
454 | 454 | |
455 | - /** |
|
456 | - * Adds the styles. |
|
457 | - */ |
|
458 | - public function enqueue_style() { |
|
455 | + /** |
|
456 | + * Adds the styles. |
|
457 | + */ |
|
458 | + public function enqueue_style() { |
|
459 | 459 | global $aui_bs5; |
460 | 460 | |
461 | 461 | $load_fse = false; |
462 | 462 | |
463 | - if( is_admin() && !$this->is_aui_screen()){ |
|
464 | - // don't add wp-admin scripts if not requested to |
|
465 | - }else{ |
|
466 | - $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend'; |
|
463 | + if( is_admin() && !$this->is_aui_screen()){ |
|
464 | + // don't add wp-admin scripts if not requested to |
|
465 | + }else{ |
|
466 | + $css_setting = current_action() == 'wp_enqueue_scripts' ? 'css' : 'css_backend'; |
|
467 | 467 | |
468 | - $rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : ''; |
|
468 | + $rtl = is_rtl() && ! $aui_bs5 ? '-rtl' : ''; |
|
469 | 469 | |
470 | 470 | $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : ''; |
471 | 471 | |
472 | - if($this->settings[$css_setting]){ |
|
473 | - $compatibility = $this->settings[$css_setting]=='core' ? false : true; |
|
474 | - $url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css'; |
|
472 | + if($this->settings[$css_setting]){ |
|
473 | + $compatibility = $this->settings[$css_setting]=='core' ? false : true; |
|
474 | + $url = $this->settings[$css_setting]=='core' ? $this->url.'assets'.$bs_ver.'/css/ayecode-ui'.$rtl.'.css' : $this->url.'assets'.$bs_ver.'/css/ayecode-ui-compatibility'.$rtl.'.css'; |
|
475 | 475 | |
476 | 476 | |
477 | 477 | |
478 | - wp_register_style( 'ayecode-ui', $url, array(), $this->version ); |
|
479 | - wp_enqueue_style( 'ayecode-ui' ); |
|
478 | + wp_register_style( 'ayecode-ui', $url, array(), $this->version ); |
|
479 | + wp_enqueue_style( 'ayecode-ui' ); |
|
480 | 480 | |
481 | - $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : ''; |
|
481 | + $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : ''; |
|
482 | 482 | |
483 | 483 | // if ( is_admin() && !empty($_REQUEST['postType']) ) { |
484 | - if ( is_admin() && ( !empty($_REQUEST['postType']) || $current_screen->is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) ) ) { |
|
485 | - $url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css'; |
|
486 | - wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version ); |
|
487 | - wp_enqueue_style( 'ayecode-ui-fse' ); |
|
488 | - $load_fse = true; |
|
489 | - } |
|
484 | + if ( is_admin() && ( !empty($_REQUEST['postType']) || $current_screen->is_block_editor() ) && ( defined( 'BLOCKSTRAP_VERSION' ) || defined( 'AUI_FSE' ) ) ) { |
|
485 | + $url = $this->url.'assets'.$bs_ver.'/css/ayecode-ui-fse.css'; |
|
486 | + wp_register_style( 'ayecode-ui-fse', $url, array(), $this->version ); |
|
487 | + wp_enqueue_style( 'ayecode-ui-fse' ); |
|
488 | + $load_fse = true; |
|
489 | + } |
|
490 | 490 | |
491 | 491 | |
492 | - // flatpickr |
|
493 | - wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version ); |
|
492 | + // flatpickr |
|
493 | + wp_register_style( 'flatpickr', $this->url.'assets'.$bs_ver.'/css/flatpickr.min.css', array(), $this->version ); |
|
494 | 494 | |
495 | - // fix some wp-admin issues |
|
496 | - if(is_admin()){ |
|
497 | - $custom_css = " |
|
495 | + // fix some wp-admin issues |
|
496 | + if(is_admin()){ |
|
497 | + $custom_css = " |
|
498 | 498 | body{ |
499 | 499 | background-color: #f1f1f1; |
500 | 500 | font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif; |
@@ -535,67 +535,67 @@ discard block |
||
535 | 535 | } |
536 | 536 | "; |
537 | 537 | |
538 | - // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377 |
|
539 | - $custom_css .= " |
|
538 | + // @todo, remove once fixed :: fix for this bug https://github.com/WordPress/gutenberg/issues/14377 |
|
539 | + $custom_css .= " |
|
540 | 540 | .edit-post-sidebar input[type=color].components-text-control__input{ |
541 | 541 | padding: 0; |
542 | 542 | } |
543 | 543 | "; |
544 | - wp_add_inline_style( 'ayecode-ui', $custom_css ); |
|
545 | - } |
|
544 | + wp_add_inline_style( 'ayecode-ui', $custom_css ); |
|
545 | + } |
|
546 | 546 | |
547 | - // custom changes |
|
548 | - if ( $load_fse ) { |
|
549 | - wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility) ); |
|
550 | - }else{ |
|
551 | - wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) ); |
|
547 | + // custom changes |
|
548 | + if ( $load_fse ) { |
|
549 | + wp_add_inline_style( 'ayecode-ui-fse', self::custom_css($compatibility) ); |
|
550 | + }else{ |
|
551 | + wp_add_inline_style( 'ayecode-ui', self::custom_css($compatibility) ); |
|
552 | 552 | |
553 | - } |
|
553 | + } |
|
554 | 554 | |
555 | - } |
|
556 | - } |
|
555 | + } |
|
556 | + } |
|
557 | 557 | |
558 | 558 | |
559 | - } |
|
559 | + } |
|
560 | 560 | |
561 | - /** |
|
562 | - * Get inline script used if bootstrap enqueued |
|
563 | - * |
|
564 | - * If this remains small then its best to use this than to add another JS file. |
|
565 | - */ |
|
566 | - public function inline_script() { |
|
561 | + /** |
|
562 | + * Get inline script used if bootstrap enqueued |
|
563 | + * |
|
564 | + * If this remains small then its best to use this than to add another JS file. |
|
565 | + */ |
|
566 | + public function inline_script() { |
|
567 | 567 | global $aui_bs5; |
568 | - // Flatpickr calendar locale |
|
569 | - $flatpickr_locale = self::flatpickr_locale(); |
|
570 | - |
|
571 | - ob_start(); |
|
572 | - if ( $aui_bs5 ) { |
|
573 | - include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' ); |
|
574 | - }else{ |
|
575 | - include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' ); |
|
568 | + // Flatpickr calendar locale |
|
569 | + $flatpickr_locale = self::flatpickr_locale(); |
|
570 | + |
|
571 | + ob_start(); |
|
572 | + if ( $aui_bs5 ) { |
|
573 | + include_once( dirname( __FILE__ ) . '/inc/bs5-js.php' ); |
|
574 | + }else{ |
|
575 | + include_once( dirname( __FILE__ ) . '/inc/bs4-js.php' ); |
|
576 | 576 | } |
577 | 577 | |
578 | - $output = ob_get_clean(); |
|
578 | + $output = ob_get_clean(); |
|
579 | 579 | |
580 | - /* |
|
580 | + /* |
|
581 | 581 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
582 | 582 | */ |
583 | - return str_replace( array( |
|
584 | - '<script>', |
|
585 | - '</script>' |
|
586 | - ), '', self::minify_js($output) ); |
|
587 | - } |
|
588 | - |
|
589 | - |
|
590 | - /** |
|
591 | - * JS to help with conflict issues with other plugins and themes using bootstrap v3. |
|
592 | - * |
|
593 | - * @TODO we may need this when other conflicts arrise. |
|
594 | - * @return mixed |
|
595 | - */ |
|
596 | - public static function bs3_compat_js() { |
|
597 | - ob_start(); |
|
598 | - ?> |
|
583 | + return str_replace( array( |
|
584 | + '<script>', |
|
585 | + '</script>' |
|
586 | + ), '', self::minify_js($output) ); |
|
587 | + } |
|
588 | + |
|
589 | + |
|
590 | + /** |
|
591 | + * JS to help with conflict issues with other plugins and themes using bootstrap v3. |
|
592 | + * |
|
593 | + * @TODO we may need this when other conflicts arrise. |
|
594 | + * @return mixed |
|
595 | + */ |
|
596 | + public static function bs3_compat_js() { |
|
597 | + ob_start(); |
|
598 | + ?> |
|
599 | 599 | <script> |
600 | 600 | <?php if( defined( 'FUSION_BUILDER_VERSION' ) ){ ?> |
601 | 601 | /* With Avada builder */ |
@@ -603,20 +603,20 @@ discard block |
||
603 | 603 | <?php } ?> |
604 | 604 | </script> |
605 | 605 | <?php |
606 | - return str_replace( array( |
|
607 | - '<script>', |
|
608 | - '</script>' |
|
609 | - ), '', ob_get_clean()); |
|
610 | - } |
|
611 | - |
|
612 | - /** |
|
613 | - * Get inline script used if bootstrap file browser enqueued. |
|
614 | - * |
|
615 | - * If this remains small then its best to use this than to add another JS file. |
|
616 | - */ |
|
617 | - public function inline_script_file_browser(){ |
|
618 | - ob_start(); |
|
619 | - ?> |
|
606 | + return str_replace( array( |
|
607 | + '<script>', |
|
608 | + '</script>' |
|
609 | + ), '', ob_get_clean()); |
|
610 | + } |
|
611 | + |
|
612 | + /** |
|
613 | + * Get inline script used if bootstrap file browser enqueued. |
|
614 | + * |
|
615 | + * If this remains small then its best to use this than to add another JS file. |
|
616 | + */ |
|
617 | + public function inline_script_file_browser(){ |
|
618 | + ob_start(); |
|
619 | + ?> |
|
620 | 620 | <script> |
621 | 621 | // run on doc ready |
622 | 622 | jQuery(document).ready(function () { |
@@ -624,282 +624,282 @@ discard block |
||
624 | 624 | }); |
625 | 625 | </script> |
626 | 626 | <?php |
627 | - $output = ob_get_clean(); |
|
627 | + $output = ob_get_clean(); |
|
628 | 628 | |
629 | - /* |
|
629 | + /* |
|
630 | 630 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
631 | 631 | */ |
632 | - return str_replace( array( |
|
633 | - '<script>', |
|
634 | - '</script>' |
|
635 | - ), '', $output ); |
|
636 | - } |
|
632 | + return str_replace( array( |
|
633 | + '<script>', |
|
634 | + '</script>' |
|
635 | + ), '', $output ); |
|
636 | + } |
|
637 | 637 | |
638 | - /** |
|
639 | - * Adds the Font Awesome JS. |
|
640 | - */ |
|
641 | - public function enqueue_scripts() { |
|
638 | + /** |
|
639 | + * Adds the Font Awesome JS. |
|
640 | + */ |
|
641 | + public function enqueue_scripts() { |
|
642 | 642 | |
643 | - if( is_admin() && !$this->is_aui_screen()){ |
|
644 | - // don't add wp-admin scripts if not requested to |
|
645 | - }else { |
|
643 | + if( is_admin() && !$this->is_aui_screen()){ |
|
644 | + // don't add wp-admin scripts if not requested to |
|
645 | + }else { |
|
646 | 646 | |
647 | - $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend'; |
|
647 | + $js_setting = current_action() == 'wp_enqueue_scripts' ? 'js' : 'js_backend'; |
|
648 | 648 | |
649 | - $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : ''; |
|
649 | + $bs_ver = $this->settings['bs_ver'] == '5' ? '-v5' : ''; |
|
650 | 650 | |
651 | - // select2 |
|
652 | - wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version ); |
|
651 | + // select2 |
|
652 | + wp_register_script( 'select2', $this->url . 'assets/js/select2.min.js', array( 'jquery' ), $this->select2_version ); |
|
653 | 653 | |
654 | - // flatpickr |
|
655 | - wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version ); |
|
654 | + // flatpickr |
|
655 | + wp_register_script( 'flatpickr', $this->url . 'assets/js/flatpickr.min.js', array(), $this->version ); |
|
656 | 656 | |
657 | - // iconpicker |
|
658 | - if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) { |
|
659 | - wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version ); |
|
660 | - }else{ |
|
661 | - wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version ); |
|
662 | - } |
|
657 | + // iconpicker |
|
658 | + if ( defined( 'FAS_ICONPICKER_JS_URL' ) ) { |
|
659 | + wp_register_script( 'iconpicker', FAS_ICONPICKER_JS_URL, array(), $this->version ); |
|
660 | + }else{ |
|
661 | + wp_register_script( 'iconpicker', $this->url . 'assets/js/fa-iconpicker.min.js', array(), $this->version ); |
|
662 | + } |
|
663 | 663 | |
664 | - // Bootstrap file browser |
|
665 | - wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version ); |
|
666 | - wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() ); |
|
667 | - |
|
668 | - $load_inline = false; |
|
669 | - |
|
670 | - if ( $this->settings[ $js_setting ] == 'core-popper' ) { |
|
671 | - // Bootstrap bundle |
|
672 | - $url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js'; |
|
673 | - wp_register_script( 'bootstrap-js-bundle', $url, array( |
|
674 | - 'select2', |
|
675 | - 'jquery' |
|
676 | - ), $this->version, $this->is_bs3_compat() ); |
|
677 | - // if in admin then add to footer for compatibility. |
|
678 | - is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' ); |
|
679 | - $script = $this->inline_script(); |
|
680 | - wp_add_inline_script( 'bootstrap-js-bundle', $script ); |
|
681 | - } elseif ( $this->settings[ $js_setting ] == 'popper' ) { |
|
682 | - $url = $this->url . 'assets/js/popper.min.js'; //@todo we need to update this to bs5 |
|
683 | - wp_register_script( 'bootstrap-js-popper', $url, array( 'select2', 'jquery' ), $this->version ); |
|
684 | - wp_enqueue_script( 'bootstrap-js-popper' ); |
|
685 | - $load_inline = true; |
|
686 | - } else { |
|
687 | - $load_inline = true; |
|
688 | - } |
|
664 | + // Bootstrap file browser |
|
665 | + wp_register_script( 'aui-custom-file-input', $url = $this->url . 'assets/js/bs-custom-file-input.min.js', array( 'jquery' ), $this->select2_version ); |
|
666 | + wp_add_inline_script( 'aui-custom-file-input', $this->inline_script_file_browser() ); |
|
667 | + |
|
668 | + $load_inline = false; |
|
669 | + |
|
670 | + if ( $this->settings[ $js_setting ] == 'core-popper' ) { |
|
671 | + // Bootstrap bundle |
|
672 | + $url = $this->url . 'assets' . $bs_ver . '/js/bootstrap.bundle.min.js'; |
|
673 | + wp_register_script( 'bootstrap-js-bundle', $url, array( |
|
674 | + 'select2', |
|
675 | + 'jquery' |
|
676 | + ), $this->version, $this->is_bs3_compat() ); |
|
677 | + // if in admin then add to footer for compatibility. |
|
678 | + is_admin() ? wp_enqueue_script( 'bootstrap-js-bundle', '', null, null, true ) : wp_enqueue_script( 'bootstrap-js-bundle' ); |
|
679 | + $script = $this->inline_script(); |
|
680 | + wp_add_inline_script( 'bootstrap-js-bundle', $script ); |
|
681 | + } elseif ( $this->settings[ $js_setting ] == 'popper' ) { |
|
682 | + $url = $this->url . 'assets/js/popper.min.js'; //@todo we need to update this to bs5 |
|
683 | + wp_register_script( 'bootstrap-js-popper', $url, array( 'select2', 'jquery' ), $this->version ); |
|
684 | + wp_enqueue_script( 'bootstrap-js-popper' ); |
|
685 | + $load_inline = true; |
|
686 | + } else { |
|
687 | + $load_inline = true; |
|
688 | + } |
|
689 | 689 | |
690 | - // Load needed inline scripts by faking the loading of a script if the main script is not being loaded |
|
691 | - if ( $load_inline ) { |
|
692 | - wp_register_script( 'bootstrap-dummy', '', array( 'select2', 'jquery' ) ); |
|
693 | - wp_enqueue_script( 'bootstrap-dummy' ); |
|
694 | - $script = $this->inline_script(); |
|
695 | - wp_add_inline_script( 'bootstrap-dummy', $script ); |
|
696 | - } |
|
697 | - } |
|
698 | - |
|
699 | - } |
|
700 | - |
|
701 | - /** |
|
702 | - * Enqueue flatpickr if called. |
|
703 | - */ |
|
704 | - public function enqueue_flatpickr(){ |
|
705 | - wp_enqueue_style( 'flatpickr' ); |
|
706 | - wp_enqueue_script( 'flatpickr' ); |
|
707 | - } |
|
708 | - |
|
709 | - /** |
|
710 | - * Enqueue iconpicker if called. |
|
711 | - */ |
|
712 | - public function enqueue_iconpicker(){ |
|
713 | - wp_enqueue_style( 'iconpicker' ); |
|
714 | - wp_enqueue_script( 'iconpicker' ); |
|
715 | - } |
|
716 | - |
|
717 | - /** |
|
718 | - * Get the url path to the current folder. |
|
719 | - * |
|
720 | - * @return string |
|
721 | - */ |
|
722 | - public function get_url() { |
|
723 | - $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) ); |
|
724 | - $content_url = untrailingslashit( WP_CONTENT_URL ); |
|
725 | - |
|
726 | - // Replace http:// to https://. |
|
727 | - if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) { |
|
728 | - $content_url = str_replace( 'http://', 'https://', $content_url ); |
|
729 | - } |
|
730 | - |
|
731 | - // Check if we are inside a plugin |
|
732 | - $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
733 | - $url = str_replace( $content_dir, $content_url, $file_dir ); |
|
734 | - |
|
735 | - return trailingslashit( $url ); |
|
736 | - } |
|
737 | - |
|
738 | - /** |
|
739 | - * Get the url path to the current folder. |
|
740 | - * |
|
741 | - * @return string |
|
742 | - */ |
|
743 | - public function get_url_old() { |
|
744 | - |
|
745 | - $url = ''; |
|
746 | - // check if we are inside a plugin |
|
747 | - $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
748 | - |
|
749 | - // add check in-case user has changed wp-content dir name. |
|
750 | - $wp_content_folder_name = basename(WP_CONTENT_DIR); |
|
751 | - $dir_parts = explode("/$wp_content_folder_name/",$file_dir); |
|
752 | - $url_parts = explode("/$wp_content_folder_name/",plugins_url()); |
|
753 | - |
|
754 | - if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
755 | - $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] ); |
|
756 | - } |
|
757 | - |
|
758 | - return $url; |
|
759 | - } |
|
760 | - |
|
761 | - /** |
|
762 | - * Register the database settings with WordPress. |
|
763 | - */ |
|
764 | - public function register_settings() { |
|
765 | - register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' ); |
|
766 | - } |
|
767 | - |
|
768 | - /** |
|
769 | - * Add the WordPress settings menu item. |
|
770 | - * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
771 | - */ |
|
772 | - public function menu_item() { |
|
773 | - $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
774 | - call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array( |
|
775 | - $this, |
|
776 | - 'settings_page' |
|
777 | - ) ); |
|
778 | - } |
|
779 | - |
|
780 | - /** |
|
781 | - * Get a list of themes and their default JS settings. |
|
782 | - * |
|
783 | - * @return array |
|
784 | - */ |
|
785 | - public function theme_js_settings(){ |
|
786 | - return array( |
|
787 | - 'ayetheme' => 'popper', |
|
788 | - 'listimia' => 'required', |
|
789 | - 'listimia_backend' => 'core-popper', |
|
790 | - //'avada' => 'required', // removed as we now add compatibility |
|
791 | - ); |
|
792 | - } |
|
793 | - |
|
794 | - /** |
|
690 | + // Load needed inline scripts by faking the loading of a script if the main script is not being loaded |
|
691 | + if ( $load_inline ) { |
|
692 | + wp_register_script( 'bootstrap-dummy', '', array( 'select2', 'jquery' ) ); |
|
693 | + wp_enqueue_script( 'bootstrap-dummy' ); |
|
694 | + $script = $this->inline_script(); |
|
695 | + wp_add_inline_script( 'bootstrap-dummy', $script ); |
|
696 | + } |
|
697 | + } |
|
698 | + |
|
699 | + } |
|
700 | + |
|
701 | + /** |
|
702 | + * Enqueue flatpickr if called. |
|
703 | + */ |
|
704 | + public function enqueue_flatpickr(){ |
|
705 | + wp_enqueue_style( 'flatpickr' ); |
|
706 | + wp_enqueue_script( 'flatpickr' ); |
|
707 | + } |
|
708 | + |
|
709 | + /** |
|
710 | + * Enqueue iconpicker if called. |
|
711 | + */ |
|
712 | + public function enqueue_iconpicker(){ |
|
713 | + wp_enqueue_style( 'iconpicker' ); |
|
714 | + wp_enqueue_script( 'iconpicker' ); |
|
715 | + } |
|
716 | + |
|
717 | + /** |
|
718 | + * Get the url path to the current folder. |
|
719 | + * |
|
720 | + * @return string |
|
721 | + */ |
|
722 | + public function get_url() { |
|
723 | + $content_dir = wp_normalize_path( untrailingslashit( WP_CONTENT_DIR ) ); |
|
724 | + $content_url = untrailingslashit( WP_CONTENT_URL ); |
|
725 | + |
|
726 | + // Replace http:// to https://. |
|
727 | + if ( strpos( $content_url, 'http://' ) === 0 && strpos( plugins_url(), 'https://' ) === 0 ) { |
|
728 | + $content_url = str_replace( 'http://', 'https://', $content_url ); |
|
729 | + } |
|
730 | + |
|
731 | + // Check if we are inside a plugin |
|
732 | + $file_dir = str_replace( "/includes", "", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
733 | + $url = str_replace( $content_dir, $content_url, $file_dir ); |
|
734 | + |
|
735 | + return trailingslashit( $url ); |
|
736 | + } |
|
737 | + |
|
738 | + /** |
|
739 | + * Get the url path to the current folder. |
|
740 | + * |
|
741 | + * @return string |
|
742 | + */ |
|
743 | + public function get_url_old() { |
|
744 | + |
|
745 | + $url = ''; |
|
746 | + // check if we are inside a plugin |
|
747 | + $file_dir = str_replace( "/includes","", wp_normalize_path( dirname( __FILE__ ) ) ); |
|
748 | + |
|
749 | + // add check in-case user has changed wp-content dir name. |
|
750 | + $wp_content_folder_name = basename(WP_CONTENT_DIR); |
|
751 | + $dir_parts = explode("/$wp_content_folder_name/",$file_dir); |
|
752 | + $url_parts = explode("/$wp_content_folder_name/",plugins_url()); |
|
753 | + |
|
754 | + if(!empty($url_parts[0]) && !empty($dir_parts[1])){ |
|
755 | + $url = trailingslashit( $url_parts[0]."/$wp_content_folder_name/".$dir_parts[1] ); |
|
756 | + } |
|
757 | + |
|
758 | + return $url; |
|
759 | + } |
|
760 | + |
|
761 | + /** |
|
762 | + * Register the database settings with WordPress. |
|
763 | + */ |
|
764 | + public function register_settings() { |
|
765 | + register_setting( 'ayecode-ui-settings', 'ayecode-ui-settings' ); |
|
766 | + } |
|
767 | + |
|
768 | + /** |
|
769 | + * Add the WordPress settings menu item. |
|
770 | + * @since 1.0.10 Calling function name direct will fail theme check so we don't. |
|
771 | + */ |
|
772 | + public function menu_item() { |
|
773 | + $menu_function = 'add' . '_' . 'options' . '_' . 'page'; // won't pass theme check if function name present in theme |
|
774 | + call_user_func( $menu_function, $this->name, $this->name, 'manage_options', 'ayecode-ui-settings', array( |
|
775 | + $this, |
|
776 | + 'settings_page' |
|
777 | + ) ); |
|
778 | + } |
|
779 | + |
|
780 | + /** |
|
781 | + * Get a list of themes and their default JS settings. |
|
782 | + * |
|
783 | + * @return array |
|
784 | + */ |
|
785 | + public function theme_js_settings(){ |
|
786 | + return array( |
|
787 | + 'ayetheme' => 'popper', |
|
788 | + 'listimia' => 'required', |
|
789 | + 'listimia_backend' => 'core-popper', |
|
790 | + //'avada' => 'required', // removed as we now add compatibility |
|
791 | + ); |
|
792 | + } |
|
793 | + |
|
794 | + /** |
|
795 | 795 | * Get the date the site was installed. |
796 | 796 | * |
797 | - * @return false|string |
|
798 | - */ |
|
797 | + * @return false|string |
|
798 | + */ |
|
799 | 799 | public function get_site_install_date() { |
800 | - global $wpdb; // This gives you access to the WordPress database object |
|
800 | + global $wpdb; // This gives you access to the WordPress database object |
|
801 | 801 | |
802 | - // Prepare the SQL query to get the oldest registration date |
|
803 | - $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}"; |
|
802 | + // Prepare the SQL query to get the oldest registration date |
|
803 | + $query = "SELECT MIN(user_registered) AS oldest_registration_date FROM {$wpdb->users}"; |
|
804 | 804 | |
805 | - // Execute the query |
|
806 | - $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching |
|
805 | + // Execute the query |
|
806 | + $date = $wpdb->get_var( $query ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching |
|
807 | 807 | |
808 | - return $date ? $date : false; |
|
808 | + return $date ? $date : false; |
|
809 | 809 | } |
810 | 810 | |
811 | - /** |
|
812 | - * Show admin notice if backend scripts not loaded. |
|
813 | - */ |
|
814 | - public function show_admin_version_notice(){ |
|
815 | - $fix_url = admin_url("options-general.php?page=ayecode-ui-settings" ); |
|
816 | - $button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>'; |
|
817 | - $message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button; |
|
818 | - echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>'; |
|
819 | - } |
|
820 | - |
|
821 | - /** |
|
822 | - * Get the current Font Awesome output settings. |
|
823 | - * |
|
824 | - * @return array The array of settings. |
|
825 | - */ |
|
826 | - public function get_settings() { |
|
827 | - |
|
828 | - $db_settings = get_option( 'ayecode-ui-settings' ); |
|
811 | + /** |
|
812 | + * Show admin notice if backend scripts not loaded. |
|
813 | + */ |
|
814 | + public function show_admin_version_notice(){ |
|
815 | + $fix_url = admin_url("options-general.php?page=ayecode-ui-settings" ); |
|
816 | + $button = '<a href="'.esc_url($fix_url).'" class="button-primary">View Settings</a>'; |
|
817 | + $message = __( '<b>Style Issue:</b> AyeCode UI has changed its default version from v4 to v5, if you notice unwanted style changes, please revert to v4 (saving the settings page will remove this notice)')." " .$button; |
|
818 | + echo '<div class="notice notice-error aui-settings-error-notice"><p>'. wp_kses_post( $message ).'</p></div>'; |
|
819 | + } |
|
820 | + |
|
821 | + /** |
|
822 | + * Get the current Font Awesome output settings. |
|
823 | + * |
|
824 | + * @return array The array of settings. |
|
825 | + */ |
|
826 | + public function get_settings() { |
|
827 | + |
|
828 | + $db_settings = get_option( 'ayecode-ui-settings' ); |
|
829 | 829 | |
830 | 830 | // Maybe show default version notice |
831 | - $site_install_date = new DateTime( self::get_site_install_date() ); |
|
832 | - $switch_over_date = new DateTime("2024-02-01"); |
|
833 | - if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) { |
|
834 | - add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) ); |
|
835 | - } |
|
836 | - |
|
837 | - $js_default = 'core-popper'; |
|
838 | - $js_default_backend = $js_default; |
|
839 | - |
|
840 | - // maybe set defaults (if no settings set) |
|
841 | - if(empty($db_settings)){ |
|
842 | - $active_theme = strtolower( get_template() ); // active parent theme. |
|
843 | - $theme_js_settings = self::theme_js_settings(); |
|
844 | - if(isset($theme_js_settings[$active_theme])){ |
|
845 | - $js_default = $theme_js_settings[$active_theme]; |
|
846 | - $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default; |
|
847 | - } |
|
848 | - } |
|
831 | + $site_install_date = new DateTime( self::get_site_install_date() ); |
|
832 | + $switch_over_date = new DateTime("2024-02-01"); |
|
833 | + if ( empty( $db_settings ) && $site_install_date < $switch_over_date ) { |
|
834 | + add_action( 'admin_notices', array( $this, 'show_admin_version_notice' ) ); |
|
835 | + } |
|
849 | 836 | |
850 | - /** |
|
851 | - * Filter the default settings. |
|
852 | - */ |
|
853 | - $defaults = apply_filters( 'ayecode-ui-default-settings', array( |
|
854 | - 'css' => 'compatibility', // core, compatibility |
|
855 | - 'js' => $js_default, // js to load, core-popper, popper |
|
856 | - 'html_font_size' => '16', // js to load, core-popper, popper |
|
857 | - 'css_backend' => 'compatibility', // core, compatibility |
|
858 | - 'js_backend' => $js_default_backend, // js to load, core-popper, popper |
|
859 | - 'disable_admin' => '', // URL snippets to disable loading on admin |
|
837 | + $js_default = 'core-popper'; |
|
838 | + $js_default_backend = $js_default; |
|
839 | + |
|
840 | + // maybe set defaults (if no settings set) |
|
841 | + if(empty($db_settings)){ |
|
842 | + $active_theme = strtolower( get_template() ); // active parent theme. |
|
843 | + $theme_js_settings = self::theme_js_settings(); |
|
844 | + if(isset($theme_js_settings[$active_theme])){ |
|
845 | + $js_default = $theme_js_settings[$active_theme]; |
|
846 | + $js_default_backend = isset($theme_js_settings[$active_theme."_backend"]) ? $theme_js_settings[$active_theme."_backend"] : $js_default; |
|
847 | + } |
|
848 | + } |
|
849 | + |
|
850 | + /** |
|
851 | + * Filter the default settings. |
|
852 | + */ |
|
853 | + $defaults = apply_filters( 'ayecode-ui-default-settings', array( |
|
854 | + 'css' => 'compatibility', // core, compatibility |
|
855 | + 'js' => $js_default, // js to load, core-popper, popper |
|
856 | + 'html_font_size' => '16', // js to load, core-popper, popper |
|
857 | + 'css_backend' => 'compatibility', // core, compatibility |
|
858 | + 'js_backend' => $js_default_backend, // js to load, core-popper, popper |
|
859 | + 'disable_admin' => '', // URL snippets to disable loading on admin |
|
860 | 860 | 'bs_ver' => '5', // The default bootstrap version to sue by default |
861 | - ), $db_settings ); |
|
861 | + ), $db_settings ); |
|
862 | 862 | |
863 | - $settings = wp_parse_args( $db_settings, $defaults ); |
|
863 | + $settings = wp_parse_args( $db_settings, $defaults ); |
|
864 | 864 | |
865 | - /** |
|
866 | - * Filter the Bootstrap settings. |
|
867 | - * |
|
868 | - * @todo if we add this filer people might use it and then it defeats the purpose of this class :/ |
|
869 | - */ |
|
870 | - return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults ); |
|
871 | - } |
|
865 | + /** |
|
866 | + * Filter the Bootstrap settings. |
|
867 | + * |
|
868 | + * @todo if we add this filer people might use it and then it defeats the purpose of this class :/ |
|
869 | + */ |
|
870 | + return $this->settings = apply_filters( 'ayecode-ui-settings', $settings, $db_settings, $defaults ); |
|
871 | + } |
|
872 | 872 | |
873 | 873 | |
874 | - /** |
|
875 | - * The settings page html output. |
|
876 | - */ |
|
877 | - public function settings_page() { |
|
878 | - if ( ! current_user_can( 'manage_options' ) ) { |
|
879 | - wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) ); |
|
880 | - } |
|
874 | + /** |
|
875 | + * The settings page html output. |
|
876 | + */ |
|
877 | + public function settings_page() { |
|
878 | + if ( ! current_user_can( 'manage_options' ) ) { |
|
879 | + wp_die( esc_attr__( 'You do not have sufficient permissions to access this page.', 'ayecode-connect' ) ); |
|
880 | + } |
|
881 | 881 | $overrides = apply_filters( 'ayecode-ui-settings', array(), array(), array() ); |
882 | 882 | |
883 | - ?> |
|
883 | + ?> |
|
884 | 884 | <div class="wrap"> |
885 | 885 | <h1><?php echo esc_attr( $this->name ); ?></h1> |
886 | 886 | <p><?php echo esc_html( apply_filters( 'ayecode-ui-settings-message', __("Here you can adjust settings if you are having compatibility issues.", 'ayecode-connect' ) ) );?></p> |
887 | 887 | <form method="post" action="options.php"> |
888 | 888 | <?php |
889 | - settings_fields( 'ayecode-ui-settings' ); |
|
890 | - do_settings_sections( 'ayecode-ui-settings' ); |
|
891 | - ?> |
|
889 | + settings_fields( 'ayecode-ui-settings' ); |
|
890 | + do_settings_sections( 'ayecode-ui-settings' ); |
|
891 | + ?> |
|
892 | 892 | |
893 | 893 | <h2><?php esc_html_e( 'BootStrap Version', 'ayecode-connect' ); ?></h2> |
894 | 894 | <p><?php echo esc_html( apply_filters( 'ayecode-ui-version-settings-message', __("V5 is recommended, however if you have another plugin installed using v4, you may need to use v4 also.", 'ayecode-connect' ) ) );?></p> |
895 | 895 | <div class="bsui"><?php |
896 | - if ( ! empty( $overrides ) ) { |
|
897 | - echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
898 | - 'type'=> 'info', |
|
899 | - 'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' ) |
|
900 | - )); |
|
901 | - } |
|
902 | - ?> |
|
896 | + if ( ! empty( $overrides ) ) { |
|
897 | + echo aui()->alert(array( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
898 | + 'type'=> 'info', |
|
899 | + 'content'=> esc_attr__("Some options are disabled as your current theme is overriding them.", 'ayecode-connect' ) |
|
900 | + )); |
|
901 | + } |
|
902 | + ?> |
|
903 | 903 | </div> |
904 | 904 | <table class="form-table wpbs-table-version-settings"> |
905 | 905 | <tr valign="top"> |
@@ -983,77 +983,77 @@ discard block |
||
983 | 983 | </table> |
984 | 984 | |
985 | 985 | <?php |
986 | - submit_button(); |
|
987 | - ?> |
|
986 | + submit_button(); |
|
987 | + ?> |
|
988 | 988 | </form> |
989 | 989 | <div id="wpbs-version" data-aui-source="<?php echo esc_attr( $this->get_load_source() ); ?>"><?php echo esc_html( $this->version ); ?></div> |
990 | 990 | </div> |
991 | 991 | <?php |
992 | - } |
|
992 | + } |
|
993 | 993 | |
994 | 994 | public function get_load_source(){ |
995 | - $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) ); |
|
996 | - $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) ); |
|
997 | - |
|
998 | - // Find source plugin/theme of SD |
|
999 | - $source = array(); |
|
1000 | - if ( strpos( $file, $plugins_dir ) !== false ) { |
|
1001 | - $source = explode( "/", plugin_basename( $file ) ); |
|
1002 | - } else if ( function_exists( 'get_theme_root' ) ) { |
|
1003 | - $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) ); |
|
1004 | - |
|
1005 | - if ( strpos( $file, $themes_dir ) !== false ) { |
|
1006 | - $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) ); |
|
1007 | - } |
|
1008 | - } |
|
995 | + $file = str_replace( array( "/", "\\" ), "/", realpath( __FILE__ ) ); |
|
996 | + $plugins_dir = str_replace( array( "/", "\\" ), "/", realpath( WP_PLUGIN_DIR ) ); |
|
997 | + |
|
998 | + // Find source plugin/theme of SD |
|
999 | + $source = array(); |
|
1000 | + if ( strpos( $file, $plugins_dir ) !== false ) { |
|
1001 | + $source = explode( "/", plugin_basename( $file ) ); |
|
1002 | + } else if ( function_exists( 'get_theme_root' ) ) { |
|
1003 | + $themes_dir = str_replace( array( "/", "\\" ), "/", realpath( get_theme_root() ) ); |
|
1004 | + |
|
1005 | + if ( strpos( $file, $themes_dir ) !== false ) { |
|
1006 | + $source = explode( "/", ltrim( str_replace( $themes_dir, "", $file ), "/" ) ); |
|
1007 | + } |
|
1008 | + } |
|
1009 | 1009 | |
1010 | 1010 | return isset($source[0]) ? esc_attr($source[0]) : ''; |
1011 | 1011 | } |
1012 | 1012 | |
1013 | - public function customizer_settings($wp_customize){ |
|
1014 | - $wp_customize->add_section('aui_settings', array( |
|
1015 | - 'title' => __('AyeCode UI', 'ayecode-connect' ), |
|
1016 | - 'priority' => 120, |
|
1017 | - )); |
|
1018 | - |
|
1019 | - // ============================= |
|
1020 | - // = Color Picker = |
|
1021 | - // ============================= |
|
1022 | - $wp_customize->add_setting('aui_options[color_primary]', array( |
|
1023 | - 'default' => AUI_PRIMARY_COLOR, |
|
1024 | - 'sanitize_callback' => 'sanitize_hex_color', |
|
1025 | - 'capability' => 'edit_theme_options', |
|
1026 | - 'type' => 'option', |
|
1027 | - 'transport' => 'refresh', |
|
1028 | - )); |
|
1029 | - $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array( |
|
1030 | - 'label' => __('Primary Color', 'ayecode-connect' ), |
|
1031 | - 'section' => 'aui_settings', |
|
1032 | - 'settings' => 'aui_options[color_primary]', |
|
1033 | - ))); |
|
1034 | - |
|
1035 | - $wp_customize->add_setting('aui_options[color_secondary]', array( |
|
1036 | - 'default' => '#6c757d', |
|
1037 | - 'sanitize_callback' => 'sanitize_hex_color', |
|
1038 | - 'capability' => 'edit_theme_options', |
|
1039 | - 'type' => 'option', |
|
1040 | - 'transport' => 'refresh', |
|
1041 | - )); |
|
1042 | - $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array( |
|
1043 | - 'label' => __('Secondary Color', 'ayecode-connect' ), |
|
1044 | - 'section' => 'aui_settings', |
|
1045 | - 'settings' => 'aui_options[color_secondary]', |
|
1046 | - ))); |
|
1047 | - } |
|
1048 | - |
|
1049 | - /** |
|
1050 | - * CSS to help with conflict issues with other plugins and themes using bootstrap v3. |
|
1051 | - * |
|
1052 | - * @return mixed |
|
1053 | - */ |
|
1054 | - public static function bs3_compat_css() { |
|
1055 | - ob_start(); |
|
1056 | - ?> |
|
1013 | + public function customizer_settings($wp_customize){ |
|
1014 | + $wp_customize->add_section('aui_settings', array( |
|
1015 | + 'title' => __('AyeCode UI', 'ayecode-connect' ), |
|
1016 | + 'priority' => 120, |
|
1017 | + )); |
|
1018 | + |
|
1019 | + // ============================= |
|
1020 | + // = Color Picker = |
|
1021 | + // ============================= |
|
1022 | + $wp_customize->add_setting('aui_options[color_primary]', array( |
|
1023 | + 'default' => AUI_PRIMARY_COLOR, |
|
1024 | + 'sanitize_callback' => 'sanitize_hex_color', |
|
1025 | + 'capability' => 'edit_theme_options', |
|
1026 | + 'type' => 'option', |
|
1027 | + 'transport' => 'refresh', |
|
1028 | + )); |
|
1029 | + $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_primary', array( |
|
1030 | + 'label' => __('Primary Color', 'ayecode-connect' ), |
|
1031 | + 'section' => 'aui_settings', |
|
1032 | + 'settings' => 'aui_options[color_primary]', |
|
1033 | + ))); |
|
1034 | + |
|
1035 | + $wp_customize->add_setting('aui_options[color_secondary]', array( |
|
1036 | + 'default' => '#6c757d', |
|
1037 | + 'sanitize_callback' => 'sanitize_hex_color', |
|
1038 | + 'capability' => 'edit_theme_options', |
|
1039 | + 'type' => 'option', |
|
1040 | + 'transport' => 'refresh', |
|
1041 | + )); |
|
1042 | + $wp_customize->add_control( new WP_Customize_Color_Control($wp_customize, 'color_secondary', array( |
|
1043 | + 'label' => __('Secondary Color', 'ayecode-connect' ), |
|
1044 | + 'section' => 'aui_settings', |
|
1045 | + 'settings' => 'aui_options[color_secondary]', |
|
1046 | + ))); |
|
1047 | + } |
|
1048 | + |
|
1049 | + /** |
|
1050 | + * CSS to help with conflict issues with other plugins and themes using bootstrap v3. |
|
1051 | + * |
|
1052 | + * @return mixed |
|
1053 | + */ |
|
1054 | + public static function bs3_compat_css() { |
|
1055 | + ob_start(); |
|
1056 | + ?> |
|
1057 | 1057 | <style> |
1058 | 1058 | /* Bootstrap 3 compatibility */ |
1059 | 1059 | body.modal-open .modal-backdrop.show:not(.in) {opacity:0.5;} |
@@ -1082,55 +1082,55 @@ discard block |
||
1082 | 1082 | <?php } ?> |
1083 | 1083 | </style> |
1084 | 1084 | <?php |
1085 | - return str_replace( array( |
|
1086 | - '<style>', |
|
1087 | - '</style>' |
|
1088 | - ), '', self::minify_css( ob_get_clean() ) ); |
|
1089 | - } |
|
1085 | + return str_replace( array( |
|
1086 | + '<style>', |
|
1087 | + '</style>' |
|
1088 | + ), '', self::minify_css( ob_get_clean() ) ); |
|
1089 | + } |
|
1090 | 1090 | |
1091 | 1091 | |
1092 | - public static function custom_css($compatibility = true) { |
|
1092 | + public static function custom_css($compatibility = true) { |
|
1093 | 1093 | global $aui_bs5; |
1094 | 1094 | |
1095 | - $colors = array(); |
|
1096 | - if ( defined( 'BLOCKSTRAP_VERSION' ) ) { |
|
1095 | + $colors = array(); |
|
1096 | + if ( defined( 'BLOCKSTRAP_VERSION' ) ) { |
|
1097 | 1097 | |
1098 | 1098 | |
1099 | - $setting = wp_get_global_settings(); |
|
1099 | + $setting = wp_get_global_settings(); |
|
1100 | 1100 | |
1101 | 1101 | // print_r(wp_get_global_styles());//exit; |
1102 | 1102 | // print_r(get_default_block_editor_settings());exit; |
1103 | 1103 | |
1104 | 1104 | // print_r($setting);echo '###';exit; |
1105 | - if(!empty($setting['color']['palette']['theme'])){ |
|
1106 | - foreach($setting['color']['palette']['theme'] as $color){ |
|
1107 | - $colors[$color['slug']] = esc_attr($color['color']); |
|
1108 | - } |
|
1109 | - } |
|
1105 | + if(!empty($setting['color']['palette']['theme'])){ |
|
1106 | + foreach($setting['color']['palette']['theme'] as $color){ |
|
1107 | + $colors[$color['slug']] = esc_attr($color['color']); |
|
1108 | + } |
|
1109 | + } |
|
1110 | 1110 | |
1111 | - if(!empty($setting['color']['palette']['custom'])){ |
|
1112 | - foreach($setting['color']['palette']['custom'] as $color){ |
|
1113 | - $colors[$color['slug']] = esc_attr($color['color']); |
|
1114 | - } |
|
1115 | - } |
|
1116 | - }else{ |
|
1117 | - $settings = get_option('aui_options'); |
|
1118 | - $colors = array( |
|
1119 | - 'primary' => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR, |
|
1120 | - 'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR |
|
1121 | - ); |
|
1122 | - } |
|
1111 | + if(!empty($setting['color']['palette']['custom'])){ |
|
1112 | + foreach($setting['color']['palette']['custom'] as $color){ |
|
1113 | + $colors[$color['slug']] = esc_attr($color['color']); |
|
1114 | + } |
|
1115 | + } |
|
1116 | + }else{ |
|
1117 | + $settings = get_option('aui_options'); |
|
1118 | + $colors = array( |
|
1119 | + 'primary' => ! empty( $settings['color_primary'] ) ? $settings['color_primary'] : AUI_PRIMARY_COLOR, |
|
1120 | + 'secondary' => ! empty( $settings['color_secondary'] ) ? $settings['color_secondary'] : AUI_SECONDARY_COLOR |
|
1121 | + ); |
|
1122 | + } |
|
1123 | 1123 | |
1124 | - ob_start(); |
|
1124 | + ob_start(); |
|
1125 | 1125 | |
1126 | - ?> |
|
1126 | + ?> |
|
1127 | 1127 | <style> |
1128 | 1128 | <?php |
1129 | 1129 | |
1130 | - // BS v3 compat |
|
1131 | - if( self::is_bs3_compat() ){ |
|
1132 | - echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
1133 | - } |
|
1130 | + // BS v3 compat |
|
1131 | + if( self::is_bs3_compat() ){ |
|
1132 | + echo self::bs3_compat_css(); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
1133 | + } |
|
1134 | 1134 | |
1135 | 1135 | $current_screen = function_exists('get_current_screen' ) ? get_current_screen() : ''; |
1136 | 1136 | $is_fse = false; |
@@ -1138,26 +1138,26 @@ discard block |
||
1138 | 1138 | $is_fse = true; |
1139 | 1139 | } |
1140 | 1140 | |
1141 | - if(!empty($colors)){ |
|
1142 | - $d_colors = self::get_colors(true); |
|
1141 | + if(!empty($colors)){ |
|
1142 | + $d_colors = self::get_colors(true); |
|
1143 | 1143 | |
1144 | 1144 | // $is_fse = !empty($_REQUEST['postType']) && $_REQUEST['postType']=='wp_template'; |
1145 | - foreach($colors as $key => $color ){ |
|
1146 | - if((empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) { |
|
1147 | - $var = $is_fse ? "var(--wp--preset--color--$key)" : $color; |
|
1148 | - $compat = $is_fse ? '.editor-styles-wrapper' : $compatibility; |
|
1149 | - echo $aui_bs5 ? self::css_overwrite_bs5($key,$var,$compat,$color) : self::css_overwrite($key,$var,$compat,$color); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
1150 | - } |
|
1151 | - } |
|
1152 | - // exit; |
|
1153 | - } |
|
1145 | + foreach($colors as $key => $color ){ |
|
1146 | + if((empty( $d_colors[$key]) || $d_colors[$key] != $color) || $is_fse ) { |
|
1147 | + $var = $is_fse ? "var(--wp--preset--color--$key)" : $color; |
|
1148 | + $compat = $is_fse ? '.editor-styles-wrapper' : $compatibility; |
|
1149 | + echo $aui_bs5 ? self::css_overwrite_bs5($key,$var,$compat,$color) : self::css_overwrite($key,$var,$compat,$color); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
1150 | + } |
|
1151 | + } |
|
1152 | + // exit; |
|
1153 | + } |
|
1154 | 1154 | |
1155 | - // Set admin bar z-index lower when modal is open. |
|
1156 | - echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}'; |
|
1155 | + // Set admin bar z-index lower when modal is open. |
|
1156 | + echo ' body.modal-open #wpadminbar{z-index:999}.embed-responsive-16by9 .fluid-width-video-wrapper{padding:0 !important;position:initial}'; |
|
1157 | 1157 | |
1158 | - if(is_admin()){ |
|
1159 | - echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}'; |
|
1160 | - } |
|
1158 | + if(is_admin()){ |
|
1159 | + echo ' body.modal-open #adminmenuwrap{z-index:999} body.modal-open #wpadminbar{z-index:1025}'; |
|
1160 | + } |
|
1161 | 1161 | |
1162 | 1162 | if( $aui_bs5 && defined( 'BLOCKSTRAP_VERSION' ) ){ |
1163 | 1163 | $css = ''; |
@@ -1177,28 +1177,28 @@ discard block |
||
1177 | 1177 | } |
1178 | 1178 | |
1179 | 1179 | // line height |
1180 | - if( !empty( $theme_settings['typography']['lineHeight'] ) ){ |
|
1180 | + if( !empty( $theme_settings['typography']['lineHeight'] ) ){ |
|
1181 | 1181 | $css .= '--bs-body-line-height: ' . esc_attr( $theme_settings['typography']['lineHeight'] ) . ';'; |
1182 | 1182 | } |
1183 | 1183 | |
1184 | 1184 | |
1185 | - // font weight |
|
1186 | - if( !empty( $theme_settings['typography']['fontWeight'] ) ){ |
|
1185 | + // font weight |
|
1186 | + if( !empty( $theme_settings['typography']['fontWeight'] ) ){ |
|
1187 | 1187 | $css .= '--bs-body-font-weight: ' . esc_attr( $theme_settings['typography']['fontWeight'] ) . ';'; |
1188 | 1188 | } |
1189 | 1189 | |
1190 | 1190 | // Background |
1191 | - if( !empty( $theme_settings['color']['background'] ) ){ |
|
1191 | + if( !empty( $theme_settings['color']['background'] ) ){ |
|
1192 | 1192 | $css .= '--bs-body-bg: ' . esc_attr( $theme_settings['color']['background'] ) . ';'; |
1193 | 1193 | } |
1194 | 1194 | |
1195 | - // Background Gradient |
|
1196 | - if( !empty( $theme_settings['color']['gradient'] ) ){ |
|
1195 | + // Background Gradient |
|
1196 | + if( !empty( $theme_settings['color']['gradient'] ) ){ |
|
1197 | 1197 | $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';'; |
1198 | 1198 | } |
1199 | 1199 | |
1200 | - // Background Gradient |
|
1201 | - if( !empty( $theme_settings['color']['gradient'] ) ){ |
|
1200 | + // Background Gradient |
|
1201 | + if( !empty( $theme_settings['color']['gradient'] ) ){ |
|
1202 | 1202 | $css .= 'background: ' . esc_attr( $theme_settings['color']['gradient'] ) . ';'; |
1203 | 1203 | } |
1204 | 1204 | |
@@ -1236,7 +1236,7 @@ discard block |
||
1236 | 1236 | $headings_css .= 'background: ' . esc_attr( $theme_settings['elements']['heading']['color']['background'] ) . ';'; |
1237 | 1237 | } |
1238 | 1238 | |
1239 | - // heading font family |
|
1239 | + // heading font family |
|
1240 | 1240 | if( !empty( $theme_settings['elements']['heading']['typography']['fontFamily'] ) ){ |
1241 | 1241 | $headings_css .= 'font-family: ' . esc_attr( $theme_settings['elements']['heading']['typography']['fontFamily'] ) . ';'; |
1242 | 1242 | } |
@@ -1249,21 +1249,21 @@ discard block |
||
1249 | 1249 | |
1250 | 1250 | foreach($hs as $hn){ |
1251 | 1251 | $h_css = ''; |
1252 | - if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){ |
|
1252 | + if( !empty( $theme_settings['elements'][$hn]['color']['text'] ) ){ |
|
1253 | 1253 | $h_css .= 'color: ' . esc_attr( $theme_settings['elements'][$hn]['color']['text'] ) . ';'; |
1254 | - } |
|
1254 | + } |
|
1255 | 1255 | |
1256 | - if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){ |
|
1256 | + if( !empty( $theme_settings['elements'][$hn]['typography']['fontSize'] ) ){ |
|
1257 | 1257 | $h_css .= 'font-size: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontSize'] ) . ';'; |
1258 | - } |
|
1258 | + } |
|
1259 | 1259 | |
1260 | - if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){ |
|
1260 | + if( !empty( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) ){ |
|
1261 | 1261 | $h_css .= 'font-family: ' . esc_attr( $theme_settings['elements'][$hn]['typography']['fontFamily'] ) . ';'; |
1262 | - } |
|
1262 | + } |
|
1263 | 1263 | |
1264 | - if($h_css){ |
|
1264 | + if($h_css){ |
|
1265 | 1265 | echo esc_attr( $bep . $hn ) . '{'.esc_attr( $h_css ).'}'; |
1266 | - } |
|
1266 | + } |
|
1267 | 1267 | } |
1268 | 1268 | } |
1269 | 1269 | |
@@ -1274,176 +1274,176 @@ discard block |
||
1274 | 1274 | ?> |
1275 | 1275 | </style> |
1276 | 1276 | <?php |
1277 | - /* |
|
1277 | + /* |
|
1278 | 1278 | * We only add the <script> tags for code highlighting, so we strip them from the output. |
1279 | 1279 | */ |
1280 | - return str_replace( array( |
|
1281 | - '<style>', |
|
1282 | - '</style>' |
|
1283 | - ), '', self::minify_css( ob_get_clean() ) ); |
|
1284 | - } |
|
1285 | - |
|
1286 | - /** |
|
1287 | - * Check if we should add booststrap 3 compatibility changes. |
|
1288 | - * |
|
1289 | - * @return bool |
|
1290 | - */ |
|
1291 | - public static function is_bs3_compat(){ |
|
1292 | - return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION'); |
|
1293 | - } |
|
1294 | - |
|
1295 | - public static function hex_to_rgb( $hex ) { |
|
1296 | - // Remove '#' if present |
|
1297 | - $hex = str_replace( '#', '', $hex ); |
|
1298 | - |
|
1299 | - // Check if input is RGB |
|
1300 | - if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) { |
|
1301 | - $_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) ); |
|
1302 | - |
|
1303 | - $rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ','; |
|
1304 | - $rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ','; |
|
1305 | - $rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' ); |
|
1306 | - |
|
1307 | - return $rgb; |
|
1308 | - } |
|
1309 | - |
|
1310 | - // Convert 3-digit hex to 6-digit hex |
|
1311 | - if ( strlen( $hex ) == 3 ) { |
|
1312 | - $hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 ); |
|
1313 | - } |
|
1314 | - |
|
1315 | - // Convert hex to RGB |
|
1316 | - $r = hexdec( substr( $hex, 0, 2 ) ); |
|
1317 | - $g = hexdec( substr( $hex, 2, 2 ) ); |
|
1318 | - $b = hexdec( substr( $hex, 4, 2 ) ); |
|
1319 | - |
|
1320 | - // Return RGB values as an array |
|
1321 | - return $r . ',' . $g . ',' . $b; |
|
1322 | - } |
|
1323 | - |
|
1324 | - /** |
|
1325 | - * Build the CSS to overwrite a bootstrap color variable. |
|
1326 | - * |
|
1327 | - * @param $type |
|
1328 | - * @param $color_code |
|
1329 | - * @param $compatibility |
|
1330 | - * |
|
1331 | - * @return string |
|
1332 | - */ |
|
1333 | - public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){ |
|
1334 | - global $aui_bs5; |
|
1335 | - |
|
1336 | - $is_var = false; |
|
1337 | - $is_custom = strpos($type, 'custom-') !== false ? true : false; |
|
1338 | - if(!$color_code){return '';} |
|
1339 | - if(strpos($color_code, 'var') !== false){ |
|
1340 | - //if(!sanitize_hex_color($color_code)){ |
|
1341 | - $color_code = esc_attr($color_code); |
|
1342 | - $is_var = true; |
|
1280 | + return str_replace( array( |
|
1281 | + '<style>', |
|
1282 | + '</style>' |
|
1283 | + ), '', self::minify_css( ob_get_clean() ) ); |
|
1284 | + } |
|
1285 | + |
|
1286 | + /** |
|
1287 | + * Check if we should add booststrap 3 compatibility changes. |
|
1288 | + * |
|
1289 | + * @return bool |
|
1290 | + */ |
|
1291 | + public static function is_bs3_compat(){ |
|
1292 | + return defined('AYECODE_UI_BS3_COMPAT') || defined('SVQ_THEME_VERSION') || defined('FUSION_BUILDER_VERSION'); |
|
1293 | + } |
|
1294 | + |
|
1295 | + public static function hex_to_rgb( $hex ) { |
|
1296 | + // Remove '#' if present |
|
1297 | + $hex = str_replace( '#', '', $hex ); |
|
1298 | + |
|
1299 | + // Check if input is RGB |
|
1300 | + if ( strpos( $hex, 'rgba(' ) === 0 || strpos( $hex, 'rgb(' ) === 0 ) { |
|
1301 | + $_rgb = explode( ',', str_replace( array( 'rgba(', 'rgb(', ')' ), '', $hex ) ); |
|
1302 | + |
|
1303 | + $rgb = ( isset( $_rgb[0] ) ? (int) trim( $_rgb[0] ) : '0' ) . ','; |
|
1304 | + $rgb .= ( isset( $_rgb[1] ) ? (int) trim( $_rgb[1] ) : '0' ) . ','; |
|
1305 | + $rgb .= ( isset( $_rgb[2] ) ? (int) trim( $_rgb[2] ) : '0' ); |
|
1306 | + |
|
1307 | + return $rgb; |
|
1308 | + } |
|
1309 | + |
|
1310 | + // Convert 3-digit hex to 6-digit hex |
|
1311 | + if ( strlen( $hex ) == 3 ) { |
|
1312 | + $hex = str_repeat( substr( $hex, 0, 1 ), 2 ) . str_repeat( substr( $hex, 1, 1 ), 2 ) . str_repeat( substr( $hex, 2, 1 ), 2 ); |
|
1313 | + } |
|
1314 | + |
|
1315 | + // Convert hex to RGB |
|
1316 | + $r = hexdec( substr( $hex, 0, 2 ) ); |
|
1317 | + $g = hexdec( substr( $hex, 2, 2 ) ); |
|
1318 | + $b = hexdec( substr( $hex, 4, 2 ) ); |
|
1319 | + |
|
1320 | + // Return RGB values as an array |
|
1321 | + return $r . ',' . $g . ',' . $b; |
|
1322 | + } |
|
1323 | + |
|
1324 | + /** |
|
1325 | + * Build the CSS to overwrite a bootstrap color variable. |
|
1326 | + * |
|
1327 | + * @param $type |
|
1328 | + * @param $color_code |
|
1329 | + * @param $compatibility |
|
1330 | + * |
|
1331 | + * @return string |
|
1332 | + */ |
|
1333 | + public static function css_overwrite_bs5($type,$color_code,$compatibility, $hex = '' ){ |
|
1334 | + global $aui_bs5; |
|
1335 | + |
|
1336 | + $is_var = false; |
|
1337 | + $is_custom = strpos($type, 'custom-') !== false ? true : false; |
|
1338 | + if(!$color_code){return '';} |
|
1339 | + if(strpos($color_code, 'var') !== false){ |
|
1340 | + //if(!sanitize_hex_color($color_code)){ |
|
1341 | + $color_code = esc_attr($color_code); |
|
1342 | + $is_var = true; |
|
1343 | 1343 | // $color_code = "rgba($color_code, 0.5)"; |
1344 | 1344 | // echo '###1'.$color_code.'###';//exit; |
1345 | - } |
|
1345 | + } |
|
1346 | 1346 | |
1347 | 1347 | // echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit; |
1348 | 1348 | |
1349 | - if(!$color_code){return '';} |
|
1349 | + if(!$color_code){return '';} |
|
1350 | 1350 | |
1351 | - $rgb = self::hex_to_rgb($hex); |
|
1351 | + $rgb = self::hex_to_rgb($hex); |
|
1352 | 1352 | |
1353 | - if($compatibility===true || $compatibility===1){ |
|
1354 | - $compatibility = '.bsui'; |
|
1355 | - }elseif(!$compatibility){ |
|
1356 | - $compatibility = ''; |
|
1357 | - }else{ |
|
1358 | - $compatibility = esc_attr($compatibility); |
|
1359 | - } |
|
1353 | + if($compatibility===true || $compatibility===1){ |
|
1354 | + $compatibility = '.bsui'; |
|
1355 | + }elseif(!$compatibility){ |
|
1356 | + $compatibility = ''; |
|
1357 | + }else{ |
|
1358 | + $compatibility = esc_attr($compatibility); |
|
1359 | + } |
|
1360 | 1360 | |
1361 | - $prefix = $compatibility ? $compatibility . " " : ""; |
|
1361 | + $prefix = $compatibility ? $compatibility . " " : ""; |
|
1362 | 1362 | |
1363 | 1363 | |
1364 | 1364 | $output = ''; |
1365 | 1365 | |
1366 | 1366 | // echo '####'.$color_code;exit; |
1367 | 1367 | |
1368 | - $type = sanitize_html_class($type); |
|
1368 | + $type = sanitize_html_class($type); |
|
1369 | + |
|
1370 | + /** |
|
1371 | + * c = color, b = background color, o = border-color, f = fill |
|
1372 | + */ |
|
1373 | + $selectors = array( |
|
1374 | + ".btn-{$type}" => array( 'b', 'o' ), |
|
1375 | + ".btn-{$type}.disabled" => array( 'b', 'o' ), |
|
1376 | + ".btn-{$type}:disabled" => array( 'b', 'o' ), |
|
1377 | + ".btn-outline-{$type}" => array( 'c', 'o' ), |
|
1378 | + ".btn-outline-{$type}:hover" => array( 'b', 'o' ), |
|
1379 | + ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ), |
|
1380 | + ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ), |
|
1381 | + ".show>.btn-outline-{$type}.dropdown-toggle" => array( 'b', 'o' ), |
|
1382 | + ".badge-{$type}" => array( 'b' ), |
|
1383 | + ".alert-{$type}" => array( 'b', 'o' ), |
|
1384 | + ".bg-{$type}" => array( 'b', 'f' ), |
|
1385 | + ".btn-link.btn-{$type}" => array( 'c' ), |
|
1386 | + ".text-{$type}" => array( 'c' ), |
|
1387 | + ); |
|
1388 | + |
|
1389 | + if ( $aui_bs5 ) { |
|
1390 | + unset($selectors[".alert-{$type}" ]); |
|
1391 | + } |
|
1369 | 1392 | |
1370 | - /** |
|
1371 | - * c = color, b = background color, o = border-color, f = fill |
|
1372 | - */ |
|
1373 | - $selectors = array( |
|
1374 | - ".btn-{$type}" => array( 'b', 'o' ), |
|
1375 | - ".btn-{$type}.disabled" => array( 'b', 'o' ), |
|
1376 | - ".btn-{$type}:disabled" => array( 'b', 'o' ), |
|
1377 | - ".btn-outline-{$type}" => array( 'c', 'o' ), |
|
1378 | - ".btn-outline-{$type}:hover" => array( 'b', 'o' ), |
|
1379 | - ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ), |
|
1380 | - ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ), |
|
1381 | - ".show>.btn-outline-{$type}.dropdown-toggle" => array( 'b', 'o' ), |
|
1382 | - ".badge-{$type}" => array( 'b' ), |
|
1383 | - ".alert-{$type}" => array( 'b', 'o' ), |
|
1384 | - ".bg-{$type}" => array( 'b', 'f' ), |
|
1385 | - ".btn-link.btn-{$type}" => array( 'c' ), |
|
1386 | - ".text-{$type}" => array( 'c' ), |
|
1387 | - ); |
|
1388 | - |
|
1389 | - if ( $aui_bs5 ) { |
|
1390 | - unset($selectors[".alert-{$type}" ]); |
|
1391 | - } |
|
1392 | - |
|
1393 | - if ( $type == 'primary' ) { |
|
1394 | - $selectors = $selectors + array( |
|
1395 | - 'a' => array( 'c' ), |
|
1396 | - '.btn-link' => array( 'c' ), |
|
1397 | - '.dropdown-item.active' => array( 'b' ), |
|
1398 | - '.custom-control-input:checked~.custom-control-label::before' => array( |
|
1399 | - 'b', |
|
1400 | - 'o' |
|
1401 | - ), |
|
1402 | - '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array( |
|
1403 | - 'b', |
|
1404 | - 'o' |
|
1405 | - ), |
|
1406 | - '.nav-pills .nav-link.active' => array( 'b' ), |
|
1407 | - '.nav-pills .show>.nav-link' => array( 'b' ), |
|
1408 | - '.page-link' => array( 'c' ), |
|
1409 | - '.page-item.active .page-link' => array( |
|
1410 | - 'b', |
|
1411 | - 'o' |
|
1412 | - ), |
|
1413 | - '.progress-bar' => array( 'b' ), |
|
1414 | - '.list-group-item.active' => array( |
|
1415 | - 'b', |
|
1416 | - 'o' |
|
1417 | - ), |
|
1418 | - '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ), |
|
1419 | - ); |
|
1420 | - } |
|
1393 | + if ( $type == 'primary' ) { |
|
1394 | + $selectors = $selectors + array( |
|
1395 | + 'a' => array( 'c' ), |
|
1396 | + '.btn-link' => array( 'c' ), |
|
1397 | + '.dropdown-item.active' => array( 'b' ), |
|
1398 | + '.custom-control-input:checked~.custom-control-label::before' => array( |
|
1399 | + 'b', |
|
1400 | + 'o' |
|
1401 | + ), |
|
1402 | + '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array( |
|
1403 | + 'b', |
|
1404 | + 'o' |
|
1405 | + ), |
|
1406 | + '.nav-pills .nav-link.active' => array( 'b' ), |
|
1407 | + '.nav-pills .show>.nav-link' => array( 'b' ), |
|
1408 | + '.page-link' => array( 'c' ), |
|
1409 | + '.page-item.active .page-link' => array( |
|
1410 | + 'b', |
|
1411 | + 'o' |
|
1412 | + ), |
|
1413 | + '.progress-bar' => array( 'b' ), |
|
1414 | + '.list-group-item.active' => array( |
|
1415 | + 'b', |
|
1416 | + 'o' |
|
1417 | + ), |
|
1418 | + '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ), |
|
1419 | + ); |
|
1420 | + } |
|
1421 | 1421 | |
1422 | 1422 | |
1423 | 1423 | |
1424 | 1424 | // link |
1425 | - if ( $type === 'primary' ) { |
|
1426 | - $output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }'; |
|
1427 | - $output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).'; }'; |
|
1428 | - $output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }'; |
|
1425 | + if ( $type === 'primary' ) { |
|
1426 | + $output .= 'html body {--bs-link-hover-color: rgba(var(--bs-'.esc_attr($type).'-rgb), .75); --bs-link-color: var(--bs-'.esc_attr($type).'); }'; |
|
1427 | + $output .= $prefix . ' .breadcrumb{--bs-breadcrumb-item-active-color: '.esc_attr($color_code).'; }'; |
|
1428 | + $output .= $prefix . ' .navbar { --bs-nav-link-hover-color: '.esc_attr($color_code).'; --bs-navbar-hover-color: '.esc_attr($color_code).'; --bs-navbar-active-color: '.esc_attr($color_code).'; }'; |
|
1429 | 1429 | |
1430 | - $output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}'; |
|
1431 | - $output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}'; |
|
1430 | + $output .= $prefix . ' a{color: var(--bs-'.esc_attr($type).');}'; |
|
1431 | + $output .= $prefix . ' .text-primary{color: var(--bs-'.esc_attr($type).') !important;}'; |
|
1432 | 1432 | |
1433 | 1433 | // dropdown |
1434 | - $output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}'; |
|
1434 | + $output .= $prefix . ' .dropdown-menu{--bs-dropdown-link-hover-color: var(--bs-'.esc_attr($type).'); --bs-dropdown-link-active-color: var(--bs-'.esc_attr($type).');}'; |
|
1435 | 1435 | |
1436 | 1436 | // pagination |
1437 | - $output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}'; |
|
1437 | + $output .= $prefix . ' .pagination{--bs-pagination-hover-color: var(--bs-'.esc_attr($type).'); --bs-pagination-active-bg: var(--bs-'.esc_attr($type).');}'; |
|
1438 | 1438 | |
1439 | - } |
|
1439 | + } |
|
1440 | 1440 | |
1441 | - $output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}'; |
|
1442 | - $output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}'; |
|
1441 | + $output .= $prefix . ' .link-'.esc_attr($type).' {color: var(--bs-'.esc_attr($type).'-rgb) !important;}'; |
|
1442 | + $output .= $prefix . ' .link-'.esc_attr($type).':hover {color: rgba(var(--bs-'.esc_attr($type).'-rgb), .8) !important;}'; |
|
1443 | 1443 | |
1444 | - // buttons |
|
1445 | - $output .= $prefix . ' .btn-'.esc_attr($type).'{'; |
|
1446 | - $output .= ' |
|
1444 | + // buttons |
|
1445 | + $output .= $prefix . ' .btn-'.esc_attr($type).'{'; |
|
1446 | + $output .= ' |
|
1447 | 1447 | --bs-btn-bg: '.esc_attr($color_code).'; |
1448 | 1448 | --bs-btn-border-color: '.esc_attr($color_code).'; |
1449 | 1449 | --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9); |
@@ -1461,11 +1461,11 @@ discard block |
||
1461 | 1461 | // --bs-btn-active-color: #fff; |
1462 | 1462 | // --bs-btn-disabled-color: #fff; |
1463 | 1463 | // '; |
1464 | - $output .= '}'; |
|
1464 | + $output .= '}'; |
|
1465 | 1465 | |
1466 | - // buttons outline |
|
1467 | - $output .= $prefix . ' .btn-outline-'.esc_attr($type).'{'; |
|
1468 | - $output .= ' |
|
1466 | + // buttons outline |
|
1467 | + $output .= $prefix . ' .btn-outline-'.esc_attr($type).'{'; |
|
1468 | + $output .= ' |
|
1469 | 1469 | --bs-btn-color: '.esc_attr($color_code).'; |
1470 | 1470 | --bs-btn-border-color: '.esc_attr($color_code).'; |
1471 | 1471 | --bs-btn-hover-bg: rgba(var(--bs-'.esc_attr($type).'-rgb), .9); |
@@ -1483,37 +1483,37 @@ discard block |
||
1483 | 1483 | // --bs-btn-active-color: #fff; |
1484 | 1484 | // --bs-btn-disabled-color: #fff; |
1485 | 1485 | // '; |
1486 | - $output .= '}'; |
|
1486 | + $output .= '}'; |
|
1487 | 1487 | |
1488 | 1488 | |
1489 | 1489 | // button hover |
1490 | - $output .= $prefix . ' .btn-'.esc_attr($type).':hover{'; |
|
1491 | - $output .= ' |
|
1490 | + $output .= $prefix . ' .btn-'.esc_attr($type).':hover{'; |
|
1491 | + $output .= ' |
|
1492 | 1492 | box-shadow: 0 0.25rem 0.25rem 0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb), .1), 0 0.375rem 0.75rem -0.125rem rgb(var(--bs-'.esc_attr($type).'-rgb) , .4); |
1493 | 1493 | } |
1494 | 1494 | '; |
1495 | 1495 | |
1496 | 1496 | |
1497 | - if ( $aui_bs5 ) { |
|
1497 | + if ( $aui_bs5 ) { |
|
1498 | 1498 | // $output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }'; |
1499 | - $output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }'; |
|
1500 | - $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }'; |
|
1501 | - } |
|
1499 | + $output .= 'html body {--bs-'.esc_attr($type).': '.esc_attr($color_code).'; }'; |
|
1500 | + $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }'; |
|
1501 | + } |
|
1502 | 1502 | |
1503 | 1503 | |
1504 | - if ( $is_custom ) { |
|
1504 | + if ( $is_custom ) { |
|
1505 | 1505 | |
1506 | 1506 | // echo '###'.$type;exit; |
1507 | 1507 | |
1508 | - // build rules into each type |
|
1509 | - foreach($selectors as $selector => $types){ |
|
1510 | - $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1511 | - $types = array_combine($types,$types); |
|
1512 | - if(isset($types['c'])){$color[] = $selector;} |
|
1513 | - if(isset($types['b'])){$background[] = $selector;} |
|
1514 | - if(isset($types['o'])){$border[] = $selector;} |
|
1515 | - if(isset($types['f'])){$fill[] = $selector;} |
|
1516 | - } |
|
1508 | + // build rules into each type |
|
1509 | + foreach($selectors as $selector => $types){ |
|
1510 | + $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1511 | + $types = array_combine($types,$types); |
|
1512 | + if(isset($types['c'])){$color[] = $selector;} |
|
1513 | + if(isset($types['b'])){$background[] = $selector;} |
|
1514 | + if(isset($types['o'])){$border[] = $selector;} |
|
1515 | + if(isset($types['f'])){$fill[] = $selector;} |
|
1516 | + } |
|
1517 | 1517 | |
1518 | 1518 | // // build rules into each type |
1519 | 1519 | // foreach($important_selectors as $selector => $types){ |
@@ -1525,68 +1525,68 @@ discard block |
||
1525 | 1525 | // if(isset($types['f'])){$fill_i[] = $selector;} |
1526 | 1526 | // } |
1527 | 1527 | |
1528 | - // add any color rules |
|
1529 | - if(!empty($color)){ |
|
1530 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1531 | - } |
|
1532 | - if(!empty($color_i)){ |
|
1533 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1534 | - } |
|
1528 | + // add any color rules |
|
1529 | + if(!empty($color)){ |
|
1530 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1531 | + } |
|
1532 | + if(!empty($color_i)){ |
|
1533 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1534 | + } |
|
1535 | 1535 | |
1536 | - // add any background color rules |
|
1537 | - if(!empty($background)){ |
|
1538 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1539 | - } |
|
1540 | - if(!empty($background_i)){ |
|
1541 | - $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1536 | + // add any background color rules |
|
1537 | + if(!empty($background)){ |
|
1538 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1539 | + } |
|
1540 | + if(!empty($background_i)){ |
|
1541 | + $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1542 | 1542 | // $output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} "; |
1543 | - } |
|
1543 | + } |
|
1544 | 1544 | |
1545 | - // add any border color rules |
|
1546 | - if(!empty($border)){ |
|
1547 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1548 | - } |
|
1549 | - if(!empty($border_i)){ |
|
1550 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1551 | - } |
|
1545 | + // add any border color rules |
|
1546 | + if(!empty($border)){ |
|
1547 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1548 | + } |
|
1549 | + if(!empty($border_i)){ |
|
1550 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1551 | + } |
|
1552 | 1552 | |
1553 | - // add any fill color rules |
|
1554 | - if(!empty($fill)){ |
|
1555 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1556 | - } |
|
1557 | - if(!empty($fill_i)){ |
|
1558 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1559 | - } |
|
1553 | + // add any fill color rules |
|
1554 | + if(!empty($fill)){ |
|
1555 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1556 | + } |
|
1557 | + if(!empty($fill_i)){ |
|
1558 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1559 | + } |
|
1560 | 1560 | |
1561 | - } |
|
1561 | + } |
|
1562 | 1562 | |
1563 | 1563 | |
1564 | 1564 | |
1565 | 1565 | |
1566 | - $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : ''; |
|
1567 | - // darken |
|
1568 | - $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1569 | - $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1570 | - $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1571 | - $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4"); |
|
1566 | + $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : ''; |
|
1567 | + // darken |
|
1568 | + $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1569 | + $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1570 | + $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1571 | + $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4"); |
|
1572 | 1572 | |
1573 | - // lighten |
|
1574 | - $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25"); |
|
1573 | + // lighten |
|
1574 | + $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25"); |
|
1575 | 1575 | |
1576 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1577 | - $op_25 = $color_code."40"; // 25% opacity |
|
1576 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1577 | + $op_25 = $color_code."40"; // 25% opacity |
|
1578 | 1578 | |
1579 | 1579 | |
1580 | - // button states |
|
1581 | - $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : ''; |
|
1582 | - $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1580 | + // button states |
|
1581 | + $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : ''; |
|
1582 | + $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1583 | 1583 | // $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000; border-color: #000;} "; |
1584 | - $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1585 | - $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1584 | + $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1585 | + $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1586 | 1586 | $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
1587 | 1587 | $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled):focus {box-shadow: 0 0.25rem 0.25rem 0.125rem rgba(var(--bs-{$type}-rgb), 0.1), 0 0.375rem 0.75rem -0.125rem rgba(var(--bs-{$type}-rgb), 0.4);} "; |
1588 | 1588 | |
1589 | - // text |
|
1589 | + // text |
|
1590 | 1590 | // $output .= $prefix .".xxx, .text-{$type} {color: var(--bs-".esc_attr($type).");} "; |
1591 | 1591 | |
1592 | 1592 | |
@@ -1601,777 +1601,777 @@ discard block |
||
1601 | 1601 | // $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
1602 | 1602 | // } |
1603 | 1603 | |
1604 | - // alerts |
|
1605 | - if ( $aui_bs5 ) { |
|
1604 | + // alerts |
|
1605 | + if ( $aui_bs5 ) { |
|
1606 | 1606 | // $output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20; border-color: ".$color_code."30;color:$darker_40} "; |
1607 | - $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} "; |
|
1608 | - } |
|
1609 | - |
|
1610 | - return $output; |
|
1611 | - } |
|
1612 | - |
|
1613 | - /** |
|
1614 | - * Build the CSS to overwrite a bootstrap color variable. |
|
1615 | - * |
|
1616 | - * @param $type |
|
1617 | - * @param $color_code |
|
1618 | - * @param $compatibility |
|
1619 | - * |
|
1620 | - * @return string |
|
1621 | - */ |
|
1622 | - public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){ |
|
1607 | + $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} "; |
|
1608 | + } |
|
1609 | + |
|
1610 | + return $output; |
|
1611 | + } |
|
1612 | + |
|
1613 | + /** |
|
1614 | + * Build the CSS to overwrite a bootstrap color variable. |
|
1615 | + * |
|
1616 | + * @param $type |
|
1617 | + * @param $color_code |
|
1618 | + * @param $compatibility |
|
1619 | + * |
|
1620 | + * @return string |
|
1621 | + */ |
|
1622 | + public static function css_overwrite($type,$color_code,$compatibility, $hex = '' ){ |
|
1623 | 1623 | global $aui_bs5; |
1624 | 1624 | |
1625 | - $is_var = false; |
|
1626 | - if(!$color_code){return '';} |
|
1627 | - if(strpos($color_code, 'var') !== false){ |
|
1628 | - //if(!sanitize_hex_color($color_code)){ |
|
1629 | - $color_code = esc_attr($color_code); |
|
1630 | - $is_var = true; |
|
1625 | + $is_var = false; |
|
1626 | + if(!$color_code){return '';} |
|
1627 | + if(strpos($color_code, 'var') !== false){ |
|
1628 | + //if(!sanitize_hex_color($color_code)){ |
|
1629 | + $color_code = esc_attr($color_code); |
|
1630 | + $is_var = true; |
|
1631 | 1631 | // $color_code = "rgba($color_code, 0.5)"; |
1632 | 1632 | // echo '###1'.$color_code.'###';//exit; |
1633 | - } |
|
1633 | + } |
|
1634 | 1634 | |
1635 | 1635 | // echo '@@@'.$color_code.'==='.self::hex_to_rgb($color_code);exit; |
1636 | 1636 | |
1637 | - if(!$color_code){return '';} |
|
1637 | + if(!$color_code){return '';} |
|
1638 | 1638 | |
1639 | 1639 | $rgb = self::hex_to_rgb($hex); |
1640 | 1640 | |
1641 | - if($compatibility===true || $compatibility===1){ |
|
1642 | - $compatibility = '.bsui'; |
|
1643 | - }elseif(!$compatibility){ |
|
1644 | - $compatibility = ''; |
|
1645 | - }else{ |
|
1646 | - $compatibility = esc_attr($compatibility); |
|
1647 | - } |
|
1641 | + if($compatibility===true || $compatibility===1){ |
|
1642 | + $compatibility = '.bsui'; |
|
1643 | + }elseif(!$compatibility){ |
|
1644 | + $compatibility = ''; |
|
1645 | + }else{ |
|
1646 | + $compatibility = esc_attr($compatibility); |
|
1647 | + } |
|
1648 | 1648 | |
1649 | 1649 | |
1650 | 1650 | |
1651 | 1651 | // echo '####'.$color_code;exit; |
1652 | 1652 | |
1653 | - $type = sanitize_html_class($type); |
|
1654 | - |
|
1655 | - /** |
|
1656 | - * c = color, b = background color, o = border-color, f = fill |
|
1657 | - */ |
|
1658 | - $selectors = array( |
|
1659 | - ".btn-{$type}" => array( 'b', 'o' ), |
|
1660 | - ".btn-{$type}.disabled" => array( 'b', 'o' ), |
|
1661 | - ".btn-{$type}:disabled" => array( 'b', 'o' ), |
|
1662 | - ".btn-outline-{$type}" => array( 'c', 'o' ), |
|
1663 | - ".btn-outline-{$type}:hover" => array( 'b', 'o' ), |
|
1664 | - ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ), |
|
1665 | - ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ), |
|
1666 | - ".show>.btn-outline-{$type}.dropdown-toggle" => array( 'b', 'o' ), |
|
1667 | - ".badge-{$type}" => array( 'b' ), |
|
1668 | - ".alert-{$type}" => array( 'b', 'o' ), |
|
1669 | - ".bg-{$type}" => array( 'b', 'f' ), |
|
1670 | - ".btn-link.btn-{$type}" => array( 'c' ), |
|
1671 | - ); |
|
1672 | - |
|
1673 | - if ( $aui_bs5 ) { |
|
1653 | + $type = sanitize_html_class($type); |
|
1654 | + |
|
1655 | + /** |
|
1656 | + * c = color, b = background color, o = border-color, f = fill |
|
1657 | + */ |
|
1658 | + $selectors = array( |
|
1659 | + ".btn-{$type}" => array( 'b', 'o' ), |
|
1660 | + ".btn-{$type}.disabled" => array( 'b', 'o' ), |
|
1661 | + ".btn-{$type}:disabled" => array( 'b', 'o' ), |
|
1662 | + ".btn-outline-{$type}" => array( 'c', 'o' ), |
|
1663 | + ".btn-outline-{$type}:hover" => array( 'b', 'o' ), |
|
1664 | + ".btn-outline-{$type}:not(:disabled):not(.disabled).active" => array( 'b', 'o' ), |
|
1665 | + ".btn-outline-{$type}:not(:disabled):not(.disabled):active" => array( 'b', 'o' ), |
|
1666 | + ".show>.btn-outline-{$type}.dropdown-toggle" => array( 'b', 'o' ), |
|
1667 | + ".badge-{$type}" => array( 'b' ), |
|
1668 | + ".alert-{$type}" => array( 'b', 'o' ), |
|
1669 | + ".bg-{$type}" => array( 'b', 'f' ), |
|
1670 | + ".btn-link.btn-{$type}" => array( 'c' ), |
|
1671 | + ); |
|
1672 | + |
|
1673 | + if ( $aui_bs5 ) { |
|
1674 | 1674 | unset($selectors[".alert-{$type}" ]); |
1675 | - } |
|
1676 | - |
|
1677 | - if ( $type == 'primary' ) { |
|
1678 | - $selectors = $selectors + array( |
|
1679 | - 'a' => array( 'c' ), |
|
1680 | - '.btn-link' => array( 'c' ), |
|
1681 | - '.dropdown-item.active' => array( 'b' ), |
|
1682 | - '.custom-control-input:checked~.custom-control-label::before' => array( |
|
1683 | - 'b', |
|
1684 | - 'o' |
|
1685 | - ), |
|
1686 | - '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array( |
|
1687 | - 'b', |
|
1688 | - 'o' |
|
1689 | - ), |
|
1690 | - '.nav-pills .nav-link.active' => array( 'b' ), |
|
1691 | - '.nav-pills .show>.nav-link' => array( 'b' ), |
|
1692 | - '.page-link' => array( 'c' ), |
|
1693 | - '.page-item.active .page-link' => array( |
|
1694 | - 'b', |
|
1695 | - 'o' |
|
1696 | - ), |
|
1697 | - '.progress-bar' => array( 'b' ), |
|
1698 | - '.list-group-item.active' => array( |
|
1699 | - 'b', |
|
1700 | - 'o' |
|
1701 | - ), |
|
1702 | - '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ), |
|
1675 | + } |
|
1676 | + |
|
1677 | + if ( $type == 'primary' ) { |
|
1678 | + $selectors = $selectors + array( |
|
1679 | + 'a' => array( 'c' ), |
|
1680 | + '.btn-link' => array( 'c' ), |
|
1681 | + '.dropdown-item.active' => array( 'b' ), |
|
1682 | + '.custom-control-input:checked~.custom-control-label::before' => array( |
|
1683 | + 'b', |
|
1684 | + 'o' |
|
1685 | + ), |
|
1686 | + '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array( |
|
1687 | + 'b', |
|
1688 | + 'o' |
|
1689 | + ), |
|
1690 | + '.nav-pills .nav-link.active' => array( 'b' ), |
|
1691 | + '.nav-pills .show>.nav-link' => array( 'b' ), |
|
1692 | + '.page-link' => array( 'c' ), |
|
1693 | + '.page-item.active .page-link' => array( |
|
1694 | + 'b', |
|
1695 | + 'o' |
|
1696 | + ), |
|
1697 | + '.progress-bar' => array( 'b' ), |
|
1698 | + '.list-group-item.active' => array( |
|
1699 | + 'b', |
|
1700 | + 'o' |
|
1701 | + ), |
|
1702 | + '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array( 'b' ), |
|
1703 | 1703 | // '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules... |
1704 | 1704 | // '.custom-range::-moz-range-thumb' => array('b'), |
1705 | 1705 | // '.custom-range::-ms-thumb' => array('b'), |
1706 | - ); |
|
1707 | - } |
|
1708 | - |
|
1709 | - $important_selectors = array( |
|
1710 | - ".bg-{$type}" => array('b','f'), |
|
1711 | - ".border-{$type}" => array('o'), |
|
1712 | - ".text-{$type}" => array('c'), |
|
1713 | - ); |
|
1714 | - |
|
1715 | - $color = array(); |
|
1716 | - $color_i = array(); |
|
1717 | - $background = array(); |
|
1718 | - $background_i = array(); |
|
1719 | - $border = array(); |
|
1720 | - $border_i = array(); |
|
1721 | - $fill = array(); |
|
1722 | - $fill_i = array(); |
|
1723 | - |
|
1724 | - $output = ''; |
|
1725 | - |
|
1726 | - if ( $aui_bs5 ) { |
|
1706 | + ); |
|
1707 | + } |
|
1708 | + |
|
1709 | + $important_selectors = array( |
|
1710 | + ".bg-{$type}" => array('b','f'), |
|
1711 | + ".border-{$type}" => array('o'), |
|
1712 | + ".text-{$type}" => array('c'), |
|
1713 | + ); |
|
1714 | + |
|
1715 | + $color = array(); |
|
1716 | + $color_i = array(); |
|
1717 | + $background = array(); |
|
1718 | + $background_i = array(); |
|
1719 | + $border = array(); |
|
1720 | + $border_i = array(); |
|
1721 | + $fill = array(); |
|
1722 | + $fill_i = array(); |
|
1723 | + |
|
1724 | + $output = ''; |
|
1725 | + |
|
1726 | + if ( $aui_bs5 ) { |
|
1727 | 1727 | // $output .= $is_var ? 'html body {--bs-'.esc_attr($type).'-rgb: '.$color_code.'; }' : 'html body {--bs-'.esc_attr($type).'-rgb: '.self::hex_to_rgb($color_code).'; }'; |
1728 | - $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }'; |
|
1729 | - } |
|
1730 | - |
|
1731 | - // build rules into each type |
|
1732 | - foreach($selectors as $selector => $types){ |
|
1733 | - $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1734 | - $types = array_combine($types,$types); |
|
1735 | - if(isset($types['c'])){$color[] = $selector;} |
|
1736 | - if(isset($types['b'])){$background[] = $selector;} |
|
1737 | - if(isset($types['o'])){$border[] = $selector;} |
|
1738 | - if(isset($types['f'])){$fill[] = $selector;} |
|
1739 | - } |
|
1740 | - |
|
1741 | - // build rules into each type |
|
1742 | - foreach($important_selectors as $selector => $types){ |
|
1743 | - $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1744 | - $types = array_combine($types,$types); |
|
1745 | - if(isset($types['c'])){$color_i[] = $selector;} |
|
1746 | - if(isset($types['b'])){$background_i[] = $selector;} |
|
1747 | - if(isset($types['o'])){$border_i[] = $selector;} |
|
1748 | - if(isset($types['f'])){$fill_i[] = $selector;} |
|
1749 | - } |
|
1750 | - |
|
1751 | - // add any color rules |
|
1752 | - if(!empty($color)){ |
|
1753 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1754 | - } |
|
1755 | - if(!empty($color_i)){ |
|
1756 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1757 | - } |
|
1758 | - |
|
1759 | - // add any background color rules |
|
1760 | - if(!empty($background)){ |
|
1761 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1762 | - } |
|
1763 | - if(!empty($background_i)){ |
|
1764 | - $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1728 | + $output .= 'html body {--bs-'.esc_attr($type).'-rgb: '.$rgb.'; }'; |
|
1729 | + } |
|
1730 | + |
|
1731 | + // build rules into each type |
|
1732 | + foreach($selectors as $selector => $types){ |
|
1733 | + $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1734 | + $types = array_combine($types,$types); |
|
1735 | + if(isset($types['c'])){$color[] = $selector;} |
|
1736 | + if(isset($types['b'])){$background[] = $selector;} |
|
1737 | + if(isset($types['o'])){$border[] = $selector;} |
|
1738 | + if(isset($types['f'])){$fill[] = $selector;} |
|
1739 | + } |
|
1740 | + |
|
1741 | + // build rules into each type |
|
1742 | + foreach($important_selectors as $selector => $types){ |
|
1743 | + $selector = $compatibility ? $compatibility . " ".$selector : $selector; |
|
1744 | + $types = array_combine($types,$types); |
|
1745 | + if(isset($types['c'])){$color_i[] = $selector;} |
|
1746 | + if(isset($types['b'])){$background_i[] = $selector;} |
|
1747 | + if(isset($types['o'])){$border_i[] = $selector;} |
|
1748 | + if(isset($types['f'])){$fill_i[] = $selector;} |
|
1749 | + } |
|
1750 | + |
|
1751 | + // add any color rules |
|
1752 | + if(!empty($color)){ |
|
1753 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1754 | + } |
|
1755 | + if(!empty($color_i)){ |
|
1756 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1757 | + } |
|
1758 | + |
|
1759 | + // add any background color rules |
|
1760 | + if(!empty($background)){ |
|
1761 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1762 | + } |
|
1763 | + if(!empty($background_i)){ |
|
1764 | + $output .= $aui_bs5 ? '' : implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1765 | 1765 | // $output .= implode(",",$background_i) . "{background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;} "; |
1766 | - } |
|
1766 | + } |
|
1767 | 1767 | |
1768 | - // add any border color rules |
|
1769 | - if(!empty($border)){ |
|
1770 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1771 | - } |
|
1772 | - if(!empty($border_i)){ |
|
1773 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1774 | - } |
|
1768 | + // add any border color rules |
|
1769 | + if(!empty($border)){ |
|
1770 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1771 | + } |
|
1772 | + if(!empty($border_i)){ |
|
1773 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1774 | + } |
|
1775 | 1775 | |
1776 | - // add any fill color rules |
|
1777 | - if(!empty($fill)){ |
|
1778 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1779 | - } |
|
1780 | - if(!empty($fill_i)){ |
|
1781 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1782 | - } |
|
1776 | + // add any fill color rules |
|
1777 | + if(!empty($fill)){ |
|
1778 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1779 | + } |
|
1780 | + if(!empty($fill_i)){ |
|
1781 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1782 | + } |
|
1783 | 1783 | |
1784 | 1784 | |
1785 | - $prefix = $compatibility ? $compatibility . " " : ""; |
|
1785 | + $prefix = $compatibility ? $compatibility . " " : ""; |
|
1786 | 1786 | |
1787 | - $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : ''; |
|
1788 | - // darken |
|
1789 | - $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1790 | - $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1791 | - $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1792 | - $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4"); |
|
1787 | + $transition = $is_var ? 'transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,filter 0.15s ease-in-out;' : ''; |
|
1788 | + // darken |
|
1789 | + $darker_075 = $is_var ? $color_code.';filter:brightness(0.925)' : self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1790 | + $darker_10 = $is_var ? $color_code.';filter:brightness(0.9)' : self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1791 | + $darker_125 = $is_var ? $color_code.';filter:brightness(0.875)' : self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1792 | + $darker_40 = $is_var ? $color_code.';filter:brightness(0.6)' : self::css_hex_lighten_darken($color_code,"-0.4"); |
|
1793 | 1793 | |
1794 | - // lighten |
|
1795 | - $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25"); |
|
1794 | + // lighten |
|
1795 | + $lighten_25 = $is_var ? $color_code.';filter:brightness(1.25)' :self::css_hex_lighten_darken($color_code,"0.25"); |
|
1796 | 1796 | |
1797 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1798 | - $op_25 = $color_code."40"; // 25% opacity |
|
1797 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1798 | + $op_25 = $color_code."40"; // 25% opacity |
|
1799 | 1799 | |
1800 | 1800 | |
1801 | - // button states |
|
1802 | - $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : ''; |
|
1803 | - $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1801 | + // button states |
|
1802 | + $output .= $is_var ? $prefix ." .btn-{$type}{{$transition }} " : ''; |
|
1803 | + $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1804 | 1804 | // $output .= $prefix ." .btn-{$type}:hover, $prefix .btn-{$type}:focus, $prefix .btn-{$type}.focus{background-color: #000; border-color: #000;} "; |
1805 | - $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1806 | - $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1807 | - $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1805 | + $output .= $prefix ." .btn-outline-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-{$type}.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1806 | + $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active, $prefix .btn-{$type}:not(:disabled):not(.disabled).active, .show>$prefix .btn-{$type}.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1807 | + $output .= $prefix ." .btn-{$type}:not(:disabled):not(.disabled):active:focus, $prefix .btn-{$type}:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-{$type}.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1808 | 1808 | |
1809 | - if ( $type == 'primary' ) { |
|
1810 | - // dropdown's |
|
1811 | - $output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
1809 | + if ( $type == 'primary' ) { |
|
1810 | + // dropdown's |
|
1811 | + $output .= $prefix . " .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
1812 | 1812 | |
1813 | - // input states |
|
1814 | - $output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1813 | + // input states |
|
1814 | + $output .= $prefix . " .form-control:focus{border-color: " . $lighten_25 . ";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1815 | 1815 | |
1816 | - // page link |
|
1817 | - $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1818 | - } |
|
1816 | + // page link |
|
1817 | + $output .= $prefix . " .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1818 | + } |
|
1819 | 1819 | |
1820 | 1820 | // alerts |
1821 | - if ( $aui_bs5 ) { |
|
1821 | + if ( $aui_bs5 ) { |
|
1822 | 1822 | // $output .= $is_var ? '' : $prefix ." .alert-{$type} {background-color: ".$color_code."20; border-color: ".$color_code."30;color:$darker_40} "; |
1823 | - $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} "; |
|
1824 | - } |
|
1825 | - |
|
1826 | - return $output; |
|
1827 | - } |
|
1828 | - |
|
1829 | - /** |
|
1830 | - * |
|
1831 | - * @deprecated 0.1.76 Use css_overwrite() |
|
1832 | - * |
|
1833 | - * @param $color_code |
|
1834 | - * @param $compatibility |
|
1835 | - * @param $use_variable |
|
1836 | - * |
|
1837 | - * @return string |
|
1838 | - */ |
|
1839 | - public static function css_primary($color_code,$compatibility, $use_variable = false){ |
|
1840 | - |
|
1841 | - if(!$use_variable){ |
|
1842 | - $color_code = sanitize_hex_color($color_code); |
|
1843 | - if(!$color_code){return '';} |
|
1844 | - } |
|
1845 | - |
|
1846 | - /** |
|
1847 | - * c = color, b = background color, o = border-color, f = fill |
|
1848 | - */ |
|
1849 | - $selectors = array( |
|
1850 | - 'a' => array('c'), |
|
1851 | - '.btn-primary' => array('b','o'), |
|
1852 | - '.btn-primary.disabled' => array('b','o'), |
|
1853 | - '.btn-primary:disabled' => array('b','o'), |
|
1854 | - '.btn-outline-primary' => array('c','o'), |
|
1855 | - '.btn-outline-primary:hover' => array('b','o'), |
|
1856 | - '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
1857 | - '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
1858 | - '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'), |
|
1859 | - '.btn-link' => array('c'), |
|
1860 | - '.dropdown-item.active' => array('b'), |
|
1861 | - '.custom-control-input:checked~.custom-control-label::before' => array('b','o'), |
|
1862 | - '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'), |
|
1823 | + $output .= $prefix ." .alert-{$type} {--bs-alert-bg: rgba(var(--bs-{$type}-rgb), .1 ) !important;--bs-alert-border-color: rgba(var(--bs-{$type}-rgb), .25 ) !important;--bs-alert-color: rgba(var(--bs-{$type}-rgb), 1 ) !important;} "; |
|
1824 | + } |
|
1825 | + |
|
1826 | + return $output; |
|
1827 | + } |
|
1828 | + |
|
1829 | + /** |
|
1830 | + * |
|
1831 | + * @deprecated 0.1.76 Use css_overwrite() |
|
1832 | + * |
|
1833 | + * @param $color_code |
|
1834 | + * @param $compatibility |
|
1835 | + * @param $use_variable |
|
1836 | + * |
|
1837 | + * @return string |
|
1838 | + */ |
|
1839 | + public static function css_primary($color_code,$compatibility, $use_variable = false){ |
|
1840 | + |
|
1841 | + if(!$use_variable){ |
|
1842 | + $color_code = sanitize_hex_color($color_code); |
|
1843 | + if(!$color_code){return '';} |
|
1844 | + } |
|
1845 | + |
|
1846 | + /** |
|
1847 | + * c = color, b = background color, o = border-color, f = fill |
|
1848 | + */ |
|
1849 | + $selectors = array( |
|
1850 | + 'a' => array('c'), |
|
1851 | + '.btn-primary' => array('b','o'), |
|
1852 | + '.btn-primary.disabled' => array('b','o'), |
|
1853 | + '.btn-primary:disabled' => array('b','o'), |
|
1854 | + '.btn-outline-primary' => array('c','o'), |
|
1855 | + '.btn-outline-primary:hover' => array('b','o'), |
|
1856 | + '.btn-outline-primary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
1857 | + '.btn-outline-primary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
1858 | + '.show>.btn-outline-primary.dropdown-toggle' => array('b','o'), |
|
1859 | + '.btn-link' => array('c'), |
|
1860 | + '.dropdown-item.active' => array('b'), |
|
1861 | + '.custom-control-input:checked~.custom-control-label::before' => array('b','o'), |
|
1862 | + '.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before' => array('b','o'), |
|
1863 | 1863 | // '.custom-range::-webkit-slider-thumb' => array('b'), // these break the inline rules... |
1864 | 1864 | // '.custom-range::-moz-range-thumb' => array('b'), |
1865 | 1865 | // '.custom-range::-ms-thumb' => array('b'), |
1866 | - '.nav-pills .nav-link.active' => array('b'), |
|
1867 | - '.nav-pills .show>.nav-link' => array('b'), |
|
1868 | - '.page-link' => array('c'), |
|
1869 | - '.page-item.active .page-link' => array('b','o'), |
|
1870 | - '.badge-primary' => array('b'), |
|
1871 | - '.alert-primary' => array('b','o'), |
|
1872 | - '.progress-bar' => array('b'), |
|
1873 | - '.list-group-item.active' => array('b','o'), |
|
1874 | - '.bg-primary' => array('b','f'), |
|
1875 | - '.btn-link.btn-primary' => array('c'), |
|
1876 | - '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'), |
|
1877 | - ); |
|
1878 | - |
|
1879 | - $important_selectors = array( |
|
1880 | - '.bg-primary' => array('b','f'), |
|
1881 | - '.border-primary' => array('o'), |
|
1882 | - '.text-primary' => array('c'), |
|
1883 | - ); |
|
1884 | - |
|
1885 | - $color = array(); |
|
1886 | - $color_i = array(); |
|
1887 | - $background = array(); |
|
1888 | - $background_i = array(); |
|
1889 | - $border = array(); |
|
1890 | - $border_i = array(); |
|
1891 | - $fill = array(); |
|
1892 | - $fill_i = array(); |
|
1893 | - |
|
1894 | - $output = ''; |
|
1895 | - |
|
1896 | - // build rules into each type |
|
1897 | - foreach($selectors as $selector => $types){ |
|
1898 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
1899 | - $types = array_combine($types,$types); |
|
1900 | - if(isset($types['c'])){$color[] = $selector;} |
|
1901 | - if(isset($types['b'])){$background[] = $selector;} |
|
1902 | - if(isset($types['o'])){$border[] = $selector;} |
|
1903 | - if(isset($types['f'])){$fill[] = $selector;} |
|
1904 | - } |
|
1905 | - |
|
1906 | - // build rules into each type |
|
1907 | - foreach($important_selectors as $selector => $types){ |
|
1908 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
1909 | - $types = array_combine($types,$types); |
|
1910 | - if(isset($types['c'])){$color_i[] = $selector;} |
|
1911 | - if(isset($types['b'])){$background_i[] = $selector;} |
|
1912 | - if(isset($types['o'])){$border_i[] = $selector;} |
|
1913 | - if(isset($types['f'])){$fill_i[] = $selector;} |
|
1914 | - } |
|
1915 | - |
|
1916 | - // add any color rules |
|
1917 | - if(!empty($color)){ |
|
1918 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1919 | - } |
|
1920 | - if(!empty($color_i)){ |
|
1921 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1922 | - } |
|
1923 | - |
|
1924 | - // add any background color rules |
|
1925 | - if(!empty($background)){ |
|
1926 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1927 | - } |
|
1928 | - if(!empty($background_i)){ |
|
1929 | - $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1930 | - } |
|
1931 | - |
|
1932 | - // add any border color rules |
|
1933 | - if(!empty($border)){ |
|
1934 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1935 | - } |
|
1936 | - if(!empty($border_i)){ |
|
1937 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1938 | - } |
|
1939 | - |
|
1940 | - // add any fill color rules |
|
1941 | - if(!empty($fill)){ |
|
1942 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1943 | - } |
|
1944 | - if(!empty($fill_i)){ |
|
1945 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1946 | - } |
|
1947 | - |
|
1948 | - |
|
1949 | - $prefix = $compatibility ? ".bsui " : ""; |
|
1950 | - |
|
1951 | - // darken |
|
1952 | - $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1953 | - $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1954 | - $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1955 | - |
|
1956 | - // lighten |
|
1957 | - $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
1958 | - |
|
1959 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1960 | - $op_25 = $color_code."40"; // 25% opacity |
|
1961 | - |
|
1962 | - |
|
1963 | - // button states |
|
1964 | - $output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1965 | - $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1966 | - $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1967 | - $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1968 | - |
|
1969 | - |
|
1970 | - // dropdown's |
|
1971 | - $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
1972 | - |
|
1973 | - |
|
1974 | - // input states |
|
1975 | - $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1976 | - |
|
1977 | - // page link |
|
1978 | - $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1979 | - |
|
1980 | - return $output; |
|
1981 | - } |
|
1982 | - |
|
1983 | - /** |
|
1984 | - * |
|
1985 | - * @deprecated 0.1.76 Use css_overwrite() |
|
1986 | - * |
|
1987 | - * @param $color_code |
|
1988 | - * @param $compatibility |
|
1989 | - * |
|
1990 | - * @return string |
|
1991 | - */ |
|
1992 | - public static function css_secondary($color_code,$compatibility){; |
|
1993 | - $color_code = sanitize_hex_color($color_code); |
|
1994 | - if(!$color_code){return '';} |
|
1995 | - /** |
|
1996 | - * c = color, b = background color, o = border-color, f = fill |
|
1997 | - */ |
|
1998 | - $selectors = array( |
|
1999 | - '.btn-secondary' => array('b','o'), |
|
2000 | - '.btn-secondary.disabled' => array('b','o'), |
|
2001 | - '.btn-secondary:disabled' => array('b','o'), |
|
2002 | - '.btn-outline-secondary' => array('c','o'), |
|
2003 | - '.btn-outline-secondary:hover' => array('b','o'), |
|
2004 | - '.btn-outline-secondary.disabled' => array('c'), |
|
2005 | - '.btn-outline-secondary:disabled' => array('c'), |
|
2006 | - '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
2007 | - '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
2008 | - '.btn-outline-secondary.dropdown-toggle' => array('b','o'), |
|
2009 | - '.badge-secondary' => array('b'), |
|
2010 | - '.alert-secondary' => array('b','o'), |
|
2011 | - '.btn-link.btn-secondary' => array('c'), |
|
2012 | - ); |
|
2013 | - |
|
2014 | - $important_selectors = array( |
|
2015 | - '.bg-secondary' => array('b','f'), |
|
2016 | - '.border-secondary' => array('o'), |
|
2017 | - '.text-secondary' => array('c'), |
|
2018 | - ); |
|
2019 | - |
|
2020 | - $color = array(); |
|
2021 | - $color_i = array(); |
|
2022 | - $background = array(); |
|
2023 | - $background_i = array(); |
|
2024 | - $border = array(); |
|
2025 | - $border_i = array(); |
|
2026 | - $fill = array(); |
|
2027 | - $fill_i = array(); |
|
2028 | - |
|
2029 | - $output = ''; |
|
2030 | - |
|
2031 | - // build rules into each type |
|
2032 | - foreach($selectors as $selector => $types){ |
|
2033 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
2034 | - $types = array_combine($types,$types); |
|
2035 | - if(isset($types['c'])){$color[] = $selector;} |
|
2036 | - if(isset($types['b'])){$background[] = $selector;} |
|
2037 | - if(isset($types['o'])){$border[] = $selector;} |
|
2038 | - if(isset($types['f'])){$fill[] = $selector;} |
|
2039 | - } |
|
2040 | - |
|
2041 | - // build rules into each type |
|
2042 | - foreach($important_selectors as $selector => $types){ |
|
2043 | - $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
2044 | - $types = array_combine($types,$types); |
|
2045 | - if(isset($types['c'])){$color_i[] = $selector;} |
|
2046 | - if(isset($types['b'])){$background_i[] = $selector;} |
|
2047 | - if(isset($types['o'])){$border_i[] = $selector;} |
|
2048 | - if(isset($types['f'])){$fill_i[] = $selector;} |
|
2049 | - } |
|
2050 | - |
|
2051 | - // add any color rules |
|
2052 | - if(!empty($color)){ |
|
2053 | - $output .= implode(",",$color) . "{color: $color_code;} "; |
|
2054 | - } |
|
2055 | - if(!empty($color_i)){ |
|
2056 | - $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
2057 | - } |
|
2058 | - |
|
2059 | - // add any background color rules |
|
2060 | - if(!empty($background)){ |
|
2061 | - $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
2062 | - } |
|
2063 | - if(!empty($background_i)){ |
|
2064 | - $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
2065 | - } |
|
2066 | - |
|
2067 | - // add any border color rules |
|
2068 | - if(!empty($border)){ |
|
2069 | - $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
2070 | - } |
|
2071 | - if(!empty($border_i)){ |
|
2072 | - $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
2073 | - } |
|
2074 | - |
|
2075 | - // add any fill color rules |
|
2076 | - if(!empty($fill)){ |
|
2077 | - $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
2078 | - } |
|
2079 | - if(!empty($fill_i)){ |
|
2080 | - $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
2081 | - } |
|
2082 | - |
|
2083 | - |
|
2084 | - $prefix = $compatibility ? ".bsui " : ""; |
|
2085 | - |
|
2086 | - // darken |
|
2087 | - $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
2088 | - $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
2089 | - $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
2090 | - |
|
2091 | - // lighten |
|
2092 | - $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
2093 | - |
|
2094 | - // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
2095 | - $op_25 = $color_code."40"; // 25% opacity |
|
2096 | - |
|
2097 | - |
|
2098 | - // button states |
|
2099 | - $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
2100 | - $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2101 | - $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
2102 | - $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2103 | - |
|
2104 | - |
|
2105 | - return $output; |
|
2106 | - } |
|
2107 | - |
|
2108 | - /** |
|
2109 | - * Increases or decreases the brightness of a color by a percentage of the current brightness. |
|
2110 | - * |
|
2111 | - * @param string $hexCode Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF` |
|
2112 | - * @param float $adjustPercent A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker. |
|
2113 | - * |
|
2114 | - * @return string |
|
2115 | - */ |
|
2116 | - public static function css_hex_lighten_darken($hexCode, $adjustPercent) { |
|
2117 | - $hexCode = ltrim($hexCode, '#'); |
|
2118 | - |
|
2119 | - if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) { |
|
2120 | - return $hexCode; |
|
2121 | - } |
|
2122 | - |
|
2123 | - if (strlen($hexCode) == 3) { |
|
2124 | - $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2]; |
|
2125 | - } |
|
2126 | - |
|
2127 | - $hexCode = array_map('hexdec', str_split($hexCode, 2)); |
|
2128 | - |
|
2129 | - foreach ($hexCode as & $color) { |
|
2130 | - $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color; |
|
2131 | - $adjustAmount = ceil($adjustableLimit * $adjustPercent); |
|
2132 | - |
|
2133 | - $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT); |
|
2134 | - } |
|
2135 | - |
|
2136 | - return '#' . implode($hexCode); |
|
2137 | - } |
|
2138 | - |
|
2139 | - /** |
|
2140 | - * Check if we should display examples. |
|
2141 | - */ |
|
2142 | - public function maybe_show_examples(){ |
|
2143 | - if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){ |
|
2144 | - echo "<head>"; |
|
2145 | - wp_head(); |
|
2146 | - echo "</head>"; |
|
2147 | - echo "<body>"; |
|
2148 | - echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2149 | - echo "</body>"; |
|
2150 | - exit; |
|
2151 | - } |
|
2152 | - } |
|
2153 | - |
|
2154 | - /** |
|
2155 | - * Get developer examples. |
|
2156 | - * |
|
2157 | - * @return string |
|
2158 | - */ |
|
2159 | - public function get_examples(){ |
|
2160 | - $output = ''; |
|
2161 | - |
|
2162 | - |
|
2163 | - // open form |
|
2164 | - $output .= "<form class='p-5 m-5 border rounded'>"; |
|
2165 | - |
|
2166 | - // input example |
|
2167 | - $output .= aui()->input(array( |
|
2168 | - 'type' => 'text', |
|
2169 | - 'id' => 'text-example', |
|
2170 | - 'name' => 'text-example', |
|
2171 | - 'placeholder' => 'text placeholder', |
|
2172 | - 'title' => 'Text input example', |
|
2173 | - 'value' => '', |
|
2174 | - 'required' => false, |
|
2175 | - 'help_text' => 'help text', |
|
2176 | - 'label' => 'Text input example label' |
|
2177 | - )); |
|
2178 | - |
|
2179 | - // input example |
|
2180 | - $output .= aui()->input(array( |
|
2181 | - 'type' => 'url', |
|
2182 | - 'id' => 'text-example2', |
|
2183 | - 'name' => 'text-example', |
|
2184 | - 'placeholder' => 'url placeholder', |
|
2185 | - 'title' => 'Text input example', |
|
2186 | - 'value' => '', |
|
2187 | - 'required' => false, |
|
2188 | - 'help_text' => 'help text', |
|
2189 | - 'label' => 'Text input example label' |
|
2190 | - )); |
|
2191 | - |
|
2192 | - // checkbox example |
|
2193 | - $output .= aui()->input(array( |
|
2194 | - 'type' => 'checkbox', |
|
2195 | - 'id' => 'checkbox-example', |
|
2196 | - 'name' => 'checkbox-example', |
|
2197 | - 'placeholder' => 'checkbox-example', |
|
2198 | - 'title' => 'Checkbox example', |
|
2199 | - 'value' => '1', |
|
2200 | - 'checked' => true, |
|
2201 | - 'required' => false, |
|
2202 | - 'help_text' => 'help text', |
|
2203 | - 'label' => 'Checkbox checked' |
|
2204 | - )); |
|
2205 | - |
|
2206 | - // checkbox example |
|
2207 | - $output .= aui()->input(array( |
|
2208 | - 'type' => 'checkbox', |
|
2209 | - 'id' => 'checkbox-example2', |
|
2210 | - 'name' => 'checkbox-example2', |
|
2211 | - 'placeholder' => 'checkbox-example', |
|
2212 | - 'title' => 'Checkbox example', |
|
2213 | - 'value' => '1', |
|
2214 | - 'checked' => false, |
|
2215 | - 'required' => false, |
|
2216 | - 'help_text' => 'help text', |
|
2217 | - 'label' => 'Checkbox un-checked' |
|
2218 | - )); |
|
2219 | - |
|
2220 | - // switch example |
|
2221 | - $output .= aui()->input(array( |
|
2222 | - 'type' => 'checkbox', |
|
2223 | - 'id' => 'switch-example', |
|
2224 | - 'name' => 'switch-example', |
|
2225 | - 'placeholder' => 'checkbox-example', |
|
2226 | - 'title' => 'Switch example', |
|
2227 | - 'value' => '1', |
|
2228 | - 'checked' => true, |
|
2229 | - 'switch' => true, |
|
2230 | - 'required' => false, |
|
2231 | - 'help_text' => 'help text', |
|
2232 | - 'label' => 'Switch on' |
|
2233 | - )); |
|
2234 | - |
|
2235 | - // switch example |
|
2236 | - $output .= aui()->input(array( |
|
2237 | - 'type' => 'checkbox', |
|
2238 | - 'id' => 'switch-example2', |
|
2239 | - 'name' => 'switch-example2', |
|
2240 | - 'placeholder' => 'checkbox-example', |
|
2241 | - 'title' => 'Switch example', |
|
2242 | - 'value' => '1', |
|
2243 | - 'checked' => false, |
|
2244 | - 'switch' => true, |
|
2245 | - 'required' => false, |
|
2246 | - 'help_text' => 'help text', |
|
2247 | - 'label' => 'Switch off' |
|
2248 | - )); |
|
2249 | - |
|
2250 | - // close form |
|
2251 | - $output .= "</form>"; |
|
2252 | - |
|
2253 | - return $output; |
|
2254 | - } |
|
2255 | - |
|
2256 | - /** |
|
2257 | - * Calendar params. |
|
2258 | - * |
|
2259 | - * @since 0.1.44 |
|
2260 | - * |
|
2261 | - * @return array Calendar params. |
|
2262 | - */ |
|
2263 | - public static function calendar_params() { |
|
2264 | - $params = array( |
|
2265 | - 'month_long_1' => __( 'January', 'ayecode-connect' ), |
|
2266 | - 'month_long_2' => __( 'February', 'ayecode-connect' ), |
|
2267 | - 'month_long_3' => __( 'March', 'ayecode-connect' ), |
|
2268 | - 'month_long_4' => __( 'April', 'ayecode-connect' ), |
|
2269 | - 'month_long_5' => __( 'May', 'ayecode-connect' ), |
|
2270 | - 'month_long_6' => __( 'June', 'ayecode-connect' ), |
|
2271 | - 'month_long_7' => __( 'July', 'ayecode-connect' ), |
|
2272 | - 'month_long_8' => __( 'August', 'ayecode-connect' ), |
|
2273 | - 'month_long_9' => __( 'September', 'ayecode-connect' ), |
|
2274 | - 'month_long_10' => __( 'October', 'ayecode-connect' ), |
|
2275 | - 'month_long_11' => __( 'November', 'ayecode-connect' ), |
|
2276 | - 'month_long_12' => __( 'December', 'ayecode-connect' ), |
|
2277 | - 'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ), |
|
2278 | - 'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ), |
|
2279 | - 'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ), |
|
2280 | - 'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ), |
|
2281 | - 'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ), |
|
2282 | - 'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ), |
|
2283 | - 'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ), |
|
2284 | - 'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ), |
|
2285 | - 'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ), |
|
2286 | - 'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ), |
|
2287 | - 'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ), |
|
2288 | - 'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ), |
|
2289 | - 'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ), |
|
2290 | - 'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ), |
|
2291 | - 'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ), |
|
2292 | - 'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ), |
|
2293 | - 'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ), |
|
2294 | - 'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ), |
|
2295 | - 'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ), |
|
2296 | - 'day_s2_1' => __( 'Su', 'ayecode-connect' ), |
|
2297 | - 'day_s2_2' => __( 'Mo', 'ayecode-connect' ), |
|
2298 | - 'day_s2_3' => __( 'Tu', 'ayecode-connect' ), |
|
2299 | - 'day_s2_4' => __( 'We', 'ayecode-connect' ), |
|
2300 | - 'day_s2_5' => __( 'Th', 'ayecode-connect' ), |
|
2301 | - 'day_s2_6' => __( 'Fr', 'ayecode-connect' ), |
|
2302 | - 'day_s2_7' => __( 'Sa', 'ayecode-connect' ), |
|
2303 | - 'day_s3_1' => __( 'Sun', 'ayecode-connect' ), |
|
2304 | - 'day_s3_2' => __( 'Mon', 'ayecode-connect' ), |
|
2305 | - 'day_s3_3' => __( 'Tue', 'ayecode-connect' ), |
|
2306 | - 'day_s3_4' => __( 'Wed', 'ayecode-connect' ), |
|
2307 | - 'day_s3_5' => __( 'Thu', 'ayecode-connect' ), |
|
2308 | - 'day_s3_6' => __( 'Fri', 'ayecode-connect' ), |
|
2309 | - 'day_s3_7' => __( 'Sat', 'ayecode-connect' ), |
|
2310 | - 'day_s5_1' => __( 'Sunday', 'ayecode-connect' ), |
|
2311 | - 'day_s5_2' => __( 'Monday', 'ayecode-connect' ), |
|
2312 | - 'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ), |
|
2313 | - 'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ), |
|
2314 | - 'day_s5_5' => __( 'Thursday', 'ayecode-connect' ), |
|
2315 | - 'day_s5_6' => __( 'Friday', 'ayecode-connect' ), |
|
2316 | - 'day_s5_7' => __( 'Saturday', 'ayecode-connect' ), |
|
2317 | - 'am_lower' => __( 'am', 'ayecode-connect' ), |
|
2318 | - 'pm_lower' => __( 'pm', 'ayecode-connect' ), |
|
2319 | - 'am_upper' => __( 'AM', 'ayecode-connect' ), |
|
2320 | - 'pm_upper' => __( 'PM', 'ayecode-connect' ), |
|
2321 | - 'firstDayOfWeek' => (int) get_option( 'start_of_week' ), |
|
2322 | - 'time_24hr' => false, |
|
2323 | - 'year' => __( 'Year', 'ayecode-connect' ), |
|
2324 | - 'hour' => __( 'Hour', 'ayecode-connect' ), |
|
2325 | - 'minute' => __( 'Minute', 'ayecode-connect' ), |
|
2326 | - 'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ), |
|
2327 | - 'rangeSeparator' => __( ' to ', 'ayecode-connect' ), |
|
2328 | - 'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ), |
|
2329 | - 'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' ) |
|
2330 | - ); |
|
2331 | - |
|
2332 | - return apply_filters( 'ayecode_ui_calendar_params', $params ); |
|
2333 | - } |
|
2334 | - |
|
2335 | - /** |
|
2336 | - * Flatpickr calendar localize. |
|
2337 | - * |
|
2338 | - * @since 0.1.44 |
|
2339 | - * |
|
2340 | - * @return string Calendar locale. |
|
2341 | - */ |
|
2342 | - public static function flatpickr_locale() { |
|
2343 | - $params = self::calendar_params(); |
|
2344 | - |
|
2345 | - if ( is_string( $params ) ) { |
|
2346 | - $params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' ); |
|
2347 | - } else { |
|
2348 | - foreach ( (array) $params as $key => $value ) { |
|
2349 | - if ( ! is_scalar( $value ) ) { |
|
2350 | - continue; |
|
2351 | - } |
|
2352 | - |
|
2353 | - $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2354 | - } |
|
2355 | - } |
|
1866 | + '.nav-pills .nav-link.active' => array('b'), |
|
1867 | + '.nav-pills .show>.nav-link' => array('b'), |
|
1868 | + '.page-link' => array('c'), |
|
1869 | + '.page-item.active .page-link' => array('b','o'), |
|
1870 | + '.badge-primary' => array('b'), |
|
1871 | + '.alert-primary' => array('b','o'), |
|
1872 | + '.progress-bar' => array('b'), |
|
1873 | + '.list-group-item.active' => array('b','o'), |
|
1874 | + '.bg-primary' => array('b','f'), |
|
1875 | + '.btn-link.btn-primary' => array('c'), |
|
1876 | + '.select2-container .select2-results__option--highlighted.select2-results__option[aria-selected=true]' => array('b'), |
|
1877 | + ); |
|
1878 | + |
|
1879 | + $important_selectors = array( |
|
1880 | + '.bg-primary' => array('b','f'), |
|
1881 | + '.border-primary' => array('o'), |
|
1882 | + '.text-primary' => array('c'), |
|
1883 | + ); |
|
1884 | + |
|
1885 | + $color = array(); |
|
1886 | + $color_i = array(); |
|
1887 | + $background = array(); |
|
1888 | + $background_i = array(); |
|
1889 | + $border = array(); |
|
1890 | + $border_i = array(); |
|
1891 | + $fill = array(); |
|
1892 | + $fill_i = array(); |
|
1893 | + |
|
1894 | + $output = ''; |
|
1895 | + |
|
1896 | + // build rules into each type |
|
1897 | + foreach($selectors as $selector => $types){ |
|
1898 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
1899 | + $types = array_combine($types,$types); |
|
1900 | + if(isset($types['c'])){$color[] = $selector;} |
|
1901 | + if(isset($types['b'])){$background[] = $selector;} |
|
1902 | + if(isset($types['o'])){$border[] = $selector;} |
|
1903 | + if(isset($types['f'])){$fill[] = $selector;} |
|
1904 | + } |
|
1905 | + |
|
1906 | + // build rules into each type |
|
1907 | + foreach($important_selectors as $selector => $types){ |
|
1908 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
1909 | + $types = array_combine($types,$types); |
|
1910 | + if(isset($types['c'])){$color_i[] = $selector;} |
|
1911 | + if(isset($types['b'])){$background_i[] = $selector;} |
|
1912 | + if(isset($types['o'])){$border_i[] = $selector;} |
|
1913 | + if(isset($types['f'])){$fill_i[] = $selector;} |
|
1914 | + } |
|
1915 | + |
|
1916 | + // add any color rules |
|
1917 | + if(!empty($color)){ |
|
1918 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
1919 | + } |
|
1920 | + if(!empty($color_i)){ |
|
1921 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
1922 | + } |
|
1923 | + |
|
1924 | + // add any background color rules |
|
1925 | + if(!empty($background)){ |
|
1926 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
1927 | + } |
|
1928 | + if(!empty($background_i)){ |
|
1929 | + $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
1930 | + } |
|
1931 | + |
|
1932 | + // add any border color rules |
|
1933 | + if(!empty($border)){ |
|
1934 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
1935 | + } |
|
1936 | + if(!empty($border_i)){ |
|
1937 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
1938 | + } |
|
1939 | + |
|
1940 | + // add any fill color rules |
|
1941 | + if(!empty($fill)){ |
|
1942 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
1943 | + } |
|
1944 | + if(!empty($fill_i)){ |
|
1945 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
1946 | + } |
|
1947 | + |
|
1948 | + |
|
1949 | + $prefix = $compatibility ? ".bsui " : ""; |
|
1950 | + |
|
1951 | + // darken |
|
1952 | + $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
1953 | + $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
1954 | + $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
1955 | + |
|
1956 | + // lighten |
|
1957 | + $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
1958 | + |
|
1959 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
1960 | + $op_25 = $color_code."40"; // 25% opacity |
|
1961 | + |
|
1962 | + |
|
1963 | + // button states |
|
1964 | + $output .= $prefix ." .btn-primary:hover, $prefix .btn-primary:focus, $prefix .btn-primary.focus{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
1965 | + $output .= $prefix ." .btn-outline-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-primary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1966 | + $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active, $prefix .btn-primary:not(:disabled):not(.disabled).active, .show>$prefix .btn-primary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
1967 | + $output .= $prefix ." .btn-primary:not(:disabled):not(.disabled):active:focus, $prefix .btn-primary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-primary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2356 | 1968 | |
2357 | - $day_s3 = array(); |
|
2358 | - $day_s5 = array(); |
|
2359 | 1969 | |
2360 | - for ( $i = 1; $i <= 7; $i ++ ) { |
|
2361 | - $day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2362 | - $day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2363 | - } |
|
1970 | + // dropdown's |
|
1971 | + $output .= $prefix ." .dropdown-item.active, $prefix .dropdown-item:active{background-color: $color_code;} "; |
|
2364 | 1972 | |
2365 | - $month_s = array(); |
|
2366 | - $month_long = array(); |
|
2367 | 1973 | |
2368 | - for ( $i = 1; $i <= 12; $i ++ ) { |
|
2369 | - $month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2370 | - $month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2371 | - } |
|
1974 | + // input states |
|
1975 | + $output .= $prefix ." .form-control:focus{border-color: ".$lighten_25.";box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2372 | 1976 | |
2373 | - ob_start(); |
|
2374 | - if ( 0 ) { ?><script><?php } ?> |
|
1977 | + // page link |
|
1978 | + $output .= $prefix ." .page-link:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
1979 | + |
|
1980 | + return $output; |
|
1981 | + } |
|
1982 | + |
|
1983 | + /** |
|
1984 | + * |
|
1985 | + * @deprecated 0.1.76 Use css_overwrite() |
|
1986 | + * |
|
1987 | + * @param $color_code |
|
1988 | + * @param $compatibility |
|
1989 | + * |
|
1990 | + * @return string |
|
1991 | + */ |
|
1992 | + public static function css_secondary($color_code,$compatibility){; |
|
1993 | + $color_code = sanitize_hex_color($color_code); |
|
1994 | + if(!$color_code){return '';} |
|
1995 | + /** |
|
1996 | + * c = color, b = background color, o = border-color, f = fill |
|
1997 | + */ |
|
1998 | + $selectors = array( |
|
1999 | + '.btn-secondary' => array('b','o'), |
|
2000 | + '.btn-secondary.disabled' => array('b','o'), |
|
2001 | + '.btn-secondary:disabled' => array('b','o'), |
|
2002 | + '.btn-outline-secondary' => array('c','o'), |
|
2003 | + '.btn-outline-secondary:hover' => array('b','o'), |
|
2004 | + '.btn-outline-secondary.disabled' => array('c'), |
|
2005 | + '.btn-outline-secondary:disabled' => array('c'), |
|
2006 | + '.btn-outline-secondary:not(:disabled):not(.disabled):active' => array('b','o'), |
|
2007 | + '.btn-outline-secondary:not(:disabled):not(.disabled).active' => array('b','o'), |
|
2008 | + '.btn-outline-secondary.dropdown-toggle' => array('b','o'), |
|
2009 | + '.badge-secondary' => array('b'), |
|
2010 | + '.alert-secondary' => array('b','o'), |
|
2011 | + '.btn-link.btn-secondary' => array('c'), |
|
2012 | + ); |
|
2013 | + |
|
2014 | + $important_selectors = array( |
|
2015 | + '.bg-secondary' => array('b','f'), |
|
2016 | + '.border-secondary' => array('o'), |
|
2017 | + '.text-secondary' => array('c'), |
|
2018 | + ); |
|
2019 | + |
|
2020 | + $color = array(); |
|
2021 | + $color_i = array(); |
|
2022 | + $background = array(); |
|
2023 | + $background_i = array(); |
|
2024 | + $border = array(); |
|
2025 | + $border_i = array(); |
|
2026 | + $fill = array(); |
|
2027 | + $fill_i = array(); |
|
2028 | + |
|
2029 | + $output = ''; |
|
2030 | + |
|
2031 | + // build rules into each type |
|
2032 | + foreach($selectors as $selector => $types){ |
|
2033 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
2034 | + $types = array_combine($types,$types); |
|
2035 | + if(isset($types['c'])){$color[] = $selector;} |
|
2036 | + if(isset($types['b'])){$background[] = $selector;} |
|
2037 | + if(isset($types['o'])){$border[] = $selector;} |
|
2038 | + if(isset($types['f'])){$fill[] = $selector;} |
|
2039 | + } |
|
2040 | + |
|
2041 | + // build rules into each type |
|
2042 | + foreach($important_selectors as $selector => $types){ |
|
2043 | + $selector = $compatibility ? ".bsui ".$selector : $selector; |
|
2044 | + $types = array_combine($types,$types); |
|
2045 | + if(isset($types['c'])){$color_i[] = $selector;} |
|
2046 | + if(isset($types['b'])){$background_i[] = $selector;} |
|
2047 | + if(isset($types['o'])){$border_i[] = $selector;} |
|
2048 | + if(isset($types['f'])){$fill_i[] = $selector;} |
|
2049 | + } |
|
2050 | + |
|
2051 | + // add any color rules |
|
2052 | + if(!empty($color)){ |
|
2053 | + $output .= implode(",",$color) . "{color: $color_code;} "; |
|
2054 | + } |
|
2055 | + if(!empty($color_i)){ |
|
2056 | + $output .= implode(",",$color_i) . "{color: $color_code !important;} "; |
|
2057 | + } |
|
2058 | + |
|
2059 | + // add any background color rules |
|
2060 | + if(!empty($background)){ |
|
2061 | + $output .= implode(",",$background) . "{background-color: $color_code;} "; |
|
2062 | + } |
|
2063 | + if(!empty($background_i)){ |
|
2064 | + $output .= implode(",",$background_i) . "{background-color: $color_code !important;} "; |
|
2065 | + } |
|
2066 | + |
|
2067 | + // add any border color rules |
|
2068 | + if(!empty($border)){ |
|
2069 | + $output .= implode(",",$border) . "{border-color: $color_code;} "; |
|
2070 | + } |
|
2071 | + if(!empty($border_i)){ |
|
2072 | + $output .= implode(",",$border_i) . "{border-color: $color_code !important;} "; |
|
2073 | + } |
|
2074 | + |
|
2075 | + // add any fill color rules |
|
2076 | + if(!empty($fill)){ |
|
2077 | + $output .= implode(",",$fill) . "{fill: $color_code;} "; |
|
2078 | + } |
|
2079 | + if(!empty($fill_i)){ |
|
2080 | + $output .= implode(",",$fill_i) . "{fill: $color_code !important;} "; |
|
2081 | + } |
|
2082 | + |
|
2083 | + |
|
2084 | + $prefix = $compatibility ? ".bsui " : ""; |
|
2085 | + |
|
2086 | + // darken |
|
2087 | + $darker_075 = self::css_hex_lighten_darken($color_code,"-0.075"); |
|
2088 | + $darker_10 = self::css_hex_lighten_darken($color_code,"-0.10"); |
|
2089 | + $darker_125 = self::css_hex_lighten_darken($color_code,"-0.125"); |
|
2090 | + |
|
2091 | + // lighten |
|
2092 | + $lighten_25 = self::css_hex_lighten_darken($color_code,"0.25"); |
|
2093 | + |
|
2094 | + // opacity see https://css-tricks.com/8-digit-hex-codes/ |
|
2095 | + $op_25 = $color_code."40"; // 25% opacity |
|
2096 | + |
|
2097 | + |
|
2098 | + // button states |
|
2099 | + $output .= $prefix ." .btn-secondary:hover{background-color: ".$darker_075."; border-color: ".$darker_10.";} "; |
|
2100 | + $output .= $prefix ." .btn-outline-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-outline-secondary.dropdown-toggle:focus{box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2101 | + $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active, $prefix .btn-secondary:not(:disabled):not(.disabled).active, .show>$prefix .btn-secondary.dropdown-toggle{background-color: ".$darker_10."; border-color: ".$darker_125.";} "; |
|
2102 | + $output .= $prefix ." .btn-secondary:not(:disabled):not(.disabled):active:focus, $prefix .btn-secondary:not(:disabled):not(.disabled).active:focus, .show>$prefix .btn-secondary.dropdown-toggle:focus {box-shadow: 0 0 0 0.2rem $op_25;} "; |
|
2103 | + |
|
2104 | + |
|
2105 | + return $output; |
|
2106 | + } |
|
2107 | + |
|
2108 | + /** |
|
2109 | + * Increases or decreases the brightness of a color by a percentage of the current brightness. |
|
2110 | + * |
|
2111 | + * @param string $hexCode Supported formats: `#FFF`, `#FFFFFF`, `FFF`, `FFFFFF` |
|
2112 | + * @param float $adjustPercent A number between -1 and 1. E.g. 0.3 = 30% lighter; -0.4 = 40% darker. |
|
2113 | + * |
|
2114 | + * @return string |
|
2115 | + */ |
|
2116 | + public static function css_hex_lighten_darken($hexCode, $adjustPercent) { |
|
2117 | + $hexCode = ltrim($hexCode, '#'); |
|
2118 | + |
|
2119 | + if ( strpos( $hexCode, 'rgba(' ) !== false || strpos( $hexCode, 'rgb(' ) !== false ) { |
|
2120 | + return $hexCode; |
|
2121 | + } |
|
2122 | + |
|
2123 | + if (strlen($hexCode) == 3) { |
|
2124 | + $hexCode = $hexCode[0] . $hexCode[0] . $hexCode[1] . $hexCode[1] . $hexCode[2] . $hexCode[2]; |
|
2125 | + } |
|
2126 | + |
|
2127 | + $hexCode = array_map('hexdec', str_split($hexCode, 2)); |
|
2128 | + |
|
2129 | + foreach ($hexCode as & $color) { |
|
2130 | + $adjustableLimit = $adjustPercent < 0 ? $color : 255 - $color; |
|
2131 | + $adjustAmount = ceil($adjustableLimit * $adjustPercent); |
|
2132 | + |
|
2133 | + $color = str_pad(dechex($color + $adjustAmount), 2, '0', STR_PAD_LEFT); |
|
2134 | + } |
|
2135 | + |
|
2136 | + return '#' . implode($hexCode); |
|
2137 | + } |
|
2138 | + |
|
2139 | + /** |
|
2140 | + * Check if we should display examples. |
|
2141 | + */ |
|
2142 | + public function maybe_show_examples(){ |
|
2143 | + if(current_user_can('manage_options') && isset($_REQUEST['preview-aui'])){ |
|
2144 | + echo "<head>"; |
|
2145 | + wp_head(); |
|
2146 | + echo "</head>"; |
|
2147 | + echo "<body>"; |
|
2148 | + echo $this->get_examples(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2149 | + echo "</body>"; |
|
2150 | + exit; |
|
2151 | + } |
|
2152 | + } |
|
2153 | + |
|
2154 | + /** |
|
2155 | + * Get developer examples. |
|
2156 | + * |
|
2157 | + * @return string |
|
2158 | + */ |
|
2159 | + public function get_examples(){ |
|
2160 | + $output = ''; |
|
2161 | + |
|
2162 | + |
|
2163 | + // open form |
|
2164 | + $output .= "<form class='p-5 m-5 border rounded'>"; |
|
2165 | + |
|
2166 | + // input example |
|
2167 | + $output .= aui()->input(array( |
|
2168 | + 'type' => 'text', |
|
2169 | + 'id' => 'text-example', |
|
2170 | + 'name' => 'text-example', |
|
2171 | + 'placeholder' => 'text placeholder', |
|
2172 | + 'title' => 'Text input example', |
|
2173 | + 'value' => '', |
|
2174 | + 'required' => false, |
|
2175 | + 'help_text' => 'help text', |
|
2176 | + 'label' => 'Text input example label' |
|
2177 | + )); |
|
2178 | + |
|
2179 | + // input example |
|
2180 | + $output .= aui()->input(array( |
|
2181 | + 'type' => 'url', |
|
2182 | + 'id' => 'text-example2', |
|
2183 | + 'name' => 'text-example', |
|
2184 | + 'placeholder' => 'url placeholder', |
|
2185 | + 'title' => 'Text input example', |
|
2186 | + 'value' => '', |
|
2187 | + 'required' => false, |
|
2188 | + 'help_text' => 'help text', |
|
2189 | + 'label' => 'Text input example label' |
|
2190 | + )); |
|
2191 | + |
|
2192 | + // checkbox example |
|
2193 | + $output .= aui()->input(array( |
|
2194 | + 'type' => 'checkbox', |
|
2195 | + 'id' => 'checkbox-example', |
|
2196 | + 'name' => 'checkbox-example', |
|
2197 | + 'placeholder' => 'checkbox-example', |
|
2198 | + 'title' => 'Checkbox example', |
|
2199 | + 'value' => '1', |
|
2200 | + 'checked' => true, |
|
2201 | + 'required' => false, |
|
2202 | + 'help_text' => 'help text', |
|
2203 | + 'label' => 'Checkbox checked' |
|
2204 | + )); |
|
2205 | + |
|
2206 | + // checkbox example |
|
2207 | + $output .= aui()->input(array( |
|
2208 | + 'type' => 'checkbox', |
|
2209 | + 'id' => 'checkbox-example2', |
|
2210 | + 'name' => 'checkbox-example2', |
|
2211 | + 'placeholder' => 'checkbox-example', |
|
2212 | + 'title' => 'Checkbox example', |
|
2213 | + 'value' => '1', |
|
2214 | + 'checked' => false, |
|
2215 | + 'required' => false, |
|
2216 | + 'help_text' => 'help text', |
|
2217 | + 'label' => 'Checkbox un-checked' |
|
2218 | + )); |
|
2219 | + |
|
2220 | + // switch example |
|
2221 | + $output .= aui()->input(array( |
|
2222 | + 'type' => 'checkbox', |
|
2223 | + 'id' => 'switch-example', |
|
2224 | + 'name' => 'switch-example', |
|
2225 | + 'placeholder' => 'checkbox-example', |
|
2226 | + 'title' => 'Switch example', |
|
2227 | + 'value' => '1', |
|
2228 | + 'checked' => true, |
|
2229 | + 'switch' => true, |
|
2230 | + 'required' => false, |
|
2231 | + 'help_text' => 'help text', |
|
2232 | + 'label' => 'Switch on' |
|
2233 | + )); |
|
2234 | + |
|
2235 | + // switch example |
|
2236 | + $output .= aui()->input(array( |
|
2237 | + 'type' => 'checkbox', |
|
2238 | + 'id' => 'switch-example2', |
|
2239 | + 'name' => 'switch-example2', |
|
2240 | + 'placeholder' => 'checkbox-example', |
|
2241 | + 'title' => 'Switch example', |
|
2242 | + 'value' => '1', |
|
2243 | + 'checked' => false, |
|
2244 | + 'switch' => true, |
|
2245 | + 'required' => false, |
|
2246 | + 'help_text' => 'help text', |
|
2247 | + 'label' => 'Switch off' |
|
2248 | + )); |
|
2249 | + |
|
2250 | + // close form |
|
2251 | + $output .= "</form>"; |
|
2252 | + |
|
2253 | + return $output; |
|
2254 | + } |
|
2255 | + |
|
2256 | + /** |
|
2257 | + * Calendar params. |
|
2258 | + * |
|
2259 | + * @since 0.1.44 |
|
2260 | + * |
|
2261 | + * @return array Calendar params. |
|
2262 | + */ |
|
2263 | + public static function calendar_params() { |
|
2264 | + $params = array( |
|
2265 | + 'month_long_1' => __( 'January', 'ayecode-connect' ), |
|
2266 | + 'month_long_2' => __( 'February', 'ayecode-connect' ), |
|
2267 | + 'month_long_3' => __( 'March', 'ayecode-connect' ), |
|
2268 | + 'month_long_4' => __( 'April', 'ayecode-connect' ), |
|
2269 | + 'month_long_5' => __( 'May', 'ayecode-connect' ), |
|
2270 | + 'month_long_6' => __( 'June', 'ayecode-connect' ), |
|
2271 | + 'month_long_7' => __( 'July', 'ayecode-connect' ), |
|
2272 | + 'month_long_8' => __( 'August', 'ayecode-connect' ), |
|
2273 | + 'month_long_9' => __( 'September', 'ayecode-connect' ), |
|
2274 | + 'month_long_10' => __( 'October', 'ayecode-connect' ), |
|
2275 | + 'month_long_11' => __( 'November', 'ayecode-connect' ), |
|
2276 | + 'month_long_12' => __( 'December', 'ayecode-connect' ), |
|
2277 | + 'month_s_1' => _x( 'Jan', 'January abbreviation', 'ayecode-connect' ), |
|
2278 | + 'month_s_2' => _x( 'Feb', 'February abbreviation', 'ayecode-connect' ), |
|
2279 | + 'month_s_3' => _x( 'Mar', 'March abbreviation', 'ayecode-connect' ), |
|
2280 | + 'month_s_4' => _x( 'Apr', 'April abbreviation', 'ayecode-connect' ), |
|
2281 | + 'month_s_5' => _x( 'May', 'May abbreviation', 'ayecode-connect' ), |
|
2282 | + 'month_s_6' => _x( 'Jun', 'June abbreviation', 'ayecode-connect' ), |
|
2283 | + 'month_s_7' => _x( 'Jul', 'July abbreviation', 'ayecode-connect' ), |
|
2284 | + 'month_s_8' => _x( 'Aug', 'August abbreviation', 'ayecode-connect' ), |
|
2285 | + 'month_s_9' => _x( 'Sep', 'September abbreviation', 'ayecode-connect' ), |
|
2286 | + 'month_s_10' => _x( 'Oct', 'October abbreviation', 'ayecode-connect' ), |
|
2287 | + 'month_s_11' => _x( 'Nov', 'November abbreviation', 'ayecode-connect' ), |
|
2288 | + 'month_s_12' => _x( 'Dec', 'December abbreviation', 'ayecode-connect' ), |
|
2289 | + 'day_s1_1' => _x( 'S', 'Sunday initial', 'ayecode-connect' ), |
|
2290 | + 'day_s1_2' => _x( 'M', 'Monday initial', 'ayecode-connect' ), |
|
2291 | + 'day_s1_3' => _x( 'T', 'Tuesday initial', 'ayecode-connect' ), |
|
2292 | + 'day_s1_4' => _x( 'W', 'Wednesday initial', 'ayecode-connect' ), |
|
2293 | + 'day_s1_5' => _x( 'T', 'Friday initial', 'ayecode-connect' ), |
|
2294 | + 'day_s1_6' => _x( 'F', 'Thursday initial', 'ayecode-connect' ), |
|
2295 | + 'day_s1_7' => _x( 'S', 'Saturday initial', 'ayecode-connect' ), |
|
2296 | + 'day_s2_1' => __( 'Su', 'ayecode-connect' ), |
|
2297 | + 'day_s2_2' => __( 'Mo', 'ayecode-connect' ), |
|
2298 | + 'day_s2_3' => __( 'Tu', 'ayecode-connect' ), |
|
2299 | + 'day_s2_4' => __( 'We', 'ayecode-connect' ), |
|
2300 | + 'day_s2_5' => __( 'Th', 'ayecode-connect' ), |
|
2301 | + 'day_s2_6' => __( 'Fr', 'ayecode-connect' ), |
|
2302 | + 'day_s2_7' => __( 'Sa', 'ayecode-connect' ), |
|
2303 | + 'day_s3_1' => __( 'Sun', 'ayecode-connect' ), |
|
2304 | + 'day_s3_2' => __( 'Mon', 'ayecode-connect' ), |
|
2305 | + 'day_s3_3' => __( 'Tue', 'ayecode-connect' ), |
|
2306 | + 'day_s3_4' => __( 'Wed', 'ayecode-connect' ), |
|
2307 | + 'day_s3_5' => __( 'Thu', 'ayecode-connect' ), |
|
2308 | + 'day_s3_6' => __( 'Fri', 'ayecode-connect' ), |
|
2309 | + 'day_s3_7' => __( 'Sat', 'ayecode-connect' ), |
|
2310 | + 'day_s5_1' => __( 'Sunday', 'ayecode-connect' ), |
|
2311 | + 'day_s5_2' => __( 'Monday', 'ayecode-connect' ), |
|
2312 | + 'day_s5_3' => __( 'Tuesday', 'ayecode-connect' ), |
|
2313 | + 'day_s5_4' => __( 'Wednesday', 'ayecode-connect' ), |
|
2314 | + 'day_s5_5' => __( 'Thursday', 'ayecode-connect' ), |
|
2315 | + 'day_s5_6' => __( 'Friday', 'ayecode-connect' ), |
|
2316 | + 'day_s5_7' => __( 'Saturday', 'ayecode-connect' ), |
|
2317 | + 'am_lower' => __( 'am', 'ayecode-connect' ), |
|
2318 | + 'pm_lower' => __( 'pm', 'ayecode-connect' ), |
|
2319 | + 'am_upper' => __( 'AM', 'ayecode-connect' ), |
|
2320 | + 'pm_upper' => __( 'PM', 'ayecode-connect' ), |
|
2321 | + 'firstDayOfWeek' => (int) get_option( 'start_of_week' ), |
|
2322 | + 'time_24hr' => false, |
|
2323 | + 'year' => __( 'Year', 'ayecode-connect' ), |
|
2324 | + 'hour' => __( 'Hour', 'ayecode-connect' ), |
|
2325 | + 'minute' => __( 'Minute', 'ayecode-connect' ), |
|
2326 | + 'weekAbbreviation' => __( 'Wk', 'ayecode-connect' ), |
|
2327 | + 'rangeSeparator' => __( ' to ', 'ayecode-connect' ), |
|
2328 | + 'scrollTitle' => __( 'Scroll to increment', 'ayecode-connect' ), |
|
2329 | + 'toggleTitle' => __( 'Click to toggle', 'ayecode-connect' ) |
|
2330 | + ); |
|
2331 | + |
|
2332 | + return apply_filters( 'ayecode_ui_calendar_params', $params ); |
|
2333 | + } |
|
2334 | + |
|
2335 | + /** |
|
2336 | + * Flatpickr calendar localize. |
|
2337 | + * |
|
2338 | + * @since 0.1.44 |
|
2339 | + * |
|
2340 | + * @return string Calendar locale. |
|
2341 | + */ |
|
2342 | + public static function flatpickr_locale() { |
|
2343 | + $params = self::calendar_params(); |
|
2344 | + |
|
2345 | + if ( is_string( $params ) ) { |
|
2346 | + $params = html_entity_decode( $params, ENT_QUOTES, 'UTF-8' ); |
|
2347 | + } else { |
|
2348 | + foreach ( (array) $params as $key => $value ) { |
|
2349 | + if ( ! is_scalar( $value ) ) { |
|
2350 | + continue; |
|
2351 | + } |
|
2352 | + |
|
2353 | + $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2354 | + } |
|
2355 | + } |
|
2356 | + |
|
2357 | + $day_s3 = array(); |
|
2358 | + $day_s5 = array(); |
|
2359 | + |
|
2360 | + for ( $i = 1; $i <= 7; $i ++ ) { |
|
2361 | + $day_s3[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2362 | + $day_s5[] = addslashes( $params[ 'day_s3_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2363 | + } |
|
2364 | + |
|
2365 | + $month_s = array(); |
|
2366 | + $month_long = array(); |
|
2367 | + |
|
2368 | + for ( $i = 1; $i <= 12; $i ++ ) { |
|
2369 | + $month_s[] = addslashes( $params[ 'month_s_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2370 | + $month_long[] = addslashes( $params[ 'month_long_' . $i ] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped |
|
2371 | + } |
|
2372 | + |
|
2373 | + ob_start(); |
|
2374 | + if ( 0 ) { ?><script><?php } ?> |
|
2375 | 2375 | { |
2376 | 2376 | weekdays: { |
2377 | 2377 | shorthand: ['<?php echo implode( "','", $day_s3 ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>'], |
@@ -2410,189 +2410,189 @@ discard block |
||
2410 | 2410 | } |
2411 | 2411 | <?php if ( 0 ) { ?></script><?php } ?> |
2412 | 2412 | <?php |
2413 | - $locale = ob_get_clean(); |
|
2414 | - |
|
2415 | - return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) ); |
|
2416 | - } |
|
2417 | - |
|
2418 | - /** |
|
2419 | - * Select2 JS params. |
|
2420 | - * |
|
2421 | - * @since 0.1.44 |
|
2422 | - * |
|
2423 | - * @return array Select2 JS params. |
|
2424 | - */ |
|
2425 | - public static function select2_params() { |
|
2426 | - $params = array( |
|
2427 | - 'i18n_select_state_text' => esc_attr__( 'Select an option…', 'ayecode-connect' ), |
|
2428 | - 'i18n_no_matches' => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ), |
|
2429 | - 'i18n_ajax_error' => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ), |
|
2430 | - 'i18n_input_too_short_1' => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ), |
|
2431 | - 'i18n_input_too_short_n' => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ), |
|
2432 | - 'i18n_input_too_long_1' => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ), |
|
2433 | - 'i18n_input_too_long_n' => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ), |
|
2434 | - 'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ), |
|
2435 | - 'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ), |
|
2436 | - 'i18n_load_more' => _x( 'Loading more results…', 'enhanced select', 'ayecode-connect' ), |
|
2437 | - 'i18n_searching' => _x( 'Searching…', 'enhanced select', 'ayecode-connect' ) |
|
2438 | - ); |
|
2439 | - |
|
2440 | - return apply_filters( 'ayecode_ui_select2_params', $params ); |
|
2441 | - } |
|
2442 | - |
|
2443 | - /** |
|
2444 | - * Select2 JS localize. |
|
2445 | - * |
|
2446 | - * @since 0.1.44 |
|
2447 | - * |
|
2448 | - * @return string Select2 JS locale. |
|
2449 | - */ |
|
2450 | - public static function select2_locale() { |
|
2451 | - $params = self::select2_params(); |
|
2452 | - |
|
2453 | - foreach ( (array) $params as $key => $value ) { |
|
2454 | - if ( ! is_scalar( $value ) ) { |
|
2455 | - continue; |
|
2456 | - } |
|
2413 | + $locale = ob_get_clean(); |
|
2457 | 2414 | |
2458 | - $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2459 | - } |
|
2460 | - |
|
2461 | - $locale = json_encode( $params ); |
|
2462 | - |
|
2463 | - return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) ); |
|
2464 | - } |
|
2465 | - |
|
2466 | - /** |
|
2467 | - * Time ago JS localize. |
|
2468 | - * |
|
2469 | - * @since 0.1.47 |
|
2470 | - * |
|
2471 | - * @return string Time ago JS locale. |
|
2472 | - */ |
|
2473 | - public static function timeago_locale() { |
|
2474 | - $params = array( |
|
2475 | - 'prefix_ago' => '', |
|
2476 | - 'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ), |
|
2477 | - 'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ', |
|
2478 | - 'suffix_after' => '', |
|
2479 | - 'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ), |
|
2480 | - 'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ), |
|
2481 | - 'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ), |
|
2482 | - 'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ), |
|
2483 | - 'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ), |
|
2484 | - 'day' => _x( 'a day', 'time ago', 'ayecode-connect' ), |
|
2485 | - 'days' => _x( '%d days', 'time ago', 'ayecode-connect' ), |
|
2486 | - 'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ), |
|
2487 | - 'months' => _x( '%d months', 'time ago', 'ayecode-connect' ), |
|
2488 | - 'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ), |
|
2489 | - 'years' => _x( '%d years', 'time ago', 'ayecode-connect' ), |
|
2490 | - ); |
|
2491 | - |
|
2492 | - $params = apply_filters( 'ayecode_ui_timeago_params', $params ); |
|
2493 | - |
|
2494 | - foreach ( (array) $params as $key => $value ) { |
|
2495 | - if ( ! is_scalar( $value ) ) { |
|
2496 | - continue; |
|
2497 | - } |
|
2415 | + return apply_filters( 'ayecode_ui_flatpickr_locale', trim( $locale ) ); |
|
2416 | + } |
|
2417 | + |
|
2418 | + /** |
|
2419 | + * Select2 JS params. |
|
2420 | + * |
|
2421 | + * @since 0.1.44 |
|
2422 | + * |
|
2423 | + * @return array Select2 JS params. |
|
2424 | + */ |
|
2425 | + public static function select2_params() { |
|
2426 | + $params = array( |
|
2427 | + 'i18n_select_state_text' => esc_attr__( 'Select an option…', 'ayecode-connect' ), |
|
2428 | + 'i18n_no_matches' => _x( 'No matches found', 'enhanced select', 'ayecode-connect' ), |
|
2429 | + 'i18n_ajax_error' => _x( 'Loading failed', 'enhanced select', 'ayecode-connect' ), |
|
2430 | + 'i18n_input_too_short_1' => _x( 'Please enter 1 or more characters', 'enhanced select', 'ayecode-connect' ), |
|
2431 | + 'i18n_input_too_short_n' => _x( 'Please enter %item% or more characters', 'enhanced select', 'ayecode-connect' ), |
|
2432 | + 'i18n_input_too_long_1' => _x( 'Please delete 1 character', 'enhanced select', 'ayecode-connect' ), |
|
2433 | + 'i18n_input_too_long_n' => _x( 'Please delete %item% characters', 'enhanced select', 'ayecode-connect' ), |
|
2434 | + 'i18n_selection_too_long_1' => _x( 'You can only select 1 item', 'enhanced select', 'ayecode-connect' ), |
|
2435 | + 'i18n_selection_too_long_n' => _x( 'You can only select %item% items', 'enhanced select', 'ayecode-connect' ), |
|
2436 | + 'i18n_load_more' => _x( 'Loading more results…', 'enhanced select', 'ayecode-connect' ), |
|
2437 | + 'i18n_searching' => _x( 'Searching…', 'enhanced select', 'ayecode-connect' ) |
|
2438 | + ); |
|
2439 | + |
|
2440 | + return apply_filters( 'ayecode_ui_select2_params', $params ); |
|
2441 | + } |
|
2442 | + |
|
2443 | + /** |
|
2444 | + * Select2 JS localize. |
|
2445 | + * |
|
2446 | + * @since 0.1.44 |
|
2447 | + * |
|
2448 | + * @return string Select2 JS locale. |
|
2449 | + */ |
|
2450 | + public static function select2_locale() { |
|
2451 | + $params = self::select2_params(); |
|
2452 | + |
|
2453 | + foreach ( (array) $params as $key => $value ) { |
|
2454 | + if ( ! is_scalar( $value ) ) { |
|
2455 | + continue; |
|
2456 | + } |
|
2457 | + |
|
2458 | + $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2459 | + } |
|
2460 | + |
|
2461 | + $locale = json_encode( $params ); |
|
2462 | + |
|
2463 | + return apply_filters( 'ayecode_ui_select2_locale', trim( $locale ) ); |
|
2464 | + } |
|
2465 | + |
|
2466 | + /** |
|
2467 | + * Time ago JS localize. |
|
2468 | + * |
|
2469 | + * @since 0.1.47 |
|
2470 | + * |
|
2471 | + * @return string Time ago JS locale. |
|
2472 | + */ |
|
2473 | + public static function timeago_locale() { |
|
2474 | + $params = array( |
|
2475 | + 'prefix_ago' => '', |
|
2476 | + 'suffix_ago' => ' ' . _x( 'ago', 'time ago', 'ayecode-connect' ), |
|
2477 | + 'prefix_after' => _x( 'after', 'time ago', 'ayecode-connect' ) . ' ', |
|
2478 | + 'suffix_after' => '', |
|
2479 | + 'seconds' => _x( 'less than a minute', 'time ago', 'ayecode-connect' ), |
|
2480 | + 'minute' => _x( 'about a minute', 'time ago', 'ayecode-connect' ), |
|
2481 | + 'minutes' => _x( '%d minutes', 'time ago', 'ayecode-connect' ), |
|
2482 | + 'hour' => _x( 'about an hour', 'time ago', 'ayecode-connect' ), |
|
2483 | + 'hours' => _x( 'about %d hours', 'time ago', 'ayecode-connect' ), |
|
2484 | + 'day' => _x( 'a day', 'time ago', 'ayecode-connect' ), |
|
2485 | + 'days' => _x( '%d days', 'time ago', 'ayecode-connect' ), |
|
2486 | + 'month' => _x( 'about a month', 'time ago', 'ayecode-connect' ), |
|
2487 | + 'months' => _x( '%d months', 'time ago', 'ayecode-connect' ), |
|
2488 | + 'year' => _x( 'about a year', 'time ago', 'ayecode-connect' ), |
|
2489 | + 'years' => _x( '%d years', 'time ago', 'ayecode-connect' ), |
|
2490 | + ); |
|
2491 | + |
|
2492 | + $params = apply_filters( 'ayecode_ui_timeago_params', $params ); |
|
2493 | + |
|
2494 | + foreach ( (array) $params as $key => $value ) { |
|
2495 | + if ( ! is_scalar( $value ) ) { |
|
2496 | + continue; |
|
2497 | + } |
|
2498 | + |
|
2499 | + $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2500 | + } |
|
2498 | 2501 | |
2499 | - $params[ $key ] = html_entity_decode( (string) $value, ENT_QUOTES, 'UTF-8' ); |
|
2500 | - } |
|
2501 | - |
|
2502 | - $locale = json_encode( $params ); |
|
2503 | - |
|
2504 | - return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) ); |
|
2505 | - } |
|
2506 | - |
|
2507 | - /** |
|
2508 | - * JavaScript Minifier |
|
2509 | - * |
|
2510 | - * @param $input |
|
2511 | - * |
|
2512 | - * @return mixed |
|
2513 | - */ |
|
2514 | - public static function minify_js($input) { |
|
2515 | - if(trim($input) === "") return $input; |
|
2516 | - return preg_replace( |
|
2517 | - array( |
|
2518 | - // Remove comment(s) |
|
2519 | - '#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#', |
|
2520 | - // Remove white-space(s) outside the string and regex |
|
2521 | - '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s', |
|
2522 | - // Remove the last semicolon |
|
2523 | - '#;+\}#', |
|
2524 | - // Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}` |
|
2525 | - '#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i', |
|
2526 | - // --ibid. From `foo['bar']` to `foo.bar` |
|
2527 | - '#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i' |
|
2528 | - ), |
|
2529 | - array( |
|
2530 | - '$1', |
|
2531 | - '$1$2', |
|
2532 | - '}', |
|
2533 | - '$1$3', |
|
2534 | - '$1.$3' |
|
2535 | - ), |
|
2536 | - $input); |
|
2537 | - } |
|
2538 | - |
|
2539 | - /** |
|
2540 | - * Minify CSS |
|
2541 | - * |
|
2542 | - * @param $input |
|
2543 | - * |
|
2544 | - * @return mixed |
|
2545 | - */ |
|
2546 | - public static function minify_css($input) { |
|
2547 | - if(trim($input) === "") return $input; |
|
2548 | - return preg_replace( |
|
2549 | - array( |
|
2550 | - // Remove comment(s) |
|
2551 | - '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s', |
|
2552 | - // Remove unused white-space(s) |
|
2553 | - '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si', |
|
2554 | - // Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0` |
|
2555 | - '#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si', |
|
2556 | - // Replace `:0 0 0 0` with `:0` |
|
2557 | - '#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i', |
|
2558 | - // Replace `background-position:0` with `background-position:0 0` |
|
2559 | - '#(background-position):0(?=[;\}])#si', |
|
2560 | - // Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space |
|
2561 | - '#(?<=[\s:,\-])0+\.(\d+)#s', |
|
2562 | - // Minify string value |
|
2563 | - '#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si', |
|
2564 | - '#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si', |
|
2565 | - // Minify HEX color code |
|
2566 | - '#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i', |
|
2567 | - // Replace `(border|outline):none` with `(border|outline):0` |
|
2568 | - '#(?<=[\{;])(border|outline):none(?=[;\}\!])#', |
|
2569 | - // Remove empty selector(s) |
|
2570 | - '#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s' |
|
2571 | - ), |
|
2572 | - array( |
|
2573 | - '$1', |
|
2574 | - '$1$2$3$4$5$6$7', |
|
2575 | - '$1', |
|
2576 | - ':0', |
|
2577 | - '$1:0 0', |
|
2578 | - '.$1', |
|
2579 | - '$1$3', |
|
2580 | - '$1$2$4$5', |
|
2581 | - '$1$2$3', |
|
2582 | - '$1:0', |
|
2583 | - '$1$2' |
|
2584 | - ), |
|
2585 | - $input); |
|
2586 | - } |
|
2587 | - |
|
2588 | - /** |
|
2589 | - * Get the conditional fields JavaScript. |
|
2590 | - * |
|
2591 | - * @return mixed |
|
2592 | - */ |
|
2593 | - public function conditional_fields_js() { |
|
2594 | - ob_start(); |
|
2595 | - ?> |
|
2502 | + $locale = json_encode( $params ); |
|
2503 | + |
|
2504 | + return apply_filters( 'ayecode_ui_timeago_locale', trim( $locale ) ); |
|
2505 | + } |
|
2506 | + |
|
2507 | + /** |
|
2508 | + * JavaScript Minifier |
|
2509 | + * |
|
2510 | + * @param $input |
|
2511 | + * |
|
2512 | + * @return mixed |
|
2513 | + */ |
|
2514 | + public static function minify_js($input) { |
|
2515 | + if(trim($input) === "") return $input; |
|
2516 | + return preg_replace( |
|
2517 | + array( |
|
2518 | + // Remove comment(s) |
|
2519 | + '#\s*("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')\s*|\s*\/\*(?!\!|@cc_on)(?>[\s\S]*?\*\/)\s*|\s*(?<![\:\=])\/\/.*(?=[\n\r]|$)|^\s*|\s*$#', |
|
2520 | + // Remove white-space(s) outside the string and regex |
|
2521 | + '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/)|\/(?!\/)[^\n\r]*?\/(?=[\s.,;]|[gimuy]|$))|\s*([!%&*\(\)\-=+\[\]\{\}|;:,.<>?\/])\s*#s', |
|
2522 | + // Remove the last semicolon |
|
2523 | + '#;+\}#', |
|
2524 | + // Minify object attribute(s) except JSON attribute(s). From `{'foo':'bar'}` to `{foo:'bar'}` |
|
2525 | + '#([\{,])([\'])(\d+|[a-z_][a-z0-9_]*)\2(?=\:)#i', |
|
2526 | + // --ibid. From `foo['bar']` to `foo.bar` |
|
2527 | + '#([a-z0-9_\)\]])\[([\'"])([a-z_][a-z0-9_]*)\2\]#i' |
|
2528 | + ), |
|
2529 | + array( |
|
2530 | + '$1', |
|
2531 | + '$1$2', |
|
2532 | + '}', |
|
2533 | + '$1$3', |
|
2534 | + '$1.$3' |
|
2535 | + ), |
|
2536 | + $input); |
|
2537 | + } |
|
2538 | + |
|
2539 | + /** |
|
2540 | + * Minify CSS |
|
2541 | + * |
|
2542 | + * @param $input |
|
2543 | + * |
|
2544 | + * @return mixed |
|
2545 | + */ |
|
2546 | + public static function minify_css($input) { |
|
2547 | + if(trim($input) === "") return $input; |
|
2548 | + return preg_replace( |
|
2549 | + array( |
|
2550 | + // Remove comment(s) |
|
2551 | + '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')|\/\*(?!\!)(?>.*?\*\/)|^\s*|\s*$#s', |
|
2552 | + // Remove unused white-space(s) |
|
2553 | + '#("(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\'|\/\*(?>.*?\*\/))|\s*+;\s*+(})\s*+|\s*+([*$~^|]?+=|[{};,>~]|\s(?![0-9\.])|!important\b)\s*+|([[(:])\s++|\s++([])])|\s++(:)\s*+(?!(?>[^{}"\']++|"(?:[^"\\\]++|\\\.)*+"|\'(?:[^\'\\\\]++|\\\.)*+\')*+{)|^\s++|\s++\z|(\s)\s+#si', |
|
2554 | + // Replace `0(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)` with `0` |
|
2555 | + '#(?<=[\s:])(0)(cm|em|ex|in|mm|pc|pt|px|vh|vw|%)#si', |
|
2556 | + // Replace `:0 0 0 0` with `:0` |
|
2557 | + '#:(0\s+0|0\s+0\s+0\s+0)(?=[;\}]|\!important)#i', |
|
2558 | + // Replace `background-position:0` with `background-position:0 0` |
|
2559 | + '#(background-position):0(?=[;\}])#si', |
|
2560 | + // Replace `0.6` with `.6`, but only when preceded by `:`, `,`, `-` or a white-space |
|
2561 | + '#(?<=[\s:,\-])0+\.(\d+)#s', |
|
2562 | + // Minify string value |
|
2563 | + '#(\/\*(?>.*?\*\/))|(?<!content\:)([\'"])([a-z_][a-z0-9\-_]*?)\2(?=[\s\{\}\];,])#si', |
|
2564 | + '#(\/\*(?>.*?\*\/))|(\burl\()([\'"])([^\s]+?)\3(\))#si', |
|
2565 | + // Minify HEX color code |
|
2566 | + '#(?<=[\s:,\-]\#)([a-f0-6]+)\1([a-f0-6]+)\2([a-f0-6]+)\3#i', |
|
2567 | + // Replace `(border|outline):none` with `(border|outline):0` |
|
2568 | + '#(?<=[\{;])(border|outline):none(?=[;\}\!])#', |
|
2569 | + // Remove empty selector(s) |
|
2570 | + '#(\/\*(?>.*?\*\/))|(^|[\{\}])(?:[^\s\{\}]+)\{\}#s' |
|
2571 | + ), |
|
2572 | + array( |
|
2573 | + '$1', |
|
2574 | + '$1$2$3$4$5$6$7', |
|
2575 | + '$1', |
|
2576 | + ':0', |
|
2577 | + '$1:0 0', |
|
2578 | + '.$1', |
|
2579 | + '$1$3', |
|
2580 | + '$1$2$4$5', |
|
2581 | + '$1$2$3', |
|
2582 | + '$1:0', |
|
2583 | + '$1$2' |
|
2584 | + ), |
|
2585 | + $input); |
|
2586 | + } |
|
2587 | + |
|
2588 | + /** |
|
2589 | + * Get the conditional fields JavaScript. |
|
2590 | + * |
|
2591 | + * @return mixed |
|
2592 | + */ |
|
2593 | + public function conditional_fields_js() { |
|
2594 | + ob_start(); |
|
2595 | + ?> |
|
2596 | 2596 | <script> |
2597 | 2597 | /** |
2598 | 2598 | * Conditional Fields |
@@ -3124,14 +3124,14 @@ discard block |
||
3124 | 3124 | <?php do_action( 'aui_conditional_fields_js', $this ); ?> |
3125 | 3125 | </script> |
3126 | 3126 | <?php |
3127 | - $output = ob_get_clean(); |
|
3127 | + $output = ob_get_clean(); |
|
3128 | 3128 | |
3129 | - return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) ); |
|
3130 | - } |
|
3131 | - } |
|
3129 | + return str_replace( array( '<script>', '</script>' ), '', self::minify_js( $output ) ); |
|
3130 | + } |
|
3131 | + } |
|
3132 | 3132 | |
3133 | - /** |
|
3134 | - * Run the class if found. |
|
3135 | - */ |
|
3136 | - AyeCode_UI_Settings::instance(); |
|
3133 | + /** |
|
3134 | + * Run the class if found. |
|
3135 | + */ |
|
3136 | + AyeCode_UI_Settings::instance(); |
|
3137 | 3137 | } |
3138 | 3138 | \ No newline at end of file |
@@ -7,40 +7,40 @@ |
||
7 | 7 | * Bail if we are not in WP. |
8 | 8 | */ |
9 | 9 | if ( ! defined( 'ABSPATH' ) ) { |
10 | - exit; |
|
10 | + exit; |
|
11 | 11 | } |
12 | 12 | |
13 | 13 | /** |
14 | 14 | * Set the version only if its the current newest while loading. |
15 | 15 | */ |
16 | 16 | add_action('after_setup_theme', function () { |
17 | - global $ayecode_ui_version,$ayecode_ui_file_key; |
|
18 | - $this_version = "0.2.26"; |
|
19 | - if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){ |
|
20 | - $ayecode_ui_version = $this_version ; |
|
21 | - $ayecode_ui_file_key = wp_hash( __FILE__ ); |
|
22 | - } |
|
17 | + global $ayecode_ui_version,$ayecode_ui_file_key; |
|
18 | + $this_version = "0.2.26"; |
|
19 | + if(empty($ayecode_ui_version) || version_compare($this_version , $ayecode_ui_version, '>')){ |
|
20 | + $ayecode_ui_version = $this_version ; |
|
21 | + $ayecode_ui_file_key = wp_hash( __FILE__ ); |
|
22 | + } |
|
23 | 23 | },0); |
24 | 24 | |
25 | 25 | /** |
26 | 26 | * Load this version of WP Bootstrap Settings only if the file hash is the current one. |
27 | 27 | */ |
28 | 28 | add_action('after_setup_theme', function () { |
29 | - global $ayecode_ui_file_key; |
|
30 | - if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){ |
|
31 | - include_once( dirname( __FILE__ ) . '/includes/class-aui.php' ); |
|
32 | - include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' ); |
|
33 | - } |
|
29 | + global $ayecode_ui_file_key; |
|
30 | + if($ayecode_ui_file_key && $ayecode_ui_file_key == wp_hash( __FILE__ )){ |
|
31 | + include_once( dirname( __FILE__ ) . '/includes/class-aui.php' ); |
|
32 | + include_once( dirname( __FILE__ ) . '/includes/ayecode-ui-settings.php' ); |
|
33 | + } |
|
34 | 34 | },1); |
35 | 35 | |
36 | 36 | /** |
37 | 37 | * Add the function that calls the class. |
38 | 38 | */ |
39 | 39 | if(!function_exists('aui')){ |
40 | - function aui(){ |
|
41 | - if(!class_exists("AUI",false)){ |
|
42 | - return false; |
|
43 | - } |
|
44 | - return AUI::instance(); |
|
45 | - } |
|
40 | + function aui(){ |
|
41 | + if(!class_exists("AUI",false)){ |
|
42 | + return false; |
|
43 | + } |
|
44 | + return AUI::instance(); |
|
45 | + } |
|
46 | 46 | } |
@@ -25,8 +25,8 @@ discard block |
||
25 | 25 | $defaults[ $key ] = $setting['std']; |
26 | 26 | } |
27 | 27 | } |
28 | - } |
|
29 | - } |
|
28 | + } |
|
29 | + } |
|
30 | 30 | |
31 | 31 | return $defaults; |
32 | 32 | |
@@ -144,7 +144,7 @@ discard block |
||
144 | 144 | * |
145 | 145 | */ |
146 | 146 | function wpinv_register_settings() { |
147 | - do_action( 'getpaid_before_register_settings' ); |
|
147 | + do_action( 'getpaid_before_register_settings' ); |
|
148 | 148 | |
149 | 149 | // Loop through all tabs. |
150 | 150 | foreach ( wpinv_get_registered_settings() as $tab => $sections ) { |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | $settings = $sections; |
160 | 160 | } |
161 | 161 | |
162 | - do_action( "getpaid_register_{$tab}_{$section}" ); |
|
162 | + do_action( "getpaid_register_{$tab}_{$section}" ); |
|
163 | 163 | |
164 | 164 | // Register the setting section. |
165 | 165 | add_settings_section( |
@@ -180,7 +180,7 @@ discard block |
||
180 | 180 | // Creates our settings in the options table. |
181 | 181 | register_setting( 'wpinv_settings', 'wpinv_settings', 'wpinv_settings_sanitize' ); |
182 | 182 | |
183 | - do_action( 'getpaid_after_register_settings' ); |
|
183 | + do_action( 'getpaid_after_register_settings' ); |
|
184 | 184 | } |
185 | 185 | add_action( 'admin_init', 'wpinv_register_settings' ); |
186 | 186 | |
@@ -197,13 +197,13 @@ discard block |
||
197 | 197 | $name = isset( $option['name'] ) ? $option['name'] : ''; |
198 | 198 | $cb = "wpinv_{$option['type']}_callback"; |
199 | 199 | $section = "wpinv_settings_{$tab}_$section"; |
200 | - $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page']; |
|
200 | + $is_wizzard = is_admin() && isset( $_GET['page'] ) && 'gp-setup' == $_GET['page']; |
|
201 | 201 | |
202 | - if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) { |
|
203 | - $tip = wpinv_clean( $option['desc'] ); |
|
204 | - $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>"; |
|
205 | - unset( $option['desc'] ); |
|
206 | - } |
|
202 | + if ( isset( $option['desc'] ) && ( ! $is_wizzard && ! empty( $option['help-tip'] ) ) ) { |
|
203 | + $tip = wpinv_clean( $option['desc'] ); |
|
204 | + $name .= "<span class='dashicons dashicons-editor-help wpi-help-tip' title='$tip'></span>"; |
|
205 | + unset( $option['desc'] ); |
|
206 | + } |
|
207 | 207 | |
208 | 208 | // Loop through all tabs. |
209 | 209 | add_settings_field( |
@@ -230,9 +230,9 @@ discard block |
||
230 | 230 | 'faux' => isset( $option['faux'] ) ? $option['faux'] : false, |
231 | 231 | 'onchange' => isset( $option['onchange'] ) ? $option['onchange'] : '', |
232 | 232 | 'custom' => isset( $option['custom'] ) ? $option['custom'] : '', |
233 | - 'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '', |
|
234 | - 'class' => isset( $option['class'] ) ? $option['class'] : '', |
|
235 | - 'style' => isset( $option['style'] ) ? $option['style'] : '', |
|
233 | + 'default_content' => isset( $option['default_content'] ) ? $option['default_content'] : '', |
|
234 | + 'class' => isset( $option['class'] ) ? $option['class'] : '', |
|
235 | + 'style' => isset( $option['style'] ) ? $option['style'] : '', |
|
236 | 236 | 'cols' => isset( $option['cols'] ) && (int) $option['cols'] > 0 ? (int) $option['cols'] : 50, |
237 | 237 | 'rows' => isset( $option['rows'] ) && (int) $option['rows'] > 0 ? (int) $option['rows'] : 5, |
238 | 238 | ) |
@@ -246,7 +246,7 @@ discard block |
||
246 | 246 | * @return array |
247 | 247 | */ |
248 | 248 | function wpinv_get_registered_settings() { |
249 | - return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) ); |
|
249 | + return array_filter( apply_filters( 'wpinv_registered_settings', wpinv_get_data( 'admin-settings' ) ) ); |
|
250 | 250 | } |
251 | 251 | |
252 | 252 | /** |
@@ -265,18 +265,18 @@ discard block |
||
265 | 265 | */ |
266 | 266 | function wpinv_settings_sanitize( $input = array() ) { |
267 | 267 | |
268 | - $wpinv_options = wpinv_get_options(); |
|
269 | - $raw_referrer = wp_get_raw_referer(); |
|
268 | + $wpinv_options = wpinv_get_options(); |
|
269 | + $raw_referrer = wp_get_raw_referer(); |
|
270 | 270 | |
271 | 271 | if ( empty( $raw_referrer ) ) { |
272 | - return array_merge( $wpinv_options, $input ); |
|
272 | + return array_merge( $wpinv_options, $input ); |
|
273 | 273 | } |
274 | 274 | |
275 | 275 | wp_parse_str( $raw_referrer, $referrer ); |
276 | 276 | |
277 | - if ( in_array( 'gp-setup', $referrer ) ) { |
|
278 | - return array_merge( $wpinv_options, $input ); |
|
279 | - } |
|
277 | + if ( in_array( 'gp-setup', $referrer ) ) { |
|
278 | + return array_merge( $wpinv_options, $input ); |
|
279 | + } |
|
280 | 280 | |
281 | 281 | $settings = wpinv_get_registered_settings(); |
282 | 282 | $tab = isset( $referrer['tab'] ) ? $referrer['tab'] : 'general'; |
@@ -298,10 +298,10 @@ discard block |
||
298 | 298 | } |
299 | 299 | |
300 | 300 | // General filter |
301 | - $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key ); |
|
301 | + $input[ $key ] = apply_filters( 'wpinv_settings_sanitize', $input[ $key ], $key ); |
|
302 | 302 | |
303 | - // Key specific filter. |
|
304 | - $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] ); |
|
303 | + // Key specific filter. |
|
304 | + $input[ $key ] = apply_filters( "wpinv_settings_sanitize_$key", $input[ $key ] ); |
|
305 | 305 | } |
306 | 306 | |
307 | 307 | // Loop through the whitelist and unset any that are empty for the tab being saved |
@@ -344,14 +344,14 @@ discard block |
||
344 | 344 | |
345 | 345 | foreach ( $new_rates as $rate ) { |
346 | 346 | |
347 | - $rate['rate'] = wpinv_sanitize_amount( $rate['rate'] ); |
|
348 | - $rate['name'] = sanitize_text_field( $rate['name'] ); |
|
349 | - $rate['state'] = sanitize_text_field( $rate['state'] ); |
|
350 | - $rate['country'] = sanitize_text_field( $rate['country'] ); |
|
351 | - $rate['global'] = empty( $rate['state'] ); |
|
352 | - $tax_rates[] = $rate; |
|
347 | + $rate['rate'] = wpinv_sanitize_amount( $rate['rate'] ); |
|
348 | + $rate['name'] = sanitize_text_field( $rate['name'] ); |
|
349 | + $rate['state'] = sanitize_text_field( $rate['state'] ); |
|
350 | + $rate['country'] = sanitize_text_field( $rate['country'] ); |
|
351 | + $rate['global'] = empty( $rate['state'] ); |
|
352 | + $tax_rates[] = $rate; |
|
353 | 353 | |
354 | - } |
|
354 | + } |
|
355 | 355 | |
356 | 356 | update_option( 'wpinv_tax_rates', $tax_rates ); |
357 | 357 | |
@@ -364,21 +364,21 @@ discard block |
||
364 | 364 | return $input; |
365 | 365 | } |
366 | 366 | |
367 | - if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) { |
|
368 | - return $input; |
|
369 | - } |
|
367 | + if ( empty( $_POST['wpinv_tax_rules_nonce'] ) || ! wp_verify_nonce( $_POST['wpinv_tax_rules_nonce'], 'wpinv_tax_rules' ) ) { |
|
368 | + return $input; |
|
369 | + } |
|
370 | 370 | |
371 | 371 | $new_rules = ! empty( $_POST['tax_rules'] ) ? wp_kses_post_deep( array_values( $_POST['tax_rules'] ) ) : array(); |
372 | 372 | $tax_rules = array(); |
373 | 373 | |
374 | 374 | foreach ( $new_rules as $rule ) { |
375 | 375 | |
376 | - $rule['key'] = sanitize_title_with_dashes( $rule['key'] ); |
|
377 | - $rule['label'] = sanitize_text_field( $rule['label'] ); |
|
378 | - $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] ); |
|
379 | - $tax_rules[] = $rule; |
|
376 | + $rule['key'] = sanitize_title_with_dashes( $rule['key'] ); |
|
377 | + $rule['label'] = sanitize_text_field( $rule['label'] ); |
|
378 | + $rule['tax_base'] = sanitize_text_field( $rule['tax_base'] ); |
|
379 | + $tax_rules[] = $rule; |
|
380 | 380 | |
381 | - } |
|
381 | + } |
|
382 | 382 | |
383 | 383 | update_option( 'wpinv_tax_rules', $tax_rules ); |
384 | 384 | |
@@ -391,11 +391,11 @@ discard block |
||
391 | 391 | $tabs['general'] = __( 'General', 'invoicing' ); |
392 | 392 | $tabs['gateways'] = __( 'Payment Gateways', 'invoicing' ); |
393 | 393 | $tabs['taxes'] = __( 'Taxes', 'invoicing' ); |
394 | - $tabs['emails'] = __( 'Emails', 'invoicing' ); |
|
394 | + $tabs['emails'] = __( 'Emails', 'invoicing' ); |
|
395 | 395 | |
396 | - if ( count( getpaid_get_integration_settings() ) > 0 ) { |
|
397 | - $tabs['integrations'] = __( 'Integrations', 'invoicing' ); |
|
398 | - } |
|
396 | + if ( count( getpaid_get_integration_settings() ) > 0 ) { |
|
397 | + $tabs['integrations'] = __( 'Integrations', 'invoicing' ); |
|
398 | + } |
|
399 | 399 | |
400 | 400 | $tabs['privacy'] = __( 'Privacy', 'invoicing' ); |
401 | 401 | $tabs['misc'] = __( 'Misc', 'invoicing' ); |
@@ -426,53 +426,53 @@ discard block |
||
426 | 426 | 'general' => apply_filters( |
427 | 427 | 'wpinv_settings_sections_general', |
428 | 428 | array( |
429 | - 'main' => __( 'General Settings', 'invoicing' ), |
|
430 | - 'page_section' => __( 'Page Settings', 'invoicing' ), |
|
431 | - 'currency_section' => __( 'Currency Settings', 'invoicing' ), |
|
432 | - 'labels' => __( 'Label Texts', 'invoicing' ), |
|
429 | + 'main' => __( 'General Settings', 'invoicing' ), |
|
430 | + 'page_section' => __( 'Page Settings', 'invoicing' ), |
|
431 | + 'currency_section' => __( 'Currency Settings', 'invoicing' ), |
|
432 | + 'labels' => __( 'Label Texts', 'invoicing' ), |
|
433 | 433 | ) |
434 | 434 | ), |
435 | 435 | 'gateways' => apply_filters( |
436 | 436 | 'wpinv_settings_sections_gateways', |
437 | 437 | array( |
438 | - 'main' => __( 'Gateway Settings', 'invoicing' ), |
|
438 | + 'main' => __( 'Gateway Settings', 'invoicing' ), |
|
439 | 439 | ) |
440 | 440 | ), |
441 | 441 | 'taxes' => apply_filters( |
442 | 442 | 'wpinv_settings_sections_taxes', |
443 | 443 | array( |
444 | - 'main' => __( 'Tax Settings', 'invoicing' ), |
|
445 | - 'rules' => __( 'Tax Rules', 'invoicing' ), |
|
446 | - 'rates' => __( 'Tax Rates', 'invoicing' ), |
|
447 | - 'vat' => __( 'EU VAT Settings', 'invoicing' ), |
|
444 | + 'main' => __( 'Tax Settings', 'invoicing' ), |
|
445 | + 'rules' => __( 'Tax Rules', 'invoicing' ), |
|
446 | + 'rates' => __( 'Tax Rates', 'invoicing' ), |
|
447 | + 'vat' => __( 'EU VAT Settings', 'invoicing' ), |
|
448 | 448 | ) |
449 | 449 | ), |
450 | 450 | 'emails' => apply_filters( |
451 | 451 | 'wpinv_settings_sections_emails', |
452 | 452 | array( |
453 | - 'main' => __( 'Email Settings', 'invoicing' ), |
|
453 | + 'main' => __( 'Email Settings', 'invoicing' ), |
|
454 | 454 | ) |
455 | 455 | ), |
456 | 456 | |
457 | - 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ), |
|
457 | + 'integrations' => wp_list_pluck( getpaid_get_integration_settings(), 'label', 'id' ), |
|
458 | 458 | |
459 | 459 | 'privacy' => apply_filters( |
460 | 460 | 'wpinv_settings_sections_privacy', |
461 | 461 | array( |
462 | - 'main' => __( 'Privacy policy', 'invoicing' ), |
|
462 | + 'main' => __( 'Privacy policy', 'invoicing' ), |
|
463 | 463 | ) |
464 | 464 | ), |
465 | 465 | 'misc' => apply_filters( |
466 | 466 | 'wpinv_settings_sections_misc', |
467 | 467 | array( |
468 | - 'main' => __( 'Miscellaneous', 'invoicing' ), |
|
469 | - 'custom-css' => __( 'Custom CSS', 'invoicing' ), |
|
468 | + 'main' => __( 'Miscellaneous', 'invoicing' ), |
|
469 | + 'custom-css' => __( 'Custom CSS', 'invoicing' ), |
|
470 | 470 | ) |
471 | 471 | ), |
472 | 472 | 'tools' => apply_filters( |
473 | 473 | 'wpinv_settings_sections_tools', |
474 | 474 | array( |
475 | - 'main' => __( 'Diagnostic Tools', 'invoicing' ), |
|
475 | + 'main' => __( 'Diagnostic Tools', 'invoicing' ), |
|
476 | 476 | ) |
477 | 477 | ), |
478 | 478 | ); |
@@ -525,7 +525,7 @@ discard block |
||
525 | 525 | // Prepare the SQL query to include the excluded pages only if we have placeholders |
526 | 526 | $pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql ); |
527 | 527 | |
528 | - $pages_options = array(); |
|
528 | + $pages_options = array(); |
|
529 | 529 | |
530 | 530 | if ( $pages ) { |
531 | 531 | foreach ( $pages as $page ) { |
@@ -542,32 +542,32 @@ discard block |
||
542 | 542 | $pages_options = array( '' => $default_label ) + $pages_options; // Blank option |
543 | 543 | } |
544 | 544 | |
545 | - return $pages_options; |
|
545 | + return $pages_options; |
|
546 | 546 | } |
547 | 547 | |
548 | 548 | function wpinv_header_callback( $args ) { |
549 | - if ( ! empty( $args['desc'] ) ) { |
|
549 | + if ( ! empty( $args['desc'] ) ) { |
|
550 | 550 | echo wp_kses_post( $args['desc'] ); |
551 | 551 | } |
552 | 552 | } |
553 | 553 | |
554 | 554 | function wpinv_hidden_callback( $args ) { |
555 | 555 | |
556 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
557 | - $value = wpinv_get_option( $args['id'], $std ); |
|
556 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
557 | + $value = wpinv_get_option( $args['id'], $std ); |
|
558 | 558 | |
559 | - if ( isset( $args['set_value'] ) ) { |
|
560 | - $value = $args['set_value']; |
|
561 | - } |
|
559 | + if ( isset( $args['set_value'] ) ) { |
|
560 | + $value = $args['set_value']; |
|
561 | + } |
|
562 | 562 | |
563 | - if ( isset( $args['faux'] ) && true === $args['faux'] ) { |
|
564 | - $args['readonly'] = true; |
|
565 | - $name = ''; |
|
566 | - } else { |
|
567 | - $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']'; |
|
568 | - } |
|
563 | + if ( isset( $args['faux'] ) && true === $args['faux'] ) { |
|
564 | + $args['readonly'] = true; |
|
565 | + $name = ''; |
|
566 | + } else { |
|
567 | + $name = 'wpinv_settings[' . esc_attr( $args['id'] ) . ']'; |
|
568 | + } |
|
569 | 569 | |
570 | - echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />'; |
|
570 | + echo '<input type="hidden" id="wpinv_settings[' . esc_attr( $args['id'] ) . ']" name="' . esc_attr( $name ) . '" value="' . esc_attr( stripslashes( $value ) ) . '" />'; |
|
571 | 571 | |
572 | 572 | } |
573 | 573 | |
@@ -576,12 +576,12 @@ discard block |
||
576 | 576 | */ |
577 | 577 | function wpinv_checkbox_callback( $args ) { |
578 | 578 | |
579 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
580 | - $std = wpinv_get_option( $args['id'], $std ); |
|
581 | - $id = esc_attr( $args['id'] ); |
|
579 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
580 | + $std = wpinv_get_option( $args['id'], $std ); |
|
581 | + $id = esc_attr( $args['id'] ); |
|
582 | 582 | |
583 | - getpaid_hidden_field( "wpinv_settings[$id]", '0' ); |
|
584 | - ?> |
|
583 | + getpaid_hidden_field( "wpinv_settings[$id]", '0' ); |
|
584 | + ?> |
|
585 | 585 | <label> |
586 | 586 | <input id="wpinv-settings-<?php echo esc_attr( $id ); ?>" name="wpinv_settings[<?php echo esc_attr( $id ); ?>]" <?php checked( empty( $std ), false ); ?> value="1" type="checkbox" /> |
587 | 587 | <?php echo wp_kses_post( $args['desc'] ); ?> |
@@ -591,75 +591,75 @@ discard block |
||
591 | 591 | |
592 | 592 | function wpinv_multicheck_callback( $args ) { |
593 | 593 | |
594 | - $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
|
595 | - $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
|
594 | + $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
|
595 | + $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
|
596 | 596 | |
597 | - if ( ! empty( $args['options'] ) ) { |
|
597 | + if ( ! empty( $args['options'] ) ) { |
|
598 | 598 | |
599 | - $std = isset( $args['std'] ) ? $args['std'] : array(); |
|
600 | - $value = wpinv_get_option( $args['id'], $std ); |
|
599 | + $std = isset( $args['std'] ) ? $args['std'] : array(); |
|
600 | + $value = wpinv_get_option( $args['id'], $std ); |
|
601 | 601 | |
602 | - echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">'; |
|
602 | + echo '<div class="wpi-mcheck-rows wpi-mcheck-' . esc_attr( $sanitize_id . $class ) . '">'; |
|
603 | 603 | foreach ( $args['options'] as $key => $option ) : |
604 | - $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) ); |
|
605 | - if ( in_array( $sanitize_key, $value ) ) { |
|
606 | - $enabled = $sanitize_key; |
|
607 | - } else { |
|
608 | - $enabled = null; |
|
609 | - } |
|
610 | - echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/> '; |
|
611 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>'; |
|
612 | - endforeach; |
|
613 | - echo '</div>'; |
|
614 | - echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
615 | - } |
|
604 | + $sanitize_key = esc_attr( wpinv_sanitize_key( $key ) ); |
|
605 | + if ( in_array( $sanitize_key, $value ) ) { |
|
606 | + $enabled = $sanitize_key; |
|
607 | + } else { |
|
608 | + $enabled = null; |
|
609 | + } |
|
610 | + echo '<div class="wpi-mcheck-row"><input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $sanitize_key ) . '" ' . checked( $sanitize_key, $enabled, false ) . '/> '; |
|
611 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']">' . wp_kses_post( $option ) . '</label></div>'; |
|
612 | + endforeach; |
|
613 | + echo '</div>'; |
|
614 | + echo '<p class="description">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
615 | + } |
|
616 | 616 | } |
617 | 617 | |
618 | 618 | function wpinv_payment_icons_callback( $args ) { |
619 | 619 | |
620 | 620 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
621 | - $value = wpinv_get_option( $args['id'], false ); |
|
621 | + $value = wpinv_get_option( $args['id'], false ); |
|
622 | 622 | |
623 | - if ( ! empty( $args['options'] ) ) { |
|
624 | - foreach ( $args['options'] as $key => $option ) { |
|
623 | + if ( ! empty( $args['options'] ) ) { |
|
624 | + foreach ( $args['options'] as $key => $option ) { |
|
625 | 625 | $sanitize_key = wpinv_sanitize_key( $key ); |
626 | 626 | |
627 | - if ( empty( $value ) ) { |
|
628 | - $enabled = $option; |
|
629 | - } else { |
|
630 | - $enabled = null; |
|
631 | - } |
|
632 | - |
|
633 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">'; |
|
634 | - |
|
635 | - echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> '; |
|
636 | - |
|
637 | - if ( wpinv_string_is_image_url( $key ) ) { |
|
638 | - echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
639 | - } else { |
|
640 | - $card = strtolower( str_replace( ' ', '', $option ) ); |
|
641 | - |
|
642 | - if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) { |
|
643 | - $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' ); |
|
644 | - } else { |
|
645 | - $image = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false ); |
|
646 | - $content_dir = WP_CONTENT_DIR; |
|
647 | - |
|
648 | - if ( function_exists( 'wp_normalize_path' ) ) { |
|
649 | - // Replaces backslashes with forward slashes for Windows systems |
|
650 | - $image = wp_normalize_path( $image ); |
|
651 | - $content_dir = wp_normalize_path( $content_dir ); |
|
652 | - } |
|
653 | - |
|
654 | - $image = str_replace( $content_dir, content_url(), $image ); |
|
655 | - } |
|
656 | - |
|
657 | - echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
658 | - } |
|
659 | - echo wp_kses_post( $option ) . '</label>'; |
|
660 | - } |
|
661 | - echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
662 | - } |
|
627 | + if ( empty( $value ) ) { |
|
628 | + $enabled = $option; |
|
629 | + } else { |
|
630 | + $enabled = null; |
|
631 | + } |
|
632 | + |
|
633 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" style="margin-right:10px;line-height:16px;height:16px;display:inline-block;">'; |
|
634 | + |
|
635 | + echo '<input name="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" id="wpinv_settings[' . esc_attr( $sanitize_id ) . '][' . esc_attr( $sanitize_key ) . ']" type="checkbox" value="' . esc_attr( $option ) . '" ' . checked( $option, $enabled, false ) . '/> '; |
|
636 | + |
|
637 | + if ( wpinv_string_is_image_url( $key ) ) { |
|
638 | + echo '<img class="payment-icon" src="' . esc_url( $key ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
639 | + } else { |
|
640 | + $card = strtolower( str_replace( ' ', '', $option ) ); |
|
641 | + |
|
642 | + if ( has_filter( 'wpinv_accepted_payment_' . $card . '_image' ) ) { |
|
643 | + $image = apply_filters( 'wpinv_accepted_payment_' . $card . '_image', '' ); |
|
644 | + } else { |
|
645 | + $image = wpinv_locate_template( 'images' . DIRECTORY_SEPARATOR . 'icons' . DIRECTORY_SEPARATOR . $card . '.gif', false ); |
|
646 | + $content_dir = WP_CONTENT_DIR; |
|
647 | + |
|
648 | + if ( function_exists( 'wp_normalize_path' ) ) { |
|
649 | + // Replaces backslashes with forward slashes for Windows systems |
|
650 | + $image = wp_normalize_path( $image ); |
|
651 | + $content_dir = wp_normalize_path( $content_dir ); |
|
652 | + } |
|
653 | + |
|
654 | + $image = str_replace( $content_dir, content_url(), $image ); |
|
655 | + } |
|
656 | + |
|
657 | + echo '<img class="payment-icon" src="' . esc_url( $image ) . '" style="width:32px;height:24px;position:relative;top:6px;margin-right:5px;"/>'; |
|
658 | + } |
|
659 | + echo wp_kses_post( $option ) . '</label>'; |
|
660 | + } |
|
661 | + echo '<p class="description" style="margin-top:16px;">' . wp_kses_post( $args['desc'] ) . '</p>'; |
|
662 | + } |
|
663 | 663 | } |
664 | 664 | |
665 | 665 | /** |
@@ -667,9 +667,9 @@ discard block |
||
667 | 667 | */ |
668 | 668 | function wpinv_radio_callback( $args ) { |
669 | 669 | |
670 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
671 | - $std = wpinv_get_option( $args['id'], $std ); |
|
672 | - ?> |
|
670 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
671 | + $std = wpinv_get_option( $args['id'], $std ); |
|
672 | + ?> |
|
673 | 673 | <fieldset> |
674 | 674 | <ul id="wpinv-settings-<?php echo esc_attr( $args['id'] ); ?>" style="margin-top: 0;"> |
675 | 675 | <?php foreach ( $args['options'] as $key => $option ) : ?> |
@@ -683,7 +683,7 @@ discard block |
||
683 | 683 | </ul> |
684 | 684 | </fieldset> |
685 | 685 | <?php |
686 | - getpaid_settings_description_callback( $args ); |
|
686 | + getpaid_settings_description_callback( $args ); |
|
687 | 687 | } |
688 | 688 | |
689 | 689 | /** |
@@ -691,10 +691,10 @@ discard block |
||
691 | 691 | */ |
692 | 692 | function getpaid_settings_description_callback( $args ) { |
693 | 693 | |
694 | - if ( ! empty( $args['desc'] ) ) { |
|
695 | - $description = $args['desc']; |
|
696 | - echo wp_kses_post( "<p class='description'>$description</p>" ); |
|
697 | - } |
|
694 | + if ( ! empty( $args['desc'] ) ) { |
|
695 | + $description = $args['desc']; |
|
696 | + echo wp_kses_post( "<p class='description'>$description</p>" ); |
|
697 | + } |
|
698 | 698 | |
699 | 699 | } |
700 | 700 | |
@@ -703,7 +703,7 @@ discard block |
||
703 | 703 | */ |
704 | 704 | function wpinv_gateways_callback() { |
705 | 705 | |
706 | - ?> |
|
706 | + ?> |
|
707 | 707 | </td> |
708 | 708 | </tr> |
709 | 709 | <tr class="bsui"> |
@@ -717,26 +717,26 @@ discard block |
||
717 | 717 | |
718 | 718 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
719 | 719 | $class = ! empty( $args['class'] ) ? ' ' . esc_attr( $args['class'] ) : ''; |
720 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
721 | - $value = wpinv_get_option( $args['id'], $std ); |
|
720 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
721 | + $value = wpinv_get_option( $args['id'], $std ); |
|
722 | 722 | |
723 | - echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >'; |
|
723 | + echo '<select name="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" class="' . esc_attr( $class ) . '" >'; |
|
724 | 724 | |
725 | - foreach ( $args['options'] as $key => $option ) : |
|
725 | + foreach ( $args['options'] as $key => $option ) : |
|
726 | 726 | |
727 | - echo '<option value="' . esc_attr( $key ) . '" '; |
|
727 | + echo '<option value="' . esc_attr( $key ) . '" '; |
|
728 | 728 | |
729 | - if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) { |
|
729 | + if ( isset( $args['selected'] ) && $args['selected'] !== null && $args['selected'] !== false ) { |
|
730 | 730 | selected( $key, $args['selected'] ); |
731 | 731 | } else { |
732 | 732 | selected( $key, $value ); |
733 | 733 | } |
734 | 734 | |
735 | - echo '>' . esc_html( $option['admin_label'] ) . '</option>'; |
|
736 | - endforeach; |
|
735 | + echo '>' . esc_html( $option['admin_label'] ) . '</option>'; |
|
736 | + endforeach; |
|
737 | 737 | |
738 | - echo '</select>'; |
|
739 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
738 | + echo '</select>'; |
|
739 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
740 | 740 | } |
741 | 741 | |
742 | 742 | /** |
@@ -747,38 +747,38 @@ discard block |
||
747 | 747 | */ |
748 | 748 | function wpinv_settings_attrs_helper( $args ) { |
749 | 749 | |
750 | - $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
751 | - $id = esc_attr( $args['id'] ); |
|
752 | - $value = is_scalar( $value ) ? $value : ''; |
|
753 | - |
|
754 | - $attrs = array( |
|
755 | - 'name' => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]", |
|
756 | - 'readonly' => ! empty( $args['faux'] ), |
|
757 | - 'value' => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ), |
|
758 | - 'id' => 'wpinv-settings-' . $args['id'], |
|
759 | - 'style' => $args['style'], |
|
760 | - 'class' => $args['class'], |
|
761 | - 'placeholder' => $args['placeholder'], |
|
762 | - 'data-placeholder' => $args['placeholder'], |
|
763 | - ); |
|
750 | + $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
751 | + $id = esc_attr( $args['id'] ); |
|
752 | + $value = is_scalar( $value ) ? $value : ''; |
|
753 | + |
|
754 | + $attrs = array( |
|
755 | + 'name' => ! empty( $args['faux'] ) ? false : "wpinv_settings[$id]", |
|
756 | + 'readonly' => ! empty( $args['faux'] ), |
|
757 | + 'value' => ! empty( $args['faux'] ) ? $value : wpinv_get_option( $args['id'], $value ), |
|
758 | + 'id' => 'wpinv-settings-' . $args['id'], |
|
759 | + 'style' => $args['style'], |
|
760 | + 'class' => $args['class'], |
|
761 | + 'placeholder' => $args['placeholder'], |
|
762 | + 'data-placeholder' => $args['placeholder'], |
|
763 | + ); |
|
764 | 764 | |
765 | - if ( ! empty( $args['onchange'] ) ) { |
|
766 | - $attrs['onchange'] = $args['onchange']; |
|
767 | - } |
|
765 | + if ( ! empty( $args['onchange'] ) ) { |
|
766 | + $attrs['onchange'] = $args['onchange']; |
|
767 | + } |
|
768 | 768 | |
769 | - foreach ( $attrs as $key => $value ) { |
|
769 | + foreach ( $attrs as $key => $value ) { |
|
770 | 770 | |
771 | - if ( false === $value ) { |
|
772 | - continue; |
|
773 | - } |
|
771 | + if ( false === $value ) { |
|
772 | + continue; |
|
773 | + } |
|
774 | 774 | |
775 | - if ( true === $value ) { |
|
776 | - echo ' ' . esc_attr( $key ); |
|
777 | - } else { |
|
778 | - echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"'; |
|
779 | - } |
|
775 | + if ( true === $value ) { |
|
776 | + echo ' ' . esc_attr( $key ); |
|
777 | + } else { |
|
778 | + echo ' ' . esc_attr( $key ) . '="' . esc_attr( $value ) . '"'; |
|
779 | + } |
|
780 | 780 | |
781 | - } |
|
781 | + } |
|
782 | 782 | |
783 | 783 | } |
784 | 784 | |
@@ -787,7 +787,7 @@ discard block |
||
787 | 787 | */ |
788 | 788 | function wpinv_text_callback( $args ) { |
789 | 789 | |
790 | - ?> |
|
790 | + ?> |
|
791 | 791 | <label style="width: 100%;"> |
792 | 792 | <input type="text" <?php wpinv_settings_attrs_helper( $args ); ?>> |
793 | 793 | <?php getpaid_settings_description_callback( $args ); ?> |
@@ -801,7 +801,7 @@ discard block |
||
801 | 801 | */ |
802 | 802 | function wpinv_number_callback( $args ) { |
803 | 803 | |
804 | - ?> |
|
804 | + ?> |
|
805 | 805 | <label style="width: 100%;"> |
806 | 806 | <input type="number" step="<?php echo esc_attr( $args['step'] ); ?>" max="<?php echo intval( $args['max'] ); ?>" min="<?php echo intval( $args['min'] ); ?>" <?php wpinv_settings_attrs_helper( $args ); ?>> |
807 | 807 | <?php getpaid_settings_description_callback( $args ); ?> |
@@ -813,34 +813,34 @@ discard block |
||
813 | 813 | function wpinv_textarea_callback( $args ) { |
814 | 814 | |
815 | 815 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
816 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
817 | - $value = wpinv_get_option( $args['id'], $std ); |
|
816 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
817 | + $value = wpinv_get_option( $args['id'], $std ); |
|
818 | 818 | |
819 | 819 | $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
820 | 820 | $class = ( isset( $args['class'] ) && ! is_null( $args['class'] ) ) ? $args['class'] : 'large-text'; |
821 | 821 | |
822 | - echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
823 | - echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
822 | + echo '<textarea class="' . esc_attr( $class ) . ' txtarea-' . esc_attr( $size ) . ' wpi-' . esc_attr( sanitize_html_class( $sanitize_id ) ) . ' " cols="' . esc_attr( $args['cols'] ) . '" rows="' . esc_attr( $args['rows'] ) . '" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
823 | + echo '<br /><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
824 | 824 | |
825 | 825 | } |
826 | 826 | |
827 | 827 | function wpinv_password_callback( $args ) { |
828 | 828 | |
829 | 829 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
830 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
831 | - $value = wpinv_get_option( $args['id'], $std ); |
|
830 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
831 | + $value = wpinv_get_option( $args['id'], $std ); |
|
832 | 832 | |
833 | - $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
834 | - echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>'; |
|
835 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
833 | + $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
834 | + echo '<input type="password" class="' . esc_attr( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '"/>'; |
|
835 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
836 | 836 | |
837 | 837 | } |
838 | 838 | |
839 | 839 | function wpinv_missing_callback( $args ) { |
840 | - printf( |
|
841 | - esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ), |
|
842 | - '<strong>' . esc_html( $args['id'] ) . '</strong>' |
|
843 | - ); |
|
840 | + printf( |
|
841 | + esc_html__( 'The callback function used for the %s setting is missing.', 'invoicing' ), |
|
842 | + '<strong>' . esc_html( $args['id'] ) . '</strong>' |
|
843 | + ); |
|
844 | 844 | } |
845 | 845 | |
846 | 846 | /** |
@@ -848,13 +848,13 @@ discard block |
||
848 | 848 | */ |
849 | 849 | function wpinv_select_callback( $args ) { |
850 | 850 | |
851 | - $desc = wp_kses_post( $args['desc'] ); |
|
852 | - $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
853 | - $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
854 | - $value = wpinv_get_option( $args['id'], $value ); |
|
855 | - $rand = uniqid( 'random_id' ); |
|
851 | + $desc = wp_kses_post( $args['desc'] ); |
|
852 | + $desc = empty( $desc ) ? '' : "<p class='description'>$desc</p>"; |
|
853 | + $value = isset( $args['std'] ) ? $args['std'] : ''; |
|
854 | + $value = wpinv_get_option( $args['id'], $value ); |
|
855 | + $rand = uniqid( 'random_id' ); |
|
856 | 856 | |
857 | - ?> |
|
857 | + ?> |
|
858 | 858 | <label style="width: 100%;"> |
859 | 859 | <select <?php wpinv_settings_attrs_helper( $args ); ?> data-allow-clear="true"> |
860 | 860 | <?php foreach ( $args['options'] as $option => $name ) : ?> |
@@ -887,50 +887,50 @@ discard block |
||
887 | 887 | function wpinv_color_select_callback( $args ) { |
888 | 888 | |
889 | 889 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
890 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
891 | - $value = wpinv_get_option( $args['id'], $std ); |
|
890 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
891 | + $value = wpinv_get_option( $args['id'], $std ); |
|
892 | 892 | |
893 | - echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>'; |
|
893 | + echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']"/>'; |
|
894 | 894 | |
895 | - foreach ( $args['options'] as $option => $color ) { |
|
896 | - echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>'; |
|
897 | - } |
|
895 | + foreach ( $args['options'] as $option => $color ) { |
|
896 | + echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $color['label'] ) . '</option>'; |
|
897 | + } |
|
898 | 898 | |
899 | - echo '</select>'; |
|
900 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
899 | + echo '</select>'; |
|
900 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
901 | 901 | |
902 | 902 | } |
903 | 903 | |
904 | 904 | function wpinv_rich_editor_callback( $args ) { |
905 | - global $wp_version; |
|
905 | + global $wp_version; |
|
906 | 906 | |
907 | 907 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
908 | 908 | |
909 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
910 | - $value = wpinv_get_option( $args['id'], $std ); |
|
909 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
910 | + $value = wpinv_get_option( $args['id'], $std ); |
|
911 | 911 | |
912 | - if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) { |
|
913 | - $value = $std; |
|
914 | - } |
|
912 | + if ( ! empty( $args['allow_blank'] ) && empty( $value ) ) { |
|
913 | + $value = $std; |
|
914 | + } |
|
915 | 915 | |
916 | - $rows = isset( $args['size'] ) ? $args['size'] : 20; |
|
916 | + $rows = isset( $args['size'] ) ? $args['size'] : 20; |
|
917 | 917 | |
918 | - echo '<div class="getpaid-settings-editor-input">'; |
|
919 | - if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) { |
|
920 | - wp_editor( |
|
918 | + echo '<div class="getpaid-settings-editor-input">'; |
|
919 | + if ( $wp_version >= 3.3 && function_exists( 'wp_editor' ) ) { |
|
920 | + wp_editor( |
|
921 | 921 | stripslashes( $value ), |
922 | 922 | 'wpinv_settings_' . esc_attr( $args['id'] ), |
923 | 923 | array( |
924 | - 'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']', |
|
925 | - 'textarea_rows' => absint( $rows ), |
|
926 | - 'media_buttons' => false, |
|
924 | + 'textarea_name' => 'wpinv_settings[' . esc_attr( $args['id'] ) . ']', |
|
925 | + 'textarea_rows' => absint( $rows ), |
|
926 | + 'media_buttons' => false, |
|
927 | 927 | ) |
928 | 928 | ); |
929 | - } else { |
|
930 | - echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
931 | - } |
|
929 | + } else { |
|
930 | + echo '<textarea class="large-text" rows="10" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="wpi-' . esc_attr( sanitize_html_class( $args['id'] ) ) . '">' . esc_textarea( stripslashes( $value ) ) . '</textarea>'; |
|
931 | + } |
|
932 | 932 | |
933 | - echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
933 | + echo '</div><br/><label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
934 | 934 | |
935 | 935 | } |
936 | 936 | |
@@ -938,51 +938,51 @@ discard block |
||
938 | 938 | |
939 | 939 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
940 | 940 | |
941 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
942 | - $value = wpinv_get_option( $args['id'], $std ); |
|
941 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
942 | + $value = wpinv_get_option( $args['id'], $std ); |
|
943 | 943 | |
944 | - $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
945 | - echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>'; |
|
946 | - echo '<span> <input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>'; |
|
947 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
944 | + $size = ( isset( $args['size'] ) && ! is_null( $args['size'] ) ) ? $args['size'] : 'regular'; |
|
945 | + echo '<input type="text" class="' . sanitize_html_class( $size ) . '-text" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( stripslashes( $value ) ) . '"/>'; |
|
946 | + echo '<span> <input type="button" class="wpinv_settings_upload_button button-secondary" value="' . esc_attr__( 'Upload File', 'invoicing' ) . '"/></span>'; |
|
947 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
948 | 948 | |
949 | 949 | } |
950 | 950 | |
951 | 951 | function wpinv_color_callback( $args ) { |
952 | 952 | |
953 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
954 | - $value = wpinv_get_option( $args['id'], $std ); |
|
953 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
954 | + $value = wpinv_get_option( $args['id'], $std ); |
|
955 | 955 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
956 | 956 | |
957 | - echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />'; |
|
958 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
957 | + echo '<input type="text" class="wpinv-color-picker" id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" value="' . esc_attr( $value ) . '" data-default-color="' . esc_attr( $std ) . '" />'; |
|
958 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
959 | 959 | |
960 | 960 | } |
961 | 961 | |
962 | 962 | function wpinv_country_states_callback( $args ) { |
963 | 963 | |
964 | - $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
965 | - $value = wpinv_get_option( $args['id'], $std ); |
|
964 | + $std = isset( $args['std'] ) ? $args['std'] : ''; |
|
965 | + $value = wpinv_get_option( $args['id'], $std ); |
|
966 | 966 | |
967 | 967 | $sanitize_id = wpinv_sanitize_key( $args['id'] ); |
968 | 968 | |
969 | - if ( isset( $args['placeholder'] ) ) { |
|
970 | - $placeholder = $args['placeholder']; |
|
971 | - } else { |
|
972 | - $placeholder = ''; |
|
973 | - } |
|
969 | + if ( isset( $args['placeholder'] ) ) { |
|
970 | + $placeholder = $args['placeholder']; |
|
971 | + } else { |
|
972 | + $placeholder = ''; |
|
973 | + } |
|
974 | 974 | |
975 | - $states = wpinv_get_country_states(); |
|
975 | + $states = wpinv_get_country_states(); |
|
976 | 976 | |
977 | - $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2'; |
|
978 | - echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>'; |
|
977 | + $class = empty( $states ) ? 'wpinv-no-states' : 'wpi_select2'; |
|
978 | + echo '<select id="wpinv_settings[' . esc_attr( $sanitize_id ) . ']" name="wpinv_settings[' . esc_attr( $args['id'] ) . ']" class="' . esc_attr( $class ) . '" data-placeholder="' . esc_html( $placeholder ) . '"/>'; |
|
979 | 979 | |
980 | - foreach ( $states as $option => $name ) { |
|
981 | - echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>'; |
|
982 | - } |
|
980 | + foreach ( $states as $option => $name ) { |
|
981 | + echo '<option value="' . esc_attr( $option ) . '" ' . selected( $option, $value ) . '>' . esc_html( $name ) . '</option>'; |
|
982 | + } |
|
983 | 983 | |
984 | - echo '</select>'; |
|
985 | - echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
984 | + echo '</select>'; |
|
985 | + echo '<label for="wpinv_settings[' . esc_attr( $sanitize_id ) . ']"> ' . wp_kses_post( $args['desc'] ) . '</label>'; |
|
986 | 986 | |
987 | 987 | } |
988 | 988 | |
@@ -991,7 +991,7 @@ discard block |
||
991 | 991 | */ |
992 | 992 | function wpinv_tax_rates_callback() { |
993 | 993 | |
994 | - ?> |
|
994 | + ?> |
|
995 | 995 | </td> |
996 | 996 | </tr> |
997 | 997 | <tr class="bsui"> |
@@ -1007,9 +1007,9 @@ discard block |
||
1007 | 1007 | */ |
1008 | 1008 | function wpinv_tax_rate_callback( $tax_rate, $key ) { |
1009 | 1009 | |
1010 | - $key = sanitize_key( $key ); |
|
1011 | - $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate']; |
|
1012 | - include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php'; |
|
1010 | + $key = sanitize_key( $key ); |
|
1011 | + $tax_rate['reduced_rate'] = empty( $tax_rate['reduced_rate'] ) ? 0 : $tax_rate['reduced_rate']; |
|
1012 | + include plugin_dir_path( __FILE__ ) . 'views/html-tax-rate-edit.php'; |
|
1013 | 1013 | |
1014 | 1014 | } |
1015 | 1015 | |
@@ -1018,7 +1018,7 @@ discard block |
||
1018 | 1018 | */ |
1019 | 1019 | function wpinv_tax_rules_callback() { |
1020 | 1020 | |
1021 | - ?> |
|
1021 | + ?> |
|
1022 | 1022 | </td> |
1023 | 1023 | </tr> |
1024 | 1024 | <tr class="bsui"> |
@@ -1056,14 +1056,14 @@ discard block |
||
1056 | 1056 | <td> |
1057 | 1057 | <a href=" |
1058 | 1058 | <?php |
1059 | - echo esc_url( |
|
1060 | - wp_nonce_url( |
|
1061 | - add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ), |
|
1062 | - 'getpaid-nonce', |
|
1063 | - 'getpaid-nonce' |
|
1064 | - ) |
|
1065 | - ); |
|
1066 | - ?> |
|
1059 | + echo esc_url( |
|
1060 | + wp_nonce_url( |
|
1061 | + add_query_arg( 'getpaid-admin-action', 'create_missing_pages' ), |
|
1062 | + 'getpaid-nonce', |
|
1063 | + 'getpaid-nonce' |
|
1064 | + ) |
|
1065 | + ); |
|
1066 | + ?> |
|
1067 | 1067 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1068 | 1068 | </td> |
1069 | 1069 | </tr> |
@@ -1075,14 +1075,14 @@ discard block |
||
1075 | 1075 | <td> |
1076 | 1076 | <a href=" |
1077 | 1077 | <?php |
1078 | - echo esc_url( |
|
1079 | - wp_nonce_url( |
|
1080 | - add_query_arg( 'getpaid-admin-action', 'refresh_permalinks' ), |
|
1081 | - 'getpaid-nonce', |
|
1082 | - 'getpaid-nonce' |
|
1083 | - ) |
|
1084 | - ); |
|
1085 | - ?> |
|
1078 | + echo esc_url( |
|
1079 | + wp_nonce_url( |
|
1080 | + add_query_arg( 'getpaid-admin-action', 'refresh_permalinks' ), |
|
1081 | + 'getpaid-nonce', |
|
1082 | + 'getpaid-nonce' |
|
1083 | + ) |
|
1084 | + ); |
|
1085 | + ?> |
|
1086 | 1086 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1087 | 1087 | </td> |
1088 | 1088 | </tr> |
@@ -1094,14 +1094,14 @@ discard block |
||
1094 | 1094 | <td> |
1095 | 1095 | <a href=" |
1096 | 1096 | <?php |
1097 | - echo esc_url( |
|
1098 | - wp_nonce_url( |
|
1099 | - add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ), |
|
1100 | - 'getpaid-nonce', |
|
1101 | - 'getpaid-nonce' |
|
1102 | - ) |
|
1103 | - ); |
|
1104 | - ?> |
|
1097 | + echo esc_url( |
|
1098 | + wp_nonce_url( |
|
1099 | + add_query_arg( 'getpaid-admin-action', 'create_missing_tables' ), |
|
1100 | + 'getpaid-nonce', |
|
1101 | + 'getpaid-nonce' |
|
1102 | + ) |
|
1103 | + ); |
|
1104 | + ?> |
|
1105 | 1105 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1106 | 1106 | </td> |
1107 | 1107 | </tr> |
@@ -1113,14 +1113,14 @@ discard block |
||
1113 | 1113 | <td> |
1114 | 1114 | <a href=" |
1115 | 1115 | <?php |
1116 | - echo esc_url( |
|
1117 | - wp_nonce_url( |
|
1118 | - add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ), |
|
1119 | - 'getpaid-nonce', |
|
1120 | - 'getpaid-nonce' |
|
1121 | - ) |
|
1122 | - ); |
|
1123 | - ?> |
|
1116 | + echo esc_url( |
|
1117 | + wp_nonce_url( |
|
1118 | + add_query_arg( 'getpaid-admin-action', 'migrate_old_invoices' ), |
|
1119 | + 'getpaid-nonce', |
|
1120 | + 'getpaid-nonce' |
|
1121 | + ) |
|
1122 | + ); |
|
1123 | + ?> |
|
1124 | 1124 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1125 | 1125 | </td> |
1126 | 1126 | </tr> |
@@ -1133,14 +1133,14 @@ discard block |
||
1133 | 1133 | <td> |
1134 | 1134 | <a href=" |
1135 | 1135 | <?php |
1136 | - echo esc_url( |
|
1137 | - wp_nonce_url( |
|
1138 | - add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ), |
|
1139 | - 'getpaid-nonce', |
|
1140 | - 'getpaid-nonce' |
|
1141 | - ) |
|
1142 | - ); |
|
1143 | - ?> |
|
1136 | + echo esc_url( |
|
1137 | + wp_nonce_url( |
|
1138 | + add_query_arg( 'getpaid-admin-action', 'recalculate_discounts' ), |
|
1139 | + 'getpaid-nonce', |
|
1140 | + 'getpaid-nonce' |
|
1141 | + ) |
|
1142 | + ); |
|
1143 | + ?> |
|
1144 | 1144 | " class="button button-primary"><?php esc_html_e( 'Run', 'invoicing' ); ?></a> |
1145 | 1145 | </td> |
1146 | 1146 | </tr> |
@@ -1153,8 +1153,8 @@ discard block |
||
1153 | 1153 | <td> |
1154 | 1154 | <a href=" |
1155 | 1155 | <?php |
1156 | - echo esc_url( admin_url( 'index.php?page=gp-setup' ) ); |
|
1157 | - ?> |
|
1156 | + echo esc_url( admin_url( 'index.php?page=gp-setup' ) ); |
|
1157 | + ?> |
|
1158 | 1158 | " class="button button-primary"><?php esc_html_e( 'Launch', 'invoicing' ); ?></a> |
1159 | 1159 | </td> |
1160 | 1160 | </tr> |
@@ -1168,19 +1168,19 @@ discard block |
||
1168 | 1168 | |
1169 | 1169 | |
1170 | 1170 | function wpinv_descriptive_text_callback( $args ) { |
1171 | - echo wp_kses_post( $args['desc'] ); |
|
1171 | + echo wp_kses_post( $args['desc'] ); |
|
1172 | 1172 | } |
1173 | 1173 | |
1174 | 1174 | function wpinv_raw_html_callback( $args ) { |
1175 | - echo wp_kses( $args['desc'], getpaid_allowed_html() ); |
|
1175 | + echo wp_kses( $args['desc'], getpaid_allowed_html() ); |
|
1176 | 1176 | } |
1177 | 1177 | |
1178 | 1178 | function wpinv_hook_callback( $args ) { |
1179 | - do_action( 'wpinv_' . $args['id'], $args ); |
|
1179 | + do_action( 'wpinv_' . $args['id'], $args ); |
|
1180 | 1180 | } |
1181 | 1181 | |
1182 | 1182 | function wpinv_set_settings_cap() { |
1183 | - return wpinv_get_capability(); |
|
1183 | + return wpinv_get_capability(); |
|
1184 | 1184 | } |
1185 | 1185 | add_filter( 'option_page_capability_wpinv_settings', 'wpinv_set_settings_cap' ); |
1186 | 1186 | |
@@ -1206,47 +1206,47 @@ discard block |
||
1206 | 1206 | * @return array |
1207 | 1207 | */ |
1208 | 1208 | function wpinv_get_email_merge_tags( $subscription = false ) { |
1209 | - $merge_tags = array( |
|
1210 | - '{site_title}' => __( 'Site Title', 'invoicing' ), |
|
1211 | - '{name}' => __( "Customer's full name", 'invoicing' ), |
|
1212 | - '{first_name}' => __( "Customer's first name", 'invoicing' ), |
|
1213 | - '{last_name}' => __( "Customer's last name", 'invoicing' ), |
|
1214 | - '{email}' => __( "Customer's email address", 'invoicing' ), |
|
1215 | - '{invoice_number}' => __( 'The invoice number', 'invoicing' ), |
|
1216 | - '{invoice_currency}' => __( 'The invoice currency', 'invoicing' ), |
|
1217 | - '{invoice_total}' => __( 'The invoice total', 'invoicing' ), |
|
1218 | - '{invoice_link}' => __( 'The invoice link', 'invoicing' ), |
|
1219 | - '{invoice_pay_link}' => __( 'The payment link', 'invoicing' ), |
|
1220 | - '{invoice_receipt_link}' => __( 'The receipt link', 'invoicing' ), |
|
1221 | - '{invoice_date}' => __( 'The date the invoice was created', 'invoicing' ), |
|
1222 | - '{invoice_due_date}' => __( 'The date the invoice is due', 'invoicing' ), |
|
1223 | - '{date}' => __( "Today's date", 'invoicing' ), |
|
1224 | - '{is_was}' => __( 'If due date of invoice is past, displays "was" otherwise displays "is"', 'invoicing' ), |
|
1225 | - '{invoice_label}' => __( 'Invoices/quotes singular name. Ex: Invoice/Quote', 'invoicing' ), |
|
1226 | - '{invoice_quote}' => __( 'Invoices/quotes singular name in small letters. Ex: invoice/quote', 'invoicing' ), |
|
1227 | - '{invoice_description}' => __( 'The description of the invoice', 'invoicing' ), |
|
1228 | - ); |
|
1229 | - |
|
1230 | - if ( $subscription ) { |
|
1231 | - $merge_tags = array_merge( |
|
1232 | - $merge_tags, |
|
1233 | - array( |
|
1234 | - '{subscription_renewal_date}' => __( 'The next renewal date of the subscription', 'invoicing' ), |
|
1235 | - '{subscription_created}' => __( "The subscription's creation date", 'invoicing' ), |
|
1236 | - '{subscription_status}' => __( "The subscription's status", 'invoicing' ), |
|
1237 | - '{subscription_profile_id}' => __( "The subscription's remote profile id", 'invoicing' ), |
|
1238 | - '{subscription_id}' => __( "The subscription's id", 'invoicing' ), |
|
1239 | - '{subscription_recurring_amount}' => __( 'The renewal amount of the subscription', 'invoicing' ), |
|
1240 | - '{subscription_initial_amount}' => __( 'The initial amount of the subscription', 'invoicing' ), |
|
1241 | - '{subscription_recurring_period}' => __( 'The recurring period of the subscription (e.g 1 year)', 'invoicing' ), |
|
1242 | - '{subscription_bill_times}' => __( 'The maximum number of times the subscription can be renewed', 'invoicing' ), |
|
1243 | - '{subscription_url}' => __( 'The URL to manage a subscription', 'invoicing' ), |
|
1244 | - '{subscription_name}' => __( 'The name of the recurring item', 'invoicing' ), |
|
1245 | - ) |
|
1246 | - ); |
|
1247 | - } |
|
1248 | - |
|
1249 | - return $merge_tags; |
|
1209 | + $merge_tags = array( |
|
1210 | + '{site_title}' => __( 'Site Title', 'invoicing' ), |
|
1211 | + '{name}' => __( "Customer's full name", 'invoicing' ), |
|
1212 | + '{first_name}' => __( "Customer's first name", 'invoicing' ), |
|
1213 | + '{last_name}' => __( "Customer's last name", 'invoicing' ), |
|
1214 | + '{email}' => __( "Customer's email address", 'invoicing' ), |
|
1215 | + '{invoice_number}' => __( 'The invoice number', 'invoicing' ), |
|
1216 | + '{invoice_currency}' => __( 'The invoice currency', 'invoicing' ), |
|
1217 | + '{invoice_total}' => __( 'The invoice total', 'invoicing' ), |
|
1218 | + '{invoice_link}' => __( 'The invoice link', 'invoicing' ), |
|
1219 | + '{invoice_pay_link}' => __( 'The payment link', 'invoicing' ), |
|
1220 | + '{invoice_receipt_link}' => __( 'The receipt link', 'invoicing' ), |
|
1221 | + '{invoice_date}' => __( 'The date the invoice was created', 'invoicing' ), |
|
1222 | + '{invoice_due_date}' => __( 'The date the invoice is due', 'invoicing' ), |
|
1223 | + '{date}' => __( "Today's date", 'invoicing' ), |
|
1224 | + '{is_was}' => __( 'If due date of invoice is past, displays "was" otherwise displays "is"', 'invoicing' ), |
|
1225 | + '{invoice_label}' => __( 'Invoices/quotes singular name. Ex: Invoice/Quote', 'invoicing' ), |
|
1226 | + '{invoice_quote}' => __( 'Invoices/quotes singular name in small letters. Ex: invoice/quote', 'invoicing' ), |
|
1227 | + '{invoice_description}' => __( 'The description of the invoice', 'invoicing' ), |
|
1228 | + ); |
|
1229 | + |
|
1230 | + if ( $subscription ) { |
|
1231 | + $merge_tags = array_merge( |
|
1232 | + $merge_tags, |
|
1233 | + array( |
|
1234 | + '{subscription_renewal_date}' => __( 'The next renewal date of the subscription', 'invoicing' ), |
|
1235 | + '{subscription_created}' => __( "The subscription's creation date", 'invoicing' ), |
|
1236 | + '{subscription_status}' => __( "The subscription's status", 'invoicing' ), |
|
1237 | + '{subscription_profile_id}' => __( "The subscription's remote profile id", 'invoicing' ), |
|
1238 | + '{subscription_id}' => __( "The subscription's id", 'invoicing' ), |
|
1239 | + '{subscription_recurring_amount}' => __( 'The renewal amount of the subscription', 'invoicing' ), |
|
1240 | + '{subscription_initial_amount}' => __( 'The initial amount of the subscription', 'invoicing' ), |
|
1241 | + '{subscription_recurring_period}' => __( 'The recurring period of the subscription (e.g 1 year)', 'invoicing' ), |
|
1242 | + '{subscription_bill_times}' => __( 'The maximum number of times the subscription can be renewed', 'invoicing' ), |
|
1243 | + '{subscription_url}' => __( 'The URL to manage a subscription', 'invoicing' ), |
|
1244 | + '{subscription_name}' => __( 'The name of the recurring item', 'invoicing' ), |
|
1245 | + ) |
|
1246 | + ); |
|
1247 | + } |
|
1248 | + |
|
1249 | + return $merge_tags; |
|
1250 | 1250 | } |
1251 | 1251 | |
1252 | 1252 | |
@@ -1258,28 +1258,28 @@ discard block |
||
1258 | 1258 | * @return string |
1259 | 1259 | */ |
1260 | 1260 | function wpinv_get_merge_tags_help_text( $subscription = false ) { |
1261 | - $merge_tags = wpinv_get_email_merge_tags( $subscription ); |
|
1261 | + $merge_tags = wpinv_get_email_merge_tags( $subscription ); |
|
1262 | 1262 | |
1263 | - $output = '<div class="bsui">'; |
|
1263 | + $output = '<div class="bsui">'; |
|
1264 | 1264 | |
1265 | - $link = sprintf( |
|
1266 | - '<strong class="getpaid-merge-tags text-primary" role="button">%s</strong>', |
|
1267 | - esc_html__( 'View available merge tags.', 'invoicing' ) |
|
1268 | - ); |
|
1265 | + $link = sprintf( |
|
1266 | + '<strong class="getpaid-merge-tags text-primary" role="button">%s</strong>', |
|
1267 | + esc_html__( 'View available merge tags.', 'invoicing' ) |
|
1268 | + ); |
|
1269 | 1269 | |
1270 | - $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' ); |
|
1270 | + $description = esc_html__( 'The content of the email (Merge Tags and HTML are allowed).', 'invoicing' ); |
|
1271 | 1271 | |
1272 | - $output .= "$description $link"; |
|
1272 | + $output .= "$description $link"; |
|
1273 | 1273 | |
1274 | - $output .= '<div class="getpaid-merge-tags-content mt-2 p-1 d-none">'; |
|
1275 | - $output .= '<p class="mb-2">' . esc_html__( 'The following wildcards can be used in email subjects, heading and content:', 'invoicing' ) . '</p>'; |
|
1274 | + $output .= '<div class="getpaid-merge-tags-content mt-2 p-1 d-none">'; |
|
1275 | + $output .= '<p class="mb-2">' . esc_html__( 'The following wildcards can be used in email subjects, heading and content:', 'invoicing' ) . '</p>'; |
|
1276 | 1276 | |
1277 | - $output .= '<ul class="p-0 m-0">'; |
|
1278 | - foreach($merge_tags as $tag => $tag_description) { |
|
1279 | - $output .= "<li class='mb-2'><strong class='text-dark'>$tag</strong> — $tag_description</li>"; |
|
1280 | - } |
|
1277 | + $output .= '<ul class="p-0 m-0">'; |
|
1278 | + foreach($merge_tags as $tag => $tag_description) { |
|
1279 | + $output .= "<li class='mb-2'><strong class='text-dark'>$tag</strong> — $tag_description</li>"; |
|
1280 | + } |
|
1281 | 1281 | |
1282 | - $output .= '</ul></div></div>'; |
|
1282 | + $output .= '</ul></div></div>'; |
|
1283 | 1283 | |
1284 | - return $output; |
|
1284 | + return $output; |
|
1285 | 1285 | } |
@@ -13,464 +13,464 @@ discard block |
||
13 | 13 | */ |
14 | 14 | abstract class GetPaid_Payment_Gateway { |
15 | 15 | |
16 | - /** |
|
17 | - * Set if the place checkout button should be renamed on selection. |
|
18 | - * |
|
19 | - * @var string |
|
20 | - */ |
|
21 | - public $checkout_button_text; |
|
22 | - |
|
23 | - /** |
|
24 | - * Boolean whether the method is enabled. |
|
25 | - * |
|
26 | - * @var bool |
|
27 | - */ |
|
28 | - public $enabled = true; |
|
29 | - |
|
30 | - /** |
|
31 | - * Payment method id. |
|
32 | - * |
|
33 | - * @var string |
|
34 | - */ |
|
35 | - public $id; |
|
36 | - |
|
37 | - /** |
|
38 | - * Payment method order. |
|
39 | - * |
|
40 | - * @var int |
|
41 | - */ |
|
42 | - public $order = 10; |
|
43 | - |
|
44 | - /** |
|
45 | - * Payment method title for the frontend. |
|
46 | - * |
|
47 | - * @var string |
|
48 | - */ |
|
49 | - public $title; |
|
50 | - |
|
51 | - /** |
|
52 | - * Payment method description for the frontend. |
|
53 | - * |
|
54 | - * @var string |
|
55 | - */ |
|
56 | - public $description; |
|
57 | - |
|
58 | - /** |
|
59 | - * Gateway title. |
|
60 | - * |
|
61 | - * @var string |
|
62 | - */ |
|
63 | - public $method_title = ''; |
|
64 | - |
|
65 | - /** |
|
66 | - * Gateway description. |
|
67 | - * |
|
68 | - * @var string |
|
69 | - */ |
|
70 | - public $method_description = ''; |
|
71 | - |
|
72 | - /** |
|
73 | - * Countries this gateway is allowed for. |
|
74 | - * |
|
75 | - * @var array |
|
76 | - */ |
|
77 | - public $countries; |
|
78 | - |
|
79 | - /** |
|
80 | - * Currencies this gateway is allowed for. |
|
81 | - * |
|
82 | - * @var array |
|
83 | - */ |
|
84 | - public $currencies; |
|
85 | - |
|
86 | - /** |
|
87 | - * Currencies this gateway is not allowed for. |
|
88 | - * |
|
89 | - * @var array |
|
90 | - */ |
|
91 | - public $exclude_currencies; |
|
92 | - |
|
93 | - /** |
|
94 | - * Maximum transaction amount, zero does not define a maximum. |
|
95 | - * |
|
96 | - * @var int |
|
97 | - */ |
|
98 | - public $max_amount = 0; |
|
99 | - |
|
100 | - /** |
|
101 | - * Optional URL to view a transaction. |
|
102 | - * |
|
103 | - * @var string |
|
104 | - */ |
|
105 | - public $view_transaction_url = ''; |
|
106 | - |
|
107 | - /** |
|
108 | - * Optional URL to view a subscription. |
|
109 | - * |
|
110 | - * @var string |
|
111 | - */ |
|
112 | - public $view_subscription_url = ''; |
|
113 | - |
|
114 | - /** |
|
115 | - * Optional label to show for "new payment method" in the payment |
|
116 | - * method/token selection radio selection. |
|
117 | - * |
|
118 | - * @var string |
|
119 | - */ |
|
120 | - public $new_method_label = ''; |
|
121 | - |
|
122 | - /** |
|
123 | - * Contains a user's saved tokens for this gateway. |
|
124 | - * |
|
125 | - * @var array |
|
126 | - */ |
|
127 | - protected $tokens = array(); |
|
128 | - |
|
129 | - /** |
|
130 | - * An array of features that this gateway supports. |
|
131 | - * |
|
132 | - * @var array |
|
133 | - */ |
|
134 | - protected $supports = array(); |
|
135 | - |
|
136 | - /** |
|
137 | - * Class constructor. |
|
138 | - */ |
|
139 | - public function __construct() { |
|
140 | - |
|
141 | - do_action( 'getpaid_before_init_payment_gateway_' . $this->id, $this ); |
|
142 | - |
|
143 | - // Register gateway. |
|
144 | - add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
145 | - |
|
146 | - $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
147 | - |
|
148 | - // Add support for various features. |
|
149 | - foreach ( $this->supports as $feature ) { |
|
150 | - add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
151 | - add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
152 | - add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
153 | - } |
|
154 | - |
|
155 | - // Invoice addons. |
|
156 | - if ( $this->supports( 'addons' ) ) { |
|
157 | - add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
158 | - } |
|
159 | - |
|
160 | - // Gateway settings. |
|
161 | - add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
162 | - |
|
163 | - // Gateway checkout fields. |
|
164 | - add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
165 | - |
|
166 | - // Process payment. |
|
167 | - add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
168 | - |
|
169 | - // Change the checkout button text. |
|
170 | - if ( ! empty( $this->checkout_button_text ) ) { |
|
171 | - add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
172 | - } |
|
173 | - |
|
174 | - // Check if a gateway is valid for a given currency. |
|
175 | - add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
176 | - |
|
177 | - // Generate the transaction url. |
|
178 | - add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
179 | - |
|
180 | - // Generate the subscription url. |
|
181 | - add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
182 | - |
|
183 | - // Confirm payments. |
|
184 | - add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
185 | - |
|
186 | - // Verify IPNs. |
|
187 | - add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
188 | - |
|
189 | - } |
|
190 | - |
|
191 | - /** |
|
192 | - * Checks if this gateway is a given gateway. |
|
193 | - * |
|
194 | - * @since 1.0.19 |
|
195 | - * @return bool |
|
196 | - */ |
|
197 | - public function is( $gateway ) { |
|
198 | - return $gateway == $this->id; |
|
199 | - } |
|
200 | - |
|
201 | - /** |
|
202 | - * Returns a users saved tokens for this gateway. |
|
203 | - * |
|
204 | - * @since 1.0.19 |
|
205 | - * @return array |
|
206 | - */ |
|
207 | - public function get_tokens( $sandbox = null ) { |
|
208 | - |
|
209 | - if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
210 | - $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
211 | - |
|
212 | - if ( is_array( $tokens ) ) { |
|
213 | - $this->tokens = $tokens; |
|
214 | - } |
|
16 | + /** |
|
17 | + * Set if the place checkout button should be renamed on selection. |
|
18 | + * |
|
19 | + * @var string |
|
20 | + */ |
|
21 | + public $checkout_button_text; |
|
22 | + |
|
23 | + /** |
|
24 | + * Boolean whether the method is enabled. |
|
25 | + * |
|
26 | + * @var bool |
|
27 | + */ |
|
28 | + public $enabled = true; |
|
29 | + |
|
30 | + /** |
|
31 | + * Payment method id. |
|
32 | + * |
|
33 | + * @var string |
|
34 | + */ |
|
35 | + public $id; |
|
36 | + |
|
37 | + /** |
|
38 | + * Payment method order. |
|
39 | + * |
|
40 | + * @var int |
|
41 | + */ |
|
42 | + public $order = 10; |
|
43 | + |
|
44 | + /** |
|
45 | + * Payment method title for the frontend. |
|
46 | + * |
|
47 | + * @var string |
|
48 | + */ |
|
49 | + public $title; |
|
50 | + |
|
51 | + /** |
|
52 | + * Payment method description for the frontend. |
|
53 | + * |
|
54 | + * @var string |
|
55 | + */ |
|
56 | + public $description; |
|
57 | + |
|
58 | + /** |
|
59 | + * Gateway title. |
|
60 | + * |
|
61 | + * @var string |
|
62 | + */ |
|
63 | + public $method_title = ''; |
|
64 | + |
|
65 | + /** |
|
66 | + * Gateway description. |
|
67 | + * |
|
68 | + * @var string |
|
69 | + */ |
|
70 | + public $method_description = ''; |
|
71 | + |
|
72 | + /** |
|
73 | + * Countries this gateway is allowed for. |
|
74 | + * |
|
75 | + * @var array |
|
76 | + */ |
|
77 | + public $countries; |
|
78 | + |
|
79 | + /** |
|
80 | + * Currencies this gateway is allowed for. |
|
81 | + * |
|
82 | + * @var array |
|
83 | + */ |
|
84 | + public $currencies; |
|
85 | + |
|
86 | + /** |
|
87 | + * Currencies this gateway is not allowed for. |
|
88 | + * |
|
89 | + * @var array |
|
90 | + */ |
|
91 | + public $exclude_currencies; |
|
92 | + |
|
93 | + /** |
|
94 | + * Maximum transaction amount, zero does not define a maximum. |
|
95 | + * |
|
96 | + * @var int |
|
97 | + */ |
|
98 | + public $max_amount = 0; |
|
99 | + |
|
100 | + /** |
|
101 | + * Optional URL to view a transaction. |
|
102 | + * |
|
103 | + * @var string |
|
104 | + */ |
|
105 | + public $view_transaction_url = ''; |
|
106 | + |
|
107 | + /** |
|
108 | + * Optional URL to view a subscription. |
|
109 | + * |
|
110 | + * @var string |
|
111 | + */ |
|
112 | + public $view_subscription_url = ''; |
|
113 | + |
|
114 | + /** |
|
115 | + * Optional label to show for "new payment method" in the payment |
|
116 | + * method/token selection radio selection. |
|
117 | + * |
|
118 | + * @var string |
|
119 | + */ |
|
120 | + public $new_method_label = ''; |
|
121 | + |
|
122 | + /** |
|
123 | + * Contains a user's saved tokens for this gateway. |
|
124 | + * |
|
125 | + * @var array |
|
126 | + */ |
|
127 | + protected $tokens = array(); |
|
128 | + |
|
129 | + /** |
|
130 | + * An array of features that this gateway supports. |
|
131 | + * |
|
132 | + * @var array |
|
133 | + */ |
|
134 | + protected $supports = array(); |
|
135 | + |
|
136 | + /** |
|
137 | + * Class constructor. |
|
138 | + */ |
|
139 | + public function __construct() { |
|
140 | + |
|
141 | + do_action( 'getpaid_before_init_payment_gateway_' . $this->id, $this ); |
|
142 | + |
|
143 | + // Register gateway. |
|
144 | + add_filter( 'wpinv_payment_gateways', array( $this, 'register_gateway' ) ); |
|
145 | + |
|
146 | + $this->enabled = wpinv_is_gateway_active( $this->id ); |
|
147 | + |
|
148 | + // Add support for various features. |
|
149 | + foreach ( $this->supports as $feature ) { |
|
150 | + add_filter( "wpinv_{$this->id}_support_{$feature}", '__return_true' ); |
|
151 | + add_filter( "getpaid_{$this->id}_support_{$feature}", '__return_true' ); |
|
152 | + add_filter( "getpaid_{$this->id}_supports_{$feature}", '__return_true' ); |
|
153 | + } |
|
154 | + |
|
155 | + // Invoice addons. |
|
156 | + if ( $this->supports( 'addons' ) ) { |
|
157 | + add_action( "getpaid_process_{$this->id}_invoice_addons", array( $this, 'process_addons' ), 10, 2 ); |
|
158 | + } |
|
159 | + |
|
160 | + // Gateway settings. |
|
161 | + add_filter( "wpinv_gateway_settings_{$this->id}", array( $this, 'admin_settings' ) ); |
|
162 | + |
|
163 | + // Gateway checkout fields. |
|
164 | + add_action( "wpinv_{$this->id}_cc_form", array( $this, 'payment_fields' ), 10, 2 ); |
|
165 | + |
|
166 | + // Process payment. |
|
167 | + add_action( "getpaid_gateway_{$this->id}", array( $this, 'process_payment' ), 10, 3 ); |
|
168 | + |
|
169 | + // Change the checkout button text. |
|
170 | + if ( ! empty( $this->checkout_button_text ) ) { |
|
171 | + add_filter( "getpaid_gateway_{$this->id}_checkout_button_label", array( $this, 'rename_checkout_button' ) ); |
|
172 | + } |
|
173 | + |
|
174 | + // Check if a gateway is valid for a given currency. |
|
175 | + add_filter( "getpaid_gateway_{$this->id}_is_valid_for_currency", array( $this, 'validate_currency' ), 10, 2 ); |
|
176 | + |
|
177 | + // Generate the transaction url. |
|
178 | + add_filter( "getpaid_gateway_{$this->id}_transaction_url", array( $this, 'filter_transaction_url' ), 10, 2 ); |
|
179 | + |
|
180 | + // Generate the subscription url. |
|
181 | + add_filter( 'getpaid_remote_subscription_profile_url', array( $this, 'generate_subscription_url' ), 10, 2 ); |
|
182 | + |
|
183 | + // Confirm payments. |
|
184 | + add_filter( "wpinv_payment_confirm_{$this->id}", array( $this, 'confirm_payment' ), 10, 2 ); |
|
185 | + |
|
186 | + // Verify IPNs. |
|
187 | + add_action( "wpinv_verify_{$this->id}_ipn", array( $this, 'verify_ipn' ) ); |
|
188 | + |
|
189 | + } |
|
190 | + |
|
191 | + /** |
|
192 | + * Checks if this gateway is a given gateway. |
|
193 | + * |
|
194 | + * @since 1.0.19 |
|
195 | + * @return bool |
|
196 | + */ |
|
197 | + public function is( $gateway ) { |
|
198 | + return $gateway == $this->id; |
|
199 | + } |
|
200 | + |
|
201 | + /** |
|
202 | + * Returns a users saved tokens for this gateway. |
|
203 | + * |
|
204 | + * @since 1.0.19 |
|
205 | + * @return array |
|
206 | + */ |
|
207 | + public function get_tokens( $sandbox = null ) { |
|
208 | + |
|
209 | + if ( is_user_logged_in() && $this->supports( 'tokens' ) && 0 == count( $this->tokens ) ) { |
|
210 | + $tokens = get_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", true ); |
|
211 | + |
|
212 | + if ( is_array( $tokens ) ) { |
|
213 | + $this->tokens = $tokens; |
|
214 | + } |
|
215 | 215 | } |
216 | 216 | |
217 | - if ( ! is_bool( $sandbox ) ) { |
|
218 | - return $this->tokens; |
|
219 | - } |
|
220 | - |
|
221 | - // Filter tokens. |
|
222 | - $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
223 | - return wp_list_filter( $this->tokens, $args ); |
|
224 | - |
|
225 | - } |
|
226 | - |
|
227 | - /** |
|
228 | - * Saves a token for this gateway. |
|
229 | - * |
|
230 | - * @since 1.0.19 |
|
231 | - */ |
|
232 | - public function save_token( $token ) { |
|
233 | - |
|
234 | - $tokens = $this->get_tokens(); |
|
235 | - $tokens[] = $token; |
|
236 | - |
|
237 | - update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
238 | - |
|
239 | - $this->tokens = $tokens; |
|
240 | - |
|
241 | - } |
|
242 | - |
|
243 | - /** |
|
244 | - * Return the title for admin screens. |
|
245 | - * |
|
246 | - * @return string |
|
247 | - */ |
|
248 | - public function get_method_title() { |
|
249 | - return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
250 | - } |
|
251 | - |
|
252 | - /** |
|
253 | - * Return the description for admin screens. |
|
254 | - * |
|
255 | - * @return string |
|
256 | - */ |
|
257 | - public function get_method_description() { |
|
258 | - return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
259 | - } |
|
260 | - |
|
261 | - /** |
|
262 | - * Get the success url. |
|
263 | - * |
|
264 | - * @param WPInv_Invoice $invoice Invoice object. |
|
265 | - * @return string |
|
266 | - */ |
|
267 | - public function get_return_url( $invoice ) { |
|
268 | - |
|
269 | - // Payment success url |
|
270 | - $return_url = add_query_arg( |
|
271 | - array( |
|
272 | - 'payment-confirm' => $this->id, |
|
273 | - 'invoice_key' => $invoice->get_key(), |
|
274 | - 'utm_nooverride' => 1, |
|
275 | - ), |
|
276 | - wpinv_get_success_page_uri() |
|
277 | - ); |
|
278 | - |
|
279 | - return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
280 | - } |
|
281 | - |
|
282 | - /** |
|
283 | - * Confirms payments when rendering the success page. |
|
284 | - * |
|
285 | - * @param string $content Success page content. |
|
286 | - * @return string |
|
287 | - */ |
|
288 | - public function confirm_payment( $content ) { |
|
289 | - |
|
290 | - // Retrieve the invoice. |
|
291 | - $invoice_id = getpaid_get_current_invoice_id(); |
|
292 | - $invoice = wpinv_get_invoice( $invoice_id ); |
|
293 | - |
|
294 | - // Ensure that it exists and that it is pending payment. |
|
295 | - if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
296 | - return $content; |
|
297 | - } |
|
298 | - |
|
299 | - // Can the user view this invoice?? |
|
300 | - if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
301 | - return $content; |
|
302 | - } |
|
303 | - |
|
304 | - // Show payment processing indicator. |
|
305 | - return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
306 | - } |
|
307 | - |
|
308 | - /** |
|
309 | - * Processes ipns and marks payments as complete. |
|
310 | - * |
|
311 | - * @return void |
|
312 | - */ |
|
313 | - public function verify_ipn() {} |
|
314 | - |
|
315 | - /** |
|
316 | - * Processes invoice addons. |
|
317 | - * |
|
318 | - * @param WPInv_Invoice $invoice |
|
319 | - * @param GetPaid_Form_Item[] $items |
|
320 | - * @return WPInv_Invoice |
|
321 | - */ |
|
322 | - public function process_addons( $invoice, $items ) { |
|
323 | - |
|
324 | - } |
|
325 | - |
|
326 | - /** |
|
327 | - * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
328 | - * |
|
329 | - * @param string $transaction_url transaction url. |
|
330 | - * @param WPInv_Invoice $invoice Invoice object. |
|
331 | - * @return string transaction URL, or empty string. |
|
332 | - */ |
|
333 | - public function filter_transaction_url( $transaction_url, $invoice ) { |
|
334 | - |
|
335 | - $transaction_id = $invoice->get_transaction_id(); |
|
336 | - |
|
337 | - if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
338 | - $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
339 | - $replace = $this->is_sandbox( $invoice ) ? 'sandbox.' : ''; |
|
340 | - $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
341 | - } |
|
342 | - |
|
343 | - return $transaction_url; |
|
344 | - } |
|
345 | - |
|
346 | - /** |
|
347 | - * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
348 | - * |
|
349 | - * @param string $subscription_url transaction url. |
|
350 | - * @param WPInv_Subscription $subscription Subscription object. |
|
351 | - * @return string subscription URL, or empty string. |
|
352 | - */ |
|
353 | - public function generate_subscription_url( $subscription_url, $subscription ) { |
|
354 | - |
|
355 | - $profile_id = $subscription->get_profile_id(); |
|
356 | - |
|
357 | - if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
358 | - |
|
359 | - $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
360 | - $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox.' : ''; |
|
361 | - $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
362 | - |
|
363 | - } |
|
364 | - |
|
365 | - return $subscription_url; |
|
366 | - } |
|
367 | - |
|
368 | - /** |
|
369 | - * Check if the gateway is available for use. |
|
370 | - * |
|
371 | - * @return bool |
|
372 | - */ |
|
373 | - public function is_available() { |
|
374 | - return ! empty( $this->enabled ); |
|
375 | - } |
|
376 | - |
|
377 | - /** |
|
378 | - * Return the gateway's title. |
|
379 | - * |
|
380 | - * @return string |
|
381 | - */ |
|
382 | - public function get_title() { |
|
383 | - return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
384 | - } |
|
385 | - |
|
386 | - /** |
|
387 | - * Return the gateway's description. |
|
388 | - * |
|
389 | - * @return string |
|
390 | - */ |
|
391 | - public function get_description() { |
|
392 | - return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
393 | - } |
|
394 | - |
|
395 | - /** |
|
396 | - * Process Payment. |
|
397 | - * |
|
398 | - * |
|
399 | - * @param WPInv_Invoice $invoice Invoice. |
|
400 | - * @param array $submission_data Posted checkout fields. |
|
401 | - * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
402 | - * @return void |
|
403 | - */ |
|
404 | - public function process_payment( $invoice, $submission_data, $submission ) { |
|
405 | - // Process the payment then either redirect to the success page or the gateway. |
|
406 | - do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
407 | - } |
|
408 | - |
|
409 | - /** |
|
410 | - * Process refund. |
|
411 | - * |
|
412 | - * If the gateway declares 'refunds' support, this will allow it to refund. |
|
413 | - * a passed in amount. |
|
414 | - * |
|
415 | - * @param WPInv_Invoice $invoice Invoice. |
|
416 | - * @param float $amount Refund amount. |
|
417 | - * @param string $reason Refund reason. |
|
418 | - * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
419 | - */ |
|
420 | - public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
421 | - return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
422 | - } |
|
423 | - |
|
424 | - /** |
|
425 | - * Displays the payment fields, credit cards etc. |
|
426 | - * |
|
427 | - * @param int $invoice_id 0 or invoice id. |
|
428 | - * @param GetPaid_Payment_Form $form Current payment form. |
|
429 | - */ |
|
430 | - public function payment_fields( $invoice_id, $form ) { |
|
431 | - do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
432 | - } |
|
433 | - |
|
434 | - /** |
|
435 | - * Filters the gateway settings. |
|
436 | - * |
|
437 | - * @param array $admin_settings |
|
438 | - */ |
|
439 | - public function admin_settings( $admin_settings ) { |
|
440 | - return $admin_settings; |
|
441 | - } |
|
442 | - |
|
443 | - /** |
|
444 | - * Retrieves the value of a gateway setting. |
|
445 | - * |
|
446 | - * @param string $option |
|
447 | - */ |
|
448 | - public function get_option( $option, $default = false ) { |
|
449 | - return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
450 | - } |
|
451 | - |
|
452 | - /** |
|
453 | - * Check if a gateway supports a given feature. |
|
454 | - * |
|
455 | - * Gateways should override this to declare support (or lack of support) for a feature. |
|
456 | - * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
457 | - * |
|
458 | - * @param string $feature string The name of a feature to test support for. |
|
459 | - * @return bool True if the gateway supports the feature, false otherwise. |
|
460 | - * @since 1.0.19 |
|
461 | - */ |
|
462 | - public function supports( $feature ) { |
|
463 | - return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
464 | - } |
|
465 | - |
|
466 | - /** |
|
467 | - * Returns the credit card form html. |
|
468 | - * |
|
469 | - * @param bool $save whether or not to display the save button. |
|
470 | - */ |
|
217 | + if ( ! is_bool( $sandbox ) ) { |
|
218 | + return $this->tokens; |
|
219 | + } |
|
220 | + |
|
221 | + // Filter tokens. |
|
222 | + $args = array( 'type' => $sandbox ? 'sandbox' : 'live' ); |
|
223 | + return wp_list_filter( $this->tokens, $args ); |
|
224 | + |
|
225 | + } |
|
226 | + |
|
227 | + /** |
|
228 | + * Saves a token for this gateway. |
|
229 | + * |
|
230 | + * @since 1.0.19 |
|
231 | + */ |
|
232 | + public function save_token( $token ) { |
|
233 | + |
|
234 | + $tokens = $this->get_tokens(); |
|
235 | + $tokens[] = $token; |
|
236 | + |
|
237 | + update_user_meta( get_current_user_id(), "getpaid_{$this->id}_tokens", $tokens ); |
|
238 | + |
|
239 | + $this->tokens = $tokens; |
|
240 | + |
|
241 | + } |
|
242 | + |
|
243 | + /** |
|
244 | + * Return the title for admin screens. |
|
245 | + * |
|
246 | + * @return string |
|
247 | + */ |
|
248 | + public function get_method_title() { |
|
249 | + return apply_filters( 'getpaid_gateway_method_title', $this->method_title, $this ); |
|
250 | + } |
|
251 | + |
|
252 | + /** |
|
253 | + * Return the description for admin screens. |
|
254 | + * |
|
255 | + * @return string |
|
256 | + */ |
|
257 | + public function get_method_description() { |
|
258 | + return apply_filters( 'getpaid_gateway_method_description', $this->method_description, $this ); |
|
259 | + } |
|
260 | + |
|
261 | + /** |
|
262 | + * Get the success url. |
|
263 | + * |
|
264 | + * @param WPInv_Invoice $invoice Invoice object. |
|
265 | + * @return string |
|
266 | + */ |
|
267 | + public function get_return_url( $invoice ) { |
|
268 | + |
|
269 | + // Payment success url |
|
270 | + $return_url = add_query_arg( |
|
271 | + array( |
|
272 | + 'payment-confirm' => $this->id, |
|
273 | + 'invoice_key' => $invoice->get_key(), |
|
274 | + 'utm_nooverride' => 1, |
|
275 | + ), |
|
276 | + wpinv_get_success_page_uri() |
|
277 | + ); |
|
278 | + |
|
279 | + return apply_filters( 'getpaid_gateway_success_url', $return_url, $invoice, $this ); |
|
280 | + } |
|
281 | + |
|
282 | + /** |
|
283 | + * Confirms payments when rendering the success page. |
|
284 | + * |
|
285 | + * @param string $content Success page content. |
|
286 | + * @return string |
|
287 | + */ |
|
288 | + public function confirm_payment( $content ) { |
|
289 | + |
|
290 | + // Retrieve the invoice. |
|
291 | + $invoice_id = getpaid_get_current_invoice_id(); |
|
292 | + $invoice = wpinv_get_invoice( $invoice_id ); |
|
293 | + |
|
294 | + // Ensure that it exists and that it is pending payment. |
|
295 | + if ( empty( $invoice_id ) || ! $invoice->needs_payment() ) { |
|
296 | + return $content; |
|
297 | + } |
|
298 | + |
|
299 | + // Can the user view this invoice?? |
|
300 | + if ( ! wpinv_user_can_view_invoice( $invoice ) ) { |
|
301 | + return $content; |
|
302 | + } |
|
303 | + |
|
304 | + // Show payment processing indicator. |
|
305 | + return wpinv_get_template_html( 'wpinv-payment-processing.php', compact( 'invoice' ) ); |
|
306 | + } |
|
307 | + |
|
308 | + /** |
|
309 | + * Processes ipns and marks payments as complete. |
|
310 | + * |
|
311 | + * @return void |
|
312 | + */ |
|
313 | + public function verify_ipn() {} |
|
314 | + |
|
315 | + /** |
|
316 | + * Processes invoice addons. |
|
317 | + * |
|
318 | + * @param WPInv_Invoice $invoice |
|
319 | + * @param GetPaid_Form_Item[] $items |
|
320 | + * @return WPInv_Invoice |
|
321 | + */ |
|
322 | + public function process_addons( $invoice, $items ) { |
|
323 | + |
|
324 | + } |
|
325 | + |
|
326 | + /** |
|
327 | + * Get a link to the transaction on the 3rd party gateway site (if applicable). |
|
328 | + * |
|
329 | + * @param string $transaction_url transaction url. |
|
330 | + * @param WPInv_Invoice $invoice Invoice object. |
|
331 | + * @return string transaction URL, or empty string. |
|
332 | + */ |
|
333 | + public function filter_transaction_url( $transaction_url, $invoice ) { |
|
334 | + |
|
335 | + $transaction_id = $invoice->get_transaction_id(); |
|
336 | + |
|
337 | + if ( ! empty( $this->view_transaction_url ) && ! empty( $transaction_id ) ) { |
|
338 | + $transaction_url = sprintf( $this->view_transaction_url, $transaction_id ); |
|
339 | + $replace = $this->is_sandbox( $invoice ) ? 'sandbox.' : ''; |
|
340 | + $transaction_url = str_replace( '{sandbox}', $replace, $transaction_url ); |
|
341 | + } |
|
342 | + |
|
343 | + return $transaction_url; |
|
344 | + } |
|
345 | + |
|
346 | + /** |
|
347 | + * Get a link to the subscription on the 3rd party gateway site (if applicable). |
|
348 | + * |
|
349 | + * @param string $subscription_url transaction url. |
|
350 | + * @param WPInv_Subscription $subscription Subscription object. |
|
351 | + * @return string subscription URL, or empty string. |
|
352 | + */ |
|
353 | + public function generate_subscription_url( $subscription_url, $subscription ) { |
|
354 | + |
|
355 | + $profile_id = $subscription->get_profile_id(); |
|
356 | + |
|
357 | + if ( $this->id == $subscription->get_gateway() && ! empty( $this->view_subscription_url ) && ! empty( $profile_id ) ) { |
|
358 | + |
|
359 | + $subscription_url = sprintf( $this->view_subscription_url, $profile_id ); |
|
360 | + $replace = $this->is_sandbox( $subscription->get_parent_invoice() ) ? 'sandbox.' : ''; |
|
361 | + $subscription_url = str_replace( '{sandbox}', $replace, $subscription_url ); |
|
362 | + |
|
363 | + } |
|
364 | + |
|
365 | + return $subscription_url; |
|
366 | + } |
|
367 | + |
|
368 | + /** |
|
369 | + * Check if the gateway is available for use. |
|
370 | + * |
|
371 | + * @return bool |
|
372 | + */ |
|
373 | + public function is_available() { |
|
374 | + return ! empty( $this->enabled ); |
|
375 | + } |
|
376 | + |
|
377 | + /** |
|
378 | + * Return the gateway's title. |
|
379 | + * |
|
380 | + * @return string |
|
381 | + */ |
|
382 | + public function get_title() { |
|
383 | + return apply_filters( 'getpaid_gateway_title', $this->title, $this ); |
|
384 | + } |
|
385 | + |
|
386 | + /** |
|
387 | + * Return the gateway's description. |
|
388 | + * |
|
389 | + * @return string |
|
390 | + */ |
|
391 | + public function get_description() { |
|
392 | + return apply_filters( 'getpaid_gateway_description', $this->description, $this ); |
|
393 | + } |
|
394 | + |
|
395 | + /** |
|
396 | + * Process Payment. |
|
397 | + * |
|
398 | + * |
|
399 | + * @param WPInv_Invoice $invoice Invoice. |
|
400 | + * @param array $submission_data Posted checkout fields. |
|
401 | + * @param GetPaid_Payment_Form_Submission $submission Checkout submission. |
|
402 | + * @return void |
|
403 | + */ |
|
404 | + public function process_payment( $invoice, $submission_data, $submission ) { |
|
405 | + // Process the payment then either redirect to the success page or the gateway. |
|
406 | + do_action( 'getpaid_process_invoice_payment_' . $this->id, $invoice, $submission_data, $submission ); |
|
407 | + } |
|
408 | + |
|
409 | + /** |
|
410 | + * Process refund. |
|
411 | + * |
|
412 | + * If the gateway declares 'refunds' support, this will allow it to refund. |
|
413 | + * a passed in amount. |
|
414 | + * |
|
415 | + * @param WPInv_Invoice $invoice Invoice. |
|
416 | + * @param float $amount Refund amount. |
|
417 | + * @param string $reason Refund reason. |
|
418 | + * @return WP_Error|bool True or false based on success, or a WP_Error object. |
|
419 | + */ |
|
420 | + public function process_refund( $invoice, $amount = null, $reason = '' ) { |
|
421 | + return apply_filters( 'getpaid_process_invoice_refund_' . $this->id, false, $invoice, $amount, $reason ); |
|
422 | + } |
|
423 | + |
|
424 | + /** |
|
425 | + * Displays the payment fields, credit cards etc. |
|
426 | + * |
|
427 | + * @param int $invoice_id 0 or invoice id. |
|
428 | + * @param GetPaid_Payment_Form $form Current payment form. |
|
429 | + */ |
|
430 | + public function payment_fields( $invoice_id, $form ) { |
|
431 | + do_action( 'getpaid_getpaid_gateway_payment_fields_' . $this->id, $invoice_id, $form ); |
|
432 | + } |
|
433 | + |
|
434 | + /** |
|
435 | + * Filters the gateway settings. |
|
436 | + * |
|
437 | + * @param array $admin_settings |
|
438 | + */ |
|
439 | + public function admin_settings( $admin_settings ) { |
|
440 | + return $admin_settings; |
|
441 | + } |
|
442 | + |
|
443 | + /** |
|
444 | + * Retrieves the value of a gateway setting. |
|
445 | + * |
|
446 | + * @param string $option |
|
447 | + */ |
|
448 | + public function get_option( $option, $default = false ) { |
|
449 | + return wpinv_get_option( $this->id . '_' . $option, $default ); |
|
450 | + } |
|
451 | + |
|
452 | + /** |
|
453 | + * Check if a gateway supports a given feature. |
|
454 | + * |
|
455 | + * Gateways should override this to declare support (or lack of support) for a feature. |
|
456 | + * For backward compatibility, gateways support 'products' by default, but nothing else. |
|
457 | + * |
|
458 | + * @param string $feature string The name of a feature to test support for. |
|
459 | + * @return bool True if the gateway supports the feature, false otherwise. |
|
460 | + * @since 1.0.19 |
|
461 | + */ |
|
462 | + public function supports( $feature ) { |
|
463 | + return getpaid_payment_gateway_supports( $this->id, $feature ); |
|
464 | + } |
|
465 | + |
|
466 | + /** |
|
467 | + * Returns the credit card form html. |
|
468 | + * |
|
469 | + * @param bool $save whether or not to display the save button. |
|
470 | + */ |
|
471 | 471 | public function get_cc_form( $save = false ) { |
472 | 472 | |
473 | - ob_start(); |
|
473 | + ob_start(); |
|
474 | 474 | |
475 | 475 | $id_prefix = esc_attr( uniqid( $this->id ) ); |
476 | 476 | |
@@ -488,7 +488,7 @@ discard block |
||
488 | 488 | '11' => __( 'November', 'invoicing' ), |
489 | 489 | '12' => __( 'December', 'invoicing' ), |
490 | 490 | ); |
491 | - $months = apply_filters( 'getpaid_cc_months', $months, $this ); |
|
491 | + $months = apply_filters( 'getpaid_cc_months', $months, $this ); |
|
492 | 492 | |
493 | 493 | $year = (int) current_time( 'Y' ); |
494 | 494 | $years = array(); |
@@ -497,7 +497,7 @@ discard block |
||
497 | 497 | $years[ $year + $i ] = $year + $i; |
498 | 498 | } |
499 | 499 | |
500 | - $years = apply_filters( 'getpaid_cc_years', $years, $this ); |
|
500 | + $years = apply_filters( 'getpaid_cc_years', $years, $this ); |
|
501 | 501 | |
502 | 502 | ?> |
503 | 503 | <div class="<?php echo esc_attr( $this->id ); ?>-cc-form getpaid-cc-form mt-1"> |
@@ -531,7 +531,7 @@ discard block |
||
531 | 531 | <option disabled selected="selected"><?php esc_html_e( 'MM', 'invoicing' ); ?></option> |
532 | 532 | <?php |
533 | 533 | foreach ( $months as $key => $month ) { |
534 | - echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $month ) . '</option>'; |
|
534 | + echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $month ) . '</option>'; |
|
535 | 535 | } |
536 | 536 | ?> |
537 | 537 | </select> |
@@ -541,7 +541,7 @@ discard block |
||
541 | 541 | <option disabled selected="selected"><?php esc_html_e( 'YY', 'invoicing' ); ?></option> |
542 | 542 | <?php |
543 | 543 | foreach ( $years as $key => $year ) { |
544 | - echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $year ) . '</option>'; |
|
544 | + echo "<option value='" . esc_attr( $key ) . "'>" . esc_html( $year ) . '</option>'; |
|
545 | 545 | } |
546 | 546 | ?> |
547 | 547 | </select> |
@@ -556,203 +556,203 @@ discard block |
||
556 | 556 | 'name' => $this->id . '[cc_cvv2]', |
557 | 557 | 'id' => "$id_prefix-cc-cvv2", |
558 | 558 | 'label' => __( 'CCV', 'invoicing' ), |
559 | - 'label_type' => 'vertical', |
|
560 | - 'class' => 'form-control-sm', |
|
561 | - 'extra_attributes' => array( |
|
562 | - 'autocomplete' => 'cc-csc', |
|
563 | - 'maxlength' => 4 |
|
564 | - ), |
|
559 | + 'label_type' => 'vertical', |
|
560 | + 'class' => 'form-control-sm', |
|
561 | + 'extra_attributes' => array( |
|
562 | + 'autocomplete' => 'cc-csc', |
|
563 | + 'maxlength' => 4 |
|
564 | + ), |
|
565 | 565 | ), |
566 | - true |
|
566 | + true |
|
567 | 567 | ); |
568 | 568 | ?> |
569 | 569 | </div> |
570 | 570 | </div> |
571 | 571 | <?php |
572 | - if ( $save ) { |
|
573 | - $this->save_payment_method_checkbox(); |
|
574 | - } |
|
575 | - ?> |
|
572 | + if ( $save ) { |
|
573 | + $this->save_payment_method_checkbox(); |
|
574 | + } |
|
575 | + ?> |
|
576 | 576 | </div> |
577 | 577 | </div> |
578 | 578 | <?php |
579 | 579 | |
580 | - return ob_get_clean(); |
|
580 | + return ob_get_clean(); |
|
581 | + |
|
582 | + } |
|
583 | + |
|
584 | + /** |
|
585 | + * Displays a new payment method entry form. |
|
586 | + * |
|
587 | + * @since 1.0.19 |
|
588 | + */ |
|
589 | + public function new_payment_method_entry( $form ) { |
|
590 | + echo "<div class='getpaid-new-payment-method-form' style='display:none;'> " . wp_kses( $form, getpaid_allowed_html() ) . '</div>'; |
|
591 | + } |
|
592 | + |
|
593 | + /** |
|
594 | + * Grab and display our saved payment methods. |
|
595 | + * |
|
596 | + * @since 1.0.19 |
|
597 | + */ |
|
598 | + public function saved_payment_methods() { |
|
599 | + echo '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
600 | + |
|
601 | + foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
602 | + $this->get_saved_payment_method_option_html( $token ); |
|
603 | + } |
|
604 | + |
|
605 | + $this->get_new_payment_method_option_html(); |
|
606 | + echo '</ul>'; |
|
581 | 607 | |
582 | 608 | } |
583 | 609 | |
584 | - /** |
|
585 | - * Displays a new payment method entry form. |
|
586 | - * |
|
587 | - * @since 1.0.19 |
|
588 | - */ |
|
589 | - public function new_payment_method_entry( $form ) { |
|
590 | - echo "<div class='getpaid-new-payment-method-form' style='display:none;'> " . wp_kses( $form, getpaid_allowed_html() ) . '</div>'; |
|
591 | - } |
|
592 | - |
|
593 | - /** |
|
594 | - * Grab and display our saved payment methods. |
|
595 | - * |
|
596 | - * @since 1.0.19 |
|
597 | - */ |
|
598 | - public function saved_payment_methods() { |
|
599 | - echo '<ul class="getpaid-saved-payment-methods list-unstyled m-0 mt-2" data-count="' . esc_attr( count( $this->get_tokens( $this->is_sandbox() ) ) ) . '">'; |
|
600 | - |
|
601 | - foreach ( $this->get_tokens( $this->is_sandbox() ) as $token ) { |
|
602 | - $this->get_saved_payment_method_option_html( $token ); |
|
603 | - } |
|
604 | - |
|
605 | - $this->get_new_payment_method_option_html(); |
|
606 | - echo '</ul>'; |
|
607 | - |
|
608 | - } |
|
609 | - |
|
610 | - /** |
|
611 | - * Gets saved payment method HTML from a token. |
|
612 | - * |
|
613 | - * @since 1.0.19 |
|
614 | - * @param array $token Payment Token. |
|
615 | - * @return string Generated payment method HTML |
|
616 | - */ |
|
617 | - public function get_saved_payment_method_option_html( $token ) { |
|
618 | - |
|
619 | - printf( |
|
620 | - '<li class="getpaid-payment-method form-group mb-3"> |
|
610 | + /** |
|
611 | + * Gets saved payment method HTML from a token. |
|
612 | + * |
|
613 | + * @since 1.0.19 |
|
614 | + * @param array $token Payment Token. |
|
615 | + * @return string Generated payment method HTML |
|
616 | + */ |
|
617 | + public function get_saved_payment_method_option_html( $token ) { |
|
618 | + |
|
619 | + printf( |
|
620 | + '<li class="getpaid-payment-method form-group mb-3"> |
|
621 | 621 | <label> |
622 | 622 | <input name="getpaid-%1$s-payment-method" type="radio" value="%2$s" data-currency="%5$s" style="width:auto;" class="getpaid-saved-payment-method-token-input" %4$s /> |
623 | 623 | <span>%3$s</span> |
624 | 624 | </label> |
625 | 625 | </li>', |
626 | - esc_attr( $this->id ), |
|
627 | - esc_attr( $token['id'] ), |
|
628 | - esc_html( $token['name'] ), |
|
629 | - checked( empty( $token['default'] ), false, false ), |
|
630 | - empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
631 | - ); |
|
632 | - |
|
633 | - } |
|
634 | - |
|
635 | - /** |
|
636 | - * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
637 | - * |
|
638 | - * @since 1.0.19 |
|
639 | - */ |
|
640 | - public function get_new_payment_method_option_html() { |
|
641 | - |
|
642 | - $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
643 | - |
|
644 | - printf( |
|
645 | - '<li class="getpaid-new-payment-method"> |
|
626 | + esc_attr( $this->id ), |
|
627 | + esc_attr( $token['id'] ), |
|
628 | + esc_html( $token['name'] ), |
|
629 | + checked( empty( $token['default'] ), false, false ), |
|
630 | + empty( $token['currency'] ) ? 'none' : esc_attr( $token['currency'] ) |
|
631 | + ); |
|
632 | + |
|
633 | + } |
|
634 | + |
|
635 | + /** |
|
636 | + * Displays a radio button for entering a new payment method (new CC details) instead of using a saved method. |
|
637 | + * |
|
638 | + * @since 1.0.19 |
|
639 | + */ |
|
640 | + public function get_new_payment_method_option_html() { |
|
641 | + |
|
642 | + $label = apply_filters( 'getpaid_new_payment_method_label', $this->new_method_label ? $this->new_method_label : __( 'Use a new payment method', 'invoicing' ), $this ); |
|
643 | + |
|
644 | + printf( |
|
645 | + '<li class="getpaid-new-payment-method"> |
|
646 | 646 | <label> |
647 | 647 | <input name="getpaid-%1$s-payment-method" type="radio" data-currency="none" value="new" style="width:auto;" /> |
648 | 648 | <span>%2$s</span> |
649 | 649 | </label> |
650 | 650 | </li>', |
651 | - esc_attr( $this->id ), |
|
652 | - esc_html( $label ) |
|
653 | - ); |
|
654 | - |
|
655 | - } |
|
656 | - |
|
657 | - /** |
|
658 | - * Outputs a checkbox for saving a new payment method to the database. |
|
659 | - * |
|
660 | - * @since 1.0.19 |
|
661 | - */ |
|
662 | - public function save_payment_method_checkbox() { |
|
663 | - |
|
664 | - aui()->input( |
|
665 | - array( |
|
666 | - 'type' => 'checkbox', |
|
667 | - 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
668 | - 'id' => esc_attr( uniqid( $this->id ) ), |
|
669 | - 'required' => false, |
|
670 | - 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
671 | - 'value' => 'true', |
|
672 | - 'checked' => true, |
|
673 | - 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
674 | - ), |
|
675 | - true |
|
676 | - ); |
|
677 | - |
|
678 | - } |
|
679 | - |
|
680 | - /** |
|
681 | - * Registers the gateway. |
|
682 | - * |
|
683 | - * @return array |
|
684 | - */ |
|
685 | - public function register_gateway( $gateways ) { |
|
686 | - |
|
687 | - $gateways[ $this->id ] = array( |
|
688 | - |
|
689 | - 'admin_label' => $this->method_title, |
|
651 | + esc_attr( $this->id ), |
|
652 | + esc_html( $label ) |
|
653 | + ); |
|
654 | + |
|
655 | + } |
|
656 | + |
|
657 | + /** |
|
658 | + * Outputs a checkbox for saving a new payment method to the database. |
|
659 | + * |
|
660 | + * @since 1.0.19 |
|
661 | + */ |
|
662 | + public function save_payment_method_checkbox() { |
|
663 | + |
|
664 | + aui()->input( |
|
665 | + array( |
|
666 | + 'type' => 'checkbox', |
|
667 | + 'name' => esc_attr( "getpaid-$this->id-new-payment-method" ), |
|
668 | + 'id' => esc_attr( uniqid( $this->id ) ), |
|
669 | + 'required' => false, |
|
670 | + 'label' => esc_html__( 'Save payment method', 'invoicing' ), |
|
671 | + 'value' => 'true', |
|
672 | + 'checked' => true, |
|
673 | + 'wrap_class' => 'getpaid-save-payment-method pt-1 pb-1', |
|
674 | + ), |
|
675 | + true |
|
676 | + ); |
|
677 | + |
|
678 | + } |
|
679 | + |
|
680 | + /** |
|
681 | + * Registers the gateway. |
|
682 | + * |
|
683 | + * @return array |
|
684 | + */ |
|
685 | + public function register_gateway( $gateways ) { |
|
686 | + |
|
687 | + $gateways[ $this->id ] = array( |
|
688 | + |
|
689 | + 'admin_label' => $this->method_title, |
|
690 | 690 | 'checkout_label' => $this->title, |
691 | - 'ordering' => $this->order, |
|
691 | + 'ordering' => $this->order, |
|
692 | 692 | |
693 | - ); |
|
693 | + ); |
|
694 | 694 | |
695 | - return $gateways; |
|
695 | + return $gateways; |
|
696 | 696 | |
697 | - } |
|
697 | + } |
|
698 | 698 | |
699 | - /** |
|
700 | - * Checks whether or not this is a sandbox request. |
|
701 | - * |
|
702 | - * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
703 | - * @return bool |
|
704 | - */ |
|
705 | - public function is_sandbox( $invoice = null ) { |
|
699 | + /** |
|
700 | + * Checks whether or not this is a sandbox request. |
|
701 | + * |
|
702 | + * @param WPInv_Invoice|null $invoice Invoice object or null. |
|
703 | + * @return bool |
|
704 | + */ |
|
705 | + public function is_sandbox( $invoice = null ) { |
|
706 | 706 | |
707 | - if ( is_a( $invoice, 'WPInv_Invoice' ) && ! $invoice->needs_payment() ) { |
|
708 | - return $invoice->get_mode() === 'test'; |
|
709 | - } |
|
707 | + if ( is_a( $invoice, 'WPInv_Invoice' ) && ! $invoice->needs_payment() ) { |
|
708 | + return $invoice->get_mode() === 'test'; |
|
709 | + } |
|
710 | 710 | |
711 | - return wpinv_is_test_mode( $this->id ); |
|
711 | + return wpinv_is_test_mode( $this->id ); |
|
712 | 712 | |
713 | - } |
|
713 | + } |
|
714 | 714 | |
715 | - /** |
|
716 | - * Renames the checkout button |
|
717 | - * |
|
718 | - * @return string |
|
719 | - */ |
|
720 | - public function rename_checkout_button() { |
|
721 | - return $this->checkout_button_text; |
|
722 | - } |
|
715 | + /** |
|
716 | + * Renames the checkout button |
|
717 | + * |
|
718 | + * @return string |
|
719 | + */ |
|
720 | + public function rename_checkout_button() { |
|
721 | + return $this->checkout_button_text; |
|
722 | + } |
|
723 | 723 | |
724 | - /** |
|
725 | - * Validate gateway currency |
|
726 | - * |
|
727 | - * @return bool |
|
728 | - */ |
|
729 | - public function validate_currency( $validation, $currency ) { |
|
724 | + /** |
|
725 | + * Validate gateway currency |
|
726 | + * |
|
727 | + * @return bool |
|
728 | + */ |
|
729 | + public function validate_currency( $validation, $currency ) { |
|
730 | 730 | |
731 | - // Required currencies. |
|
732 | - if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
733 | - return false; |
|
734 | - } |
|
731 | + // Required currencies. |
|
732 | + if ( ! empty( $this->currencies ) && ! in_array( $currency, $this->currencies ) ) { |
|
733 | + return false; |
|
734 | + } |
|
735 | 735 | |
736 | - // Excluded currencies. |
|
737 | - if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
738 | - return false; |
|
739 | - } |
|
736 | + // Excluded currencies. |
|
737 | + if ( ! empty( $this->exclude_currencies ) && in_array( $currency, $this->exclude_currencies ) ) { |
|
738 | + return false; |
|
739 | + } |
|
740 | 740 | |
741 | - return $validation; |
|
742 | - } |
|
741 | + return $validation; |
|
742 | + } |
|
743 | 743 | |
744 | - /** |
|
745 | - * Displays an error |
|
746 | - * |
|
747 | - */ |
|
748 | - public function show_error( $code, $message, $type ) { |
|
744 | + /** |
|
745 | + * Displays an error |
|
746 | + * |
|
747 | + */ |
|
748 | + public function show_error( $code, $message, $type ) { |
|
749 | 749 | |
750 | - if ( is_admin() ) { |
|
751 | - getpaid_admin()->{"show_$type"}( $message ); |
|
752 | - } |
|
750 | + if ( is_admin() ) { |
|
751 | + getpaid_admin()->{"show_$type"}( $message ); |
|
752 | + } |
|
753 | 753 | |
754 | - wpinv_set_error( $code, $message, $type ); |
|
754 | + wpinv_set_error( $code, $message, $type ); |
|
755 | 755 | |
756 | - } |
|
756 | + } |
|
757 | 757 | |
758 | 758 | } |
@@ -8,7 +8,7 @@ discard block |
||
8 | 8 | */ |
9 | 9 | |
10 | 10 | if ( ! defined( 'ABSPATH' ) ) { |
11 | - exit; // Exit if accessed directly |
|
11 | + exit; // Exit if accessed directly |
|
12 | 12 | } |
13 | 13 | |
14 | 14 | /** |
@@ -17,12 +17,12 @@ discard block |
||
17 | 17 | class GetPaid_Meta_Box_Item_Details { |
18 | 18 | |
19 | 19 | /** |
20 | - * Output the metabox. |
|
21 | - * |
|
22 | - * @param WP_Post $post |
|
23 | - */ |
|
20 | + * Output the metabox. |
|
21 | + * |
|
22 | + * @param WP_Post $post |
|
23 | + */ |
|
24 | 24 | public static function output( $post ) { |
25 | - global $aui_bs5; |
|
25 | + global $aui_bs5; |
|
26 | 26 | |
27 | 27 | // Prepare the item. |
28 | 28 | $item = new WPInv_Item( $post ); |
@@ -119,24 +119,24 @@ discard block |
||
119 | 119 | // Dynamic pricing. |
120 | 120 | if ( $item->supports_dynamic_pricing() ) { |
121 | 121 | |
122 | - do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item ); |
|
122 | + do_action( 'wpinv_item_details_metabox_before_dynamic_pricing_checkbox', $item ); |
|
123 | 123 | |
124 | - // NYP toggle. |
|
125 | - aui()->input( |
|
124 | + // NYP toggle. |
|
125 | + aui()->input( |
|
126 | 126 | array( |
127 | - 'id' => 'wpinv_name_your_price', |
|
128 | - 'name' => 'wpinv_name_your_price', |
|
129 | - 'type' => 'checkbox', |
|
130 | - 'label' => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ), |
|
131 | - 'value' => '1', |
|
132 | - 'checked' => $item->user_can_set_their_price(), |
|
133 | - 'no_wrap' => true, |
|
134 | - 'switch' => 'sm', |
|
127 | + 'id' => 'wpinv_name_your_price', |
|
128 | + 'name' => 'wpinv_name_your_price', |
|
129 | + 'type' => 'checkbox', |
|
130 | + 'label' => apply_filters( 'wpinv_name_your_price_toggle_text', __( 'Let customers name their price', 'invoicing' ) ), |
|
131 | + 'value' => '1', |
|
132 | + 'checked' => $item->user_can_set_their_price(), |
|
133 | + 'no_wrap' => true, |
|
134 | + 'switch' => 'sm', |
|
135 | 135 | ), |
136 | 136 | true |
137 | 137 | ); |
138 | 138 | |
139 | - do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item ); |
|
139 | + do_action( 'wpinv_item_details_metabox_dynamic_pricing_checkbox', $item ); |
|
140 | 140 | |
141 | 141 | } |
142 | 142 | |
@@ -151,7 +151,7 @@ discard block |
||
151 | 151 | 'value' => '1', |
152 | 152 | 'checked' => $item->is_recurring(), |
153 | 153 | 'no_wrap' => true, |
154 | - 'switch' => 'sm', |
|
154 | + 'switch' => 'sm', |
|
155 | 155 | ), |
156 | 156 | true |
157 | 157 | ); |
@@ -293,35 +293,35 @@ discard block |
||
293 | 293 | } |
294 | 294 | |
295 | 295 | /** |
296 | - * Save meta box data. |
|
297 | - * |
|
298 | - * @param int $post_id |
|
299 | - */ |
|
300 | - public static function save( $post_id ) { |
|
296 | + * Save meta box data. |
|
297 | + * |
|
298 | + * @param int $post_id |
|
299 | + */ |
|
300 | + public static function save( $post_id ) { |
|
301 | 301 | |
302 | 302 | // Prepare the item. |
303 | 303 | $item = new WPInv_Item( $post_id ); |
304 | 304 | |
305 | 305 | // Load new data. |
306 | 306 | $item->set_props( |
307 | - array( |
|
308 | - 'price' => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null, |
|
309 | - 'vat_rule' => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null, |
|
310 | - 'vat_class' => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null, |
|
311 | - 'type' => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null, |
|
312 | - 'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ), |
|
307 | + array( |
|
308 | + 'price' => isset( $_POST['wpinv_item_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_item_price'] ) : null, |
|
309 | + 'vat_rule' => isset( $_POST['wpinv_vat_rules'] ) ? wpinv_clean( $_POST['wpinv_vat_rules'] ) : null, |
|
310 | + 'vat_class' => isset( $_POST['wpinv_vat_class'] ) ? wpinv_clean( $_POST['wpinv_vat_class'] ) : null, |
|
311 | + 'type' => isset( $_POST['wpinv_item_type'] ) ? wpinv_clean( $_POST['wpinv_item_type'] ) : null, |
|
312 | + 'is_dynamic_pricing' => ! empty( $_POST['wpinv_name_your_price'] ), |
|
313 | 313 | 'minimum_price' => isset( $_POST['wpinv_minimum_price'] ) ? getpaid_standardize_amount( $_POST['wpinv_minimum_price'] ) : null, |
314 | - 'is_recurring' => ! empty( $_POST['wpinv_is_recurring'] ), |
|
315 | - 'recurring_period' => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null, |
|
316 | - 'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1, |
|
317 | - 'recurring_limit' => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null, |
|
318 | - 'is_free_trial' => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null, |
|
319 | - 'trial_period' => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null, |
|
320 | - 'trial_interval' => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null, |
|
321 | - ) |
|
314 | + 'is_recurring' => ! empty( $_POST['wpinv_is_recurring'] ), |
|
315 | + 'recurring_period' => isset( $_POST['wpinv_recurring_period'] ) ? wpinv_clean( $_POST['wpinv_recurring_period'] ) : null, |
|
316 | + 'recurring_interval' => isset( $_POST['wpinv_recurring_interval'] ) ? (int) $_POST['wpinv_recurring_interval'] : 1, |
|
317 | + 'recurring_limit' => isset( $_POST['wpinv_recurring_limit'] ) ? (int) $_POST['wpinv_recurring_limit'] : null, |
|
318 | + 'is_free_trial' => isset( $_POST['wpinv_trial_interval'] ) ? ( 0 != (int) $_POST['wpinv_trial_interval'] ) : null, |
|
319 | + 'trial_period' => isset( $_POST['wpinv_trial_period'] ) ? wpinv_clean( $_POST['wpinv_trial_period'] ) : null, |
|
320 | + 'trial_interval' => isset( $_POST['wpinv_trial_interval'] ) ? (int) $_POST['wpinv_trial_interval'] : null, |
|
321 | + ) |
|
322 | 322 | ); |
323 | 323 | |
324 | - $item->save(); |
|
325 | - do_action( 'getpaid_item_metabox_save', $post_id, $item ); |
|
326 | - } |
|
324 | + $item->save(); |
|
325 | + do_action( 'getpaid_item_metabox_save', $post_id, $item ); |
|
326 | + } |
|
327 | 327 | } |
@@ -19,16 +19,16 @@ discard block |
||
19 | 19 | |
20 | 20 | // Define constants. |
21 | 21 | if ( ! defined( 'WPINV_PLUGIN_FILE' ) ) { |
22 | - define( 'WPINV_PLUGIN_FILE', __FILE__ ); |
|
22 | + define( 'WPINV_PLUGIN_FILE', __FILE__ ); |
|
23 | 23 | } |
24 | 24 | |
25 | 25 | if ( ! defined( 'WPINV_VERSION' ) ) { |
26 | - define( 'WPINV_VERSION', '2.8.16' ); |
|
26 | + define( 'WPINV_VERSION', '2.8.16' ); |
|
27 | 27 | } |
28 | 28 | |
29 | 29 | // Include the main Invoicing class. |
30 | 30 | if ( ! class_exists( 'WPInv_Plugin', false ) ) { |
31 | - require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php'; |
|
31 | + require_once plugin_dir_path( WPINV_PLUGIN_FILE ) . 'includes/class-wpinv.php'; |
|
32 | 32 | } |
33 | 33 | |
34 | 34 | /** |
@@ -43,7 +43,7 @@ discard block |
||
43 | 43 | $GLOBALS['invoicing'] = new WPInv_Plugin(); |
44 | 44 | } |
45 | 45 | |
46 | - return $GLOBALS['invoicing']; |
|
46 | + return $GLOBALS['invoicing']; |
|
47 | 47 | } |
48 | 48 | |
49 | 49 | /** |