Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager - Version 2.1.4

Version Description

  • 2019-09-19 =
  • Fixed invoice fields integration for wFirma/iFirma/inFakt/Fakturownia
Download this release

Release Info

Developer wpdesk
Plugin Icon wp plugin Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager
Version 2.1.4
Comparing to
See all releases

Code changes from version 2.1.1 to 2.1.4

Files changed (48) hide show
  1. classes/class-flexible-checkout-fields-plugin.php +40 -30
  2. classes/display-options.php +54 -6
  3. composer.lock +33 -31
  4. flexible-checkout-fields.php +3 -3
  5. readme.txt +12 -2
  6. vendor/autoload.php +1 -1
  7. vendor/composer/autoload_classmap.php +9 -0
  8. vendor/composer/autoload_real.php +7 -7
  9. vendor/composer/autoload_static.php +13 -4
  10. vendor/composer/installed.json +24 -22
  11. vendor/monolog/monolog/.php_cs +0 -59
  12. vendor/monolog/monolog/CHANGELOG.md +18 -0
  13. vendor/monolog/monolog/composer.json +1 -1
  14. vendor/monolog/monolog/doc/01-usage.md +0 -231
  15. vendor/monolog/monolog/doc/02-handlers-formatters-processors.md +0 -158
  16. vendor/monolog/monolog/doc/03-utilities.md +0 -15
  17. vendor/monolog/monolog/doc/04-extending.md +0 -76
  18. vendor/monolog/monolog/doc/sockets.md +0 -39
  19. vendor/monolog/monolog/phpunit.xml.dist +0 -19
  20. vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php +0 -6
  21. vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php +0 -17
  22. vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php +2 -2
  23. vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php +39 -0
  24. vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php +63 -0
  25. vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php +2 -1
  26. vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php +2 -0
  27. vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php +1 -1
  28. vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php +40 -0
  29. vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php +73 -0
  30. vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php +2 -0
  31. vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php +6 -2
  32. vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php +1 -0
  33. vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php +29 -8
  34. vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php +13 -0
  35. vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php +2 -1
  36. vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php +26 -20
  37. vendor/monolog/monolog/src/Monolog/SignalHandler.php +1 -1
  38. vendor/wpdesk/wp-builder/.gitignore +2 -1
  39. vendor/wpdesk/wp-builder/CHANGELOG.md +9 -0
  40. vendor/wpdesk/wp-builder/apigen.neon +5 -5
  41. vendor/wpdesk/wp-builder/composer.json +3 -3
  42. vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php +11 -0
  43. vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php +29 -0
  44. vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php +171 -0
  45. vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php +9 -0
  46. vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php +15 -0
  47. vendor/wpdesk/wp-wpdesk-license/CHANGELOG.md +4 -0
  48. vendor/wpdesk/wp-wpdesk-license/composer.json +1 -1
classes/class-flexible-checkout-fields-plugin.php CHANGED
@@ -164,7 +164,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
164
  $my_account_edit_address->hooks();
165
 
166
  $plugin = $this;
167
- add_filter( 'flexible_checkout_fields', function() use( $plugin ) {
168
  return $plugin;
169
  });
170
  }
@@ -197,7 +197,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
197
  * Get setting value.
198
  *
199
  * @param string $name Setting name.
200
- * @param mixed $default Default setting value.
201
  *
202
  * @return mixed|void
203
  */
@@ -206,32 +206,44 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
206
  }
207
 
208
  /**
209
- * Get country local base.
 
 
210
  *
211
  * @param array $base Local base.
212
  *
213
  * @return array
214
  */
215
  public function woocommerce_get_country_locale_base( $base ) {
 
 
216
  foreach ( $base as $key => $field ) {
217
  unset( $base[ $key ]['placeholder'] );
218
  unset( $base[ $key ]['label'] );
 
 
 
 
 
 
 
 
219
  }
220
 
221
  return $base;
222
  }
223
 
224
  /**
225
- * Get country locale.
226
  *
227
- * @param array $locale Country locale.
228
  *
229
  * @return array
230
  */
231
  public function woocommerce_get_country_locale( $locale ) {
232
  if ( is_checkout() || is_account_page() ) {
233
  foreach ( $locale as $country => $fields ) {
234
- foreach ( $fields as $field => $settings ) {
235
  unset( $locale[ $country ][ $field ]['priority'] );
236
  unset( $locale[ $country ][ $field ]['label'] );
237
  unset( $locale[ $country ][ $field ]['placeholder'] );
@@ -250,7 +262,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
250
  * @return array
251
  */
252
  public function woocommerce_default_address_fields( $fields ) {
253
- if ( is_checkout() ) {
254
  foreach ( $fields as $key => $field ) {
255
  unset( $fields[ $key ]['priority'] );
256
  }
@@ -291,7 +303,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
291
  $this->all_sections = apply_filters( 'flexible_checkout_fields_all_sections', $all_sections );
292
  }
293
 
294
- function init_fields() {
295
  $this->fields['text'] = array(
296
  'name' => __( 'Single Line Text', 'flexible-checkout-fields' )
297
  );
@@ -301,7 +313,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
301
  );
302
  }
303
 
304
- function pro_fields( $fields ) {
305
  $add_fields = array();
306
 
307
  $add_fields['inspirecheckbox'] = array(
@@ -415,7 +427,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
415
  return $this->get_settings_for_available_sections( $settings );
416
  }
417
 
418
- function woocommerce_before_checkout_form() {
419
  WC()->session->set( 'checkout-fields', array() );
420
  $settings = $this->get_settings();
421
  $args = array( 'settings' => $settings );
@@ -432,7 +444,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
432
  * @return array
433
  */
434
  private function append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type ) {
435
- if ( $request_type == null ) {
436
  if ( ! empty( $fields ) && is_array( $fields ) ) {
437
  foreach ( $fields as $section => $section_fields ) {
438
  if ( ! empty( $section_fields ) && is_array( $section_fields ) ) {
@@ -484,7 +496,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
484
  $priority = 0;
485
  foreach ( $settings as $key => $type ) {
486
 
487
- if ( $key != 'billing' && $key != 'shipping' && $key != 'order' ) {
488
  if ( get_option( 'inspire_checkout_fields_' . $key, '0' ) == '0' ) {
489
  continue;
490
  }
@@ -585,10 +597,10 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
585
 
586
  $new = $this->append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type );
587
 
588
- foreach ( $new as $type => $fields ) {
589
  $priority = 0;
590
- foreach ( $fields as $key => $field ) {
591
- $priority = $priority + 10;
592
  $new[ $type ][ $key ]['priority'] = $priority;
593
  }
594
  }
@@ -602,14 +614,13 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
602
  $new = $this->restore_default_city_validation( $new, $_POST, 'shipping' );
603
 
604
  return $new;
605
- } else {
606
- if ( isset( $new[ $request_type ] ) ) {
607
- $new = $this->restore_default_city_validation( $new, $_POST, $request_type );
608
 
609
- return $new[ $request_type ];
610
- } else {
611
- return array();
612
- }
613
  }
614
  } else {
615
  return $fields;
@@ -660,7 +671,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
660
  if ( ! empty( $settings[ $request_type ] ) ) {
661
  foreach ( $settings[ $request_type ] as $key => $field ) {
662
 
663
- if ( $field['visible'] == 0 || $field['name'] == 'billing_country' || $field['name'] == 'shipping_country' || ( isset( $_GET['page'] ) && $_GET['page'] == 'inspire_checkout_fields_settings' && $field['visible'] == 1 ) ) {
664
  if ( ! empty( $fields[ $key ] ) ) {
665
  $new[ $key ] = $fields[ $key ];
666
  }
@@ -692,7 +703,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
692
  }
693
 
694
  if ( ! empty( $field['name'] ) ) {
695
- if ( ( $field['name'] == 'billing_country' || $field['name'] == 'shipping_country' ) && $field['visible'] == 1 ) {
696
  $new[ $key ]['class'][1] = "inspire_checkout_fields_hide";
697
  }
698
  }
@@ -743,10 +754,9 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
743
  if ( ! empty( $settings ) ) {
744
  foreach ( $settings as $key => $type ) {
745
  if ( $request_type == null || $request_type == $key ) {
 
746
  foreach ( $type as $field ) {
747
- if ( 1 == 1
748
- /* $field['visible'] == 0 */ /* probably temporary change ;) */ // TODO - remove in next version?
749
- && ( ( isset( $field['custom_field'] ) && $field['custom_field'] == 1 ) || in_array( $field['name'], array(
750
  'billing_phone',
751
  'billing_email'
752
  ) ) )
@@ -779,9 +789,9 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
779
  if ( $request_type == null || $request_type == $key ) {
780
  foreach ( $type as $field ) {
781
  if ( $field['visible'] == 0 && ( $request_type == null || strpos( $field['name'], $request_type ) === 0 )
782
- && ( ( empty( $field['type'] ) || ( $field['type'] != 'heading' && $field['type'] != 'info' && $field['type'] != 'file' ) ) )
783
  ) {
784
- $field_name = str_replace( $request_type . '_', '', $field['name'] );
785
 
786
  if ( isset( $labels[ $field_name ] ) ) {
787
 
@@ -803,7 +813,7 @@ class Flexible_Checkout_Fields_Plugin extends \WPDesk\PluginBuilder\Plugin\Abstr
803
 
804
  $new[ $field_name ] = apply_filters( 'flexible_checkout_fields_admin_labels', $new[ $field_name ], $field, $field_name );
805
 
806
- if ( $field_name == 'country' ) {
807
  $new[ $field_name ]['type'] = 'select';
808
  }
809
 
164
  $my_account_edit_address->hooks();
165
 
166
  $plugin = $this;
167
+ add_filter( 'flexible_checkout_fields', static function() use( $plugin ) {
168
  return $plugin;
169
  });
170
  }
197
  * Get setting value.
198
  *
199
  * @param string $name Setting name.
200
+ * @param mixed $default Default setting value.
201
  *
202
  * @return mixed|void
203
  */
206
  }
207
 
208
  /**
209
+ * Change params used by js locale woocommerce/assets/js/frontend/address-i18n.js so it would not overwrite backend settings.
210
+ *
211
+ * This is a locale for default country.
212
  *
213
  * @param array $base Local base.
214
  *
215
  * @return array
216
  */
217
  public function woocommerce_get_country_locale_base( $base ) {
218
+ $settings = $this->get_settings();
219
+
220
  foreach ( $base as $key => $field ) {
221
  unset( $base[ $key ]['placeholder'] );
222
  unset( $base[ $key ]['label'] );
223
+
224
+ // field is force-required for given locale when FCF have shipping or billing field required
225
+ $shipping_key = 'shipping_' . $key;
226
+ $billing_key = 'billing_' . $key;
227
+ if ( ( isset( $settings['shipping'][ $shipping_key ] ) && $settings['shipping'][ $shipping_key ]['required'] )
228
+ || ( isset( $settings['billing'][ $billing_key ] ) && $settings['billing'][ $billing_key ]['required'] ) ) {
229
+ $base [ $key ]['required'] = true;
230
+ }
231
  }
232
 
233
  return $base;
234
  }
235
 
236
  /**
237
+ * Change params used by js locale woocommerce/assets/js/frontend/address-i18n.js so it would not overwrite backend settings
238
  *
239
+ * @param array $locale Table of field settings per locale
240
  *
241
  * @return array
242
  */
243
  public function woocommerce_get_country_locale( $locale ) {
244
  if ( is_checkout() || is_account_page() ) {
245
  foreach ( $locale as $country => $fields ) {
246
+ foreach ( $fields as $field => &$settings ) {
247
  unset( $locale[ $country ][ $field ]['priority'] );
248
  unset( $locale[ $country ][ $field ]['label'] );
249
  unset( $locale[ $country ][ $field ]['placeholder'] );
262
  * @return array
263
  */
264
  public function woocommerce_default_address_fields( $fields ) {
265
+ if ( is_checkout() || is_account_page() ) {
266
  foreach ( $fields as $key => $field ) {
267
  unset( $fields[ $key ]['priority'] );
268
  }
303
  $this->all_sections = apply_filters( 'flexible_checkout_fields_all_sections', $all_sections );
304
  }
305
 
306
+ private function init_fields() {
307
  $this->fields['text'] = array(
308
  'name' => __( 'Single Line Text', 'flexible-checkout-fields' )
309
  );
313
  );
314
  }
315
 
316
+ private function pro_fields( $fields ) {
317
  $add_fields = array();
318
 
319
  $add_fields['inspirecheckbox'] = array(
427
  return $this->get_settings_for_available_sections( $settings );
428
  }
429
 
430
+ public function woocommerce_before_checkout_form() {
431
  WC()->session->set( 'checkout-fields', array() );
432
  $settings = $this->get_settings();
433
  $args = array( 'settings' => $settings );
444
  * @return array
445
  */
446
  private function append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type ) {
447
+ if ( $request_type === null ) {
448
  if ( ! empty( $fields ) && is_array( $fields ) ) {
449
  foreach ( $fields as $section => $section_fields ) {
450
  if ( ! empty( $section_fields ) && is_array( $section_fields ) ) {
496
  $priority = 0;
497
  foreach ( $settings as $key => $type ) {
498
 
499
+ if ( $key !== 'billing' && $key !== 'shipping' && $key !== 'order' ) {
500
  if ( get_option( 'inspire_checkout_fields_' . $key, '0' ) == '0' ) {
501
  continue;
502
  }
597
 
598
  $new = $this->append_other_plugins_fields_to_checkout_fields( $settings, $fields, $new, $request_type );
599
 
600
+ foreach ( $new as $type => $new_fields ) {
601
  $priority = 0;
602
+ foreach ( $new_fields as $key => $field ) {
603
+ $priority += 10;
604
  $new[ $type ][ $key ]['priority'] = $priority;
605
  }
606
  }
614
  $new = $this->restore_default_city_validation( $new, $_POST, 'shipping' );
615
 
616
  return $new;
617
+ }
618
+ if ( isset( $new[ $request_type ] ) ) {
619
+ $new = $this->restore_default_city_validation( $new, $_POST, $request_type );
620
 
621
+ return $new[ $request_type ];
622
+ } else {
623
+ return array();
 
624
  }
625
  } else {
626
  return $fields;
671
  if ( ! empty( $settings[ $request_type ] ) ) {
672
  foreach ( $settings[ $request_type ] as $key => $field ) {
673
 
674
+ if ( $field['visible'] == 0 || $field['name'] === 'billing_country' || $field['name'] === 'shipping_country' || ( isset( $_GET['page'] ) && $_GET['page'] === 'inspire_checkout_fields_settings' && $field['visible'] == 1 ) ) {
675
  if ( ! empty( $fields[ $key ] ) ) {
676
  $new[ $key ] = $fields[ $key ];
677
  }
703
  }
704
 
705
  if ( ! empty( $field['name'] ) ) {
706
+ if ( ( $field['name'] === 'billing_country' || $field['name'] === 'shipping_country' ) && $field['visible'] == 1 ) {
707
  $new[ $key ]['class'][1] = "inspire_checkout_fields_hide";
708
  }
709
  }
754
  if ( ! empty( $settings ) ) {
755
  foreach ( $settings as $key => $type ) {
756
  if ( $request_type == null || $request_type == $key ) {
757
+ $return = [];
758
  foreach ( $type as $field ) {
759
+ if ( ( ( isset( $field['custom_field'] ) && $field['custom_field'] == 1 ) || in_array( $field['name'], array(
 
 
760
  'billing_phone',
761
  'billing_email'
762
  ) ) )
789
  if ( $request_type == null || $request_type == $key ) {
790
  foreach ( $type as $field ) {
791
  if ( $field['visible'] == 0 && ( $request_type == null || strpos( $field['name'], $request_type ) === 0 )
792
+ && ( ( empty( $field['type'] ) || ( $field['type'] !== 'heading' && $field['type'] !== 'info' && $field['type'] !== 'file' ) ) )
793
  ) {
794
+ $field_name = $this->replace_only_first( $request_type . '_', '', $field['name'] );
795
 
796
  if ( isset( $labels[ $field_name ] ) ) {
797
 
813
 
814
  $new[ $field_name ] = apply_filters( 'flexible_checkout_fields_admin_labels', $new[ $field_name ], $field, $field_name );
815
 
816
+ if ( $field_name === 'country' ) {
817
  $new[ $field_name ]['type'] = 'select';
818
  }
819
 
classes/display-options.php CHANGED
@@ -137,7 +137,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
137
 
138
  $val .= $meta_value;
139
  $address[$field['name']] = $val;
140
- $address[str_replace( $address_type . '_', '', $field['name'] )] = $val;
141
  }
142
  }
143
  return $address;
@@ -169,7 +169,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
169
  if ( $format != '' ) {
170
  $format .= "\n";
171
  }
172
- $format .= '{' . str_replace( $this->current_address_type . '_', '', $field['name'] . '}' );
173
  }
174
  return $format;
175
  }
@@ -326,7 +326,7 @@ class Flexible_Checkout_Fields_Disaplay_Options {
326
 
327
  foreach ( $cf_fields as $field_key => $field ) {
328
  $val = wpdesk_get_order_meta( $order, '_' . $field_key, true );
329
- if ( isset( $field['custom_field'] ) && $field['custom_field'] == '1' ) {
330
 
331
  $val = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) ) . ': ';
332
 
@@ -340,30 +340,78 @@ class Flexible_Checkout_Fields_Disaplay_Options {
340
  $val .= $meta_value;
341
  }
342
 
343
- $val = $this->flexible_invoices_ask_field_integration($val, $field_key, $fields);
344
 
345
  $fields[$field['name']] = $val;
346
- $fields[str_replace( $address_type . '_', '', $field['name'] )] = $val;
347
  }
348
  return $fields;
349
 
350
  }
351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
  /**
353
  * Return value for invoice ask field prepared by FI plugin. If can't then fallback.
354
  *
355
  * @param string $val Prepared by FCF field value.
 
356
  * @param string $field_key Field key that is currently processed. Needed to check if val should be replaced.
357
  * @param array $fields Prepared by WC field values
358
  *
359
  * @return string New field value
360
  */
361
- private function flexible_invoices_ask_field_integration($val, $field_key, $fields) {
362
  if ( apply_filters( 'flexible_checkout_fields_invoices_integration_enabled', true ) ) {
 
 
363
  if ( $field_key === 'invoice_ask' && ! empty( $fields['invoice_ask_field'] ) ) {
364
  return $fields['invoice_ask_field'];
365
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
366
  }
 
367
  return $val;
368
  }
369
 
137
 
138
  $val .= $meta_value;
139
  $address[$field['name']] = $val;
140
+ $address[$this->replace_only_first( $address_type . '_', '', $field['name'] )] = $val;
141
  }
142
  }
143
  return $address;
169
  if ( $format != '' ) {
170
  $format .= "\n";
171
  }
172
+ $format .= '{' . $this->replace_only_first( $this->current_address_type . '_', '', $field['name'] . '}' );
173
  }
174
  return $format;
175
  }
326
 
327
  foreach ( $cf_fields as $field_key => $field ) {
328
  $val = wpdesk_get_order_meta( $order, '_' . $field_key, true );
329
+ if ( (isset( $field['custom_field'] ) && $field['custom_field'] == '1')) {
330
 
331
  $val = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) ) . ': ';
332
 
340
  $val .= $meta_value;
341
  }
342
 
343
+ $val = $this->flexible_invoices_ask_field_integration($val, $field, $field_key, $fields);
344
 
345
  $fields[$field['name']] = $val;
346
+ $fields[$this->replace_only_first( $address_type . '_', '', $field['name'] )] = $val;
347
  }
348
  return $fields;
349
 
350
  }
351
 
352
+ /**
353
+ * Similar to str_replace but replaces only the first occurrence.
354
+ *
355
+ * @param string $needle search for it.
356
+ * @param string $replace change the needle to this value.
357
+ * @param string $haystack here we are searching
358
+ *
359
+ * @return string
360
+ */
361
+ private function replace_only_first($needle, $replace, $haystack) {
362
+ $pos = strpos($haystack, $needle);
363
+ if ($pos !== false) {
364
+ return substr_replace($haystack, $replace, $pos, strlen($needle));
365
+ }
366
+ return $haystack;
367
+ }
368
+
369
  /**
370
  * Return value for invoice ask field prepared by FI plugin. If can't then fallback.
371
  *
372
  * @param string $val Prepared by FCF field value.
373
+ * @param array $field FCF field def.
374
  * @param string $field_key Field key that is currently processed. Needed to check if val should be replaced.
375
  * @param array $fields Prepared by WC field values
376
  *
377
  * @return string New field value
378
  */
379
+ private function flexible_invoices_ask_field_integration( $val, $field, $field_key, $fields ) {
380
  if ( apply_filters( 'flexible_checkout_fields_invoices_integration_enabled', true ) ) {
381
+
382
+ // FI ask field integration
383
  if ( $field_key === 'invoice_ask' && ! empty( $fields['invoice_ask_field'] ) ) {
384
  return $fields['invoice_ask_field'];
385
  }
386
+
387
+ // wFirma/Fakturownia/iFirma/inFakt ask field integration
388
+ $supported_ask_fields = array(
389
+ 'billing_faktura',
390
+ 'billing_invoice',
391
+ 'billing_rachunek'
392
+ );
393
+ if ( in_array( $field_key, $supported_ask_fields, true ) ) {
394
+ $wc_meta_key_definitions = apply_filters( 'woocommerce_customer_meta_fields', [] );
395
+
396
+ $label = strip_tags( wpdesk__( $field['label'], 'flexible-checkout-fields' ) );
397
+
398
+ // original plugin is probably(?) disabled if the field is not accessible
399
+ if ( isset( $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ] ) ) {
400
+ $wc_field_def = $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ];
401
+
402
+ // if field exists and is defined as select we can use this data. If not then better do not touch as it's probably optional checkbox
403
+ if ( isset( $wc_field_def['options'] ) ) {
404
+ $select_options = $wc_meta_key_definitions[ $this->current_address_type ]['fields'][ $field_key ]['options'];
405
+ $option_val = $select_options[ $val ];
406
+
407
+ return $label . ': ' . $option_val;
408
+ } elseif ( (int) $val === 1 ) {
409
+ return $label;
410
+ }
411
+ }
412
+ }
413
  }
414
+
415
  return $val;
416
  }
417
 
composer.lock CHANGED
@@ -8,16 +8,16 @@
8
  "packages": [
9
  {
10
  "name": "monolog/monolog",
11
- "version": "1.24.0",
12
  "source": {
13
  "type": "git",
14
  "url": "https://github.com/Seldaek/monolog.git",
15
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
16
  },
17
  "dist": {
18
  "type": "zip",
19
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
20
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
21
  "shasum": ""
22
  },
23
  "require": {
@@ -82,7 +82,7 @@
82
  "logging",
83
  "psr-3"
84
  ],
85
- "time": "2018-11-05T09:00:11+00:00"
86
  },
87
  {
88
  "name": "psr/log",
@@ -206,21 +206,20 @@
206
  },
207
  {
208
  "name": "wpdesk/wp-builder",
209
- "version": "1.2.0",
210
  "source": {
211
  "type": "git",
212
  "url": "https://gitlab.com/wpdesk/wp-builder.git",
213
- "reference": "3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd"
214
  },
215
  "dist": {
216
  "type": "zip",
217
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd",
218
- "reference": "3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd",
219
  "shasum": ""
220
  },
221
  "require": {
222
- "php": ">=5.5",
223
- "wpdesk/wp-basic-requirements": "^2.0"
224
  },
225
  "require-dev": {
226
  "10up/wp_mock": "*",
@@ -234,7 +233,10 @@
234
  "autoload": {
235
  "psr-4": {
236
  "WPDesk\\PluginBuilder\\": "src/"
237
- }
 
 
 
238
  },
239
  "notification-url": "https://packagist.org/downloads/",
240
  "authors": [
@@ -243,7 +245,7 @@
243
  "email": "krzysiek@wpdesk.pl"
244
  }
245
  ],
246
- "time": "2019-06-27T07:47:17+00:00"
247
  },
248
  {
249
  "name": "wpdesk/wp-class-loader",
@@ -473,23 +475,23 @@
473
  },
474
  {
475
  "name": "wpdesk/wp-wpdesk-license",
476
- "version": "2.3.2",
477
  "source": {
478
  "type": "git",
479
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
480
- "reference": "dc781af426e33a259d9f92f1aaf5dc5b050d0849"
481
  },
482
  "dist": {
483
  "type": "zip",
484
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=dc781af426e33a259d9f92f1aaf5dc5b050d0849",
485
- "reference": "dc781af426e33a259d9f92f1aaf5dc5b050d0849",
486
  "shasum": ""
487
  },
488
  "require": {
489
  "ext-curl": "*",
490
  "ext-json": "*",
491
  "php": ">=5.6",
492
- "wpdesk/wp-basic-requirements": "^2.3",
493
  "wpdesk/wp-notice": "^3.0"
494
  },
495
  "require-dev": {
@@ -515,7 +517,7 @@
515
  "email": "krzysiek@wpdesk.pl"
516
  }
517
  ],
518
- "time": "2019-08-09T11:53:04+00:00"
519
  },
520
  {
521
  "name": "wpdesk/wp-wpdesk-tracker",
@@ -1110,8 +1112,8 @@
1110
  "authors": [
1111
  {
1112
  "name": "Sebastian Bergmann",
1113
- "role": "lead",
1114
- "email": "sb@sebastian-bergmann.de"
1115
  }
1116
  ],
1117
  "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
@@ -1158,8 +1160,8 @@
1158
  "authors": [
1159
  {
1160
  "name": "Sebastian Bergmann",
1161
- "role": "lead",
1162
- "email": "sb@sebastian-bergmann.de"
1163
  }
1164
  ],
1165
  "description": "FilterIterator implementation that filters files based on a list of suffixes.",
@@ -1200,8 +1202,8 @@
1200
  "authors": [
1201
  {
1202
  "name": "Sebastian Bergmann",
1203
- "role": "lead",
1204
- "email": "sebastian@phpunit.de"
1205
  }
1206
  ],
1207
  "description": "Simple template engine.",
@@ -1249,8 +1251,8 @@
1249
  "authors": [
1250
  {
1251
  "name": "Sebastian Bergmann",
1252
- "role": "lead",
1253
- "email": "sb@sebastian-bergmann.de"
1254
  }
1255
  ],
1256
  "description": "Utility class for timing",
@@ -1378,8 +1380,8 @@
1378
  "authors": [
1379
  {
1380
  "name": "Sebastian Bergmann",
1381
- "role": "lead",
1382
- "email": "sebastian@phpunit.de"
1383
  }
1384
  ],
1385
  "description": "The PHP Unit Testing framework.",
@@ -1956,8 +1958,8 @@
1956
  "authors": [
1957
  {
1958
  "name": "Sebastian Bergmann",
1959
- "role": "lead",
1960
- "email": "sebastian@phpunit.de"
1961
  }
1962
  ],
1963
  "description": "Library that helps with managing the version number of Git-hosted PHP projects",
8
  "packages": [
9
  {
10
  "name": "monolog/monolog",
11
+ "version": "1.25.1",
12
  "source": {
13
  "type": "git",
14
  "url": "https://github.com/Seldaek/monolog.git",
15
+ "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
16
  },
17
  "dist": {
18
  "type": "zip",
19
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
20
+ "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
21
  "shasum": ""
22
  },
23
  "require": {
82
  "logging",
83
  "psr-3"
84
  ],
85
+ "time": "2019-09-06T13:49:17+00:00"
86
  },
87
  {
88
  "name": "psr/log",
206
  },
207
  {
208
  "name": "wpdesk/wp-builder",
209
+ "version": "1.3.2",
210
  "source": {
211
  "type": "git",
212
  "url": "https://gitlab.com/wpdesk/wp-builder.git",
213
+ "reference": "455dd537c65ab474b2223320d295834c55b8925c"
214
  },
215
  "dist": {
216
  "type": "zip",
217
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=455dd537c65ab474b2223320d295834c55b8925c",
218
+ "reference": "455dd537c65ab474b2223320d295834c55b8925c",
219
  "shasum": ""
220
  },
221
  "require": {
222
+ "php": ">=5.5"
 
223
  },
224
  "require-dev": {
225
  "10up/wp_mock": "*",
233
  "autoload": {
234
  "psr-4": {
235
  "WPDesk\\PluginBuilder\\": "src/"
236
+ },
237
+ "classmap": [
238
+ "src/Plugin/WithoutNamespace"
239
+ ]
240
  },
241
  "notification-url": "https://packagist.org/downloads/",
242
  "authors": [
245
  "email": "krzysiek@wpdesk.pl"
246
  }
247
  ],
248
+ "time": "2019-09-18T14:51:51+00:00"
249
  },
250
  {
251
  "name": "wpdesk/wp-class-loader",
475
  },
476
  {
477
  "name": "wpdesk/wp-wpdesk-license",
478
+ "version": "2.4",
479
  "source": {
480
  "type": "git",
481
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
482
+ "reference": "992778321025e8f2cb4d85c83150cc757cfa619c"
483
  },
484
  "dist": {
485
  "type": "zip",
486
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=992778321025e8f2cb4d85c83150cc757cfa619c",
487
+ "reference": "992778321025e8f2cb4d85c83150cc757cfa619c",
488
  "shasum": ""
489
  },
490
  "require": {
491
  "ext-curl": "*",
492
  "ext-json": "*",
493
  "php": ">=5.6",
494
+ "wpdesk/wp-builder": "^1.3.1",
495
  "wpdesk/wp-notice": "^3.0"
496
  },
497
  "require-dev": {
517
  "email": "krzysiek@wpdesk.pl"
518
  }
519
  ],
520
+ "time": "2019-09-18T14:35:26+00:00"
521
  },
522
  {
523
  "name": "wpdesk/wp-wpdesk-tracker",
1112
  "authors": [
1113
  {
1114
  "name": "Sebastian Bergmann",
1115
+ "email": "sb@sebastian-bergmann.de",
1116
+ "role": "lead"
1117
  }
1118
  ],
1119
  "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
1160
  "authors": [
1161
  {
1162
  "name": "Sebastian Bergmann",
1163
+ "email": "sb@sebastian-bergmann.de",
1164
+ "role": "lead"
1165
  }
1166
  ],
1167
  "description": "FilterIterator implementation that filters files based on a list of suffixes.",
1202
  "authors": [
1203
  {
1204
  "name": "Sebastian Bergmann",
1205
+ "email": "sebastian@phpunit.de",
1206
+ "role": "lead"
1207
  }
1208
  ],
1209
  "description": "Simple template engine.",
1251
  "authors": [
1252
  {
1253
  "name": "Sebastian Bergmann",
1254
+ "email": "sb@sebastian-bergmann.de",
1255
+ "role": "lead"
1256
  }
1257
  ],
1258
  "description": "Utility class for timing",
1380
  "authors": [
1381
  {
1382
  "name": "Sebastian Bergmann",
1383
+ "email": "sebastian@phpunit.de",
1384
+ "role": "lead"
1385
  }
1386
  ],
1387
  "description": "The PHP Unit Testing framework.",
1958
  "authors": [
1959
  {
1960
  "name": "Sebastian Bergmann",
1961
+ "email": "sebastian@phpunit.de",
1962
+ "role": "lead"
1963
  }
1964
  ],
1965
  "description": "Library that helps with managing the version number of Git-hosted PHP projects",
flexible-checkout-fields.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Flexible Checkout Fields
4
  Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
5
  Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
6
- Version: 2.1.1
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-checkout-fields
@@ -37,8 +37,8 @@ if ( ! defined( 'ABSPATH' ) ) {
37
 
38
 
39
  /* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
40
- $plugin_version = '2.1.1';
41
- $plugin_release_timestamp = '2019-08-29 11:25';
42
 
43
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
44
 
3
  Plugin Name: Flexible Checkout Fields
4
  Plugin URI: https://www.wpdesk.net/products/flexible-checkout-fields-pro-woocommerce/
5
  Description: Manage your WooCommerce checkout fields. Change order, labels, placeholders and add new fields.
6
+ Version: 2.1.4
7
  Author: WP Desk
8
  Author URI: https://www.wpdesk.net/
9
  Text Domain: flexible-checkout-fields
37
 
38
 
39
  /* THESE TWO VARIABLES CAN BE CHANGED AUTOMATICALLY */
40
+ $plugin_version = '2.1.4';
41
+ $plugin_release_timestamp = '2019-09-19 15:29';
42
 
43
  define( 'FLEXIBLE_CHECKOUT_FIELDS_VERSION', $plugin_version );
44
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Flexible Checkout Fields for WooCommerce ===
2
- Contributors: wpdesk
3
  Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
4
  Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
5
  Requires at least: 4.5
6
  Tested up to: 5.2.0
7
- Stable tag: 2.1.1
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
@@ -188,6 +188,16 @@ If you are upgrading from the old WooCommerce Checkout Fields version (1.1, wooc
188
 
189
  == Changelog ==
190
 
 
 
 
 
 
 
 
 
 
 
191
  = 2.1.1 - 2019-08-29 =
192
  * Fixed warning "Illegal string offset" when shipment is disabled
193
 
1
  === Flexible Checkout Fields for WooCommerce ===
2
+ Contributors: wpdesk,dyszczo,grola,potreb
3
  Donate link: https://www.wpdesk.net/flexible-checkout-fields-woocommerce/
4
  Tags: woocommerce checkout fields, woocommerce custom fields, woocommerce checkout manager, woocommerce checkout editor, woocommerce fields manager, woocommerce fields editor, woocommerce custom checkout fields, woocommerce checkout options, woocommerce checkout pro, woocommerce custom sections, woocommerce file upload
5
  Requires at least: 4.5
6
  Tested up to: 5.2.0
7
+ Stable tag: 2.1.4
8
  Requires PHP: 5.6
9
  License: GPLv3 or later
10
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
188
 
189
  == Changelog ==
190
 
191
+ = 2.1.4 - 2019-09-19 =
192
+ * Fixed invoice fields integration for wFirma/iFirma/inFakt/Fakturownia
193
+
194
+ = 2.1.3 - 2019-09-09 =
195
+ * Fixed display of fields that contains name 'billing'
196
+
197
+ = 2.1.2 - 2019-09-04 =
198
+ * Fixed reordering fields in account address page
199
+ * Fixed set require for WC predefined fields
200
+
201
  = 2.1.1 - 2019-08-29 =
202
  * Fixed warning "Illegal string offset" when shipment is disabled
203
 
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94::getLoader();
vendor/composer/autoload_classmap.php CHANGED
@@ -55,6 +55,8 @@ return array(
55
  'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
56
  'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
57
  'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
 
 
58
  'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
59
  'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
60
  'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
@@ -72,6 +74,8 @@ return array(
72
  'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
73
  'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
74
  'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
 
 
75
  'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
76
  'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
77
  'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
@@ -173,8 +177,10 @@ return array(
173
  'WPDesk_API_MENU' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
174
  'WPDesk_API_Manager_With_Update_Flag' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
175
  'WPDesk_API_Password_Management' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
 
176
  'WPDesk_Conflict_Info' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
177
  'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
 
178
  'WPDesk_Logger' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
179
  'WPDesk_Logger_Factory' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
180
  'WPDesk_Plugin_Build_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
@@ -185,6 +191,7 @@ return array(
185
  'WPDesk_Plugin_Disabler' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
186
  'WPDesk_Plugin_Disabler_By_File' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
187
  'WPDesk_Plugin_Disabler_Variable' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
 
188
  'WPDesk_Plugin_Init_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
189
  'WPDesk_Plugin_Init_Flow_Factory' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
190
  'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
@@ -219,6 +226,8 @@ return array(
219
  'WPDesk_Tracker_Sender_Exception_WpError' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
220
  'WPDesk_Tracker_Sender_Logged' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
221
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
 
 
222
  'WPDesk_Update_API_Check' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
223
  'WPDesk_Wordpress_Class_Loader' => $vendorDir . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
224
  );
55
  'Monolog\\Handler\\FirePHPHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
56
  'Monolog\\Handler\\FleepHookHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
57
  'Monolog\\Handler\\FlowdockHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
58
+ 'Monolog\\Handler\\FormattableHandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
59
+ 'Monolog\\Handler\\FormattableHandlerTrait' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
60
  'Monolog\\Handler\\GelfHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
61
  'Monolog\\Handler\\GroupHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
62
  'Monolog\\Handler\\HandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
74
  'Monolog\\Handler\\NewRelicHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
75
  'Monolog\\Handler\\NullHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
76
  'Monolog\\Handler\\PHPConsoleHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
77
+ 'Monolog\\Handler\\ProcessableHandlerInterface' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
78
+ 'Monolog\\Handler\\ProcessableHandlerTrait' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
79
  'Monolog\\Handler\\PsrHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
80
  'Monolog\\Handler\\PushoverHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
81
  'Monolog\\Handler\\RavenHandler' => $vendorDir . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
177
  'WPDesk_API_MENU' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
178
  'WPDesk_API_Manager_With_Update_Flag' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
179
  'WPDesk_API_Password_Management' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
180
+ 'WPDesk_Buildable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
181
  'WPDesk_Conflict_Info' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
182
  'WPDesk_Flexible_Checkout_Fields_Tracker' => $baseDir . '/classes/tracker.php',
183
+ 'WPDesk_Has_Plugin_Info' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
184
  'WPDesk_Logger' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
185
  'WPDesk_Logger_Factory' => $vendorDir . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
186
  'WPDesk_Plugin_Build_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
191
  'WPDesk_Plugin_Disabler' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
192
  'WPDesk_Plugin_Disabler_By_File' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
193
  'WPDesk_Plugin_Disabler_Variable' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
194
+ 'WPDesk_Plugin_Info' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
195
  'WPDesk_Plugin_Init_Flow' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
196
  'WPDesk_Plugin_Init_Flow_Factory' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
197
  'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => $vendorDir . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
226
  'WPDesk_Tracker_Sender_Exception_WpError' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
227
  'WPDesk_Tracker_Sender_Logged' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
228
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => $vendorDir . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
229
+ 'WPDesk_Translable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
230
+ 'WPDesk_Translatable' => $vendorDir . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
231
  'WPDesk_Update_API_Check' => $vendorDir . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
232
  'WPDesk_Wordpress_Class_Loader' => $vendorDir . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
233
  );
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit1ff6be52da32db7b16ec4e5b8e0d66e2
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
- $includeFiles = Composer\Autoload\ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
- composerRequire1ff6be52da32db7b16ec4e5b8e0d66e2($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
- function composerRequire1ff6be52da32db7b16ec4e5b8e0d66e2($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitb07d7b9a5825760e89d410a7aecd2a94', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
48
  $loader->register(true);
49
 
50
  if ($useStaticLoader) {
51
+ $includeFiles = Composer\Autoload\ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$files;
52
  } else {
53
  $includeFiles = require __DIR__ . '/autoload_files.php';
54
  }
55
  foreach ($includeFiles as $fileIdentifier => $file) {
56
+ composerRequireb07d7b9a5825760e89d410a7aecd2a94($fileIdentifier, $file);
57
  }
58
 
59
  return $loader;
60
  }
61
  }
62
 
63
+ function composerRequireb07d7b9a5825760e89d410a7aecd2a94($fileIdentifier, $file)
64
  {
65
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
66
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
8
  {
9
  public static $files = array (
10
  '0509b34a4bd7aebefeac629c9dc8a978' => __DIR__ . '/..' . '/wpdesk/wp-notice/src/WPDesk/notice-functions.php',
@@ -110,6 +110,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
110
  'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
111
  'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
112
  'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
 
 
113
  'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
114
  'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
115
  'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
@@ -127,6 +129,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
127
  'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
128
  'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
129
  'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
 
 
130
  'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
131
  'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
132
  'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
@@ -228,8 +232,10 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
228
  'WPDesk_API_MENU' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
229
  'WPDesk_API_Manager_With_Update_Flag' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
230
  'WPDesk_API_Password_Management' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
 
231
  'WPDesk_Conflict_Info' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
232
  'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
 
233
  'WPDesk_Logger' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
234
  'WPDesk_Logger_Factory' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
235
  'WPDesk_Plugin_Build_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
@@ -240,6 +246,7 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
240
  'WPDesk_Plugin_Disabler' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
241
  'WPDesk_Plugin_Disabler_By_File' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
242
  'WPDesk_Plugin_Disabler_Variable' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
 
243
  'WPDesk_Plugin_Init_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
244
  'WPDesk_Plugin_Init_Flow_Factory' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
245
  'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
@@ -274,6 +281,8 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
274
  'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
275
  'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
276
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
 
 
277
  'WPDesk_Update_API_Check' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
278
  'WPDesk_Wordpress_Class_Loader' => __DIR__ . '/..' . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
279
  );
@@ -281,9 +290,9 @@ class ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2
281
  public static function getInitializer(ClassLoader $loader)
282
  {
283
  return \Closure::bind(function () use ($loader) {
284
- $loader->prefixLengthsPsr4 = ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2::$prefixLengthsPsr4;
285
- $loader->prefixDirsPsr4 = ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2::$prefixDirsPsr4;
286
- $loader->classMap = ComposerStaticInit1ff6be52da32db7b16ec4e5b8e0d66e2::$classMap;
287
 
288
  }, null, ClassLoader::class);
289
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94
8
  {
9
  public static $files = array (
10
  '0509b34a4bd7aebefeac629c9dc8a978' => __DIR__ . '/..' . '/wpdesk/wp-notice/src/WPDesk/notice-functions.php',
110
  'Monolog\\Handler\\FirePHPHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FirePHPHandler.php',
111
  'Monolog\\Handler\\FleepHookHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FleepHookHandler.php',
112
  'Monolog\\Handler\\FlowdockHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FlowdockHandler.php',
113
+ 'Monolog\\Handler\\FormattableHandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php',
114
+ 'Monolog\\Handler\\FormattableHandlerTrait' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php',
115
  'Monolog\\Handler\\GelfHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GelfHandler.php',
116
  'Monolog\\Handler\\GroupHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/GroupHandler.php',
117
  'Monolog\\Handler\\HandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/HandlerInterface.php',
129
  'Monolog\\Handler\\NewRelicHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NewRelicHandler.php',
130
  'Monolog\\Handler\\NullHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/NullHandler.php',
131
  'Monolog\\Handler\\PHPConsoleHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PHPConsoleHandler.php',
132
+ 'Monolog\\Handler\\ProcessableHandlerInterface' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php',
133
+ 'Monolog\\Handler\\ProcessableHandlerTrait' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php',
134
  'Monolog\\Handler\\PsrHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PsrHandler.php',
135
  'Monolog\\Handler\\PushoverHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/PushoverHandler.php',
136
  'Monolog\\Handler\\RavenHandler' => __DIR__ . '/..' . '/monolog/monolog/src/Monolog/Handler/RavenHandler.php',
232
  'WPDesk_API_MENU' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-menu.php',
233
  'WPDesk_API_Manager_With_Update_Flag' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager.php',
234
  'WPDesk_API_Password_Management' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-api-manager-passwords.php',
235
+ 'WPDesk_Buildable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php',
236
  'WPDesk_Conflict_Info' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Conflict_Info.php',
237
  'WPDesk_Flexible_Checkout_Fields_Tracker' => __DIR__ . '/../..' . '/classes/tracker.php',
238
+ 'WPDesk_Has_Plugin_Info' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php',
239
  'WPDesk_Logger' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger.php',
240
  'WPDesk_Logger_Factory' => __DIR__ . '/..' . '/wpdesk/wp-logs/src/deprecated/wpdesk-logger-factory.php',
241
  'WPDesk_Plugin_Build_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Build_Flow/Plugin_Build_Flow.php',
246
  'WPDesk_Plugin_Disabler' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler.php',
247
  'WPDesk_Plugin_Disabler_By_File' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_By_File.php',
248
  'WPDesk_Plugin_Disabler_Variable' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Compatibility/Plugin_Disabler_Variable.php',
249
+ 'WPDesk_Plugin_Info' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php',
250
  'WPDesk_Plugin_Init_Flow' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow.php',
251
  'WPDesk_Plugin_Init_Flow_Factory' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Factory.php',
252
  'WPDesk_Plugin_Init_Flow_Plugins_Loaded' => __DIR__ . '/..' . '/wpdesk/wp-plugin-flow/src/Init_Flow/Plugin_Init_Flow_Plugins_Loaded.php',
281
  'WPDesk_Tracker_Sender_Exception_WpError' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/Exception/class-wpdesk-tracker-sender-exception-wperror.php',
282
  'WPDesk_Tracker_Sender_Logged' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-logged.php',
283
  'WPDesk_Tracker_Sender_Wordpress_To_WPDesk' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-tracker/src/sender/class-wpdesk-tracker-sender-wordpress-to-wpdesk.php',
284
+ 'WPDesk_Translable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php',
285
+ 'WPDesk_Translatable' => __DIR__ . '/..' . '/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php',
286
  'WPDesk_Update_API_Check' => __DIR__ . '/..' . '/wpdesk/wp-wpdesk-license/src/ApiManager/class-wc-plugin-update.php',
287
  'WPDesk_Wordpress_Class_Loader' => __DIR__ . '/..' . '/wpdesk/wp-class-loader/src/Wordpress_Class_Loader.php',
288
  );
290
  public static function getInitializer(ClassLoader $loader)
291
  {
292
  return \Closure::bind(function () use ($loader) {
293
+ $loader->prefixLengthsPsr4 = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$prefixLengthsPsr4;
294
+ $loader->prefixDirsPsr4 = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$prefixDirsPsr4;
295
+ $loader->classMap = ComposerStaticInitb07d7b9a5825760e89d410a7aecd2a94::$classMap;
296
 
297
  }, null, ClassLoader::class);
298
  }
vendor/composer/installed.json CHANGED
@@ -1,17 +1,17 @@
1
  [
2
  {
3
  "name": "monolog/monolog",
4
- "version": "1.24.0",
5
- "version_normalized": "1.24.0.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Seldaek/monolog.git",
9
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"
10
  },
11
  "dist": {
12
  "type": "zip",
13
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
14
- "reference": "bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266",
15
  "shasum": ""
16
  },
17
  "require": {
@@ -47,7 +47,7 @@
47
  "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
48
  "sentry/sentry": "Allow sending log messages to a Sentry server"
49
  },
50
- "time": "2018-11-05T09:00:11+00:00",
51
  "type": "library",
52
  "extra": {
53
  "branch-alias": {
@@ -207,22 +207,21 @@
207
  },
208
  {
209
  "name": "wpdesk/wp-builder",
210
- "version": "1.2.0",
211
- "version_normalized": "1.2.0.0",
212
  "source": {
213
  "type": "git",
214
  "url": "https://gitlab.com/wpdesk/wp-builder.git",
215
- "reference": "3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd"
216
  },
217
  "dist": {
218
  "type": "zip",
219
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd",
220
- "reference": "3d11d9e2b2bf5d8c9f6ae9e1626f1077800f9ccd",
221
  "shasum": ""
222
  },
223
  "require": {
224
- "php": ">=5.5",
225
- "wpdesk/wp-basic-requirements": "^2.0"
226
  },
227
  "require-dev": {
228
  "10up/wp_mock": "*",
@@ -232,13 +231,16 @@
232
  "wimg/php-compatibility": "^8",
233
  "wp-coding-standards/wpcs": "^0.14.1"
234
  },
235
- "time": "2019-06-27T07:47:17+00:00",
236
  "type": "library",
237
  "installation-source": "dist",
238
  "autoload": {
239
  "psr-4": {
240
  "WPDesk\\PluginBuilder\\": "src/"
241
- }
 
 
 
242
  },
243
  "notification-url": "https://packagist.org/downloads/",
244
  "authors": [
@@ -486,24 +488,24 @@
486
  },
487
  {
488
  "name": "wpdesk/wp-wpdesk-license",
489
- "version": "2.3.2",
490
- "version_normalized": "2.3.2.0",
491
  "source": {
492
  "type": "git",
493
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
494
- "reference": "dc781af426e33a259d9f92f1aaf5dc5b050d0849"
495
  },
496
  "dist": {
497
  "type": "zip",
498
- "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=dc781af426e33a259d9f92f1aaf5dc5b050d0849",
499
- "reference": "dc781af426e33a259d9f92f1aaf5dc5b050d0849",
500
  "shasum": ""
501
  },
502
  "require": {
503
  "ext-curl": "*",
504
  "ext-json": "*",
505
  "php": ">=5.6",
506
- "wpdesk/wp-basic-requirements": "^2.3",
507
  "wpdesk/wp-notice": "^3.0"
508
  },
509
  "require-dev": {
@@ -513,7 +515,7 @@
513
  "squizlabs/php_codesniffer": "^3.0.2",
514
  "wp-coding-standards/wpcs": "^0.14.1"
515
  },
516
- "time": "2019-08-09T11:53:04+00:00",
517
  "type": "library",
518
  "installation-source": "dist",
519
  "autoload": {
1
  [
2
  {
3
  "name": "monolog/monolog",
4
+ "version": "1.25.1",
5
+ "version_normalized": "1.25.1.0",
6
  "source": {
7
  "type": "git",
8
  "url": "https://github.com/Seldaek/monolog.git",
9
+ "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf"
10
  },
11
  "dist": {
12
  "type": "zip",
13
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
14
+ "reference": "70e65a5470a42cfec1a7da00d30edb6e617e8dcf",
15
  "shasum": ""
16
  },
17
  "require": {
47
  "ruflin/elastica": "Allow sending log messages to an Elastic Search server",
48
  "sentry/sentry": "Allow sending log messages to a Sentry server"
49
  },
50
+ "time": "2019-09-06T13:49:17+00:00",
51
  "type": "library",
52
  "extra": {
53
  "branch-alias": {
207
  },
208
  {
209
  "name": "wpdesk/wp-builder",
210
+ "version": "1.3.2",
211
+ "version_normalized": "1.3.2.0",
212
  "source": {
213
  "type": "git",
214
  "url": "https://gitlab.com/wpdesk/wp-builder.git",
215
+ "reference": "455dd537c65ab474b2223320d295834c55b8925c"
216
  },
217
  "dist": {
218
  "type": "zip",
219
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-builder/repository/archive.zip?sha=455dd537c65ab474b2223320d295834c55b8925c",
220
+ "reference": "455dd537c65ab474b2223320d295834c55b8925c",
221
  "shasum": ""
222
  },
223
  "require": {
224
+ "php": ">=5.5"
 
225
  },
226
  "require-dev": {
227
  "10up/wp_mock": "*",
231
  "wimg/php-compatibility": "^8",
232
  "wp-coding-standards/wpcs": "^0.14.1"
233
  },
234
+ "time": "2019-09-18T14:51:51+00:00",
235
  "type": "library",
236
  "installation-source": "dist",
237
  "autoload": {
238
  "psr-4": {
239
  "WPDesk\\PluginBuilder\\": "src/"
240
+ },
241
+ "classmap": [
242
+ "src/Plugin/WithoutNamespace"
243
+ ]
244
  },
245
  "notification-url": "https://packagist.org/downloads/",
246
  "authors": [
488
  },
489
  {
490
  "name": "wpdesk/wp-wpdesk-license",
491
+ "version": "2.4",
492
+ "version_normalized": "2.4.0.0",
493
  "source": {
494
  "type": "git",
495
  "url": "https://gitlab.com/wpdesk/wp-wpdesk-license.git",
496
+ "reference": "992778321025e8f2cb4d85c83150cc757cfa619c"
497
  },
498
  "dist": {
499
  "type": "zip",
500
+ "url": "https://gitlab.com/api/v4/projects/wpdesk%2Fwp-wpdesk-license/repository/archive.zip?sha=992778321025e8f2cb4d85c83150cc757cfa619c",
501
+ "reference": "992778321025e8f2cb4d85c83150cc757cfa619c",
502
  "shasum": ""
503
  },
504
  "require": {
505
  "ext-curl": "*",
506
  "ext-json": "*",
507
  "php": ">=5.6",
508
+ "wpdesk/wp-builder": "^1.3.1",
509
  "wpdesk/wp-notice": "^3.0"
510
  },
511
  "require-dev": {
515
  "squizlabs/php_codesniffer": "^3.0.2",
516
  "wp-coding-standards/wpcs": "^0.14.1"
517
  },
518
+ "time": "2019-09-18T14:35:26+00:00",
519
  "type": "library",
520
  "installation-source": "dist",
521
  "autoload": {
vendor/monolog/monolog/.php_cs DELETED
@@ -1,59 +0,0 @@
1
- <?php
2
-
3
- $header = <<<EOF
4
- This file is part of the Monolog package.
5
-
6
- (c) Jordi Boggiano <j.boggiano@seld.be>
7
-
8
- For the full copyright and license information, please view the LICENSE
9
- file that was distributed with this source code.
10
- EOF;
11
-
12
- $finder = Symfony\CS\Finder::create()
13
- ->files()
14
- ->name('*.php')
15
- ->exclude('Fixtures')
16
- ->in(__DIR__.'/src')
17
- ->in(__DIR__.'/tests')
18
- ;
19
-
20
- return Symfony\CS\Config::create()
21
- ->setUsingCache(true)
22
- //->setUsingLinter(false)
23
- ->setRiskyAllowed(true)
24
- ->setRules(array(
25
- '@PSR2' => true,
26
- 'binary_operator_spaces' => true,
27
- 'blank_line_before_return' => true,
28
- 'header_comment' => array('header' => $header),
29
- 'include' => true,
30
- 'long_array_syntax' => true,
31
- 'method_separation' => true,
32
- 'no_blank_lines_after_class_opening' => true,
33
- 'no_blank_lines_after_phpdoc' => true,
34
- 'no_blank_lines_between_uses' => true,
35
- 'no_duplicate_semicolons' => true,
36
- 'no_extra_consecutive_blank_lines' => true,
37
- 'no_leading_import_slash' => true,
38
- 'no_leading_namespace_whitespace' => true,
39
- 'no_trailing_comma_in_singleline_array' => true,
40
- 'no_unused_imports' => true,
41
- 'object_operator_without_whitespace' => true,
42
- 'phpdoc_align' => true,
43
- 'phpdoc_indent' => true,
44
- 'phpdoc_no_access' => true,
45
- 'phpdoc_no_package' => true,
46
- 'phpdoc_order' => true,
47
- 'phpdoc_scalar' => true,
48
- 'phpdoc_trim' => true,
49
- 'phpdoc_type_to_var' => true,
50
- 'psr0' => true,
51
- 'single_blank_line_before_namespace' => true,
52
- 'spaces_cast' => true,
53
- 'standardize_not_equals' => true,
54
- 'ternary_operator_spaces' => true,
55
- 'trailing_comma_in_multiline_array' => true,
56
- 'whitespacy_lines' => true,
57
- ))
58
- ->finder($finder)
59
- ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ### 1.24.0 (2018-11-05)
2
 
 
3
  * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors
4
  * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)
5
  * Added a way to log signals being received using Monolog\SignalHandler
1
+ ### 1.25.1 (2019-09-06)
2
+
3
+ * Fixed forward-compatible interfaces to be compatible with Monolog 1.x too.
4
+
5
+ ### 1.25.0 (2019-09-06)
6
+
7
+ * Deprecated SlackbotHandler, use SlackWebhookHandler or SlackHandler instead
8
+ * Deprecated RavenHandler, use sentry/sentry 2.x and their Sentry\Monolog\Handler instead
9
+ * Deprecated HipChatHandler, migrate to Slack and use SlackWebhookHandler or SlackHandler instead
10
+ * Added forward-compatible interfaces and traits FormattableHandlerInterface, FormattableHandlerTrait, ProcessableHandlerInterface, ProcessableHandlerTrait. If you use modern PHP and want to make code compatible with Monolog 1 and 2 this can help. You will have to require at least Monolog 1.25 though.
11
+ * Added support for RFC3164 (outdated BSD syslog protocol) to SyslogUdpHandler
12
+ * Fixed issue in GroupHandler and WhatFailureGroupHandler where setting multiple processors would duplicate records
13
+ * Fixed issue in SignalHandler restarting syscalls functionality
14
+ * Fixed normalizers handling of exception backtraces to avoid serializing arguments in some cases
15
+ * Fixed ZendMonitorHandler to work with the latest Zend Server versions
16
+ * Fixed ChromePHPHandler to avoid sending more data than latest Chrome versions allow in headers (4KB down from 256KB).
17
+
18
  ### 1.24.0 (2018-11-05)
19
 
20
+ * BC Notice: If you are extending any of the Monolog's Formatters' `normalize` method, make sure you add the new `$depth = 0` argument to your function signature to avoid strict PHP warnings.
21
  * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors
22
  * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers)
23
  * Added a way to log signals being received using Monolog\SignalHandler
vendor/monolog/monolog/composer.json CHANGED
@@ -59,7 +59,7 @@
59
  },
60
  "scripts": {
61
  "test": [
62
- "parallel-lint . --exclude vendor",
63
  "phpunit"
64
  ]
65
  }
59
  },
60
  "scripts": {
61
  "test": [
62
+ "parallel-lint . --exclude vendor --exclude src/Monolog/Handler/FormattableHandlerInterface.php --exclude src/Monolog/Handler/FormattableHandlerTrait.php --exclude src/Monolog/Handler/ProcessableHandlerInterface.php --exclude src/Monolog/Handler/ProcessableHandlerTrait.php",
63
  "phpunit"
64
  ]
65
  }
vendor/monolog/monolog/doc/01-usage.md DELETED
@@ -1,231 +0,0 @@
1
- # Using Monolog
2
-
3
- - [Installation](#installation)
4
- - [Core Concepts](#core-concepts)
5
- - [Log Levels](#log-levels)
6
- - [Configuring a logger](#configuring-a-logger)
7
- - [Adding extra data in the records](#adding-extra-data-in-the-records)
8
- - [Leveraging channels](#leveraging-channels)
9
- - [Customizing the log format](#customizing-the-log-format)
10
-
11
- ## Installation
12
-
13
- Monolog is available on Packagist ([monolog/monolog](http://packagist.org/packages/monolog/monolog))
14
- and as such installable via [Composer](http://getcomposer.org/).
15
-
16
- ```bash
17
- composer require monolog/monolog
18
- ```
19
-
20
- If you do not use Composer, you can grab the code from GitHub, and use any
21
- PSR-0 compatible autoloader (e.g. the [Symfony2 ClassLoader component](https://github.com/symfony/ClassLoader))
22
- to load Monolog classes.
23
-
24
- ## Core Concepts
25
-
26
- Every `Logger` instance has a channel (name) and a stack of handlers. Whenever
27
- you add a record to the logger, it traverses the handler stack. Each handler
28
- decides whether it fully handled the record, and if so, the propagation of the
29
- record ends there.
30
-
31
- This allows for flexible logging setups, for example having a `StreamHandler` at
32
- the bottom of the stack that will log anything to disk, and on top of that add
33
- a `MailHandler` that will send emails only when an error message is logged.
34
- Handlers also have a `$bubble` property which defines whether they block the
35
- record or not if they handled it. In this example, setting the `MailHandler`'s
36
- `$bubble` argument to false means that records handled by the `MailHandler` will
37
- not propagate to the `StreamHandler` anymore.
38
-
39
- You can create many `Logger`s, each defining a channel (e.g.: db, request,
40
- router, ..) and each of them combining various handlers, which can be shared
41
- or not. The channel is reflected in the logs and allows you to easily see or
42
- filter records.
43
-
44
- Each Handler also has a Formatter, a default one with settings that make sense
45
- will be created if you don't set one. The formatters normalize and format
46
- incoming records so that they can be used by the handlers to output useful
47
- information.
48
-
49
- Custom severity levels are not available. Only the eight
50
- [RFC 5424](http://tools.ietf.org/html/rfc5424) levels (debug, info, notice,
51
- warning, error, critical, alert, emergency) are present for basic filtering
52
- purposes, but for sorting and other use cases that would require
53
- flexibility, you should add Processors to the Logger that can add extra
54
- information (tags, user ip, ..) to the records before they are handled.
55
-
56
- ## Log Levels
57
-
58
- Monolog supports the logging levels described by [RFC 5424](http://tools.ietf.org/html/rfc5424).
59
-
60
- - **DEBUG** (100): Detailed debug information.
61
-
62
- - **INFO** (200): Interesting events. Examples: User logs in, SQL logs.
63
-
64
- - **NOTICE** (250): Normal but significant events.
65
-
66
- - **WARNING** (300): Exceptional occurrences that are not errors. Examples:
67
- Use of deprecated APIs, poor use of an API, undesirable things that are not
68
- necessarily wrong.
69
-
70
- - **ERROR** (400): Runtime errors that do not require immediate action but
71
- should typically be logged and monitored.
72
-
73
- - **CRITICAL** (500): Critical conditions. Example: Application component
74
- unavailable, unexpected exception.
75
-
76
- - **ALERT** (550): Action must be taken immediately. Example: Entire website
77
- down, database unavailable, etc. This should trigger the SMS alerts and wake
78
- you up.
79
-
80
- - **EMERGENCY** (600): Emergency: system is unusable.
81
-
82
- ## Configuring a logger
83
-
84
- Here is a basic setup to log to a file and to firephp on the DEBUG level:
85
-
86
- ```php
87
- <?php
88
-
89
- use Monolog\Logger;
90
- use Monolog\Handler\StreamHandler;
91
- use Monolog\Handler\FirePHPHandler;
92
-
93
- // Create the logger
94
- $logger = new Logger('my_logger');
95
- // Now add some handlers
96
- $logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));
97
- $logger->pushHandler(new FirePHPHandler());
98
-
99
- // You can now use your logger
100
- $logger->addInfo('My logger is now ready');
101
- ```
102
-
103
- Let's explain it. The first step is to create the logger instance which will
104
- be used in your code. The argument is a channel name, which is useful when
105
- you use several loggers (see below for more details about it).
106
-
107
- The logger itself does not know how to handle a record. It delegates it to
108
- some handlers. The code above registers two handlers in the stack to allow
109
- handling records in two different ways.
110
-
111
- Note that the FirePHPHandler is called first as it is added on top of the
112
- stack. This allows you to temporarily add a logger with bubbling disabled if
113
- you want to override other configured loggers.
114
-
115
- > If you use Monolog standalone and are looking for an easy way to
116
- > configure many handlers, the [theorchard/monolog-cascade](https://github.com/theorchard/monolog-cascade)
117
- > can help you build complex logging configs via PHP arrays, yaml or json configs.
118
-
119
- ## Adding extra data in the records
120
-
121
- Monolog provides two different ways to add extra informations along the simple
122
- textual message.
123
-
124
- ### Using the logging context
125
-
126
- The first way is the context, allowing to pass an array of data along the
127
- record:
128
-
129
- ```php
130
- <?php
131
-
132
- $logger->addInfo('Adding a new user', array('username' => 'Seldaek'));
133
- ```
134
-
135
- Simple handlers (like the StreamHandler for instance) will simply format
136
- the array to a string but richer handlers can take advantage of the context
137
- (FirePHP is able to display arrays in pretty way for instance).
138
-
139
- ### Using processors
140
-
141
- The second way is to add extra data for all records by using a processor.
142
- Processors can be any callable. They will get the record as parameter and
143
- must return it after having eventually changed the `extra` part of it. Let's
144
- write a processor adding some dummy data in the record:
145
-
146
- ```php
147
- <?php
148
-
149
- $logger->pushProcessor(function ($record) {
150
- $record['extra']['dummy'] = 'Hello world!';
151
-
152
- return $record;
153
- });
154
- ```
155
-
156
- Monolog provides some built-in processors that can be used in your project.
157
- Look at the [dedicated chapter](https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#processors) for the list.
158
-
159
- > Tip: processors can also be registered on a specific handler instead of
160
- the logger to apply only for this handler.
161
-
162
- ## Leveraging channels
163
-
164
- Channels are a great way to identify to which part of the application a record
165
- is related. This is useful in big applications (and is leveraged by
166
- MonologBundle in Symfony2).
167
-
168
- Picture two loggers sharing a handler that writes to a single log file.
169
- Channels would allow you to identify the logger that issued every record.
170
- You can easily grep through the log files filtering this or that channel.
171
-
172
- ```php
173
- <?php
174
-
175
- use Monolog\Logger;
176
- use Monolog\Handler\StreamHandler;
177
- use Monolog\Handler\FirePHPHandler;
178
-
179
- // Create some handlers
180
- $stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
181
- $firephp = new FirePHPHandler();
182
-
183
- // Create the main logger of the app
184
- $logger = new Logger('my_logger');
185
- $logger->pushHandler($stream);
186
- $logger->pushHandler($firephp);
187
-
188
- // Create a logger for the security-related stuff with a different channel
189
- $securityLogger = new Logger('security');
190
- $securityLogger->pushHandler($stream);
191
- $securityLogger->pushHandler($firephp);
192
-
193
- // Or clone the first one to only change the channel
194
- $securityLogger = $logger->withName('security');
195
- ```
196
-
197
- ## Customizing the log format
198
-
199
- In Monolog it's easy to customize the format of the logs written into files,
200
- sockets, mails, databases and other handlers. Most of the handlers use the
201
-
202
- ```php
203
- $record['formatted']
204
- ```
205
-
206
- value to be automatically put into the log device. This value depends on the
207
- formatter settings. You can choose between predefined formatter classes or
208
- write your own (e.g. a multiline text file for human-readable output).
209
-
210
- To configure a predefined formatter class, just set it as the handler's field:
211
-
212
- ```php
213
- // the default date format is "Y-m-d H:i:s"
214
- $dateFormat = "Y n j, g:i a";
215
- // the default output format is "[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n"
216
- $output = "%datetime% > %level_name% > %message% %context% %extra%\n";
217
- // finally, create a formatter
218
- $formatter = new LineFormatter($output, $dateFormat);
219
-
220
- // Create a handler
221
- $stream = new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG);
222
- $stream->setFormatter($formatter);
223
- // bind it to a logger object
224
- $securityLogger = new Logger('security');
225
- $securityLogger->pushHandler($stream);
226
- ```
227
-
228
- You may also reuse the same formatter between multiple handlers and share those
229
- handlers between multiple loggers.
230
-
231
- [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) &rarr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/doc/02-handlers-formatters-processors.md DELETED
@@ -1,158 +0,0 @@
1
- # Handlers, Formatters and Processors
2
-
3
- - [Handlers](#handlers)
4
- - [Log to files and syslog](#log-to-files-and-syslog)
5
- - [Send alerts and emails](#send-alerts-and-emails)
6
- - [Log specific servers and networked logging](#log-specific-servers-and-networked-logging)
7
- - [Logging in development](#logging-in-development)
8
- - [Log to databases](#log-to-databases)
9
- - [Wrappers / Special Handlers](#wrappers--special-handlers)
10
- - [Formatters](#formatters)
11
- - [Processors](#processors)
12
- - [Third Party Packages](#third-party-packages)
13
-
14
- ## Handlers
15
-
16
- ### Log to files and syslog
17
-
18
- - _StreamHandler_: Logs records into any PHP stream, use this for log files.
19
- - _RotatingFileHandler_: Logs records to a file and creates one logfile per day.
20
- It will also delete files older than `$maxFiles`. You should use
21
- [logrotate](http://linuxcommand.org/man_pages/logrotate8.html) for high profile
22
- setups though, this is just meant as a quick and dirty solution.
23
- - _SyslogHandler_: Logs records to the syslog.
24
- - _ErrorLogHandler_: Logs records to PHP's
25
- [`error_log()`](http://docs.php.net/manual/en/function.error-log.php) function.
26
-
27
- ### Send alerts and emails
28
-
29
- - _NativeMailerHandler_: Sends emails using PHP's
30
- [`mail()`](http://php.net/manual/en/function.mail.php) function.
31
- - _SwiftMailerHandler_: Sends emails using a [`Swift_Mailer`](http://swiftmailer.org/) instance.
32
- - _PushoverHandler_: Sends mobile notifications via the [Pushover](https://www.pushover.net/) API.
33
- - _HipChatHandler_: Logs records to a [HipChat](http://hipchat.com) chat room using its API.
34
- - _FlowdockHandler_: Logs records to a [Flowdock](https://www.flowdock.com/) account.
35
- - _SlackHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slack API.
36
- - _SlackbotHandler_: Logs records to a [Slack](https://www.slack.com/) account using the Slackbot incoming hook.
37
- - _SlackWebhookHandler_: Logs records to a [Slack](https://www.slack.com/) account using Slack Webhooks.
38
- - _MandrillHandler_: Sends emails via the Mandrill API using a [`Swift_Message`](http://swiftmailer.org/) instance.
39
- - _FleepHookHandler_: Logs records to a [Fleep](https://fleep.io/) conversation using Webhooks.
40
- - _IFTTTHandler_: Notifies an [IFTTT](https://ifttt.com/maker) trigger with the log channel, level name and message.
41
-
42
- ### Log specific servers and networked logging
43
-
44
- - _SocketHandler_: Logs records to [sockets](http://php.net/fsockopen), use this
45
- for UNIX and TCP sockets. See an [example](sockets.md).
46
- - _AmqpHandler_: Logs records to an [amqp](http://www.amqp.org/) compatible
47
- server. Requires the [php-amqp](http://pecl.php.net/package/amqp) extension (1.0+).
48
- - _GelfHandler_: Logs records to a [Graylog2](http://www.graylog2.org) server.
49
- - _CubeHandler_: Logs records to a [Cube](http://square.github.com/cube/) server.
50
- - _RavenHandler_: Logs records to a [Sentry](http://getsentry.com/) server using
51
- [raven](https://packagist.org/packages/raven/raven).
52
- - _ZendMonitorHandler_: Logs records to the Zend Monitor present in Zend Server.
53
- - _NewRelicHandler_: Logs records to a [NewRelic](http://newrelic.com/) application.
54
- - _LogglyHandler_: Logs records to a [Loggly](http://www.loggly.com/) account.
55
- - _RollbarHandler_: Logs records to a [Rollbar](https://rollbar.com/) account.
56
- - _SyslogUdpHandler_: Logs records to a remote [Syslogd](http://www.rsyslog.com/) server.
57
- - _LogEntriesHandler_: Logs records to a [LogEntries](http://logentries.com/) account.
58
- - _InsightOpsHandler_: Logs records to a [InsightOps](https://www.rapid7.com/products/insightops/) account.
59
-
60
- ### Logging in development
61
-
62
- - _FirePHPHandler_: Handler for [FirePHP](http://www.firephp.org/), providing
63
- inline `console` messages within [FireBug](http://getfirebug.com/).
64
- - _ChromePHPHandler_: Handler for [ChromePHP](http://www.chromephp.com/), providing
65
- inline `console` messages within Chrome.
66
- - _BrowserConsoleHandler_: Handler to send logs to browser's Javascript `console` with
67
- no browser extension required. Most browsers supporting `console` API are supported.
68
- - _PHPConsoleHandler_: Handler for [PHP Console](https://chrome.google.com/webstore/detail/php-console/nfhmhhlpfleoednkpnnnkolmclajemef), providing
69
- inline `console` and notification popup messages within Chrome.
70
-
71
- ### Log to databases
72
-
73
- - _RedisHandler_: Logs records to a [redis](http://redis.io) server.
74
- - _MongoDBHandler_: Handler to write records in MongoDB via a
75
- [Mongo](http://pecl.php.net/package/mongo) extension connection.
76
- - _CouchDBHandler_: Logs records to a CouchDB server.
77
- - _DoctrineCouchDBHandler_: Logs records to a CouchDB server via the Doctrine CouchDB ODM.
78
- - _ElasticSearchHandler_: Logs records to an Elastic Search server.
79
- - _DynamoDbHandler_: Logs records to a DynamoDB table with the [AWS SDK](https://github.com/aws/aws-sdk-php).
80
-
81
- ### Wrappers / Special Handlers
82
-
83
- - _FingersCrossedHandler_: A very interesting wrapper. It takes a logger as
84
- parameter and will accumulate log records of all levels until a record
85
- exceeds the defined severity level. At which point it delivers all records,
86
- including those of lower severity, to the handler it wraps. This means that
87
- until an error actually happens you will not see anything in your logs, but
88
- when it happens you will have the full information, including debug and info
89
- records. This provides you with all the information you need, but only when
90
- you need it.
91
- - _DeduplicationHandler_: Useful if you are sending notifications or emails
92
- when critical errors occur. It takes a logger as parameter and will
93
- accumulate log records of all levels until the end of the request (or
94
- `flush()` is called). At that point it delivers all records to the handler
95
- it wraps, but only if the records are unique over a given time period
96
- (60seconds by default). If the records are duplicates they are simply
97
- discarded. The main use of this is in case of critical failure like if your
98
- database is unreachable for example all your requests will fail and that
99
- can result in a lot of notifications being sent. Adding this handler reduces
100
- the amount of notifications to a manageable level.
101
- - _WhatFailureGroupHandler_: This handler extends the _GroupHandler_ ignoring
102
- exceptions raised by each child handler. This allows you to ignore issues
103
- where a remote tcp connection may have died but you do not want your entire
104
- application to crash and may wish to continue to log to other handlers.
105
- - _BufferHandler_: This handler will buffer all the log records it receives
106
- until `close()` is called at which point it will call `handleBatch()` on the
107
- handler it wraps with all the log messages at once. This is very useful to
108
- send an email with all records at once for example instead of having one mail
109
- for every log record.
110
- - _GroupHandler_: This handler groups other handlers. Every record received is
111
- sent to all the handlers it is configured with.
112
- - _FilterHandler_: This handler only lets records of the given levels through
113
- to the wrapped handler.
114
- - _SamplingHandler_: Wraps around another handler and lets you sample records
115
- if you only want to store some of them.
116
- - _NullHandler_: Any record it can handle will be thrown away. This can be used
117
- to put on top of an existing handler stack to disable it temporarily.
118
- - _PsrHandler_: Can be used to forward log records to an existing PSR-3 logger
119
- - _TestHandler_: Used for testing, it records everything that is sent to it and
120
- has accessors to read out the information.
121
- - _HandlerWrapper_: A simple handler wrapper you can inherit from to create
122
- your own wrappers easily.
123
-
124
- ## Formatters
125
-
126
- - _LineFormatter_: Formats a log record into a one-line string.
127
- - _HtmlFormatter_: Used to format log records into a human readable html table, mainly suitable for emails.
128
- - _NormalizerFormatter_: Normalizes objects/resources down to strings so a record can easily be serialized/encoded.
129
- - _ScalarFormatter_: Used to format log records into an associative array of scalar values.
130
- - _JsonFormatter_: Encodes a log record into json.
131
- - _WildfireFormatter_: Used to format log records into the Wildfire/FirePHP protocol, only useful for the FirePHPHandler.
132
- - _ChromePHPFormatter_: Used to format log records into the ChromePHP format, only useful for the ChromePHPHandler.
133
- - _GelfMessageFormatter_: Used to format log records into Gelf message instances, only useful for the GelfHandler.
134
- - _LogstashFormatter_: Used to format log records into [logstash](http://logstash.net/) event json, useful for any handler listed under inputs [here](http://logstash.net/docs/latest).
135
- - _ElasticaFormatter_: Used to format log records into an Elastica\Document object, only useful for the ElasticSearchHandler.
136
- - _LogglyFormatter_: Used to format log records into Loggly messages, only useful for the LogglyHandler.
137
- - _FlowdockFormatter_: Used to format log records into Flowdock messages, only useful for the FlowdockHandler.
138
- - _MongoDBFormatter_: Converts \DateTime instances to \MongoDate and objects recursively to arrays, only useful with the MongoDBHandler.
139
-
140
- ## Processors
141
-
142
- - _PsrLogMessageProcessor_: Processes a log record's message according to PSR-3 rules, replacing `{foo}` with the value from `$context['foo']`.
143
- - _IntrospectionProcessor_: Adds the line/file/class/method from which the log call originated.
144
- - _WebProcessor_: Adds the current request URI, request method and client IP to a log record.
145
- - _MemoryUsageProcessor_: Adds the current memory usage to a log record.
146
- - _MemoryPeakUsageProcessor_: Adds the peak memory usage to a log record.
147
- - _ProcessIdProcessor_: Adds the process id to a log record.
148
- - _UidProcessor_: Adds a unique identifier to a log record.
149
- - _GitProcessor_: Adds the current git branch and commit to a log record.
150
- - _TagProcessor_: Adds an array of predefined tags to a log record.
151
-
152
- ## Third Party Packages
153
-
154
- Third party handlers, formatters and processors are
155
- [listed in the wiki](https://github.com/Seldaek/monolog/wiki/Third-Party-Packages). You
156
- can also add your own there if you publish one.
157
-
158
- &larr; [Usage](01-usage.md) | [Utility classes](03-utilities.md) &rarr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/doc/03-utilities.md DELETED
@@ -1,15 +0,0 @@
1
- # Utilities
2
-
3
- - _Registry_: The `Monolog\Registry` class lets you configure global loggers that you
4
- can then statically access from anywhere. It is not really a best practice but can
5
- help in some older codebases or for ease of use.
6
- - _ErrorHandler_: The `Monolog\ErrorHandler` class allows you to easily register
7
- a Logger instance as an exception handler, error handler or fatal error handler.
8
- - _SignalHandler_: The `Monolog\SignalHandler` class allows you to easily register
9
- a Logger instance as a POSIX signal handler.
10
- - _ErrorLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain log
11
- level is reached.
12
- - _ChannelLevelActivationStrategy_: Activates a FingersCrossedHandler when a certain
13
- log level is reached, depending on which channel received the log record.
14
-
15
- &larr; [Handlers, Formatters and Processors](02-handlers-formatters-processors.md) | [Extending Monolog](04-extending.md) &rarr;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/doc/04-extending.md DELETED
@@ -1,76 +0,0 @@
1
- # Extending Monolog
2
-
3
- Monolog is fully extensible, allowing you to adapt your logger to your needs.
4
-
5
- ## Writing your own handler
6
-
7
- Monolog provides many built-in handlers. But if the one you need does not
8
- exist, you can write it and use it in your logger. The only requirement is
9
- to implement `Monolog\Handler\HandlerInterface`.
10
-
11
- Let's write a PDOHandler to log records to a database. We will extend the
12
- abstract class provided by Monolog to keep things DRY.
13
-
14
- ```php
15
- <?php
16
-
17
- use Monolog\Logger;
18
- use Monolog\Handler\AbstractProcessingHandler;
19
-
20
- class PDOHandler extends AbstractProcessingHandler
21
- {
22
- private $initialized = false;
23
- private $pdo;
24
- private $statement;
25
-
26
- public function __construct(PDO $pdo, $level = Logger::DEBUG, $bubble = true)
27
- {
28
- $this->pdo = $pdo;
29
- parent::__construct($level, $bubble);
30
- }
31
-
32
- protected function write(array $record)
33
- {
34
- if (!$this->initialized) {
35
- $this->initialize();
36
- }
37
-
38
- $this->statement->execute(array(
39
- 'channel' => $record['channel'],
40
- 'level' => $record['level'],
41
- 'message' => $record['formatted'],
42
- 'time' => $record['datetime']->format('U'),
43
- ));
44
- }
45
-
46
- private function initialize()
47
- {
48
- $this->pdo->exec(
49
- 'CREATE TABLE IF NOT EXISTS monolog '
50
- .'(channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED)'
51
- );
52
- $this->statement = $this->pdo->prepare(
53
- 'INSERT INTO monolog (channel, level, message, time) VALUES (:channel, :level, :message, :time)'
54
- );
55
-
56
- $this->initialized = true;
57
- }
58
- }
59
- ```
60
-
61
- You can now use this handler in your logger:
62
-
63
- ```php
64
- <?php
65
-
66
- $logger->pushHandler(new PDOHandler(new PDO('sqlite:logs.sqlite')));
67
-
68
- // You can now use your logger
69
- $logger->addInfo('My logger is now ready');
70
- ```
71
-
72
- The `Monolog\Handler\AbstractProcessingHandler` class provides most of the
73
- logic needed for the handler, including the use of processors and the formatting
74
- of the record (which is why we use ``$record['formatted']`` instead of ``$record['message']``).
75
-
76
- &larr; [Utility classes](03-utilities.md)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/doc/sockets.md DELETED
@@ -1,39 +0,0 @@
1
- Sockets Handler
2
- ===============
3
-
4
- This handler allows you to write your logs to sockets using [fsockopen](http://php.net/fsockopen)
5
- or [pfsockopen](http://php.net/pfsockopen).
6
-
7
- Persistent sockets are mainly useful in web environments where you gain some performance not closing/opening
8
- the connections between requests.
9
-
10
- You can use a `unix://` prefix to access unix sockets and `udp://` to open UDP sockets instead of the default TCP.
11
-
12
- Basic Example
13
- -------------
14
-
15
- ```php
16
- <?php
17
-
18
- use Monolog\Logger;
19
- use Monolog\Handler\SocketHandler;
20
-
21
- // Create the logger
22
- $logger = new Logger('my_logger');
23
-
24
- // Create the handler
25
- $handler = new SocketHandler('unix:///var/log/httpd_app_log.socket');
26
- $handler->setPersistent(true);
27
-
28
- // Now add the handler
29
- $logger->pushHandler($handler, Logger::DEBUG);
30
-
31
- // You can now use your logger
32
- $logger->addInfo('My logger is now ready');
33
-
34
- ```
35
-
36
- In this example, using syslog-ng, you should see the log on the log server:
37
-
38
- cweb1 [2012-02-26 00:12:03] my_logger.INFO: My logger is now ready [] []
39
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/phpunit.xml.dist DELETED
@@ -1,19 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
-
3
- <phpunit bootstrap="vendor/autoload.php" colors="true">
4
- <testsuites>
5
- <testsuite name="Monolog Test Suite">
6
- <directory>tests/Monolog/</directory>
7
- </testsuite>
8
- </testsuites>
9
-
10
- <filter>
11
- <whitelist>
12
- <directory suffix=".php">src/Monolog/</directory>
13
- </whitelist>
14
- </filter>
15
-
16
- <php>
17
- <ini name="date.timezone" value="UTC"/>
18
- </php>
19
- </phpunit>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
vendor/monolog/monolog/src/Monolog/Formatter/JsonFormatter.php CHANGED
@@ -195,12 +195,6 @@ class JsonFormatter extends NormalizerFormatter
195
  foreach ($trace as $frame) {
196
  if (isset($frame['file'])) {
197
  $data['trace'][] = $frame['file'].':'.$frame['line'];
198
- } elseif (isset($frame['function']) && $frame['function'] === '{closure}') {
199
- // We should again normalize the frames, because it might contain invalid items
200
- $data['trace'][] = $frame['function'];
201
- } else {
202
- // We should again normalize the frames, because it might contain invalid items
203
- $data['trace'][] = $this->normalize($frame);
204
  }
205
  }
206
  }
195
  foreach ($trace as $frame) {
196
  if (isset($frame['file'])) {
197
  $data['trace'][] = $frame['file'].':'.$frame['line'];
 
 
 
 
 
 
198
  }
199
  }
200
  }
vendor/monolog/monolog/src/Monolog/Formatter/NormalizerFormatter.php CHANGED
@@ -151,23 +151,6 @@ class NormalizerFormatter implements FormatterInterface
151
  foreach ($trace as $frame) {
152
  if (isset($frame['file'])) {
153
  $data['trace'][] = $frame['file'].':'.$frame['line'];
154
- } elseif (isset($frame['function']) && $frame['function'] === '{closure}') {
155
- // Simplify closures handling
156
- $data['trace'][] = $frame['function'];
157
- } else {
158
- if (isset($frame['args'])) {
159
- // Make sure that objects present as arguments are not serialized nicely but rather only
160
- // as a class name to avoid any unexpected leak of sensitive information
161
- $frame['args'] = array_map(function ($arg) {
162
- if (is_object($arg) && !($arg instanceof \DateTime || $arg instanceof \DateTimeInterface)) {
163
- return sprintf("[object] (%s)", Utils::getClass($arg));
164
- }
165
-
166
- return $arg;
167
- }, $frame['args']);
168
- }
169
- // We should again normalize the frames, because it might contain invalid items
170
- $data['trace'][] = $this->toJson($this->normalize($frame), true);
171
  }
172
  }
173
 
151
  foreach ($trace as $frame) {
152
  if (isset($frame['file'])) {
153
  $data['trace'][] = $frame['file'].':'.$frame['line'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
154
  }
155
  }
156
 
vendor/monolog/monolog/src/Monolog/Handler/ChromePHPHandler.php CHANGED
@@ -43,7 +43,7 @@ class ChromePHPHandler extends AbstractProcessingHandler
43
  /**
44
  * Tracks whether we sent too much data
45
  *
46
- * Chrome limits the headers to 256KB, so when we sent 240KB we stop sending
47
  *
48
  * @var bool
49
  */
@@ -136,7 +136,7 @@ class ChromePHPHandler extends AbstractProcessingHandler
136
 
137
  $json = @json_encode(self::$json);
138
  $data = base64_encode(utf8_encode($json));
139
- if (strlen($data) > 240 * 1024) {
140
  self::$overflowed = true;
141
 
142
  $record = array(
43
  /**
44
  * Tracks whether we sent too much data
45
  *
46
+ * Chrome limits the headers to 4KB, so when we sent 3KB we stop sending
47
  *
48
  * @var bool
49
  */
136
 
137
  $json = @json_encode(self::$json);
138
  $data = base64_encode(utf8_encode($json));
139
+ if (strlen($data) > 3 * 1024) {
140
  self::$overflowed = true;
141
 
142
  $record = array(
vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerInterface.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php declare(strict_types=1);
2
+
3
+ /*
4
+ * This file is part of the Monolog package.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Monolog\Handler;
13
+
14
+ use Monolog\Formatter\FormatterInterface;
15
+
16
+ /**
17
+ * Interface to describe loggers that have a formatter
18
+ *
19
+ * This interface is present in monolog 1.x to ease forward compatibility.
20
+ *
21
+ * @author Jordi Boggiano <j.boggiano@seld.be>
22
+ */
23
+ interface FormattableHandlerInterface
24
+ {
25
+ /**
26
+ * Sets the formatter.
27
+ *
28
+ * @param FormatterInterface $formatter
29
+ * @return HandlerInterface self
30
+ */
31
+ public function setFormatter(FormatterInterface $formatter): HandlerInterface;
32
+
33
+ /**
34
+ * Gets the formatter.
35
+ *
36
+ * @return FormatterInterface
37
+ */
38
+ public function getFormatter(): FormatterInterface;
39
+ }
vendor/monolog/monolog/src/Monolog/Handler/FormattableHandlerTrait.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php declare(strict_types=1);
2
+
3
+ /*
4
+ * This file is part of the Monolog package.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Monolog\Handler;
13
+
14
+ use Monolog\Formatter\FormatterInterface;
15
+ use Monolog\Formatter\LineFormatter;
16
+
17
+ /**
18
+ * Helper trait for implementing FormattableInterface
19
+ *
20
+ * This trait is present in monolog 1.x to ease forward compatibility.
21
+ *
22
+ * @author Jordi Boggiano <j.boggiano@seld.be>
23
+ */
24
+ trait FormattableHandlerTrait
25
+ {
26
+ /**
27
+ * @var FormatterInterface
28
+ */
29
+ protected $formatter;
30
+
31
+ /**
32
+ * {@inheritdoc}
33
+ * @suppress PhanTypeMismatchReturn
34
+ */
35
+ public function setFormatter(FormatterInterface $formatter): HandlerInterface
36
+ {
37
+ $this->formatter = $formatter;
38
+
39
+ return $this;
40
+ }
41
+
42
+ /**
43
+ * {@inheritdoc}
44
+ */
45
+ public function getFormatter(): FormatterInterface
46
+ {
47
+ if (!$this->formatter) {
48
+ $this->formatter = $this->getDefaultFormatter();
49
+ }
50
+
51
+ return $this->formatter;
52
+ }
53
+
54
+ /**
55
+ * Gets the default formatter.
56
+ *
57
+ * Overwrite this if the LineFormatter is not a good default for your handler.
58
+ */
59
+ protected function getDefaultFormatter(): FormatterInterface
60
+ {
61
+ return new LineFormatter();
62
+ }
63
+ }
vendor/monolog/monolog/src/Monolog/Handler/GroupHandler.php CHANGED
@@ -80,8 +80,9 @@ class GroupHandler extends AbstractHandler
80
  $processed = array();
81
  foreach ($records as $record) {
82
  foreach ($this->processors as $processor) {
83
- $processed[] = call_user_func($processor, $record);
84
  }
 
85
  }
86
  $records = $processed;
87
  }
80
  $processed = array();
81
  foreach ($records as $record) {
82
  foreach ($this->processors as $processor) {
83
+ $record = call_user_func($processor, $record);
84
  }
85
+ $processed[] = $record;
86
  }
87
  $records = $processed;
88
  }
vendor/monolog/monolog/src/Monolog/Handler/HipChatHandler.php CHANGED
@@ -97,6 +97,8 @@ class HipChatHandler extends SocketHandler
97
  */
98
  public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1)
99
  {
 
 
100
  if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) {
101
  throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.');
102
  }
97
  */
98
  public function __construct($token, $room, $name = 'Monolog', $notify = false, $level = Logger::CRITICAL, $bubble = true, $useSSL = true, $format = 'text', $host = 'api.hipchat.com', $version = self::API_V1)
99
  {
100
+ @trigger_error('The Monolog\Handler\HipChatHandler class is deprecated. You should migrate to Slack and the SlackWebhookHandler / SlackbotHandler, see https://www.atlassian.com/partnerships/slack', E_USER_DEPRECATED);
101
+
102
  if ($version == self::API_V1 && !$this->validateStringLength($name, static::MAXIMUM_NAME_LENGTH)) {
103
  throw new \InvalidArgumentException('The supplied name is too long. HipChat\'s v1 API supports names up to 15 UTF-8 characters.');
104
  }
vendor/monolog/monolog/src/Monolog/Handler/InsightOpsHandler.php CHANGED
@@ -38,7 +38,7 @@ class InsightOpsHandler extends SocketHandler
38
  public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)
39
  {
40
  if ($useSSL && !extension_loaded('openssl')) {
41
- throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for LogEntriesHandler');
42
  }
43
 
44
  $endpoint = $useSSL
38
  public function __construct($token, $region = 'us', $useSSL = true, $level = Logger::DEBUG, $bubble = true)
39
  {
40
  if ($useSSL && !extension_loaded('openssl')) {
41
+ throw new MissingExtensionException('The OpenSSL PHP plugin is required to use SSL encrypted connection for InsightOpsHandler');
42
  }
43
 
44
  $endpoint = $useSSL
vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerInterface.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php declare(strict_types=1);
2
+
3
+ /*
4
+ * This file is part of the Monolog package.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Monolog\Handler;
13
+
14
+ use Monolog\Processor\ProcessorInterface;
15
+
16
+ /**
17
+ * Interface to describe loggers that have processors
18
+ *
19
+ * This interface is present in monolog 1.x to ease forward compatibility.
20
+ *
21
+ * @author Jordi Boggiano <j.boggiano@seld.be>
22
+ */
23
+ interface ProcessableHandlerInterface
24
+ {
25
+ /**
26
+ * Adds a processor in the stack.
27
+ *
28
+ * @param ProcessorInterface|callable $callback
29
+ * @return HandlerInterface self
30
+ */
31
+ public function pushProcessor($callback): HandlerInterface;
32
+
33
+ /**
34
+ * Removes the processor on top of the stack and returns it.
35
+ *
36
+ * @throws \LogicException In case the processor stack is empty
37
+ * @return callable
38
+ */
39
+ public function popProcessor(): callable;
40
+ }
vendor/monolog/monolog/src/Monolog/Handler/ProcessableHandlerTrait.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php declare(strict_types=1);
2
+
3
+ /*
4
+ * This file is part of the Monolog package.
5
+ *
6
+ * (c) Jordi Boggiano <j.boggiano@seld.be>
7
+ *
8
+ * For the full copyright and license information, please view the LICENSE
9
+ * file that was distributed with this source code.
10
+ */
11
+
12
+ namespace Monolog\Handler;
13
+
14
+ use Monolog\ResettableInterface;
15
+
16
+ /**
17
+ * Helper trait for implementing ProcessableInterface
18
+ *
19
+ * This trait is present in monolog 1.x to ease forward compatibility.
20
+ *
21
+ * @author Jordi Boggiano <j.boggiano@seld.be>
22
+ */
23
+ trait ProcessableHandlerTrait
24
+ {
25
+ /**
26
+ * @var callable[]
27
+ */
28
+ protected $processors = [];
29
+
30
+ /**
31
+ * {@inheritdoc}
32
+ * @suppress PhanTypeMismatchReturn
33
+ */
34
+ public function pushProcessor($callback): HandlerInterface
35
+ {
36
+ array_unshift($this->processors, $callback);
37
+
38
+ return $this;
39
+ }
40
+
41
+ /**
42
+ * {@inheritdoc}
43
+ */
44
+ public function popProcessor(): callable
45
+ {
46
+ if (!$this->processors) {
47
+ throw new \LogicException('You tried to pop from an empty processor stack.');
48
+ }
49
+
50
+ return array_shift($this->processors);
51
+ }
52
+
53
+ /**
54
+ * Processes a record.
55
+ */
56
+ protected function processRecord(array $record): array
57
+ {
58
+ foreach ($this->processors as $processor) {
59
+ $record = $processor($record);
60
+ }
61
+
62
+ return $record;
63
+ }
64
+
65
+ protected function resetProcessors(): void
66
+ {
67
+ foreach ($this->processors as $processor) {
68
+ if ($processor instanceof ResettableInterface) {
69
+ $processor->reset();
70
+ }
71
+ }
72
+ }
73
+ }
vendor/monolog/monolog/src/Monolog/Handler/RavenHandler.php CHANGED
@@ -61,6 +61,8 @@ class RavenHandler extends AbstractProcessingHandler
61
  */
62
  public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true)
63
  {
 
 
64
  parent::__construct($level, $bubble);
65
 
66
  $this->ravenClient = $ravenClient;
61
  */
62
  public function __construct(Raven_Client $ravenClient, $level = Logger::DEBUG, $bubble = true)
63
  {
64
+ @trigger_error('The Monolog\Handler\RavenHandler class is deprecated. You should rather upgrade to the sentry/sentry 2.x and use Sentry\Monolog\Handler, see https://github.com/getsentry/sentry-php/blob/master/src/Monolog/Handler.php', E_USER_DEPRECATED);
65
+
66
  parent::__construct($level, $bubble);
67
 
68
  $this->ravenClient = $ravenClient;
vendor/monolog/monolog/src/Monolog/Handler/SlackbotHandler.php CHANGED
@@ -16,8 +16,11 @@ use Monolog\Logger;
16
  /**
17
  * Sends notifications through Slack's Slackbot
18
  *
19
- * @author Haralan Dobrev <hkdobrev@gmail.com>
20
- * @see https://slack.com/apps/A0F81R8ET-slackbot
 
 
 
21
  */
22
  class SlackbotHandler extends AbstractProcessingHandler
23
  {
@@ -48,6 +51,7 @@ class SlackbotHandler extends AbstractProcessingHandler
48
  */
49
  public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true)
50
  {
 
51
  parent::__construct($level, $bubble);
52
 
53
  $this->slackTeam = $slackTeam;
16
  /**
17
  * Sends notifications through Slack's Slackbot
18
  *
19
+ * @author Haralan Dobrev <hkdobrev@gmail.com>
20
+ * @see https://slack.com/apps/A0F81R8ET-slackbot
21
+ * @deprecated According to Slack the API used on this handler it is deprecated.
22
+ * Therefore this handler will be removed on 2.x
23
+ * Slack suggests to use webhooks instead. Please contact slack for more information.
24
  */
25
  class SlackbotHandler extends AbstractProcessingHandler
26
  {
51
  */
52
  public function __construct($slackTeam, $token, $channel, $level = Logger::CRITICAL, $bubble = true)
53
  {
54
+ @trigger_error('SlackbotHandler is deprecated and will be removed on 2.x', E_USER_DEPRECATED);
55
  parent::__construct($level, $bubble);
56
 
57
  $this->slackTeam = $slackTeam;
vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php CHANGED
@@ -63,6 +63,7 @@ class StreamHandler extends AbstractProcessingHandler
63
  fclose($this->stream);
64
  }
65
  $this->stream = null;
 
66
  }
67
 
68
  /**
63
  fclose($this->stream);
64
  }
65
  $this->stream = null;
66
+ $this->dirCreated = null;
67
  }
68
 
69
  /**
vendor/monolog/monolog/src/Monolog/Handler/SyslogUdpHandler.php CHANGED
@@ -18,11 +18,21 @@ use Monolog\Handler\SyslogUdp\UdpSocket;
18
  * A Handler for logging to a remote syslogd server.
19
  *
20
  * @author Jesper Skovgaard Nielsen <nulpunkt@gmail.com>
 
21
  */
22
  class SyslogUdpHandler extends AbstractSyslogHandler
23
  {
 
 
 
 
 
 
 
 
24
  protected $socket;
25
  protected $ident;
 
26
 
27
  /**
28
  * @param string $host
@@ -31,12 +41,14 @@ class SyslogUdpHandler extends AbstractSyslogHandler
31
  * @param int $level The minimum logging level at which this handler will be triggered
32
  * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
33
  * @param string $ident Program name or tag for each log message.
 
34
  */
35
- public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php')
36
  {
37
  parent::__construct($facility, $level, $bubble);
38
 
39
  $this->ident = $ident;
 
40
 
41
  $this->socket = new UdpSocket($host, $port ?: 514);
42
  }
@@ -67,7 +79,7 @@ class SyslogUdpHandler extends AbstractSyslogHandler
67
  }
68
 
69
  /**
70
- * Make common syslog header (see rfc5424)
71
  */
72
  protected function makeCommonSyslogHeader($severity)
73
  {
@@ -81,16 +93,25 @@ class SyslogUdpHandler extends AbstractSyslogHandler
81
  $hostname = '-';
82
  }
83
 
84
- return "<$priority>1 " .
85
- $this->getDateTime() . " " .
86
- $hostname . " " .
87
- $this->ident . " " .
88
- $pid . " - - ";
 
 
 
 
 
 
 
 
 
89
  }
90
 
91
  protected function getDateTime()
92
  {
93
- return date(\DateTime::RFC3339);
94
  }
95
 
96
  /**
18
  * A Handler for logging to a remote syslogd server.
19
  *
20
  * @author Jesper Skovgaard Nielsen <nulpunkt@gmail.com>
21
+ * @author Dominik Kukacka <dominik.kukacka@gmail.com>
22
  */
23
  class SyslogUdpHandler extends AbstractSyslogHandler
24
  {
25
+ const RFC3164 = 0;
26
+ const RFC5424 = 1;
27
+
28
+ private $dateFormats = array(
29
+ self::RFC3164 => 'M d H:i:s',
30
+ self::RFC5424 => \DateTime::RFC3339,
31
+ );
32
+
33
  protected $socket;
34
  protected $ident;
35
+ protected $rfc;
36
 
37
  /**
38
  * @param string $host
41
  * @param int $level The minimum logging level at which this handler will be triggered
42
  * @param bool $bubble Whether the messages that are handled can bubble up the stack or not
43
  * @param string $ident Program name or tag for each log message.
44
+ * @param int $rfc RFC to format the message for.
45
  */
46
+ public function __construct($host, $port = 514, $facility = LOG_USER, $level = Logger::DEBUG, $bubble = true, $ident = 'php', $rfc = self::RFC5424)
47
  {
48
  parent::__construct($facility, $level, $bubble);
49
 
50
  $this->ident = $ident;
51
+ $this->rfc = $rfc;
52
 
53
  $this->socket = new UdpSocket($host, $port ?: 514);
54
  }
79
  }
80
 
81
  /**
82
+ * Make common syslog header (see rfc5424 or rfc3164)
83
  */
84
  protected function makeCommonSyslogHeader($severity)
85
  {
93
  $hostname = '-';
94
  }
95
 
96
+ $date = $this->getDateTime();
97
+
98
+ if ($this->rfc === self::RFC3164) {
99
+ return "<$priority>" .
100
+ $date . " " .
101
+ $hostname . " " .
102
+ $this->ident . "[" . $pid . "]: ";
103
+ } else {
104
+ return "<$priority>1 " .
105
+ $date . " " .
106
+ $hostname . " " .
107
+ $this->ident . " " .
108
+ $pid . " - - ";
109
+ }
110
  }
111
 
112
  protected function getDateTime()
113
  {
114
+ return date($this->dateFormats[$this->rfc]);
115
  }
116
 
117
  /**
vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php CHANGED
@@ -67,6 +67,7 @@ class TestHandler extends AbstractProcessingHandler
67
  {
68
  protected $records = array();
69
  protected $recordsByLevel = array();
 
70
 
71
  public function getRecords()
72
  {
@@ -79,6 +80,18 @@ class TestHandler extends AbstractProcessingHandler
79
  $this->recordsByLevel = array();
80
  }
81
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  public function hasRecords($level)
83
  {
84
  return isset($this->recordsByLevel[$level]);
67
  {
68
  protected $records = array();
69
  protected $recordsByLevel = array();
70
+ private $skipReset = false;
71
 
72
  public function getRecords()
73
  {
80
  $this->recordsByLevel = array();
81
  }
82
 
83
+ public function reset()
84
+ {
85
+ if (!$this->skipReset) {
86
+ $this->clear();
87
+ }
88
+ }
89
+
90
+ public function setSkipReset($skipReset)
91
+ {
92
+ $this->skipReset = $skipReset;
93
+ }
94
+
95
  public function hasRecords($level)
96
  {
97
  return isset($this->recordsByLevel[$level]);
vendor/monolog/monolog/src/Monolog/Handler/WhatFailureGroupHandler.php CHANGED
@@ -52,8 +52,9 @@ class WhatFailureGroupHandler extends GroupHandler
52
  $processed = array();
53
  foreach ($records as $record) {
54
  foreach ($this->processors as $processor) {
55
- $processed[] = call_user_func($processor, $record);
56
  }
 
57
  }
58
  $records = $processed;
59
  }
52
  $processed = array();
53
  foreach ($records as $record) {
54
  foreach ($this->processors as $processor) {
55
+ $record = call_user_func($processor, $record);
56
  }
57
+ $processed[] = $record;
58
  }
59
  $records = $processed;
60
  }
vendor/monolog/monolog/src/Monolog/Handler/ZendMonitorHandler.php CHANGED
@@ -17,6 +17,7 @@ use Monolog\Logger;
17
  * Handler sending logs to Zend Monitor
18
  *
19
  * @author Christian Bergau <cbergau86@gmail.com>
 
20
  */
21
  class ZendMonitorHandler extends AbstractProcessingHandler
22
  {
@@ -25,16 +26,7 @@ class ZendMonitorHandler extends AbstractProcessingHandler
25
  *
26
  * @var array
27
  */
28
- protected $levelMap = array(
29
- Logger::DEBUG => 1,
30
- Logger::INFO => 2,
31
- Logger::NOTICE => 3,
32
- Logger::WARNING => 4,
33
- Logger::ERROR => 5,
34
- Logger::CRITICAL => 6,
35
- Logger::ALERT => 7,
36
- Logger::EMERGENCY => 0,
37
- );
38
 
39
  /**
40
  * Construct
@@ -46,8 +38,21 @@ class ZendMonitorHandler extends AbstractProcessingHandler
46
  public function __construct($level = Logger::DEBUG, $bubble = true)
47
  {
48
  if (!function_exists('zend_monitor_custom_event')) {
49
- throw new MissingExtensionException('You must have Zend Server installed in order to use this handler');
 
 
50
  }
 
 
 
 
 
 
 
 
 
 
 
51
  parent::__construct($level, $bubble);
52
  }
53
 
@@ -57,22 +62,23 @@ class ZendMonitorHandler extends AbstractProcessingHandler
57
  protected function write(array $record)
58
  {
59
  $this->writeZendMonitorCustomEvent(
60
- $this->levelMap[$record['level']],
61
  $record['message'],
62
- $record['formatted']
 
63
  );
64
  }
65
 
66
  /**
67
- * Write a record to Zend Monitor
68
- *
69
- * @param int $level
70
- * @param string $message
71
- * @param array $formatted
72
  */
73
- protected function writeZendMonitorCustomEvent($level, $message, $formatted)
74
  {
75
- zend_monitor_custom_event($level, $message, $formatted);
76
  }
77
 
78
  /**
17
  * Handler sending logs to Zend Monitor
18
  *
19
  * @author Christian Bergau <cbergau86@gmail.com>
20
+ * @author Jason Davis <happydude@jasondavis.net>
21
  */
22
  class ZendMonitorHandler extends AbstractProcessingHandler
23
  {
26
  *
27
  * @var array
28
  */
29
+ protected $levelMap = array();
 
 
 
 
 
 
 
 
 
30
 
31
  /**
32
  * Construct
38
  public function __construct($level = Logger::DEBUG, $bubble = true)
39
  {
40
  if (!function_exists('zend_monitor_custom_event')) {
41
+ throw new MissingExtensionException(
42
+ 'You must have Zend Server installed with Zend Monitor enabled in order to use this handler'
43
+ );
44
  }
45
+ //zend monitor constants are not defined if zend monitor is not enabled.
46
+ $this->levelMap = array(
47
+ Logger::DEBUG => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
48
+ Logger::INFO => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
49
+ Logger::NOTICE => \ZEND_MONITOR_EVENT_SEVERITY_INFO,
50
+ Logger::WARNING => \ZEND_MONITOR_EVENT_SEVERITY_WARNING,
51
+ Logger::ERROR => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
52
+ Logger::CRITICAL => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
53
+ Logger::ALERT => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
54
+ Logger::EMERGENCY => \ZEND_MONITOR_EVENT_SEVERITY_ERROR,
55
+ );
56
  parent::__construct($level, $bubble);
57
  }
58
 
62
  protected function write(array $record)
63
  {
64
  $this->writeZendMonitorCustomEvent(
65
+ Logger::getLevelName($record['level']),
66
  $record['message'],
67
+ $record['formatted'],
68
+ $this->levelMap[$record['level']]
69
  );
70
  }
71
 
72
  /**
73
+ * Write to Zend Monitor Events
74
+ * @param string $type Text displayed in "Class Name (custom)" field
75
+ * @param string $message Text displayed in "Error String"
76
+ * @param mixed $formatted Displayed in Custom Variables tab
77
+ * @param int $severity Set the event severity level (-1,0,1)
78
  */
79
+ protected function writeZendMonitorCustomEvent($type, $message, $formatted, $severity)
80
  {
81
+ zend_monitor_custom_event($type, $message, $formatted, $severity);
82
  }
83
 
84
  /**
vendor/monolog/monolog/src/Monolog/SignalHandler.php CHANGED
@@ -96,7 +96,7 @@ class SignalHandler
96
  if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) {
97
  if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch')
98
  && extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) {
99
- $restartSyscalls = isset($this->restartSyscalls[$signo]) ? $this->restartSyscalls[$signo] : true;
100
  pcntl_signal($signo, SIG_DFL, $restartSyscalls);
101
  pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset);
102
  posix_kill(posix_getpid(), $signo);
96
  if ($this->previousSignalHandler[$signo] === true || $this->previousSignalHandler[$signo] === SIG_DFL) {
97
  if (extension_loaded('pcntl') && function_exists('pcntl_signal') && function_exists('pcntl_sigprocmask') && function_exists('pcntl_signal_dispatch')
98
  && extension_loaded('posix') && function_exists('posix_getpid') && function_exists('posix_kill')) {
99
+ $restartSyscalls = isset($this->signalRestartSyscalls[$signo]) ? $this->signalRestartSyscalls[$signo] : true;
100
  pcntl_signal($signo, SIG_DFL, $restartSyscalls);
101
  pcntl_sigprocmask(SIG_UNBLOCK, array($signo), $oldset);
102
  posix_kill(posix_getpid(), $signo);
vendor/wpdesk/wp-builder/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
  /vendor/
2
- .idea
 
1
  /vendor/
2
+ .idea
3
+ composer.lock
vendor/wpdesk/wp-builder/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
 
 
 
 
 
 
 
 
 
1
  ## [1.2.0] - 2019-06-26
2
  ### Added
3
  - InfoActivationBuilder with capability to set info if plugin subscription is active
1
+ ## [1.3.2] - 2019-09-18
2
+ ### Fixed
3
+ - Forgotten classes
4
+ - Fixed require_once
5
+
6
+ ## [1.3.0] - 2019-09-18
7
+ ### Added
8
+ - Plugin classes from wp-requirements
9
+
10
  ## [1.2.0] - 2019-06-26
11
  ### Added
12
  - InfoActivationBuilder with capability to set info if plugin subscription is active
vendor/wpdesk/wp-builder/apigen.neon CHANGED
@@ -2,15 +2,15 @@ destination: docs
2
  templateConfig: /app/theme-woocommerce/config.neon
3
  extensions: [php]
4
  source:
5
- - classes
6
  exclude:
7
  - vendor
8
  - tests
9
  - languages
10
 
11
  charset: [UTF-8]
12
- main: Wordpress plugin
13
- title: Plugin template more info
14
  baseUrl: "/"
15
 
16
  templateTheme: default
@@ -21,7 +21,7 @@ deprecated: false
21
  todo: false
22
  download: false
23
 
24
- accessLevels:
25
  - public
26
  - private
27
- - protected
2
  templateConfig: /app/theme-woocommerce/config.neon
3
  extensions: [php]
4
  source:
5
+ - src
6
  exclude:
7
  - vendor
8
  - tests
9
  - languages
10
 
11
  charset: [UTF-8]
12
+ main: Library wp-builder
13
+ title: Library that provides basic info how build a plugin and what a plugin is
14
  baseUrl: "/"
15
 
16
  templateTheme: default
21
  todo: false
22
  download: false
23
 
24
+ accessLevels:
25
  - public
26
  - private
27
+ - protected
vendor/wpdesk/wp-builder/composer.json CHANGED
@@ -7,8 +7,7 @@
7
  }
8
  ],
9
  "require": {
10
- "php": ">=5.5",
11
- "wpdesk/wp-basic-requirements": "^2.0"
12
  },
13
  "require-dev": {
14
  "phpunit/phpunit": "<7",
@@ -19,7 +18,8 @@
19
  "wimg/php-compatibility": "^8"
20
  },
21
  "autoload": {
22
- "psr-4": {"WPDesk\\PluginBuilder\\": "src/"}
 
23
  },
24
  "autoload-dev": {
25
  },
7
  }
8
  ],
9
  "require": {
10
+ "php": ">=5.5"
 
11
  },
12
  "require-dev": {
13
  "phpunit/phpunit": "<7",
18
  "wimg/php-compatibility": "^8"
19
  },
20
  "autoload": {
21
+ "psr-4": {"WPDesk\\PluginBuilder\\": "src/"},
22
+ "classmap": ["src/Plugin/WithoutNamespace"]
23
  },
24
  "autoload-dev": {
25
  },
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Buildable.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Have info about what class should be built by WPDesk_Builder
5
+ *
6
+ * have to be compatible with PHP 5.2.x
7
+ */
8
+ interface WPDesk_Buildable {
9
+ /** @return string */
10
+ public function get_class_name();
11
+ }
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Has_Plugin_Info.php ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! interface_exists( 'WPDesk_Translatable' ) ) {
4
+ require_once __DIR__ . '/Translatable.php';
5
+ }
6
+
7
+
8
+ /**
9
+ * Have MUST HAVE info for plugin instantion
10
+ *
11
+ * have to be compatible with PHP 5.2.x
12
+ */
13
+ interface WPDesk_Has_Plugin_Info extends WPDesk_Translatable {
14
+ /**
15
+ * @return string
16
+ */
17
+ public function get_plugin_file_name();
18
+
19
+ /**
20
+ * @return string
21
+ */
22
+ public function get_plugin_dir();
23
+
24
+ /**
25
+ * @return string
26
+ */
27
+ public function get_version();
28
+
29
+ }
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Plugin_Info.php ADDED
@@ -0,0 +1,171 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! interface_exists( 'WPDesk_Translatable' ) ) {
4
+ require_once __DIR__ . '/Translatable.php';
5
+ }
6
+ if ( ! class_exists( 'WPDesk_Buildable' ) ) {
7
+ require_once __DIR__ . '/Buildable.php';
8
+ }
9
+ if ( ! class_exists( 'WPDesk_Has_Plugin_Info' ) ) {
10
+ require_once 'Has_Plugin_Info.php';
11
+ }
12
+
13
+ /**
14
+ * Structure with core info about plugin
15
+ *
16
+ * have to be compatible with PHP 5.2.x
17
+ */
18
+ class WPDesk_Plugin_Info implements WPDesk_Translatable, WPDesk_Buildable, WPDesk_Has_Plugin_Info {
19
+ /** @var string */
20
+ private $plugin_file_name;
21
+
22
+ /** @var string */
23
+ private $plugin_dir;
24
+
25
+ /** @var string */
26
+ private $plugin_url;
27
+
28
+ /** @var string */
29
+ private $class_name;
30
+
31
+ /** @var string */
32
+ private $version;
33
+
34
+ /** @var string */
35
+ private $product_id;
36
+
37
+ /** @var string */
38
+ private $plugin_name;
39
+
40
+ /** @var \DateTimeInterface */
41
+ private $release_date;
42
+
43
+ /** string */
44
+ private $text_domain;
45
+
46
+ /**
47
+ * @return string
48
+ */
49
+ public function get_plugin_file_name() {
50
+ return $this->plugin_file_name;
51
+ }
52
+
53
+ /**
54
+ * @param string $plugin_name
55
+ */
56
+ public function set_plugin_file_name( $plugin_name ) {
57
+ $this->plugin_file_name = $plugin_name;
58
+ }
59
+
60
+ /**
61
+ * @return string
62
+ */
63
+ public function get_plugin_dir() {
64
+ return $this->plugin_dir;
65
+ }
66
+
67
+ /**
68
+ * @param string $plugin_dir
69
+ */
70
+ public function set_plugin_dir( $plugin_dir ) {
71
+ $this->plugin_dir = $plugin_dir;
72
+ }
73
+
74
+ /**
75
+ * @return string
76
+ */
77
+ public function get_plugin_url() {
78
+ return $this->plugin_url;
79
+ }
80
+
81
+ /**
82
+ * @param string $plugin_url
83
+ */
84
+ public function set_plugin_url( $plugin_url ) {
85
+ $this->plugin_url = $plugin_url;
86
+ }
87
+
88
+ /**
89
+ * @return string
90
+ */
91
+ public function get_version() {
92
+ return $this->version;
93
+ }
94
+
95
+ /**
96
+ * @param string $version
97
+ */
98
+ public function set_version( $version ) {
99
+ $this->version = $version;
100
+ }
101
+
102
+ /**
103
+ * @return string
104
+ */
105
+ public function get_product_id() {
106
+ return $this->product_id;
107
+ }
108
+
109
+ /**
110
+ * @param string $product_id
111
+ */
112
+ public function set_product_id( $product_id ) {
113
+ $this->product_id = $product_id;
114
+ }
115
+
116
+ /**
117
+ * @return string
118
+ */
119
+ public function get_plugin_name() {
120
+ return $this->plugin_name;
121
+ }
122
+
123
+ /**
124
+ * @param string $plugin_name
125
+ */
126
+ public function set_plugin_name( $plugin_name ) {
127
+ $this->plugin_name = $plugin_name;
128
+ }
129
+
130
+ /**
131
+ * @return DateTimeInterface
132
+ */
133
+ public function get_release_date() {
134
+ return $this->release_date;
135
+ }
136
+
137
+ /**
138
+ * @param \DateTimeInterface $release_date
139
+ */
140
+ public function set_release_date( $release_date ) {
141
+ $this->release_date = $release_date;
142
+ }
143
+
144
+ /**
145
+ * @return string
146
+ */
147
+ public function get_class_name() {
148
+ return $this->class_name;
149
+ }
150
+
151
+ /**
152
+ * @param string $class_name
153
+ */
154
+ public function set_class_name( $class_name ) {
155
+ $this->class_name = $class_name;
156
+ }
157
+
158
+ /**
159
+ * @return string
160
+ */
161
+ public function get_text_domain() {
162
+ return $this->text_domain;
163
+ }
164
+
165
+ /**
166
+ * @param $value
167
+ */
168
+ public function set_text_domain( $value ) {
169
+ $this->text_domain = $value;
170
+ }
171
+ }
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translable.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @deprecated Have typo so better use WPDesk_Translatable
5
+ */
6
+ interface WPDesk_Translable {
7
+ /** @return string */
8
+ public function get_text_domain();
9
+ }
vendor/wpdesk/wp-builder/src/Plugin/WithoutNamespace/Translatable.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! interface_exists( 'WPDesk_Translable' ) ) {
4
+ require_once 'Translable.php';
5
+ }
6
+
7
+ /**
8
+ * Have info about textdomain - how to translate texts
9
+ *
10
+ * have to be compatible with PHP 5.2.x
11
+ */
12
+ interface WPDesk_Translatable extends WPDesk_Translable {
13
+ /** @return string */
14
+ public function get_text_domain();
15
+ }
vendor/wpdesk/wp-wpdesk-license/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  ## [2.3.2] - 2019-08-09
2
  ### Fixed
3
  - Notice type
1
+ ## [2.4] - 2019-09-18
2
+ ### Changed
3
+ - Basic classes moved to wp-builder
4
+
5
  ## [2.3.2] - 2019-08-09
6
  ### Fixed
7
  - Notice type
vendor/wpdesk/wp-wpdesk-license/composer.json CHANGED
@@ -10,7 +10,7 @@
10
  "php": ">=5.6",
11
  "ext-curl": "*",
12
  "ext-json": "*",
13
- "wpdesk/wp-basic-requirements": "^2.3",
14
  "wpdesk/wp-notice": "^3.0"
15
  },
16
  "require-dev": {
10
  "php": ">=5.6",
11
  "ext-curl": "*",
12
  "ext-json": "*",
13
+ "wpdesk/wp-builder": "^1.3.1",
14
  "wpdesk/wp-notice": "^3.0"
15
  },
16
  "require-dev": {