Gutenberg Blocks – ACF Blocks Suite - Version 2.0.1

Version Description

  • Bug Fixes
  • Remove default margin padding values
Download this release

Release Info

Developer munirkamal
Plugin Icon 128x128 Gutenberg Blocks – ACF Blocks Suite
Version 2.0.1
Comparing to
See all releases

Code changes from version 1.8.0 to 2.0.1

Files changed (124) hide show
  1. acf-blocks.php +243 -5
  2. acf-json/group_5cbd743876860.json +183 -49
  3. acf-json/group_5cbd9e696a100.json +206 -55
  4. acf-json/group_5cbdba3909312.json +122 -11
  5. acf-json/group_5cbdd1a0caf81.json +272 -107
  6. acf-json/group_5cbef16c004be.json +94 -23
  7. acf-json/group_5cc04e691b1a8.json +152 -26
  8. acf-json/group_5cc6b8e86e751.json +121 -27
  9. acf-json/group_5cc6cf92e231a.json +121 -27
  10. acf-json/group_5cc6dfe67784b.json +179 -50
  11. acf-json/group_5cc7092c01eb4.json +144 -31
  12. acf-json/group_5cd00bce35670.json +285 -82
  13. acf-json/group_5cde975abf269.json +168 -21
  14. acf-json/group_5cf238e5e1203.json +103 -12
  15. acf-json/group_5cfe3ba49f760.json +144 -31
  16. acf-json/group_5cff80b5c59d1.json +133 -39
  17. acf-json/group_5cff8a6c26332.json +150 -39
  18. acf-json/group_5d7b6d4b9609e.json +236 -164
  19. acf-json/group_5d7f7f7dd9f24.json +215 -78
  20. acf-json/group_5d80d38c44b1c.json +168 -51
  21. acf-json/group_5d85f76783fa0.json +221 -104
  22. acf-json/group_5d88ac7ea4495.json +103 -11
  23. acf-json/group_5d89edcb99f5e.json +149 -51
  24. acf-json/group_5d8c7aea13336.json +93 -22
  25. acf-json/group_5d9c6dc7208c4.json +102 -13
  26. acf-json/group_5d9c78624c0c3.json +104 -15
  27. acf-json/group_5d9f3016200d1.json +126 -32
  28. acf-json/group_5d9f3dcad2c3d.json +296 -101
  29. acf-json/group_5da1986955b15.json +496 -215
  30. acf-json/group_5db1a62d812f2.json +314 -119
  31. acf-json/group_5e41243deaf30.json +54 -7
  32. acf-json/group_5e4264a59e5d4.json +139 -31
  33. acf-json/group_5e4a64dc6c677.json +213 -6
  34. acf-json/group_5e4bae0ee904c.json +1 -0
  35. acf-json/group_5e4e45f4d189d.json +242 -166
  36. acf-json/group_5e4fc1d5b0411.json +2 -2
  37. acf-json/group_5e50e811bbbf0.json +111 -19
  38. acf-json/group_5e870239ddce9.json +1523 -0
  39. admin/admin-script.js +34 -0
  40. admin/admin-styles.css +60 -0
  41. admin/class-acf-admin-page.php +10 -0
  42. block-templates/free/acfb-accordion.php +23 -2
  43. block-templates/free/acfb-business-hours.php +25 -2
  44. block-templates/free/acfb-clicktotweet.php +28 -3
  45. block-templates/free/acfb-counternumber.php +23 -2
  46. block-templates/free/acfb-dual-button.php +0 -111
  47. block-templates/free/acfb-image-slider.php +21 -1
  48. block-templates/free/acfb-multibuttons.php +25 -1
  49. block-templates/free/acfb-photocollage.php +9 -1
  50. block-templates/free/acfb-posts.php +59 -10
  51. block-templates/free/acfb-pricelist.php +22 -2
  52. block-templates/free/acfb-pricingbox.php +49 -8
  53. block-templates/free/acfb-progressbar.php +23 -2
  54. block-templates/free/acfb-scrollable-image.php +8 -0
  55. block-templates/free/acfb-socialsharing.php +27 -0
  56. block-templates/free/acfb-starrating.php +21 -2
  57. block-templates/free/acfb-tabs.php +30 -3
  58. block-templates/free/acfb-team.php +32 -5
  59. block-templates/free/acfb-testimonial.php +35 -4
  60. block-templates/free/acfb-toggle.php +22 -2
  61. block-templates/functions/function.php +35 -0
  62. css/acfblocks.css +178 -58
  63. css/animated-headline.css +0 -1
  64. css/magnific-popup.css +0 -351
  65. fields/class-acfb-acf-field-margin-v5.php +749 -0
  66. fields/class-acfb-acf-field-padding-v5.php +747 -0
  67. fields/class-acfb-acf-field-typography-v5.php +962 -0
  68. free-acf-blocks.php +0 -20
  69. freemius/assets/css/admin/account.css +1 -1
  70. freemius/assets/css/admin/add-ons.css +2 -2
  71. freemius/assets/css/admin/common.css +2 -2
  72. freemius/assets/css/admin/connect.css +1 -1
  73. freemius/assets/css/admin/debug.css +1 -1
  74. freemius/assets/css/admin/dialog-boxes.css +1 -1
  75. freemius/assets/css/admin/plugins.css +1 -0
  76. freemius/assets/css/customizer.css +1 -1
  77. freemius/assets/img/acf-blocks.svg +0 -1
  78. freemius/assets/scss/_colors.scss +0 -79
  79. freemius/assets/scss/_functions.scss +0 -0
  80. freemius/assets/scss/_load.scss +0 -4
  81. freemius/assets/scss/_mixins.scss +0 -270
  82. freemius/assets/scss/_start.scss +0 -4
  83. freemius/assets/scss/_vars.scss +0 -6
  84. freemius/assets/scss/admin/_ajax-loader.scss +0 -49
  85. freemius/assets/scss/admin/_auto-install.scss +0 -33
  86. freemius/assets/scss/admin/_buttons.scss +0 -28
  87. freemius/assets/scss/admin/_deactivation-feedback.scss +0 -55
  88. freemius/assets/scss/admin/_gdpr-consent.scss +0 -81
  89. freemius/assets/scss/admin/_license-activation.scss +0 -47
  90. freemius/assets/scss/admin/_license-key-resend.scss +0 -68
  91. freemius/assets/scss/admin/_modal-common.scss +0 -194
  92. freemius/assets/scss/admin/_multisite-options.scss +0 -40
  93. freemius/assets/scss/admin/_plugin-upgrade-notice.scss +0 -8
  94. freemius/assets/scss/admin/_subscription-cancellation.scss +0 -30
  95. freemius/assets/scss/admin/_themes.scss +0 -21
  96. freemius/assets/scss/admin/_tooltip.scss +0 -66
  97. freemius/assets/scss/admin/account.scss +0 -302
  98. freemius/assets/scss/admin/add-ons.scss +0 -449
  99. freemius/assets/scss/admin/affiliation.scss +0 -97
  100. freemius/assets/scss/admin/checkout.scss +0 -5
  101. freemius/assets/scss/admin/common.scss +0 -220
  102. freemius/assets/scss/admin/connect.scss +0 -548
  103. freemius/assets/scss/admin/debug.scss +0 -135
  104. freemius/assets/scss/admin/dialog-boxes.scss +0 -10
  105. freemius/assets/scss/admin/gdpr-optin-notice.scss +0 -17
  106. freemius/assets/scss/admin/index.php +0 -3
  107. freemius/assets/scss/customizer.scss +0 -125
  108. freemius/assets/scss/index.php +0 -3
  109. freemius/config.php +3 -3
  110. freemius/includes/class-freemius.php +3575 -778
  111. freemius/includes/class-fs-api.php +77 -38
  112. freemius/includes/class-fs-plugin-updater.php +196 -38
  113. freemius/includes/class-fs-storage.php +45 -38
  114. freemius/includes/customizer/class-fs-customizer-upsell-control.php +5 -1
  115. freemius/includes/entities/class-fs-entity.php +10 -0
  116. freemius/includes/entities/class-fs-payment.php +58 -0
  117. freemius/includes/entities/class-fs-plugin-license.php +55 -1
  118. freemius/includes/entities/class-fs-plugin-tag.php +12 -2
  119. freemius/includes/entities/class-fs-plugin.php +17 -0
  120. freemius/includes/entities/class-fs-pricing.php +16 -0
  121. freemius/includes/entities/class-fs-site.php +6 -3
  122. freemius/includes/entities/class-fs-subscription.php +136 -114
  123. freemius/includes/entities/class-fs-user.php +17 -0
  124. freemius/includes/fs-core-functions.php +191 -151
acf-blocks.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin Name: ACF Blocks
5
  * Plugin URI: https://acfblocks.com/
6
  * Description: Supercharge your Gutenberg editor with high quality beautiful WordPress blocks. Ready-to-use ACF Blocks!
7
- * Version: 1.8.0
8
  * Author: munirkamal
9
  * Author URI: https://munirkamal.wordpress.com
10
  * License: GPL2
@@ -38,10 +38,6 @@ if ( function_exists( 'acfb_fs' ) ) {
38
  'premium_suffix' => 'pro',
39
  'has_addons' => false,
40
  'has_paid_plans' => true,
41
- 'trial' => array(
42
- 'days' => 7,
43
- 'is_require_payment' => false,
44
- ),
45
  'menu' => array(
46
  'slug' => 'acf-blocks',
47
  'support' => false,
@@ -435,6 +431,12 @@ if ( function_exists( 'acfb_fs' ) ) {
435
  false,
436
  '1.0.0'
437
  );
 
 
 
 
 
 
438
  }
439
 
440
  function acfb_enqueue_scripts()
@@ -443,6 +445,242 @@ if ( function_exists( 'acfb_fs' ) ) {
443
  }
444
 
445
  add_action( 'wp_enqueue_scripts', 'acfb_enqueue_scripts', 999 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
446
  }
447
 
448
  // freemius end
4
  * Plugin Name: ACF Blocks
5
  * Plugin URI: https://acfblocks.com/
6
  * Description: Supercharge your Gutenberg editor with high quality beautiful WordPress blocks. Ready-to-use ACF Blocks!
7
+ * Version: 2.0.1
8
  * Author: munirkamal
9
  * Author URI: https://munirkamal.wordpress.com
10
  * License: GPL2
38
  'premium_suffix' => 'pro',
39
  'has_addons' => false,
40
  'has_paid_plans' => true,
 
 
 
 
41
  'menu' => array(
42
  'slug' => 'acf-blocks',
43
  'support' => false,
431
  false,
432
  '1.0.0'
433
  );
434
+ wp_enqueue_script(
435
+ 'acfb_admin_scirpt',
436
+ plugin_dir_url( __FILE__ ) . '/admin/admin-script.js',
437
+ false,
438
+ ''
439
+ );
440
  }
441
 
442
  function acfb_enqueue_scripts()
445
  }
446
 
447
  add_action( 'wp_enqueue_scripts', 'acfb_enqueue_scripts', 999 );
448
+ // Acf Custom field
449
+ // check if class already exists
450
+
451
+ if ( !class_exists( 'acfb_acf_plugin_typography' ) ) {
452
+ class acfb_acf_plugin_typography
453
+ {
454
+ // vars
455
+ var $settings ;
456
+ function __construct()
457
+ {
458
+ // settings
459
+ // - these will be passed into the field class.
460
+ $this->settings = array(
461
+ 'version' => '2.0.0',
462
+ 'url' => plugin_dir_url( __FILE__ ),
463
+ 'path' => plugin_dir_path( __FILE__ ),
464
+ );
465
+ // include field
466
+ add_action( 'acf/include_field_types', array( $this, 'include_field' ) );
467
+ // v5
468
+ add_action( 'acf/register_fields', array( $this, 'include_field' ) );
469
+ // v4
470
+ }
471
+
472
+ function include_field( $version = false )
473
+ {
474
+ // include
475
+ include_once 'fields/class-acfb-acf-field-typography-v' . $version . '.php';
476
+ include_once 'fields/class-acfb-acf-field-padding-v' . $version . '.php';
477
+ include_once 'fields/class-acfb-acf-field-margin-v' . $version . '.php';
478
+ }
479
+
480
+ }
481
+ // initialize
482
+ new acfb_acf_plugin_typography();
483
+ // class_exists check
484
+ }
485
+
486
+ function get_value( $field_id, $fields )
487
+ {
488
+ $value = get_field( $field_id );
489
+
490
+ if ( is_null( $value ) ) {
491
+ $defaults = get_field_object( $field_id );
492
+ $v = array();
493
+ foreach ( $fields as $field ) {
494
+ $v[$field] = $defaults[$field];
495
+ }
496
+ return $v;
497
+ } else {
498
+ return $value;
499
+ }
500
+
501
+ }
502
+
503
+ function build_css( $selectors )
504
+ {
505
+ foreach ( $selectors as $key => $css ) {
506
+ if ( $css !== 'default' and $css !== '' ) {
507
+ echo $key . ':' . $css . ';' ;
508
+ }
509
+ }
510
+ }
511
+
512
+ function get_typo_field( $typo_name )
513
+ {
514
+ ?>
515
+ font-size: <?php
516
+ echo $typo_name['font_size'] ;
517
+ ?>px;
518
+ <?php
519
+ echo build_css( array(
520
+ 'font-family' => get_family( $typo_name['font_family'] ),
521
+ 'font-weight' => $typo_name['font_weight'],
522
+ 'text-transform' => $typo_name['font_transform'],
523
+ 'font-style' => $typo_name['font_style'],
524
+ 'text-decoration' => $typo_name['font_decoration'],
525
+ ) ) ;
526
+ ?>
527
+ <?php
528
+
529
+ if ( $typo_name['font_line_height'] > 0.1 ) {
530
+ ?>
531
+ line-height: <?php
532
+ echo $typo_name['font_line_height'] ;
533
+ ?>;
534
+ <?php
535
+ }
536
+
537
+ ?>
538
+ <?php
539
+
540
+ if ( $typo_name['font_letter_spacing'] ) {
541
+ ?>
542
+ letter-spacing: <?php
543
+ echo $typo_name['font_letter_spacing'] ;
544
+ ?>px;
545
+ <?php
546
+ }
547
+
548
+ }
549
+
550
+ function get_padding_field( $padding_name )
551
+ {
552
+ ?>
553
+ <?php
554
+
555
+ if ( $padding_name['padding_top'] ) {
556
+ ?>
557
+ padding-top: <?php
558
+ echo $padding_name['padding_top'] ;
559
+ ?>px;
560
+ <?php
561
+ }
562
+
563
+ ?>
564
+ <?php
565
+
566
+ if ( $padding_name['padding_bottom'] ) {
567
+ ?>
568
+ padding-bottom: <?php
569
+ echo $padding_name['padding_bottom'] ;
570
+ ?>px;
571
+ <?php
572
+ }
573
+
574
+ ?>
575
+ <?php
576
+
577
+ if ( $padding_name['padding_left'] ) {
578
+ ?>
579
+ padding-left: <?php
580
+ echo $padding_name['padding_left'] ;
581
+ ?>px;
582
+ <?php
583
+ }
584
+
585
+ ?>
586
+ <?php
587
+
588
+ if ( $padding_name['padding_right'] ) {
589
+ ?>
590
+ padding-right: <?php
591
+ echo $padding_name['padding_right'] ;
592
+ ?>px;
593
+ <?php
594
+ }
595
+
596
+ ?>
597
+ <?php
598
+ }
599
+
600
+ function get_margin_field( $margin_name )
601
+ {
602
+ ?>
603
+ <?php
604
+
605
+ if ( $margin_name['margin_top'] ) {
606
+ ?>
607
+ margin-top: <?php
608
+ echo $margin_name['margin_top'] ;
609
+ ?>px;
610
+ <?php
611
+ }
612
+
613
+ ?>
614
+ <?php
615
+
616
+ if ( $margin_name['margin_bottom'] ) {
617
+ ?>
618
+ margin-bottom: <?php
619
+ echo $margin_name['margin_bottom'] ;
620
+ ?>px;
621
+ <?php
622
+ }
623
+
624
+ ?>
625
+ <?php
626
+
627
+ if ( $margin_name['margin_left'] ) {
628
+ ?>
629
+ margin-left: <?php
630
+ echo $margin_name['margin_left'] ;
631
+ ?>px;
632
+ <?php
633
+ }
634
+
635
+ ?>
636
+ <?php
637
+
638
+ if ( $margin_name['margin_right'] ) {
639
+ ?>
640
+ margin-right: <?php
641
+ echo $margin_name['margin_right'] ;
642
+ ?>px;
643
+ <?php
644
+ }
645
+
646
+ ?>
647
+ <?php
648
+ }
649
+
650
+ function acfb_padding_name( $acfb_pname )
651
+ {
652
+ return get_value( $acfb_pname, array(
653
+ 'padding_top',
654
+ 'padding_right',
655
+ 'padding_bottom',
656
+ 'padding_left'
657
+ ) );
658
+ }
659
+
660
+ function acfb_margin_name( $acfb_mname )
661
+ {
662
+ return get_value( $acfb_mname, array(
663
+ 'margin_top',
664
+ 'margin_right',
665
+ 'margin_bottom',
666
+ 'margin_left'
667
+ ) );
668
+ }
669
+
670
+ function acfb_ffaimly_name( $acfb_fname )
671
+ {
672
+ return get_value( $acfb_fname, array(
673
+ 'font_family',
674
+ 'font_size',
675
+ 'font_weight',
676
+ 'font_transform',
677
+ 'font_style',
678
+ 'font_decoration',
679
+ 'font_line_height',
680
+ 'font_letter_spacing'
681
+ ) );
682
+ }
683
+
684
  }
685
 
686
  // freemius end
acf-json/group_5cbd743876860.json CHANGED
@@ -179,6 +179,109 @@
179
  "placement": "top",
180
  "endpoint": 0
181
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
182
  {
183
  "key": "field_5cbd95e83fdd9",
184
  "label": "Background Color",
@@ -210,10 +313,10 @@
210
  "default_value": "#191e23"
211
  },
212
  {
213
- "key": "field_5cbd96f33fddc",
214
- "label": "Text Size",
215
- "name": "acfb_testimonial_text_size",
216
- "type": "range",
217
  "instructions": "",
218
  "required": 0,
219
  "conditional_logic": 0,
@@ -222,18 +325,13 @@
222
  "class": "",
223
  "id": ""
224
  },
225
- "default_value": 18,
226
- "min": "",
227
- "max": 200,
228
- "step": "",
229
- "prepend": "",
230
- "append": "px"
231
  },
232
  {
233
- "key": "field_5cbd967a3fddb",
234
- "label": "Image Size",
235
- "name": "acfb_testimonial_image_size",
236
- "type": "range",
237
  "instructions": "",
238
  "required": 0,
239
  "conditional_logic": 0,
@@ -242,17 +340,12 @@
242
  "class": "",
243
  "id": ""
244
  },
245
- "default_value": 55,
246
- "min": "",
247
- "max": 200,
248
- "step": "",
249
- "prepend": "",
250
- "append": "px"
251
  },
252
  {
253
- "key": "field_5dc42ebadf2d6",
254
- "label": "Image Border Color",
255
- "name": "acfb_testimonial_image_border_color",
256
  "type": "color_picker",
257
  "instructions": "",
258
  "required": 0,
@@ -262,13 +355,13 @@
262
  "class": "",
263
  "id": ""
264
  },
265
- "default_value": "#000000"
266
  },
267
  {
268
- "key": "field_5cbd97143fddd",
269
- "label": "Name Color",
270
- "name": "acfb_testimonial_name_color",
271
- "type": "color_picker",
272
  "instructions": "",
273
  "required": 0,
274
  "conditional_logic": 0,
@@ -277,12 +370,14 @@
277
  "class": "",
278
  "id": ""
279
  },
280
- "default_value": "#191e23"
 
 
281
  },
282
  {
283
- "key": "field_5cbd97423fdde",
284
- "label": "Name Size",
285
- "name": "acfb_testimonial_name_size",
286
  "type": "range",
287
  "instructions": "",
288
  "required": 0,
@@ -292,7 +387,7 @@
292
  "class": "",
293
  "id": ""
294
  },
295
- "default_value": 18,
296
  "min": "",
297
  "max": 200,
298
  "step": "",
@@ -300,10 +395,10 @@
300
  "append": "px"
301
  },
302
  {
303
- "key": "field_5cbd977a3fddf",
304
- "label": "Position Color",
305
- "name": "acfb_testimonial_position_color",
306
- "type": "color_picker",
307
  "instructions": "",
308
  "required": 0,
309
  "conditional_logic": 0,
@@ -312,13 +407,15 @@
312
  "class": "",
313
  "id": ""
314
  },
315
- "default_value": "#191e23"
 
 
316
  },
317
  {
318
- "key": "field_5cbd979b3fde0",
319
- "label": "Position Size",
320
- "name": "acfb_testimonial_position_size",
321
- "type": "range",
322
  "instructions": "",
323
  "required": 0,
324
  "conditional_logic": 0,
@@ -327,12 +424,49 @@
327
  "class": "",
328
  "id": ""
329
  },
330
- "default_value": 14,
331
- "min": "",
332
- "max": 200,
333
- "step": "",
334
- "prepend": "",
335
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
  }
337
  ],
338
  "location": [
@@ -352,5 +486,5 @@
352
  "hide_on_screen": "",
353
  "active": 1,
354
  "description": "",
355
- "modified": 1573209881
356
  }
179
  "placement": "top",
180
  "endpoint": 0
181
  },
182
+ {
183
+ "key": "field_5ea17ead22b20",
184
+ "label": "Typography",
185
+ "name": "",
186
+ "type": "accordion",
187
+ "instructions": "",
188
+ "required": 0,
189
+ "conditional_logic": 0,
190
+ "wrapper": {
191
+ "width": "",
192
+ "class": "",
193
+ "id": ""
194
+ },
195
+ "open": 0,
196
+ "multi_expand": 0,
197
+ "endpoint": 0
198
+ },
199
+ {
200
+ "key": "field_5ea96a10e01f5",
201
+ "label": "Text",
202
+ "name": "acfb_testimonial_text_typo",
203
+ "type": "typography",
204
+ "instructions": "",
205
+ "required": 0,
206
+ "conditional_logic": 0,
207
+ "wrapper": {
208
+ "width": "",
209
+ "class": "",
210
+ "id": ""
211
+ },
212
+ "font_family_enable": 0,
213
+ "font_family": "default",
214
+ "font_size": 18,
215
+ "font_weight": "default",
216
+ "font_transform": "default",
217
+ "font_style": "default",
218
+ "font_decoration": "default",
219
+ "font_line_height": "0.1",
220
+ "font_letter_spacing": 0
221
+ },
222
+ {
223
+ "key": "field_5ea96fa348aed",
224
+ "label": "Name",
225
+ "name": "acfb_testimonial_name_typo",
226
+ "type": "typography",
227
+ "instructions": "",
228
+ "required": 0,
229
+ "conditional_logic": 0,
230
+ "wrapper": {
231
+ "width": "",
232
+ "class": "",
233
+ "id": ""
234
+ },
235
+ "font_family_enable": 0,
236
+ "font_family": "default",
237
+ "font_size": 18,
238
+ "font_weight": "default",
239
+ "font_transform": "default",
240
+ "font_style": "default",
241
+ "font_decoration": "default",
242
+ "font_line_height": "0.1",
243
+ "font_letter_spacing": 0
244
+ },
245
+ {
246
+ "key": "field_5ea9705148aee",
247
+ "label": "Position",
248
+ "name": "acfb_testimonial_position_typo",
249
+ "type": "typography",
250
+ "instructions": "",
251
+ "required": 0,
252
+ "conditional_logic": 0,
253
+ "wrapper": {
254
+ "width": "",
255
+ "class": "",
256
+ "id": ""
257
+ },
258
+ "font_family_enable": 0,
259
+ "font_family": "default",
260
+ "font_size": 14,
261
+ "font_weight": "default",
262
+ "font_transform": "default",
263
+ "font_style": "default",
264
+ "font_decoration": "default",
265
+ "font_line_height": "0.1",
266
+ "font_letter_spacing": 0
267
+ },
268
+ {
269
+ "key": "field_5ea17f175e850",
270
+ "label": "Colors",
271
+ "name": "",
272
+ "type": "accordion",
273
+ "instructions": "",
274
+ "required": 0,
275
+ "conditional_logic": 0,
276
+ "wrapper": {
277
+ "width": "",
278
+ "class": "",
279
+ "id": ""
280
+ },
281
+ "open": 0,
282
+ "multi_expand": 0,
283
+ "endpoint": 0
284
+ },
285
  {
286
  "key": "field_5cbd95e83fdd9",
287
  "label": "Background Color",
313
  "default_value": "#191e23"
314
  },
315
  {
316
+ "key": "field_5dc42ebadf2d6",
317
+ "label": "Image Border Color",
318
+ "name": "acfb_testimonial_image_border_color",
319
+ "type": "color_picker",
320
  "instructions": "",
321
  "required": 0,
322
  "conditional_logic": 0,
325
  "class": "",
326
  "id": ""
327
  },
328
+ "default_value": "#000000"
 
 
 
 
 
329
  },
330
  {
331
+ "key": "field_5cbd97143fddd",
332
+ "label": "Name Color",
333
+ "name": "acfb_testimonial_name_color",
334
+ "type": "color_picker",
335
  "instructions": "",
336
  "required": 0,
337
  "conditional_logic": 0,
340
  "class": "",
341
  "id": ""
342
  },
343
+ "default_value": "#191e23"
 
 
 
 
 
344
  },
345
  {
346
+ "key": "field_5cbd977a3fddf",
347
+ "label": "Position Color",
348
+ "name": "acfb_testimonial_position_color",
349
  "type": "color_picker",
350
  "instructions": "",
351
  "required": 0,
355
  "class": "",
356
  "id": ""
357
  },
358
+ "default_value": "#191e23"
359
  },
360
  {
361
+ "key": "field_5ea17ee15e84f",
362
+ "label": "Sizing",
363
+ "name": "",
364
+ "type": "accordion",
365
  "instructions": "",
366
  "required": 0,
367
  "conditional_logic": 0,
370
  "class": "",
371
  "id": ""
372
  },
373
+ "open": 0,
374
+ "multi_expand": 0,
375
+ "endpoint": 0
376
  },
377
  {
378
+ "key": "field_5cbd967a3fddb",
379
+ "label": "Image Size",
380
+ "name": "acfb_testimonial_image_size",
381
  "type": "range",
382
  "instructions": "",
383
  "required": 0,
387
  "class": "",
388
  "id": ""
389
  },
390
+ "default_value": 55,
391
  "min": "",
392
  "max": 200,
393
  "step": "",
395
  "append": "px"
396
  },
397
  {
398
+ "key": "field_5ea17ec922b21",
399
+ "label": "Spacing",
400
+ "name": "",
401
+ "type": "accordion",
402
  "instructions": "",
403
  "required": 0,
404
  "conditional_logic": 0,
407
  "class": "",
408
  "id": ""
409
  },
410
+ "open": 0,
411
+ "multi_expand": 0,
412
+ "endpoint": 0
413
  },
414
  {
415
+ "key": "field_5eb404359f58c",
416
+ "label": "Margin",
417
+ "name": "acfb_testimonial_margin",
418
+ "type": "margin",
419
  "instructions": "",
420
  "required": 0,
421
  "conditional_logic": 0,
424
  "class": "",
425
  "id": ""
426
  },
427
+ "margin_enable": 0,
428
+ "margin_top": "",
429
+ "margin_right": "",
430
+ "margin_bottom": "",
431
+ "margin_left": ""
432
+ },
433
+ {
434
+ "key": "field_5ea1809513b58",
435
+ "label": "Padding",
436
+ "name": "acfb_testimonial_padding",
437
+ "type": "padding",
438
+ "instructions": "",
439
+ "required": 0,
440
+ "conditional_logic": 0,
441
+ "wrapper": {
442
+ "width": "",
443
+ "class": "",
444
+ "id": ""
445
+ },
446
+ "padding_enable": 0,
447
+ "padding_top": "",
448
+ "padding_right": "",
449
+ "padding_bottom": "",
450
+ "padding_left": ""
451
+ },
452
+ {
453
+ "key": "field_5ead2cbcb3aaa",
454
+ "label": "Inner Padding",
455
+ "name": "acfb_testimonial_inner_padding",
456
+ "type": "padding",
457
+ "instructions": "",
458
+ "required": 0,
459
+ "conditional_logic": 0,
460
+ "wrapper": {
461
+ "width": "",
462
+ "class": "",
463
+ "id": ""
464
+ },
465
+ "padding_enable": 0,
466
+ "padding_top": 50,
467
+ "padding_right": 50,
468
+ "padding_bottom": 50,
469
+ "padding_left": 50
470
  }
471
  ],
472
  "location": [
486
  "hide_on_screen": "",
487
  "active": 1,
488
  "description": "",
489
+ "modified": 1588857071
490
  }
acf-json/group_5cbd9e696a100.json CHANGED
@@ -224,10 +224,10 @@
224
  "endpoint": 0
225
  },
226
  {
227
- "key": "field_5cbdb1729c361",
228
- "label": "Background Color",
229
- "name": "acfb_team_background_color",
230
- "type": "color_picker",
231
  "instructions": "",
232
  "required": 0,
233
  "conditional_logic": 0,
@@ -236,13 +236,15 @@
236
  "class": "",
237
  "id": ""
238
  },
239
- "default_value": "#f3f4f5"
 
 
240
  },
241
  {
242
- "key": "field_5cbdb1ba9c362",
243
- "label": "Image Size",
244
- "name": "acfb_team_image_size",
245
- "type": "range",
246
  "instructions": "",
247
  "required": 0,
248
  "conditional_logic": 0,
@@ -251,18 +253,21 @@
251
  "class": "",
252
  "id": ""
253
  },
254
- "default_value": 150,
255
- "min": "",
256
- "max": 500,
257
- "step": "",
258
- "prepend": "",
259
- "append": "px"
 
 
 
260
  },
261
  {
262
- "key": "field_5dcbeb17af50e",
263
- "label": "Image Radius",
264
- "name": "acfb_team_image_radius",
265
- "type": "range",
266
  "instructions": "",
267
  "required": 0,
268
  "conditional_logic": 0,
@@ -271,12 +276,70 @@
271
  "class": "",
272
  "id": ""
273
  },
274
- "default_value": 100,
275
- "min": "",
276
- "max": "",
277
- "step": "",
278
- "prepend": "",
279
- "append": "%"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
280
  },
281
  {
282
  "key": "field_5cbdb1fb9c363",
@@ -294,10 +357,10 @@
294
  "default_value": "#191e23"
295
  },
296
  {
297
- "key": "field_5cbdb2429c364",
298
- "label": "Name Size",
299
- "name": "acfb_team_name_size",
300
- "type": "range",
301
  "instructions": "",
302
  "required": 0,
303
  "conditional_logic": 0,
@@ -306,17 +369,12 @@
306
  "class": "",
307
  "id": ""
308
  },
309
- "default_value": 25,
310
- "min": "",
311
- "max": 200,
312
- "step": "",
313
- "prepend": "",
314
- "append": "px"
315
  },
316
  {
317
- "key": "field_5cbdb2749c365",
318
- "label": "Position Color",
319
- "name": "acfb_team_position_color",
320
  "type": "color_picker",
321
  "instructions": "",
322
  "required": 0,
@@ -329,9 +387,26 @@
329
  "default_value": "#191e23"
330
  },
331
  {
332
- "key": "field_5cbdb2a39c366",
333
- "label": "Position Size",
334
- "name": "acfb_team_position_size",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
  "type": "range",
336
  "instructions": "",
337
  "required": 0,
@@ -341,18 +416,18 @@
341
  "class": "",
342
  "id": ""
343
  },
344
- "default_value": 18,
345
  "min": "",
346
- "max": 200,
347
  "step": "",
348
  "prepend": "",
349
  "append": "px"
350
  },
351
  {
352
- "key": "field_5cbdb2da9c367",
353
- "label": "Description Color",
354
- "name": "acfb_team_description_color",
355
- "type": "color_picker",
356
  "instructions": "",
357
  "required": 0,
358
  "conditional_logic": 0,
@@ -361,12 +436,88 @@
361
  "class": "",
362
  "id": ""
363
  },
364
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  },
366
  {
367
- "key": "field_5cbdb3069c368",
368
- "label": "Description Size",
369
- "name": "acfb_team_description_size",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
370
  "type": "range",
371
  "instructions": "",
372
  "required": 0,
@@ -376,12 +527,12 @@
376
  "class": "",
377
  "id": ""
378
  },
379
- "default_value": 18,
380
  "min": "",
381
- "max": 200,
382
  "step": "",
383
  "prepend": "",
384
- "append": "px"
385
  }
386
  ],
387
  "location": [
@@ -401,5 +552,5 @@
401
  "hide_on_screen": "",
402
  "active": 1,
403
  "description": "",
404
- "modified": 1573649401
405
  }
224
  "endpoint": 0
225
  },
226
  {
227
+ "key": "field_5ea976cb3c1c4",
228
+ "label": "Typography",
229
+ "name": "",
230
+ "type": "accordion",
231
  "instructions": "",
232
  "required": 0,
233
  "conditional_logic": 0,
236
  "class": "",
237
  "id": ""
238
  },
239
+ "open": 0,
240
+ "multi_expand": 0,
241
+ "endpoint": 0
242
  },
243
  {
244
+ "key": "field_5ea977e480a62",
245
+ "label": "Name",
246
+ "name": "acfb_team_name_typo",
247
+ "type": "typography",
248
  "instructions": "",
249
  "required": 0,
250
  "conditional_logic": 0,
253
  "class": "",
254
  "id": ""
255
  },
256
+ "font_family_enable": 0,
257
+ "font_family": "default",
258
+ "font_size": 25,
259
+ "font_weight": "default",
260
+ "font_transform": "default",
261
+ "font_style": "default",
262
+ "font_decoration": "default",
263
+ "font_line_height": "0.1",
264
+ "font_letter_spacing": 0
265
  },
266
  {
267
+ "key": "field_5ea9780d80a63",
268
+ "label": "Position",
269
+ "name": "acfb_team_position_typo",
270
+ "type": "typography",
271
  "instructions": "",
272
  "required": 0,
273
  "conditional_logic": 0,
276
  "class": "",
277
  "id": ""
278
  },
279
+ "font_family_enable": 0,
280
+ "font_family": "default",
281
+ "font_size": 18,
282
+ "font_weight": "default",
283
+ "font_transform": "default",
284
+ "font_style": "default",
285
+ "font_decoration": "default",
286
+ "font_line_height": "0.1",
287
+ "font_letter_spacing": 0
288
+ },
289
+ {
290
+ "key": "field_5ea9782080a65",
291
+ "label": "Description",
292
+ "name": "acfb_team_description_typo",
293
+ "type": "typography",
294
+ "instructions": "",
295
+ "required": 0,
296
+ "conditional_logic": 0,
297
+ "wrapper": {
298
+ "width": "",
299
+ "class": "",
300
+ "id": ""
301
+ },
302
+ "font_family_enable": 0,
303
+ "font_family": "default",
304
+ "font_size": 18,
305
+ "font_weight": "default",
306
+ "font_transform": "default",
307
+ "font_style": "default",
308
+ "font_decoration": "default",
309
+ "font_line_height": "0.1",
310
+ "font_letter_spacing": 0
311
+ },
312
+ {
313
+ "key": "field_5ea976df3c1c5",
314
+ "label": "Colors",
315
+ "name": "",
316
+ "type": "accordion",
317
+ "instructions": "",
318
+ "required": 0,
319
+ "conditional_logic": 0,
320
+ "wrapper": {
321
+ "width": "",
322
+ "class": "",
323
+ "id": ""
324
+ },
325
+ "open": 0,
326
+ "multi_expand": 0,
327
+ "endpoint": 0
328
+ },
329
+ {
330
+ "key": "field_5cbdb1729c361",
331
+ "label": "Background Color",
332
+ "name": "acfb_team_background_color",
333
+ "type": "color_picker",
334
+ "instructions": "",
335
+ "required": 0,
336
+ "conditional_logic": 0,
337
+ "wrapper": {
338
+ "width": "",
339
+ "class": "",
340
+ "id": ""
341
+ },
342
+ "default_value": "#f3f4f5"
343
  },
344
  {
345
  "key": "field_5cbdb1fb9c363",
357
  "default_value": "#191e23"
358
  },
359
  {
360
+ "key": "field_5cbdb2749c365",
361
+ "label": "Position Color",
362
+ "name": "acfb_team_position_color",
363
+ "type": "color_picker",
364
  "instructions": "",
365
  "required": 0,
366
  "conditional_logic": 0,
369
  "class": "",
370
  "id": ""
371
  },
372
+ "default_value": "#191e23"
 
 
 
 
 
373
  },
374
  {
375
+ "key": "field_5cbdb2da9c367",
376
+ "label": "Description Color",
377
+ "name": "acfb_team_description_color",
378
  "type": "color_picker",
379
  "instructions": "",
380
  "required": 0,
387
  "default_value": "#191e23"
388
  },
389
  {
390
+ "key": "field_5ea976e43c1c6",
391
+ "label": "Sizing",
392
+ "name": "",
393
+ "type": "accordion",
394
+ "instructions": "",
395
+ "required": 0,
396
+ "conditional_logic": 0,
397
+ "wrapper": {
398
+ "width": "",
399
+ "class": "",
400
+ "id": ""
401
+ },
402
+ "open": 0,
403
+ "multi_expand": 0,
404
+ "endpoint": 0
405
+ },
406
+ {
407
+ "key": "field_5cbdb1ba9c362",
408
+ "label": "Image Size",
409
+ "name": "acfb_team_image_size",
410
  "type": "range",
411
  "instructions": "",
412
  "required": 0,
416
  "class": "",
417
  "id": ""
418
  },
419
+ "default_value": 150,
420
  "min": "",
421
+ "max": 500,
422
  "step": "",
423
  "prepend": "",
424
  "append": "px"
425
  },
426
  {
427
+ "key": "field_5ea976eb3c1c7",
428
+ "label": "Spacing",
429
+ "name": "",
430
+ "type": "accordion",
431
  "instructions": "",
432
  "required": 0,
433
  "conditional_logic": 0,
436
  "class": "",
437
  "id": ""
438
  },
439
+ "open": 0,
440
+ "multi_expand": 0,
441
+ "endpoint": 0
442
+ },
443
+ {
444
+ "key": "field_5ea977583c1c9",
445
+ "label": "Margin",
446
+ "name": "acfb_team_margin",
447
+ "type": "margin",
448
+ "instructions": "",
449
+ "required": 0,
450
+ "conditional_logic": 0,
451
+ "wrapper": {
452
+ "width": "",
453
+ "class": "",
454
+ "id": ""
455
+ },
456
+ "margin_enable": 0,
457
+ "margin_top": "",
458
+ "margin_right": "",
459
+ "margin_bottom": "",
460
+ "margin_left": ""
461
  },
462
  {
463
+ "key": "field_5ea9777c3c1ca",
464
+ "label": "Padding",
465
+ "name": "acfb_team_padding",
466
+ "type": "padding",
467
+ "instructions": "",
468
+ "required": 0,
469
+ "conditional_logic": 0,
470
+ "wrapper": {
471
+ "width": "",
472
+ "class": "",
473
+ "id": ""
474
+ },
475
+ "padding_enable": 0,
476
+ "padding_top": "",
477
+ "padding_right": "",
478
+ "padding_bottom": "",
479
+ "padding_left": ""
480
+ },
481
+ {
482
+ "key": "field_5ead2f7747954",
483
+ "label": "Inner Padding",
484
+ "name": "acfb_team_inner_padding",
485
+ "type": "padding",
486
+ "instructions": "",
487
+ "required": 0,
488
+ "conditional_logic": 0,
489
+ "wrapper": {
490
+ "width": "",
491
+ "class": "",
492
+ "id": ""
493
+ },
494
+ "padding_enable": 0,
495
+ "padding_top": 60,
496
+ "padding_right": 35,
497
+ "padding_bottom": 60,
498
+ "padding_left": 35
499
+ },
500
+ {
501
+ "key": "field_5ea977383c1c8",
502
+ "label": "Other Setting",
503
+ "name": "",
504
+ "type": "accordion",
505
+ "instructions": "",
506
+ "required": 0,
507
+ "conditional_logic": 0,
508
+ "wrapper": {
509
+ "width": "",
510
+ "class": "",
511
+ "id": ""
512
+ },
513
+ "open": 0,
514
+ "multi_expand": 0,
515
+ "endpoint": 0
516
+ },
517
+ {
518
+ "key": "field_5dcbeb17af50e",
519
+ "label": "Image Radius",
520
+ "name": "acfb_team_image_radius",
521
  "type": "range",
522
  "instructions": "",
523
  "required": 0,
527
  "class": "",
528
  "id": ""
529
  },
530
+ "default_value": 100,
531
  "min": "",
532
+ "max": "",
533
  "step": "",
534
  "prepend": "",
535
+ "append": "%"
536
  }
537
  ],
538
  "location": [
552
  "hide_on_screen": "",
553
  "active": 1,
554
  "description": "",
555
+ "modified": 1588408395
556
  }
acf-json/group_5cbdba3909312.json CHANGED
@@ -174,10 +174,10 @@
174
  "endpoint": 0
175
  },
176
  {
177
- "key": "field_5cbdc740d7da5",
178
- "label": "Text Size",
179
- "name": "acfb_multibutton_text_size",
180
- "type": "range",
181
  "instructions": "",
182
  "required": 0,
183
  "conditional_logic": 0,
@@ -186,12 +186,123 @@
186
  "class": "",
187
  "id": ""
188
  },
189
- "default_value": 16,
190
- "min": "",
191
- "max": "",
192
- "step": "",
193
- "prepend": "",
194
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
195
  },
196
  {
197
  "key": "field_5dc54face28d5",
@@ -251,5 +362,5 @@
251
  "hide_on_screen": "",
252
  "active": 1,
253
  "description": "",
254
- "modified": 1575887631
255
  }
174
  "endpoint": 0
175
  },
176
  {
177
+ "key": "field_5eaa9d41c1bcb",
178
+ "label": "Typography",
179
+ "name": "",
180
+ "type": "accordion",
181
  "instructions": "",
182
  "required": 0,
183
  "conditional_logic": 0,
186
  "class": "",
187
  "id": ""
188
  },
189
+ "open": 0,
190
+ "multi_expand": 0,
191
+ "endpoint": 0
192
+ },
193
+ {
194
+ "key": "field_5eaa9d55c1bcd",
195
+ "label": "Text",
196
+ "name": "acfb_multibutton_text_typo",
197
+ "type": "typography",
198
+ "instructions": "",
199
+ "required": 0,
200
+ "conditional_logic": 0,
201
+ "wrapper": {
202
+ "width": "",
203
+ "class": "",
204
+ "id": ""
205
+ },
206
+ "font_family_enable": 0,
207
+ "font_family": "default",
208
+ "font_size": 16,
209
+ "font_weight": "default",
210
+ "font_transform": "default",
211
+ "font_style": "default",
212
+ "font_decoration": "default",
213
+ "font_line_height": "0.1",
214
+ "font_letter_spacing": 0
215
+ },
216
+ {
217
+ "key": "field_5eaa9d88c225d",
218
+ "label": "Spacing",
219
+ "name": "",
220
+ "type": "accordion",
221
+ "instructions": "",
222
+ "required": 0,
223
+ "conditional_logic": 0,
224
+ "wrapper": {
225
+ "width": "",
226
+ "class": "",
227
+ "id": ""
228
+ },
229
+ "open": 0,
230
+ "multi_expand": 0,
231
+ "endpoint": 0
232
+ },
233
+ {
234
+ "key": "field_5eaa9d90c225e",
235
+ "label": "Margin",
236
+ "name": "acfb_multibutton_margin",
237
+ "type": "margin",
238
+ "instructions": "",
239
+ "required": 0,
240
+ "conditional_logic": 0,
241
+ "wrapper": {
242
+ "width": "",
243
+ "class": "",
244
+ "id": ""
245
+ },
246
+ "margin_enable": 0,
247
+ "margin_top": "",
248
+ "margin_right": "",
249
+ "margin_bottom": "",
250
+ "margin_left": ""
251
+ },
252
+ {
253
+ "key": "field_5eaa9da4c225f",
254
+ "label": "Padding",
255
+ "name": "acfb_multibutton_padding",
256
+ "type": "padding",
257
+ "instructions": "",
258
+ "required": 0,
259
+ "conditional_logic": 0,
260
+ "wrapper": {
261
+ "width": "",
262
+ "class": "",
263
+ "id": ""
264
+ },
265
+ "padding_enable": 0,
266
+ "padding_top": "",
267
+ "padding_right": "",
268
+ "padding_bottom": "",
269
+ "padding_left": ""
270
+ },
271
+ {
272
+ "key": "field_5eaa9dc1c2260",
273
+ "label": "Button Padding",
274
+ "name": "acfb_multibutton_button_padding",
275
+ "type": "padding",
276
+ "instructions": "",
277
+ "required": 0,
278
+ "conditional_logic": 0,
279
+ "wrapper": {
280
+ "width": "",
281
+ "class": "",
282
+ "id": ""
283
+ },
284
+ "padding_enable": 0,
285
+ "padding_top": 15,
286
+ "padding_right": 20,
287
+ "padding_bottom": 15,
288
+ "padding_left": 20
289
+ },
290
+ {
291
+ "key": "field_5eaa9d4ac1bcc",
292
+ "label": "Other Setting",
293
+ "name": "",
294
+ "type": "accordion",
295
+ "instructions": "",
296
+ "required": 0,
297
+ "conditional_logic": 0,
298
+ "wrapper": {
299
+ "width": "",
300
+ "class": "",
301
+ "id": ""
302
+ },
303
+ "open": 0,
304
+ "multi_expand": 0,
305
+ "endpoint": 0
306
  },
307
  {
308
  "key": "field_5dc54face28d5",
362
  "hide_on_screen": "",
363
  "active": 1,
364
  "description": "",
365
+ "modified": 1588239856
366
  }
acf-json/group_5cbdd1a0caf81.json CHANGED
@@ -228,10 +228,10 @@
228
  "endpoint": 0
229
  },
230
  {
231
- "key": "field_5cbedec77e229",
232
- "label": "Background Color",
233
- "name": "acfb_pricingbox_background_color",
234
- "type": "color_picker",
235
  "instructions": "",
236
  "required": 0,
237
  "conditional_logic": 0,
@@ -240,13 +240,15 @@
240
  "class": "",
241
  "id": ""
242
  },
243
- "default_value": "#f3f4f5"
 
 
244
  },
245
  {
246
- "key": "field_5cbedef97e22a",
247
- "label": "Image Size",
248
- "name": "acfb_pricingbox_image_size",
249
- "type": "range",
250
  "instructions": "",
251
  "required": 0,
252
  "conditional_logic": 0,
@@ -255,18 +257,21 @@
255
  "class": "",
256
  "id": ""
257
  },
258
- "default_value": 30,
259
- "min": "",
260
- "max": "",
261
- "step": "",
262
- "prepend": "",
263
- "append": "%"
 
 
 
264
  },
265
  {
266
- "key": "field_5cbedf427e22b",
267
- "label": "Title Color",
268
- "name": "acfb_pricingbox_title_color",
269
- "type": "color_picker",
270
  "instructions": "",
271
  "required": 0,
272
  "conditional_logic": 0,
@@ -275,13 +280,21 @@
275
  "class": "",
276
  "id": ""
277
  },
278
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
279
  },
280
  {
281
- "key": "field_5cbedf607e22c",
282
- "label": "Title Size",
283
- "name": "acfb_pricingbox_title_size",
284
- "type": "range",
285
  "instructions": "",
286
  "required": 0,
287
  "conditional_logic": 0,
@@ -290,18 +303,21 @@
290
  "class": "",
291
  "id": ""
292
  },
293
- "default_value": 32,
294
- "min": "",
295
- "max": 200,
296
- "step": "",
297
- "prepend": "",
298
- "append": "px"
 
 
 
299
  },
300
  {
301
- "key": "field_5cbedf8d7e22d",
302
- "label": "Prefix Color",
303
- "name": "acfb_pricingbox_prefix_color",
304
- "type": "color_picker",
305
  "instructions": "",
306
  "required": 0,
307
  "conditional_logic": 0,
@@ -310,13 +326,21 @@
310
  "class": "",
311
  "id": ""
312
  },
313
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
314
  },
315
  {
316
- "key": "field_5cbedfc07e22e",
317
- "label": "Prefix Size",
318
- "name": "acfb_pricingbox_prefix_size",
319
- "type": "range",
320
  "instructions": "",
321
  "required": 0,
322
  "conditional_logic": 0,
@@ -325,17 +349,83 @@
325
  "class": "",
326
  "id": ""
327
  },
328
- "default_value": 22,
329
- "min": "",
330
- "max": "",
331
- "step": "",
332
- "prepend": "",
333
- "append": "px"
 
 
 
334
  },
335
  {
336
- "key": "field_5cbee0017e22f",
337
- "label": "Price Color",
338
- "name": "acfb_pricingbox_price_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  "type": "color_picker",
340
  "instructions": "",
341
  "required": 0,
@@ -345,13 +435,13 @@
345
  "class": "",
346
  "id": ""
347
  },
348
- "default_value": "#191e23"
349
  },
350
  {
351
- "key": "field_5cbee0227e230",
352
- "label": "Price Size",
353
- "name": "acfb_pricingbox_price_size",
354
- "type": "range",
355
  "instructions": "",
356
  "required": 0,
357
  "conditional_logic": 0,
@@ -360,17 +450,12 @@
360
  "class": "",
361
  "id": ""
362
  },
363
- "default_value": 65,
364
- "min": "",
365
- "max": 200,
366
- "step": "",
367
- "prepend": "",
368
- "append": "px"
369
  },
370
  {
371
- "key": "field_5cbee05a7e231",
372
- "label": "Suffix Color",
373
- "name": "acfb_pricingbox_suffix_color",
374
  "type": "color_picker",
375
  "instructions": "",
376
  "required": 0,
@@ -383,10 +468,10 @@
383
  "default_value": "#191e23"
384
  },
385
  {
386
- "key": "field_5cbee06f7e232",
387
- "label": "Suffix Size",
388
- "name": "acfb_pricingbox_suffix_size",
389
- "type": "range",
390
  "instructions": "",
391
  "required": 0,
392
  "conditional_logic": 0,
@@ -395,17 +480,12 @@
395
  "class": "",
396
  "id": ""
397
  },
398
- "default_value": 28,
399
- "min": "",
400
- "max": "",
401
- "step": "",
402
- "prepend": "",
403
- "append": "px"
404
  },
405
  {
406
- "key": "field_5cbee14952a42",
407
- "label": "Sub Text Color",
408
- "name": "acfb_pricingbox_subtext_color",
409
  "type": "color_picker",
410
  "instructions": "",
411
  "required": 0,
@@ -415,13 +495,13 @@
415
  "class": "",
416
  "id": ""
417
  },
418
- "default_value": "rgba(25, 30, 35, 0.3)"
419
  },
420
  {
421
- "key": "field_5cbee16d52a43",
422
- "label": "Sub Text Size",
423
- "name": "acfb_pricingbox_subtext_size",
424
- "type": "range",
425
  "instructions": "",
426
  "required": 0,
427
  "conditional_logic": 0,
@@ -430,12 +510,7 @@
430
  "class": "",
431
  "id": ""
432
  },
433
- "default_value": 14,
434
- "min": "",
435
- "max": "",
436
- "step": "",
437
- "prepend": "",
438
- "append": "px"
439
  },
440
  {
441
  "key": "field_5cbee1a752a44",
@@ -498,10 +573,10 @@
498
  "default_value": "#191e23"
499
  },
500
  {
501
- "key": "field_5cbee1e452a45",
502
- "label": "Button Size",
503
- "name": "acfb_pricingbox_button_size",
504
- "type": "range",
505
  "instructions": "",
506
  "required": 0,
507
  "conditional_logic": 0,
@@ -510,18 +585,13 @@
510
  "class": "",
511
  "id": ""
512
  },
513
- "default_value": 19,
514
- "min": "",
515
- "max": "",
516
- "step": "",
517
- "prepend": "",
518
- "append": "px"
519
  },
520
  {
521
- "key": "field_5cbee2f852a4a",
522
- "label": "Description Color",
523
- "name": "acfb_pricingbox_description_color",
524
- "type": "color_picker",
525
  "instructions": "",
526
  "required": 0,
527
  "conditional_logic": 0,
@@ -530,12 +600,14 @@
530
  "class": "",
531
  "id": ""
532
  },
533
- "default_value": "#191e23"
 
 
534
  },
535
  {
536
- "key": "field_5cbee31552a4b",
537
- "label": "Description Size",
538
- "name": "acfb_pricingbox_description_size",
539
  "type": "range",
540
  "instructions": "",
541
  "required": 0,
@@ -545,12 +617,105 @@
545
  "class": "",
546
  "id": ""
547
  },
548
- "default_value": 18,
549
  "min": "",
550
  "max": "",
551
  "step": "",
552
  "prepend": "",
553
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  }
555
  ],
556
  "location": [
@@ -570,5 +735,5 @@
570
  "hide_on_screen": "",
571
  "active": 1,
572
  "description": "",
573
- "modified": 1573210941
574
  }
228
  "endpoint": 0
229
  },
230
  {
231
+ "key": "field_5eaa89b79c384",
232
+ "label": "Typography",
233
+ "name": "",
234
+ "type": "accordion",
235
  "instructions": "",
236
  "required": 0,
237
  "conditional_logic": 0,
240
  "class": "",
241
  "id": ""
242
  },
243
+ "open": 0,
244
+ "multi_expand": 0,
245
+ "endpoint": 0
246
  },
247
  {
248
+ "key": "field_5eaa8ae29c38c",
249
+ "label": "Title",
250
+ "name": "acfb_pricingbox_title_typo",
251
+ "type": "typography",
252
  "instructions": "",
253
  "required": 0,
254
  "conditional_logic": 0,
257
  "class": "",
258
  "id": ""
259
  },
260
+ "font_family_enable": 0,
261
+ "font_family": "default",
262
+ "font_size": 32,
263
+ "font_weight": 700,
264
+ "font_transform": "default",
265
+ "font_style": "default",
266
+ "font_decoration": "default",
267
+ "font_line_height": "0.1",
268
+ "font_letter_spacing": 0
269
  },
270
  {
271
+ "key": "field_5eaa8aff9c38d",
272
+ "label": "Prefix",
273
+ "name": "acfb_pricingbox_prefix_typo",
274
+ "type": "typography",
275
  "instructions": "",
276
  "required": 0,
277
  "conditional_logic": 0,
280
  "class": "",
281
  "id": ""
282
  },
283
+ "font_family_enable": 0,
284
+ "font_family": "default",
285
+ "font_size": 22,
286
+ "font_weight": "default",
287
+ "font_transform": "default",
288
+ "font_style": "default",
289
+ "font_decoration": "default",
290
+ "font_line_height": "0.1",
291
+ "font_letter_spacing": 0
292
  },
293
  {
294
+ "key": "field_5eaa8b139c38e",
295
+ "label": "Price",
296
+ "name": "acfb_pricingbox_price_typo",
297
+ "type": "typography",
298
  "instructions": "",
299
  "required": 0,
300
  "conditional_logic": 0,
303
  "class": "",
304
  "id": ""
305
  },
306
+ "font_family_enable": 0,
307
+ "font_family": "default",
308
+ "font_size": 65,
309
+ "font_weight": "default",
310
+ "font_transform": "default",
311
+ "font_style": "default",
312
+ "font_decoration": "default",
313
+ "font_line_height": "0.1",
314
+ "font_letter_spacing": 0
315
  },
316
  {
317
+ "key": "field_5eaa8b279c38f",
318
+ "label": "Suffix",
319
+ "name": "acfb_pricingbox_suffix_typo",
320
+ "type": "typography",
321
  "instructions": "",
322
  "required": 0,
323
  "conditional_logic": 0,
326
  "class": "",
327
  "id": ""
328
  },
329
+ "font_family_enable": 0,
330
+ "font_family": "default",
331
+ "font_size": 28,
332
+ "font_weight": "default",
333
+ "font_transform": "default",
334
+ "font_style": "default",
335
+ "font_decoration": "default",
336
+ "font_line_height": "0.1",
337
+ "font_letter_spacing": 0
338
  },
339
  {
340
+ "key": "field_5eaa8b499c391",
341
+ "label": "Sub Text",
342
+ "name": "acfb_pricingbox_subtext_typo",
343
+ "type": "typography",
344
  "instructions": "",
345
  "required": 0,
346
  "conditional_logic": 0,
349
  "class": "",
350
  "id": ""
351
  },
352
+ "font_family_enable": 0,
353
+ "font_family": "default",
354
+ "font_size": 14,
355
+ "font_weight": "default",
356
+ "font_transform": "default",
357
+ "font_style": "default",
358
+ "font_decoration": "default",
359
+ "font_line_height": "0.1",
360
+ "font_letter_spacing": 0
361
  },
362
  {
363
+ "key": "field_5eaa8b689c393",
364
+ "label": "Description",
365
+ "name": "acfb_pricingbox_description_typo",
366
+ "type": "typography",
367
+ "instructions": "",
368
+ "required": 0,
369
+ "conditional_logic": 0,
370
+ "wrapper": {
371
+ "width": "",
372
+ "class": "",
373
+ "id": ""
374
+ },
375
+ "font_family_enable": 0,
376
+ "font_family": "default",
377
+ "font_size": 18,
378
+ "font_weight": "default",
379
+ "font_transform": "default",
380
+ "font_style": "default",
381
+ "font_decoration": "default",
382
+ "font_line_height": "0.1",
383
+ "font_letter_spacing": 0
384
+ },
385
+ {
386
+ "key": "field_5eaa8b489c390",
387
+ "label": "Button",
388
+ "name": "acfb_pricingbox_button_typo",
389
+ "type": "typography",
390
+ "instructions": "",
391
+ "required": 0,
392
+ "conditional_logic": 0,
393
+ "wrapper": {
394
+ "width": "",
395
+ "class": "",
396
+ "id": ""
397
+ },
398
+ "font_family_enable": 0,
399
+ "font_family": "default",
400
+ "font_size": 19,
401
+ "font_weight": "default",
402
+ "font_transform": "default",
403
+ "font_style": "default",
404
+ "font_decoration": "default",
405
+ "font_line_height": "0.1",
406
+ "font_letter_spacing": 0
407
+ },
408
+ {
409
+ "key": "field_5eaa89c39c385",
410
+ "label": "Colors",
411
+ "name": "",
412
+ "type": "accordion",
413
+ "instructions": "",
414
+ "required": 0,
415
+ "conditional_logic": 0,
416
+ "wrapper": {
417
+ "width": "",
418
+ "class": "",
419
+ "id": ""
420
+ },
421
+ "open": 0,
422
+ "multi_expand": 0,
423
+ "endpoint": 0
424
+ },
425
+ {
426
+ "key": "field_5cbedec77e229",
427
+ "label": "Background Color",
428
+ "name": "acfb_pricingbox_background_color",
429
  "type": "color_picker",
430
  "instructions": "",
431
  "required": 0,
435
  "class": "",
436
  "id": ""
437
  },
438
+ "default_value": "#f3f4f5"
439
  },
440
  {
441
+ "key": "field_5cbedf427e22b",
442
+ "label": "Title Color",
443
+ "name": "acfb_pricingbox_title_color",
444
+ "type": "color_picker",
445
  "instructions": "",
446
  "required": 0,
447
  "conditional_logic": 0,
450
  "class": "",
451
  "id": ""
452
  },
453
+ "default_value": "#191e23"
 
 
 
 
 
454
  },
455
  {
456
+ "key": "field_5cbedf8d7e22d",
457
+ "label": "Prefix Color",
458
+ "name": "acfb_pricingbox_prefix_color",
459
  "type": "color_picker",
460
  "instructions": "",
461
  "required": 0,
468
  "default_value": "#191e23"
469
  },
470
  {
471
+ "key": "field_5cbee0017e22f",
472
+ "label": "Price Color",
473
+ "name": "acfb_pricingbox_price_color",
474
+ "type": "color_picker",
475
  "instructions": "",
476
  "required": 0,
477
  "conditional_logic": 0,
480
  "class": "",
481
  "id": ""
482
  },
483
+ "default_value": "#191e23"
 
 
 
 
 
484
  },
485
  {
486
+ "key": "field_5cbee05a7e231",
487
+ "label": "Suffix Color",
488
+ "name": "acfb_pricingbox_suffix_color",
489
  "type": "color_picker",
490
  "instructions": "",
491
  "required": 0,
495
  "class": "",
496
  "id": ""
497
  },
498
+ "default_value": "#191e23"
499
  },
500
  {
501
+ "key": "field_5cbee14952a42",
502
+ "label": "Sub Text Color",
503
+ "name": "acfb_pricingbox_subtext_color",
504
+ "type": "color_picker",
505
  "instructions": "",
506
  "required": 0,
507
  "conditional_logic": 0,
510
  "class": "",
511
  "id": ""
512
  },
513
+ "default_value": "rgba(25, 30, 35, 0.3)"
 
 
 
 
 
514
  },
515
  {
516
  "key": "field_5cbee1a752a44",
573
  "default_value": "#191e23"
574
  },
575
  {
576
+ "key": "field_5cbee2f852a4a",
577
+ "label": "Description Color",
578
+ "name": "acfb_pricingbox_description_color",
579
+ "type": "color_picker",
580
  "instructions": "",
581
  "required": 0,
582
  "conditional_logic": 0,
585
  "class": "",
586
  "id": ""
587
  },
588
+ "default_value": "#191e23"
 
 
 
 
 
589
  },
590
  {
591
+ "key": "field_5eaa89c99c386",
592
+ "label": "Sizing",
593
+ "name": "",
594
+ "type": "accordion",
595
  "instructions": "",
596
  "required": 0,
597
  "conditional_logic": 0,
600
  "class": "",
601
  "id": ""
602
  },
603
+ "open": 0,
604
+ "multi_expand": 0,
605
+ "endpoint": 0
606
  },
607
  {
608
+ "key": "field_5cbedef97e22a",
609
+ "label": "Image Size",
610
+ "name": "acfb_pricingbox_image_size",
611
  "type": "range",
612
  "instructions": "",
613
  "required": 0,
617
  "class": "",
618
  "id": ""
619
  },
620
+ "default_value": 30,
621
  "min": "",
622
  "max": "",
623
  "step": "",
624
  "prepend": "",
625
+ "append": "%"
626
+ },
627
+ {
628
+ "key": "field_5eaa89cf9c387",
629
+ "label": "Spacing",
630
+ "name": "",
631
+ "type": "accordion",
632
+ "instructions": "",
633
+ "required": 0,
634
+ "conditional_logic": 0,
635
+ "wrapper": {
636
+ "width": "",
637
+ "class": "",
638
+ "id": ""
639
+ },
640
+ "open": 0,
641
+ "multi_expand": 0,
642
+ "endpoint": 0
643
+ },
644
+ {
645
+ "key": "field_5eaa8a519c388",
646
+ "label": "Margin",
647
+ "name": "acfb_pricingbox_margin",
648
+ "type": "margin",
649
+ "instructions": "",
650
+ "required": 0,
651
+ "conditional_logic": 0,
652
+ "wrapper": {
653
+ "width": "",
654
+ "class": "",
655
+ "id": ""
656
+ },
657
+ "margin_enable": 0,
658
+ "margin_top": "",
659
+ "margin_right": "",
660
+ "margin_bottom": "",
661
+ "margin_left": ""
662
+ },
663
+ {
664
+ "key": "field_5eaa8a7a9c389",
665
+ "label": "Padding",
666
+ "name": "acfb_pricingbox_padding",
667
+ "type": "padding",
668
+ "instructions": "",
669
+ "required": 0,
670
+ "conditional_logic": 0,
671
+ "wrapper": {
672
+ "width": "",
673
+ "class": "",
674
+ "id": ""
675
+ },
676
+ "padding_enable": 0,
677
+ "padding_top": "",
678
+ "padding_right": "",
679
+ "padding_bottom": "",
680
+ "padding_left": ""
681
+ },
682
+ {
683
+ "key": "field_5eaa8aa89c38a",
684
+ "label": "Inner Padding",
685
+ "name": "acfb_pricingbox_inner_padding",
686
+ "type": "padding",
687
+ "instructions": "",
688
+ "required": 0,
689
+ "conditional_logic": 0,
690
+ "wrapper": {
691
+ "width": "",
692
+ "class": "",
693
+ "id": ""
694
+ },
695
+ "padding_enable": 0,
696
+ "padding_top": 60,
697
+ "padding_right": 35,
698
+ "padding_bottom": 60,
699
+ "padding_left": 35
700
+ },
701
+ {
702
+ "key": "field_5eaa8fea462c3",
703
+ "label": "Button Padding",
704
+ "name": "acfb_pricingbox_inner_button_padding",
705
+ "type": "padding",
706
+ "instructions": "",
707
+ "required": 0,
708
+ "conditional_logic": 0,
709
+ "wrapper": {
710
+ "width": "",
711
+ "class": "",
712
+ "id": ""
713
+ },
714
+ "padding_enable": 0,
715
+ "padding_top": 10,
716
+ "padding_right": 25,
717
+ "padding_bottom": 10,
718
+ "padding_left": 25
719
  }
720
  ],
721
  "location": [
735
  "hide_on_screen": "",
736
  "active": 1,
737
  "description": "",
738
+ "modified": 1588325824
739
  }
acf-json/group_5cbef16c004be.json CHANGED
@@ -181,6 +181,39 @@
181
  "return_format": "array",
182
  "preview_size": "medium"
183
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  {
185
  "key": "field_5cc85dee4e368",
186
  "label": "Width",
@@ -222,10 +255,10 @@
222
  "append": "px"
223
  },
224
  {
225
- "key": "field_5cc85e1b4e369",
226
- "label": "Gutter Space",
227
- "name": "acfb_photo_collage_layout_gutter_space",
228
- "type": "range",
229
  "instructions": "",
230
  "required": 0,
231
  "conditional_logic": 0,
@@ -234,18 +267,53 @@
234
  "class": "",
235
  "id": ""
236
  },
237
- "default_value": 10,
238
- "min": "",
239
- "max": "",
240
- "step": "",
241
- "prepend": "",
242
- "append": "px"
243
  },
244
  {
245
- "key": "field_5cda7f2de757c",
246
- "label": "Design",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
247
  "name": "",
248
- "type": "tab",
249
  "instructions": "",
250
  "required": 0,
251
  "conditional_logic": 0,
@@ -254,14 +322,15 @@
254
  "class": "",
255
  "id": ""
256
  },
257
- "placement": "top",
 
258
  "endpoint": 0
259
  },
260
  {
261
- "key": "field_5cdfc746754f7",
262
- "label": "No options available here yet.",
263
- "name": "",
264
- "type": "message",
265
  "instructions": "",
266
  "required": 0,
267
  "conditional_logic": 0,
@@ -270,9 +339,12 @@
270
  "class": "",
271
  "id": ""
272
  },
273
- "message": "",
274
- "new_lines": "wpautop",
275
- "esc_html": 0
 
 
 
276
  }
277
  ],
278
  "location": [
@@ -292,6 +364,5 @@
292
  "hide_on_screen": "",
293
  "active": 1,
294
  "description": "",
295
- "private": true,
296
- "modified": 1568298189
297
  }
181
  "return_format": "array",
182
  "preview_size": "medium"
183
  },
184
+ {
185
+ "key": "field_5cda7f2de757c",
186
+ "label": "Design",
187
+ "name": "",
188
+ "type": "tab",
189
+ "instructions": "",
190
+ "required": 0,
191
+ "conditional_logic": 0,
192
+ "wrapper": {
193
+ "width": "",
194
+ "class": "",
195
+ "id": ""
196
+ },
197
+ "placement": "top",
198
+ "endpoint": 0
199
+ },
200
+ {
201
+ "key": "field_5eaa9ad6c8be6",
202
+ "label": "Sizing",
203
+ "name": "",
204
+ "type": "accordion",
205
+ "instructions": "",
206
+ "required": 0,
207
+ "conditional_logic": 0,
208
+ "wrapper": {
209
+ "width": "",
210
+ "class": "",
211
+ "id": ""
212
+ },
213
+ "open": 0,
214
+ "multi_expand": 0,
215
+ "endpoint": 0
216
+ },
217
  {
218
  "key": "field_5cc85dee4e368",
219
  "label": "Width",
255
  "append": "px"
256
  },
257
  {
258
+ "key": "field_5eaa9adec8be7",
259
+ "label": "Spacing",
260
+ "name": "",
261
+ "type": "accordion",
262
  "instructions": "",
263
  "required": 0,
264
  "conditional_logic": 0,
267
  "class": "",
268
  "id": ""
269
  },
270
+ "open": 0,
271
+ "multi_expand": 0,
272
+ "endpoint": 0
 
 
 
273
  },
274
  {
275
+ "key": "field_5eaa9b08c8be8",
276
+ "label": "Margin",
277
+ "name": "acfb_photo_collage_margin",
278
+ "type": "margin",
279
+ "instructions": "",
280
+ "required": 0,
281
+ "conditional_logic": 0,
282
+ "wrapper": {
283
+ "width": "",
284
+ "class": "",
285
+ "id": ""
286
+ },
287
+ "margin_enable": 0,
288
+ "margin_top": "",
289
+ "margin_right": "",
290
+ "margin_bottom": "",
291
+ "margin_left": ""
292
+ },
293
+ {
294
+ "key": "field_5eaa9b15c8be9",
295
+ "label": "Padding",
296
+ "name": "acfb_photo_collage_padding",
297
+ "type": "padding",
298
+ "instructions": "",
299
+ "required": 0,
300
+ "conditional_logic": 0,
301
+ "wrapper": {
302
+ "width": "",
303
+ "class": "",
304
+ "id": ""
305
+ },
306
+ "padding_enable": 0,
307
+ "padding_top": "",
308
+ "padding_right": "",
309
+ "padding_bottom": "",
310
+ "padding_left": ""
311
+ },
312
+ {
313
+ "key": "field_5eaa9b3bc8bea",
314
+ "label": "Other Setting",
315
  "name": "",
316
+ "type": "accordion",
317
  "instructions": "",
318
  "required": 0,
319
  "conditional_logic": 0,
322
  "class": "",
323
  "id": ""
324
  },
325
+ "open": 0,
326
+ "multi_expand": 0,
327
  "endpoint": 0
328
  },
329
  {
330
+ "key": "field_5cc85e1b4e369",
331
+ "label": "Gutter Space",
332
+ "name": "acfb_photo_collage_layout_gutter_space",
333
+ "type": "range",
334
  "instructions": "",
335
  "required": 0,
336
  "conditional_logic": 0,
339
  "class": "",
340
  "id": ""
341
  },
342
+ "default_value": 10,
343
+ "min": "",
344
+ "max": "",
345
+ "step": "",
346
+ "prepend": "",
347
+ "append": "px"
348
  }
349
  ],
350
  "location": [
364
  "hide_on_screen": "",
365
  "active": 1,
366
  "description": "",
367
+ "modified": 1588239195
 
368
  }
acf-json/group_5cc04e691b1a8.json CHANGED
@@ -97,10 +97,10 @@
97
  "endpoint": 0
98
  },
99
  {
100
- "key": "field_5cc3207d3a214",
101
- "label": "Text Color",
102
- "name": "acfb_rating_before_text_color",
103
- "type": "color_picker",
104
  "instructions": "",
105
  "required": 0,
106
  "conditional_logic": 0,
@@ -109,13 +109,15 @@
109
  "class": "",
110
  "id": ""
111
  },
112
- "default_value": "#191e23"
 
 
113
  },
114
  {
115
- "key": "field_5cc3203d3a213",
116
- "label": "Text Size",
117
- "name": "acfb_rating_before_text_size",
118
- "type": "range",
119
  "instructions": "",
120
  "required": 0,
121
  "conditional_logic": 0,
@@ -124,18 +126,21 @@
124
  "class": "",
125
  "id": ""
126
  },
127
- "default_value": 18,
128
- "min": "",
129
- "max": "",
130
- "step": "",
131
- "prepend": "",
132
- "append": "px"
 
 
 
133
  },
134
  {
135
- "key": "field_5cc3227d434b2",
136
- "label": "Text Gap",
137
- "name": "acfb_rating_before_text_gap",
138
- "type": "range",
139
  "instructions": "",
140
  "required": 0,
141
  "conditional_logic": 0,
@@ -144,12 +149,24 @@
144
  "class": "",
145
  "id": ""
146
  },
147
- "default_value": 5,
148
- "min": "",
149
- "max": 40,
150
- "step": "",
151
- "prepend": "",
152
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
153
  },
154
  {
155
  "key": "field_5cc313b63cf21",
@@ -181,6 +198,23 @@
181
  },
182
  "default_value": "#f3f4f5"
183
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  {
185
  "key": "field_5cc312a89b1c0",
186
  "label": "Star Icon Size",
@@ -200,6 +234,98 @@
200
  "step": "",
201
  "prepend": "",
202
  "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  }
204
  ],
205
  "location": [
@@ -219,5 +345,5 @@
219
  "hide_on_screen": "",
220
  "active": 1,
221
  "description": "",
222
- "modified": 1573216727
223
  }
97
  "endpoint": 0
98
  },
99
  {
100
+ "key": "field_5ea97efb55ab7",
101
+ "label": "Typography",
102
+ "name": "",
103
+ "type": "accordion",
104
  "instructions": "",
105
  "required": 0,
106
  "conditional_logic": 0,
109
  "class": "",
110
  "id": ""
111
  },
112
+ "open": 0,
113
+ "multi_expand": 0,
114
+ "endpoint": 0
115
  },
116
  {
117
+ "key": "field_5ea97f3f55abb",
118
+ "label": "Text",
119
+ "name": "acfb_rating_before_text_typo",
120
+ "type": "typography",
121
  "instructions": "",
122
  "required": 0,
123
  "conditional_logic": 0,
126
  "class": "",
127
  "id": ""
128
  },
129
+ "font_family_enable": 0,
130
+ "font_family": "default",
131
+ "font_size": 18,
132
+ "font_weight": "default",
133
+ "font_transform": "default",
134
+ "font_style": "default",
135
+ "font_decoration": "default",
136
+ "font_line_height": "0.1",
137
+ "font_letter_spacing": 0
138
  },
139
  {
140
+ "key": "field_5ea97f0155ab8",
141
+ "label": "Colors",
142
+ "name": "",
143
+ "type": "accordion",
144
  "instructions": "",
145
  "required": 0,
146
  "conditional_logic": 0,
149
  "class": "",
150
  "id": ""
151
  },
152
+ "open": 0,
153
+ "multi_expand": 0,
154
+ "endpoint": 0
155
+ },
156
+ {
157
+ "key": "field_5cc3207d3a214",
158
+ "label": "Text Color",
159
+ "name": "acfb_rating_before_text_color",
160
+ "type": "color_picker",
161
+ "instructions": "",
162
+ "required": 0,
163
+ "conditional_logic": 0,
164
+ "wrapper": {
165
+ "width": "",
166
+ "class": "",
167
+ "id": ""
168
+ },
169
+ "default_value": "#191e23"
170
  },
171
  {
172
  "key": "field_5cc313b63cf21",
198
  },
199
  "default_value": "#f3f4f5"
200
  },
201
+ {
202
+ "key": "field_5ea97f0755ab9",
203
+ "label": "Sizing",
204
+ "name": "",
205
+ "type": "accordion",
206
+ "instructions": "",
207
+ "required": 0,
208
+ "conditional_logic": 0,
209
+ "wrapper": {
210
+ "width": "",
211
+ "class": "",
212
+ "id": ""
213
+ },
214
+ "open": 0,
215
+ "multi_expand": 0,
216
+ "endpoint": 0
217
+ },
218
  {
219
  "key": "field_5cc312a89b1c0",
220
  "label": "Star Icon Size",
234
  "step": "",
235
  "prepend": "",
236
  "append": "px"
237
+ },
238
+ {
239
+ "key": "field_5ea97f0d55aba",
240
+ "label": "Spacing",
241
+ "name": "",
242
+ "type": "accordion",
243
+ "instructions": "",
244
+ "required": 0,
245
+ "conditional_logic": 0,
246
+ "wrapper": {
247
+ "width": "",
248
+ "class": "",
249
+ "id": ""
250
+ },
251
+ "open": 0,
252
+ "multi_expand": 0,
253
+ "endpoint": 0
254
+ },
255
+ {
256
+ "key": "field_5ea97fa455abd",
257
+ "label": "Margin",
258
+ "name": "acfb_rating_margin",
259
+ "type": "margin",
260
+ "instructions": "",
261
+ "required": 0,
262
+ "conditional_logic": 0,
263
+ "wrapper": {
264
+ "width": "",
265
+ "class": "",
266
+ "id": ""
267
+ },
268
+ "margin_enable": 0,
269
+ "margin_top": "",
270
+ "margin_right": "",
271
+ "margin_bottom": "",
272
+ "margin_left": ""
273
+ },
274
+ {
275
+ "key": "field_5ea97fbf55abe",
276
+ "label": "Padding",
277
+ "name": "acfb_rating_padding",
278
+ "type": "padding",
279
+ "instructions": "",
280
+ "required": 0,
281
+ "conditional_logic": 0,
282
+ "wrapper": {
283
+ "width": "",
284
+ "class": "",
285
+ "id": ""
286
+ },
287
+ "padding_enable": 0,
288
+ "padding_top": "",
289
+ "padding_right": "",
290
+ "padding_bottom": "",
291
+ "padding_left": ""
292
+ },
293
+ {
294
+ "key": "field_5ea97f8a55abc",
295
+ "label": "Other Setting",
296
+ "name": "",
297
+ "type": "accordion",
298
+ "instructions": "",
299
+ "required": 0,
300
+ "conditional_logic": 0,
301
+ "wrapper": {
302
+ "width": "",
303
+ "class": "",
304
+ "id": ""
305
+ },
306
+ "open": 0,
307
+ "multi_expand": 0,
308
+ "endpoint": 0
309
+ },
310
+ {
311
+ "key": "field_5cc3227d434b2",
312
+ "label": "Text Gap",
313
+ "name": "acfb_rating_before_text_gap",
314
+ "type": "range",
315
+ "instructions": "",
316
+ "required": 0,
317
+ "conditional_logic": 0,
318
+ "wrapper": {
319
+ "width": "",
320
+ "class": "",
321
+ "id": ""
322
+ },
323
+ "default_value": 5,
324
+ "min": "",
325
+ "max": 40,
326
+ "step": "",
327
+ "prepend": "",
328
+ "append": "px"
329
  }
330
  ],
331
  "location": [
345
  "hide_on_screen": "",
346
  "active": 1,
347
  "description": "",
348
+ "modified": 1588325912
349
  }
acf-json/group_5cc6b8e86e751.json CHANGED
@@ -111,6 +111,86 @@
111
  "placement": "top",
112
  "endpoint": 0
113
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  {
115
  "key": "field_5cc6c8983d17c",
116
  "label": "Bar Color",
@@ -157,10 +237,10 @@
157
  "default_value": "#FFFFFF"
158
  },
159
  {
160
- "key": "field_5cc6c98f3d17f",
161
- "label": "Text Size",
162
- "name": "acfb_progressbar_text_size",
163
- "type": "range",
164
  "instructions": "",
165
  "required": 0,
166
  "conditional_logic": 0,
@@ -169,18 +249,13 @@
169
  "class": "",
170
  "id": ""
171
  },
172
- "default_value": 14,
173
- "min": "",
174
- "max": "",
175
- "step": "",
176
- "prepend": "",
177
- "append": "px"
178
  },
179
  {
180
- "key": "field_5cc6c9ba3d180",
181
- "label": "Title Color",
182
- "name": "acfb_progressbar_title_color",
183
- "type": "color_picker",
184
  "instructions": "",
185
  "required": 0,
186
  "conditional_logic": 0,
@@ -189,13 +264,15 @@
189
  "class": "",
190
  "id": ""
191
  },
192
- "default_value": "#191e23"
 
 
193
  },
194
  {
195
- "key": "field_5cc6c9d83d181",
196
- "label": "Title Size",
197
- "name": "acfb_progressbar_title_size",
198
- "type": "range",
199
  "instructions": "",
200
  "required": 0,
201
  "conditional_logic": 0,
@@ -204,12 +281,30 @@
204
  "class": "",
205
  "id": ""
206
  },
207
- "default_value": 16,
208
- "min": "",
209
- "max": "",
210
- "step": "",
211
- "prepend": "",
212
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
213
  }
214
  ],
215
  "location": [
@@ -229,6 +324,5 @@
229
  "hide_on_screen": "",
230
  "active": 1,
231
  "description": "",
232
- "private": true,
233
- "modified": 1568298204
234
  }
111
  "placement": "top",
112
  "endpoint": 0
113
  },
114
+ {
115
+ "key": "field_5eaa87554e5e9",
116
+ "label": "Typography",
117
+ "name": "",
118
+ "type": "accordion",
119
+ "instructions": "",
120
+ "required": 0,
121
+ "conditional_logic": 0,
122
+ "wrapper": {
123
+ "width": "",
124
+ "class": "",
125
+ "id": ""
126
+ },
127
+ "open": 0,
128
+ "multi_expand": 0,
129
+ "endpoint": 0
130
+ },
131
+ {
132
+ "key": "field_5eaa87864e5eb",
133
+ "label": "Text",
134
+ "name": "acfb_progressbar_text_typo",
135
+ "type": "typography",
136
+ "instructions": "",
137
+ "required": 0,
138
+ "conditional_logic": 0,
139
+ "wrapper": {
140
+ "width": "",
141
+ "class": "",
142
+ "id": ""
143
+ },
144
+ "font_family_enable": 0,
145
+ "font_family": "default",
146
+ "font_size": 14,
147
+ "font_weight": "default",
148
+ "font_transform": "default",
149
+ "font_style": "default",
150
+ "font_decoration": "default",
151
+ "font_line_height": "0.1",
152
+ "font_letter_spacing": 0
153
+ },
154
+ {
155
+ "key": "field_5eaa87a44e5ec",
156
+ "label": "Ttile",
157
+ "name": "acfb_progressbar_title_typo",
158
+ "type": "typography",
159
+ "instructions": "",
160
+ "required": 0,
161
+ "conditional_logic": 0,
162
+ "wrapper": {
163
+ "width": "",
164
+ "class": "",
165
+ "id": ""
166
+ },
167
+ "font_family_enable": 0,
168
+ "font_family": "default",
169
+ "font_size": 16,
170
+ "font_weight": "default",
171
+ "font_transform": "default",
172
+ "font_style": "default",
173
+ "font_decoration": "default",
174
+ "font_line_height": "0.1",
175
+ "font_letter_spacing": 0
176
+ },
177
+ {
178
+ "key": "field_5eaa87604e5ea",
179
+ "label": "Colors",
180
+ "name": "",
181
+ "type": "accordion",
182
+ "instructions": "",
183
+ "required": 0,
184
+ "conditional_logic": 0,
185
+ "wrapper": {
186
+ "width": "",
187
+ "class": "",
188
+ "id": ""
189
+ },
190
+ "open": 0,
191
+ "multi_expand": 0,
192
+ "endpoint": 0
193
+ },
194
  {
195
  "key": "field_5cc6c8983d17c",
196
  "label": "Bar Color",
237
  "default_value": "#FFFFFF"
238
  },
239
  {
240
+ "key": "field_5cc6c9ba3d180",
241
+ "label": "Title Color",
242
+ "name": "acfb_progressbar_title_color",
243
+ "type": "color_picker",
244
  "instructions": "",
245
  "required": 0,
246
  "conditional_logic": 0,
249
  "class": "",
250
  "id": ""
251
  },
252
+ "default_value": "#191e23"
 
 
 
 
 
253
  },
254
  {
255
+ "key": "field_5eaa87efe3903",
256
+ "label": "Spacing",
257
+ "name": "",
258
+ "type": "accordion",
259
  "instructions": "",
260
  "required": 0,
261
  "conditional_logic": 0,
264
  "class": "",
265
  "id": ""
266
  },
267
+ "open": 0,
268
+ "multi_expand": 0,
269
+ "endpoint": 0
270
  },
271
  {
272
+ "key": "field_5eaa87ffe3904",
273
+ "label": "Margin",
274
+ "name": "acfb_progressbar_margin",
275
+ "type": "margin",
276
  "instructions": "",
277
  "required": 0,
278
  "conditional_logic": 0,
281
  "class": "",
282
  "id": ""
283
  },
284
+ "margin_enable": 0,
285
+ "margin_top": "",
286
+ "margin_right": "",
287
+ "margin_bottom": "",
288
+ "margin_left": ""
289
+ },
290
+ {
291
+ "key": "field_5eaa8814e3905",
292
+ "label": "Padding",
293
+ "name": "acfb_progressbar_padding",
294
+ "type": "padding",
295
+ "instructions": "",
296
+ "required": 0,
297
+ "conditional_logic": 0,
298
+ "wrapper": {
299
+ "width": "",
300
+ "class": "",
301
+ "id": ""
302
+ },
303
+ "padding_enable": 0,
304
+ "padding_top": "",
305
+ "padding_right": "",
306
+ "padding_bottom": "",
307
+ "padding_left": ""
308
  }
309
  ],
310
  "location": [
324
  "hide_on_screen": "",
325
  "active": 1,
326
  "description": "",
327
+ "modified": 1588325844
 
328
  }
acf-json/group_5cc6cf92e231a.json CHANGED
@@ -113,10 +113,10 @@
113
  "endpoint": 0
114
  },
115
  {
116
- "key": "field_5cc6da54f3840",
117
- "label": "Number Color",
118
- "name": "acfb_counter_number_color",
119
- "type": "color_picker",
120
  "instructions": "",
121
  "required": 0,
122
  "conditional_logic": 0,
@@ -125,13 +125,15 @@
125
  "class": "",
126
  "id": ""
127
  },
128
- "default_value": "#191e23"
 
 
129
  },
130
  {
131
- "key": "field_5cc6da81f3841",
132
- "label": "Number Size",
133
- "name": "acfb_counter_number_size",
134
- "type": "range",
135
  "instructions": "",
136
  "required": 0,
137
  "conditional_logic": 0,
@@ -140,12 +142,70 @@
140
  "class": "",
141
  "id": ""
142
  },
143
- "default_value": 69,
144
- "min": "",
145
- "max": "",
146
- "step": "",
147
- "prepend": "",
148
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  },
150
  {
151
  "key": "field_5cc6dab2f3842",
@@ -163,10 +223,10 @@
163
  "default_value": "#191e23"
164
  },
165
  {
166
- "key": "field_5cc6dae0f3843",
167
- "label": "Title Size",
168
- "name": "acfb_counter_number_title_size",
169
- "type": "range",
170
  "instructions": "",
171
  "required": 0,
172
  "conditional_logic": 0,
@@ -175,12 +235,47 @@
175
  "class": "",
176
  "id": ""
177
  },
178
- "default_value": 19,
179
- "min": "",
180
- "max": "",
181
- "step": "",
182
- "prepend": "",
183
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  }
185
  ],
186
  "location": [
@@ -200,6 +295,5 @@
200
  "hide_on_screen": "",
201
  "active": 1,
202
  "description": "",
203
- "private": true,
204
- "modified": 1568298211
205
  }
113
  "endpoint": 0
114
  },
115
  {
116
+ "key": "field_5eaaa0cee6f1c",
117
+ "label": "Typography",
118
+ "name": "",
119
+ "type": "accordion",
120
  "instructions": "",
121
  "required": 0,
122
  "conditional_logic": 0,
125
  "class": "",
126
  "id": ""
127
  },
128
+ "open": 0,
129
+ "multi_expand": 0,
130
+ "endpoint": 0
131
  },
132
  {
133
+ "key": "field_5eaaa12de6f21",
134
+ "label": "Number",
135
+ "name": "acfb_counter_number_typo",
136
+ "type": "typography",
137
  "instructions": "",
138
  "required": 0,
139
  "conditional_logic": 0,
142
  "class": "",
143
  "id": ""
144
  },
145
+ "font_family_enable": 0,
146
+ "font_family": "default",
147
+ "font_size": 69,
148
+ "font_weight": "default",
149
+ "font_transform": "default",
150
+ "font_style": "default",
151
+ "font_decoration": "default",
152
+ "font_line_height": "0.1",
153
+ "font_letter_spacing": 0
154
+ },
155
+ {
156
+ "key": "field_5eaaa152e6f22",
157
+ "label": "Title",
158
+ "name": "acfb_counter_title_typo",
159
+ "type": "typography",
160
+ "instructions": "",
161
+ "required": 0,
162
+ "conditional_logic": 0,
163
+ "wrapper": {
164
+ "width": "",
165
+ "class": "",
166
+ "id": ""
167
+ },
168
+ "font_family_enable": 0,
169
+ "font_family": "default",
170
+ "font_size": 19,
171
+ "font_weight": "default",
172
+ "font_transform": "default",
173
+ "font_style": "default",
174
+ "font_decoration": "default",
175
+ "font_line_height": "0.1",
176
+ "font_letter_spacing": 0
177
+ },
178
+ {
179
+ "key": "field_5eaaa0d8e6f1d",
180
+ "label": "Colors",
181
+ "name": "",
182
+ "type": "accordion",
183
+ "instructions": "",
184
+ "required": 0,
185
+ "conditional_logic": 0,
186
+ "wrapper": {
187
+ "width": "",
188
+ "class": "",
189
+ "id": ""
190
+ },
191
+ "open": 0,
192
+ "multi_expand": 0,
193
+ "endpoint": 0
194
+ },
195
+ {
196
+ "key": "field_5cc6da54f3840",
197
+ "label": "Number Color",
198
+ "name": "acfb_counter_number_color",
199
+ "type": "color_picker",
200
+ "instructions": "",
201
+ "required": 0,
202
+ "conditional_logic": 0,
203
+ "wrapper": {
204
+ "width": "",
205
+ "class": "",
206
+ "id": ""
207
+ },
208
+ "default_value": "#191e23"
209
  },
210
  {
211
  "key": "field_5cc6dab2f3842",
223
  "default_value": "#191e23"
224
  },
225
  {
226
+ "key": "field_5eaaa0f1e6f1e",
227
+ "label": "Spacing",
228
+ "name": "",
229
+ "type": "accordion",
230
  "instructions": "",
231
  "required": 0,
232
  "conditional_logic": 0,
235
  "class": "",
236
  "id": ""
237
  },
238
+ "open": 0,
239
+ "multi_expand": 0,
240
+ "endpoint": 0
241
+ },
242
+ {
243
+ "key": "field_5eaaa100e6f1f",
244
+ "label": "Margin",
245
+ "name": "acfb_counter_number_margin",
246
+ "type": "margin",
247
+ "instructions": "",
248
+ "required": 0,
249
+ "conditional_logic": 0,
250
+ "wrapper": {
251
+ "width": "",
252
+ "class": "",
253
+ "id": ""
254
+ },
255
+ "margin_enable": 0,
256
+ "margin_top": "",
257
+ "margin_right": "",
258
+ "margin_bottom": "",
259
+ "margin_left": ""
260
+ },
261
+ {
262
+ "key": "field_5eaaa114e6f20",
263
+ "label": "Padding",
264
+ "name": "acfb_counter_number_padding",
265
+ "type": "padding",
266
+ "instructions": "",
267
+ "required": 0,
268
+ "conditional_logic": 0,
269
+ "wrapper": {
270
+ "width": "",
271
+ "class": "",
272
+ "id": ""
273
+ },
274
+ "padding_enable": 0,
275
+ "padding_top": "",
276
+ "padding_right": "",
277
+ "padding_bottom": "",
278
+ "padding_left": ""
279
  }
280
  ],
281
  "location": [
295
  "hide_on_screen": "",
296
  "active": 1,
297
  "description": "",
298
+ "modified": 1588240762
 
299
  }
acf-json/group_5cc6dfe67784b.json CHANGED
@@ -198,10 +198,10 @@
198
  "endpoint": 0
199
  },
200
  {
201
- "key": "field_5cc700e89b703",
202
- "label": "Title & Price Color",
203
- "name": "acfb_price_list_title_&_price_color",
204
- "type": "color_picker",
205
  "instructions": "",
206
  "required": 0,
207
  "conditional_logic": 0,
@@ -210,13 +210,15 @@
210
  "class": "",
211
  "id": ""
212
  },
213
- "default_value": "#191e23"
 
 
214
  },
215
  {
216
- "key": "field_5cc701239b704",
217
- "label": "Title & Price Size",
218
- "name": "acfb_price_list_title_&_price_size",
219
- "type": "range",
220
  "instructions": "",
221
  "required": 0,
222
  "conditional_logic": 0,
@@ -225,18 +227,21 @@
225
  "class": "",
226
  "id": ""
227
  },
228
- "default_value": 19,
229
- "min": "",
230
- "max": "",
231
- "step": "",
232
- "prepend": "",
233
- "append": "px"
 
 
 
234
  },
235
  {
236
- "key": "field_5cc7020b9b707",
237
- "label": "Separator Styles",
238
- "name": "acfb_price_list_separator_styles",
239
- "type": "select",
240
  "instructions": "",
241
  "required": 0,
242
  "conditional_logic": 0,
@@ -245,28 +250,38 @@
245
  "class": "",
246
  "id": ""
247
  },
248
- "choices": {
249
- "Solid": "Solid",
250
- "Dotted": "Dotted",
251
- "Dashed": "Dashed",
252
- "Double": "Double",
253
- "None": "None"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
  },
255
- "default_value": [
256
- "Dotted"
257
- ],
258
- "allow_null": 0,
259
- "multiple": 0,
260
- "ui": 0,
261
- "return_format": "value",
262
- "ajax": 0,
263
- "placeholder": ""
264
  },
265
  {
266
- "key": "field_5cc7026a9b708",
267
- "label": "Separator Size",
268
- "name": "acfb_price_list_separator_size",
269
- "type": "range",
270
  "instructions": "",
271
  "required": 0,
272
  "conditional_logic": 0,
@@ -275,12 +290,7 @@
275
  "class": "",
276
  "id": ""
277
  },
278
- "default_value": 2,
279
- "min": "",
280
- "max": 10,
281
- "step": "",
282
- "prepend": "",
283
- "append": "px"
284
  },
285
  {
286
  "key": "field_5cc7028b9b709",
@@ -313,9 +323,26 @@
313
  "default_value": "#191e23"
314
  },
315
  {
316
- "key": "field_5cc7017a9b706",
317
- "label": "Description Size",
318
- "name": "acfb_price_list_description_size",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  "type": "range",
320
  "instructions": "",
321
  "required": 0,
@@ -325,12 +352,114 @@
325
  "class": "",
326
  "id": ""
327
  },
328
- "default_value": 16,
329
  "min": "",
330
- "max": "",
331
  "step": "",
332
  "prepend": "",
333
  "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  }
335
  ],
336
  "location": [
@@ -350,5 +479,5 @@
350
  "hide_on_screen": "",
351
  "active": 1,
352
  "description": "",
353
- "modified": 1573213755
354
  }
198
  "endpoint": 0
199
  },
200
  {
201
+ "key": "field_5eaa911955009",
202
+ "label": "Typography",
203
+ "name": "",
204
+ "type": "accordion",
205
  "instructions": "",
206
  "required": 0,
207
  "conditional_logic": 0,
210
  "class": "",
211
  "id": ""
212
  },
213
+ "open": 0,
214
+ "multi_expand": 0,
215
+ "endpoint": 0
216
  },
217
  {
218
+ "key": "field_5eaa9212d7b99",
219
+ "label": "Title & Price",
220
+ "name": "acfb_price_list_title_typo",
221
+ "type": "typography",
222
  "instructions": "",
223
  "required": 0,
224
  "conditional_logic": 0,
227
  "class": "",
228
  "id": ""
229
  },
230
+ "font_family_enable": 0,
231
+ "font_family": "default",
232
+ "font_size": 19,
233
+ "font_weight": "default",
234
+ "font_transform": "default",
235
+ "font_style": "default",
236
+ "font_decoration": "default",
237
+ "font_line_height": "0.1",
238
+ "font_letter_spacing": 0
239
  },
240
  {
241
+ "key": "field_5eaa9238d7b9a",
242
+ "label": "Description",
243
+ "name": "acfb_price_list_description_typo",
244
+ "type": "typography",
245
  "instructions": "",
246
  "required": 0,
247
  "conditional_logic": 0,
250
  "class": "",
251
  "id": ""
252
  },
253
+ "font_family_enable": 0,
254
+ "font_family": "default",
255
+ "font_size": 16,
256
+ "font_weight": "default",
257
+ "font_transform": "default",
258
+ "font_style": "default",
259
+ "font_decoration": "default",
260
+ "font_line_height": "0.1",
261
+ "font_letter_spacing": 0
262
+ },
263
+ {
264
+ "key": "field_5eaa912b5500a",
265
+ "label": "Colors",
266
+ "name": "",
267
+ "type": "accordion",
268
+ "instructions": "",
269
+ "required": 0,
270
+ "conditional_logic": 0,
271
+ "wrapper": {
272
+ "width": "",
273
+ "class": "",
274
+ "id": ""
275
  },
276
+ "open": 0,
277
+ "multi_expand": 0,
278
+ "endpoint": 0
 
 
 
 
 
 
279
  },
280
  {
281
+ "key": "field_5cc700e89b703",
282
+ "label": "Title & Price Color",
283
+ "name": "acfb_price_list_title_&_price_color",
284
+ "type": "color_picker",
285
  "instructions": "",
286
  "required": 0,
287
  "conditional_logic": 0,
290
  "class": "",
291
  "id": ""
292
  },
293
+ "default_value": "#191e23"
 
 
 
 
 
294
  },
295
  {
296
  "key": "field_5cc7028b9b709",
323
  "default_value": "#191e23"
324
  },
325
  {
326
+ "key": "field_5eaa91305500b",
327
+ "label": "Sizing",
328
+ "name": "",
329
+ "type": "accordion",
330
+ "instructions": "",
331
+ "required": 0,
332
+ "conditional_logic": 0,
333
+ "wrapper": {
334
+ "width": "",
335
+ "class": "",
336
+ "id": ""
337
+ },
338
+ "open": 0,
339
+ "multi_expand": 0,
340
+ "endpoint": 0
341
+ },
342
+ {
343
+ "key": "field_5cc7026a9b708",
344
+ "label": "Separator Size",
345
+ "name": "acfb_price_list_separator_size",
346
  "type": "range",
347
  "instructions": "",
348
  "required": 0,
352
  "class": "",
353
  "id": ""
354
  },
355
+ "default_value": 2,
356
  "min": "",
357
+ "max": 10,
358
  "step": "",
359
  "prepend": "",
360
  "append": "px"
361
+ },
362
+ {
363
+ "key": "field_5eaa91355500d",
364
+ "label": "Spacing",
365
+ "name": "",
366
+ "type": "accordion",
367
+ "instructions": "",
368
+ "required": 0,
369
+ "conditional_logic": 0,
370
+ "wrapper": {
371
+ "width": "",
372
+ "class": "",
373
+ "id": ""
374
+ },
375
+ "open": 0,
376
+ "multi_expand": 0,
377
+ "endpoint": 0
378
+ },
379
+ {
380
+ "key": "field_5eaa917f5500f",
381
+ "label": "Margin",
382
+ "name": "acfb_price_list_margin",
383
+ "type": "margin",
384
+ "instructions": "",
385
+ "required": 0,
386
+ "conditional_logic": 0,
387
+ "wrapper": {
388
+ "width": "",
389
+ "class": "",
390
+ "id": ""
391
+ },
392
+ "margin_enable": 0,
393
+ "margin_top": "",
394
+ "margin_right": "",
395
+ "margin_bottom": "",
396
+ "margin_left": ""
397
+ },
398
+ {
399
+ "key": "field_5eaa919355010",
400
+ "label": "Padding",
401
+ "name": "acfb_price_list_padding",
402
+ "type": "padding",
403
+ "instructions": "",
404
+ "required": 0,
405
+ "conditional_logic": 0,
406
+ "wrapper": {
407
+ "width": "",
408
+ "class": "",
409
+ "id": ""
410
+ },
411
+ "padding_enable": 0,
412
+ "padding_top": "",
413
+ "padding_right": "",
414
+ "padding_bottom": "",
415
+ "padding_left": ""
416
+ },
417
+ {
418
+ "key": "field_5eaa91755500e",
419
+ "label": "Other Setting",
420
+ "name": "",
421
+ "type": "accordion",
422
+ "instructions": "",
423
+ "required": 0,
424
+ "conditional_logic": 0,
425
+ "wrapper": {
426
+ "width": "",
427
+ "class": "",
428
+ "id": ""
429
+ },
430
+ "open": 0,
431
+ "multi_expand": 0,
432
+ "endpoint": 0
433
+ },
434
+ {
435
+ "key": "field_5cc7020b9b707",
436
+ "label": "Separator Styles",
437
+ "name": "acfb_price_list_separator_styles",
438
+ "type": "select",
439
+ "instructions": "",
440
+ "required": 0,
441
+ "conditional_logic": 0,
442
+ "wrapper": {
443
+ "width": "",
444
+ "class": "",
445
+ "id": ""
446
+ },
447
+ "choices": {
448
+ "Solid": "Solid",
449
+ "Dotted": "Dotted",
450
+ "Dashed": "Dashed",
451
+ "Double": "Double",
452
+ "None": "None"
453
+ },
454
+ "default_value": [
455
+ "Dotted"
456
+ ],
457
+ "allow_null": 0,
458
+ "multiple": 0,
459
+ "ui": 0,
460
+ "return_format": "value",
461
+ "ajax": 0,
462
+ "placeholder": ""
463
  }
464
  ],
465
  "location": [
479
  "hide_on_screen": "",
480
  "active": 1,
481
  "description": "",
482
+ "modified": 1588325821
483
  }
acf-json/group_5cc7092c01eb4.json CHANGED
@@ -92,10 +92,10 @@
92
  "endpoint": 0
93
  },
94
  {
95
- "key": "field_5cc70f3700841",
96
- "label": "Background Color",
97
- "name": "acfb_click_to_tweet_bg_color",
98
- "type": "color_picker",
99
  "instructions": "",
100
  "required": 0,
101
  "conditional_logic": 0,
@@ -104,12 +104,77 @@
104
  "class": "",
105
  "id": ""
106
  },
107
- "default_value": "#f3f4f5"
 
 
108
  },
109
  {
110
- "key": "field_5cc70f7c00842",
111
- "label": "Text Color",
112
- "name": "acfb_click_to_tweet_text_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
  "type": "color_picker",
114
  "instructions": "",
115
  "required": 0,
@@ -119,13 +184,13 @@
119
  "class": "",
120
  "id": ""
121
  },
122
- "default_value": "#191e23"
123
  },
124
  {
125
- "key": "field_5cc70fb000843",
126
- "label": "Text Size",
127
- "name": "acfb_click_to_tweet_text_size",
128
- "type": "range",
129
  "instructions": "",
130
  "required": 0,
131
  "conditional_logic": 0,
@@ -134,12 +199,7 @@
134
  "class": "",
135
  "id": ""
136
  },
137
- "default_value": 24,
138
- "min": "",
139
- "max": "",
140
- "step": "",
141
- "prepend": "",
142
- "append": "px"
143
  },
144
  {
145
  "key": "field_5cc7101700844",
@@ -172,10 +232,10 @@
172
  "default_value": "#191e23"
173
  },
174
  {
175
- "key": "field_5cc7108600846",
176
- "label": "Button Size",
177
- "name": "acfb_click_to_tweet_button_size",
178
- "type": "range",
179
  "instructions": "",
180
  "required": 0,
181
  "conditional_logic": 0,
@@ -184,12 +244,66 @@
184
  "class": "",
185
  "id": ""
186
  },
187
- "default_value": 12,
188
- "min": "",
189
- "max": "",
190
- "step": "",
191
- "prepend": "",
192
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
193
  }
194
  ],
195
  "location": [
@@ -209,6 +323,5 @@
209
  "hide_on_screen": "",
210
  "active": 1,
211
  "description": "",
212
- "private": true,
213
- "modified": 1568298228
214
  }
92
  "endpoint": 0
93
  },
94
  {
95
+ "key": "field_5eaaa288ae5eb",
96
+ "label": "Typography",
97
+ "name": "",
98
+ "type": "accordion",
99
  "instructions": "",
100
  "required": 0,
101
  "conditional_logic": 0,
104
  "class": "",
105
  "id": ""
106
  },
107
+ "open": 0,
108
+ "multi_expand": 0,
109
+ "endpoint": 0
110
  },
111
  {
112
+ "key": "field_5eaaa2f1ae5f0",
113
+ "label": "Text",
114
+ "name": "acfb_click_to_tweet_text_typo",
115
+ "type": "typography",
116
+ "instructions": "",
117
+ "required": 0,
118
+ "conditional_logic": 0,
119
+ "wrapper": {
120
+ "width": "",
121
+ "class": "",
122
+ "id": ""
123
+ },
124
+ "font_family_enable": 0,
125
+ "font_family": "default",
126
+ "font_size": 24,
127
+ "font_weight": "default",
128
+ "font_transform": "default",
129
+ "font_style": "default",
130
+ "font_decoration": "default",
131
+ "font_line_height": "0.1",
132
+ "font_letter_spacing": 0
133
+ },
134
+ {
135
+ "key": "field_5eaaa314ae5f1",
136
+ "label": "Button",
137
+ "name": "acfb_click_to_tweet_button_typo",
138
+ "type": "typography",
139
+ "instructions": "",
140
+ "required": 0,
141
+ "conditional_logic": 0,
142
+ "wrapper": {
143
+ "width": "",
144
+ "class": "",
145
+ "id": ""
146
+ },
147
+ "font_family_enable": 0,
148
+ "font_family": "default",
149
+ "font_size": 12,
150
+ "font_weight": "default",
151
+ "font_transform": "default",
152
+ "font_style": "default",
153
+ "font_decoration": "default",
154
+ "font_line_height": "0.1",
155
+ "font_letter_spacing": 0
156
+ },
157
+ {
158
+ "key": "field_5eaaa291ae5ec",
159
+ "label": "Colors",
160
+ "name": "",
161
+ "type": "accordion",
162
+ "instructions": "",
163
+ "required": 0,
164
+ "conditional_logic": 0,
165
+ "wrapper": {
166
+ "width": "",
167
+ "class": "",
168
+ "id": ""
169
+ },
170
+ "open": 0,
171
+ "multi_expand": 0,
172
+ "endpoint": 0
173
+ },
174
+ {
175
+ "key": "field_5cc70f3700841",
176
+ "label": "Background Color",
177
+ "name": "acfb_click_to_tweet_bg_color",
178
  "type": "color_picker",
179
  "instructions": "",
180
  "required": 0,
184
  "class": "",
185
  "id": ""
186
  },
187
+ "default_value": "#f3f4f5"
188
  },
189
  {
190
+ "key": "field_5cc70f7c00842",
191
+ "label": "Text Color",
192
+ "name": "acfb_click_to_tweet_text_color",
193
+ "type": "color_picker",
194
  "instructions": "",
195
  "required": 0,
196
  "conditional_logic": 0,
199
  "class": "",
200
  "id": ""
201
  },
202
+ "default_value": "#191e23"
 
 
 
 
 
203
  },
204
  {
205
  "key": "field_5cc7101700844",
232
  "default_value": "#191e23"
233
  },
234
  {
235
+ "key": "field_5eaaa29bae5ed",
236
+ "label": "Spacing",
237
+ "name": "",
238
+ "type": "accordion",
239
  "instructions": "",
240
  "required": 0,
241
  "conditional_logic": 0,
244
  "class": "",
245
  "id": ""
246
  },
247
+ "open": 0,
248
+ "multi_expand": 0,
249
+ "endpoint": 0
250
+ },
251
+ {
252
+ "key": "field_5eaaa2b2ae5ee",
253
+ "label": "Margin",
254
+ "name": "acfb_click_to_tweet_margin",
255
+ "type": "margin",
256
+ "instructions": "",
257
+ "required": 0,
258
+ "conditional_logic": 0,
259
+ "wrapper": {
260
+ "width": "",
261
+ "class": "",
262
+ "id": ""
263
+ },
264
+ "margin_enable": 0,
265
+ "margin_top": "",
266
+ "margin_right": "",
267
+ "margin_bottom": "",
268
+ "margin_left": ""
269
+ },
270
+ {
271
+ "key": "field_5eaaa2c7ae5ef",
272
+ "label": "Padding",
273
+ "name": "acfb_click_to_tweet_padding",
274
+ "type": "padding",
275
+ "instructions": "",
276
+ "required": 0,
277
+ "conditional_logic": 0,
278
+ "wrapper": {
279
+ "width": "",
280
+ "class": "",
281
+ "id": ""
282
+ },
283
+ "padding_enable": 0,
284
+ "padding_top": "",
285
+ "padding_right": "",
286
+ "padding_bottom": "",
287
+ "padding_left": ""
288
+ },
289
+ {
290
+ "key": "field_5eaaa404ec655",
291
+ "label": "Inner Padding",
292
+ "name": "acfb_click_to_inner_padding",
293
+ "type": "padding",
294
+ "instructions": "",
295
+ "required": 0,
296
+ "conditional_logic": 0,
297
+ "wrapper": {
298
+ "width": "",
299
+ "class": "",
300
+ "id": ""
301
+ },
302
+ "padding_enable": 0,
303
+ "padding_top": 15,
304
+ "padding_right": 30,
305
+ "padding_bottom": 15,
306
+ "padding_left": 30
307
  }
308
  ],
309
  "location": [
323
  "hide_on_screen": "",
324
  "active": 1,
325
  "description": "",
326
+ "modified": 1588241449
 
327
  }
acf-json/group_5cd00bce35670.json CHANGED
@@ -309,10 +309,10 @@
309
  "endpoint": 0
310
  },
311
  {
312
- "key": "field_5cd3f812914d4",
313
- "label": "Background Color",
314
- "name": "acfb_post_background_color",
315
- "type": "color_picker",
316
  "instructions": "",
317
  "required": 0,
318
  "conditional_logic": 0,
@@ -321,12 +321,14 @@
321
  "class": "",
322
  "id": ""
323
  },
324
- "default_value": "#f3f4f5"
 
 
325
  },
326
  {
327
- "key": "field_5cd68bf596878",
328
- "label": "Title Custom Styles",
329
- "name": "acfb_post_title_custom_styles",
330
  "type": "true_false",
331
  "instructions": "",
332
  "required": 0,
@@ -343,16 +345,16 @@
343
  "ui_off_text": ""
344
  },
345
  {
346
- "key": "field_5cd40e5df6b13",
347
- "label": "Title Color",
348
- "name": "acfb_post_title_color",
349
- "type": "color_picker",
350
  "instructions": "",
351
  "required": 0,
352
  "conditional_logic": [
353
  [
354
  {
355
- "field": "field_5cd68bf596878",
356
  "operator": "==",
357
  "value": "1"
358
  }
@@ -363,19 +365,46 @@
363
  "class": "",
364
  "id": ""
365
  },
366
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
367
  },
368
  {
369
- "key": "field_5cd4184a5d816",
370
- "label": "Title Hover Color",
371
- "name": "acfb_post_title_hover_color",
372
- "type": "color_picker",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
373
  "instructions": "",
374
  "required": 0,
375
  "conditional_logic": [
376
  [
377
  {
378
- "field": "field_5cd68bf596878",
379
  "operator": "==",
380
  "value": "1"
381
  }
@@ -386,19 +415,46 @@
386
  "class": "",
387
  "id": ""
388
  },
389
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
390
  },
391
  {
392
- "key": "field_5cd40de2f6b12",
393
- "label": "Title Size",
394
- "name": "acfb_post_title_size",
395
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
  "instructions": "",
397
  "required": 0,
398
  "conditional_logic": [
399
  [
400
  {
401
- "field": "field_5cd68bf596878",
402
  "operator": "==",
403
  "value": "1"
404
  }
@@ -409,17 +465,20 @@
409
  "class": "",
410
  "id": ""
411
  },
412
- "default_value": 25,
413
- "min": "",
414
- "max": 100,
415
- "step": "",
416
- "prepend": "",
417
- "append": "px"
 
 
 
418
  },
419
  {
420
- "key": "field_5cd68d0464050",
421
- "label": "Meta Custom Styles",
422
- "name": "acfb_post_meta_custom_styles",
423
  "type": "true_false",
424
  "instructions": "",
425
  "required": 0,
@@ -436,16 +495,98 @@
436
  "ui_off_text": ""
437
  },
438
  {
439
- "key": "field_5cd40ea3f6b15",
440
- "label": "Meta Color",
441
- "name": "acfb_post_meta_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
  "type": "color_picker",
443
  "instructions": "",
444
  "required": 0,
445
  "conditional_logic": [
446
  [
447
  {
448
- "field": "field_5cd68d0464050",
449
  "operator": "==",
450
  "value": "1"
451
  }
@@ -456,19 +597,19 @@
456
  "class": "",
457
  "id": ""
458
  },
459
- "default_value": "rgba(25, 30, 35, 0.5)"
460
  },
461
  {
462
- "key": "field_5cd40e77f6b14",
463
- "label": "Meta Size",
464
- "name": "acfb_post_meta_size",
465
- "type": "range",
466
  "instructions": "",
467
  "required": 0,
468
  "conditional_logic": [
469
  [
470
  {
471
- "field": "field_5cd68d0464050",
472
  "operator": "==",
473
  "value": "1"
474
  }
@@ -479,17 +620,12 @@
479
  "class": "",
480
  "id": ""
481
  },
482
- "default_value": 16,
483
- "min": "",
484
- "max": "",
485
- "step": "",
486
- "prepend": "",
487
- "append": "px"
488
  },
489
  {
490
- "key": "field_5cd68d5164051",
491
- "label": "Excerpt Custom Styles",
492
- "name": "acfb_post_excerpt_custom_styles",
493
  "type": "true_false",
494
  "instructions": "",
495
  "required": 0,
@@ -506,16 +642,16 @@
506
  "ui_off_text": ""
507
  },
508
  {
509
- "key": "field_5cd40f23f6b17",
510
- "label": "Excerpt Color",
511
- "name": "acfb_post_excerpt_color",
512
  "type": "color_picker",
513
  "instructions": "",
514
  "required": 0,
515
  "conditional_logic": [
516
  [
517
  {
518
- "field": "field_5cd68d5164051",
519
  "operator": "==",
520
  "value": "1"
521
  }
@@ -526,13 +662,32 @@
526
  "class": "",
527
  "id": ""
528
  },
529
- "default_value": "#191e23"
530
  },
531
  {
532
- "key": "field_5cd40ef8f6b16",
533
- "label": "Excerpt Size",
534
- "name": "acfb_post_excerpt_size",
535
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  "instructions": "",
537
  "required": 0,
538
  "conditional_logic": [
@@ -549,17 +704,12 @@
549
  "class": "",
550
  "id": ""
551
  },
552
- "default_value": 17,
553
- "min": "",
554
- "max": "",
555
- "step": "",
556
- "prepend": "",
557
- "append": "px"
558
  },
559
  {
560
  "key": "field_5cd68da164052",
561
- "label": "Button Custom Styles",
562
- "name": "acfb_post_button_custom_styles",
563
  "type": "true_false",
564
  "instructions": "",
565
  "required": 0,
@@ -668,10 +818,65 @@
668
  "default_value": "#ffffff"
669
  },
670
  {
671
- "key": "field_5cd41014f6b1c",
672
- "label": "Button Size",
673
- "name": "acfb_post_button_size",
674
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
675
  "instructions": "",
676
  "required": 0,
677
  "conditional_logic": [
@@ -688,12 +893,11 @@
688
  "class": "",
689
  "id": ""
690
  },
691
- "default_value": 16,
692
- "min": "",
693
- "max": "",
694
- "step": "",
695
- "prepend": "",
696
- "append": "px"
697
  }
698
  ],
699
  "location": [
@@ -713,6 +917,5 @@
713
  "hide_on_screen": "",
714
  "active": 1,
715
  "description": "",
716
- "private": true,
717
- "modified": 1568298238
718
  }
309
  "endpoint": 0
310
  },
311
  {
312
+ "key": "field_5eaa93ee6f25a",
313
+ "label": "Typography",
314
+ "name": "",
315
+ "type": "accordion",
316
  "instructions": "",
317
  "required": 0,
318
  "conditional_logic": 0,
321
  "class": "",
322
  "id": ""
323
  },
324
+ "open": 0,
325
+ "multi_expand": 0,
326
+ "endpoint": 0
327
  },
328
  {
329
+ "key": "field_5eaa95126f264",
330
+ "label": "Title Custom Typography",
331
+ "name": "acfb_post_title_custom_typography",
332
  "type": "true_false",
333
  "instructions": "",
334
  "required": 0,
345
  "ui_off_text": ""
346
  },
347
  {
348
+ "key": "field_5eaa94836f25f",
349
+ "label": "Title",
350
+ "name": "acfb_post_title_typo",
351
+ "type": "typography",
352
  "instructions": "",
353
  "required": 0,
354
  "conditional_logic": [
355
  [
356
  {
357
+ "field": "field_5eaa95126f264",
358
  "operator": "==",
359
  "value": "1"
360
  }
365
  "class": "",
366
  "id": ""
367
  },
368
+ "font_family_enable": 0,
369
+ "font_family": "default",
370
+ "font_size": 25,
371
+ "font_weight": "default",
372
+ "font_transform": "default",
373
+ "font_style": "default",
374
+ "font_decoration": "default",
375
+ "font_line_height": "0.1",
376
+ "font_letter_spacing": 0
377
  },
378
  {
379
+ "key": "field_5eaa95586f266",
380
+ "label": "Meta Custom Typography",
381
+ "name": "acfb_post_meta_custom_typography",
382
+ "type": "true_false",
383
+ "instructions": "",
384
+ "required": 0,
385
+ "conditional_logic": 0,
386
+ "wrapper": {
387
+ "width": "",
388
+ "class": "",
389
+ "id": ""
390
+ },
391
+ "message": "",
392
+ "default_value": 0,
393
+ "ui": 1,
394
+ "ui_on_text": "",
395
+ "ui_off_text": ""
396
+ },
397
+ {
398
+ "key": "field_5eaa94a56f260",
399
+ "label": "Meta",
400
+ "name": "acfb_post_meta_typo",
401
+ "type": "typography",
402
  "instructions": "",
403
  "required": 0,
404
  "conditional_logic": [
405
  [
406
  {
407
+ "field": "field_5eaa95586f266",
408
  "operator": "==",
409
  "value": "1"
410
  }
415
  "class": "",
416
  "id": ""
417
  },
418
+ "font_family_enable": 0,
419
+ "font_family": "default",
420
+ "font_size": 16,
421
+ "font_weight": "default",
422
+ "font_transform": "default",
423
+ "font_style": "default",
424
+ "font_decoration": "default",
425
+ "font_line_height": "0.1",
426
+ "font_letter_spacing": 0
427
  },
428
  {
429
+ "key": "field_5eaa95586f265",
430
+ "label": "Excerpt Custom Typography",
431
+ "name": "acfb_post_excerpt_custom_typography",
432
+ "type": "true_false",
433
+ "instructions": "",
434
+ "required": 0,
435
+ "conditional_logic": 0,
436
+ "wrapper": {
437
+ "width": "",
438
+ "class": "",
439
+ "id": ""
440
+ },
441
+ "message": "",
442
+ "default_value": 0,
443
+ "ui": 1,
444
+ "ui_on_text": "",
445
+ "ui_off_text": ""
446
+ },
447
+ {
448
+ "key": "field_5eaa94b66f262",
449
+ "label": "Excerpt",
450
+ "name": "acfb_post_excerpt_typo",
451
+ "type": "typography",
452
  "instructions": "",
453
  "required": 0,
454
  "conditional_logic": [
455
  [
456
  {
457
+ "field": "field_5eaa95586f265",
458
  "operator": "==",
459
  "value": "1"
460
  }
465
  "class": "",
466
  "id": ""
467
  },
468
+ "font_family_enable": 0,
469
+ "font_family": "default",
470
+ "font_size": 17,
471
+ "font_weight": "default",
472
+ "font_transform": "default",
473
+ "font_style": "default",
474
+ "font_decoration": "default",
475
+ "font_line_height": "0.1",
476
+ "font_letter_spacing": 0
477
  },
478
  {
479
+ "key": "field_5eaa95886f267",
480
+ "label": "Button Custom Typography",
481
+ "name": "acfb_post_button_custom_typography",
482
  "type": "true_false",
483
  "instructions": "",
484
  "required": 0,
495
  "ui_off_text": ""
496
  },
497
  {
498
+ "key": "field_5eaa94c66f263",
499
+ "label": "Button",
500
+ "name": "acfb_post_button_typo",
501
+ "type": "typography",
502
+ "instructions": "",
503
+ "required": 0,
504
+ "conditional_logic": [
505
+ [
506
+ {
507
+ "field": "field_5eaa95886f267",
508
+ "operator": "==",
509
+ "value": "1"
510
+ }
511
+ ]
512
+ ],
513
+ "wrapper": {
514
+ "width": "",
515
+ "class": "",
516
+ "id": ""
517
+ },
518
+ "font_family_enable": 0,
519
+ "font_family": "default",
520
+ "font_size": 16,
521
+ "font_weight": "default",
522
+ "font_transform": "default",
523
+ "font_style": "default",
524
+ "font_decoration": "default",
525
+ "font_line_height": "0.1",
526
+ "font_letter_spacing": 0
527
+ },
528
+ {
529
+ "key": "field_5eaa93fb6f25b",
530
+ "label": "Colors",
531
+ "name": "",
532
+ "type": "accordion",
533
+ "instructions": "",
534
+ "required": 0,
535
+ "conditional_logic": 0,
536
+ "wrapper": {
537
+ "width": "",
538
+ "class": "",
539
+ "id": ""
540
+ },
541
+ "open": 0,
542
+ "multi_expand": 0,
543
+ "endpoint": 0
544
+ },
545
+ {
546
+ "key": "field_5cd3f812914d4",
547
+ "label": "Background Color",
548
+ "name": "acfb_post_background_color",
549
+ "type": "color_picker",
550
+ "instructions": "",
551
+ "required": 0,
552
+ "conditional_logic": 0,
553
+ "wrapper": {
554
+ "width": "",
555
+ "class": "",
556
+ "id": ""
557
+ },
558
+ "default_value": "#f3f4f5"
559
+ },
560
+ {
561
+ "key": "field_5cd68bf596878",
562
+ "label": "Title Custom Color",
563
+ "name": "acfb_post_title_custom_color",
564
+ "type": "true_false",
565
+ "instructions": "",
566
+ "required": 0,
567
+ "conditional_logic": 0,
568
+ "wrapper": {
569
+ "width": "",
570
+ "class": "",
571
+ "id": ""
572
+ },
573
+ "message": "",
574
+ "default_value": 0,
575
+ "ui": 1,
576
+ "ui_on_text": "",
577
+ "ui_off_text": ""
578
+ },
579
+ {
580
+ "key": "field_5cd40e5df6b13",
581
+ "label": "Title Color",
582
+ "name": "acfb_post_title_color",
583
  "type": "color_picker",
584
  "instructions": "",
585
  "required": 0,
586
  "conditional_logic": [
587
  [
588
  {
589
+ "field": "field_5cd68bf596878",
590
  "operator": "==",
591
  "value": "1"
592
  }
597
  "class": "",
598
  "id": ""
599
  },
600
+ "default_value": "#191e23"
601
  },
602
  {
603
+ "key": "field_5cd4184a5d816",
604
+ "label": "Title Hover Color",
605
+ "name": "acfb_post_title_hover_color",
606
+ "type": "color_picker",
607
  "instructions": "",
608
  "required": 0,
609
  "conditional_logic": [
610
  [
611
  {
612
+ "field": "field_5cd68bf596878",
613
  "operator": "==",
614
  "value": "1"
615
  }
620
  "class": "",
621
  "id": ""
622
  },
623
+ "default_value": "#191e23"
 
 
 
 
 
624
  },
625
  {
626
+ "key": "field_5cd68d0464050",
627
+ "label": "Meta Custom Color",
628
+ "name": "acfb_post_meta_custom_color",
629
  "type": "true_false",
630
  "instructions": "",
631
  "required": 0,
642
  "ui_off_text": ""
643
  },
644
  {
645
+ "key": "field_5cd40ea3f6b15",
646
+ "label": "Meta Color",
647
+ "name": "acfb_post_meta_color",
648
  "type": "color_picker",
649
  "instructions": "",
650
  "required": 0,
651
  "conditional_logic": [
652
  [
653
  {
654
+ "field": "field_5cd68d0464050",
655
  "operator": "==",
656
  "value": "1"
657
  }
662
  "class": "",
663
  "id": ""
664
  },
665
+ "default_value": "rgba(25, 30, 35, 0.5)"
666
  },
667
  {
668
+ "key": "field_5cd68d5164051",
669
+ "label": "Excerpt Custom Color",
670
+ "name": "acfb_post_excerpt_custom_color",
671
+ "type": "true_false",
672
+ "instructions": "",
673
+ "required": 0,
674
+ "conditional_logic": 0,
675
+ "wrapper": {
676
+ "width": "",
677
+ "class": "",
678
+ "id": ""
679
+ },
680
+ "message": "",
681
+ "default_value": 0,
682
+ "ui": 1,
683
+ "ui_on_text": "",
684
+ "ui_off_text": ""
685
+ },
686
+ {
687
+ "key": "field_5cd40f23f6b17",
688
+ "label": "Excerpt Color",
689
+ "name": "acfb_post_excerpt_color",
690
+ "type": "color_picker",
691
  "instructions": "",
692
  "required": 0,
693
  "conditional_logic": [
704
  "class": "",
705
  "id": ""
706
  },
707
+ "default_value": "#191e23"
 
 
 
 
 
708
  },
709
  {
710
  "key": "field_5cd68da164052",
711
+ "label": "Button Custom Color",
712
+ "name": "acfb_post_button_custom_color",
713
  "type": "true_false",
714
  "instructions": "",
715
  "required": 0,
818
  "default_value": "#ffffff"
819
  },
820
  {
821
+ "key": "field_5eaa94026f25c",
822
+ "label": "Spacing",
823
+ "name": "",
824
+ "type": "accordion",
825
+ "instructions": "",
826
+ "required": 0,
827
+ "conditional_logic": 0,
828
+ "wrapper": {
829
+ "width": "",
830
+ "class": "",
831
+ "id": ""
832
+ },
833
+ "open": 0,
834
+ "multi_expand": 0,
835
+ "endpoint": 0
836
+ },
837
+ {
838
+ "key": "field_5eaa943b6f25d",
839
+ "label": "Margin",
840
+ "name": "acfb_post_margin",
841
+ "type": "margin",
842
+ "instructions": "",
843
+ "required": 0,
844
+ "conditional_logic": 0,
845
+ "wrapper": {
846
+ "width": "",
847
+ "class": "",
848
+ "id": ""
849
+ },
850
+ "margin_enable": 0,
851
+ "margin_top": "",
852
+ "margin_right": "",
853
+ "margin_bottom": "",
854
+ "margin_left": ""
855
+ },
856
+ {
857
+ "key": "field_5eaa94506f25e",
858
+ "label": "Padding",
859
+ "name": "acfb_post_padding",
860
+ "type": "padding",
861
+ "instructions": "",
862
+ "required": 0,
863
+ "conditional_logic": 0,
864
+ "wrapper": {
865
+ "width": "",
866
+ "class": "",
867
+ "id": ""
868
+ },
869
+ "padding_enable": 0,
870
+ "padding_top": "",
871
+ "padding_right": "",
872
+ "padding_bottom": "",
873
+ "padding_left": ""
874
+ },
875
+ {
876
+ "key": "field_5eaa99c5dbf22",
877
+ "label": "Button Padding",
878
+ "name": "acfb_post_button_padding",
879
+ "type": "padding",
880
  "instructions": "",
881
  "required": 0,
882
  "conditional_logic": [
893
  "class": "",
894
  "id": ""
895
  },
896
+ "padding_enable": 0,
897
+ "padding_top": 10,
898
+ "padding_right": 10,
899
+ "padding_bottom": 10,
900
+ "padding_left": 10
 
901
  }
902
  ],
903
  "location": [
917
  "hide_on_screen": "",
918
  "active": 1,
919
  "description": "",
920
+ "modified": 1588238945
 
921
  }
acf-json/group_5cde975abf269.json CHANGED
@@ -100,10 +100,10 @@
100
  "endpoint": 0
101
  },
102
  {
103
- "key": "field_5ce0083c74945",
104
- "label": "Rounded Corners",
105
- "name": "acfb_rounded_corners",
106
- "type": "range",
107
  "instructions": "",
108
  "required": 0,
109
  "conditional_logic": 0,
@@ -112,18 +112,15 @@
112
  "class": "",
113
  "id": ""
114
  },
115
- "default_value": 0,
116
- "min": "",
117
- "max": "",
118
- "step": "",
119
- "prepend": "",
120
- "append": ""
121
  },
122
  {
123
- "key": "field_5ce00b5254e6a",
124
- "label": "Buttons Color",
125
- "name": "acfb_button_color",
126
- "type": "true_false",
127
  "instructions": "",
128
  "required": 0,
129
  "conditional_logic": 0,
@@ -132,11 +129,32 @@
132
  "class": "",
133
  "id": ""
134
  },
135
- "message": "",
136
- "default_value": 0,
137
- "ui": 1,
138
- "ui_on_text": "Brand",
139
- "ui_off_text": "Custom"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
  },
141
  {
142
  "key": "field_5ce00bb482a7b",
@@ -161,6 +179,25 @@
161
  },
162
  "default_value": "#f3f4f5"
163
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  {
165
  "key": "field_5ce010e9cc5a7",
166
  "label": "Text Color",
@@ -183,6 +220,117 @@
183
  "id": ""
184
  },
185
  "default_value": "#191e23"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  }
187
  ],
188
  "location": [
@@ -202,6 +350,5 @@
202
  "hide_on_screen": "",
203
  "active": 1,
204
  "description": "",
205
- "private": true,
206
- "modified": 1568298246
207
  }
100
  "endpoint": 0
101
  },
102
  {
103
+ "key": "field_5ea98557fdd56",
104
+ "label": "Typography",
105
+ "name": "",
106
+ "type": "accordion",
107
  "instructions": "",
108
  "required": 0,
109
  "conditional_logic": 0,
112
  "class": "",
113
  "id": ""
114
  },
115
+ "open": 0,
116
+ "multi_expand": 0,
117
+ "endpoint": 0
 
 
 
118
  },
119
  {
120
+ "key": "field_5ea98673fb1e6",
121
+ "label": "Text",
122
+ "name": "acfb_social_button_text_typo",
123
+ "type": "typography",
124
  "instructions": "",
125
  "required": 0,
126
  "conditional_logic": 0,
129
  "class": "",
130
  "id": ""
131
  },
132
+ "font_family_enable": 0,
133
+ "font_family": "default",
134
+ "font_size": 18,
135
+ "font_weight": "default",
136
+ "font_transform": "default",
137
+ "font_style": "default",
138
+ "font_decoration": "default",
139
+ "font_line_height": "0.1",
140
+ "font_letter_spacing": 0
141
+ },
142
+ {
143
+ "key": "field_5ea98563fdd57",
144
+ "label": "Colors",
145
+ "name": "",
146
+ "type": "accordion",
147
+ "instructions": "",
148
+ "required": 0,
149
+ "conditional_logic": 0,
150
+ "wrapper": {
151
+ "width": "",
152
+ "class": "",
153
+ "id": ""
154
+ },
155
+ "open": 0,
156
+ "multi_expand": 0,
157
+ "endpoint": 0
158
  },
159
  {
160
  "key": "field_5ce00bb482a7b",
179
  },
180
  "default_value": "#f3f4f5"
181
  },
182
+ {
183
+ "key": "field_5ce00b5254e6a",
184
+ "label": "Buttons Color",
185
+ "name": "acfb_button_color",
186
+ "type": "true_false",
187
+ "instructions": "",
188
+ "required": 0,
189
+ "conditional_logic": 0,
190
+ "wrapper": {
191
+ "width": "",
192
+ "class": "",
193
+ "id": ""
194
+ },
195
+ "message": "",
196
+ "default_value": 0,
197
+ "ui": 1,
198
+ "ui_on_text": "Brand",
199
+ "ui_off_text": "Custom"
200
+ },
201
  {
202
  "key": "field_5ce010e9cc5a7",
203
  "label": "Text Color",
220
  "id": ""
221
  },
222
  "default_value": "#191e23"
223
+ },
224
+ {
225
+ "key": "field_5ea9856cfdd59",
226
+ "label": "Spacing",
227
+ "name": "",
228
+ "type": "accordion",
229
+ "instructions": "",
230
+ "required": 0,
231
+ "conditional_logic": 0,
232
+ "wrapper": {
233
+ "width": "",
234
+ "class": "",
235
+ "id": ""
236
+ },
237
+ "open": 0,
238
+ "multi_expand": 0,
239
+ "endpoint": 0
240
+ },
241
+ {
242
+ "key": "field_5ea985aafb1e4",
243
+ "label": "Margin",
244
+ "name": "acfb_social_button_margin",
245
+ "type": "margin",
246
+ "instructions": "",
247
+ "required": 0,
248
+ "conditional_logic": 0,
249
+ "wrapper": {
250
+ "width": "",
251
+ "class": "",
252
+ "id": ""
253
+ },
254
+ "margin_enable": 0,
255
+ "margin_top": "",
256
+ "margin_right": "",
257
+ "margin_bottom": "",
258
+ "margin_left": ""
259
+ },
260
+ {
261
+ "key": "field_5ea985ebfb1e5",
262
+ "label": "Padding",
263
+ "name": "acfb_social_button_padding",
264
+ "type": "padding",
265
+ "instructions": "",
266
+ "required": 0,
267
+ "conditional_logic": 0,
268
+ "wrapper": {
269
+ "width": "",
270
+ "class": "",
271
+ "id": ""
272
+ },
273
+ "padding_enable": 0,
274
+ "padding_top": "",
275
+ "padding_right": "",
276
+ "padding_bottom": "",
277
+ "padding_left": ""
278
+ },
279
+ {
280
+ "key": "field_5ea987eee9856",
281
+ "label": "Buttons Padding",
282
+ "name": "acfb_social_button_inner_padding",
283
+ "type": "padding",
284
+ "instructions": "",
285
+ "required": 0,
286
+ "conditional_logic": 0,
287
+ "wrapper": {
288
+ "width": "",
289
+ "class": "",
290
+ "id": ""
291
+ },
292
+ "padding_enable": 0,
293
+ "padding_top": 10,
294
+ "padding_right": 10,
295
+ "padding_bottom": 10,
296
+ "padding_left": 10
297
+ },
298
+ {
299
+ "key": "field_5ea9859b7a171",
300
+ "label": "Other Setting",
301
+ "name": "",
302
+ "type": "accordion",
303
+ "instructions": "",
304
+ "required": 0,
305
+ "conditional_logic": 0,
306
+ "wrapper": {
307
+ "width": "",
308
+ "class": "",
309
+ "id": ""
310
+ },
311
+ "open": 0,
312
+ "multi_expand": 0,
313
+ "endpoint": 0
314
+ },
315
+ {
316
+ "key": "field_5ce0083c74945",
317
+ "label": "Rounded Corners",
318
+ "name": "acfb_rounded_corners",
319
+ "type": "range",
320
+ "instructions": "",
321
+ "required": 0,
322
+ "conditional_logic": 0,
323
+ "wrapper": {
324
+ "width": "",
325
+ "class": "",
326
+ "id": ""
327
+ },
328
+ "default_value": 0,
329
+ "min": "",
330
+ "max": "",
331
+ "step": "",
332
+ "prepend": "",
333
+ "append": ""
334
  }
335
  ],
336
  "location": [
350
  "hide_on_screen": "",
351
  "active": 1,
352
  "description": "",
353
+ "modified": 1588168714
 
354
  }
acf-json/group_5cf238e5e1203.json CHANGED
@@ -371,6 +371,63 @@
371
  "placement": "top",
372
  "endpoint": 0
373
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  {
375
  "key": "field_5cf520e0d349a",
376
  "label": "Caption Background Color",
@@ -402,10 +459,10 @@
402
  "default_value": "#191e23"
403
  },
404
  {
405
- "key": "field_5cf520622254b",
406
- "label": "Caption Size",
407
- "name": "acfb_slider_caption_size",
408
- "type": "range",
409
  "instructions": "",
410
  "required": 0,
411
  "conditional_logic": 0,
@@ -414,12 +471,47 @@
414
  "class": "",
415
  "id": ""
416
  },
417
- "default_value": 18,
418
- "min": "",
419
- "max": 200,
420
- "step": "",
421
- "prepend": "",
422
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  }
424
  ],
425
  "location": [
@@ -439,6 +531,5 @@
439
  "hide_on_screen": "",
440
  "active": 1,
441
  "description": "",
442
- "private": true,
443
- "modified": 1568298254
444
  }
371
  "placement": "top",
372
  "endpoint": 0
373
  },
374
+ {
375
+ "key": "field_5eaa9f1a57a6f",
376
+ "label": "Typography",
377
+ "name": "",
378
+ "type": "accordion",
379
+ "instructions": "",
380
+ "required": 0,
381
+ "conditional_logic": 0,
382
+ "wrapper": {
383
+ "width": "",
384
+ "class": "",
385
+ "id": ""
386
+ },
387
+ "open": 0,
388
+ "multi_expand": 0,
389
+ "endpoint": 0
390
+ },
391
+ {
392
+ "key": "field_5eaa9f3057a71",
393
+ "label": "Caption",
394
+ "name": "acfb_slider_caption_typo",
395
+ "type": "typography",
396
+ "instructions": "",
397
+ "required": 0,
398
+ "conditional_logic": 0,
399
+ "wrapper": {
400
+ "width": "",
401
+ "class": "",
402
+ "id": ""
403
+ },
404
+ "font_family_enable": 0,
405
+ "font_family": "default",
406
+ "font_size": 18,
407
+ "font_weight": "default",
408
+ "font_transform": "default",
409
+ "font_style": "default",
410
+ "font_decoration": "default",
411
+ "font_line_height": "0.1",
412
+ "font_letter_spacing": 0
413
+ },
414
+ {
415
+ "key": "field_5eaa9f2557a70",
416
+ "label": "Colors",
417
+ "name": "",
418
+ "type": "accordion",
419
+ "instructions": "",
420
+ "required": 0,
421
+ "conditional_logic": 0,
422
+ "wrapper": {
423
+ "width": "",
424
+ "class": "",
425
+ "id": ""
426
+ },
427
+ "open": 0,
428
+ "multi_expand": 0,
429
+ "endpoint": 0
430
+ },
431
  {
432
  "key": "field_5cf520e0d349a",
433
  "label": "Caption Background Color",
459
  "default_value": "#191e23"
460
  },
461
  {
462
+ "key": "field_5eaa9f8239fde",
463
+ "label": "Spacing",
464
+ "name": "",
465
+ "type": "accordion",
466
  "instructions": "",
467
  "required": 0,
468
  "conditional_logic": 0,
471
  "class": "",
472
  "id": ""
473
  },
474
+ "open": 0,
475
+ "multi_expand": 0,
476
+ "endpoint": 0
477
+ },
478
+ {
479
+ "key": "field_5eaa9f9939fdf",
480
+ "label": "Margin",
481
+ "name": "acfb_slider_margin",
482
+ "type": "margin",
483
+ "instructions": "",
484
+ "required": 0,
485
+ "conditional_logic": 0,
486
+ "wrapper": {
487
+ "width": "",
488
+ "class": "",
489
+ "id": ""
490
+ },
491
+ "margin_enable": 0,
492
+ "margin_top": "",
493
+ "margin_right": "",
494
+ "margin_bottom": "",
495
+ "margin_left": ""
496
+ },
497
+ {
498
+ "key": "field_5eaa9fb439fe0",
499
+ "label": "Padding",
500
+ "name": "acfb_slider_padding",
501
+ "type": "padding",
502
+ "instructions": "",
503
+ "required": 0,
504
+ "conditional_logic": 0,
505
+ "wrapper": {
506
+ "width": "",
507
+ "class": "",
508
+ "id": ""
509
+ },
510
+ "padding_enable": 0,
511
+ "padding_top": "",
512
+ "padding_right": "",
513
+ "padding_bottom": "",
514
+ "padding_left": ""
515
  }
516
  ],
517
  "location": [
531
  "hide_on_screen": "",
532
  "active": 1,
533
  "description": "",
534
+ "modified": 1588240334
 
535
  }
acf-json/group_5cfe3ba49f760.json CHANGED
@@ -94,10 +94,10 @@
94
  "endpoint": 0
95
  },
96
  {
97
- "key": "field_5cffaa63cfbd0",
98
- "label": "Title Background Color",
99
- "name": "acfb_tab_title_background",
100
- "type": "color_picker",
101
  "instructions": "",
102
  "required": 0,
103
  "conditional_logic": 0,
@@ -106,12 +106,77 @@
106
  "class": "",
107
  "id": ""
108
  },
109
- "default_value": "#e0e0e0"
 
 
110
  },
111
  {
112
- "key": "field_5cffaa83cfbd1",
113
- "label": "Title Color",
114
- "name": "acfb_tab_title_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  "type": "color_picker",
116
  "instructions": "",
117
  "required": 0,
@@ -121,7 +186,7 @@
121
  "class": "",
122
  "id": ""
123
  },
124
- "default_value": "#191e23"
125
  },
126
  {
127
  "key": "field_5cffaaa8cfbd2",
@@ -154,10 +219,10 @@
154
  "default_value": "#191e23"
155
  },
156
  {
157
- "key": "field_5cffab21cfbd4",
158
- "label": "Title Size",
159
- "name": "acfb_tab_title_size",
160
- "type": "range",
161
  "instructions": "",
162
  "required": 0,
163
  "conditional_logic": 0,
@@ -166,12 +231,7 @@
166
  "class": "",
167
  "id": ""
168
  },
169
- "default_value": 18,
170
- "min": "",
171
- "max": 200,
172
- "step": "",
173
- "prepend": "",
174
- "append": "px"
175
  },
176
  {
177
  "key": "field_5cffab63cfbd5",
@@ -204,10 +264,65 @@
204
  "default_value": "#191e23"
205
  },
206
  {
207
- "key": "field_5cffab95cfbd7",
208
- "label": "Content Size",
209
- "name": "acfb_tab_content_size",
210
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
211
  "instructions": "",
212
  "required": 0,
213
  "conditional_logic": 0,
@@ -216,12 +331,11 @@
216
  "class": "",
217
  "id": ""
218
  },
219
- "default_value": 18,
220
- "min": "",
221
- "max": 200,
222
- "step": "",
223
- "prepend": "",
224
- "append": "px"
225
  }
226
  ],
227
  "location": [
@@ -241,6 +355,5 @@
241
  "hide_on_screen": "",
242
  "active": 1,
243
  "description": "",
244
- "private": true,
245
- "modified": 1568298262
246
  }
94
  "endpoint": 0
95
  },
96
  {
97
+ "key": "field_5ea97aa0202a2",
98
+ "label": "Typography",
99
+ "name": "",
100
+ "type": "accordion",
101
  "instructions": "",
102
  "required": 0,
103
  "conditional_logic": 0,
106
  "class": "",
107
  "id": ""
108
  },
109
+ "open": 0,
110
+ "multi_expand": 0,
111
+ "endpoint": 0
112
  },
113
  {
114
+ "key": "field_5ea97b72202aa",
115
+ "label": "Title",
116
+ "name": "acfb_tab_title_typo",
117
+ "type": "typography",
118
+ "instructions": "",
119
+ "required": 0,
120
+ "conditional_logic": 0,
121
+ "wrapper": {
122
+ "width": "",
123
+ "class": "",
124
+ "id": ""
125
+ },
126
+ "font_family_enable": 0,
127
+ "font_family": "default",
128
+ "font_size": 18,
129
+ "font_weight": "default",
130
+ "font_transform": "default",
131
+ "font_style": "default",
132
+ "font_decoration": "default",
133
+ "font_line_height": "0.1",
134
+ "font_letter_spacing": 0
135
+ },
136
+ {
137
+ "key": "field_5ea97bad202ab",
138
+ "label": "Content",
139
+ "name": "acfb_tab_content_typo",
140
+ "type": "typography",
141
+ "instructions": "",
142
+ "required": 0,
143
+ "conditional_logic": 0,
144
+ "wrapper": {
145
+ "width": "",
146
+ "class": "",
147
+ "id": ""
148
+ },
149
+ "font_family_enable": 0,
150
+ "font_family": "default",
151
+ "font_size": 18,
152
+ "font_weight": "default",
153
+ "font_transform": "default",
154
+ "font_style": "default",
155
+ "font_decoration": "default",
156
+ "font_line_height": "0.1",
157
+ "font_letter_spacing": 0
158
+ },
159
+ {
160
+ "key": "field_5ea97ab6202a4",
161
+ "label": "Colors",
162
+ "name": "",
163
+ "type": "accordion",
164
+ "instructions": "",
165
+ "required": 0,
166
+ "conditional_logic": 0,
167
+ "wrapper": {
168
+ "width": "",
169
+ "class": "",
170
+ "id": ""
171
+ },
172
+ "open": 0,
173
+ "multi_expand": 0,
174
+ "endpoint": 0
175
+ },
176
+ {
177
+ "key": "field_5cffaa63cfbd0",
178
+ "label": "Title Background Color",
179
+ "name": "acfb_tab_title_background",
180
  "type": "color_picker",
181
  "instructions": "",
182
  "required": 0,
186
  "class": "",
187
  "id": ""
188
  },
189
+ "default_value": "#e0e0e0"
190
  },
191
  {
192
  "key": "field_5cffaaa8cfbd2",
219
  "default_value": "#191e23"
220
  },
221
  {
222
+ "key": "field_5cffaa83cfbd1",
223
+ "label": "Title Color",
224
+ "name": "acfb_tab_title_color",
225
+ "type": "color_picker",
226
  "instructions": "",
227
  "required": 0,
228
  "conditional_logic": 0,
231
  "class": "",
232
  "id": ""
233
  },
234
+ "default_value": "#191e23"
 
 
 
 
 
235
  },
236
  {
237
  "key": "field_5cffab63cfbd5",
264
  "default_value": "#191e23"
265
  },
266
  {
267
+ "key": "field_5ea97abd202a5",
268
+ "label": "Spacing",
269
+ "name": "",
270
+ "type": "accordion",
271
+ "instructions": "",
272
+ "required": 0,
273
+ "conditional_logic": 0,
274
+ "wrapper": {
275
+ "width": "",
276
+ "class": "",
277
+ "id": ""
278
+ },
279
+ "open": 0,
280
+ "multi_expand": 0,
281
+ "endpoint": 0
282
+ },
283
+ {
284
+ "key": "field_5ea97af6202a7",
285
+ "label": "Margin",
286
+ "name": "acfb_tab_margin",
287
+ "type": "margin",
288
+ "instructions": "",
289
+ "required": 0,
290
+ "conditional_logic": 0,
291
+ "wrapper": {
292
+ "width": "",
293
+ "class": "",
294
+ "id": ""
295
+ },
296
+ "margin_enable": 0,
297
+ "margin_top": "",
298
+ "margin_right": "",
299
+ "margin_bottom": "",
300
+ "margin_left": ""
301
+ },
302
+ {
303
+ "key": "field_5ea97b10202a8",
304
+ "label": "Padding",
305
+ "name": "acfb_tab_padding",
306
+ "type": "padding",
307
+ "instructions": "",
308
+ "required": 0,
309
+ "conditional_logic": 0,
310
+ "wrapper": {
311
+ "width": "",
312
+ "class": "",
313
+ "id": ""
314
+ },
315
+ "padding_enable": 0,
316
+ "padding_top": "",
317
+ "padding_right": "",
318
+ "padding_bottom": "",
319
+ "padding_left": ""
320
+ },
321
+ {
322
+ "key": "field_5ea97b4f202a9",
323
+ "label": "Content Padding",
324
+ "name": "acfb_tab_content_padding",
325
+ "type": "padding",
326
  "instructions": "",
327
  "required": 0,
328
  "conditional_logic": 0,
331
  "class": "",
332
  "id": ""
333
  },
334
+ "padding_enable": 0,
335
+ "padding_top": 20,
336
+ "padding_right": 20,
337
+ "padding_bottom": 20,
338
+ "padding_left": 20
 
339
  }
340
  ],
341
  "location": [
355
  "hide_on_screen": "",
356
  "active": 1,
357
  "description": "",
358
+ "modified": 1588408523
 
359
  }
acf-json/group_5cff80b5c59d1.json CHANGED
@@ -56,6 +56,29 @@
56
  "rows": "",
57
  "new_lines": ""
58
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  {
60
  "key": "field_5cff85cb73eb1",
61
  "label": "Design",
@@ -73,10 +96,10 @@
73
  "endpoint": 0
74
  },
75
  {
76
- "key": "field_5d00bdc12ab0e",
77
- "label": "Title Alignment",
78
- "name": "acfb_toogle_title_alignment",
79
- "type": "button_group",
80
  "instructions": "",
81
  "required": 0,
82
  "conditional_logic": 0,
@@ -85,15 +108,72 @@
85
  "class": "",
86
  "id": ""
87
  },
88
- "choices": {
89
- "left": "Left",
90
- "center": "Center",
91
- "right": "Right"
 
 
 
 
 
 
 
 
 
 
 
 
92
  },
93
- "allow_null": 0,
94
- "default_value": "left",
95
- "layout": "horizontal",
96
- "return_format": "value"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  },
98
  {
99
  "key": "field_5cff9e9b76685",
@@ -156,10 +236,10 @@
156
  "default_value": "#191e23"
157
  },
158
  {
159
- "key": "field_5cff9f5976689",
160
- "label": "Title Size",
161
- "name": "acfb_toggle_title_size",
162
- "type": "range",
163
  "instructions": "",
164
  "required": 0,
165
  "conditional_logic": 0,
@@ -168,12 +248,7 @@
168
  "class": "",
169
  "id": ""
170
  },
171
- "default_value": 18,
172
- "min": "",
173
- "max": 200,
174
- "step": "",
175
- "prepend": "",
176
- "append": "px"
177
  },
178
  {
179
  "key": "field_5cff9f927668a",
@@ -191,10 +266,10 @@
191
  "default_value": "#f3f4f5"
192
  },
193
  {
194
- "key": "field_5cff9fbd7668b",
195
- "label": "Content Color",
196
- "name": "acfb_toggle_content_color",
197
- "type": "color_picker",
198
  "instructions": "",
199
  "required": 0,
200
  "conditional_logic": 0,
@@ -203,13 +278,15 @@
203
  "class": "",
204
  "id": ""
205
  },
206
- "default_value": "#191e23"
 
 
207
  },
208
  {
209
- "key": "field_5cff9fe87668c",
210
- "label": "Content Size",
211
- "name": "acfb_toggle_content_size",
212
- "type": "range",
213
  "instructions": "",
214
  "required": 0,
215
  "conditional_logic": 0,
@@ -218,12 +295,30 @@
218
  "class": "",
219
  "id": ""
220
  },
221
- "default_value": 18,
222
- "min": "",
223
- "max": 200,
224
- "step": "",
225
- "prepend": "",
226
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  }
228
  ],
229
  "location": [
@@ -243,6 +338,5 @@
243
  "hide_on_screen": "",
244
  "active": 1,
245
  "description": "",
246
- "private": true,
247
- "modified": 1568298276
248
  }
56
  "rows": "",
57
  "new_lines": ""
58
  },
59
+ {
60
+ "key": "field_5d00bdc12ab0e",
61
+ "label": "Title Alignment",
62
+ "name": "acfb_toogle_title_alignment",
63
+ "type": "button_group",
64
+ "instructions": "",
65
+ "required": 0,
66
+ "conditional_logic": 0,
67
+ "wrapper": {
68
+ "width": "",
69
+ "class": "",
70
+ "id": ""
71
+ },
72
+ "choices": {
73
+ "left": "Left",
74
+ "center": "Center",
75
+ "right": "Right"
76
+ },
77
+ "allow_null": 0,
78
+ "default_value": "left",
79
+ "layout": "horizontal",
80
+ "return_format": "value"
81
+ },
82
  {
83
  "key": "field_5cff85cb73eb1",
84
  "label": "Design",
96
  "endpoint": 0
97
  },
98
  {
99
+ "key": "field_5eaaab4827a10",
100
+ "label": "Typography",
101
+ "name": "",
102
+ "type": "accordion",
103
  "instructions": "",
104
  "required": 0,
105
  "conditional_logic": 0,
108
  "class": "",
109
  "id": ""
110
  },
111
+ "open": 0,
112
+ "multi_expand": 0,
113
+ "endpoint": 0
114
+ },
115
+ {
116
+ "key": "field_5eaaabb027a17",
117
+ "label": "Title",
118
+ "name": "acfb_toggle_title_typo",
119
+ "type": "typography",
120
+ "instructions": "",
121
+ "required": 0,
122
+ "conditional_logic": 0,
123
+ "wrapper": {
124
+ "width": "",
125
+ "class": "",
126
+ "id": ""
127
  },
128
+ "font_family_enable": 0,
129
+ "font_family": "default",
130
+ "font_size": 18,
131
+ "font_weight": "default",
132
+ "font_transform": "default",
133
+ "font_style": "default",
134
+ "font_decoration": "default",
135
+ "font_line_height": "0.1",
136
+ "font_letter_spacing": 0
137
+ },
138
+ {
139
+ "key": "field_5eaaabbf27a18",
140
+ "label": "Content",
141
+ "name": "acfb_toggle_content_typo",
142
+ "type": "typography",
143
+ "instructions": "",
144
+ "required": 0,
145
+ "conditional_logic": 0,
146
+ "wrapper": {
147
+ "width": "",
148
+ "class": "",
149
+ "id": ""
150
+ },
151
+ "font_family_enable": 0,
152
+ "font_family": "default",
153
+ "font_size": 18,
154
+ "font_weight": "default",
155
+ "font_transform": "default",
156
+ "font_style": "default",
157
+ "font_decoration": "default",
158
+ "font_line_height": "0.1",
159
+ "font_letter_spacing": 0
160
+ },
161
+ {
162
+ "key": "field_5eaaab5027a11",
163
+ "label": "Colors",
164
+ "name": "",
165
+ "type": "accordion",
166
+ "instructions": "",
167
+ "required": 0,
168
+ "conditional_logic": 0,
169
+ "wrapper": {
170
+ "width": "",
171
+ "class": "",
172
+ "id": ""
173
+ },
174
+ "open": 0,
175
+ "multi_expand": 0,
176
+ "endpoint": 0
177
  },
178
  {
179
  "key": "field_5cff9e9b76685",
236
  "default_value": "#191e23"
237
  },
238
  {
239
+ "key": "field_5cff9fbd7668b",
240
+ "label": "Content Color",
241
+ "name": "acfb_toggle_content_color",
242
+ "type": "color_picker",
243
  "instructions": "",
244
  "required": 0,
245
  "conditional_logic": 0,
248
  "class": "",
249
  "id": ""
250
  },
251
+ "default_value": "#191e23"
 
 
 
 
 
252
  },
253
  {
254
  "key": "field_5cff9f927668a",
266
  "default_value": "#f3f4f5"
267
  },
268
  {
269
+ "key": "field_5eaaab5727a12",
270
+ "label": "Spacing",
271
+ "name": "",
272
+ "type": "accordion",
273
  "instructions": "",
274
  "required": 0,
275
  "conditional_logic": 0,
278
  "class": "",
279
  "id": ""
280
  },
281
+ "open": 0,
282
+ "multi_expand": 0,
283
+ "endpoint": 0
284
  },
285
  {
286
+ "key": "field_5eaaab6627a15",
287
+ "label": "Margin",
288
+ "name": "acfb_toggle_margin",
289
+ "type": "margin",
290
  "instructions": "",
291
  "required": 0,
292
  "conditional_logic": 0,
295
  "class": "",
296
  "id": ""
297
  },
298
+ "margin_enable": 0,
299
+ "margin_top": "",
300
+ "margin_right": "",
301
+ "margin_bottom": "",
302
+ "margin_left": ""
303
+ },
304
+ {
305
+ "key": "field_5eaaab7827a16",
306
+ "label": "Padding",
307
+ "name": "acfb_toggle_padding",
308
+ "type": "padding",
309
+ "instructions": "",
310
+ "required": 0,
311
+ "conditional_logic": 0,
312
+ "wrapper": {
313
+ "width": "",
314
+ "class": "",
315
+ "id": ""
316
+ },
317
+ "padding_enable": 0,
318
+ "padding_top": "",
319
+ "padding_right": "",
320
+ "padding_bottom": "",
321
+ "padding_left": ""
322
  }
323
  ],
324
  "location": [
338
  "hide_on_screen": "",
339
  "active": 1,
340
  "description": "",
341
+ "modified": 1588326132
 
342
  }
acf-json/group_5cff8a6c26332.json CHANGED
@@ -94,10 +94,10 @@
94
  "endpoint": 0
95
  },
96
  {
97
- "key": "field_5d00c16d8e0e8",
98
- "label": "Title Alignment",
99
- "name": "acfb_accordion_title_alignment",
100
- "type": "button_group",
101
  "instructions": "",
102
  "required": 0,
103
  "conditional_logic": 0,
@@ -106,15 +106,72 @@
106
  "class": "",
107
  "id": ""
108
  },
109
- "choices": {
110
- "left": "Left",
111
- "center": "Center",
112
- "right": "Right"
 
 
 
 
 
 
 
 
 
 
 
 
113
  },
114
- "allow_null": 0,
115
- "default_value": "left",
116
- "layout": "horizontal",
117
- "return_format": "value"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  },
119
  {
120
  "key": "field_5cff986aa7551",
@@ -177,10 +234,10 @@
177
  "default_value": "#191e23"
178
  },
179
  {
180
- "key": "field_5cff98c2a7553",
181
- "label": "Title Size",
182
- "name": "acfb_accordion_title_size",
183
- "type": "range",
184
  "instructions": "",
185
  "required": 0,
186
  "conditional_logic": 0,
@@ -189,12 +246,7 @@
189
  "class": "",
190
  "id": ""
191
  },
192
- "default_value": 18,
193
- "min": "",
194
- "max": 200,
195
- "step": "",
196
- "prepend": "",
197
- "append": "px"
198
  },
199
  {
200
  "key": "field_5cff9910a7554",
@@ -212,10 +264,10 @@
212
  "default_value": "#f3f4f5"
213
  },
214
  {
215
- "key": "field_5cff9951a7555",
216
- "label": "Content Color",
217
- "name": "acfb_accordion_content_color",
218
- "type": "color_picker",
219
  "instructions": "",
220
  "required": 0,
221
  "conditional_logic": 0,
@@ -224,13 +276,34 @@
224
  "class": "",
225
  "id": ""
226
  },
227
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  },
229
  {
230
- "key": "field_5cff996ea7556",
231
- "label": "Content Size",
232
- "name": "acfb_accordion_content_size",
233
- "type": "range",
234
  "instructions": "",
235
  "required": 0,
236
  "conditional_logic": 0,
@@ -239,12 +312,51 @@
239
  "class": "",
240
  "id": ""
241
  },
242
- "default_value": 18,
243
- "min": "",
244
- "max": 200,
245
- "step": "",
246
- "prepend": "",
247
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  }
249
  ],
250
  "location": [
@@ -264,6 +376,5 @@
264
  "hide_on_screen": "",
265
  "active": 1,
266
  "description": "",
267
- "private": true,
268
- "modified": 1568298269
269
  }
94
  "endpoint": 0
95
  },
96
  {
97
+ "key": "field_5eaaa6ff4cb56",
98
+ "label": "Typography",
99
+ "name": "",
100
+ "type": "accordion",
101
  "instructions": "",
102
  "required": 0,
103
  "conditional_logic": 0,
106
  "class": "",
107
  "id": ""
108
  },
109
+ "open": 0,
110
+ "multi_expand": 0,
111
+ "endpoint": 0
112
+ },
113
+ {
114
+ "key": "field_5eaaa7dd2de50",
115
+ "label": "Title",
116
+ "name": "acfb_accordion_title_typo",
117
+ "type": "typography",
118
+ "instructions": "",
119
+ "required": 0,
120
+ "conditional_logic": 0,
121
+ "wrapper": {
122
+ "width": "",
123
+ "class": "",
124
+ "id": ""
125
  },
126
+ "font_family_enable": 0,
127
+ "font_family": "default",
128
+ "font_size": 18,
129
+ "font_weight": "default",
130
+ "font_transform": "default",
131
+ "font_style": "default",
132
+ "font_decoration": "default",
133
+ "font_line_height": "0.1",
134
+ "font_letter_spacing": 0
135
+ },
136
+ {
137
+ "key": "field_5eaaa7ef2de51",
138
+ "label": "Content",
139
+ "name": "acfb_accordion_content_content",
140
+ "type": "typography",
141
+ "instructions": "",
142
+ "required": 0,
143
+ "conditional_logic": 0,
144
+ "wrapper": {
145
+ "width": "",
146
+ "class": "",
147
+ "id": ""
148
+ },
149
+ "font_family_enable": 0,
150
+ "font_family": "default",
151
+ "font_size": 18,
152
+ "font_weight": "default",
153
+ "font_transform": "default",
154
+ "font_style": "default",
155
+ "font_decoration": "default",
156
+ "font_line_height": "0.1",
157
+ "font_letter_spacing": 0
158
+ },
159
+ {
160
+ "key": "field_5eaaa75e4cb57",
161
+ "label": "Colors",
162
+ "name": "",
163
+ "type": "accordion",
164
+ "instructions": "",
165
+ "required": 0,
166
+ "conditional_logic": 0,
167
+ "wrapper": {
168
+ "width": "",
169
+ "class": "",
170
+ "id": ""
171
+ },
172
+ "open": 0,
173
+ "multi_expand": 0,
174
+ "endpoint": 0
175
  },
176
  {
177
  "key": "field_5cff986aa7551",
234
  "default_value": "#191e23"
235
  },
236
  {
237
+ "key": "field_5cff9951a7555",
238
+ "label": "Content Color",
239
+ "name": "acfb_accordion_content_color",
240
+ "type": "color_picker",
241
  "instructions": "",
242
  "required": 0,
243
  "conditional_logic": 0,
246
  "class": "",
247
  "id": ""
248
  },
249
+ "default_value": "#191e23"
 
 
 
 
 
250
  },
251
  {
252
  "key": "field_5cff9910a7554",
264
  "default_value": "#f3f4f5"
265
  },
266
  {
267
+ "key": "field_5eaaa76a4cb58",
268
+ "label": "Spacing",
269
+ "name": "",
270
+ "type": "accordion",
271
  "instructions": "",
272
  "required": 0,
273
  "conditional_logic": 0,
276
  "class": "",
277
  "id": ""
278
  },
279
+ "open": 0,
280
+ "multi_expand": 0,
281
+ "endpoint": 0
282
+ },
283
+ {
284
+ "key": "field_5eaaa7a02de4e",
285
+ "label": "Margin",
286
+ "name": "acfb_accordion_margin",
287
+ "type": "margin",
288
+ "instructions": "",
289
+ "required": 0,
290
+ "conditional_logic": 0,
291
+ "wrapper": {
292
+ "width": "",
293
+ "class": "",
294
+ "id": ""
295
+ },
296
+ "margin_enable": 0,
297
+ "margin_top": "",
298
+ "margin_right": "",
299
+ "margin_bottom": "",
300
+ "margin_left": ""
301
  },
302
  {
303
+ "key": "field_5eaaa7b02de4f",
304
+ "label": "Padding",
305
+ "name": "acfb_accordion_padding",
306
+ "type": "padding",
307
  "instructions": "",
308
  "required": 0,
309
  "conditional_logic": 0,
312
  "class": "",
313
  "id": ""
314
  },
315
+ "padding_enable": 0,
316
+ "padding_top": "",
317
+ "padding_right": "",
318
+ "padding_bottom": "",
319
+ "padding_left": ""
320
+ },
321
+ {
322
+ "key": "field_5eaaa7772de4d",
323
+ "label": "Other Setting",
324
+ "name": "",
325
+ "type": "accordion",
326
+ "instructions": "",
327
+ "required": 0,
328
+ "conditional_logic": 0,
329
+ "wrapper": {
330
+ "width": "",
331
+ "class": "",
332
+ "id": ""
333
+ },
334
+ "open": 0,
335
+ "multi_expand": 0,
336
+ "endpoint": 0
337
+ },
338
+ {
339
+ "key": "field_5d00c16d8e0e8",
340
+ "label": "Title Alignment",
341
+ "name": "acfb_accordion_title_alignment",
342
+ "type": "button_group",
343
+ "instructions": "",
344
+ "required": 0,
345
+ "conditional_logic": 0,
346
+ "wrapper": {
347
+ "width": "",
348
+ "class": "",
349
+ "id": ""
350
+ },
351
+ "choices": {
352
+ "left": "Left",
353
+ "center": "Center",
354
+ "right": "Right"
355
+ },
356
+ "allow_null": 0,
357
+ "default_value": "left",
358
+ "layout": "horizontal",
359
+ "return_format": "value"
360
  }
361
  ],
362
  "location": [
376
  "hide_on_screen": "",
377
  "active": 1,
378
  "description": "",
379
+ "modified": 1588243219
 
380
  }
acf-json/group_5d7b6d4b9609e.json CHANGED
@@ -124,26 +124,6 @@
124
  "ui_on_text": "",
125
  "ui_off_text": ""
126
  },
127
- {
128
- "key": "field_5d8203956c6fd",
129
- "label": "Height",
130
- "name": "acfb_flipbox_height",
131
- "type": "range",
132
- "instructions": "",
133
- "required": 0,
134
- "conditional_logic": 0,
135
- "wrapper": {
136
- "width": "",
137
- "class": "",
138
- "id": ""
139
- },
140
- "default_value": 300,
141
- "min": 100,
142
- "max": 1000,
143
- "step": "",
144
- "prepend": "",
145
- "append": "px"
146
- },
147
  {
148
  "key": "field_5d81f93be87c6",
149
  "label": "Front",
@@ -561,8 +541,140 @@
561
  "endpoint": 0
562
  },
563
  {
564
- "key": "field_5d8219a396034",
565
- "label": "Front",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
566
  "name": "",
567
  "type": "accordion",
568
  "instructions": "",
@@ -601,7 +713,7 @@
601
  },
602
  {
603
  "key": "field_5d820523dd0d7",
604
- "label": "Background Color",
605
  "name": "acfb_flipbox_front_background_color",
606
  "type": "color_picker",
607
  "instructions": "",
@@ -624,7 +736,7 @@
624
  },
625
  {
626
  "key": "field_5dc40d6b66255",
627
- "label": "Background Image",
628
  "name": "acfb_flipbox_front_background_image",
629
  "type": "image",
630
  "instructions": "",
@@ -656,7 +768,7 @@
656
  },
657
  {
658
  "key": "field_5dc67443f0a60",
659
- "label": "Overlay",
660
  "name": "acfb_flipbox_front_background_image_overlay_yesno",
661
  "type": "true_false",
662
  "instructions": "",
@@ -683,7 +795,7 @@
683
  },
684
  {
685
  "key": "field_5dc66e40e83a7",
686
- "label": "Background Overlay",
687
  "name": "acfb_flipbox_front_background_overlay",
688
  "type": "color_picker",
689
  "instructions": "",
@@ -711,7 +823,7 @@
711
  },
712
  {
713
  "key": "field_5dc670bd6fce0",
714
- "label": "Background Overlay Opacity",
715
  "name": "acfb_flipbox_front_background_overlay_opacity",
716
  "type": "range",
717
  "instructions": "",
@@ -739,7 +851,7 @@
739
  },
740
  {
741
  "key": "field_5d820541dd0d8",
742
- "label": "Title Color",
743
  "name": "acfb_flipbox_front_title_color",
744
  "type": "color_picker",
745
  "instructions": "",
@@ -752,29 +864,9 @@
752
  },
753
  "default_value": "#191e23"
754
  },
755
- {
756
- "key": "field_5d820b6cbd801",
757
- "label": "Title Size",
758
- "name": "acfb_flipbox_front_title_size",
759
- "type": "range",
760
- "instructions": "",
761
- "required": 0,
762
- "conditional_logic": 0,
763
- "wrapper": {
764
- "width": "",
765
- "class": "",
766
- "id": ""
767
- },
768
- "default_value": 32,
769
- "min": "",
770
- "max": 200,
771
- "step": "",
772
- "prepend": "",
773
- "append": "px"
774
- },
775
  {
776
  "key": "field_5d82057bdd0d9",
777
- "label": "Content Color",
778
  "name": "acfb_flipbox_front_content_color",
779
  "type": "color_picker",
780
  "instructions": "",
@@ -787,60 +879,6 @@
787
  },
788
  "default_value": "#191e23"
789
  },
790
- {
791
- "key": "field_5d820b98bd802",
792
- "label": "Content Size",
793
- "name": "acfb_flipbox_front_content_size",
794
- "type": "range",
795
- "instructions": "",
796
- "required": 0,
797
- "conditional_logic": 0,
798
- "wrapper": {
799
- "width": "",
800
- "class": "",
801
- "id": ""
802
- },
803
- "default_value": 18,
804
- "min": "",
805
- "max": "",
806
- "step": "",
807
- "prepend": "",
808
- "append": "px"
809
- },
810
- {
811
- "key": "field_5d8219cd96035",
812
- "label": "Front End",
813
- "name": "",
814
- "type": "accordion",
815
- "instructions": "",
816
- "required": 0,
817
- "conditional_logic": 0,
818
- "wrapper": {
819
- "width": "",
820
- "class": "",
821
- "id": ""
822
- },
823
- "open": 0,
824
- "multi_expand": 0,
825
- "endpoint": 1
826
- },
827
- {
828
- "key": "field_5d821a4cda55b",
829
- "label": "Back",
830
- "name": "",
831
- "type": "accordion",
832
- "instructions": "",
833
- "required": 0,
834
- "conditional_logic": 0,
835
- "wrapper": {
836
- "width": "",
837
- "class": "",
838
- "id": ""
839
- },
840
- "open": 0,
841
- "multi_expand": 0,
842
- "endpoint": 0
843
- },
844
  {
845
  "key": "field_5dc41755bf956",
846
  "label": "Back Background",
@@ -865,7 +903,7 @@
865
  },
866
  {
867
  "key": "field_5d8205f2dd0da",
868
- "label": "Background Color",
869
  "name": "acfb_flipbox_back_background_color",
870
  "type": "color_picker",
871
  "instructions": "",
@@ -888,7 +926,7 @@
888
  },
889
  {
890
  "key": "field_5dc4178e95502",
891
- "label": "Background Image",
892
  "name": "acfb_flipbox_back_background_image",
893
  "type": "image",
894
  "instructions": "",
@@ -920,7 +958,7 @@
920
  },
921
  {
922
  "key": "field_5dc67ec3b7dee",
923
- "label": "Overlay",
924
  "name": "acfb_flipbox_back_background_image_overlay_yesno",
925
  "type": "true_false",
926
  "instructions": "",
@@ -947,7 +985,7 @@
947
  },
948
  {
949
  "key": "field_5dc66e6ce83a8",
950
- "label": "Background Overlay",
951
  "name": "acfb_flipbox_back_background_overlay",
952
  "type": "color_picker",
953
  "instructions": "",
@@ -975,7 +1013,7 @@
975
  },
976
  {
977
  "key": "field_5dc671196fce1",
978
- "label": "Background Overlay Opacity",
979
  "name": "acfb_flipbox_back_background_overlay_opacity",
980
  "type": "range",
981
  "instructions": "",
@@ -1008,7 +1046,7 @@
1008
  },
1009
  {
1010
  "key": "field_5d820604dd0db",
1011
- "label": "Title Color",
1012
  "name": "acfb_flipbox_back_title_color",
1013
  "type": "color_picker",
1014
  "instructions": "",
@@ -1021,29 +1059,9 @@
1021
  },
1022
  "default_value": "#191e23"
1023
  },
1024
- {
1025
- "key": "field_5d820bc4bd803",
1026
- "label": "Title Size",
1027
- "name": "acfb_flipbox_back_title_size",
1028
- "type": "range",
1029
- "instructions": "",
1030
- "required": 0,
1031
- "conditional_logic": 0,
1032
- "wrapper": {
1033
- "width": "",
1034
- "class": "",
1035
- "id": ""
1036
- },
1037
- "default_value": 32,
1038
- "min": "",
1039
- "max": 200,
1040
- "step": "",
1041
- "prepend": "",
1042
- "append": "px"
1043
- },
1044
  {
1045
  "key": "field_5d820619dd0dc",
1046
- "label": "Content Color",
1047
  "name": "acfb_flipbox_back_content_color",
1048
  "type": "color_picker",
1049
  "instructions": "",
@@ -1056,29 +1074,9 @@
1056
  },
1057
  "default_value": "#191e23"
1058
  },
1059
- {
1060
- "key": "field_5d820bdbbd804",
1061
- "label": "Content Size",
1062
- "name": "acfb_flipbox_back_content_size",
1063
- "type": "range",
1064
- "instructions": "",
1065
- "required": 0,
1066
- "conditional_logic": 0,
1067
- "wrapper": {
1068
- "width": "",
1069
- "class": "",
1070
- "id": ""
1071
- },
1072
- "default_value": 18,
1073
- "min": "",
1074
- "max": "",
1075
- "step": "",
1076
- "prepend": "",
1077
- "append": "px"
1078
- },
1079
  {
1080
  "key": "field_5d820649dd0dd",
1081
- "label": "Button Background Color",
1082
  "name": "acfb_flipbox_back_button_background",
1083
  "type": "color_picker",
1084
  "instructions": "",
@@ -1093,7 +1091,7 @@
1093
  },
1094
  {
1095
  "key": "field_5d820665dd0de",
1096
- "label": "Button Text Color",
1097
  "name": "acfb_flipbox_back_button_text_color",
1098
  "type": "color_picker",
1099
  "instructions": "",
@@ -1108,7 +1106,7 @@
1108
  },
1109
  {
1110
  "key": "field_5d82067edd0df",
1111
- "label": "Button Background Hover Color",
1112
  "name": "acfb_flipbox_back_button_background_hover_color",
1113
  "type": "color_picker",
1114
  "instructions": "",
@@ -1123,7 +1121,7 @@
1123
  },
1124
  {
1125
  "key": "field_5d820699dd0e0",
1126
- "label": "Button Text Hover Color",
1127
  "name": "acfb_flipbox_back_button_text_hover_color",
1128
  "type": "color_picker",
1129
  "instructions": "",
@@ -1137,9 +1135,26 @@
1137
  "default_value": "#191e23"
1138
  },
1139
  {
1140
- "key": "field_5d820bf9bd805",
1141
- "label": "Button Size",
1142
- "name": "acfb_flipbox_back_button_size",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1143
  "type": "range",
1144
  "instructions": "",
1145
  "required": 0,
@@ -1149,16 +1164,16 @@
1149
  "class": "",
1150
  "id": ""
1151
  },
1152
- "default_value": 19,
1153
- "min": "",
1154
- "max": "",
1155
  "step": "",
1156
  "prepend": "",
1157
  "append": "px"
1158
  },
1159
  {
1160
- "key": "field_5d821a57da55c",
1161
- "label": "Back End",
1162
  "name": "",
1163
  "type": "accordion",
1164
  "instructions": "",
@@ -1171,7 +1186,64 @@
1171
  },
1172
  "open": 0,
1173
  "multi_expand": 0,
1174
- "endpoint": 1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1175
  }
1176
  ],
1177
  "location": [
@@ -1191,5 +1263,5 @@
1191
  "hide_on_screen": "",
1192
  "active": 1,
1193
  "description": "",
1194
- "modified": 1576332144
1195
  }
124
  "ui_on_text": "",
125
  "ui_off_text": ""
126
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
  {
128
  "key": "field_5d81f93be87c6",
129
  "label": "Front",
541
  "endpoint": 0
542
  },
543
  {
544
+ "key": "field_5eabd7dbb99a9",
545
+ "label": "Typography",
546
+ "name": "",
547
+ "type": "accordion",
548
+ "instructions": "",
549
+ "required": 0,
550
+ "conditional_logic": 0,
551
+ "wrapper": {
552
+ "width": "",
553
+ "class": "",
554
+ "id": ""
555
+ },
556
+ "open": 0,
557
+ "multi_expand": 0,
558
+ "endpoint": 0
559
+ },
560
+ {
561
+ "key": "field_5eabd883b99af",
562
+ "label": "Front Title",
563
+ "name": "acfb_flipbox_front_title_typo",
564
+ "type": "typography",
565
+ "instructions": "",
566
+ "required": 0,
567
+ "conditional_logic": 0,
568
+ "wrapper": {
569
+ "width": "",
570
+ "class": "",
571
+ "id": ""
572
+ },
573
+ "font_family_enable": 0,
574
+ "font_family": "default",
575
+ "font_size": 32,
576
+ "font_weight": "default",
577
+ "font_transform": "default",
578
+ "font_style": "default",
579
+ "font_decoration": "default",
580
+ "font_line_height": "0.1",
581
+ "font_letter_spacing": 0
582
+ },
583
+ {
584
+ "key": "field_5eabd8a5b99b0",
585
+ "label": "Front Content",
586
+ "name": "acfb_flipbox_front_content_typo",
587
+ "type": "typography",
588
+ "instructions": "",
589
+ "required": 0,
590
+ "conditional_logic": 0,
591
+ "wrapper": {
592
+ "width": "",
593
+ "class": "",
594
+ "id": ""
595
+ },
596
+ "font_family_enable": 0,
597
+ "font_family": "default",
598
+ "font_size": 18,
599
+ "font_weight": "default",
600
+ "font_transform": "default",
601
+ "font_style": "default",
602
+ "font_decoration": "default",
603
+ "font_line_height": "0.1",
604
+ "font_letter_spacing": 0
605
+ },
606
+ {
607
+ "key": "field_5eabd8cfb99b1",
608
+ "label": "Back Title",
609
+ "name": "acfb_flipbox_back_title_typo",
610
+ "type": "typography",
611
+ "instructions": "",
612
+ "required": 0,
613
+ "conditional_logic": 0,
614
+ "wrapper": {
615
+ "width": "",
616
+ "class": "",
617
+ "id": ""
618
+ },
619
+ "font_family_enable": 0,
620
+ "font_family": "default",
621
+ "font_size": 32,
622
+ "font_weight": "default",
623
+ "font_transform": "default",
624
+ "font_style": "default",
625
+ "font_decoration": "default",
626
+ "font_line_height": "0.1",
627
+ "font_letter_spacing": 0
628
+ },
629
+ {
630
+ "key": "field_5eabd8e5b99b2",
631
+ "label": "Back Content",
632
+ "name": "acfb_flipbox_back_content_typo",
633
+ "type": "typography",
634
+ "instructions": "",
635
+ "required": 0,
636
+ "conditional_logic": 0,
637
+ "wrapper": {
638
+ "width": "",
639
+ "class": "",
640
+ "id": ""
641
+ },
642
+ "font_family_enable": 0,
643
+ "font_family": "default",
644
+ "font_size": 18,
645
+ "font_weight": "default",
646
+ "font_transform": "default",
647
+ "font_style": "default",
648
+ "font_decoration": "default",
649
+ "font_line_height": "0.1",
650
+ "font_letter_spacing": 0
651
+ },
652
+ {
653
+ "key": "field_5eabd906b99b3",
654
+ "label": "Back Button",
655
+ "name": "acfb_flipbox_back_button_typo",
656
+ "type": "typography",
657
+ "instructions": "",
658
+ "required": 0,
659
+ "conditional_logic": 0,
660
+ "wrapper": {
661
+ "width": "",
662
+ "class": "",
663
+ "id": ""
664
+ },
665
+ "font_family_enable": 0,
666
+ "font_family": "default",
667
+ "font_size": 19,
668
+ "font_weight": "default",
669
+ "font_transform": "default",
670
+ "font_style": "default",
671
+ "font_decoration": "default",
672
+ "font_line_height": "0.1",
673
+ "font_letter_spacing": 0
674
+ },
675
+ {
676
+ "key": "field_5eabd7e2b99aa",
677
+ "label": "Colors",
678
  "name": "",
679
  "type": "accordion",
680
  "instructions": "",
713
  },
714
  {
715
  "key": "field_5d820523dd0d7",
716
+ "label": "Front Background Color",
717
  "name": "acfb_flipbox_front_background_color",
718
  "type": "color_picker",
719
  "instructions": "",
736
  },
737
  {
738
  "key": "field_5dc40d6b66255",
739
+ "label": "Front Background Image",
740
  "name": "acfb_flipbox_front_background_image",
741
  "type": "image",
742
  "instructions": "",
768
  },
769
  {
770
  "key": "field_5dc67443f0a60",
771
+ "label": "Front Overlay",
772
  "name": "acfb_flipbox_front_background_image_overlay_yesno",
773
  "type": "true_false",
774
  "instructions": "",
795
  },
796
  {
797
  "key": "field_5dc66e40e83a7",
798
+ "label": "Front Background Overlay",
799
  "name": "acfb_flipbox_front_background_overlay",
800
  "type": "color_picker",
801
  "instructions": "",
823
  },
824
  {
825
  "key": "field_5dc670bd6fce0",
826
+ "label": "Front Background Overlay Opacity",
827
  "name": "acfb_flipbox_front_background_overlay_opacity",
828
  "type": "range",
829
  "instructions": "",
851
  },
852
  {
853
  "key": "field_5d820541dd0d8",
854
+ "label": "Front Title Color",
855
  "name": "acfb_flipbox_front_title_color",
856
  "type": "color_picker",
857
  "instructions": "",
864
  },
865
  "default_value": "#191e23"
866
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
867
  {
868
  "key": "field_5d82057bdd0d9",
869
+ "label": "Front Content Color",
870
  "name": "acfb_flipbox_front_content_color",
871
  "type": "color_picker",
872
  "instructions": "",
879
  },
880
  "default_value": "#191e23"
881
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
882
  {
883
  "key": "field_5dc41755bf956",
884
  "label": "Back Background",
903
  },
904
  {
905
  "key": "field_5d8205f2dd0da",
906
+ "label": "Back Background Color",
907
  "name": "acfb_flipbox_back_background_color",
908
  "type": "color_picker",
909
  "instructions": "",
926
  },
927
  {
928
  "key": "field_5dc4178e95502",
929
+ "label": "Back Background Image",
930
  "name": "acfb_flipbox_back_background_image",
931
  "type": "image",
932
  "instructions": "",
958
  },
959
  {
960
  "key": "field_5dc67ec3b7dee",
961
+ "label": "Back Overlay",
962
  "name": "acfb_flipbox_back_background_image_overlay_yesno",
963
  "type": "true_false",
964
  "instructions": "",
985
  },
986
  {
987
  "key": "field_5dc66e6ce83a8",
988
+ "label": "Back Background Overlay",
989
  "name": "acfb_flipbox_back_background_overlay",
990
  "type": "color_picker",
991
  "instructions": "",
1013
  },
1014
  {
1015
  "key": "field_5dc671196fce1",
1016
+ "label": "Back Background Overlay Opacity",
1017
  "name": "acfb_flipbox_back_background_overlay_opacity",
1018
  "type": "range",
1019
  "instructions": "",
1046
  },
1047
  {
1048
  "key": "field_5d820604dd0db",
1049
+ "label": "Back Title Color",
1050
  "name": "acfb_flipbox_back_title_color",
1051
  "type": "color_picker",
1052
  "instructions": "",
1059
  },
1060
  "default_value": "#191e23"
1061
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1062
  {
1063
  "key": "field_5d820619dd0dc",
1064
+ "label": "Back Content Color",
1065
  "name": "acfb_flipbox_back_content_color",
1066
  "type": "color_picker",
1067
  "instructions": "",
1074
  },
1075
  "default_value": "#191e23"
1076
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1077
  {
1078
  "key": "field_5d820649dd0dd",
1079
+ "label": "Back Button Background Color",
1080
  "name": "acfb_flipbox_back_button_background",
1081
  "type": "color_picker",
1082
  "instructions": "",
1091
  },
1092
  {
1093
  "key": "field_5d820665dd0de",
1094
+ "label": "Back Button Text Color",
1095
  "name": "acfb_flipbox_back_button_text_color",
1096
  "type": "color_picker",
1097
  "instructions": "",
1106
  },
1107
  {
1108
  "key": "field_5d82067edd0df",
1109
+ "label": "Back Button Background Hover Color",
1110
  "name": "acfb_flipbox_back_button_background_hover_color",
1111
  "type": "color_picker",
1112
  "instructions": "",
1121
  },
1122
  {
1123
  "key": "field_5d820699dd0e0",
1124
+ "label": "Back Button Text Hover Color",
1125
  "name": "acfb_flipbox_back_button_text_hover_color",
1126
  "type": "color_picker",
1127
  "instructions": "",
1135
  "default_value": "#191e23"
1136
  },
1137
  {
1138
+ "key": "field_5eabd7e7b99ab",
1139
+ "label": "Sizing",
1140
+ "name": "",
1141
+ "type": "accordion",
1142
+ "instructions": "",
1143
+ "required": 0,
1144
+ "conditional_logic": 0,
1145
+ "wrapper": {
1146
+ "width": "",
1147
+ "class": "",
1148
+ "id": ""
1149
+ },
1150
+ "open": 0,
1151
+ "multi_expand": 0,
1152
+ "endpoint": 0
1153
+ },
1154
+ {
1155
+ "key": "field_5d8203956c6fd",
1156
+ "label": "Height",
1157
+ "name": "acfb_flipbox_height",
1158
  "type": "range",
1159
  "instructions": "",
1160
  "required": 0,
1164
  "class": "",
1165
  "id": ""
1166
  },
1167
+ "default_value": 300,
1168
+ "min": 100,
1169
+ "max": 1000,
1170
  "step": "",
1171
  "prepend": "",
1172
  "append": "px"
1173
  },
1174
  {
1175
+ "key": "field_5eabd7eeb99ac",
1176
+ "label": "Spacing",
1177
  "name": "",
1178
  "type": "accordion",
1179
  "instructions": "",
1186
  },
1187
  "open": 0,
1188
  "multi_expand": 0,
1189
+ "endpoint": 0
1190
+ },
1191
+ {
1192
+ "key": "field_5eabd806b99ad",
1193
+ "label": "Margin",
1194
+ "name": "acfb_flipbox_margin",
1195
+ "type": "margin",
1196
+ "instructions": "",
1197
+ "required": 0,
1198
+ "conditional_logic": 0,
1199
+ "wrapper": {
1200
+ "width": "",
1201
+ "class": "",
1202
+ "id": ""
1203
+ },
1204
+ "margin_enable": 0,
1205
+ "margin_top": "",
1206
+ "margin_right": "",
1207
+ "margin_bottom": "",
1208
+ "margin_left": ""
1209
+ },
1210
+ {
1211
+ "key": "field_5eabd81ab99ae",
1212
+ "label": "Padding",
1213
+ "name": "acfb_flipbox_padding",
1214
+ "type": "padding",
1215
+ "instructions": "",
1216
+ "required": 0,
1217
+ "conditional_logic": 0,
1218
+ "wrapper": {
1219
+ "width": "",
1220
+ "class": "",
1221
+ "id": ""
1222
+ },
1223
+ "padding_enable": 0,
1224
+ "padding_top": "",
1225
+ "padding_right": "",
1226
+ "padding_bottom": "",
1227
+ "padding_left": ""
1228
+ },
1229
+ {
1230
+ "key": "field_5eabdb88f35ed",
1231
+ "label": "Inner Padding",
1232
+ "name": "acfb_flipbox_inner_padding",
1233
+ "type": "padding",
1234
+ "instructions": "",
1235
+ "required": 0,
1236
+ "conditional_logic": 0,
1237
+ "wrapper": {
1238
+ "width": "",
1239
+ "class": "",
1240
+ "id": ""
1241
+ },
1242
+ "padding_enable": 0,
1243
+ "padding_top": 15,
1244
+ "padding_right": 15,
1245
+ "padding_bottom": 15,
1246
+ "padding_left": 15
1247
  }
1248
  ],
1249
  "location": [
1263
  "hide_on_screen": "",
1264
  "active": 1,
1265
  "description": "",
1266
+ "modified": 1588321538
1267
  }
acf-json/group_5d7f7f7dd9f24.json CHANGED
@@ -270,10 +270,10 @@
270
  "endpoint": 0
271
  },
272
  {
273
- "key": "field_5d80c9f0f16d8",
274
- "label": "Background Color",
275
- "name": "acfb_timeline_background",
276
- "type": "color_picker",
277
  "instructions": "",
278
  "required": 0,
279
  "conditional_logic": 0,
@@ -282,13 +282,15 @@
282
  "class": "",
283
  "id": ""
284
  },
285
- "default_value": "#f3f4f5"
 
 
286
  },
287
  {
288
- "key": "field_5d80ca32f16d9",
289
- "label": "Image Size",
290
- "name": "acfb_timeline_image_size",
291
- "type": "range",
292
  "instructions": "",
293
  "required": 0,
294
  "conditional_logic": 0,
@@ -297,18 +299,21 @@
297
  "class": "",
298
  "id": ""
299
  },
300
- "default_value": 100,
301
- "min": "",
302
- "max": "",
303
- "step": "",
304
- "prepend": "",
305
- "append": "%"
 
 
 
306
  },
307
  {
308
- "key": "field_5d83410a3f35e",
309
- "label": "Date Color",
310
- "name": "acfb_timeline_date_color",
311
- "type": "color_picker",
312
  "instructions": "",
313
  "required": 0,
314
  "conditional_logic": 0,
@@ -317,13 +322,21 @@
317
  "class": "",
318
  "id": ""
319
  },
320
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
321
  },
322
  {
323
- "key": "field_5d8341503f35f",
324
- "label": "Date Size",
325
- "name": "acfb_timeline_date_size",
326
- "type": "range",
327
  "instructions": "",
328
  "required": 0,
329
  "conditional_logic": 0,
@@ -332,17 +345,60 @@
332
  "class": "",
333
  "id": ""
334
  },
335
- "default_value": 17,
336
- "min": "",
337
- "max": "",
338
- "step": "",
339
- "prepend": "",
340
- "append": "px"
 
 
 
341
  },
342
  {
343
- "key": "field_5d80ca4ef16da",
344
- "label": "Title Color",
345
- "name": "acfb_timeline_title_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  "type": "color_picker",
347
  "instructions": "",
348
  "required": 0,
@@ -352,13 +408,13 @@
352
  "class": "",
353
  "id": ""
354
  },
355
- "default_value": "#191e23"
356
  },
357
  {
358
- "key": "field_5d80ca72f16db",
359
- "label": "Title Size",
360
- "name": "acfb_timeline_title_size",
361
- "type": "range",
362
  "instructions": "",
363
  "required": 0,
364
  "conditional_logic": 0,
@@ -367,17 +423,12 @@
367
  "class": "",
368
  "id": ""
369
  },
370
- "default_value": 32,
371
- "min": "",
372
- "max": 200,
373
- "step": "",
374
- "prepend": "",
375
- "append": "px"
376
  },
377
  {
378
- "key": "field_5d80caa0f16dc",
379
- "label": "Content Color",
380
- "name": "acfb_timeline_content_color",
381
  "type": "color_picker",
382
  "instructions": "",
383
  "required": 0,
@@ -390,10 +441,10 @@
390
  "default_value": "#191e23"
391
  },
392
  {
393
- "key": "field_5d80cab3f16dd",
394
- "label": "Content Size",
395
- "name": "acfb_timeline_content_size",
396
- "type": "range",
397
  "instructions": "",
398
  "required": 0,
399
  "conditional_logic": 0,
@@ -402,12 +453,7 @@
402
  "class": "",
403
  "id": ""
404
  },
405
- "default_value": 18,
406
- "min": "",
407
- "max": "",
408
- "step": "",
409
- "prepend": "",
410
- "append": "px"
411
  },
412
  {
413
  "key": "field_5d80cadef16de",
@@ -469,26 +515,6 @@
469
  },
470
  "default_value": "#191e23"
471
  },
472
- {
473
- "key": "field_5d80cb38f16e2",
474
- "label": "Button Size",
475
- "name": "acfb_timeline_button_size",
476
- "type": "range",
477
- "instructions": "",
478
- "required": 0,
479
- "conditional_logic": 0,
480
- "wrapper": {
481
- "width": "",
482
- "class": "",
483
- "id": ""
484
- },
485
- "default_value": 19,
486
- "min": "",
487
- "max": "",
488
- "step": "",
489
- "prepend": "",
490
- "append": "px"
491
- },
492
  {
493
  "key": "field_5d8342dfe5536",
494
  "label": "Divider Color",
@@ -533,6 +559,117 @@
533
  "id": ""
534
  },
535
  "default_value": "#191e23"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
536
  }
537
  ],
538
  "location": [
@@ -552,5 +689,5 @@
552
  "hide_on_screen": "",
553
  "active": 1,
554
  "description": "",
555
- "modified": 1576491910
556
  }
270
  "endpoint": 0
271
  },
272
  {
273
+ "key": "field_5eabe90a02824",
274
+ "label": "Typography",
275
+ "name": "",
276
+ "type": "accordion",
277
  "instructions": "",
278
  "required": 0,
279
  "conditional_logic": 0,
282
  "class": "",
283
  "id": ""
284
  },
285
+ "open": 0,
286
+ "multi_expand": 0,
287
+ "endpoint": 0
288
  },
289
  {
290
+ "key": "field_5eabe9ed0282a",
291
+ "label": "Title",
292
+ "name": "acfb_timeline_title_typo",
293
+ "type": "typography",
294
  "instructions": "",
295
  "required": 0,
296
  "conditional_logic": 0,
299
  "class": "",
300
  "id": ""
301
  },
302
+ "font_family_enable": 0,
303
+ "font_family": "default",
304
+ "font_size": 32,
305
+ "font_weight": "default",
306
+ "font_transform": "default",
307
+ "font_style": "default",
308
+ "font_decoration": "default",
309
+ "font_line_height": "0.1",
310
+ "font_letter_spacing": 0
311
  },
312
  {
313
+ "key": "field_5eabea180282b",
314
+ "label": "Date",
315
+ "name": "acfb_timeline_date_typo",
316
+ "type": "typography",
317
  "instructions": "",
318
  "required": 0,
319
  "conditional_logic": 0,
322
  "class": "",
323
  "id": ""
324
  },
325
+ "font_family_enable": 0,
326
+ "font_family": "default",
327
+ "font_size": 17,
328
+ "font_weight": "default",
329
+ "font_transform": "default",
330
+ "font_style": "default",
331
+ "font_decoration": "default",
332
+ "font_line_height": "0.1",
333
+ "font_letter_spacing": 0
334
  },
335
  {
336
+ "key": "field_5eabea2c0282c",
337
+ "label": "Content",
338
+ "name": "acfb_timeline_content_typo",
339
+ "type": "typography",
340
  "instructions": "",
341
  "required": 0,
342
  "conditional_logic": 0,
345
  "class": "",
346
  "id": ""
347
  },
348
+ "font_family_enable": 0,
349
+ "font_family": "default",
350
+ "font_size": 18,
351
+ "font_weight": "default",
352
+ "font_transform": "default",
353
+ "font_style": "default",
354
+ "font_decoration": "default",
355
+ "font_line_height": "0.1",
356
+ "font_letter_spacing": 0
357
  },
358
  {
359
+ "key": "field_5eabea480282d",
360
+ "label": "Button",
361
+ "name": "acfb_timeline_button_typo",
362
+ "type": "typography",
363
+ "instructions": "",
364
+ "required": 0,
365
+ "conditional_logic": 0,
366
+ "wrapper": {
367
+ "width": "",
368
+ "class": "",
369
+ "id": ""
370
+ },
371
+ "font_family_enable": 0,
372
+ "font_family": "default",
373
+ "font_size": 19,
374
+ "font_weight": "default",
375
+ "font_transform": "default",
376
+ "font_style": "default",
377
+ "font_decoration": "default",
378
+ "font_line_height": "0.1",
379
+ "font_letter_spacing": 0
380
+ },
381
+ {
382
+ "key": "field_5eabe91a02825",
383
+ "label": "Colors",
384
+ "name": "",
385
+ "type": "accordion",
386
+ "instructions": "",
387
+ "required": 0,
388
+ "conditional_logic": 0,
389
+ "wrapper": {
390
+ "width": "",
391
+ "class": "",
392
+ "id": ""
393
+ },
394
+ "open": 0,
395
+ "multi_expand": 0,
396
+ "endpoint": 0
397
+ },
398
+ {
399
+ "key": "field_5d80c9f0f16d8",
400
+ "label": "Background Color",
401
+ "name": "acfb_timeline_background",
402
  "type": "color_picker",
403
  "instructions": "",
404
  "required": 0,
408
  "class": "",
409
  "id": ""
410
  },
411
+ "default_value": "#f3f4f5"
412
  },
413
  {
414
+ "key": "field_5d83410a3f35e",
415
+ "label": "Date Color",
416
+ "name": "acfb_timeline_date_color",
417
+ "type": "color_picker",
418
  "instructions": "",
419
  "required": 0,
420
  "conditional_logic": 0,
423
  "class": "",
424
  "id": ""
425
  },
426
+ "default_value": "#191e23"
 
 
 
 
 
427
  },
428
  {
429
+ "key": "field_5d80ca4ef16da",
430
+ "label": "Title Color",
431
+ "name": "acfb_timeline_title_color",
432
  "type": "color_picker",
433
  "instructions": "",
434
  "required": 0,
441
  "default_value": "#191e23"
442
  },
443
  {
444
+ "key": "field_5d80caa0f16dc",
445
+ "label": "Content Color",
446
+ "name": "acfb_timeline_content_color",
447
+ "type": "color_picker",
448
  "instructions": "",
449
  "required": 0,
450
  "conditional_logic": 0,
453
  "class": "",
454
  "id": ""
455
  },
456
+ "default_value": "#191e23"
 
 
 
 
 
457
  },
458
  {
459
  "key": "field_5d80cadef16de",
515
  },
516
  "default_value": "#191e23"
517
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
518
  {
519
  "key": "field_5d8342dfe5536",
520
  "label": "Divider Color",
559
  "id": ""
560
  },
561
  "default_value": "#191e23"
562
+ },
563
+ {
564
+ "key": "field_5eabe92102826",
565
+ "label": "Sizing",
566
+ "name": "",
567
+ "type": "accordion",
568
+ "instructions": "",
569
+ "required": 0,
570
+ "conditional_logic": 0,
571
+ "wrapper": {
572
+ "width": "",
573
+ "class": "",
574
+ "id": ""
575
+ },
576
+ "open": 0,
577
+ "multi_expand": 0,
578
+ "endpoint": 0
579
+ },
580
+ {
581
+ "key": "field_5d80ca32f16d9",
582
+ "label": "Image Size",
583
+ "name": "acfb_timeline_image_size",
584
+ "type": "range",
585
+ "instructions": "",
586
+ "required": 0,
587
+ "conditional_logic": 0,
588
+ "wrapper": {
589
+ "width": "",
590
+ "class": "",
591
+ "id": ""
592
+ },
593
+ "default_value": 100,
594
+ "min": "",
595
+ "max": "",
596
+ "step": "",
597
+ "prepend": "",
598
+ "append": "%"
599
+ },
600
+ {
601
+ "key": "field_5eabe92e02827",
602
+ "label": "Spacing",
603
+ "name": "",
604
+ "type": "accordion",
605
+ "instructions": "",
606
+ "required": 0,
607
+ "conditional_logic": 0,
608
+ "wrapper": {
609
+ "width": "",
610
+ "class": "",
611
+ "id": ""
612
+ },
613
+ "open": 0,
614
+ "multi_expand": 0,
615
+ "endpoint": 0
616
+ },
617
+ {
618
+ "key": "field_5eabea710282e",
619
+ "label": "Margin",
620
+ "name": "acfb_timeline_margin",
621
+ "type": "margin",
622
+ "instructions": "",
623
+ "required": 0,
624
+ "conditional_logic": 0,
625
+ "wrapper": {
626
+ "width": "",
627
+ "class": "",
628
+ "id": ""
629
+ },
630
+ "margin_enable": 0,
631
+ "margin_top": "",
632
+ "margin_right": "",
633
+ "margin_bottom": "",
634
+ "margin_left": ""
635
+ },
636
+ {
637
+ "key": "field_5eabea7f0282f",
638
+ "label": "Padding",
639
+ "name": "acfb_timeline_padding",
640
+ "type": "padding",
641
+ "instructions": "",
642
+ "required": 0,
643
+ "conditional_logic": 0,
644
+ "wrapper": {
645
+ "width": "",
646
+ "class": "",
647
+ "id": ""
648
+ },
649
+ "padding_enable": 0,
650
+ "padding_top": "",
651
+ "padding_right": "",
652
+ "padding_bottom": "",
653
+ "padding_left": ""
654
+ },
655
+ {
656
+ "key": "field_5eabeb219e80e",
657
+ "label": "Inner Padding",
658
+ "name": "acfb_timeline_inner_padding",
659
+ "type": "padding",
660
+ "instructions": "",
661
+ "required": 0,
662
+ "conditional_logic": 0,
663
+ "wrapper": {
664
+ "width": "",
665
+ "class": "",
666
+ "id": ""
667
+ },
668
+ "padding_enable": 0,
669
+ "padding_top": 20,
670
+ "padding_right": 30,
671
+ "padding_bottom": 20,
672
+ "padding_left": 30
673
  }
674
  ],
675
  "location": [
689
  "hide_on_screen": "",
690
  "active": 1,
691
  "description": "",
692
+ "modified": 1588325398
693
  }
acf-json/group_5d80d38c44b1c.json CHANGED
@@ -285,6 +285,109 @@
285
  "placement": "top",
286
  "endpoint": 0
287
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
288
  {
289
  "key": "field_5da98e2f25a0b",
290
  "label": "Overlay Color",
@@ -355,26 +458,6 @@
355
  },
356
  "default_value": "#ffffff"
357
  },
358
- {
359
- "key": "field_5d8385f927cfb",
360
- "label": "Title Size",
361
- "name": "acfb_image_accordion_title_size",
362
- "type": "range",
363
- "instructions": "",
364
- "required": 0,
365
- "conditional_logic": 0,
366
- "wrapper": {
367
- "width": "",
368
- "class": "",
369
- "id": ""
370
- },
371
- "default_value": 32,
372
- "min": "",
373
- "max": 200,
374
- "step": "",
375
- "prepend": "",
376
- "append": "px"
377
- },
378
  {
379
  "key": "field_5d83863227cfc",
380
  "label": "Content Color",
@@ -390,26 +473,6 @@
390
  },
391
  "default_value": "#ffffff"
392
  },
393
- {
394
- "key": "field_5d83867627cfd",
395
- "label": "Content Size",
396
- "name": "acfb_image_accordion_content_size",
397
- "type": "range",
398
- "instructions": "",
399
- "required": 0,
400
- "conditional_logic": 0,
401
- "wrapper": {
402
- "width": "",
403
- "class": "",
404
- "id": ""
405
- },
406
- "default_value": 18,
407
- "min": "",
408
- "max": "",
409
- "step": "",
410
- "prepend": "",
411
- "append": "px"
412
- },
413
  {
414
  "key": "field_5d8386a927cfe",
415
  "label": "Button Background Color",
@@ -471,10 +534,10 @@
471
  "default_value": "#191e23"
472
  },
473
  {
474
- "key": "field_5d8386ee27d02",
475
- "label": "Button Size",
476
- "name": "acfb_image_accordion_button_size",
477
- "type": "range",
478
  "instructions": "",
479
  "required": 0,
480
  "conditional_logic": 0,
@@ -483,12 +546,66 @@
483
  "class": "",
484
  "id": ""
485
  },
486
- "default_value": 19,
487
- "min": "",
488
- "max": "",
489
- "step": "",
490
- "prepend": "",
491
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
492
  }
493
  ],
494
  "location": [
@@ -508,5 +625,5 @@
508
  "hide_on_screen": "",
509
  "active": 1,
510
  "description": "",
511
- "modified": 1576492026
512
  }
285
  "placement": "top",
286
  "endpoint": 0
287
  },
288
+ {
289
+ "key": "field_5eaad09df0b4d",
290
+ "label": "Typography",
291
+ "name": "",
292
+ "type": "accordion",
293
+ "instructions": "",
294
+ "required": 0,
295
+ "conditional_logic": 0,
296
+ "wrapper": {
297
+ "width": "",
298
+ "class": "",
299
+ "id": ""
300
+ },
301
+ "open": 0,
302
+ "multi_expand": 0,
303
+ "endpoint": 0
304
+ },
305
+ {
306
+ "key": "field_5eaad0cdf0b50",
307
+ "label": "Title",
308
+ "name": "acfb_image_accordion_title_typo",
309
+ "type": "typography",
310
+ "instructions": "",
311
+ "required": 0,
312
+ "conditional_logic": 0,
313
+ "wrapper": {
314
+ "width": "",
315
+ "class": "",
316
+ "id": ""
317
+ },
318
+ "font_family_enable": 0,
319
+ "font_family": "default",
320
+ "font_size": 32,
321
+ "font_weight": "default",
322
+ "font_transform": "default",
323
+ "font_style": "default",
324
+ "font_decoration": "default",
325
+ "font_line_height": "0.1",
326
+ "font_letter_spacing": 0
327
+ },
328
+ {
329
+ "key": "field_5eaad0eef0b51",
330
+ "label": "Content",
331
+ "name": "acfb_image_accordion_content_typo",
332
+ "type": "typography",
333
+ "instructions": "",
334
+ "required": 0,
335
+ "conditional_logic": 0,
336
+ "wrapper": {
337
+ "width": "",
338
+ "class": "",
339
+ "id": ""
340
+ },
341
+ "font_family_enable": 0,
342
+ "font_family": "default",
343
+ "font_size": 18,
344
+ "font_weight": "default",
345
+ "font_transform": "default",
346
+ "font_style": "default",
347
+ "font_decoration": "default",
348
+ "font_line_height": "0.1",
349
+ "font_letter_spacing": 0
350
+ },
351
+ {
352
+ "key": "field_5eaad10bf0b52",
353
+ "label": "Button",
354
+ "name": "acfb_image_accordion_button_typo",
355
+ "type": "typography",
356
+ "instructions": "",
357
+ "required": 0,
358
+ "conditional_logic": 0,
359
+ "wrapper": {
360
+ "width": "",
361
+ "class": "",
362
+ "id": ""
363
+ },
364
+ "font_family_enable": 0,
365
+ "font_family": "default",
366
+ "font_size": 19,
367
+ "font_weight": "default",
368
+ "font_transform": "default",
369
+ "font_style": "default",
370
+ "font_decoration": "default",
371
+ "font_line_height": "0.1",
372
+ "font_letter_spacing": 0
373
+ },
374
+ {
375
+ "key": "field_5eaad0a4f0b4e",
376
+ "label": "Colors",
377
+ "name": "",
378
+ "type": "accordion",
379
+ "instructions": "",
380
+ "required": 0,
381
+ "conditional_logic": 0,
382
+ "wrapper": {
383
+ "width": "",
384
+ "class": "",
385
+ "id": ""
386
+ },
387
+ "open": 0,
388
+ "multi_expand": 0,
389
+ "endpoint": 0
390
+ },
391
  {
392
  "key": "field_5da98e2f25a0b",
393
  "label": "Overlay Color",
458
  },
459
  "default_value": "#ffffff"
460
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
461
  {
462
  "key": "field_5d83863227cfc",
463
  "label": "Content Color",
473
  },
474
  "default_value": "#ffffff"
475
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  {
477
  "key": "field_5d8386a927cfe",
478
  "label": "Button Background Color",
534
  "default_value": "#191e23"
535
  },
536
  {
537
+ "key": "field_5eaad0acf0b4f",
538
+ "label": "Spacing",
539
+ "name": "",
540
+ "type": "accordion",
541
  "instructions": "",
542
  "required": 0,
543
  "conditional_logic": 0,
546
  "class": "",
547
  "id": ""
548
  },
549
+ "open": 0,
550
+ "multi_expand": 0,
551
+ "endpoint": 0
552
+ },
553
+ {
554
+ "key": "field_5eaad16271803",
555
+ "label": "Margin",
556
+ "name": "acfb_image_accordion_margin",
557
+ "type": "margin",
558
+ "instructions": "",
559
+ "required": 0,
560
+ "conditional_logic": 0,
561
+ "wrapper": {
562
+ "width": "",
563
+ "class": "",
564
+ "id": ""
565
+ },
566
+ "margin_enable": 0,
567
+ "margin_top": "",
568
+ "margin_right": "",
569
+ "margin_bottom": "",
570
+ "margin_left": ""
571
+ },
572
+ {
573
+ "key": "field_5eaad17071804",
574
+ "label": "Padding",
575
+ "name": "acfb_image_accordion_padding",
576
+ "type": "padding",
577
+ "instructions": "",
578
+ "required": 0,
579
+ "conditional_logic": 0,
580
+ "wrapper": {
581
+ "width": "",
582
+ "class": "",
583
+ "id": ""
584
+ },
585
+ "padding_enable": 0,
586
+ "padding_top": "",
587
+ "padding_right": "",
588
+ "padding_bottom": "",
589
+ "padding_left": ""
590
+ },
591
+ {
592
+ "key": "field_5eaad196f6d82",
593
+ "label": "Inner Padding",
594
+ "name": "acfb_image_accordion_inner_padding",
595
+ "type": "padding",
596
+ "instructions": "",
597
+ "required": 0,
598
+ "conditional_logic": 0,
599
+ "wrapper": {
600
+ "width": "",
601
+ "class": "",
602
+ "id": ""
603
+ },
604
+ "padding_enable": 0,
605
+ "padding_top": 20,
606
+ "padding_right": 20,
607
+ "padding_bottom": 20,
608
+ "padding_left": 20
609
  }
610
  ],
611
  "location": [
625
  "hide_on_screen": "",
626
  "active": 1,
627
  "description": "",
628
+ "modified": 1588253112
629
  }
acf-json/group_5d85f76783fa0.json CHANGED
@@ -214,46 +214,6 @@
214
  "layout": "horizontal",
215
  "return_format": "value"
216
  },
217
- {
218
- "key": "field_5d88a1d6e42a2",
219
- "label": "Content Height",
220
- "name": "acfb_cta_content_height",
221
- "type": "range",
222
- "instructions": "",
223
- "required": 0,
224
- "conditional_logic": 0,
225
- "wrapper": {
226
- "width": "",
227
- "class": "",
228
- "id": ""
229
- },
230
- "default_value": 350,
231
- "min": "",
232
- "max": 1000,
233
- "step": "",
234
- "prepend": "",
235
- "append": "px"
236
- },
237
- {
238
- "key": "field_5d888c3cb8983",
239
- "label": "Content Padding",
240
- "name": "acfb_cta_content_padding",
241
- "type": "range",
242
- "instructions": "",
243
- "required": 0,
244
- "conditional_logic": 0,
245
- "wrapper": {
246
- "width": "",
247
- "class": "",
248
- "id": ""
249
- },
250
- "default_value": 25,
251
- "min": "",
252
- "max": 100,
253
- "step": "",
254
- "prepend": "",
255
- "append": "px"
256
- },
257
  {
258
  "key": "field_5d88874cf81e0",
259
  "label": "Content Vertical Align",
@@ -316,6 +276,132 @@
316
  "placement": "top",
317
  "endpoint": 0
318
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  {
320
  "key": "field_5da9a7fd3e372",
321
  "label": "Image Overlay Color",
@@ -390,10 +476,10 @@
390
  "default_value": "#191e23"
391
  },
392
  {
393
- "key": "field_5d8888926493f",
394
- "label": "Title Size",
395
- "name": "acfb_cta_title_size",
396
- "type": "range",
397
  "instructions": "",
398
  "required": 0,
399
  "conditional_logic": 0,
@@ -402,17 +488,12 @@
402
  "class": "",
403
  "id": ""
404
  },
405
- "default_value": 32,
406
- "min": "",
407
- "max": 200,
408
- "step": "",
409
- "prepend": "",
410
- "append": "px"
411
  },
412
  {
413
- "key": "field_5d8888bb64940",
414
- "label": "Description Color",
415
- "name": "acfb_cta_description_color",
416
  "type": "color_picker",
417
  "instructions": "",
418
  "required": 0,
@@ -422,13 +503,13 @@
422
  "class": "",
423
  "id": ""
424
  },
425
- "default_value": "#191e23"
426
  },
427
  {
428
- "key": "field_5d88893e64941",
429
- "label": "Description Size",
430
- "name": "acfb_cta_description_size",
431
- "type": "range",
432
  "instructions": "",
433
  "required": 0,
434
  "conditional_logic": 0,
@@ -437,17 +518,12 @@
437
  "class": "",
438
  "id": ""
439
  },
440
- "default_value": 18,
441
- "min": "",
442
- "max": "",
443
- "step": "",
444
- "prepend": "",
445
- "append": "px"
446
  },
447
  {
448
- "key": "field_5d88898f64942",
449
- "label": "Button Background Color",
450
- "name": "acfb_cta_button_background_color",
451
  "type": "color_picker",
452
  "instructions": "",
453
  "required": 0,
@@ -460,9 +536,9 @@
460
  "default_value": "#e0e0e0"
461
  },
462
  {
463
- "key": "field_5d8889a464943",
464
- "label": "Button Text Color",
465
- "name": "acfb_cta_button_text_color",
466
  "type": "color_picker",
467
  "instructions": "",
468
  "required": 0,
@@ -475,9 +551,9 @@
475
  "default_value": "#191e23"
476
  },
477
  {
478
- "key": "field_5d8889d164944",
479
- "label": "Button Background Hover Color",
480
- "name": "acfb_cta_button_background_hover_color",
481
  "type": "color_picker",
482
  "instructions": "",
483
  "required": 0,
@@ -487,12 +563,12 @@
487
  "class": "",
488
  "id": ""
489
  },
490
- "default_value": "#e0e0e0"
491
  },
492
  {
493
- "key": "field_5d8889e364945",
494
- "label": "Button Text Hover Color",
495
- "name": "acfb_cta_button_text_hover_color",
496
  "type": "color_picker",
497
  "instructions": "",
498
  "required": 0,
@@ -502,12 +578,29 @@
502
  "class": "",
503
  "id": ""
504
  },
505
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
  },
507
  {
508
- "key": "field_5d888b61359d1",
509
- "label": "Button Size",
510
- "name": "acfb_cta_button_size",
511
  "type": "range",
512
  "instructions": "",
513
  "required": 0,
@@ -517,18 +610,18 @@
517
  "class": "",
518
  "id": ""
519
  },
520
- "default_value": 19,
521
  "min": "",
522
- "max": "",
523
  "step": "",
524
  "prepend": "",
525
  "append": "px"
526
  },
527
  {
528
- "key": "field_5d888af2359cf",
529
- "label": "Ribbon Background Color",
530
- "name": "acfb_cta_ribbon_background_color",
531
- "type": "color_picker",
532
  "instructions": "",
533
  "required": 0,
534
  "conditional_logic": 0,
@@ -537,13 +630,15 @@
537
  "class": "",
538
  "id": ""
539
  },
540
- "default_value": "#000000"
 
 
541
  },
542
  {
543
- "key": "field_5d888b20359d0",
544
- "label": "Ribbon Text Color",
545
- "name": "acfb_cta_ribbon_text_color",
546
- "type": "color_picker",
547
  "instructions": "",
548
  "required": 0,
549
  "conditional_logic": 0,
@@ -552,13 +647,17 @@
552
  "class": "",
553
  "id": ""
554
  },
555
- "default_value": "#ffffff"
 
 
 
 
556
  },
557
  {
558
- "key": "field_5d888b85359d2",
559
- "label": "Ribbon Size",
560
- "name": "acfb_cta_ribbon_size",
561
- "type": "range",
562
  "instructions": "",
563
  "required": 0,
564
  "conditional_logic": 0,
@@ -567,12 +666,30 @@
567
  "class": "",
568
  "id": ""
569
  },
570
- "default_value": 13,
571
- "min": "",
572
- "max": 50,
573
- "step": "",
574
- "prepend": "",
575
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
576
  }
577
  ],
578
  "location": [
@@ -592,5 +709,5 @@
592
  "hide_on_screen": "",
593
  "active": 1,
594
  "description": "",
595
- "modified": 1573560984
596
  }
214
  "layout": "horizontal",
215
  "return_format": "value"
216
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  {
218
  "key": "field_5d88874cf81e0",
219
  "label": "Content Vertical Align",
276
  "placement": "top",
277
  "endpoint": 0
278
  },
279
+ {
280
+ "key": "field_5eabe4d13877a",
281
+ "label": "Typography",
282
+ "name": "",
283
+ "type": "accordion",
284
+ "instructions": "",
285
+ "required": 0,
286
+ "conditional_logic": 0,
287
+ "wrapper": {
288
+ "width": "",
289
+ "class": "",
290
+ "id": ""
291
+ },
292
+ "open": 0,
293
+ "multi_expand": 0,
294
+ "endpoint": 0
295
+ },
296
+ {
297
+ "key": "field_5eabe5093877e",
298
+ "label": "Title",
299
+ "name": "acfb_cta_title_typo",
300
+ "type": "typography",
301
+ "instructions": "",
302
+ "required": 0,
303
+ "conditional_logic": 0,
304
+ "wrapper": {
305
+ "width": "",
306
+ "class": "",
307
+ "id": ""
308
+ },
309
+ "font_family_enable": 0,
310
+ "font_family": "default",
311
+ "font_size": 32,
312
+ "font_weight": "default",
313
+ "font_transform": "default",
314
+ "font_style": "default",
315
+ "font_decoration": "default",
316
+ "font_line_height": "0.1",
317
+ "font_letter_spacing": 0
318
+ },
319
+ {
320
+ "key": "field_5eabe52c3877f",
321
+ "label": "Description",
322
+ "name": "acfb_cta_description_typo",
323
+ "type": "typography",
324
+ "instructions": "",
325
+ "required": 0,
326
+ "conditional_logic": 0,
327
+ "wrapper": {
328
+ "width": "",
329
+ "class": "",
330
+ "id": ""
331
+ },
332
+ "font_family_enable": 0,
333
+ "font_family": "default",
334
+ "font_size": 18,
335
+ "font_weight": "default",
336
+ "font_transform": "default",
337
+ "font_style": "default",
338
+ "font_decoration": "default",
339
+ "font_line_height": "0.1",
340
+ "font_letter_spacing": 0
341
+ },
342
+ {
343
+ "key": "field_5eabe54a38780",
344
+ "label": "Button",
345
+ "name": "acfb_cta_button_typo",
346
+ "type": "typography",
347
+ "instructions": "",
348
+ "required": 0,
349
+ "conditional_logic": 0,
350
+ "wrapper": {
351
+ "width": "",
352
+ "class": "",
353
+ "id": ""
354
+ },
355
+ "font_family_enable": 0,
356
+ "font_family": "default",
357
+ "font_size": 19,
358
+ "font_weight": "default",
359
+ "font_transform": "default",
360
+ "font_style": "default",
361
+ "font_decoration": "default",
362
+ "font_line_height": "0.1",
363
+ "font_letter_spacing": 0
364
+ },
365
+ {
366
+ "key": "field_5eabe55d38781",
367
+ "label": "Ribbon",
368
+ "name": "acfb_cta_ribbon_typo",
369
+ "type": "typography",
370
+ "instructions": "",
371
+ "required": 0,
372
+ "conditional_logic": 0,
373
+ "wrapper": {
374
+ "width": "",
375
+ "class": "",
376
+ "id": ""
377
+ },
378
+ "font_family_enable": 0,
379
+ "font_family": "default",
380
+ "font_size": 13,
381
+ "font_weight": "default",
382
+ "font_transform": "default",
383
+ "font_style": "default",
384
+ "font_decoration": "default",
385
+ "font_line_height": "0.1",
386
+ "font_letter_spacing": 0
387
+ },
388
+ {
389
+ "key": "field_5eabe4dd3877b",
390
+ "label": "Colors",
391
+ "name": "",
392
+ "type": "accordion",
393
+ "instructions": "",
394
+ "required": 0,
395
+ "conditional_logic": 0,
396
+ "wrapper": {
397
+ "width": "",
398
+ "class": "",
399
+ "id": ""
400
+ },
401
+ "open": 0,
402
+ "multi_expand": 0,
403
+ "endpoint": 0
404
+ },
405
  {
406
  "key": "field_5da9a7fd3e372",
407
  "label": "Image Overlay Color",
476
  "default_value": "#191e23"
477
  },
478
  {
479
+ "key": "field_5d8888bb64940",
480
+ "label": "Description Color",
481
+ "name": "acfb_cta_description_color",
482
+ "type": "color_picker",
483
  "instructions": "",
484
  "required": 0,
485
  "conditional_logic": 0,
488
  "class": "",
489
  "id": ""
490
  },
491
+ "default_value": "#191e23"
 
 
 
 
 
492
  },
493
  {
494
+ "key": "field_5d88898f64942",
495
+ "label": "Button Background Color",
496
+ "name": "acfb_cta_button_background_color",
497
  "type": "color_picker",
498
  "instructions": "",
499
  "required": 0,
503
  "class": "",
504
  "id": ""
505
  },
506
+ "default_value": "#e0e0e0"
507
  },
508
  {
509
+ "key": "field_5d8889a464943",
510
+ "label": "Button Text Color",
511
+ "name": "acfb_cta_button_text_color",
512
+ "type": "color_picker",
513
  "instructions": "",
514
  "required": 0,
515
  "conditional_logic": 0,
518
  "class": "",
519
  "id": ""
520
  },
521
+ "default_value": "#191e23"
 
 
 
 
 
522
  },
523
  {
524
+ "key": "field_5d8889d164944",
525
+ "label": "Button Background Hover Color",
526
+ "name": "acfb_cta_button_background_hover_color",
527
  "type": "color_picker",
528
  "instructions": "",
529
  "required": 0,
536
  "default_value": "#e0e0e0"
537
  },
538
  {
539
+ "key": "field_5d8889e364945",
540
+ "label": "Button Text Hover Color",
541
+ "name": "acfb_cta_button_text_hover_color",
542
  "type": "color_picker",
543
  "instructions": "",
544
  "required": 0,
551
  "default_value": "#191e23"
552
  },
553
  {
554
+ "key": "field_5d888af2359cf",
555
+ "label": "Ribbon Background Color",
556
+ "name": "acfb_cta_ribbon_background_color",
557
  "type": "color_picker",
558
  "instructions": "",
559
  "required": 0,
563
  "class": "",
564
  "id": ""
565
  },
566
+ "default_value": "#000000"
567
  },
568
  {
569
+ "key": "field_5d888b20359d0",
570
+ "label": "Ribbon Text Color",
571
+ "name": "acfb_cta_ribbon_text_color",
572
  "type": "color_picker",
573
  "instructions": "",
574
  "required": 0,
578
  "class": "",
579
  "id": ""
580
  },
581
+ "default_value": "#ffffff"
582
+ },
583
+ {
584
+ "key": "field_5eabe4e23877c",
585
+ "label": "Sizing",
586
+ "name": "",
587
+ "type": "accordion",
588
+ "instructions": "",
589
+ "required": 0,
590
+ "conditional_logic": 0,
591
+ "wrapper": {
592
+ "width": "",
593
+ "class": "",
594
+ "id": ""
595
+ },
596
+ "open": 0,
597
+ "multi_expand": 0,
598
+ "endpoint": 0
599
  },
600
  {
601
+ "key": "field_5d88a1d6e42a2",
602
+ "label": "Content Height",
603
+ "name": "acfb_cta_content_height",
604
  "type": "range",
605
  "instructions": "",
606
  "required": 0,
610
  "class": "",
611
  "id": ""
612
  },
613
+ "default_value": 350,
614
  "min": "",
615
+ "max": 1000,
616
  "step": "",
617
  "prepend": "",
618
  "append": "px"
619
  },
620
  {
621
+ "key": "field_5eabe4e83877d",
622
+ "label": "Spacing",
623
+ "name": "",
624
+ "type": "accordion",
625
  "instructions": "",
626
  "required": 0,
627
  "conditional_logic": 0,
630
  "class": "",
631
  "id": ""
632
  },
633
+ "open": 0,
634
+ "multi_expand": 0,
635
+ "endpoint": 0
636
  },
637
  {
638
+ "key": "field_5eabe59c38782",
639
+ "label": "Margin",
640
+ "name": "acfb_cta_margin",
641
+ "type": "margin",
642
  "instructions": "",
643
  "required": 0,
644
  "conditional_logic": 0,
647
  "class": "",
648
  "id": ""
649
  },
650
+ "margin_enable": 0,
651
+ "margin_top": "",
652
+ "margin_right": "",
653
+ "margin_bottom": "",
654
+ "margin_left": ""
655
  },
656
  {
657
+ "key": "field_5eabe5ad38783",
658
+ "label": "Padding",
659
+ "name": "acfb_cta_padding",
660
+ "type": "padding",
661
  "instructions": "",
662
  "required": 0,
663
  "conditional_logic": 0,
666
  "class": "",
667
  "id": ""
668
  },
669
+ "padding_enable": 0,
670
+ "padding_top": "",
671
+ "padding_right": "",
672
+ "padding_bottom": "",
673
+ "padding_left": ""
674
+ },
675
+ {
676
+ "key": "field_5eabe5c238784",
677
+ "label": "Content Padding",
678
+ "name": "acfb_cta_content_padding",
679
+ "type": "padding",
680
+ "instructions": "",
681
+ "required": 0,
682
+ "conditional_logic": 0,
683
+ "wrapper": {
684
+ "width": "",
685
+ "class": "",
686
+ "id": ""
687
+ },
688
+ "padding_enable": 0,
689
+ "padding_top": 25,
690
+ "padding_right": 25,
691
+ "padding_bottom": 25,
692
+ "padding_left": 25
693
  }
694
  ],
695
  "location": [
709
  "hide_on_screen": "",
710
  "active": 1,
711
  "description": "",
712
+ "modified": 1588323830
713
  }
acf-json/group_5d88ac7ea4495.json CHANGED
@@ -257,6 +257,63 @@
257
  "placement": "top",
258
  "endpoint": 0
259
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
260
  {
261
  "key": "field_5dbd45e0662f9",
262
  "label": "Overlay Color",
@@ -338,10 +395,10 @@
338
  "default_value": "#ffffff"
339
  },
340
  {
341
- "key": "field_5d89cd9df0f59",
342
- "label": "Labels Size",
343
- "name": "acfb_ba_labels_size",
344
- "type": "range",
345
  "instructions": "",
346
  "required": 0,
347
  "conditional_logic": 0,
@@ -350,12 +407,47 @@
350
  "class": "",
351
  "id": ""
352
  },
353
- "default_value": 13,
354
- "min": "",
355
- "max": "",
356
- "step": "",
357
- "prepend": "",
358
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
359
  }
360
  ],
361
  "location": [
@@ -375,5 +467,5 @@
375
  "hide_on_screen": "",
376
  "active": 1,
377
  "description": "",
378
- "modified": 1576492282
379
  }
257
  "placement": "top",
258
  "endpoint": 0
259
  },
260
+ {
261
+ "key": "field_5eabe28692c63",
262
+ "label": "Typography",
263
+ "name": "",
264
+ "type": "accordion",
265
+ "instructions": "",
266
+ "required": 0,
267
+ "conditional_logic": 0,
268
+ "wrapper": {
269
+ "width": "",
270
+ "class": "",
271
+ "id": ""
272
+ },
273
+ "open": 0,
274
+ "multi_expand": 0,
275
+ "endpoint": 0
276
+ },
277
+ {
278
+ "key": "field_5eabe2d192c68",
279
+ "label": "Labels",
280
+ "name": "acfb_ba_labels_typo",
281
+ "type": "typography",
282
+ "instructions": "",
283
+ "required": 0,
284
+ "conditional_logic": 0,
285
+ "wrapper": {
286
+ "width": "",
287
+ "class": "",
288
+ "id": ""
289
+ },
290
+ "font_family_enable": 0,
291
+ "font_family": "default",
292
+ "font_size": 13,
293
+ "font_weight": "default",
294
+ "font_transform": "default",
295
+ "font_style": "default",
296
+ "font_decoration": "default",
297
+ "font_line_height": "0.1",
298
+ "font_letter_spacing": 0
299
+ },
300
+ {
301
+ "key": "field_5eabe28c92c64",
302
+ "label": "Colors",
303
+ "name": "",
304
+ "type": "accordion",
305
+ "instructions": "",
306
+ "required": 0,
307
+ "conditional_logic": 0,
308
+ "wrapper": {
309
+ "width": "",
310
+ "class": "",
311
+ "id": ""
312
+ },
313
+ "open": 0,
314
+ "multi_expand": 0,
315
+ "endpoint": 0
316
+ },
317
  {
318
  "key": "field_5dbd45e0662f9",
319
  "label": "Overlay Color",
395
  "default_value": "#ffffff"
396
  },
397
  {
398
+ "key": "field_5eabe29a92c65",
399
+ "label": "Spacing",
400
+ "name": "",
401
+ "type": "accordion",
402
  "instructions": "",
403
  "required": 0,
404
  "conditional_logic": 0,
407
  "class": "",
408
  "id": ""
409
  },
410
+ "open": 0,
411
+ "multi_expand": 0,
412
+ "endpoint": 0
413
+ },
414
+ {
415
+ "key": "field_5eabe2a492c66",
416
+ "label": "Margin",
417
+ "name": "acfb_ba_margin",
418
+ "type": "margin",
419
+ "instructions": "",
420
+ "required": 0,
421
+ "conditional_logic": 0,
422
+ "wrapper": {
423
+ "width": "",
424
+ "class": "",
425
+ "id": ""
426
+ },
427
+ "margin_enable": 0,
428
+ "margin_top": "",
429
+ "margin_right": "",
430
+ "margin_bottom": "",
431
+ "margin_left": ""
432
+ },
433
+ {
434
+ "key": "field_5eabe2b892c67",
435
+ "label": "Padding",
436
+ "name": "acfb_ba_padding",
437
+ "type": "padding",
438
+ "instructions": "",
439
+ "required": 0,
440
+ "conditional_logic": 0,
441
+ "wrapper": {
442
+ "width": "",
443
+ "class": "",
444
+ "id": ""
445
+ },
446
+ "padding_enable": 0,
447
+ "padding_top": "",
448
+ "padding_right": "",
449
+ "padding_bottom": "",
450
+ "padding_left": ""
451
  }
452
  ],
453
  "location": [
467
  "hide_on_screen": "",
468
  "active": 1,
469
  "description": "",
470
+ "modified": 1588323246
471
  }
acf-json/group_5d89edcb99f5e.json CHANGED
@@ -324,6 +324,109 @@
324
  "placement": "top",
325
  "endpoint": 0
326
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
327
  {
328
  "key": "field_5d8a110bf2154",
329
  "label": "Icon Color",
@@ -384,26 +487,6 @@
384
  },
385
  "default_value": "#191e23"
386
  },
387
- {
388
- "key": "field_5d8a131df2158",
389
- "label": "Tooltip Title Size",
390
- "name": "acfb_ih_tooltip_title_size",
391
- "type": "range",
392
- "instructions": "",
393
- "required": 0,
394
- "conditional_logic": 0,
395
- "wrapper": {
396
- "width": "",
397
- "class": "",
398
- "id": ""
399
- },
400
- "default_value": 32,
401
- "min": "",
402
- "max": "",
403
- "step": "",
404
- "prepend": "",
405
- "append": "px"
406
- },
407
  {
408
  "key": "field_5d8a1339f2159",
409
  "label": "Tooltip Content Color",
@@ -419,26 +502,6 @@
419
  },
420
  "default_value": "#191e23"
421
  },
422
- {
423
- "key": "field_5d8a135ef215a",
424
- "label": "Tooltip Content Size",
425
- "name": "acfb_ih_tooltip_content_size",
426
- "type": "range",
427
- "instructions": "",
428
- "required": 0,
429
- "conditional_logic": 0,
430
- "wrapper": {
431
- "width": "",
432
- "class": "",
433
- "id": ""
434
- },
435
- "default_value": 18,
436
- "min": "",
437
- "max": "",
438
- "step": "",
439
- "prepend": "",
440
- "append": "px"
441
- },
442
  {
443
  "key": "field_5d8a1398f215b",
444
  "label": "Tooltip Button Background Color",
@@ -500,10 +563,10 @@
500
  "default_value": "#191e23"
501
  },
502
  {
503
- "key": "field_5d8a1431f215f",
504
- "label": "Tooltip Button Size",
505
- "name": "acfb_ih_tooltip_button_size",
506
- "type": "range",
507
  "instructions": "",
508
  "required": 0,
509
  "conditional_logic": 0,
@@ -512,12 +575,47 @@
512
  "class": "",
513
  "id": ""
514
  },
515
- "default_value": 19,
516
- "min": "",
517
- "max": "",
518
- "step": "",
519
- "prepend": "",
520
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
521
  }
522
  ],
523
  "location": [
@@ -537,5 +635,5 @@
537
  "hide_on_screen": "",
538
  "active": 1,
539
  "description": "",
540
- "modified": 1576492561
541
  }
324
  "placement": "top",
325
  "endpoint": 0
326
  },
327
+ {
328
+ "key": "field_5eaace5848486",
329
+ "label": "Typography",
330
+ "name": "",
331
+ "type": "accordion",
332
+ "instructions": "",
333
+ "required": 0,
334
+ "conditional_logic": 0,
335
+ "wrapper": {
336
+ "width": "",
337
+ "class": "",
338
+ "id": ""
339
+ },
340
+ "open": 0,
341
+ "multi_expand": 0,
342
+ "endpoint": 0
343
+ },
344
+ {
345
+ "key": "field_5eaaceac4848c",
346
+ "label": "Title",
347
+ "name": "acfb_ih_tooltip_title_typo",
348
+ "type": "typography",
349
+ "instructions": "",
350
+ "required": 0,
351
+ "conditional_logic": 0,
352
+ "wrapper": {
353
+ "width": "",
354
+ "class": "",
355
+ "id": ""
356
+ },
357
+ "font_family_enable": 0,
358
+ "font_family": "default",
359
+ "font_size": 32,
360
+ "font_weight": "default",
361
+ "font_transform": "default",
362
+ "font_style": "default",
363
+ "font_decoration": "default",
364
+ "font_line_height": "0.1",
365
+ "font_letter_spacing": 0
366
+ },
367
+ {
368
+ "key": "field_5eaaced34848d",
369
+ "label": "Content",
370
+ "name": "acfb_ih_tooltip_content_typo",
371
+ "type": "typography",
372
+ "instructions": "",
373
+ "required": 0,
374
+ "conditional_logic": 0,
375
+ "wrapper": {
376
+ "width": "",
377
+ "class": "",
378
+ "id": ""
379
+ },
380
+ "font_family_enable": 0,
381
+ "font_family": "default",
382
+ "font_size": 18,
383
+ "font_weight": "default",
384
+ "font_transform": "default",
385
+ "font_style": "default",
386
+ "font_decoration": "default",
387
+ "font_line_height": "0.1",
388
+ "font_letter_spacing": 0
389
+ },
390
+ {
391
+ "key": "field_5eaacee64848e",
392
+ "label": "Button",
393
+ "name": "acfb_ih_tooltip_button_typo",
394
+ "type": "typography",
395
+ "instructions": "",
396
+ "required": 0,
397
+ "conditional_logic": 0,
398
+ "wrapper": {
399
+ "width": "",
400
+ "class": "",
401
+ "id": ""
402
+ },
403
+ "font_family_enable": 0,
404
+ "font_family": "default",
405
+ "font_size": 19,
406
+ "font_weight": "default",
407
+ "font_transform": "default",
408
+ "font_style": "default",
409
+ "font_decoration": "default",
410
+ "font_line_height": "0.1",
411
+ "font_letter_spacing": 0
412
+ },
413
+ {
414
+ "key": "field_5eaace6548488",
415
+ "label": "Colors",
416
+ "name": "",
417
+ "type": "accordion",
418
+ "instructions": "",
419
+ "required": 0,
420
+ "conditional_logic": 0,
421
+ "wrapper": {
422
+ "width": "",
423
+ "class": "",
424
+ "id": ""
425
+ },
426
+ "open": 0,
427
+ "multi_expand": 0,
428
+ "endpoint": 0
429
+ },
430
  {
431
  "key": "field_5d8a110bf2154",
432
  "label": "Icon Color",
487
  },
488
  "default_value": "#191e23"
489
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
490
  {
491
  "key": "field_5d8a1339f2159",
492
  "label": "Tooltip Content Color",
502
  },
503
  "default_value": "#191e23"
504
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  {
506
  "key": "field_5d8a1398f215b",
507
  "label": "Tooltip Button Background Color",
563
  "default_value": "#191e23"
564
  },
565
  {
566
+ "key": "field_5eaace744848b",
567
+ "label": "Spacing",
568
+ "name": "",
569
+ "type": "accordion",
570
  "instructions": "",
571
  "required": 0,
572
  "conditional_logic": 0,
575
  "class": "",
576
  "id": ""
577
  },
578
+ "open": 0,
579
+ "multi_expand": 0,
580
+ "endpoint": 0
581
+ },
582
+ {
583
+ "key": "field_5eaacf164848f",
584
+ "label": "Margin",
585
+ "name": "acfb_ih_margin",
586
+ "type": "margin",
587
+ "instructions": "",
588
+ "required": 0,
589
+ "conditional_logic": 0,
590
+ "wrapper": {
591
+ "width": "",
592
+ "class": "",
593
+ "id": ""
594
+ },
595
+ "margin_enable": 0,
596
+ "margin_top": "",
597
+ "margin_right": "",
598
+ "margin_bottom": "",
599
+ "margin_left": ""
600
+ },
601
+ {
602
+ "key": "field_5eaacf2848490",
603
+ "label": "Padding",
604
+ "name": "acfb_ih_padding",
605
+ "type": "padding",
606
+ "instructions": "",
607
+ "required": 0,
608
+ "conditional_logic": 0,
609
+ "wrapper": {
610
+ "width": "",
611
+ "class": "",
612
+ "id": ""
613
+ },
614
+ "padding_enable": 0,
615
+ "padding_top": "",
616
+ "padding_right": "",
617
+ "padding_bottom": "",
618
+ "padding_left": ""
619
  }
620
  ],
621
  "location": [
635
  "hide_on_screen": "",
636
  "active": 1,
637
  "description": "",
638
+ "modified": 1588252476
639
  }
acf-json/group_5d8c7aea13336.json CHANGED
@@ -43,10 +43,10 @@
43
  "mime_types": ""
44
  },
45
  {
46
- "key": "field_5d8c82ae0c1e0",
47
- "label": "Hover Scroll Speed",
48
- "name": "acfb_scrollable_image_hover_scroll_speed",
49
- "type": "range",
50
  "instructions": "",
51
  "required": 0,
52
  "conditional_logic": 0,
@@ -55,12 +55,25 @@
55
  "class": "",
56
  "id": ""
57
  },
58
- "default_value": 5,
59
- "min": 1,
60
- "max": 10,
61
- "step": "",
62
- "prepend": "",
63
- "append": ""
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  },
65
  {
66
  "key": "field_5d8c810ae990b",
@@ -83,10 +96,10 @@
83
  "append": "px"
84
  },
85
  {
86
- "key": "field_5d8c8067e9909",
87
- "label": "Design",
88
  "name": "",
89
- "type": "tab",
90
  "instructions": "",
91
  "required": 0,
92
  "conditional_logic": 0,
@@ -95,14 +108,70 @@
95
  "class": "",
96
  "id": ""
97
  },
98
- "placement": "top",
 
99
  "endpoint": 0
100
  },
101
  {
102
- "key": "field_5d8dc16b02275",
103
- "label": "No options available here yet.",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  "name": "",
105
- "type": "message",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
  "instructions": "",
107
  "required": 0,
108
  "conditional_logic": 0,
@@ -111,9 +180,12 @@
111
  "class": "",
112
  "id": ""
113
  },
114
- "message": "",
115
- "new_lines": "wpautop",
116
- "esc_html": 0
 
 
 
117
  }
118
  ],
119
  "location": [
@@ -133,6 +205,5 @@
133
  "hide_on_screen": "",
134
  "active": 1,
135
  "description": "",
136
- "private": true,
137
- "modified": 1570446489
138
  }
43
  "mime_types": ""
44
  },
45
  {
46
+ "key": "field_5d8c8067e9909",
47
+ "label": "Design",
48
+ "name": "",
49
+ "type": "tab",
50
  "instructions": "",
51
  "required": 0,
52
  "conditional_logic": 0,
55
  "class": "",
56
  "id": ""
57
  },
58
+ "placement": "top",
59
+ "endpoint": 0
60
+ },
61
+ {
62
+ "key": "field_5eaa9c030c2cb",
63
+ "label": "Sizing",
64
+ "name": "",
65
+ "type": "accordion",
66
+ "instructions": "",
67
+ "required": 0,
68
+ "conditional_logic": 0,
69
+ "wrapper": {
70
+ "width": "",
71
+ "class": "",
72
+ "id": ""
73
+ },
74
+ "open": 0,
75
+ "multi_expand": 0,
76
+ "endpoint": 0
77
  },
78
  {
79
  "key": "field_5d8c810ae990b",
96
  "append": "px"
97
  },
98
  {
99
+ "key": "field_5eaa9c340c2cc",
100
+ "label": "Spacing",
101
  "name": "",
102
+ "type": "accordion",
103
  "instructions": "",
104
  "required": 0,
105
  "conditional_logic": 0,
108
  "class": "",
109
  "id": ""
110
  },
111
+ "open": 0,
112
+ "multi_expand": 0,
113
  "endpoint": 0
114
  },
115
  {
116
+ "key": "field_5eaa9c410c2cd",
117
+ "label": "Margin",
118
+ "name": "acfb_scrollable_image_margin",
119
+ "type": "margin",
120
+ "instructions": "",
121
+ "required": 0,
122
+ "conditional_logic": 0,
123
+ "wrapper": {
124
+ "width": "",
125
+ "class": "",
126
+ "id": ""
127
+ },
128
+ "margin_enable": 0,
129
+ "margin_top": "",
130
+ "margin_right": "",
131
+ "margin_bottom": "",
132
+ "margin_left": ""
133
+ },
134
+ {
135
+ "key": "field_5eaa9c540c2ce",
136
+ "label": "Padding",
137
+ "name": "acfb_scrollable_image_padding",
138
+ "type": "padding",
139
+ "instructions": "",
140
+ "required": 0,
141
+ "conditional_logic": 0,
142
+ "wrapper": {
143
+ "width": "",
144
+ "class": "",
145
+ "id": ""
146
+ },
147
+ "padding_enable": 0,
148
+ "padding_top": "",
149
+ "padding_right": "",
150
+ "padding_bottom": "",
151
+ "padding_left": ""
152
+ },
153
+ {
154
+ "key": "field_5eaa9c740c2cf",
155
+ "label": "Other Setting",
156
  "name": "",
157
+ "type": "accordion",
158
+ "instructions": "",
159
+ "required": 0,
160
+ "conditional_logic": 0,
161
+ "wrapper": {
162
+ "width": "",
163
+ "class": "",
164
+ "id": ""
165
+ },
166
+ "open": 0,
167
+ "multi_expand": 0,
168
+ "endpoint": 0
169
+ },
170
+ {
171
+ "key": "field_5d8c82ae0c1e0",
172
+ "label": "Hover Scroll Speed",
173
+ "name": "acfb_scrollable_image_hover_scroll_speed",
174
+ "type": "range",
175
  "instructions": "",
176
  "required": 0,
177
  "conditional_logic": 0,
180
  "class": "",
181
  "id": ""
182
  },
183
+ "default_value": 5,
184
+ "min": 1,
185
+ "max": 10,
186
+ "step": "",
187
+ "prepend": "",
188
+ "append": ""
189
  }
190
  ],
191
  "location": [
205
  "hide_on_screen": "",
206
  "active": 1,
207
  "description": "",
208
+ "modified": 1588239521
 
209
  }
acf-json/group_5d9c6dc7208c4.json CHANGED
@@ -129,6 +129,29 @@
129
  "prepend": "",
130
  "append": "%"
131
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
132
  {
133
  "key": "field_5d9c6de9cf1d1",
134
  "label": "Design",
@@ -145,6 +168,23 @@
145
  "placement": "top",
146
  "endpoint": 0
147
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  {
149
  "key": "field_5daeb94990028",
150
  "label": "Device Width",
@@ -166,10 +206,10 @@
166
  "append": "%"
167
  },
168
  {
169
- "key": "field_5daec29167598",
170
- "label": "Device Alignment",
171
- "name": "acfb_device_alignment",
172
- "type": "button_group",
173
  "instructions": "",
174
  "required": 0,
175
  "conditional_logic": 0,
@@ -178,15 +218,64 @@
178
  "class": "",
179
  "id": ""
180
  },
181
- "choices": {
182
- "flex-start": "Left",
183
- "center": "Center",
184
- "flex-end": "Right"
 
 
 
 
 
 
 
 
 
 
 
 
185
  },
186
- "allow_null": 0,
187
- "default_value": "flex-start",
188
- "layout": "horizontal",
189
- "return_format": "value"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
190
  }
191
  ],
192
  "location": [
@@ -206,5 +295,5 @@
206
  "hide_on_screen": "",
207
  "active": 1,
208
  "description": "",
209
- "modified": 1576497185
210
  }
129
  "prepend": "",
130
  "append": "%"
131
  },
132
+ {
133
+ "key": "field_5daec29167598",
134
+ "label": "Device Alignment",
135
+ "name": "acfb_device_alignment",
136
+ "type": "button_group",
137
+ "instructions": "",
138
+ "required": 0,
139
+ "conditional_logic": 0,
140
+ "wrapper": {
141
+ "width": "",
142
+ "class": "",
143
+ "id": ""
144
+ },
145
+ "choices": {
146
+ "flex-start": "Left",
147
+ "center": "Center",
148
+ "flex-end": "Right"
149
+ },
150
+ "allow_null": 0,
151
+ "default_value": "flex-start",
152
+ "layout": "horizontal",
153
+ "return_format": "value"
154
+ },
155
  {
156
  "key": "field_5d9c6de9cf1d1",
157
  "label": "Design",
168
  "placement": "top",
169
  "endpoint": 0
170
  },
171
+ {
172
+ "key": "field_5eabe1c6decce",
173
+ "label": "Sizing",
174
+ "name": "",
175
+ "type": "accordion",
176
+ "instructions": "",
177
+ "required": 0,
178
+ "conditional_logic": 0,
179
+ "wrapper": {
180
+ "width": "",
181
+ "class": "",
182
+ "id": ""
183
+ },
184
+ "open": 0,
185
+ "multi_expand": 0,
186
+ "endpoint": 0
187
+ },
188
  {
189
  "key": "field_5daeb94990028",
190
  "label": "Device Width",
206
  "append": "%"
207
  },
208
  {
209
+ "key": "field_5eabe40bb21f2",
210
+ "label": "Spacing",
211
+ "name": "",
212
+ "type": "accordion",
213
  "instructions": "",
214
  "required": 0,
215
  "conditional_logic": 0,
218
  "class": "",
219
  "id": ""
220
  },
221
+ "open": 0,
222
+ "multi_expand": 0,
223
+ "endpoint": 0
224
+ },
225
+ {
226
+ "key": "field_5eabe412b21f3",
227
+ "label": "Spacing",
228
+ "name": "",
229
+ "type": "accordion",
230
+ "instructions": "",
231
+ "required": 0,
232
+ "conditional_logic": 0,
233
+ "wrapper": {
234
+ "width": "",
235
+ "class": "",
236
+ "id": ""
237
  },
238
+ "open": 0,
239
+ "multi_expand": 0,
240
+ "endpoint": 0
241
+ },
242
+ {
243
+ "key": "field_5eabe417b21f5",
244
+ "label": "Margin",
245
+ "name": "acfb_device_margin",
246
+ "type": "margin",
247
+ "instructions": "",
248
+ "required": 0,
249
+ "conditional_logic": 0,
250
+ "wrapper": {
251
+ "width": "",
252
+ "class": "",
253
+ "id": ""
254
+ },
255
+ "margin_enable": 0,
256
+ "margin_top": "",
257
+ "margin_right": "",
258
+ "margin_bottom": "",
259
+ "margin_left": ""
260
+ },
261
+ {
262
+ "key": "field_5eabe42ab21f6",
263
+ "label": "Padding",
264
+ "name": "acfb_device_padding",
265
+ "type": "padding",
266
+ "instructions": "",
267
+ "required": 0,
268
+ "conditional_logic": 0,
269
+ "wrapper": {
270
+ "width": "",
271
+ "class": "",
272
+ "id": ""
273
+ },
274
+ "padding_enable": 0,
275
+ "padding_top": "",
276
+ "padding_right": "",
277
+ "padding_bottom": "",
278
+ "padding_left": ""
279
  }
280
  ],
281
  "location": [
295
  "hide_on_screen": "",
296
  "active": 1,
297
  "description": "",
298
+ "modified": 1588323389
299
  }
acf-json/group_5d9c78624c0c3.json CHANGED
@@ -99,6 +99,86 @@
99
  "ui_on_text": "",
100
  "ui_off_text": ""
101
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  {
103
  "key": "field_5d9c80d5ce688",
104
  "label": "Width",
@@ -140,10 +220,10 @@
140
  "append": "px"
141
  },
142
  {
143
- "key": "field_5d9c7e1bce685",
144
- "label": "Design",
145
  "name": "",
146
- "type": "tab",
147
  "instructions": "",
148
  "required": 0,
149
  "conditional_logic": 0,
@@ -152,14 +232,15 @@
152
  "class": "",
153
  "id": ""
154
  },
155
- "placement": "top",
 
156
  "endpoint": 0
157
  },
158
  {
159
- "key": "field_5d9c80a4ce687",
160
- "label": "Color",
161
- "name": "acfb_shape_divider_color",
162
- "type": "color_picker",
163
  "instructions": "",
164
  "required": 0,
165
  "conditional_logic": 0,
@@ -168,13 +249,17 @@
168
  "class": "",
169
  "id": ""
170
  },
171
- "default_value": "#000000"
 
 
 
 
172
  },
173
  {
174
- "key": "field_5d9c9c544bca0",
175
- "label": "Background Color",
176
- "name": "acfb_shape_divider_background_color",
177
- "type": "color_picker",
178
  "instructions": "",
179
  "required": 0,
180
  "conditional_logic": 0,
@@ -183,7 +268,11 @@
183
  "class": "",
184
  "id": ""
185
  },
186
- "default_value": "#ffffff"
 
 
 
 
187
  }
188
  ],
189
  "location": [
@@ -203,5 +292,5 @@
203
  "hide_on_screen": "",
204
  "active": 1,
205
  "description": "",
206
- "modified": 1576498844
207
  }
99
  "ui_on_text": "",
100
  "ui_off_text": ""
101
  },
102
+ {
103
+ "key": "field_5d9c7e1bce685",
104
+ "label": "Design",
105
+ "name": "",
106
+ "type": "tab",
107
+ "instructions": "",
108
+ "required": 0,
109
+ "conditional_logic": 0,
110
+ "wrapper": {
111
+ "width": "",
112
+ "class": "",
113
+ "id": ""
114
+ },
115
+ "placement": "top",
116
+ "endpoint": 0
117
+ },
118
+ {
119
+ "key": "field_5eaab045f1f52",
120
+ "label": "Colors",
121
+ "name": "",
122
+ "type": "accordion",
123
+ "instructions": "",
124
+ "required": 0,
125
+ "conditional_logic": 0,
126
+ "wrapper": {
127
+ "width": "",
128
+ "class": "",
129
+ "id": ""
130
+ },
131
+ "open": 0,
132
+ "multi_expand": 0,
133
+ "endpoint": 0
134
+ },
135
+ {
136
+ "key": "field_5d9c80a4ce687",
137
+ "label": "Color",
138
+ "name": "acfb_shape_divider_color",
139
+ "type": "color_picker",
140
+ "instructions": "",
141
+ "required": 0,
142
+ "conditional_logic": 0,
143
+ "wrapper": {
144
+ "width": "",
145
+ "class": "",
146
+ "id": ""
147
+ },
148
+ "default_value": "#000000"
149
+ },
150
+ {
151
+ "key": "field_5d9c9c544bca0",
152
+ "label": "Background Color",
153
+ "name": "acfb_shape_divider_background_color",
154
+ "type": "color_picker",
155
+ "instructions": "",
156
+ "required": 0,
157
+ "conditional_logic": 0,
158
+ "wrapper": {
159
+ "width": "",
160
+ "class": "",
161
+ "id": ""
162
+ },
163
+ "default_value": "#ffffff"
164
+ },
165
+ {
166
+ "key": "field_5eaab0c6f1f57",
167
+ "label": "Sizing",
168
+ "name": "",
169
+ "type": "accordion",
170
+ "instructions": "",
171
+ "required": 0,
172
+ "conditional_logic": 0,
173
+ "wrapper": {
174
+ "width": "",
175
+ "class": "",
176
+ "id": ""
177
+ },
178
+ "open": 0,
179
+ "multi_expand": 0,
180
+ "endpoint": 0
181
+ },
182
  {
183
  "key": "field_5d9c80d5ce688",
184
  "label": "Width",
220
  "append": "px"
221
  },
222
  {
223
+ "key": "field_5eaab04ff1f53",
224
+ "label": "Spacing",
225
  "name": "",
226
+ "type": "accordion",
227
  "instructions": "",
228
  "required": 0,
229
  "conditional_logic": 0,
232
  "class": "",
233
  "id": ""
234
  },
235
+ "open": 0,
236
+ "multi_expand": 0,
237
  "endpoint": 0
238
  },
239
  {
240
+ "key": "field_5eaab05ff1f54",
241
+ "label": "Margin",
242
+ "name": "acfb_shape_divider_margin",
243
+ "type": "margin",
244
  "instructions": "",
245
  "required": 0,
246
  "conditional_logic": 0,
249
  "class": "",
250
  "id": ""
251
  },
252
+ "margin_enable": 0,
253
+ "margin_top": "",
254
+ "margin_right": "",
255
+ "margin_bottom": "",
256
+ "margin_left": ""
257
  },
258
  {
259
+ "key": "field_5eaab072f1f55",
260
+ "label": "Padding",
261
+ "name": "acfb_shape_divider_padding",
262
+ "type": "padding",
263
  "instructions": "",
264
  "required": 0,
265
  "conditional_logic": 0,
268
  "class": "",
269
  "id": ""
270
  },
271
+ "padding_enable": 0,
272
+ "padding_top": "",
273
+ "padding_right": "",
274
+ "padding_bottom": "",
275
+ "padding_left": ""
276
  }
277
  ],
278
  "location": [
292
  "hide_on_screen": "",
293
  "active": 1,
294
  "description": "",
295
+ "modified": 1588244703
296
  }
acf-json/group_5d9f3016200d1.json CHANGED
@@ -33,8 +33,7 @@
33
  },
34
  "choices": {
35
  "post": "post",
36
- "page": "page",
37
- "products": "products"
38
  },
39
  "default_value": [
40
  0
@@ -122,10 +121,10 @@
122
  "endpoint": 0
123
  },
124
  {
125
- "key": "field_5db171f0c3654",
126
- "label": "Label Background Color",
127
- "name": "post_ticker_label_background_color",
128
- "type": "color_picker",
129
  "instructions": "",
130
  "required": 0,
131
  "conditional_logic": 0,
@@ -134,12 +133,77 @@
134
  "class": "",
135
  "id": ""
136
  },
137
- "default_value": "#e0e0e0"
 
 
138
  },
139
  {
140
- "key": "field_5db17273c3655",
141
- "label": "Label Color",
142
- "name": "post_ticker_label_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  "type": "color_picker",
144
  "instructions": "",
145
  "required": 0,
@@ -149,13 +213,13 @@
149
  "class": "",
150
  "id": ""
151
  },
152
- "default_value": "#191e23"
153
  },
154
  {
155
- "key": "field_5db193850f1e1",
156
- "label": "Label Size",
157
- "name": "post_ticker_label_size",
158
- "type": "range",
159
  "instructions": "",
160
  "required": 0,
161
  "conditional_logic": 0,
@@ -164,12 +228,7 @@
164
  "class": "",
165
  "id": ""
166
  },
167
- "default_value": 18,
168
- "min": "",
169
- "max": "",
170
- "step": "",
171
- "prepend": "",
172
- "append": "px"
173
  },
174
  {
175
  "key": "field_5db1927f0f1dd",
@@ -202,10 +261,10 @@
202
  "default_value": "#191e23"
203
  },
204
  {
205
- "key": "field_5db193250f1e0",
206
- "label": "Content Size",
207
- "name": "post_ticker_content_size",
208
- "type": "range",
209
  "instructions": "",
210
  "required": 0,
211
  "conditional_logic": 0,
@@ -214,12 +273,47 @@
214
  "class": "",
215
  "id": ""
216
  },
217
- "default_value": 18,
218
- "min": "",
219
- "max": 200,
220
- "step": "",
221
- "prepend": "",
222
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  }
224
  ],
225
  "location": [
@@ -239,5 +333,5 @@
239
  "hide_on_screen": "",
240
  "active": 1,
241
  "description": "",
242
- "modified": 1576571897
243
  }
33
  },
34
  "choices": {
35
  "post": "post",
36
+ "page": "page"
 
37
  },
38
  "default_value": [
39
  0
121
  "endpoint": 0
122
  },
123
  {
124
+ "key": "field_5eaac7233d1bb",
125
+ "label": "Typography",
126
+ "name": "",
127
+ "type": "accordion",
128
  "instructions": "",
129
  "required": 0,
130
  "conditional_logic": 0,
133
  "class": "",
134
  "id": ""
135
  },
136
+ "open": 0,
137
+ "multi_expand": 0,
138
+ "endpoint": 0
139
  },
140
  {
141
+ "key": "field_5eaac7553d1be",
142
+ "label": "Label",
143
+ "name": "post_ticker_label_typo",
144
+ "type": "typography",
145
+ "instructions": "",
146
+ "required": 0,
147
+ "conditional_logic": 0,
148
+ "wrapper": {
149
+ "width": "",
150
+ "class": "",
151
+ "id": ""
152
+ },
153
+ "font_family_enable": 0,
154
+ "font_family": "default",
155
+ "font_size": 18,
156
+ "font_weight": "default",
157
+ "font_transform": "default",
158
+ "font_style": "default",
159
+ "font_decoration": "default",
160
+ "font_line_height": "0.1",
161
+ "font_letter_spacing": 0
162
+ },
163
+ {
164
+ "key": "field_5eaac76e3d1bf",
165
+ "label": "Content",
166
+ "name": "post_ticker_content_typo",
167
+ "type": "typography",
168
+ "instructions": "",
169
+ "required": 0,
170
+ "conditional_logic": 0,
171
+ "wrapper": {
172
+ "width": "",
173
+ "class": "",
174
+ "id": ""
175
+ },
176
+ "font_family_enable": 0,
177
+ "font_family": "default",
178
+ "font_size": 18,
179
+ "font_weight": "default",
180
+ "font_transform": "default",
181
+ "font_style": "default",
182
+ "font_decoration": "default",
183
+ "font_line_height": "0.1",
184
+ "font_letter_spacing": 0
185
+ },
186
+ {
187
+ "key": "field_5eaac72b3d1bc",
188
+ "label": "Colors",
189
+ "name": "",
190
+ "type": "accordion",
191
+ "instructions": "",
192
+ "required": 0,
193
+ "conditional_logic": 0,
194
+ "wrapper": {
195
+ "width": "",
196
+ "class": "",
197
+ "id": ""
198
+ },
199
+ "open": 0,
200
+ "multi_expand": 0,
201
+ "endpoint": 0
202
+ },
203
+ {
204
+ "key": "field_5db171f0c3654",
205
+ "label": "Label Background Color",
206
+ "name": "post_ticker_label_background_color",
207
  "type": "color_picker",
208
  "instructions": "",
209
  "required": 0,
213
  "class": "",
214
  "id": ""
215
  },
216
+ "default_value": "#e0e0e0"
217
  },
218
  {
219
+ "key": "field_5db17273c3655",
220
+ "label": "Label Color",
221
+ "name": "post_ticker_label_color",
222
+ "type": "color_picker",
223
  "instructions": "",
224
  "required": 0,
225
  "conditional_logic": 0,
228
  "class": "",
229
  "id": ""
230
  },
231
+ "default_value": "#191e23"
 
 
 
 
 
232
  },
233
  {
234
  "key": "field_5db1927f0f1dd",
261
  "default_value": "#191e23"
262
  },
263
  {
264
+ "key": "field_5eaac73d3d1bd",
265
+ "label": "Spacing",
266
+ "name": "",
267
+ "type": "accordion",
268
  "instructions": "",
269
  "required": 0,
270
  "conditional_logic": 0,
273
  "class": "",
274
  "id": ""
275
  },
276
+ "open": 0,
277
+ "multi_expand": 0,
278
+ "endpoint": 0
279
+ },
280
+ {
281
+ "key": "field_5eaac7853d1c0",
282
+ "label": "Margin",
283
+ "name": "post_ticker_margin",
284
+ "type": "margin",
285
+ "instructions": "",
286
+ "required": 0,
287
+ "conditional_logic": 0,
288
+ "wrapper": {
289
+ "width": "",
290
+ "class": "",
291
+ "id": ""
292
+ },
293
+ "margin_enable": 0,
294
+ "margin_top": "",
295
+ "margin_right": "",
296
+ "margin_bottom": "",
297
+ "margin_left": ""
298
+ },
299
+ {
300
+ "key": "field_5eaac7963d1c2",
301
+ "label": "Padding",
302
+ "name": "post_ticker_padding",
303
+ "type": "padding",
304
+ "instructions": "",
305
+ "required": 0,
306
+ "conditional_logic": 0,
307
+ "wrapper": {
308
+ "width": "",
309
+ "class": "",
310
+ "id": ""
311
+ },
312
+ "padding_enable": 0,
313
+ "padding_top": "",
314
+ "padding_right": "",
315
+ "padding_bottom": "",
316
+ "padding_left": ""
317
  }
318
  ],
319
  "location": [
333
  "hide_on_screen": "",
334
  "active": 1,
335
  "description": "",
336
+ "modified": 1588250562
337
  }
acf-json/group_5d9f3dcad2c3d.json CHANGED
@@ -33,8 +33,7 @@
33
  },
34
  "choices": {
35
  "post": "post",
36
- "page": "page",
37
- "products": "products"
38
  },
39
  "default_value": [
40
  0
@@ -755,10 +754,10 @@
755
  "endpoint": 0
756
  },
757
  {
758
- "key": "field_5db9820b39c34",
759
- "label": "Overlay Color",
760
- "name": "acfb_post_tiled_overlay_color",
761
- "type": "color_picker",
762
  "instructions": "",
763
  "required": 0,
764
  "conditional_logic": 0,
@@ -767,13 +766,15 @@
767
  "class": "",
768
  "id": ""
769
  },
770
- "default_value": "#000000"
 
 
771
  },
772
  {
773
- "key": "field_5df89ce0e922c",
774
- "label": "Overlay Opacity",
775
- "name": "acfb_post_tiled_overlay_opacity",
776
- "type": "range",
777
  "instructions": "",
778
  "required": 0,
779
  "conditional_logic": 0,
@@ -782,17 +783,47 @@
782
  "class": "",
783
  "id": ""
784
  },
785
- "default_value": "0.5",
786
- "min": "0.1",
787
- "max": "0.9",
788
- "step": ".1",
789
- "prepend": "",
790
- "append": ""
791
  },
792
  {
793
- "key": "field_5d9f3dccb30d8",
794
- "label": "Title Custom Styles",
795
- "name": "acfb_post_tiled_title_custom_styles",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
  "type": "true_false",
797
  "instructions": "",
798
  "required": 0,
@@ -809,16 +840,16 @@
809
  "ui_off_text": ""
810
  },
811
  {
812
- "key": "field_5d9f3dcce038a",
813
- "label": "Title Color",
814
- "name": "acfb_post_tiled_title_color",
815
- "type": "color_picker",
816
  "instructions": "",
817
  "required": 0,
818
  "conditional_logic": [
819
  [
820
  {
821
- "field": "field_5d9f3dccb30d8",
822
  "operator": "==",
823
  "value": "1"
824
  }
@@ -829,19 +860,46 @@
829
  "class": "",
830
  "id": ""
831
  },
832
- "default_value": "#ffffff"
 
 
 
 
 
 
 
 
833
  },
834
  {
835
- "key": "field_5d9f3dcd10373",
836
- "label": "Title Hover Color",
837
- "name": "acfb_post_tiled_title_hover_color",
838
- "type": "color_picker",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
839
  "instructions": "",
840
  "required": 0,
841
  "conditional_logic": [
842
  [
843
  {
844
- "field": "field_5d9f3dccb30d8",
845
  "operator": "==",
846
  "value": "1"
847
  }
@@ -852,19 +910,46 @@
852
  "class": "",
853
  "id": ""
854
  },
855
- "default_value": "#ffffff"
 
 
 
 
 
 
 
 
856
  },
857
  {
858
- "key": "field_5d9f3dcd8a4af",
859
- "label": "Title Size",
860
- "name": "acfb_post_tiled_title_size",
861
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
862
  "instructions": "",
863
  "required": 0,
864
  "conditional_logic": [
865
  [
866
  {
867
- "field": "field_5d9f3dccb30d8",
868
  "operator": "==",
869
  "value": "1"
870
  }
@@ -875,17 +960,72 @@
875
  "class": "",
876
  "id": ""
877
  },
878
- "default_value": 25,
879
- "min": "",
880
- "max": 100,
881
- "step": "",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
882
  "prepend": "",
883
- "append": "px"
884
  },
885
  {
886
- "key": "field_5d9f3dcdc4e3d",
887
- "label": "Meta Custom Styles",
888
- "name": "acfb_post_tiled_meta_custom_styles",
889
  "type": "true_false",
890
  "instructions": "",
891
  "required": 0,
@@ -902,16 +1042,16 @@
902
  "ui_off_text": ""
903
  },
904
  {
905
- "key": "field_5d9f3dcdd53f9",
906
- "label": "Meta Color",
907
- "name": "acfb_post_tiled_meta_color",
908
  "type": "color_picker",
909
  "instructions": "",
910
  "required": 0,
911
  "conditional_logic": [
912
  [
913
  {
914
- "field": "field_5d9f3dcdc4e3d",
915
  "operator": "==",
916
  "value": "1"
917
  }
@@ -925,16 +1065,16 @@
925
  "default_value": "#ffffff"
926
  },
927
  {
928
- "key": "field_5d9f3dce3e5ff",
929
- "label": "Meta Size",
930
- "name": "acfb_post_tiled_meta_size",
931
- "type": "range",
932
  "instructions": "",
933
  "required": 0,
934
  "conditional_logic": [
935
  [
936
  {
937
- "field": "field_5d9f3dcdc4e3d",
938
  "operator": "==",
939
  "value": "1"
940
  }
@@ -945,17 +1085,12 @@
945
  "class": "",
946
  "id": ""
947
  },
948
- "default_value": 16,
949
- "min": "",
950
- "max": "",
951
- "step": "",
952
- "prepend": "",
953
- "append": "px"
954
  },
955
  {
956
- "key": "field_5d9f3dcee0fb5",
957
- "label": "Excerpt Custom Styles",
958
- "name": "acfb_post_tiled_excerpt_custom_styles",
959
  "type": "true_false",
960
  "instructions": "",
961
  "required": 0,
@@ -972,16 +1107,16 @@
972
  "ui_off_text": ""
973
  },
974
  {
975
- "key": "field_5d9f3dcef4069",
976
- "label": "Excerpt Color",
977
- "name": "acfb_post_tiled_excerpt_color",
978
  "type": "color_picker",
979
  "instructions": "",
980
  "required": 0,
981
  "conditional_logic": [
982
  [
983
  {
984
- "field": "field_5d9f3dcee0fb5",
985
  "operator": "==",
986
  "value": "1"
987
  }
@@ -992,19 +1127,38 @@
992
  "class": "",
993
  "id": ""
994
  },
995
- "default_value": "#191e23"
996
  },
997
  {
998
- "key": "field_5d9f3dcf136ae",
999
- "label": "Excerpt Size",
1000
- "name": "acfb_post_tiled_excerpt_size",
1001
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1002
  "instructions": "",
1003
  "required": 0,
1004
  "conditional_logic": [
1005
  [
1006
  {
1007
- "field": "field_5d9f3dccb30d8",
1008
  "operator": "==",
1009
  "value": "1"
1010
  }
@@ -1015,17 +1169,12 @@
1015
  "class": "",
1016
  "id": ""
1017
  },
1018
- "default_value": 17,
1019
- "min": "",
1020
- "max": "",
1021
- "step": "",
1022
- "prepend": "",
1023
- "append": "px"
1024
  },
1025
  {
1026
  "key": "field_5d9f3dcf25f92",
1027
- "label": "Button Custom Styles",
1028
- "name": "acfb_post_tiled_button_custom_styles",
1029
  "type": "true_false",
1030
  "instructions": "",
1031
  "required": 0,
@@ -1134,32 +1283,78 @@
1134
  "default_value": "#ffffff"
1135
  },
1136
  {
1137
- "key": "field_5d9f3dcf902e3",
1138
- "label": "Button Size",
1139
- "name": "acfb_post_tiled_button_size",
1140
- "type": "range",
1141
  "instructions": "",
1142
  "required": 0,
1143
- "conditional_logic": [
1144
- [
1145
- {
1146
- "field": "field_5d9f3dcf25f92",
1147
- "operator": "==",
1148
- "value": "1"
1149
- }
1150
- ]
1151
- ],
1152
  "wrapper": {
1153
  "width": "",
1154
  "class": "",
1155
  "id": ""
1156
  },
1157
- "default_value": 16,
1158
- "min": "",
1159
- "max": "",
1160
- "step": "",
1161
- "prepend": "",
1162
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1163
  }
1164
  ],
1165
  "location": [
@@ -1179,5 +1374,5 @@
1179
  "hide_on_screen": "",
1180
  "active": 1,
1181
  "description": "",
1182
- "modified": 1576574233
1183
  }
33
  },
34
  "choices": {
35
  "post": "post",
36
+ "page": "page"
 
37
  },
38
  "default_value": [
39
  0
754
  "endpoint": 0
755
  },
756
  {
757
+ "key": "field_5eaac1c4af2ce",
758
+ "label": "Typography",
759
+ "name": "",
760
+ "type": "accordion",
761
  "instructions": "",
762
  "required": 0,
763
  "conditional_logic": 0,
766
  "class": "",
767
  "id": ""
768
  },
769
+ "open": 0,
770
+ "multi_expand": 0,
771
+ "endpoint": 0
772
  },
773
  {
774
+ "key": "field_5eaac2d7af2d8",
775
+ "label": "Title Custom Typography",
776
+ "name": "acfb_post_tiled_title_custom_typography",
777
+ "type": "true_false",
778
  "instructions": "",
779
  "required": 0,
780
  "conditional_logic": 0,
783
  "class": "",
784
  "id": ""
785
  },
786
+ "message": "",
787
+ "default_value": 0,
788
+ "ui": 1,
789
+ "ui_on_text": "",
790
+ "ui_off_text": ""
 
791
  },
792
  {
793
+ "key": "field_5eaac25caf2d4",
794
+ "label": "Title",
795
+ "name": "acfb_post_tiled_title_typo",
796
+ "type": "typography",
797
+ "instructions": "",
798
+ "required": 0,
799
+ "conditional_logic": [
800
+ [
801
+ {
802
+ "field": "field_5eaac2d7af2d8",
803
+ "operator": "==",
804
+ "value": "1"
805
+ }
806
+ ]
807
+ ],
808
+ "wrapper": {
809
+ "width": "",
810
+ "class": "",
811
+ "id": ""
812
+ },
813
+ "font_family_enable": 0,
814
+ "font_family": "default",
815
+ "font_size": 25,
816
+ "font_weight": "default",
817
+ "font_transform": "default",
818
+ "font_style": "default",
819
+ "font_decoration": "default",
820
+ "font_line_height": "0.1",
821
+ "font_letter_spacing": 0
822
+ },
823
+ {
824
+ "key": "field_5eaac2efaf2d9",
825
+ "label": "Meta Custom Typography",
826
+ "name": "acfb_post_tiled_meta_custom_typography",
827
  "type": "true_false",
828
  "instructions": "",
829
  "required": 0,
840
  "ui_off_text": ""
841
  },
842
  {
843
+ "key": "field_5eaac275af2d5",
844
+ "label": "Meta",
845
+ "name": "acfb_post_tiled_meta_typo",
846
+ "type": "typography",
847
  "instructions": "",
848
  "required": 0,
849
  "conditional_logic": [
850
  [
851
  {
852
+ "field": "field_5eaac2efaf2d9",
853
  "operator": "==",
854
  "value": "1"
855
  }
860
  "class": "",
861
  "id": ""
862
  },
863
+ "font_family_enable": 0,
864
+ "font_family": "default",
865
+ "font_size": 16,
866
+ "font_weight": "default",
867
+ "font_transform": "default",
868
+ "font_style": "default",
869
+ "font_decoration": "default",
870
+ "font_line_height": "0.1",
871
+ "font_letter_spacing": 0
872
  },
873
  {
874
+ "key": "field_5eaac301af2da",
875
+ "label": "Excerpt Custom Typography",
876
+ "name": "acfb_post_tiled_excerpt_custom_typography",
877
+ "type": "true_false",
878
+ "instructions": "",
879
+ "required": 0,
880
+ "conditional_logic": 0,
881
+ "wrapper": {
882
+ "width": "",
883
+ "class": "",
884
+ "id": ""
885
+ },
886
+ "message": "",
887
+ "default_value": 0,
888
+ "ui": 1,
889
+ "ui_on_text": "",
890
+ "ui_off_text": ""
891
+ },
892
+ {
893
+ "key": "field_5eaac297af2d6",
894
+ "label": "Excerpt",
895
+ "name": "acfb_post_tiled_excerpt_typo",
896
+ "type": "typography",
897
  "instructions": "",
898
  "required": 0,
899
  "conditional_logic": [
900
  [
901
  {
902
+ "field": "field_5eaac301af2da",
903
  "operator": "==",
904
  "value": "1"
905
  }
910
  "class": "",
911
  "id": ""
912
  },
913
+ "font_family_enable": 0,
914
+ "font_family": "default",
915
+ "font_size": 17,
916
+ "font_weight": "default",
917
+ "font_transform": "default",
918
+ "font_style": "default",
919
+ "font_decoration": "default",
920
+ "font_line_height": "0.1",
921
+ "font_letter_spacing": 0
922
  },
923
  {
924
+ "key": "field_5eaac31daf2db",
925
+ "label": "Button Custom Typography",
926
+ "name": "acfb_post_tiled_button_custom_typography",
927
+ "type": "true_false",
928
+ "instructions": "",
929
+ "required": 0,
930
+ "conditional_logic": 0,
931
+ "wrapper": {
932
+ "width": "",
933
+ "class": "",
934
+ "id": ""
935
+ },
936
+ "message": "",
937
+ "default_value": 0,
938
+ "ui": 1,
939
+ "ui_on_text": "",
940
+ "ui_off_text": ""
941
+ },
942
+ {
943
+ "key": "field_5eaac2a8af2d7",
944
+ "label": "Button",
945
+ "name": "acfb_post_tiled_button_typo",
946
+ "type": "typography",
947
  "instructions": "",
948
  "required": 0,
949
  "conditional_logic": [
950
  [
951
  {
952
+ "field": "field_5eaac31daf2db",
953
  "operator": "==",
954
  "value": "1"
955
  }
960
  "class": "",
961
  "id": ""
962
  },
963
+ "font_family_enable": 0,
964
+ "font_family": "default",
965
+ "font_size": 16,
966
+ "font_weight": "default",
967
+ "font_transform": "default",
968
+ "font_style": "default",
969
+ "font_decoration": "default",
970
+ "font_line_height": "0.1",
971
+ "font_letter_spacing": 0
972
+ },
973
+ {
974
+ "key": "field_5eaac1ceaf2cf",
975
+ "label": "Colors",
976
+ "name": "",
977
+ "type": "accordion",
978
+ "instructions": "",
979
+ "required": 0,
980
+ "conditional_logic": 0,
981
+ "wrapper": {
982
+ "width": "",
983
+ "class": "",
984
+ "id": ""
985
+ },
986
+ "open": 0,
987
+ "multi_expand": 0,
988
+ "endpoint": 0
989
+ },
990
+ {
991
+ "key": "field_5db9820b39c34",
992
+ "label": "Overlay Color",
993
+ "name": "acfb_post_tiled_overlay_color",
994
+ "type": "color_picker",
995
+ "instructions": "",
996
+ "required": 0,
997
+ "conditional_logic": 0,
998
+ "wrapper": {
999
+ "width": "",
1000
+ "class": "",
1001
+ "id": ""
1002
+ },
1003
+ "default_value": "#000000"
1004
+ },
1005
+ {
1006
+ "key": "field_5df89ce0e922c",
1007
+ "label": "Overlay Opacity",
1008
+ "name": "acfb_post_tiled_overlay_opacity",
1009
+ "type": "range",
1010
+ "instructions": "",
1011
+ "required": 0,
1012
+ "conditional_logic": 0,
1013
+ "wrapper": {
1014
+ "width": "",
1015
+ "class": "",
1016
+ "id": ""
1017
+ },
1018
+ "default_value": "0.5",
1019
+ "min": "0.1",
1020
+ "max": "0.9",
1021
+ "step": ".1",
1022
  "prepend": "",
1023
+ "append": ""
1024
  },
1025
  {
1026
+ "key": "field_5d9f3dccb30d8",
1027
+ "label": "Title Custom Color",
1028
+ "name": "acfb_post_tiled_title_custom_color",
1029
  "type": "true_false",
1030
  "instructions": "",
1031
  "required": 0,
1042
  "ui_off_text": ""
1043
  },
1044
  {
1045
+ "key": "field_5d9f3dcce038a",
1046
+ "label": "Title Color",
1047
+ "name": "acfb_post_tiled_title_color",
1048
  "type": "color_picker",
1049
  "instructions": "",
1050
  "required": 0,
1051
  "conditional_logic": [
1052
  [
1053
  {
1054
+ "field": "field_5d9f3dccb30d8",
1055
  "operator": "==",
1056
  "value": "1"
1057
  }
1065
  "default_value": "#ffffff"
1066
  },
1067
  {
1068
+ "key": "field_5d9f3dcd10373",
1069
+ "label": "Title Hover Color",
1070
+ "name": "acfb_post_tiled_title_hover_color",
1071
+ "type": "color_picker",
1072
  "instructions": "",
1073
  "required": 0,
1074
  "conditional_logic": [
1075
  [
1076
  {
1077
+ "field": "field_5d9f3dccb30d8",
1078
  "operator": "==",
1079
  "value": "1"
1080
  }
1085
  "class": "",
1086
  "id": ""
1087
  },
1088
+ "default_value": "#ffffff"
 
 
 
 
 
1089
  },
1090
  {
1091
+ "key": "field_5d9f3dcdc4e3d",
1092
+ "label": "Meta Custom Color",
1093
+ "name": "acfb_post_tiled_meta_custom_color",
1094
  "type": "true_false",
1095
  "instructions": "",
1096
  "required": 0,
1107
  "ui_off_text": ""
1108
  },
1109
  {
1110
+ "key": "field_5d9f3dcdd53f9",
1111
+ "label": "Meta Color",
1112
+ "name": "acfb_post_tiled_meta_color",
1113
  "type": "color_picker",
1114
  "instructions": "",
1115
  "required": 0,
1116
  "conditional_logic": [
1117
  [
1118
  {
1119
+ "field": "field_5d9f3dcdc4e3d",
1120
  "operator": "==",
1121
  "value": "1"
1122
  }
1127
  "class": "",
1128
  "id": ""
1129
  },
1130
+ "default_value": "#ffffff"
1131
  },
1132
  {
1133
+ "key": "field_5d9f3dcee0fb5",
1134
+ "label": "Excerpt Custom Color",
1135
+ "name": "acfb_post_tiled_excerpt_custom_color",
1136
+ "type": "true_false",
1137
+ "instructions": "",
1138
+ "required": 0,
1139
+ "conditional_logic": 0,
1140
+ "wrapper": {
1141
+ "width": "",
1142
+ "class": "",
1143
+ "id": ""
1144
+ },
1145
+ "message": "",
1146
+ "default_value": 0,
1147
+ "ui": 1,
1148
+ "ui_on_text": "",
1149
+ "ui_off_text": ""
1150
+ },
1151
+ {
1152
+ "key": "field_5d9f3dcef4069",
1153
+ "label": "Excerpt Color",
1154
+ "name": "acfb_post_tiled_excerpt_color",
1155
+ "type": "color_picker",
1156
  "instructions": "",
1157
  "required": 0,
1158
  "conditional_logic": [
1159
  [
1160
  {
1161
+ "field": "field_5d9f3dcee0fb5",
1162
  "operator": "==",
1163
  "value": "1"
1164
  }
1169
  "class": "",
1170
  "id": ""
1171
  },
1172
+ "default_value": "#191e23"
 
 
 
 
 
1173
  },
1174
  {
1175
  "key": "field_5d9f3dcf25f92",
1176
+ "label": "Button Custom Color",
1177
+ "name": "acfb_post_tiled_button_custom_color",
1178
  "type": "true_false",
1179
  "instructions": "",
1180
  "required": 0,
1283
  "default_value": "#ffffff"
1284
  },
1285
  {
1286
+ "key": "field_5eaac1ddaf2d1",
1287
+ "label": "Spacing",
1288
+ "name": "",
1289
+ "type": "accordion",
1290
  "instructions": "",
1291
  "required": 0,
1292
+ "conditional_logic": 0,
 
 
 
 
 
 
 
 
1293
  "wrapper": {
1294
  "width": "",
1295
  "class": "",
1296
  "id": ""
1297
  },
1298
+ "open": 0,
1299
+ "multi_expand": 0,
1300
+ "endpoint": 0
1301
+ },
1302
+ {
1303
+ "key": "field_5eaac20aaf2d2",
1304
+ "label": "Margin",
1305
+ "name": "acfb_post_tiled_margin",
1306
+ "type": "margin",
1307
+ "instructions": "",
1308
+ "required": 0,
1309
+ "conditional_logic": 0,
1310
+ "wrapper": {
1311
+ "width": "",
1312
+ "class": "",
1313
+ "id": ""
1314
+ },
1315
+ "margin_enable": 0,
1316
+ "margin_top": "",
1317
+ "margin_right": "",
1318
+ "margin_bottom": "",
1319
+ "margin_left": ""
1320
+ },
1321
+ {
1322
+ "key": "field_5eaac237af2d3",
1323
+ "label": "Padding",
1324
+ "name": "acfb_post_tiled_padding",
1325
+ "type": "padding",
1326
+ "instructions": "",
1327
+ "required": 0,
1328
+ "conditional_logic": 0,
1329
+ "wrapper": {
1330
+ "width": "",
1331
+ "class": "",
1332
+ "id": ""
1333
+ },
1334
+ "padding_enable": 0,
1335
+ "padding_top": "",
1336
+ "padding_right": "",
1337
+ "padding_bottom": "",
1338
+ "padding_left": ""
1339
+ },
1340
+ {
1341
+ "key": "field_5eaac64a5d468",
1342
+ "label": "Inner Padding",
1343
+ "name": "acfb_post_tiled_inner_padding",
1344
+ "type": "padding",
1345
+ "instructions": "",
1346
+ "required": 0,
1347
+ "conditional_logic": 0,
1348
+ "wrapper": {
1349
+ "width": "",
1350
+ "class": "",
1351
+ "id": ""
1352
+ },
1353
+ "padding_enable": 0,
1354
+ "padding_top": 15,
1355
+ "padding_right": 15,
1356
+ "padding_bottom": 15,
1357
+ "padding_left": 15
1358
  }
1359
  ],
1360
  "location": [
1374
  "hide_on_screen": "",
1375
  "active": 1,
1376
  "description": "",
1377
+ "modified": 1588250220
1378
  }
acf-json/group_5da1986955b15.json CHANGED
@@ -33,8 +33,7 @@
33
  },
34
  "choices": {
35
  "post": "post",
36
- "page": "page",
37
- "products": "products"
38
  },
39
  "default_value": [
40
  0
@@ -545,10 +544,10 @@
545
  "endpoint": 0
546
  },
547
  {
548
- "key": "field_5dbad6591549c",
549
- "label": "Timeline Background Color",
550
- "name": "acfb_post_timeline_background",
551
- "type": "color_picker",
552
  "instructions": "",
553
  "required": 0,
554
  "conditional_logic": 0,
@@ -557,13 +556,15 @@
557
  "class": "",
558
  "id": ""
559
  },
560
- "default_value": "#f3f4f5"
 
 
561
  },
562
  {
563
- "key": "field_5df49f8b266f0",
564
- "label": "Timeline Image Size",
565
- "name": "acfb_post_timeline_image_size",
566
- "type": "range",
567
  "instructions": "",
568
  "required": 0,
569
  "conditional_logic": 0,
@@ -572,17 +573,47 @@
572
  "class": "",
573
  "id": ""
574
  },
575
- "default_value": 100,
576
- "min": "",
577
- "max": "",
578
- "step": "",
579
- "prepend": "",
580
- "append": "%"
581
  },
582
  {
583
- "key": "field_5da198716f325",
584
- "label": "Title Custom Styles",
585
- "name": "acfb_post_timeline_title_custom_styles",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
586
  "type": "true_false",
587
  "instructions": "",
588
  "required": 0,
@@ -599,16 +630,16 @@
599
  "ui_off_text": ""
600
  },
601
  {
602
- "key": "field_5da198717f4f8",
603
- "label": "Title Color",
604
- "name": "acfb_post_timeline_title_color",
605
- "type": "color_picker",
606
  "instructions": "",
607
  "required": 0,
608
  "conditional_logic": [
609
  [
610
  {
611
- "field": "field_5da198716f325",
612
  "operator": "==",
613
  "value": "1"
614
  }
@@ -619,19 +650,46 @@
619
  "class": "",
620
  "id": ""
621
  },
622
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
623
  },
624
  {
625
- "key": "field_5da19871a798a",
626
- "label": "Title Hover Color",
627
- "name": "acfb_post_timeline_title_hover_color",
628
- "type": "color_picker",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
629
  "instructions": "",
630
  "required": 0,
631
  "conditional_logic": [
632
  [
633
  {
634
- "field": "field_5da198716f325",
635
  "operator": "==",
636
  "value": "1"
637
  }
@@ -642,19 +700,46 @@
642
  "class": "",
643
  "id": ""
644
  },
645
- "default_value": "#191e23"
 
 
 
 
 
 
 
 
646
  },
647
  {
648
- "key": "field_5da19871ca05a",
649
- "label": "Title Size",
650
- "name": "acfb_post_timeline_title_size",
651
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
  "instructions": "",
653
  "required": 0,
654
  "conditional_logic": [
655
  [
656
  {
657
- "field": "field_5da198716f325",
658
  "operator": "==",
659
  "value": "1"
660
  }
@@ -665,17 +750,20 @@
665
  "class": "",
666
  "id": ""
667
  },
668
- "default_value": 25,
669
- "min": "",
670
- "max": 100,
671
- "step": "",
672
- "prepend": "",
673
- "append": "px"
 
 
 
674
  },
675
  {
676
- "key": "field_5da19871f154b",
677
- "label": "Meta Custom Styles",
678
- "name": "acfb_post_timeline_meta_custom_styles",
679
  "type": "true_false",
680
  "instructions": "",
681
  "required": 0,
@@ -692,16 +780,248 @@
692
  "ui_off_text": ""
693
  },
694
  {
695
- "key": "field_5da19872958af",
696
- "label": "Meta Color",
697
- "name": "acfb_post_timeline_meta_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
698
  "type": "color_picker",
699
  "instructions": "",
700
  "required": 0,
701
  "conditional_logic": [
702
  [
703
  {
704
- "field": "field_5da19871f154b",
705
  "operator": "==",
706
  "value": "1"
707
  }
@@ -715,16 +1035,16 @@
715
  "default_value": "#191e23"
716
  },
717
  {
718
- "key": "field_5da19872e2351",
719
- "label": "Meta Size",
720
- "name": "acfb_post_timeline_meta_size",
721
- "type": "range",
722
  "instructions": "",
723
  "required": 0,
724
  "conditional_logic": [
725
  [
726
  {
727
- "field": "field_5da19871f154b",
728
  "operator": "==",
729
  "value": "1"
730
  }
@@ -735,17 +1055,12 @@
735
  "class": "",
736
  "id": ""
737
  },
738
- "default_value": 16,
739
- "min": "",
740
- "max": "",
741
- "step": "",
742
- "prepend": "",
743
- "append": "px"
744
  },
745
  {
746
- "key": "field_5da19873428b5",
747
- "label": "Excerpt Custom Styles",
748
- "name": "acfb_post_timeline_excerpt_custom_styles",
749
  "type": "true_false",
750
  "instructions": "",
751
  "required": 0,
@@ -762,16 +1077,16 @@
762
  "ui_off_text": ""
763
  },
764
  {
765
- "key": "field_5da19873bf102",
766
- "label": "Excerpt Color",
767
- "name": "acfb_post_timeline_excerpt_color",
768
  "type": "color_picker",
769
  "instructions": "",
770
  "required": 0,
771
  "conditional_logic": [
772
  [
773
  {
774
- "field": "field_5da19873428b5",
775
  "operator": "==",
776
  "value": "1"
777
  }
@@ -785,10 +1100,29 @@
785
  "default_value": "#191e23"
786
  },
787
  {
788
- "key": "field_5da1987403cf7",
789
- "label": "Excerpt Size",
790
- "name": "acfb_post_timeline_excerpt_size",
791
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
792
  "instructions": "",
793
  "required": 0,
794
  "conditional_logic": [
@@ -805,17 +1139,12 @@
805
  "class": "",
806
  "id": ""
807
  },
808
- "default_value": 17,
809
- "min": "",
810
- "max": "",
811
- "step": "",
812
- "prepend": "",
813
- "append": "px"
814
  },
815
  {
816
  "key": "field_5da1987431f4a",
817
- "label": "Button Custom Styles",
818
- "name": "acfb_post_timeline_button_custom_styles",
819
  "type": "true_false",
820
  "instructions": "",
821
  "required": 0,
@@ -923,34 +1252,6 @@
923
  },
924
  "default_value": "#191e23"
925
  },
926
- {
927
- "key": "field_5da19874a2c14",
928
- "label": "Button Size",
929
- "name": "acfb_post_timeline_button_size",
930
- "type": "range",
931
- "instructions": "",
932
- "required": 0,
933
- "conditional_logic": [
934
- [
935
- {
936
- "field": "field_5da1987431f4a",
937
- "operator": "==",
938
- "value": "1"
939
- }
940
- ]
941
- ],
942
- "wrapper": {
943
- "width": "",
944
- "class": "",
945
- "id": ""
946
- },
947
- "default_value": 16,
948
- "min": "",
949
- "max": "",
950
- "step": "",
951
- "prepend": "",
952
- "append": "px"
953
- },
954
  {
955
  "key": "field_5dbad92eaae41",
956
  "label": "Divider Color",
@@ -1013,8 +1314,8 @@
1013
  },
1014
  {
1015
  "key": "field_5dbc220a91493",
1016
- "label": "Opposite Title Custom Styles",
1017
- "name": "acfb_post_timeline_opposite_title_custom_styles",
1018
  "type": "true_false",
1019
  "instructions": "",
1020
  "required": 0,
@@ -1076,38 +1377,10 @@
1076
  },
1077
  "default_value": "#191e23"
1078
  },
1079
- {
1080
- "key": "field_5dbc224791496",
1081
- "label": "Title Size",
1082
- "name": "acfb_post_timeline_opposite_title_size",
1083
- "type": "range",
1084
- "instructions": "",
1085
- "required": 0,
1086
- "conditional_logic": [
1087
- [
1088
- {
1089
- "field": "field_5dbc220a91493",
1090
- "operator": "==",
1091
- "value": "1"
1092
- }
1093
- ]
1094
- ],
1095
- "wrapper": {
1096
- "width": "",
1097
- "class": "",
1098
- "id": ""
1099
- },
1100
- "default_value": 25,
1101
- "min": "",
1102
- "max": 100,
1103
- "step": "",
1104
- "prepend": "",
1105
- "append": "px"
1106
- },
1107
  {
1108
  "key": "field_5dbc224f91497",
1109
- "label": "Opposite Meta Custom Styles",
1110
- "name": "acfb_post_timeline_opposite_meta_custom_styles",
1111
  "type": "true_false",
1112
  "instructions": "",
1113
  "required": 0,
@@ -1146,38 +1419,10 @@
1146
  },
1147
  "default_value": "#191e23"
1148
  },
1149
- {
1150
- "key": "field_5dbc22cb91499",
1151
- "label": "Meta Size",
1152
- "name": "acfb_post_timeline_opposite_meta_size",
1153
- "type": "range",
1154
- "instructions": "",
1155
- "required": 0,
1156
- "conditional_logic": [
1157
- [
1158
- {
1159
- "field": "field_5dbc224f91497",
1160
- "operator": "==",
1161
- "value": "1"
1162
- }
1163
- ]
1164
- ],
1165
- "wrapper": {
1166
- "width": "",
1167
- "class": "",
1168
- "id": ""
1169
- },
1170
- "default_value": 16,
1171
- "min": "",
1172
- "max": "",
1173
- "step": "",
1174
- "prepend": "",
1175
- "append": "px"
1176
- },
1177
  {
1178
  "key": "field_5dbc22f09149a",
1179
- "label": "Opposite Excerpt Custom Styles",
1180
- "name": "acfb_post_timeline_opposite_excerpt_custom_styles",
1181
  "type": "true_false",
1182
  "instructions": "",
1183
  "required": 0,
@@ -1216,38 +1461,10 @@
1216
  },
1217
  "default_value": "#191e23"
1218
  },
1219
- {
1220
- "key": "field_5dbc231e9149c",
1221
- "label": "Excerpt Size",
1222
- "name": "acfb_post_timeline_opposite_excerpt_size",
1223
- "type": "range",
1224
- "instructions": "",
1225
- "required": 0,
1226
- "conditional_logic": [
1227
- [
1228
- {
1229
- "field": "field_5dbc22f09149a",
1230
- "operator": "==",
1231
- "value": "1"
1232
- }
1233
- ]
1234
- ],
1235
- "wrapper": {
1236
- "width": "",
1237
- "class": "",
1238
- "id": ""
1239
- },
1240
- "default_value": 17,
1241
- "min": "",
1242
- "max": "",
1243
- "step": "",
1244
- "prepend": "",
1245
- "append": "px"
1246
- },
1247
  {
1248
  "key": "field_5dbc23569149d",
1249
- "label": "Opposite Button Custom Styles",
1250
- "name": "acfb_post_timeline_opposite_button_custom_styles",
1251
  "type": "true_false",
1252
  "instructions": "",
1253
  "required": 0,
@@ -1356,32 +1573,96 @@
1356
  "default_value": "#191e23"
1357
  },
1358
  {
1359
- "key": "field_5dbc23e5914a2",
1360
- "label": "Button Size",
1361
- "name": "acfb_post_timeline_opposite_button_size",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1362
  "type": "range",
1363
  "instructions": "",
1364
  "required": 0,
1365
- "conditional_logic": [
1366
- [
1367
- {
1368
- "field": "field_5dbc23569149d",
1369
- "operator": "==",
1370
- "value": "1"
1371
- }
1372
- ]
1373
- ],
1374
  "wrapper": {
1375
  "width": "",
1376
  "class": "",
1377
  "id": ""
1378
  },
1379
- "default_value": 16,
1380
  "min": "",
1381
  "max": "",
1382
  "step": "",
1383
  "prepend": "",
1384
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1385
  }
1386
  ],
1387
  "location": [
@@ -1401,5 +1682,5 @@
1401
  "hide_on_screen": "",
1402
  "active": 1,
1403
  "description": "",
1404
- "modified": 1576581421
1405
  }
33
  },
34
  "choices": {
35
  "post": "post",
36
+ "page": "page"
 
37
  },
38
  "default_value": [
39
  0
544
  "endpoint": 0
545
  },
546
  {
547
+ "key": "field_5eaab2864d4de",
548
+ "label": "Typography",
549
+ "name": "",
550
+ "type": "accordion",
551
  "instructions": "",
552
  "required": 0,
553
  "conditional_logic": 0,
556
  "class": "",
557
  "id": ""
558
  },
559
+ "open": 0,
560
+ "multi_expand": 0,
561
+ "endpoint": 0
562
  },
563
  {
564
+ "key": "field_5eaab462a83de",
565
+ "label": "Title Custom Typography",
566
+ "name": "acfb_post_timeline_title_custom_typography",
567
+ "type": "true_false",
568
  "instructions": "",
569
  "required": 0,
570
  "conditional_logic": 0,
573
  "class": "",
574
  "id": ""
575
  },
576
+ "message": "",
577
+ "default_value": 0,
578
+ "ui": 1,
579
+ "ui_on_text": "",
580
+ "ui_off_text": ""
 
581
  },
582
  {
583
+ "key": "field_5eaab3f1a83da",
584
+ "label": "Title",
585
+ "name": "acfb_post_timeline_title_typo",
586
+ "type": "typography",
587
+ "instructions": "",
588
+ "required": 0,
589
+ "conditional_logic": [
590
+ [
591
+ {
592
+ "field": "field_5eaab462a83de",
593
+ "operator": "==",
594
+ "value": "1"
595
+ }
596
+ ]
597
+ ],
598
+ "wrapper": {
599
+ "width": "",
600
+ "class": "",
601
+ "id": ""
602
+ },
603
+ "font_family_enable": 0,
604
+ "font_family": "default",
605
+ "font_size": 25,
606
+ "font_weight": "default",
607
+ "font_transform": "default",
608
+ "font_style": "default",
609
+ "font_decoration": "default",
610
+ "font_line_height": "0.1",
611
+ "font_letter_spacing": 0
612
+ },
613
+ {
614
+ "key": "field_5eaab498a83df",
615
+ "label": "Meta Custom Typography",
616
+ "name": "acfb_post_timeline_meta_custom_typography",
617
  "type": "true_false",
618
  "instructions": "",
619
  "required": 0,
630
  "ui_off_text": ""
631
  },
632
  {
633
+ "key": "field_5eaab415a83db",
634
+ "label": "Meta",
635
+ "name": "acfb_post_timeline_meta_typo",
636
+ "type": "typography",
637
  "instructions": "",
638
  "required": 0,
639
  "conditional_logic": [
640
  [
641
  {
642
+ "field": "field_5eaab498a83df",
643
  "operator": "==",
644
  "value": "1"
645
  }
650
  "class": "",
651
  "id": ""
652
  },
653
+ "font_family_enable": 0,
654
+ "font_family": "default",
655
+ "font_size": 16,
656
+ "font_weight": "default",
657
+ "font_transform": "default",
658
+ "font_style": "default",
659
+ "font_decoration": "default",
660
+ "font_line_height": "0.1",
661
+ "font_letter_spacing": 0
662
  },
663
  {
664
+ "key": "field_5eaab4aea83e0",
665
+ "label": "Excerpt Custom Typography",
666
+ "name": "acfb_post_timeline_meta_excerpt_typography",
667
+ "type": "true_false",
668
+ "instructions": "",
669
+ "required": 0,
670
+ "conditional_logic": 0,
671
+ "wrapper": {
672
+ "width": "",
673
+ "class": "",
674
+ "id": ""
675
+ },
676
+ "message": "",
677
+ "default_value": 0,
678
+ "ui": 1,
679
+ "ui_on_text": "",
680
+ "ui_off_text": ""
681
+ },
682
+ {
683
+ "key": "field_5eaab428a83dc",
684
+ "label": "Excerpt",
685
+ "name": "acfb_post_timeline_excerpt_typo",
686
+ "type": "typography",
687
  "instructions": "",
688
  "required": 0,
689
  "conditional_logic": [
690
  [
691
  {
692
+ "field": "field_5eaab4aea83e0",
693
  "operator": "==",
694
  "value": "1"
695
  }
700
  "class": "",
701
  "id": ""
702
  },
703
+ "font_family_enable": 0,
704
+ "font_family": "default",
705
+ "font_size": 17,
706
+ "font_weight": "default",
707
+ "font_transform": "default",
708
+ "font_style": "default",
709
+ "font_decoration": "default",
710
+ "font_line_height": "0.1",
711
+ "font_letter_spacing": 0
712
  },
713
  {
714
+ "key": "field_5eaab4bea83e1",
715
+ "label": "Button Custom Typography",
716
+ "name": "acfb_post_timeline_meta_button_typography",
717
+ "type": "true_false",
718
+ "instructions": "",
719
+ "required": 0,
720
+ "conditional_logic": 0,
721
+ "wrapper": {
722
+ "width": "",
723
+ "class": "",
724
+ "id": ""
725
+ },
726
+ "message": "",
727
+ "default_value": 0,
728
+ "ui": 1,
729
+ "ui_on_text": "",
730
+ "ui_off_text": ""
731
+ },
732
+ {
733
+ "key": "field_5eaab447a83dd",
734
+ "label": "Button",
735
+ "name": "acfb_post_timeline_button_typo",
736
+ "type": "typography",
737
  "instructions": "",
738
  "required": 0,
739
  "conditional_logic": [
740
  [
741
  {
742
+ "field": "field_5eaab4bea83e1",
743
  "operator": "==",
744
  "value": "1"
745
  }
750
  "class": "",
751
  "id": ""
752
  },
753
+ "font_family_enable": 0,
754
+ "font_family": "default",
755
+ "font_size": 16,
756
+ "font_weight": "default",
757
+ "font_transform": "default",
758
+ "font_style": "default",
759
+ "font_decoration": "default",
760
+ "font_line_height": "0.1",
761
+ "font_letter_spacing": 0
762
  },
763
  {
764
+ "key": "field_5eaab5825e88c",
765
+ "label": "Opposite Title Custom Typography",
766
+ "name": "acfb_post_timeline_opposite_title_custom_typography",
767
  "type": "true_false",
768
  "instructions": "",
769
  "required": 0,
780
  "ui_off_text": ""
781
  },
782
  {
783
+ "key": "field_5eaab5a75e88d",
784
+ "label": "Opposite Title",
785
+ "name": "acfb_post_timeline_opposite_title_typo",
786
+ "type": "typography",
787
+ "instructions": "",
788
+ "required": 0,
789
+ "conditional_logic": [
790
+ [
791
+ {
792
+ "field": "field_5eaab5825e88c",
793
+ "operator": "==",
794
+ "value": "1"
795
+ }
796
+ ]
797
+ ],
798
+ "wrapper": {
799
+ "width": "",
800
+ "class": "",
801
+ "id": ""
802
+ },
803
+ "font_family_enable": 0,
804
+ "font_family": "default",
805
+ "font_size": 25,
806
+ "font_weight": "default",
807
+ "font_transform": "default",
808
+ "font_style": "default",
809
+ "font_decoration": "default",
810
+ "font_line_height": "0.1",
811
+ "font_letter_spacing": 0
812
+ },
813
+ {
814
+ "key": "field_5eaab5ce5e88e",
815
+ "label": "Opposite Meta Custom Typography",
816
+ "name": "acfb_post_timeline_opposite_meta_custom_typography",
817
+ "type": "true_false",
818
+ "instructions": "",
819
+ "required": 0,
820
+ "conditional_logic": 0,
821
+ "wrapper": {
822
+ "width": "",
823
+ "class": "",
824
+ "id": ""
825
+ },
826
+ "message": "",
827
+ "default_value": 0,
828
+ "ui": 1,
829
+ "ui_on_text": "",
830
+ "ui_off_text": ""
831
+ },
832
+ {
833
+ "key": "field_5eaab5f65e88f",
834
+ "label": "Opposite Meta",
835
+ "name": "acfb_post_timeline_opposite_meta_typo",
836
+ "type": "typography",
837
+ "instructions": "",
838
+ "required": 0,
839
+ "conditional_logic": [
840
+ [
841
+ {
842
+ "field": "field_5eaab5ce5e88e",
843
+ "operator": "==",
844
+ "value": "1"
845
+ }
846
+ ]
847
+ ],
848
+ "wrapper": {
849
+ "width": "",
850
+ "class": "",
851
+ "id": ""
852
+ },
853
+ "font_family_enable": 0,
854
+ "font_family": "default",
855
+ "font_size": 16,
856
+ "font_weight": "default",
857
+ "font_transform": "default",
858
+ "font_style": "default",
859
+ "font_decoration": "default",
860
+ "font_line_height": "0.1",
861
+ "font_letter_spacing": 0
862
+ },
863
+ {
864
+ "key": "field_5eaab62f5e890",
865
+ "label": "Opposite Excerpt Custom Typography",
866
+ "name": "acfb_post_timeline_opposite_excerpt_custom_typography",
867
+ "type": "true_false",
868
+ "instructions": "",
869
+ "required": 0,
870
+ "conditional_logic": 0,
871
+ "wrapper": {
872
+ "width": "",
873
+ "class": "",
874
+ "id": ""
875
+ },
876
+ "message": "",
877
+ "default_value": 0,
878
+ "ui": 1,
879
+ "ui_on_text": "",
880
+ "ui_off_text": ""
881
+ },
882
+ {
883
+ "key": "field_5eaab6445e891",
884
+ "label": "Opposite Excerpt",
885
+ "name": "acfb_post_timeline_opposite_excerpt_typo",
886
+ "type": "typography",
887
+ "instructions": "",
888
+ "required": 0,
889
+ "conditional_logic": [
890
+ [
891
+ {
892
+ "field": "field_5eaab62f5e890",
893
+ "operator": "==",
894
+ "value": "1"
895
+ }
896
+ ]
897
+ ],
898
+ "wrapper": {
899
+ "width": "",
900
+ "class": "",
901
+ "id": ""
902
+ },
903
+ "font_family_enable": 0,
904
+ "font_family": "default",
905
+ "font_size": 17,
906
+ "font_weight": "default",
907
+ "font_transform": "default",
908
+ "font_style": "default",
909
+ "font_decoration": "default",
910
+ "font_line_height": "0.1",
911
+ "font_letter_spacing": 0
912
+ },
913
+ {
914
+ "key": "field_5eaab6645e892",
915
+ "label": "Opposite Button Custom Typography",
916
+ "name": "acfb_post_timeline_opposite_button_custom_typography",
917
+ "type": "true_false",
918
+ "instructions": "",
919
+ "required": 0,
920
+ "conditional_logic": 0,
921
+ "wrapper": {
922
+ "width": "",
923
+ "class": "",
924
+ "id": ""
925
+ },
926
+ "message": "",
927
+ "default_value": 0,
928
+ "ui": 1,
929
+ "ui_on_text": "",
930
+ "ui_off_text": ""
931
+ },
932
+ {
933
+ "key": "field_5eaab6805e893",
934
+ "label": "Opposite Button",
935
+ "name": "acfb_post_timeline_opposite_button_typo",
936
+ "type": "typography",
937
+ "instructions": "",
938
+ "required": 0,
939
+ "conditional_logic": [
940
+ [
941
+ {
942
+ "field": "field_5eaab6645e892",
943
+ "operator": "==",
944
+ "value": "1"
945
+ }
946
+ ]
947
+ ],
948
+ "wrapper": {
949
+ "width": "",
950
+ "class": "",
951
+ "id": ""
952
+ },
953
+ "font_family_enable": 0,
954
+ "font_family": "default",
955
+ "font_size": 16,
956
+ "font_weight": "default",
957
+ "font_transform": "default",
958
+ "font_style": "default",
959
+ "font_decoration": "default",
960
+ "font_line_height": "0.1",
961
+ "font_letter_spacing": 0
962
+ },
963
+ {
964
+ "key": "field_5eaab2954d4df",
965
+ "label": "Colors",
966
+ "name": "",
967
+ "type": "accordion",
968
+ "instructions": "",
969
+ "required": 0,
970
+ "conditional_logic": 0,
971
+ "wrapper": {
972
+ "width": "",
973
+ "class": "",
974
+ "id": ""
975
+ },
976
+ "open": 0,
977
+ "multi_expand": 0,
978
+ "endpoint": 0
979
+ },
980
+ {
981
+ "key": "field_5dbad6591549c",
982
+ "label": "Timeline Background Color",
983
+ "name": "acfb_post_timeline_background",
984
+ "type": "color_picker",
985
+ "instructions": "",
986
+ "required": 0,
987
+ "conditional_logic": 0,
988
+ "wrapper": {
989
+ "width": "",
990
+ "class": "",
991
+ "id": ""
992
+ },
993
+ "default_value": "#f3f4f5"
994
+ },
995
+ {
996
+ "key": "field_5da198716f325",
997
+ "label": "Title Custom Color",
998
+ "name": "acfb_post_timeline_title_custom_color",
999
+ "type": "true_false",
1000
+ "instructions": "",
1001
+ "required": 0,
1002
+ "conditional_logic": 0,
1003
+ "wrapper": {
1004
+ "width": "",
1005
+ "class": "",
1006
+ "id": ""
1007
+ },
1008
+ "message": "",
1009
+ "default_value": 0,
1010
+ "ui": 1,
1011
+ "ui_on_text": "",
1012
+ "ui_off_text": ""
1013
+ },
1014
+ {
1015
+ "key": "field_5da198717f4f8",
1016
+ "label": "Title Color",
1017
+ "name": "acfb_post_timeline_title_color",
1018
  "type": "color_picker",
1019
  "instructions": "",
1020
  "required": 0,
1021
  "conditional_logic": [
1022
  [
1023
  {
1024
+ "field": "field_5da198716f325",
1025
  "operator": "==",
1026
  "value": "1"
1027
  }
1035
  "default_value": "#191e23"
1036
  },
1037
  {
1038
+ "key": "field_5da19871a798a",
1039
+ "label": "Title Hover Color",
1040
+ "name": "acfb_post_timeline_title_hover_color",
1041
+ "type": "color_picker",
1042
  "instructions": "",
1043
  "required": 0,
1044
  "conditional_logic": [
1045
  [
1046
  {
1047
+ "field": "field_5da198716f325",
1048
  "operator": "==",
1049
  "value": "1"
1050
  }
1055
  "class": "",
1056
  "id": ""
1057
  },
1058
+ "default_value": "#191e23"
 
 
 
 
 
1059
  },
1060
  {
1061
+ "key": "field_5da19871f154b",
1062
+ "label": "Meta Custom Color",
1063
+ "name": "acfb_post_timeline_meta_custom_color",
1064
  "type": "true_false",
1065
  "instructions": "",
1066
  "required": 0,
1077
  "ui_off_text": ""
1078
  },
1079
  {
1080
+ "key": "field_5da19872958af",
1081
+ "label": "Meta Color",
1082
+ "name": "acfb_post_timeline_meta_color",
1083
  "type": "color_picker",
1084
  "instructions": "",
1085
  "required": 0,
1086
  "conditional_logic": [
1087
  [
1088
  {
1089
+ "field": "field_5da19871f154b",
1090
  "operator": "==",
1091
  "value": "1"
1092
  }
1100
  "default_value": "#191e23"
1101
  },
1102
  {
1103
+ "key": "field_5da19873428b5",
1104
+ "label": "Excerpt Custom Color",
1105
+ "name": "acfb_post_timeline_excerpt_custom_color",
1106
+ "type": "true_false",
1107
+ "instructions": "",
1108
+ "required": 0,
1109
+ "conditional_logic": 0,
1110
+ "wrapper": {
1111
+ "width": "",
1112
+ "class": "",
1113
+ "id": ""
1114
+ },
1115
+ "message": "",
1116
+ "default_value": 0,
1117
+ "ui": 1,
1118
+ "ui_on_text": "",
1119
+ "ui_off_text": ""
1120
+ },
1121
+ {
1122
+ "key": "field_5da19873bf102",
1123
+ "label": "Excerpt Color",
1124
+ "name": "acfb_post_timeline_excerpt_color",
1125
+ "type": "color_picker",
1126
  "instructions": "",
1127
  "required": 0,
1128
  "conditional_logic": [
1139
  "class": "",
1140
  "id": ""
1141
  },
1142
+ "default_value": "#191e23"
 
 
 
 
 
1143
  },
1144
  {
1145
  "key": "field_5da1987431f4a",
1146
+ "label": "Button Custom Color",
1147
+ "name": "acfb_post_timeline_button_custom_color",
1148
  "type": "true_false",
1149
  "instructions": "",
1150
  "required": 0,
1252
  },
1253
  "default_value": "#191e23"
1254
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1255
  {
1256
  "key": "field_5dbad92eaae41",
1257
  "label": "Divider Color",
1314
  },
1315
  {
1316
  "key": "field_5dbc220a91493",
1317
+ "label": "Opposite Title Custom Color",
1318
+ "name": "acfb_post_timeline_opposite_title_custom_color",
1319
  "type": "true_false",
1320
  "instructions": "",
1321
  "required": 0,
1377
  },
1378
  "default_value": "#191e23"
1379
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1380
  {
1381
  "key": "field_5dbc224f91497",
1382
+ "label": "Opposite Meta Custom Color",
1383
+ "name": "acfb_post_timeline_opposite_meta_custom_color",
1384
  "type": "true_false",
1385
  "instructions": "",
1386
  "required": 0,
1419
  },
1420
  "default_value": "#191e23"
1421
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1422
  {
1423
  "key": "field_5dbc22f09149a",
1424
+ "label": "Opposite Excerpt Custom Color",
1425
+ "name": "acfb_post_timeline_opposite_excerpt_custom_color",
1426
  "type": "true_false",
1427
  "instructions": "",
1428
  "required": 0,
1461
  },
1462
  "default_value": "#191e23"
1463
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1464
  {
1465
  "key": "field_5dbc23569149d",
1466
+ "label": "Opposite Button Custom Color",
1467
+ "name": "acfb_post_timeline_opposite_button_custom_color",
1468
  "type": "true_false",
1469
  "instructions": "",
1470
  "required": 0,
1573
  "default_value": "#191e23"
1574
  },
1575
  {
1576
+ "key": "field_5eaab29b4d4e0",
1577
+ "label": "Sizing",
1578
+ "name": "",
1579
+ "type": "accordion",
1580
+ "instructions": "",
1581
+ "required": 0,
1582
+ "conditional_logic": 0,
1583
+ "wrapper": {
1584
+ "width": "",
1585
+ "class": "",
1586
+ "id": ""
1587
+ },
1588
+ "open": 0,
1589
+ "multi_expand": 0,
1590
+ "endpoint": 0
1591
+ },
1592
+ {
1593
+ "key": "field_5df49f8b266f0",
1594
+ "label": "Timeline Image Size",
1595
+ "name": "acfb_post_timeline_image_size",
1596
  "type": "range",
1597
  "instructions": "",
1598
  "required": 0,
1599
+ "conditional_logic": 0,
 
 
 
 
 
 
 
 
1600
  "wrapper": {
1601
  "width": "",
1602
  "class": "",
1603
  "id": ""
1604
  },
1605
+ "default_value": 100,
1606
  "min": "",
1607
  "max": "",
1608
  "step": "",
1609
  "prepend": "",
1610
+ "append": "%"
1611
+ },
1612
+ {
1613
+ "key": "field_5eaab2a24d4e1",
1614
+ "label": "Spacing",
1615
+ "name": "",
1616
+ "type": "accordion",
1617
+ "instructions": "",
1618
+ "required": 0,
1619
+ "conditional_logic": 0,
1620
+ "wrapper": {
1621
+ "width": "",
1622
+ "class": "",
1623
+ "id": ""
1624
+ },
1625
+ "open": 0,
1626
+ "multi_expand": 0,
1627
+ "endpoint": 0
1628
+ },
1629
+ {
1630
+ "key": "field_5eaab38f4d4e2",
1631
+ "label": "Margin",
1632
+ "name": "acfb_post_timeline_margin",
1633
+ "type": "margin",
1634
+ "instructions": "",
1635
+ "required": 0,
1636
+ "conditional_logic": 0,
1637
+ "wrapper": {
1638
+ "width": "",
1639
+ "class": "",
1640
+ "id": ""
1641
+ },
1642
+ "margin_enable": 0,
1643
+ "margin_top": "",
1644
+ "margin_right": "",
1645
+ "margin_bottom": "",
1646
+ "margin_left": ""
1647
+ },
1648
+ {
1649
+ "key": "field_5eaab3a14d4e3",
1650
+ "label": "Padding",
1651
+ "name": "acfb_post_timeline_padding",
1652
+ "type": "padding",
1653
+ "instructions": "",
1654
+ "required": 0,
1655
+ "conditional_logic": 0,
1656
+ "wrapper": {
1657
+ "width": "",
1658
+ "class": "",
1659
+ "id": ""
1660
+ },
1661
+ "padding_enable": 0,
1662
+ "padding_top": "",
1663
+ "padding_right": "",
1664
+ "padding_bottom": "",
1665
+ "padding_left": ""
1666
  }
1667
  ],
1668
  "location": [
1682
  "hide_on_screen": "",
1683
  "active": 1,
1684
  "description": "",
1685
+ "modified": 1588248514
1686
  }
acf-json/group_5db1a62d812f2.json CHANGED
@@ -33,8 +33,7 @@
33
  },
34
  "choices": {
35
  "post": "post",
36
- "page": "page",
37
- "products": "products"
38
  },
39
  "default_value": [
40
  0
@@ -877,18 +876,54 @@
877
  "endpoint": 0
878
  },
879
  {
880
- "key": "field_5db96dddfbbd2",
881
- "label": "Overlay Color",
882
- "name": "acfb_post_slider_tile_overlay_color",
883
- "type": "color_picker",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
884
  "instructions": "",
885
  "required": 0,
886
  "conditional_logic": [
887
  [
888
  {
889
- "field": "field_5db1a62e3c379",
890
  "operator": "==",
891
- "value": "acfb_post_slider_tiled"
892
  }
893
  ]
894
  ],
@@ -897,21 +932,48 @@
897
  "class": "",
898
  "id": ""
899
  },
900
- "default_value": "#000000"
 
 
 
 
 
 
 
 
901
  },
902
  {
903
- "key": "field_5df8b2dae0c6c",
904
- "label": "Overlay Opacity",
905
- "name": "acfb_post_slider_tile_overlay_opacity",
906
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
907
  "instructions": "",
908
  "required": 0,
909
  "conditional_logic": [
910
  [
911
  {
912
- "field": "field_5db1a62e3c379",
913
  "operator": "==",
914
- "value": "acfb_post_slider_tiled"
915
  }
916
  ]
917
  ],
@@ -920,26 +982,48 @@
920
  "class": "",
921
  "id": ""
922
  },
923
- "default_value": "0.5",
924
- "min": "0.1",
925
- "max": "0.9",
926
- "step": "0.1",
927
- "prepend": "",
928
- "append": ""
 
 
 
929
  },
930
  {
931
- "key": "field_5db2fa8d35ba4",
932
- "label": "Background Color",
933
- "name": "acfb_post_slider_bg_color",
934
- "type": "color_picker",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
935
  "instructions": "",
936
  "required": 0,
937
  "conditional_logic": [
938
  [
939
  {
940
- "field": "field_5db1a62e3c379",
941
  "operator": "==",
942
- "value": "acfb_post_slider_card"
943
  }
944
  ]
945
  ],
@@ -948,12 +1032,20 @@
948
  "class": "",
949
  "id": ""
950
  },
951
- "default_value": "#f3f4f5"
 
 
 
 
 
 
 
 
952
  },
953
  {
954
- "key": "field_5db1a632ee421",
955
- "label": "Title Custom Styles",
956
- "name": "acfb_post_slider_title_custom_styles",
957
  "type": "true_false",
958
  "instructions": "",
959
  "required": 0,
@@ -970,16 +1062,16 @@
970
  "ui_off_text": ""
971
  },
972
  {
973
- "key": "field_5db1a633147c7",
974
- "label": "Title Color",
975
- "name": "acfb_post_slider_title_color",
976
- "type": "color_picker",
977
  "instructions": "",
978
  "required": 0,
979
  "conditional_logic": [
980
  [
981
  {
982
- "field": "field_5db1a632ee421",
983
  "operator": "==",
984
  "value": "1"
985
  }
@@ -990,21 +1082,46 @@
990
  "class": "",
991
  "id": ""
992
  },
993
- "default_value": "#ffffff"
 
 
 
 
 
 
 
 
994
  },
995
  {
996
- "key": "field_5db1a6332787c",
997
- "label": "Title Hover Color",
998
- "name": "acfb_post_slider_title_hover_color",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
999
  "type": "color_picker",
1000
  "instructions": "",
1001
  "required": 0,
1002
  "conditional_logic": [
1003
  [
1004
  {
1005
- "field": "field_5db1a632ee421",
1006
  "operator": "==",
1007
- "value": "1"
1008
  }
1009
  ]
1010
  ],
@@ -1013,21 +1130,21 @@
1013
  "class": "",
1014
  "id": ""
1015
  },
1016
- "default_value": "#ffffff"
1017
  },
1018
  {
1019
- "key": "field_5db1a6333d429",
1020
- "label": "Title Size",
1021
- "name": "acfb_post_slider_title_size",
1022
  "type": "range",
1023
  "instructions": "",
1024
  "required": 0,
1025
  "conditional_logic": [
1026
  [
1027
  {
1028
- "field": "field_5db1a632ee421",
1029
  "operator": "==",
1030
- "value": "1"
1031
  }
1032
  ]
1033
  ],
@@ -1036,17 +1153,40 @@
1036
  "class": "",
1037
  "id": ""
1038
  },
1039
- "default_value": 25,
1040
- "min": "",
1041
- "max": 100,
1042
- "step": "",
1043
  "prepend": "",
1044
- "append": "px"
1045
  },
1046
  {
1047
- "key": "field_5db1a633500f5",
1048
- "label": "Meta Custom Styles",
1049
- "name": "acfb_post_slider_meta_custom_styles",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1050
  "type": "true_false",
1051
  "instructions": "",
1052
  "required": 0,
@@ -1063,16 +1203,16 @@
1063
  "ui_off_text": ""
1064
  },
1065
  {
1066
- "key": "field_5db1a63363592",
1067
- "label": "Meta Color",
1068
- "name": "acfb_post_slider_meta_color",
1069
  "type": "color_picker",
1070
  "instructions": "",
1071
  "required": 0,
1072
  "conditional_logic": [
1073
  [
1074
  {
1075
- "field": "field_5db1a633500f5",
1076
  "operator": "==",
1077
  "value": "1"
1078
  }
@@ -1086,16 +1226,16 @@
1086
  "default_value": "#ffffff"
1087
  },
1088
  {
1089
- "key": "field_5db1a63389313",
1090
- "label": "Meta Size",
1091
- "name": "acfb_post_slider_meta_size",
1092
- "type": "range",
1093
  "instructions": "",
1094
  "required": 0,
1095
  "conditional_logic": [
1096
  [
1097
  {
1098
- "field": "field_5db1a633500f5",
1099
  "operator": "==",
1100
  "value": "1"
1101
  }
@@ -1106,17 +1246,12 @@
1106
  "class": "",
1107
  "id": ""
1108
  },
1109
- "default_value": 16,
1110
- "min": "",
1111
- "max": "",
1112
- "step": "",
1113
- "prepend": "",
1114
- "append": "px"
1115
  },
1116
  {
1117
- "key": "field_5db1a633b90be",
1118
- "label": "Excerpt Custom Styles",
1119
- "name": "acfb_post_slider_excerpt_custom_styles",
1120
  "type": "true_false",
1121
  "instructions": "",
1122
  "required": 0,
@@ -1133,16 +1268,16 @@
1133
  "ui_off_text": ""
1134
  },
1135
  {
1136
- "key": "field_5db1a633d619d",
1137
- "label": "Excerpt Color",
1138
- "name": "acfb_post_slider_excerpt_color",
1139
  "type": "color_picker",
1140
  "instructions": "",
1141
  "required": 0,
1142
  "conditional_logic": [
1143
  [
1144
  {
1145
- "field": "field_5db1a633b90be",
1146
  "operator": "==",
1147
  "value": "1"
1148
  }
@@ -1156,10 +1291,29 @@
1156
  "default_value": "#ffffff"
1157
  },
1158
  {
1159
- "key": "field_5db1a633eb962",
1160
- "label": "Excerpt Size",
1161
- "name": "acfb_post_slider_excerpt_size",
1162
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1163
  "instructions": "",
1164
  "required": 0,
1165
  "conditional_logic": [
@@ -1176,17 +1330,12 @@
1176
  "class": "",
1177
  "id": ""
1178
  },
1179
- "default_value": 17,
1180
- "min": "",
1181
- "max": "",
1182
- "step": "",
1183
- "prepend": "",
1184
- "append": "px"
1185
  },
1186
  {
1187
  "key": "field_5db1a6340a7d6",
1188
- "label": "Button Custom Styles",
1189
- "name": "acfb_post_slider_button_custom_styles",
1190
  "type": "true_false",
1191
  "instructions": "",
1192
  "required": 0,
@@ -1294,34 +1443,6 @@
1294
  },
1295
  "default_value": "#ffffff"
1296
  },
1297
- {
1298
- "key": "field_5db1a63481e1a",
1299
- "label": "Button Size",
1300
- "name": "acfb_post_slider_button_size",
1301
- "type": "range",
1302
- "instructions": "",
1303
- "required": 0,
1304
- "conditional_logic": [
1305
- [
1306
- {
1307
- "field": "field_5db1a6340a7d6",
1308
- "operator": "==",
1309
- "value": "1"
1310
- }
1311
- ]
1312
- ],
1313
- "wrapper": {
1314
- "width": "",
1315
- "class": "",
1316
- "id": ""
1317
- },
1318
- "default_value": 16,
1319
- "min": "",
1320
- "max": "",
1321
- "step": "",
1322
- "prepend": "",
1323
- "append": "px"
1324
- },
1325
  {
1326
  "key": "field_5db9784c05f35",
1327
  "label": "Navigation Background Color",
@@ -1381,6 +1502,80 @@
1381
  "id": ""
1382
  },
1383
  "default_value": "#000000"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1384
  }
1385
  ],
1386
  "location": [
@@ -1400,5 +1595,5 @@
1400
  "hide_on_screen": "",
1401
  "active": 1,
1402
  "description": "",
1403
- "modified": 1576579877
1404
  }
33
  },
34
  "choices": {
35
  "post": "post",
36
+ "page": "page"
 
37
  },
38
  "default_value": [
39
  0
876
  "endpoint": 0
877
  },
878
  {
879
+ "key": "field_5eaac893383f2",
880
+ "label": "Typography",
881
+ "name": "",
882
+ "type": "accordion",
883
+ "instructions": "",
884
+ "required": 0,
885
+ "conditional_logic": 0,
886
+ "wrapper": {
887
+ "width": "",
888
+ "class": "",
889
+ "id": ""
890
+ },
891
+ "open": 0,
892
+ "multi_expand": 0,
893
+ "endpoint": 0
894
+ },
895
+ {
896
+ "key": "field_5eaac91c383f9",
897
+ "label": "Title Custom Typography",
898
+ "name": "acfb_post_slider_title_custom_typography",
899
+ "type": "true_false",
900
+ "instructions": "",
901
+ "required": 0,
902
+ "conditional_logic": 0,
903
+ "wrapper": {
904
+ "width": "",
905
+ "class": "",
906
+ "id": ""
907
+ },
908
+ "message": "",
909
+ "default_value": 0,
910
+ "ui": 1,
911
+ "ui_on_text": "",
912
+ "ui_off_text": ""
913
+ },
914
+ {
915
+ "key": "field_5eaac8bc383f5",
916
+ "label": "Title",
917
+ "name": "acfb_post_slider_title_typo",
918
+ "type": "typography",
919
  "instructions": "",
920
  "required": 0,
921
  "conditional_logic": [
922
  [
923
  {
924
+ "field": "field_5eaac91c383f9",
925
  "operator": "==",
926
+ "value": "1"
927
  }
928
  ]
929
  ],
932
  "class": "",
933
  "id": ""
934
  },
935
+ "font_family_enable": 0,
936
+ "font_family": "default",
937
+ "font_size": 25,
938
+ "font_weight": "default",
939
+ "font_transform": "default",
940
+ "font_style": "default",
941
+ "font_decoration": "default",
942
+ "font_line_height": "0.1",
943
+ "font_letter_spacing": 0
944
  },
945
  {
946
+ "key": "field_5eaac942383fa",
947
+ "label": "Meta Custom Typography",
948
+ "name": "acfb_post_slider_meta_custom_typography",
949
+ "type": "true_false",
950
+ "instructions": "",
951
+ "required": 0,
952
+ "conditional_logic": 0,
953
+ "wrapper": {
954
+ "width": "",
955
+ "class": "",
956
+ "id": ""
957
+ },
958
+ "message": "",
959
+ "default_value": 0,
960
+ "ui": 1,
961
+ "ui_on_text": "",
962
+ "ui_off_text": ""
963
+ },
964
+ {
965
+ "key": "field_5eaac8d4383f6",
966
+ "label": "Meta",
967
+ "name": "acfb_post_slider_meta_typo",
968
+ "type": "typography",
969
  "instructions": "",
970
  "required": 0,
971
  "conditional_logic": [
972
  [
973
  {
974
+ "field": "field_5eaac942383fa",
975
  "operator": "==",
976
+ "value": "1"
977
  }
978
  ]
979
  ],
982
  "class": "",
983
  "id": ""
984
  },
985
+ "font_family_enable": 0,
986
+ "font_family": "default",
987
+ "font_size": 16,
988
+ "font_weight": "default",
989
+ "font_transform": "default",
990
+ "font_style": "default",
991
+ "font_decoration": "default",
992
+ "font_line_height": "0.1",
993
+ "font_letter_spacing": 0
994
  },
995
  {
996
+ "key": "field_5eaac952383fb",
997
+ "label": "Excerpt Custom Typography",
998
+ "name": "acfb_post_slider_excerpt_custom_typography",
999
+ "type": "true_false",
1000
+ "instructions": "",
1001
+ "required": 0,
1002
+ "conditional_logic": 0,
1003
+ "wrapper": {
1004
+ "width": "",
1005
+ "class": "",
1006
+ "id": ""
1007
+ },
1008
+ "message": "",
1009
+ "default_value": 0,
1010
+ "ui": 1,
1011
+ "ui_on_text": "",
1012
+ "ui_off_text": ""
1013
+ },
1014
+ {
1015
+ "key": "field_5eaac8de383f7",
1016
+ "label": "Excerpt",
1017
+ "name": "acfb_post_slider_excerpt_typo",
1018
+ "type": "typography",
1019
  "instructions": "",
1020
  "required": 0,
1021
  "conditional_logic": [
1022
  [
1023
  {
1024
+ "field": "field_5eaac952383fb",
1025
  "operator": "==",
1026
+ "value": "1"
1027
  }
1028
  ]
1029
  ],
1032
  "class": "",
1033
  "id": ""
1034
  },
1035
+ "font_family_enable": 0,
1036
+ "font_family": "default",
1037
+ "font_size": 17,
1038
+ "font_weight": "default",
1039
+ "font_transform": "default",
1040
+ "font_style": "default",
1041
+ "font_decoration": "default",
1042
+ "font_line_height": "0.1",
1043
+ "font_letter_spacing": 0
1044
  },
1045
  {
1046
+ "key": "field_5eaac967383fc",
1047
+ "label": "Button Custom Typography",
1048
+ "name": "acfb_post_slider_button_custom_typography",
1049
  "type": "true_false",
1050
  "instructions": "",
1051
  "required": 0,
1062
  "ui_off_text": ""
1063
  },
1064
  {
1065
+ "key": "field_5eaac900383f8",
1066
+ "label": "Button",
1067
+ "name": "acfb_post_slider_button_typo",
1068
+ "type": "typography",
1069
  "instructions": "",
1070
  "required": 0,
1071
  "conditional_logic": [
1072
  [
1073
  {
1074
+ "field": "field_5eaac967383fc",
1075
  "operator": "==",
1076
  "value": "1"
1077
  }
1082
  "class": "",
1083
  "id": ""
1084
  },
1085
+ "font_family_enable": 0,
1086
+ "font_family": "default",
1087
+ "font_size": 16,
1088
+ "font_weight": "default",
1089
+ "font_transform": "default",
1090
+ "font_style": "default",
1091
+ "font_decoration": "default",
1092
+ "font_line_height": "0.1",
1093
+ "font_letter_spacing": 0
1094
  },
1095
  {
1096
+ "key": "field_5eaac89d383f3",
1097
+ "label": "Colors",
1098
+ "name": "",
1099
+ "type": "accordion",
1100
+ "instructions": "",
1101
+ "required": 0,
1102
+ "conditional_logic": 0,
1103
+ "wrapper": {
1104
+ "width": "",
1105
+ "class": "",
1106
+ "id": ""
1107
+ },
1108
+ "open": 0,
1109
+ "multi_expand": 0,
1110
+ "endpoint": 0
1111
+ },
1112
+ {
1113
+ "key": "field_5db96dddfbbd2",
1114
+ "label": "Overlay Color",
1115
+ "name": "acfb_post_slider_tile_overlay_color",
1116
  "type": "color_picker",
1117
  "instructions": "",
1118
  "required": 0,
1119
  "conditional_logic": [
1120
  [
1121
  {
1122
+ "field": "field_5db1a62e3c379",
1123
  "operator": "==",
1124
+ "value": "acfb_post_slider_tiled"
1125
  }
1126
  ]
1127
  ],
1130
  "class": "",
1131
  "id": ""
1132
  },
1133
+ "default_value": "#000000"
1134
  },
1135
  {
1136
+ "key": "field_5df8b2dae0c6c",
1137
+ "label": "Overlay Opacity",
1138
+ "name": "acfb_post_slider_tile_overlay_opacity",
1139
  "type": "range",
1140
  "instructions": "",
1141
  "required": 0,
1142
  "conditional_logic": [
1143
  [
1144
  {
1145
+ "field": "field_5db1a62e3c379",
1146
  "operator": "==",
1147
+ "value": "acfb_post_slider_tiled"
1148
  }
1149
  ]
1150
  ],
1153
  "class": "",
1154
  "id": ""
1155
  },
1156
+ "default_value": "0.5",
1157
+ "min": "0.1",
1158
+ "max": "0.9",
1159
+ "step": "0.1",
1160
  "prepend": "",
1161
+ "append": ""
1162
  },
1163
  {
1164
+ "key": "field_5db2fa8d35ba4",
1165
+ "label": "Background Color",
1166
+ "name": "acfb_post_slider_bg_color",
1167
+ "type": "color_picker",
1168
+ "instructions": "",
1169
+ "required": 0,
1170
+ "conditional_logic": [
1171
+ [
1172
+ {
1173
+ "field": "field_5db1a62e3c379",
1174
+ "operator": "==",
1175
+ "value": "acfb_post_slider_card"
1176
+ }
1177
+ ]
1178
+ ],
1179
+ "wrapper": {
1180
+ "width": "",
1181
+ "class": "",
1182
+ "id": ""
1183
+ },
1184
+ "default_value": "#f3f4f5"
1185
+ },
1186
+ {
1187
+ "key": "field_5db1a632ee421",
1188
+ "label": "Title Custom Color",
1189
+ "name": "acfb_post_slider_title_custom_color",
1190
  "type": "true_false",
1191
  "instructions": "",
1192
  "required": 0,
1203
  "ui_off_text": ""
1204
  },
1205
  {
1206
+ "key": "field_5db1a633147c7",
1207
+ "label": "Title Color",
1208
+ "name": "acfb_post_slider_title_color",
1209
  "type": "color_picker",
1210
  "instructions": "",
1211
  "required": 0,
1212
  "conditional_logic": [
1213
  [
1214
  {
1215
+ "field": "field_5db1a632ee421",
1216
  "operator": "==",
1217
  "value": "1"
1218
  }
1226
  "default_value": "#ffffff"
1227
  },
1228
  {
1229
+ "key": "field_5db1a6332787c",
1230
+ "label": "Title Hover Color",
1231
+ "name": "acfb_post_slider_title_hover_color",
1232
+ "type": "color_picker",
1233
  "instructions": "",
1234
  "required": 0,
1235
  "conditional_logic": [
1236
  [
1237
  {
1238
+ "field": "field_5db1a632ee421",
1239
  "operator": "==",
1240
  "value": "1"
1241
  }
1246
  "class": "",
1247
  "id": ""
1248
  },
1249
+ "default_value": "#ffffff"
 
 
 
 
 
1250
  },
1251
  {
1252
+ "key": "field_5db1a633500f5",
1253
+ "label": "Meta Custom Color",
1254
+ "name": "acfb_post_slider_meta_custom_color",
1255
  "type": "true_false",
1256
  "instructions": "",
1257
  "required": 0,
1268
  "ui_off_text": ""
1269
  },
1270
  {
1271
+ "key": "field_5db1a63363592",
1272
+ "label": "Meta Color",
1273
+ "name": "acfb_post_slider_meta_color",
1274
  "type": "color_picker",
1275
  "instructions": "",
1276
  "required": 0,
1277
  "conditional_logic": [
1278
  [
1279
  {
1280
+ "field": "field_5db1a633500f5",
1281
  "operator": "==",
1282
  "value": "1"
1283
  }
1291
  "default_value": "#ffffff"
1292
  },
1293
  {
1294
+ "key": "field_5db1a633b90be",
1295
+ "label": "Excerpt Custom Color",
1296
+ "name": "acfb_post_slider_excerpt_custom_color",
1297
+ "type": "true_false",
1298
+ "instructions": "",
1299
+ "required": 0,
1300
+ "conditional_logic": 0,
1301
+ "wrapper": {
1302
+ "width": "",
1303
+ "class": "",
1304
+ "id": ""
1305
+ },
1306
+ "message": "",
1307
+ "default_value": 0,
1308
+ "ui": 1,
1309
+ "ui_on_text": "",
1310
+ "ui_off_text": ""
1311
+ },
1312
+ {
1313
+ "key": "field_5db1a633d619d",
1314
+ "label": "Excerpt Color",
1315
+ "name": "acfb_post_slider_excerpt_color",
1316
+ "type": "color_picker",
1317
  "instructions": "",
1318
  "required": 0,
1319
  "conditional_logic": [
1330
  "class": "",
1331
  "id": ""
1332
  },
1333
+ "default_value": "#ffffff"
 
 
 
 
 
1334
  },
1335
  {
1336
  "key": "field_5db1a6340a7d6",
1337
+ "label": "Button Custom Color",
1338
+ "name": "acfb_post_slider_button_custom_color",
1339
  "type": "true_false",
1340
  "instructions": "",
1341
  "required": 0,
1443
  },
1444
  "default_value": "#ffffff"
1445
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1446
  {
1447
  "key": "field_5db9784c05f35",
1448
  "label": "Navigation Background Color",
1502
  "id": ""
1503
  },
1504
  "default_value": "#000000"
1505
+ },
1506
+ {
1507
+ "key": "field_5eaac8a2383f4",
1508
+ "label": "Spacing",
1509
+ "name": "",
1510
+ "type": "accordion",
1511
+ "instructions": "",
1512
+ "required": 0,
1513
+ "conditional_logic": 0,
1514
+ "wrapper": {
1515
+ "width": "",
1516
+ "class": "",
1517
+ "id": ""
1518
+ },
1519
+ "open": 0,
1520
+ "multi_expand": 0,
1521
+ "endpoint": 0
1522
+ },
1523
+ {
1524
+ "key": "field_5eaac9fb383fd",
1525
+ "label": "Margin",
1526
+ "name": "acfb_post_slider_margin",
1527
+ "type": "margin",
1528
+ "instructions": "",
1529
+ "required": 0,
1530
+ "conditional_logic": 0,
1531
+ "wrapper": {
1532
+ "width": "",
1533
+ "class": "",
1534
+ "id": ""
1535
+ },
1536
+ "margin_enable": 0,
1537
+ "margin_top": "",
1538
+ "margin_right": "",
1539
+ "margin_bottom": "",
1540
+ "margin_left": ""
1541
+ },
1542
+ {
1543
+ "key": "field_5eaaca0f383ff",
1544
+ "label": "Padding",
1545
+ "name": "acfb_post_slider_padding",
1546
+ "type": "padding",
1547
+ "instructions": "",
1548
+ "required": 0,
1549
+ "conditional_logic": 0,
1550
+ "wrapper": {
1551
+ "width": "",
1552
+ "class": "",
1553
+ "id": ""
1554
+ },
1555
+ "padding_enable": 0,
1556
+ "padding_top": 10,
1557
+ "padding_right": 10,
1558
+ "padding_bottom": 10,
1559
+ "padding_left": 10
1560
+ },
1561
+ {
1562
+ "key": "field_5eaaccf3c1596",
1563
+ "label": "Inner Padding",
1564
+ "name": "acfb_post_slider_inner_padding",
1565
+ "type": "padding",
1566
+ "instructions": "",
1567
+ "required": 0,
1568
+ "conditional_logic": 0,
1569
+ "wrapper": {
1570
+ "width": "",
1571
+ "class": "",
1572
+ "id": ""
1573
+ },
1574
+ "padding_enable": 0,
1575
+ "padding_top": 20,
1576
+ "padding_right": 20,
1577
+ "padding_bottom": 20,
1578
+ "padding_left": 20
1579
  }
1580
  ],
1581
  "location": [
1595
  "hide_on_screen": "",
1596
  "active": 1,
1597
  "description": "",
1598
+ "modified": 1588251927
1599
  }
acf-json/group_5e41243deaf30.json CHANGED
@@ -1,6 +1,7 @@
1
  {
2
  "key": "group_5e41243deaf30",
3
  "title": "Image Shape",
 
4
  "fields": [
5
  {
6
  "key": "field_5e4137cdb89d7",
@@ -32,14 +33,60 @@
32
  "id": ""
33
  },
34
  "choices": {
35
- "one": "1",
36
- "two": "2",
37
- "three": "3",
38
- "four": "4",
39
- "five": "5"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  },
41
  "allow_null": 0,
42
- "default_value": 1,
43
  "layout": "horizontal",
44
  "return_format": "value"
45
  },
@@ -120,5 +167,5 @@
120
  "hide_on_screen": "",
121
  "active": 1,
122
  "description": "",
123
- "modified": 1582380565
124
  }
1
  {
2
  "key": "group_5e41243deaf30",
3
  "title": "Image Shape",
4
+ "private" : true,
5
  "fields": [
6
  {
7
  "key": "field_5e4137cdb89d7",
33
  "id": ""
34
  },
35
  "choices": {
36
+ "acfb_is_1": "1",
37
+ "acfb_is_2": "2",
38
+ "acfb_is_3": "3",
39
+ "acfb_is_4": "4",
40
+ "acfb_is_5": "5",
41
+ "acfb_is_6": "6",
42
+ "acfb_is_7": "7",
43
+ "acfb_is_8": "8",
44
+ "acfb_is_9": "9",
45
+ "acfb_is_10": "10",
46
+ "acfb_is_11": "11",
47
+ "acfb_is_12": "12",
48
+ "acfb_is_13": "13",
49
+ "acfb_is_14": "14",
50
+ "acfb_is_15": "15",
51
+ "acfb_is_16": "16",
52
+ "acfb_is_17": "17",
53
+ "acfb_is_18": "18",
54
+ "acfb_is_19": "19",
55
+ "acfb_is_20": "20",
56
+ "acfb_is_21": "21",
57
+ "acfb_is_22": "22",
58
+ "acfb_is_23": "23",
59
+ "acfb_is_24": "24",
60
+ "acfb_is_25": "25",
61
+ "acfb_is_26": "26",
62
+ "acfb_is_27": "27",
63
+ "acfb_is_28": "28",
64
+ "acfb_is_29": "29",
65
+ "acfb_is_30": "30",
66
+ "acfb_is_31": "31",
67
+ "acfb_is_32": "32",
68
+ "acfb_is_33": "33",
69
+ "acfb_is_34": "34",
70
+ "acfb_is_35": "35",
71
+ "acfb_is_36": "36",
72
+ "acfb_is_37": "37",
73
+ "acfb_is_38": "38",
74
+ "acfb_is_39": "39",
75
+ "acfb_is_40": "40",
76
+ "acfb_is_41": "41",
77
+ "acfb_is_42": "42",
78
+ "acfb_is_43": "43",
79
+ "acfb_is_44": "44",
80
+ "acfb_is_45": "45",
81
+ "acfb_is_46": "46",
82
+ "acfb_is_47": "47",
83
+ "acfb_is_48": "48",
84
+ "acfb_is_49": "49",
85
+ "acfb_is_50": "50",
86
+ "acfb_is_51": "51"
87
  },
88
  "allow_null": 0,
89
+ "default_value": "acfb_is_1",
90
  "layout": "horizontal",
91
  "return_format": "value"
92
  },
167
  "hide_on_screen": "",
168
  "active": 1,
169
  "description": "",
170
+ "modified": 1582805364
171
  }
acf-json/group_5e4264a59e5d4.json CHANGED
@@ -503,6 +503,78 @@
503
  "placement": "top",
504
  "endpoint": 0
505
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
506
  {
507
  "key": "field_5e42ac9c0051c",
508
  "label": "Open Time Color",
@@ -534,10 +606,10 @@
534
  "default_value": "#191e23"
535
  },
536
  {
537
- "key": "field_5e4a485cb9426",
538
- "label": "Border Color",
539
- "name": "acfb_bh_border_color",
540
- "type": "color_picker",
541
  "instructions": "",
542
  "required": 0,
543
  "conditional_logic": 0,
@@ -546,13 +618,15 @@
546
  "class": "",
547
  "id": ""
548
  },
549
- "default_value": "#eeeeee"
 
 
550
  },
551
  {
552
- "key": "field_5e4a4895b9427",
553
- "label": "Font Size",
554
- "name": "acfb_bh_font_size",
555
- "type": "range",
556
  "instructions": "",
557
  "required": 0,
558
  "conditional_logic": 0,
@@ -561,18 +635,17 @@
561
  "class": "",
562
  "id": ""
563
  },
564
- "default_value": 18,
565
- "min": "",
566
- "max": 200,
567
- "step": "",
568
- "prepend": "",
569
- "append": "px"
570
  },
571
  {
572
- "key": "field_5e54f753ccfa8",
573
- "label": "Background Color",
574
- "name": "acfb_bh_background_color",
575
- "type": "color_picker",
576
  "instructions": "",
577
  "required": 0,
578
  "conditional_logic": 0,
@@ -581,13 +654,36 @@
581
  "class": "",
582
  "id": ""
583
  },
584
- "default_value": "#f3f4f5"
 
 
 
 
585
  },
586
  {
587
- "key": "field_5e54f739ccfa7",
588
- "label": "Padding",
589
- "name": "acfb_bh_padding",
590
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
591
  "instructions": "",
592
  "required": 0,
593
  "conditional_logic": 0,
@@ -596,12 +692,24 @@
596
  "class": "",
597
  "id": ""
598
  },
599
- "default_value": 10,
600
- "min": "",
601
- "max": "",
602
- "step": "",
603
- "prepend": "",
604
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
605
  }
606
  ],
607
  "location": [
@@ -621,5 +729,5 @@
621
  "hide_on_screen": "",
622
  "active": 1,
623
  "description": "",
624
- "modified": 1582626873
625
  }
503
  "placement": "top",
504
  "endpoint": 0
505
  },
506
+ {
507
+ "key": "field_5eaaa4e1515c1",
508
+ "label": "Typography",
509
+ "name": "",
510
+ "type": "accordion",
511
+ "instructions": "",
512
+ "required": 0,
513
+ "conditional_logic": 0,
514
+ "wrapper": {
515
+ "width": "",
516
+ "class": "",
517
+ "id": ""
518
+ },
519
+ "open": 0,
520
+ "multi_expand": 0,
521
+ "endpoint": 0
522
+ },
523
+ {
524
+ "key": "field_5eaaa544515c5",
525
+ "label": "Text",
526
+ "name": "acfb_bh_text_typo",
527
+ "type": "typography",
528
+ "instructions": "",
529
+ "required": 0,
530
+ "conditional_logic": 0,
531
+ "wrapper": {
532
+ "width": "",
533
+ "class": "",
534
+ "id": ""
535
+ },
536
+ "font_family_enable": 0,
537
+ "font_family": "default",
538
+ "font_size": 18,
539
+ "font_weight": "default",
540
+ "font_transform": "default",
541
+ "font_style": "default",
542
+ "font_decoration": "default",
543
+ "font_line_height": "0.1",
544
+ "font_letter_spacing": 0
545
+ },
546
+ {
547
+ "key": "field_5eaaa4fd515c2",
548
+ "label": "Colors",
549
+ "name": "",
550
+ "type": "accordion",
551
+ "instructions": "",
552
+ "required": 0,
553
+ "conditional_logic": 0,
554
+ "wrapper": {
555
+ "width": "",
556
+ "class": "",
557
+ "id": ""
558
+ },
559
+ "open": 0,
560
+ "multi_expand": 0,
561
+ "endpoint": 0
562
+ },
563
+ {
564
+ "key": "field_5e54f753ccfa8",
565
+ "label": "Background Color",
566
+ "name": "acfb_bh_background_color",
567
+ "type": "color_picker",
568
+ "instructions": "",
569
+ "required": 0,
570
+ "conditional_logic": 0,
571
+ "wrapper": {
572
+ "width": "",
573
+ "class": "",
574
+ "id": ""
575
+ },
576
+ "default_value": "#f3f4f5"
577
+ },
578
  {
579
  "key": "field_5e42ac9c0051c",
580
  "label": "Open Time Color",
606
  "default_value": "#191e23"
607
  },
608
  {
609
+ "key": "field_5eaaa52c515c4",
610
+ "label": "Spacing",
611
+ "name": "",
612
+ "type": "accordion",
613
  "instructions": "",
614
  "required": 0,
615
  "conditional_logic": 0,
618
  "class": "",
619
  "id": ""
620
  },
621
+ "open": 0,
622
+ "multi_expand": 0,
623
+ "endpoint": 0
624
  },
625
  {
626
+ "key": "field_5eaaa582515c6",
627
+ "label": "Margin",
628
+ "name": "acfb_bh_margin",
629
+ "type": "margin",
630
  "instructions": "",
631
  "required": 0,
632
  "conditional_logic": 0,
635
  "class": "",
636
  "id": ""
637
  },
638
+ "margin_enable": 0,
639
+ "margin_top": "",
640
+ "margin_right": "",
641
+ "margin_bottom": "",
642
+ "margin_left": ""
 
643
  },
644
  {
645
+ "key": "field_5eaaa597515c7",
646
+ "label": "Padding",
647
+ "name": "acfb_bh_padding",
648
+ "type": "padding",
649
  "instructions": "",
650
  "required": 0,
651
  "conditional_logic": 0,
654
  "class": "",
655
  "id": ""
656
  },
657
+ "padding_enable": 0,
658
+ "padding_top": "",
659
+ "padding_right": "",
660
+ "padding_bottom": "",
661
+ "padding_left": ""
662
  },
663
  {
664
+ "key": "field_5eaaa5b6515c8",
665
+ "label": "Inner Padding",
666
+ "name": "acfb_bh_inner_padding",
667
+ "type": "padding",
668
+ "instructions": "",
669
+ "required": 0,
670
+ "conditional_logic": 0,
671
+ "wrapper": {
672
+ "width": "",
673
+ "class": "",
674
+ "id": ""
675
+ },
676
+ "padding_enable": 0,
677
+ "padding_top": 10,
678
+ "padding_right": 10,
679
+ "padding_bottom": 10,
680
+ "padding_left": 10
681
+ },
682
+ {
683
+ "key": "field_5eaaa508515c3",
684
+ "label": "Other Setting",
685
+ "name": "",
686
+ "type": "accordion",
687
  "instructions": "",
688
  "required": 0,
689
  "conditional_logic": 0,
692
  "class": "",
693
  "id": ""
694
  },
695
+ "open": 0,
696
+ "multi_expand": 0,
697
+ "endpoint": 0
698
+ },
699
+ {
700
+ "key": "field_5e4a485cb9426",
701
+ "label": "Border Color",
702
+ "name": "acfb_bh_border_color",
703
+ "type": "color_picker",
704
+ "instructions": "",
705
+ "required": 0,
706
+ "conditional_logic": 0,
707
+ "wrapper": {
708
+ "width": "",
709
+ "class": "",
710
+ "id": ""
711
+ },
712
+ "default_value": "#eeeeee"
713
  }
714
  ],
715
  "location": [
729
  "hide_on_screen": "",
730
  "active": 1,
731
  "description": "",
732
+ "modified": 1588241887
733
  }
acf-json/group_5e4a64dc6c677.json CHANGED
@@ -66,8 +66,8 @@
66
  "class": "",
67
  "id": ""
68
  },
69
- "default_value": "My favourite food is",
70
- "placeholder": "My favourite food is",
71
  "prepend": "",
72
  "append": "",
73
  "maxlength": ""
@@ -86,7 +86,7 @@
86
  "id": ""
87
  },
88
  "collapsed": "",
89
- "min": 0,
90
  "max": 0,
91
  "layout": "table",
92
  "button_label": "",
@@ -104,14 +104,56 @@
104
  "class": "",
105
  "id": ""
106
  },
107
- "default_value": "Pizza",
108
- "placeholder": "Pizza",
109
  "prepend": "",
110
  "append": "",
111
  "maxlength": ""
112
  }
113
  ]
114
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  {
116
  "key": "field_5e4a68c30eaea",
117
  "label": "Design",
@@ -127,6 +169,171 @@
127
  },
128
  "placement": "top",
129
  "endpoint": 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  }
131
  ],
132
  "location": [
@@ -146,5 +353,5 @@
146
  "hide_on_screen": "",
147
  "active": 1,
148
  "description": "",
149
- "modified": 1581937308
150
  }
66
  "class": "",
67
  "id": ""
68
  },
69
+ "default_value": "Before Text",
70
+ "placeholder": "Before Text",
71
  "prepend": "",
72
  "append": "",
73
  "maxlength": ""
86
  "id": ""
87
  },
88
  "collapsed": "",
89
+ "min": 1,
90
  "max": 0,
91
  "layout": "table",
92
  "button_label": "",
104
  "class": "",
105
  "id": ""
106
  },
107
+ "default_value": "Rotating Item",
108
+ "placeholder": "Rotating Item",
109
  "prepend": "",
110
  "append": "",
111
  "maxlength": ""
112
  }
113
  ]
114
  },
115
+ {
116
+ "key": "field_5e81baed6c4f2",
117
+ "label": "After Text",
118
+ "name": "acfb_ah_after_text",
119
+ "type": "text",
120
+ "instructions": "",
121
+ "required": 0,
122
+ "conditional_logic": 0,
123
+ "wrapper": {
124
+ "width": "",
125
+ "class": "",
126
+ "id": ""
127
+ },
128
+ "default_value": "After Text",
129
+ "placeholder": "After Text",
130
+ "prepend": "",
131
+ "append": "",
132
+ "maxlength": ""
133
+ },
134
+ {
135
+ "key": "field_5e5e619aff5be",
136
+ "label": "Alignment",
137
+ "name": "acfb_ah_alignment",
138
+ "type": "button_group",
139
+ "instructions": "",
140
+ "required": 0,
141
+ "conditional_logic": 0,
142
+ "wrapper": {
143
+ "width": "",
144
+ "class": "",
145
+ "id": ""
146
+ },
147
+ "choices": {
148
+ "left": "<span class=\"dashicons dashicons-editor-alignleft\"><\/span>",
149
+ "center": "<span class=\"dashicons dashicons-editor-aligncenter\"><\/span>",
150
+ "right": "<span class=\"dashicons dashicons-editor-alignright\"><\/span>"
151
+ },
152
+ "allow_null": 0,
153
+ "default_value": "left",
154
+ "layout": "horizontal",
155
+ "return_format": "value"
156
+ },
157
  {
158
  "key": "field_5e4a68c30eaea",
159
  "label": "Design",
169
  },
170
  "placement": "top",
171
  "endpoint": 0
172
+ },
173
+ {
174
+ "key": "field_5eaad7abb8c51",
175
+ "label": "Typography",
176
+ "name": "",
177
+ "type": "accordion",
178
+ "instructions": "",
179
+ "required": 0,
180
+ "conditional_logic": 0,
181
+ "wrapper": {
182
+ "width": "",
183
+ "class": "",
184
+ "id": ""
185
+ },
186
+ "open": 0,
187
+ "multi_expand": 0,
188
+ "endpoint": 0
189
+ },
190
+ {
191
+ "key": "field_5eaad7d6b8c54",
192
+ "label": "Headline",
193
+ "name": "acfb_ah_typo",
194
+ "type": "typography",
195
+ "instructions": "",
196
+ "required": 0,
197
+ "conditional_logic": 0,
198
+ "wrapper": {
199
+ "width": "",
200
+ "class": "",
201
+ "id": ""
202
+ },
203
+ "font_family_enable": 0,
204
+ "font_family": "default",
205
+ "font_size": 32,
206
+ "font_weight": "default",
207
+ "font_transform": "default",
208
+ "font_style": "default",
209
+ "font_decoration": "default",
210
+ "font_line_height": "0.1",
211
+ "font_letter_spacing": 0
212
+ },
213
+ {
214
+ "key": "field_5eaad7bbb8c52",
215
+ "label": "Colors",
216
+ "name": "",
217
+ "type": "accordion",
218
+ "instructions": "",
219
+ "required": 0,
220
+ "conditional_logic": 0,
221
+ "wrapper": {
222
+ "width": "",
223
+ "class": "",
224
+ "id": ""
225
+ },
226
+ "open": 0,
227
+ "multi_expand": 0,
228
+ "endpoint": 0
229
+ },
230
+ {
231
+ "key": "field_5e5cc015de412",
232
+ "label": "Headline Color",
233
+ "name": "acfb_ah_headline_color",
234
+ "type": "color_picker",
235
+ "instructions": "",
236
+ "required": 0,
237
+ "conditional_logic": 0,
238
+ "wrapper": {
239
+ "width": "",
240
+ "class": "",
241
+ "id": ""
242
+ },
243
+ "default_value": "#191e23"
244
+ },
245
+ {
246
+ "key": "field_5e5cce85ad7c0",
247
+ "label": "Rotating Color",
248
+ "name": "acfb_ah_rotating_color",
249
+ "type": "color_picker",
250
+ "instructions": "",
251
+ "required": 0,
252
+ "conditional_logic": 0,
253
+ "wrapper": {
254
+ "width": "",
255
+ "class": "",
256
+ "id": ""
257
+ },
258
+ "default_value": "#191e23"
259
+ },
260
+ {
261
+ "key": "field_5e85ec75805bb",
262
+ "label": "Bar Color",
263
+ "name": "acfb_ah_loading_bar_color",
264
+ "type": "color_picker",
265
+ "instructions": "",
266
+ "required": 0,
267
+ "conditional_logic": [
268
+ [
269
+ {
270
+ "field": "field_5e4a68cf0eaeb",
271
+ "operator": "==",
272
+ "value": "loading-bar"
273
+ }
274
+ ]
275
+ ],
276
+ "wrapper": {
277
+ "width": "",
278
+ "class": "",
279
+ "id": ""
280
+ },
281
+ "default_value": "#4dd6be"
282
+ },
283
+ {
284
+ "key": "field_5eaad7c0b8c53",
285
+ "label": "Spacing",
286
+ "name": "",
287
+ "type": "accordion",
288
+ "instructions": "",
289
+ "required": 0,
290
+ "conditional_logic": 0,
291
+ "wrapper": {
292
+ "width": "",
293
+ "class": "",
294
+ "id": ""
295
+ },
296
+ "open": 0,
297
+ "multi_expand": 0,
298
+ "endpoint": 0
299
+ },
300
+ {
301
+ "key": "field_5eaad80db8c55",
302
+ "label": "Margin",
303
+ "name": "acfb_ah_margin",
304
+ "type": "margin",
305
+ "instructions": "",
306
+ "required": 0,
307
+ "conditional_logic": 0,
308
+ "wrapper": {
309
+ "width": "",
310
+ "class": "",
311
+ "id": ""
312
+ },
313
+ "margin_enable": 0,
314
+ "margin_top": "",
315
+ "margin_right": "",
316
+ "margin_bottom": "",
317
+ "margin_left": ""
318
+ },
319
+ {
320
+ "key": "field_5eaad81db8c56",
321
+ "label": "Padding",
322
+ "name": "acfb_ah_padding",
323
+ "type": "padding",
324
+ "instructions": "",
325
+ "required": 0,
326
+ "conditional_logic": 0,
327
+ "wrapper": {
328
+ "width": "",
329
+ "class": "",
330
+ "id": ""
331
+ },
332
+ "padding_enable": 0,
333
+ "padding_top": "",
334
+ "padding_right": "",
335
+ "padding_bottom": "",
336
+ "padding_left": ""
337
  }
338
  ],
339
  "location": [
353
  "hide_on_screen": "",
354
  "active": 1,
355
  "description": "",
356
+ "modified": 1588254781
357
  }
acf-json/group_5e4bae0ee904c.json CHANGED
@@ -1,6 +1,7 @@
1
  {
2
  "key": "group_5e4bae0ee904c",
3
  "title": "Steps",
 
4
  "fields": [
5
  {
6
  "key": "field_5e4bae2b27458",
1
  {
2
  "key": "group_5e4bae0ee904c",
3
  "title": "Steps",
4
+ "private" : true,
5
  "fields": [
6
  {
7
  "key": "field_5e4bae2b27458",
acf-json/group_5e4e45f4d189d.json CHANGED
@@ -196,6 +196,48 @@
196
  "append": "",
197
  "maxlength": ""
198
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  {
200
  "key": "field_5e4e45f5540e9",
201
  "label": "Design",
@@ -212,6 +254,63 @@
212
  "placement": "top",
213
  "endpoint": 0
214
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  {
216
  "key": "field_5e4e45f5544d1",
217
  "label": "Left Button Background Color",
@@ -333,10 +432,56 @@
333
  "default_value": "#ffffff"
334
  },
335
  {
336
- "key": "field_5e4e45f5548b9",
337
- "label": "Buttons Text Size",
338
- "name": "acfb_db_button_text_size",
339
- "type": "range",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
  "instructions": "",
341
  "required": 0,
342
  "conditional_logic": 0,
@@ -345,12 +490,9 @@
345
  "class": "",
346
  "id": ""
347
  },
348
- "default_value": 18,
349
- "min": "",
350
- "max": "",
351
- "step": "",
352
- "prepend": "",
353
- "append": "px"
354
  },
355
  {
356
  "key": "field_5e4fac1d27e47",
@@ -450,10 +592,10 @@
450
  ]
451
  },
452
  {
453
- "key": "field_5e4e739c930ba",
454
- "label": "Button Connector Background Color",
455
- "name": "acfb_db_bc_bg_color",
456
- "type": "color_picker",
457
  "instructions": "",
458
  "required": 0,
459
  "conditional_logic": [
@@ -467,48 +609,47 @@
467
  ],
468
  "wrapper": {
469
  "width": "",
470
- "class": "",
471
  "id": ""
472
  },
473
- "default_value": "#ffffff"
 
 
 
 
 
474
  },
475
  {
476
- "key": "field_5e4e71f7e8f7c",
477
- "label": "Button Connector Text Color",
478
- "name": "acfb_db_bc_text_color",
479
- "type": "color_picker",
480
  "instructions": "",
481
  "required": 0,
482
- "conditional_logic": [
483
- [
484
- {
485
- "field": "field_5e4e51e53ef4c",
486
- "operator": "==",
487
- "value": "acfb_db_bc_text"
488
- }
489
- ]
490
- ],
491
  "wrapper": {
492
  "width": "",
493
  "class": "",
494
  "id": ""
495
  },
496
- "default_value": "#000000"
 
 
497
  },
498
  {
499
- "key": "field_5e51132b70c3e",
500
- "label": "Button Connector Radius",
501
- "name": "acfb_db_bc_radius",
502
  "type": "range",
503
  "instructions": "",
504
  "required": 0,
505
  "conditional_logic": 0,
506
  "wrapper": {
507
  "width": "",
508
- "class": "acfb_db_radius",
509
  "id": ""
510
  },
511
- "default_value": 100,
512
  "min": "",
513
  "max": "",
514
  "step": "",
@@ -516,143 +657,78 @@
516
  "append": "%"
517
  },
518
  {
519
- "key": "field_5e511840c7185",
520
- "label": "Button Connector Box Shadow",
521
- "name": "acfb_db_bc_box_shadow",
522
- "type": "group",
523
  "instructions": "",
524
  "required": 0,
525
  "conditional_logic": 0,
526
  "wrapper": {
527
  "width": "",
528
- "class": "acfb_db_radius",
529
  "id": ""
530
  },
531
- "layout": "block",
532
- "sub_fields": [
533
- {
534
- "key": "field_5e511840c7186",
535
- "label": "Horizontal",
536
- "name": "acfb_db_bc_shadow_horizontal",
537
- "type": "range",
538
- "instructions": "",
539
- "required": 0,
540
- "conditional_logic": 0,
541
- "wrapper": {
542
- "width": "",
543
- "class": "",
544
- "id": ""
545
- },
546
- "default_value": 0,
547
- "min": -100,
548
- "max": "",
549
- "step": "",
550
- "prepend": "",
551
- "append": "px"
552
- },
553
- {
554
- "key": "field_5e5118d1c718a",
555
- "label": "Vertical",
556
- "name": "acfb_db_bc_shadow_vertical",
557
- "type": "range",
558
- "instructions": "",
559
- "required": 0,
560
- "conditional_logic": 0,
561
- "wrapper": {
562
- "width": "",
563
- "class": "",
564
- "id": ""
565
- },
566
- "default_value": 0,
567
- "min": -100,
568
- "max": "",
569
- "step": "",
570
- "prepend": "",
571
- "append": "px"
572
- },
573
- {
574
- "key": "field_5e5118eec718b",
575
- "label": "Blur",
576
- "name": "acfb_db_bc_shadow_blur",
577
- "type": "range",
578
- "instructions": "",
579
- "required": 0,
580
- "conditional_logic": 0,
581
- "wrapper": {
582
- "width": "",
583
- "class": "",
584
- "id": ""
585
- },
586
- "default_value": 10,
587
- "min": 0,
588
- "max": "",
589
- "step": "",
590
- "prepend": "",
591
- "append": "px"
592
- },
593
- {
594
- "key": "field_5e511968c718c",
595
- "label": "Spread",
596
- "name": "acfb_db_bc_shadow_spread",
597
- "type": "range",
598
- "instructions": "",
599
- "required": 0,
600
- "conditional_logic": 0,
601
- "wrapper": {
602
- "width": "",
603
- "class": "",
604
- "id": ""
605
- },
606
- "default_value": 0,
607
- "min": -100,
608
- "max": "",
609
- "step": "",
610
- "prepend": "",
611
- "append": "px"
612
- },
613
- {
614
- "key": "field_5e5119dca294c",
615
- "label": "Color",
616
- "name": "acfb_db_bc_shadow_color",
617
- "type": "color_picker",
618
- "instructions": "",
619
- "required": 0,
620
- "conditional_logic": 0,
621
- "wrapper": {
622
- "width": "",
623
- "class": "",
624
- "id": ""
625
- },
626
- "default_value": "#ffffff"
627
- },
628
- {
629
- "key": "field_5e512578f6856",
630
- "label": "Position",
631
- "name": "acfb_db_bc_shadow_position",
632
- "type": "select",
633
- "instructions": "",
634
- "required": 0,
635
- "conditional_logic": 0,
636
- "wrapper": {
637
- "width": "",
638
- "class": "",
639
- "id": ""
640
- },
641
- "choices": {
642
- "outline": "Outline",
643
- "inset": "Inset"
644
- },
645
- "default_value": [
646
- "outline"
647
- ],
648
- "allow_null": 0,
649
- "multiple": 0,
650
- "ui": 0,
651
- "return_format": "value",
652
- "ajax": 0,
653
- "placeholder": ""
654
- }
655
- ]
656
  }
657
  ],
658
  "location": [
@@ -672,5 +748,5 @@
672
  "hide_on_screen": "",
673
  "active": 1,
674
  "description": "",
675
- "modified": 1582381881
676
  }
196
  "append": "",
197
  "maxlength": ""
198
  },
199
+ {
200
+ "key": "field_5e5f5f6a97bbe",
201
+ "label": "Alignment",
202
+ "name": "acfb_db_alignment",
203
+ "type": "button_group",
204
+ "instructions": "",
205
+ "required": 0,
206
+ "conditional_logic": 0,
207
+ "wrapper": {
208
+ "width": "",
209
+ "class": "",
210
+ "id": ""
211
+ },
212
+ "choices": {
213
+ "flex-start": "<span class=\"dashicons dashicons-editor-alignleft\"><\/span>",
214
+ "center": "<span class=\"dashicons dashicons-editor-aligncenter\"><\/span>",
215
+ "flex-end": "<span class=\"dashicons dashicons-editor-alignright\"><\/span>"
216
+ },
217
+ "allow_null": 0,
218
+ "default_value": "flex-start",
219
+ "layout": "horizontal",
220
+ "return_format": "value"
221
+ },
222
+ {
223
+ "key": "field_5e5f607d48d8c",
224
+ "label": "Stack",
225
+ "name": "acfb_db_stack",
226
+ "type": "true_false",
227
+ "instructions": "",
228
+ "required": 0,
229
+ "conditional_logic": 0,
230
+ "wrapper": {
231
+ "width": "",
232
+ "class": "",
233
+ "id": ""
234
+ },
235
+ "message": "",
236
+ "default_value": 0,
237
+ "ui": 1,
238
+ "ui_on_text": "",
239
+ "ui_off_text": ""
240
+ },
241
  {
242
  "key": "field_5e4e45f5540e9",
243
  "label": "Design",
254
  "placement": "top",
255
  "endpoint": 0
256
  },
257
+ {
258
+ "key": "field_5eabdd6a4cce7",
259
+ "label": "Typography",
260
+ "name": "",
261
+ "type": "accordion",
262
+ "instructions": "",
263
+ "required": 0,
264
+ "conditional_logic": 0,
265
+ "wrapper": {
266
+ "width": "",
267
+ "class": "",
268
+ "id": ""
269
+ },
270
+ "open": 0,
271
+ "multi_expand": 0,
272
+ "endpoint": 0
273
+ },
274
+ {
275
+ "key": "field_5eabddf54ccee",
276
+ "label": "Button",
277
+ "name": "acfb_db_typo",
278
+ "type": "typography",
279
+ "instructions": "",
280
+ "required": 0,
281
+ "conditional_logic": 0,
282
+ "wrapper": {
283
+ "width": "",
284
+ "class": "",
285
+ "id": ""
286
+ },
287
+ "font_family_enable": 0,
288
+ "font_family": "default",
289
+ "font_size": 18,
290
+ "font_weight": "default",
291
+ "font_transform": "default",
292
+ "font_style": "default",
293
+ "font_decoration": "default",
294
+ "font_line_height": "0.1",
295
+ "font_letter_spacing": 0
296
+ },
297
+ {
298
+ "key": "field_5eabdd724cce8",
299
+ "label": "Colors",
300
+ "name": "",
301
+ "type": "accordion",
302
+ "instructions": "",
303
+ "required": 0,
304
+ "conditional_logic": 0,
305
+ "wrapper": {
306
+ "width": "",
307
+ "class": "",
308
+ "id": ""
309
+ },
310
+ "open": 0,
311
+ "multi_expand": 0,
312
+ "endpoint": 0
313
+ },
314
  {
315
  "key": "field_5e4e45f5544d1",
316
  "label": "Left Button Background Color",
432
  "default_value": "#ffffff"
433
  },
434
  {
435
+ "key": "field_5e4e739c930ba",
436
+ "label": "Button Connector Background Color",
437
+ "name": "acfb_db_bc_bg_color",
438
+ "type": "color_picker",
439
+ "instructions": "",
440
+ "required": 0,
441
+ "conditional_logic": [
442
+ [
443
+ {
444
+ "field": "field_5e4e51e53ef4d",
445
+ "operator": "==",
446
+ "value": "1"
447
+ }
448
+ ]
449
+ ],
450
+ "wrapper": {
451
+ "width": "",
452
+ "class": "",
453
+ "id": ""
454
+ },
455
+ "default_value": "#ffffff"
456
+ },
457
+ {
458
+ "key": "field_5e4e71f7e8f7c",
459
+ "label": "Button Connector Text Color",
460
+ "name": "acfb_db_bc_text_color",
461
+ "type": "color_picker",
462
+ "instructions": "",
463
+ "required": 0,
464
+ "conditional_logic": [
465
+ [
466
+ {
467
+ "field": "field_5e4e51e53ef4c",
468
+ "operator": "==",
469
+ "value": "acfb_db_bc_text"
470
+ }
471
+ ]
472
+ ],
473
+ "wrapper": {
474
+ "width": "",
475
+ "class": "",
476
+ "id": ""
477
+ },
478
+ "default_value": "#000000"
479
+ },
480
+ {
481
+ "key": "field_5eabddc84cced",
482
+ "label": "Border",
483
+ "name": "",
484
+ "type": "accordion",
485
  "instructions": "",
486
  "required": 0,
487
  "conditional_logic": 0,
490
  "class": "",
491
  "id": ""
492
  },
493
+ "open": 0,
494
+ "multi_expand": 0,
495
+ "endpoint": 0
 
 
 
496
  },
497
  {
498
  "key": "field_5e4fac1d27e47",
592
  ]
593
  },
594
  {
595
+ "key": "field_5e51132b70c3e",
596
+ "label": "Button Connector Radius",
597
+ "name": "acfb_db_bc_radius",
598
+ "type": "range",
599
  "instructions": "",
600
  "required": 0,
601
  "conditional_logic": [
609
  ],
610
  "wrapper": {
611
  "width": "",
612
+ "class": "acfb_db_radius",
613
  "id": ""
614
  },
615
+ "default_value": 100,
616
+ "min": "",
617
+ "max": "",
618
+ "step": "",
619
+ "prepend": "",
620
+ "append": "%"
621
  },
622
  {
623
+ "key": "field_5eabdd764cce9",
624
+ "label": "Sizing",
625
+ "name": "",
626
+ "type": "accordion",
627
  "instructions": "",
628
  "required": 0,
629
+ "conditional_logic": 0,
 
 
 
 
 
 
 
 
630
  "wrapper": {
631
  "width": "",
632
  "class": "",
633
  "id": ""
634
  },
635
+ "open": 0,
636
+ "multi_expand": 0,
637
+ "endpoint": 0
638
  },
639
  {
640
+ "key": "field_5e5f67da01e9d",
641
+ "label": "Buttons Width",
642
+ "name": "acfb_db_width",
643
  "type": "range",
644
  "instructions": "",
645
  "required": 0,
646
  "conditional_logic": 0,
647
  "wrapper": {
648
  "width": "",
649
+ "class": "",
650
  "id": ""
651
  },
652
+ "default_value": 50,
653
  "min": "",
654
  "max": "",
655
  "step": "",
657
  "append": "%"
658
  },
659
  {
660
+ "key": "field_5eabdd7c4ccea",
661
+ "label": "Spacing",
662
+ "name": "",
663
+ "type": "accordion",
664
  "instructions": "",
665
  "required": 0,
666
  "conditional_logic": 0,
667
  "wrapper": {
668
  "width": "",
669
+ "class": "",
670
  "id": ""
671
  },
672
+ "open": 0,
673
+ "multi_expand": 0,
674
+ "endpoint": 0
675
+ },
676
+ {
677
+ "key": "field_5eabdd9e4cceb",
678
+ "label": "Margin",
679
+ "name": "acfb_db_margin",
680
+ "type": "margin",
681
+ "instructions": "",
682
+ "required": 0,
683
+ "conditional_logic": 0,
684
+ "wrapper": {
685
+ "width": "",
686
+ "class": "",
687
+ "id": ""
688
+ },
689
+ "margin_enable": 0,
690
+ "margin_top": "",
691
+ "margin_right": "",
692
+ "margin_bottom": "",
693
+ "margin_left": ""
694
+ },
695
+ {
696
+ "key": "field_5eabddae4ccec",
697
+ "label": "Padding",
698
+ "name": "acfb_db_padding",
699
+ "type": "padding",
700
+ "instructions": "",
701
+ "required": 0,
702
+ "conditional_logic": 0,
703
+ "wrapper": {
704
+ "width": "",
705
+ "class": "",
706
+ "id": ""
707
+ },
708
+ "padding_enable": 0,
709
+ "padding_top": "",
710
+ "padding_right": "",
711
+ "padding_bottom": "",
712
+ "padding_left": ""
713
+ },
714
+ {
715
+ "key": "field_5eabe0479d02d",
716
+ "label": "Button Padding",
717
+ "name": "acfb_db_button_padding",
718
+ "type": "padding",
719
+ "instructions": "",
720
+ "required": 0,
721
+ "conditional_logic": 0,
722
+ "wrapper": {
723
+ "width": "",
724
+ "class": "",
725
+ "id": ""
726
+ },
727
+ "padding_enable": 0,
728
+ "padding_top": 10,
729
+ "padding_right": 45,
730
+ "padding_bottom": 10,
731
+ "padding_left": 45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
732
  }
733
  ],
734
  "location": [
748
  "hide_on_screen": "",
749
  "active": 1,
750
  "description": "",
751
+ "modified": 1588322554
752
  }
acf-json/group_5e4fc1d5b0411.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "key": "group_5e4fc1d5b0411",
3
- "title": "Global Fields",
4
  "fields": [
5
  {
6
  "key": "field_5e4fc1d61ccc8",
@@ -450,5 +450,5 @@
450
  "hide_on_screen": "",
451
  "active": 1,
452
  "description": "",
453
- "modified": 1582379505
454
  }
1
  {
2
  "key": "group_5e4fc1d5b0411",
3
+ "title": "Global Fields 2",
4
  "fields": [
5
  {
6
  "key": "field_5e4fc1d61ccc8",
450
  "hide_on_screen": "",
451
  "active": 1,
452
  "description": "",
453
+ "modified": 1586177942
454
  }
acf-json/group_5e50e811bbbf0.json CHANGED
@@ -73,7 +73,7 @@
73
  },
74
  {
75
  "key": "field_5e50e8124613d",
76
- "label": "Rotating Text",
77
  "name": "acfb_hh_rotating_text",
78
  "type": "text",
79
  "instructions": "",
@@ -84,8 +84,8 @@
84
  "class": "",
85
  "id": ""
86
  },
87
- "default_value": "Rotating",
88
- "placeholder": "Rotating",
89
  "prepend": "",
90
  "append": "",
91
  "maxlength": ""
@@ -149,10 +149,10 @@
149
  "endpoint": 0
150
  },
151
  {
152
- "key": "field_5e50fbd02ed3e",
153
- "label": "Headline Color",
154
- "name": "acfb_hh_color",
155
- "type": "color_picker",
156
  "instructions": "",
157
  "required": 0,
158
  "conditional_logic": 0,
@@ -161,13 +161,15 @@
161
  "class": "",
162
  "id": ""
163
  },
164
- "default_value": "#191e23"
 
 
165
  },
166
  {
167
- "key": "field_5e50fbe62ed3f",
168
- "label": "Headline Size",
169
- "name": "acfb_hh_size",
170
- "type": "range",
171
  "instructions": "",
172
  "required": 0,
173
  "conditional_logic": 0,
@@ -176,12 +178,47 @@
176
  "class": "",
177
  "id": ""
178
  },
179
- "default_value": 32,
180
- "min": "",
181
- "max": 200,
182
- "step": "",
183
- "prepend": "",
184
- "append": "px"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  },
186
  {
187
  "key": "field_5e50fc002ed40",
@@ -197,6 +234,61 @@
197
  "id": ""
198
  },
199
  "default_value": "red"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  }
201
  ],
202
  "location": [
@@ -216,5 +308,5 @@
216
  "hide_on_screen": "",
217
  "active": 1,
218
  "description": "",
219
- "modified": 1582627379
220
  }
73
  },
74
  {
75
  "key": "field_5e50e8124613d",
76
+ "label": "Highlighted Text",
77
  "name": "acfb_hh_rotating_text",
78
  "type": "text",
79
  "instructions": "",
84
  "class": "",
85
  "id": ""
86
  },
87
+ "default_value": "Highlighted",
88
+ "placeholder": "Highlighted",
89
  "prepend": "",
90
  "append": "",
91
  "maxlength": ""
149
  "endpoint": 0
150
  },
151
  {
152
+ "key": "field_5eaad53a2ac83",
153
+ "label": "Typography",
154
+ "name": "",
155
+ "type": "accordion",
156
  "instructions": "",
157
  "required": 0,
158
  "conditional_logic": 0,
161
  "class": "",
162
  "id": ""
163
  },
164
+ "open": 0,
165
+ "multi_expand": 0,
166
+ "endpoint": 0
167
  },
168
  {
169
+ "key": "field_5eaad5632ac85",
170
+ "label": "Headline",
171
+ "name": "acfb_hh_typo",
172
+ "type": "typography",
173
  "instructions": "",
174
  "required": 0,
175
  "conditional_logic": 0,
178
  "class": "",
179
  "id": ""
180
  },
181
+ "font_family_enable": 0,
182
+ "font_family": "default",
183
+ "font_size": 32,
184
+ "font_weight": "default",
185
+ "font_transform": "default",
186
+ "font_style": "default",
187
+ "font_decoration": "default",
188
+ "font_line_height": "0.1",
189
+ "font_letter_spacing": 0
190
+ },
191
+ {
192
+ "key": "field_5eaad5432ac84",
193
+ "label": "Colors",
194
+ "name": "",
195
+ "type": "accordion",
196
+ "instructions": "",
197
+ "required": 0,
198
+ "conditional_logic": 0,
199
+ "wrapper": {
200
+ "width": "",
201
+ "class": "",
202
+ "id": ""
203
+ },
204
+ "open": 0,
205
+ "multi_expand": 0,
206
+ "endpoint": 0
207
+ },
208
+ {
209
+ "key": "field_5e50fbd02ed3e",
210
+ "label": "Headline Color",
211
+ "name": "acfb_hh_color",
212
+ "type": "color_picker",
213
+ "instructions": "",
214
+ "required": 0,
215
+ "conditional_logic": 0,
216
+ "wrapper": {
217
+ "width": "",
218
+ "class": "",
219
+ "id": ""
220
+ },
221
+ "default_value": "#191e23"
222
  },
223
  {
224
  "key": "field_5e50fc002ed40",
234
  "id": ""
235
  },
236
  "default_value": "red"
237
+ },
238
+ {
239
+ "key": "field_5eaad5892ac86",
240
+ "label": "Spacing",
241
+ "name": "",
242
+ "type": "accordion",
243
+ "instructions": "",
244
+ "required": 0,
245
+ "conditional_logic": 0,
246
+ "wrapper": {
247
+ "width": "",
248
+ "class": "",
249
+ "id": ""
250
+ },
251
+ "open": 0,
252
+ "multi_expand": 0,
253
+ "endpoint": 0
254
+ },
255
+ {
256
+ "key": "field_5eaad5962ac87",
257
+ "label": "Margin",
258
+ "name": "acfb_hh_margin",
259
+ "type": "margin",
260
+ "instructions": "",
261
+ "required": 0,
262
+ "conditional_logic": 0,
263
+ "wrapper": {
264
+ "width": "",
265
+ "class": "",
266
+ "id": ""
267
+ },
268
+ "margin_enable": 0,
269
+ "margin_top": "",
270
+ "margin_right": "",
271
+ "margin_bottom": "",
272
+ "margin_left": ""
273
+ },
274
+ {
275
+ "key": "field_5eaad5a62ac88",
276
+ "label": "Padding",
277
+ "name": "acfb_hh_padding",
278
+ "type": "padding",
279
+ "instructions": "",
280
+ "required": 0,
281
+ "conditional_logic": 0,
282
+ "wrapper": {
283
+ "width": "",
284
+ "class": "",
285
+ "id": ""
286
+ },
287
+ "padding_enable": 0,
288
+ "padding_top": "",
289
+ "padding_right": "",
290
+ "padding_bottom": "",
291
+ "padding_left": ""
292
  }
293
  ],
294
  "location": [
308
  "hide_on_screen": "",
309
  "active": 1,
310
  "description": "",
311
+ "modified": 1588254448
312
  }
acf-json/group_5e870239ddce9.json ADDED
@@ -0,0 +1,1523 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "key": "group_5e870239ddce9",
3
+ "title": "Global Fields",
4
+ "fields": [
5
+ {
6
+ "key": "field_5e8847a2e7949",
7
+ "label": "Typography",
8
+ "name": "acfb_typography",
9
+ "type": "group",
10
+ "instructions": "",
11
+ "required": 0,
12
+ "conditional_logic": 0,
13
+ "wrapper": {
14
+ "width": "",
15
+ "class": "acfb_global_family",
16
+ "id": ""
17
+ },
18
+ "layout": "block",
19
+ "sub_fields": [
20
+ {
21
+ "key": "field_5e8847c4e794a",
22
+ "label": "Family",
23
+ "name": "acfb_font_family",
24
+ "type": "select",
25
+ "instructions": "",
26
+ "required": 0,
27
+ "conditional_logic": 0,
28
+ "wrapper": {
29
+ "width": "",
30
+ "class": "",
31
+ "id": ""
32
+ },
33
+ "choices": {
34
+ "ABeeZee": "ABeeZee",
35
+ "Abel": "Abel",
36
+ "Abhaya+Libre": "Abhaya Libre",
37
+ "Abril+Fatface": "Abril Fatface",
38
+ "Aclonica": "Aclonica",
39
+ "Acme": "Acme",
40
+ "Actor": "Actor",
41
+ "Adamina": "Adamina",
42
+ "Advent+Pro": "Advent Pro",
43
+ "Aguafina+Script": "Aguafina Script",
44
+ "Akronim": "Akronim",
45
+ "Aladin": "Aladin",
46
+ "Alata": "Alata",
47
+ "Alatsi": "Alatsi",
48
+ "Aldrich": "Aldrich",
49
+ "Alef": "Alef",
50
+ "Alegreya": "Alegreya",
51
+ "Alegreya+SC": "Alegreya SC",
52
+ "Alegreya+Sans": "Alegreya Sans",
53
+ "Alegreya+Sans+SC": "Alegreya Sans SC",
54
+ "Aleo": "Aleo",
55
+ "Alex+Brush": "Alex Brush",
56
+ "Alfa+Slab+One": "Alfa Slab One",
57
+ "Alice": "Alice",
58
+ "Alike": "Alike",
59
+ "Alike+Angular": "Alike Angular",
60
+ "Allan": "Allan",
61
+ "Allerta": "Allerta",
62
+ "Allerta+Stencil": "Allerta Stencil",
63
+ "Allura": "Allura",
64
+ "Almarai": "Almarai",
65
+ "Almendra": "Almendra",
66
+ "Almendra+Display": "Almendra Display",
67
+ "Almendra+SC": "Almendra SC",
68
+ "Amarante": "Amarante",
69
+ "Amaranth": "Amaranth",
70
+ "Amatic+SC": "Amatic SC",
71
+ "Amethysta": "Amethysta",
72
+ "Amiko": "Amiko",
73
+ "Amiri": "Amiri",
74
+ "Amita": "Amita",
75
+ "Anaheim": "Anaheim",
76
+ "Andada": "Andada",
77
+ "Andika": "Andika",
78
+ "Angkor": "Angkor",
79
+ "Annie+Use+Your+Telescope": "Annie Use Your Telescope",
80
+ "Anonymous+Pro": "Anonymous Pro",
81
+ "Antic": "Antic",
82
+ "Antic+Didone": "Antic Didone",
83
+ "Antic+Slab": "Antic Slab",
84
+ "Anton": "Anton",
85
+ "Arapey": "Arapey",
86
+ "Arbutus": "Arbutus",
87
+ "Arbutus+Slab": "Arbutus Slab",
88
+ "Architects+Daughter": "Architects Daughter",
89
+ "Archivo": "Archivo",
90
+ "Archivo+Black": "Archivo Black",
91
+ "Archivo+Narrow": "Archivo Narrow",
92
+ "Aref+Ruqaa": "Aref Ruqaa",
93
+ "Arima+Madurai": "Arima Madurai",
94
+ "Arimo": "Arimo",
95
+ "Arizonia": "Arizonia",
96
+ "Armata": "Armata",
97
+ "Arsenal": "Arsenal",
98
+ "Artifika": "Artifika",
99
+ "Arvo": "Arvo",
100
+ "Arya": "Arya",
101
+ "Asap": "Asap",
102
+ "Asap+Condensed": "Asap Condensed",
103
+ "Asar": "Asar",
104
+ "Asset": "Asset",
105
+ "Assistant": "Assistant",
106
+ "Astloch": "Astloch",
107
+ "Asul": "Asul",
108
+ "Athiti": "Athiti",
109
+ "Atma": "Atma",
110
+ "Atomic+Age": "Atomic Age",
111
+ "Aubrey": "Aubrey",
112
+ "Audiowide": "Audiowide",
113
+ "Autour+One": "Autour One",
114
+ "Average": "Average",
115
+ "Average+Sans": "Average Sans",
116
+ "Averia+Gruesa+Libre": "Averia Gruesa Libre",
117
+ "Averia+Libre": "Averia Libre",
118
+ "Averia+Sans+Libre": "Averia Sans Libre",
119
+ "Averia+Serif+Libre": "Averia Serif Libre",
120
+ "B612": "B612",
121
+ "B612+Mono": "B612 Mono",
122
+ "Bad+Script": "Bad Script",
123
+ "Bahiana": "Bahiana",
124
+ "Bahianita": "Bahianita",
125
+ "Bai+Jamjuree": "Bai Jamjuree",
126
+ "Baloo+2": "Baloo 2",
127
+ "Baloo+Bhai+2": "Baloo Bhai 2",
128
+ "Baloo+Bhaina+2": "Baloo Bhaina 2",
129
+ "Baloo+Chettan+2": "Baloo Chettan 2",
130
+ "Baloo+Da+2": "Baloo Da 2",
131
+ "Baloo+Paaji+2": "Baloo Paaji 2",
132
+ "Baloo+Tamma+2": "Baloo Tamma 2",
133
+ "Baloo+Tammudu+2": "Baloo Tammudu 2",
134
+ "Baloo+Thambi+2": "Baloo Thambi 2",
135
+ "Balthazar": "Balthazar",
136
+ "Bangers": "Bangers",
137
+ "Barlow": "Barlow",
138
+ "Barlow+Condensed": "Barlow Condensed",
139
+ "Barlow+Semi+Condensed": "Barlow Semi Condensed",
140
+ "Barriecito": "Barriecito",
141
+ "Barrio": "Barrio",
142
+ "Basic": "Basic",
143
+ "Baskervville": "Baskervville",
144
+ "Battambang": "Battambang",
145
+ "Baumans": "Baumans",
146
+ "Bayon": "Bayon",
147
+ "Be+Vietnam": "Be Vietnam",
148
+ "Bebas+Neue": "Bebas Neue",
149
+ "Belgrano": "Belgrano",
150
+ "Bellefair": "Bellefair",
151
+ "Belleza": "Belleza",
152
+ "Bellota": "Bellota",
153
+ "Bellota+Text": "Bellota Text",
154
+ "BenchNine": "BenchNine",
155
+ "Bentham": "Bentham",
156
+ "Berkshire+Swash": "Berkshire Swash",
157
+ "Beth+Ellen": "Beth Ellen",
158
+ "Bevan": "Bevan",
159
+ "Big+Shoulders+Display": "Big Shoulders Display",
160
+ "Big+Shoulders+Text": "Big Shoulders Text",
161
+ "Bigelow+Rules": "Bigelow Rules",
162
+ "Bigshot+One": "Bigshot One",
163
+ "Bilbo": "Bilbo",
164
+ "Bilbo+Swash+Caps": "Bilbo Swash Caps",
165
+ "BioRhyme": "BioRhyme",
166
+ "BioRhyme+Expanded": "BioRhyme Expanded",
167
+ "Biryani": "Biryani",
168
+ "Bitter": "Bitter",
169
+ "Black+And+White+Picture": "Black And White Picture",
170
+ "Black+Han+Sans": "Black Han Sans",
171
+ "Black+Ops+One": "Black Ops One",
172
+ "Blinker": "Blinker",
173
+ "Bokor": "Bokor",
174
+ "Bonbon": "Bonbon",
175
+ "Boogaloo": "Boogaloo",
176
+ "Bowlby+One": "Bowlby One",
177
+ "Bowlby+One+SC": "Bowlby One SC",
178
+ "Brawler": "Brawler",
179
+ "Bree+Serif": "Bree Serif",
180
+ "Bubblegum+Sans": "Bubblegum Sans",
181
+ "Bubbler+One": "Bubbler One",
182
+ "Buda": "Buda",
183
+ "Buenard": "Buenard",
184
+ "Bungee": "Bungee",
185
+ "Bungee+Hairline": "Bungee Hairline",
186
+ "Bungee+Inline": "Bungee Inline",
187
+ "Bungee+Outline": "Bungee Outline",
188
+ "Bungee+Shade": "Bungee Shade",
189
+ "Butcherman": "Butcherman",
190
+ "Butterfly+Kids": "Butterfly Kids",
191
+ "Cabin": "Cabin",
192
+ "Cabin+Condensed": "Cabin Condensed",
193
+ "Cabin+Sketch": "Cabin Sketch",
194
+ "Caesar+Dressing": "Caesar Dressing",
195
+ "Cagliostro": "Cagliostro",
196
+ "Cairo": "Cairo",
197
+ "Caladea": "Caladea",
198
+ "Calistoga": "Calistoga",
199
+ "Calligraffitti": "Calligraffitti",
200
+ "Cambay": "Cambay",
201
+ "Cambo": "Cambo",
202
+ "Candal": "Candal",
203
+ "Cantarell": "Cantarell",
204
+ "Cantata+One": "Cantata One",
205
+ "Cantora+One": "Cantora One",
206
+ "Capriola": "Capriola",
207
+ "Cardo": "Cardo",
208
+ "Carme": "Carme",
209
+ "Carrois+Gothic": "Carrois Gothic",
210
+ "Carrois+Gothic+SC": "Carrois Gothic SC",
211
+ "Carter+One": "Carter One",
212
+ "Catamaran": "Catamaran",
213
+ "Caudex": "Caudex",
214
+ "Caveat": "Caveat",
215
+ "Caveat+Brush": "Caveat Brush",
216
+ "Cedarville+Cursive": "Cedarville Cursive",
217
+ "Ceviche+One": "Ceviche One",
218
+ "Chakra+Petch": "Chakra Petch",
219
+ "Changa": "Changa",
220
+ "Changa+One": "Changa One",
221
+ "Chango": "Chango",
222
+ "Charm": "Charm",
223
+ "Charmonman": "Charmonman",
224
+ "Chathura": "Chathura",
225
+ "Chau+Philomene+One": "Chau Philomene One",
226
+ "Chela+One": "Chela One",
227
+ "Chelsea+Market": "Chelsea Market",
228
+ "Chenla": "Chenla",
229
+ "Cherry+Cream+Soda": "Cherry Cream Soda",
230
+ "Cherry+Swash": "Cherry Swash",
231
+ "Chewy": "Chewy",
232
+ "Chicle": "Chicle",
233
+ "Chilanka": "Chilanka",
234
+ "Chivo": "Chivo",
235
+ "Chonburi": "Chonburi",
236
+ "Cinzel": "Cinzel",
237
+ "Cinzel+Decorative": "Cinzel Decorative",
238
+ "Clicker+Script": "Clicker Script",
239
+ "Coda": "Coda",
240
+ "Coda+Caption": "Coda Caption",
241
+ "Codystar": "Codystar",
242
+ "Coiny": "Coiny",
243
+ "Combo": "Combo",
244
+ "Comfortaa": "Comfortaa",
245
+ "Comic+Neue": "Comic Neue",
246
+ "Coming+Soon": "Coming Soon",
247
+ "Concert+One": "Concert One",
248
+ "Condiment": "Condiment",
249
+ "Content": "Content",
250
+ "Contrail+One": "Contrail One",
251
+ "Convergence": "Convergence",
252
+ "Cookie": "Cookie",
253
+ "Copse": "Copse",
254
+ "Corben": "Corben",
255
+ "Cormorant": "Cormorant",
256
+ "Cormorant+Garamond": "Cormorant Garamond",
257
+ "Cormorant+Infant": "Cormorant Infant",
258
+ "Cormorant+SC": "Cormorant SC",
259
+ "Cormorant+Unicase": "Cormorant Unicase",
260
+ "Cormorant+Upright": "Cormorant Upright",
261
+ "Courgette": "Courgette",
262
+ "Courier+Prime": "Courier Prime",
263
+ "Cousine": "Cousine",
264
+ "Coustard": "Coustard",
265
+ "Covered+By+Your+Grace": "Covered By Your Grace",
266
+ "Crafty+Girls": "Crafty Girls",
267
+ "Creepster": "Creepster",
268
+ "Crete+Round": "Crete Round",
269
+ "Crimson+Pro": "Crimson Pro",
270
+ "Crimson+Text": "Crimson Text",
271
+ "Croissant+One": "Croissant One",
272
+ "Crushed": "Crushed",
273
+ "Cuprum": "Cuprum",
274
+ "Cute+Font": "Cute Font",
275
+ "Cutive": "Cutive",
276
+ "Cutive+Mono": "Cutive Mono",
277
+ "DM+Sans": "DM Sans",
278
+ "DM+Serif+Display": "DM Serif Display",
279
+ "DM+Serif+Text": "DM Serif Text",
280
+ "Damion": "Damion",
281
+ "Dancing+Script": "Dancing Script",
282
+ "Dangrek": "Dangrek",
283
+ "Darker+Grotesque": "Darker Grotesque",
284
+ "David+Libre": "David Libre",
285
+ "Dawning+of+a+New+Day": "Dawning of a New Day",
286
+ "Days+One": "Days One",
287
+ "Dekko": "Dekko",
288
+ "Delius": "Delius",
289
+ "Delius+Swash+Caps": "Delius Swash Caps",
290
+ "Delius+Unicase": "Delius Unicase",
291
+ "Della+Respira": "Della Respira",
292
+ "Denk+One": "Denk One",
293
+ "Devonshire": "Devonshire",
294
+ "Dhurjati": "Dhurjati",
295
+ "Didact+Gothic": "Didact Gothic",
296
+ "Diplomata": "Diplomata",
297
+ "Diplomata+SC": "Diplomata SC",
298
+ "Do+Hyeon": "Do Hyeon",
299
+ "Dokdo": "Dokdo",
300
+ "Domine": "Domine",
301
+ "Donegal+One": "Donegal One",
302
+ "Doppio+One": "Doppio One",
303
+ "Dorsa": "Dorsa",
304
+ "Dosis": "Dosis",
305
+ "Dr+Sugiyama": "Dr Sugiyama",
306
+ "Duru+Sans": "Duru Sans",
307
+ "Dynalight": "Dynalight",
308
+ "EB+Garamond": "EB Garamond",
309
+ "Eagle+Lake": "Eagle Lake",
310
+ "East+Sea+Dokdo": "East Sea Dokdo",
311
+ "Eater": "Eater",
312
+ "Economica": "Economica",
313
+ "Eczar": "Eczar",
314
+ "El+Messiri": "El Messiri",
315
+ "Electrolize": "Electrolize",
316
+ "Elsie": "Elsie",
317
+ "Elsie+Swash+Caps": "Elsie Swash Caps",
318
+ "Emblema+One": "Emblema One",
319
+ "Emilys+Candy": "Emilys Candy",
320
+ "Encode+Sans": "Encode Sans",
321
+ "Encode+Sans+Condensed": "Encode Sans Condensed",
322
+ "Encode+Sans+Expanded": "Encode Sans Expanded",
323
+ "Encode+Sans+Semi+Condensed": "Encode Sans Semi Condensed",
324
+ "Encode+Sans+Semi+Expanded": "Encode Sans Semi Expanded",
325
+ "Engagement": "Engagement",
326
+ "Englebert": "Englebert",
327
+ "Enriqueta": "Enriqueta",
328
+ "Erica+One": "Erica One",
329
+ "Esteban": "Esteban",
330
+ "Euphoria+Script": "Euphoria Script",
331
+ "Ewert": "Ewert",
332
+ "Exo": "Exo",
333
+ "Exo+2": "Exo 2",
334
+ "Expletus+Sans": "Expletus Sans",
335
+ "Fahkwang": "Fahkwang",
336
+ "Fanwood+Text": "Fanwood Text",
337
+ "Farro": "Farro",
338
+ "Farsan": "Farsan",
339
+ "Fascinate": "Fascinate",
340
+ "Fascinate+Inline": "Fascinate Inline",
341
+ "Faster+One": "Faster One",
342
+ "Fasthand": "Fasthand",
343
+ "Fauna+One": "Fauna One",
344
+ "Faustina": "Faustina",
345
+ "Federant": "Federant",
346
+ "Federo": "Federo",
347
+ "Felipa": "Felipa",
348
+ "Fenix": "Fenix",
349
+ "Finger+Paint": "Finger Paint",
350
+ "Fira+Code": "Fira Code",
351
+ "Fira+Mono": "Fira Mono",
352
+ "Fira+Sans": "Fira Sans",
353
+ "Fira+Sans+Condensed": "Fira Sans Condensed",
354
+ "Fira+Sans+Extra+Condensed": "Fira Sans Extra Condensed",
355
+ "Fjalla+One": "Fjalla One",
356
+ "Fjord+One": "Fjord One",
357
+ "Flamenco": "Flamenco",
358
+ "Flavors": "Flavors",
359
+ "Fondamento": "Fondamento",
360
+ "Fontdiner+Swanky": "Fontdiner Swanky",
361
+ "Forum": "Forum",
362
+ "Francois+One": "Francois One",
363
+ "Frank+Ruhl+Libre": "Frank Ruhl Libre",
364
+ "Freckle+Face": "Freckle Face",
365
+ "Fredericka+the+Great": "Fredericka the Great",
366
+ "Fredoka+One": "Fredoka One",
367
+ "Freehand": "Freehand",
368
+ "Fresca": "Fresca",
369
+ "Frijole": "Frijole",
370
+ "Fruktur": "Fruktur",
371
+ "Fugaz+One": "Fugaz One",
372
+ "GFS+Didot": "GFS Didot",
373
+ "GFS+Neohellenic": "GFS Neohellenic",
374
+ "Gabriela": "Gabriela",
375
+ "Gaegu": "Gaegu",
376
+ "Gafata": "Gafata",
377
+ "Galada": "Galada",
378
+ "Galdeano": "Galdeano",
379
+ "Galindo": "Galindo",
380
+ "Gamja+Flower": "Gamja Flower",
381
+ "Gayathri": "Gayathri",
382
+ "Gelasio": "Gelasio",
383
+ "Gentium+Basic": "Gentium Basic",
384
+ "Gentium+Book+Basic": "Gentium Book Basic",
385
+ "Geo": "Geo",
386
+ "Geostar": "Geostar",
387
+ "Geostar+Fill": "Geostar Fill",
388
+ "Germania+One": "Germania One",
389
+ "Gidugu": "Gidugu",
390
+ "Gilda+Display": "Gilda Display",
391
+ "Girassol": "Girassol",
392
+ "Give+You+Glory": "Give You Glory",
393
+ "Glass+Antiqua": "Glass Antiqua",
394
+ "Glegoo": "Glegoo",
395
+ "Gloria+Hallelujah": "Gloria Hallelujah",
396
+ "Goblin+One": "Goblin One",
397
+ "Gochi+Hand": "Gochi Hand",
398
+ "Gorditas": "Gorditas",
399
+ "Gothic+A1": "Gothic A1",
400
+ "Gotu": "Gotu",
401
+ "Goudy+Bookletter+1911": "Goudy Bookletter 1911",
402
+ "Graduate": "Graduate",
403
+ "Grand+Hotel": "Grand Hotel",
404
+ "Gravitas+One": "Gravitas One",
405
+ "Great+Vibes": "Great Vibes",
406
+ "Grenze": "Grenze",
407
+ "Griffy": "Griffy",
408
+ "Gruppo": "Gruppo",
409
+ "Gudea": "Gudea",
410
+ "Gugi": "Gugi",
411
+ "Gupter": "Gupter",
412
+ "Gurajada": "Gurajada",
413
+ "Habibi": "Habibi",
414
+ "Halant": "Halant",
415
+ "Hammersmith+One": "Hammersmith One",
416
+ "Hanalei": "Hanalei",
417
+ "Hanalei+Fill": "Hanalei Fill",
418
+ "Handlee": "Handlee",
419
+ "Hanuman": "Hanuman",
420
+ "Happy+Monkey": "Happy Monkey",
421
+ "Harmattan": "Harmattan",
422
+ "Headland+One": "Headland One",
423
+ "Heebo": "Heebo",
424
+ "Henny+Penny": "Henny Penny",
425
+ "Hepta+Slab": "Hepta Slab",
426
+ "Herr+Von+Muellerhoff": "Herr Von Muellerhoff",
427
+ "Hi+Melody": "Hi Melody",
428
+ "Hind": "Hind",
429
+ "Hind+Guntur": "Hind Guntur",
430
+ "Hind+Madurai": "Hind Madurai",
431
+ "Hind+Siliguri": "Hind Siliguri",
432
+ "Hind+Vadodara": "Hind Vadodara",
433
+ "Holtwood+One+SC": "Holtwood One SC",
434
+ "Homemade+Apple": "Homemade Apple",
435
+ "Homenaje": "Homenaje",
436
+ "IBM+Plex+Mono": "IBM Plex Mono",
437
+ "IBM+Plex+Sans": "IBM Plex Sans",
438
+ "IBM+Plex+Sans+Condensed": "IBM Plex Sans Condensed",
439
+ "IBM+Plex+Serif": "IBM Plex Serif",
440
+ "IM+Fell+DW+Pica": "IM Fell DW Pica",
441
+ "IM+Fell+DW+Pica+SC": "IM Fell DW Pica SC",
442
+ "IM+Fell+Double+Pica": "IM Fell Double Pica",
443
+ "IM+Fell+Double+Pica+SC": "IM Fell Double Pica SC",
444
+ "IM+Fell+English": "IM Fell English",
445
+ "IM+Fell+English+SC": "IM Fell English SC",
446
+ "IM+Fell+French+Canon": "IM Fell French Canon",
447
+ "IM+Fell+French+Canon+SC": "IM Fell French Canon SC",
448
+ "IM+Fell+Great+Primer": "IM Fell Great Primer",
449
+ "IM+Fell+Great+Primer+SC": "IM Fell Great Primer SC",
450
+ "Ibarra+Real+Nova": "Ibarra Real Nova",
451
+ "Iceberg": "Iceberg",
452
+ "Iceland": "Iceland",
453
+ "Imprima": "Imprima",
454
+ "Inconsolata": "Inconsolata",
455
+ "Inder": "Inder",
456
+ "Indie+Flower": "Indie Flower",
457
+ "Inika": "Inika",
458
+ "Inknut+Antiqua": "Inknut Antiqua",
459
+ "Inria+Sans": "Inria Sans",
460
+ "Inria+Serif": "Inria Serif",
461
+ "Inter": "Inter",
462
+ "Irish+Grover": "Irish Grover",
463
+ "Istok+Web": "Istok Web",
464
+ "Italiana": "Italiana",
465
+ "Italianno": "Italianno",
466
+ "Itim": "Itim",
467
+ "Jacques+Francois": "Jacques Francois",
468
+ "Jacques+Francois+Shadow": "Jacques Francois Shadow",
469
+ "Jaldi": "Jaldi",
470
+ "Jim+Nightshade": "Jim Nightshade",
471
+ "Jockey+One": "Jockey One",
472
+ "Jolly+Lodger": "Jolly Lodger",
473
+ "Jomhuria": "Jomhuria",
474
+ "Jomolhari": "Jomolhari",
475
+ "Josefin+Sans": "Josefin Sans",
476
+ "Josefin+Slab": "Josefin Slab",
477
+ "Joti+One": "Joti One",
478
+ "Jua": "Jua",
479
+ "Judson": "Judson",
480
+ "Julee": "Julee",
481
+ "Julius+Sans+One": "Julius Sans One",
482
+ "Junge": "Junge",
483
+ "Jura": "Jura",
484
+ "Just+Another+Hand": "Just Another Hand",
485
+ "Just+Me+Again+Down+Here": "Just Me Again Down Here",
486
+ "K2D": "K2D",
487
+ "Kadwa": "Kadwa",
488
+ "Kalam": "Kalam",
489
+ "Kameron": "Kameron",
490
+ "Kanit": "Kanit",
491
+ "Kantumruy": "Kantumruy",
492
+ "Karla": "Karla",
493
+ "Karma": "Karma",
494
+ "Katibeh": "Katibeh",
495
+ "Kaushan+Script": "Kaushan Script",
496
+ "Kavivanar": "Kavivanar",
497
+ "Kavoon": "Kavoon",
498
+ "Kdam+Thmor": "Kdam Thmor",
499
+ "Keania+One": "Keania One",
500
+ "Kelly+Slab": "Kelly Slab",
501
+ "Kenia": "Kenia",
502
+ "Khand": "Khand",
503
+ "Khmer": "Khmer",
504
+ "Khula": "Khula",
505
+ "Kirang+Haerang": "Kirang Haerang",
506
+ "Kite+One": "Kite One",
507
+ "Knewave": "Knewave",
508
+ "KoHo": "KoHo",
509
+ "Kodchasan": "Kodchasan",
510
+ "Kosugi": "Kosugi",
511
+ "Kosugi+Maru": "Kosugi Maru",
512
+ "Kotta+One": "Kotta One",
513
+ "Koulen": "Koulen",
514
+ "Kranky": "Kranky",
515
+ "Kreon": "Kreon",
516
+ "Kristi": "Kristi",
517
+ "Krona+One": "Krona One",
518
+ "Krub": "Krub",
519
+ "Kulim+Park": "Kulim Park",
520
+ "Kumar+One": "Kumar One",
521
+ "Kumar+One+Outline": "Kumar One Outline",
522
+ "Kurale": "Kurale",
523
+ "La+Belle+Aurore": "La Belle Aurore",
524
+ "Lacquer": "Lacquer",
525
+ "Laila": "Laila",
526
+ "Lakki+Reddy": "Lakki Reddy",
527
+ "Lalezar": "Lalezar",
528
+ "Lancelot": "Lancelot",
529
+ "Lateef": "Lateef",
530
+ "Lato": "Lato",
531
+ "League+Script": "League Script",
532
+ "Leckerli+One": "Leckerli One",
533
+ "Ledger": "Ledger",
534
+ "Lekton": "Lekton",
535
+ "Lemon": "Lemon",
536
+ "Lemonada": "Lemonada",
537
+ "Lexend+Deca": "Lexend Deca",
538
+ "Lexend+Exa": "Lexend Exa",
539
+ "Lexend+Giga": "Lexend Giga",
540
+ "Lexend+Mega": "Lexend Mega",
541
+ "Lexend+Peta": "Lexend Peta",
542
+ "Lexend+Tera": "Lexend Tera",
543
+ "Lexend+Zetta": "Lexend Zetta",
544
+ "Libre+Barcode+128": "Libre Barcode 128",
545
+ "Libre+Barcode+128+Text": "Libre Barcode 128 Text",
546
+ "Libre+Barcode+39": "Libre Barcode 39",
547
+ "Libre+Barcode+39+Extended": "Libre Barcode 39 Extended",
548
+ "Libre+Barcode+39+Extended+Text": "Libre Barcode 39 Extended Text",
549
+ "Libre+Barcode+39+Text": "Libre Barcode 39 Text",
550
+ "Libre+Baskerville": "Libre Baskerville",
551
+ "Libre+Caslon+Display": "Libre Caslon Display",
552
+ "Libre+Caslon+Text": "Libre Caslon Text",
553
+ "Libre+Franklin": "Libre Franklin",
554
+ "Life+Savers": "Life Savers",
555
+ "Lilita+One": "Lilita One",
556
+ "Lily+Script+One": "Lily Script One",
557
+ "Limelight": "Limelight",
558
+ "Linden+Hill": "Linden Hill",
559
+ "Literata": "Literata",
560
+ "Liu+Jian+Mao+Cao": "Liu Jian Mao Cao",
561
+ "Livvic": "Livvic",
562
+ "Lobster": "Lobster",
563
+ "Lobster+Two": "Lobster Two",
564
+ "Londrina+Outline": "Londrina Outline",
565
+ "Londrina+Shadow": "Londrina Shadow",
566
+ "Londrina+Sketch": "Londrina Sketch",
567
+ "Londrina+Solid": "Londrina Solid",
568
+ "Long+Cang": "Long Cang",
569
+ "Lora": "Lora",
570
+ "Love+Ya+Like+A+Sister": "Love Ya Like A Sister",
571
+ "Loved+by+the+King": "Loved by the King",
572
+ "Lovers+Quarrel": "Lovers Quarrel",
573
+ "Luckiest+Guy": "Luckiest Guy",
574
+ "Lusitana": "Lusitana",
575
+ "Lustria": "Lustria",
576
+ "M+PLUS+1p": "M PLUS 1p",
577
+ "M+PLUS+Rounded+1c": "M PLUS Rounded 1c",
578
+ "Ma+Shan+Zheng": "Ma Shan Zheng",
579
+ "Macondo": "Macondo",
580
+ "Macondo+Swash+Caps": "Macondo Swash Caps",
581
+ "Mada": "Mada",
582
+ "Magra": "Magra",
583
+ "Maiden+Orange": "Maiden Orange",
584
+ "Maitree": "Maitree",
585
+ "Major+Mono+Display": "Major Mono Display",
586
+ "Mako": "Mako",
587
+ "Mali": "Mali",
588
+ "Mallanna": "Mallanna",
589
+ "Mandali": "Mandali",
590
+ "Manjari": "Manjari",
591
+ "Mansalva": "Mansalva",
592
+ "Manuale": "Manuale",
593
+ "Marcellus": "Marcellus",
594
+ "Marcellus+SC": "Marcellus SC",
595
+ "Marck+Script": "Marck Script",
596
+ "Margarine": "Margarine",
597
+ "Markazi+Text": "Markazi Text",
598
+ "Marko+One": "Marko One",
599
+ "Marmelad": "Marmelad",
600
+ "Martel": "Martel",
601
+ "Martel+Sans": "Martel Sans",
602
+ "Marvel": "Marvel",
603
+ "Mate": "Mate",
604
+ "Mate+SC": "Mate SC",
605
+ "Maven+Pro": "Maven Pro",
606
+ "McLaren": "McLaren",
607
+ "Meddon": "Meddon",
608
+ "MedievalSharp": "MedievalSharp",
609
+ "Medula+One": "Medula One",
610
+ "Meera+Inimai": "Meera Inimai",
611
+ "Megrim": "Megrim",
612
+ "Meie+Script": "Meie Script",
613
+ "Merienda": "Merienda",
614
+ "Merienda+One": "Merienda One",
615
+ "Merriweather": "Merriweather",
616
+ "Merriweather+Sans": "Merriweather Sans",
617
+ "Metal": "Metal",
618
+ "Metal+Mania": "Metal Mania",
619
+ "Metamorphous": "Metamorphous",
620
+ "Metrophobic": "Metrophobic",
621
+ "Michroma": "Michroma",
622
+ "Milonga": "Milonga",
623
+ "Miltonian": "Miltonian",
624
+ "Miltonian+Tattoo": "Miltonian Tattoo",
625
+ "Mina": "Mina",
626
+ "Miniver": "Miniver",
627
+ "Miriam+Libre": "Miriam Libre",
628
+ "Mirza": "Mirza",
629
+ "Miss+Fajardose": "Miss Fajardose",
630
+ "Mitr": "Mitr",
631
+ "Modak": "Modak",
632
+ "Modern+Antiqua": "Modern Antiqua",
633
+ "Mogra": "Mogra",
634
+ "Molengo": "Molengo",
635
+ "Molle": "Molle",
636
+ "Monda": "Monda",
637
+ "Monofett": "Monofett",
638
+ "Monoton": "Monoton",
639
+ "Monsieur+La+Doulaise": "Monsieur La Doulaise",
640
+ "Montaga": "Montaga",
641
+ "Montez": "Montez",
642
+ "Montserrat": "Montserrat",
643
+ "Montserrat+Alternates": "Montserrat Alternates",
644
+ "Montserrat+Subrayada": "Montserrat Subrayada",
645
+ "Moul": "Moul",
646
+ "Moulpali": "Moulpali",
647
+ "Mountains+of+Christmas": "Mountains of Christmas",
648
+ "Mouse+Memoirs": "Mouse Memoirs",
649
+ "Mr+Bedfort": "Mr Bedfort",
650
+ "Mr+Dafoe": "Mr Dafoe",
651
+ "Mr+De+Haviland": "Mr De Haviland",
652
+ "Mrs+Saint+Delafield": "Mrs Saint Delafield",
653
+ "Mrs+Sheppards": "Mrs Sheppards",
654
+ "Mukta": "Mukta",
655
+ "Mukta+Mahee": "Mukta Mahee",
656
+ "Mukta+Malar": "Mukta Malar",
657
+ "Mukta+Vaani": "Mukta Vaani",
658
+ "Muli": "Muli",
659
+ "Mystery+Quest": "Mystery Quest",
660
+ "NTR": "NTR",
661
+ "Nanum+Brush+Script": "Nanum Brush Script",
662
+ "Nanum+Gothic": "Nanum Gothic",
663
+ "Nanum+Gothic+Coding": "Nanum Gothic Coding",
664
+ "Nanum+Myeongjo": "Nanum Myeongjo",
665
+ "Nanum+Pen+Script": "Nanum Pen Script",
666
+ "Neucha": "Neucha",
667
+ "Neuton": "Neuton",
668
+ "New+Rocker": "New Rocker",
669
+ "News+Cycle": "News Cycle",
670
+ "Niconne": "Niconne",
671
+ "Niramit": "Niramit",
672
+ "Nixie+One": "Nixie One",
673
+ "Nobile": "Nobile",
674
+ "Nokora": "Nokora",
675
+ "Norican": "Norican",
676
+ "Nosifer": "Nosifer",
677
+ "Notable": "Notable",
678
+ "Nothing+You+Could+Do": "Nothing You Could Do",
679
+ "Noticia+Text": "Noticia Text",
680
+ "Noto+Sans": "Noto Sans",
681
+ "Noto+Sans+HK": "Noto Sans HK",
682
+ "Noto+Sans+JP": "Noto Sans JP",
683
+ "Noto+Sans+KR": "Noto Sans KR",
684
+ "Noto+Sans+SC": "Noto Sans SC",
685
+ "Noto+Sans+TC": "Noto Sans TC",
686
+ "Noto+Serif": "Noto Serif",
687
+ "Noto+Serif+JP": "Noto Serif JP",
688
+ "Noto+Serif+KR": "Noto Serif KR",
689
+ "Noto+Serif+SC": "Noto Serif SC",
690
+ "Noto+Serif+TC": "Noto Serif TC",
691
+ "Nova+Cut": "Nova Cut",
692
+ "Nova+Flat": "Nova Flat",
693
+ "Nova+Mono": "Nova Mono",
694
+ "Nova+Oval": "Nova Oval",
695
+ "Nova+Round": "Nova Round",
696
+ "Nova+Script": "Nova Script",
697
+ "Nova+Slim": "Nova Slim",
698
+ "Nova+Square": "Nova Square",
699
+ "Numans": "Numans",
700
+ "Nunito": "Nunito",
701
+ "Nunito+Sans": "Nunito Sans",
702
+ "Odibee+Sans": "Odibee Sans",
703
+ "Odor+Mean+Chey": "Odor Mean Chey",
704
+ "Offside": "Offside",
705
+ "Old+Standard+TT": "Old Standard TT",
706
+ "Oldenburg": "Oldenburg",
707
+ "Oleo+Script": "Oleo Script",
708
+ "Oleo+Script+Swash+Caps": "Oleo Script Swash Caps",
709
+ "Open+Sans": "Open Sans",
710
+ "Open+Sans+Condensed": "Open Sans Condensed",
711
+ "Oranienbaum": "Oranienbaum",
712
+ "Orbitron": "Orbitron",
713
+ "Oregano": "Oregano",
714
+ "Orienta": "Orienta",
715
+ "Original+Surfer": "Original Surfer",
716
+ "Oswald": "Oswald",
717
+ "Over+the+Rainbow": "Over the Rainbow",
718
+ "Overlock": "Overlock",
719
+ "Overlock+SC": "Overlock SC",
720
+ "Overpass": "Overpass",
721
+ "Overpass+Mono": "Overpass Mono",
722
+ "Ovo": "Ovo",
723
+ "Oxanium": "Oxanium",
724
+ "Oxygen": "Oxygen",
725
+ "Oxygen+Mono": "Oxygen Mono",
726
+ "PT+Mono": "PT Mono",
727
+ "PT+Sans": "PT Sans",
728
+ "PT+Sans+Caption": "PT Sans Caption",
729
+ "PT+Sans+Narrow": "PT Sans Narrow",
730
+ "PT+Serif": "PT Serif",
731
+ "PT+Serif+Caption": "PT Serif Caption",
732
+ "Pacifico": "Pacifico",
733
+ "Padauk": "Padauk",
734
+ "Palanquin": "Palanquin",
735
+ "Palanquin+Dark": "Palanquin Dark",
736
+ "Pangolin": "Pangolin",
737
+ "Paprika": "Paprika",
738
+ "Parisienne": "Parisienne",
739
+ "Passero+One": "Passero One",
740
+ "Passion+One": "Passion One",
741
+ "Pathway+Gothic+One": "Pathway Gothic One",
742
+ "Patrick+Hand": "Patrick Hand",
743
+ "Patrick+Hand+SC": "Patrick Hand SC",
744
+ "Pattaya": "Pattaya",
745
+ "Patua+One": "Patua One",
746
+ "Pavanam": "Pavanam",
747
+ "Paytone+One": "Paytone One",
748
+ "Peddana": "Peddana",
749
+ "Peralta": "Peralta",
750
+ "Permanent+Marker": "Permanent Marker",
751
+ "Petit+Formal+Script": "Petit Formal Script",
752
+ "Petrona": "Petrona",
753
+ "Philosopher": "Philosopher",
754
+ "Piedra": "Piedra",
755
+ "Pinyon+Script": "Pinyon Script",
756
+ "Pirata+One": "Pirata One",
757
+ "Plaster": "Plaster",
758
+ "Play": "Play",
759
+ "Playball": "Playball",
760
+ "Playfair+Display": "Playfair Display",
761
+ "Playfair+Display+SC": "Playfair Display SC",
762
+ "Podkova": "Podkova",
763
+ "Poiret+One": "Poiret One",
764
+ "Poller+One": "Poller One",
765
+ "Poly": "Poly",
766
+ "Pompiere": "Pompiere",
767
+ "Pontano+Sans": "Pontano Sans",
768
+ "Poor+Story": "Poor Story",
769
+ "Poppins": "Poppins",
770
+ "Port+Lligat+Sans": "Port Lligat Sans",
771
+ "Port+Lligat+Slab": "Port Lligat Slab",
772
+ "Pragati+Narrow": "Pragati Narrow",
773
+ "Prata": "Prata",
774
+ "Preahvihear": "Preahvihear",
775
+ "Press+Start+2P": "Press Start 2P",
776
+ "Pridi": "Pridi",
777
+ "Princess+Sofia": "Princess Sofia",
778
+ "Prociono": "Prociono",
779
+ "Prompt": "Prompt",
780
+ "Prosto+One": "Prosto One",
781
+ "Proza+Libre": "Proza Libre",
782
+ "Public+Sans": "Public Sans",
783
+ "Puritan": "Puritan",
784
+ "Purple+Purse": "Purple Purse",
785
+ "Quando": "Quando",
786
+ "Quantico": "Quantico",
787
+ "Quattrocento": "Quattrocento",
788
+ "Quattrocento+Sans": "Quattrocento Sans",
789
+ "Questrial": "Questrial",
790
+ "Quicksand": "Quicksand",
791
+ "Quintessential": "Quintessential",
792
+ "Qwigley": "Qwigley",
793
+ "Racing+Sans+One": "Racing Sans One",
794
+ "Radley": "Radley",
795
+ "Rajdhani": "Rajdhani",
796
+ "Rakkas": "Rakkas",
797
+ "Raleway": "Raleway",
798
+ "Raleway+Dots": "Raleway Dots",
799
+ "Ramabhadra": "Ramabhadra",
800
+ "Ramaraja": "Ramaraja",
801
+ "Rambla": "Rambla",
802
+ "Rammetto+One": "Rammetto One",
803
+ "Ranchers": "Ranchers",
804
+ "Rancho": "Rancho",
805
+ "Ranga": "Ranga",
806
+ "Rasa": "Rasa",
807
+ "Rationale": "Rationale",
808
+ "Ravi+Prakash": "Ravi Prakash",
809
+ "Red+Hat+Display": "Red Hat Display",
810
+ "Red+Hat+Text": "Red Hat Text",
811
+ "Redressed": "Redressed",
812
+ "Reem+Kufi": "Reem Kufi",
813
+ "Reenie+Beanie": "Reenie Beanie",
814
+ "Revalia": "Revalia",
815
+ "Rhodium+Libre": "Rhodium Libre",
816
+ "Ribeye": "Ribeye",
817
+ "Ribeye+Marrow": "Ribeye Marrow",
818
+ "Righteous": "Righteous",
819
+ "Risque": "Risque",
820
+ "Roboto": "Roboto",
821
+ "Roboto+Condensed": "Roboto Condensed",
822
+ "Roboto+Mono": "Roboto Mono",
823
+ "Roboto+Slab": "Roboto Slab",
824
+ "Rochester": "Rochester",
825
+ "Rock+Salt": "Rock Salt",
826
+ "Rokkitt": "Rokkitt",
827
+ "Romanesco": "Romanesco",
828
+ "Ropa+Sans": "Ropa Sans",
829
+ "Rosario": "Rosario",
830
+ "Rosarivo": "Rosarivo",
831
+ "Rouge+Script": "Rouge Script",
832
+ "Rozha+One": "Rozha One",
833
+ "Rubik": "Rubik",
834
+ "Rubik+Mono+One": "Rubik Mono One",
835
+ "Ruda": "Ruda",
836
+ "Rufina": "Rufina",
837
+ "Ruge+Boogie": "Ruge Boogie",
838
+ "Ruluko": "Ruluko",
839
+ "Rum+Raisin": "Rum Raisin",
840
+ "Ruslan+Display": "Ruslan Display",
841
+ "Russo+One": "Russo One",
842
+ "Ruthie": "Ruthie",
843
+ "Rye": "Rye",
844
+ "Sacramento": "Sacramento",
845
+ "Sahitya": "Sahitya",
846
+ "Sail": "Sail",
847
+ "Saira": "Saira",
848
+ "Saira+Condensed": "Saira Condensed",
849
+ "Saira+Extra+Condensed": "Saira Extra Condensed",
850
+ "Saira+Semi+Condensed": "Saira Semi Condensed",
851
+ "Saira+Stencil+One": "Saira Stencil One",
852
+ "Salsa": "Salsa",
853
+ "Sanchez": "Sanchez",
854
+ "Sancreek": "Sancreek",
855
+ "Sansita": "Sansita",
856
+ "Sarabun": "Sarabun",
857
+ "Sarala": "Sarala",
858
+ "Sarina": "Sarina",
859
+ "Sarpanch": "Sarpanch",
860
+ "Satisfy": "Satisfy",
861
+ "Sawarabi+Gothic": "Sawarabi Gothic",
862
+ "Sawarabi+Mincho": "Sawarabi Mincho",
863
+ "Scada": "Scada",
864
+ "Scheherazade": "Scheherazade",
865
+ "Schoolbell": "Schoolbell",
866
+ "Scope+One": "Scope One",
867
+ "Seaweed+Script": "Seaweed Script",
868
+ "Secular+One": "Secular One",
869
+ "Sedgwick+Ave": "Sedgwick Ave",
870
+ "Sedgwick+Ave+Display": "Sedgwick Ave Display",
871
+ "Sen": "Sen",
872
+ "Sevillana": "Sevillana",
873
+ "Seymour+One": "Seymour One",
874
+ "Shadows+Into+Light": "Shadows Into Light",
875
+ "Shadows+Into+Light+Two": "Shadows Into Light Two",
876
+ "Shanti": "Shanti",
877
+ "Share": "Share",
878
+ "Share+Tech": "Share Tech",
879
+ "Share+Tech+Mono": "Share Tech Mono",
880
+ "Shojumaru": "Shojumaru",
881
+ "Short+Stack": "Short Stack",
882
+ "Shrikhand": "Shrikhand",
883
+ "Siemreap": "Siemreap",
884
+ "Sigmar+One": "Sigmar One",
885
+ "Signika": "Signika",
886
+ "Signika+Negative": "Signika Negative",
887
+ "Simonetta": "Simonetta",
888
+ "Single+Day": "Single Day",
889
+ "Sintony": "Sintony",
890
+ "Sirin+Stencil": "Sirin Stencil",
891
+ "Six+Caps": "Six Caps",
892
+ "Skranji": "Skranji",
893
+ "Slabo+13px": "Slabo 13px",
894
+ "Slabo+27px": "Slabo 27px",
895
+ "Slackey": "Slackey",
896
+ "Smokum": "Smokum",
897
+ "Smythe": "Smythe",
898
+ "Sniglet": "Sniglet",
899
+ "Snippet": "Snippet",
900
+ "Snowburst+One": "Snowburst One",
901
+ "Sofadi+One": "Sofadi One",
902
+ "Sofia": "Sofia",
903
+ "Solway": "Solway",
904
+ "Song+Myung": "Song Myung",
905
+ "Sonsie+One": "Sonsie One",
906
+ "Sorts+Mill+Goudy": "Sorts Mill Goudy",
907
+ "Source+Code+Pro": "Source Code Pro",
908
+ "Source+Sans+Pro": "Source Sans Pro",
909
+ "Source+Serif+Pro": "Source Serif Pro",
910
+ "Space+Mono": "Space Mono",
911
+ "Spartan": "Spartan",
912
+ "Special+Elite": "Special Elite",
913
+ "Spectral": "Spectral",
914
+ "Spectral+SC": "Spectral SC",
915
+ "Spicy+Rice": "Spicy Rice",
916
+ "Spinnaker": "Spinnaker",
917
+ "Spirax": "Spirax",
918
+ "Squada+One": "Squada One",
919
+ "Sree+Krushnadevaraya": "Sree Krushnadevaraya",
920
+ "Sriracha": "Sriracha",
921
+ "Srisakdi": "Srisakdi",
922
+ "Staatliches": "Staatliches",
923
+ "Stalemate": "Stalemate",
924
+ "Stalinist+One": "Stalinist One",
925
+ "Stardos+Stencil": "Stardos Stencil",
926
+ "Stint+Ultra+Condensed": "Stint Ultra Condensed",
927
+ "Stint+Ultra+Expanded": "Stint Ultra Expanded",
928
+ "Stoke": "Stoke",
929
+ "Strait": "Strait",
930
+ "Stylish": "Stylish",
931
+ "Sue+Ellen+Francisco": "Sue Ellen Francisco",
932
+ "Suez+One": "Suez One",
933
+ "Sulphur+Point": "Sulphur Point",
934
+ "Sumana": "Sumana",
935
+ "Sunflower": "Sunflower",
936
+ "Sunshiney": "Sunshiney",
937
+ "Supermercado+One": "Supermercado One",
938
+ "Sura": "Sura",
939
+ "Suranna": "Suranna",
940
+ "Suravaram": "Suravaram",
941
+ "Suwannaphum": "Suwannaphum",
942
+ "Swanky+and+Moo+Moo": "Swanky and Moo Moo",
943
+ "Syncopate": "Syncopate",
944
+ "Tajawal": "Tajawal",
945
+ "Tangerine": "Tangerine",
946
+ "Taprom": "Taprom",
947
+ "Tauri": "Tauri",
948
+ "Taviraj": "Taviraj",
949
+ "Teko": "Teko",
950
+ "Telex": "Telex",
951
+ "Tenali+Ramakrishna": "Tenali Ramakrishna",
952
+ "Tenor+Sans": "Tenor Sans",
953
+ "Text+Me+One": "Text Me One",
954
+ "Thasadith": "Thasadith",
955
+ "The+Girl+Next+Door": "The Girl Next Door",
956
+ "Tienne": "Tienne",
957
+ "Tillana": "Tillana",
958
+ "Timmana": "Timmana",
959
+ "Tinos": "Tinos",
960
+ "Titan+One": "Titan One",
961
+ "Titillium+Web": "Titillium Web",
962
+ "Tomorrow": "Tomorrow",
963
+ "Trade+Winds": "Trade Winds",
964
+ "Trirong": "Trirong",
965
+ "Trocchi": "Trocchi",
966
+ "Trochut": "Trochut",
967
+ "Trykker": "Trykker",
968
+ "Tulpen+One": "Tulpen One",
969
+ "Turret+Road": "Turret Road",
970
+ "Ubuntu": "Ubuntu",
971
+ "Ubuntu+Condensed": "Ubuntu Condensed",
972
+ "Ubuntu+Mono": "Ubuntu Mono",
973
+ "Ultra": "Ultra",
974
+ "Uncial+Antiqua": "Uncial Antiqua",
975
+ "Underdog": "Underdog",
976
+ "Unica+One": "Unica One",
977
+ "UnifrakturCook": "UnifrakturCook",
978
+ "UnifrakturMaguntia": "UnifrakturMaguntia",
979
+ "Unkempt": "Unkempt",
980
+ "Unlock": "Unlock",
981
+ "Unna": "Unna",
982
+ "VT323": "VT323",
983
+ "Vampiro+One": "Vampiro One",
984
+ "Varela": "Varela",
985
+ "Varela+Round": "Varela Round",
986
+ "Vast+Shadow": "Vast Shadow",
987
+ "Vesper+Libre": "Vesper Libre",
988
+ "Viaoda+Libre": "Viaoda Libre",
989
+ "Vibes": "Vibes",
990
+ "Vibur": "Vibur",
991
+ "Vidaloka": "Vidaloka",
992
+ "Viga": "Viga",
993
+ "Voces": "Voces",
994
+ "Volkhov": "Volkhov",
995
+ "Vollkorn": "Vollkorn",
996
+ "Vollkorn+SC": "Vollkorn SC",
997
+ "Voltaire": "Voltaire",
998
+ "Waiting+for+the+Sunrise": "Waiting for the Sunrise",
999
+ "Wallpoet": "Wallpoet",
1000
+ "Walter+Turncoat": "Walter Turncoat",
1001
+ "Warnes": "Warnes",
1002
+ "Wellfleet": "Wellfleet",
1003
+ "Wendy+One": "Wendy One",
1004
+ "Wire+One": "Wire One",
1005
+ "Work+Sans": "Work Sans",
1006
+ "Yanone+Kaffeesatz": "Yanone Kaffeesatz",
1007
+ "Yantramanav": "Yantramanav",
1008
+ "Yatra+One": "Yatra One",
1009
+ "Yellowtail": "Yellowtail",
1010
+ "Yeon+Sung": "Yeon Sung",
1011
+ "Yeseva+One": "Yeseva One",
1012
+ "Yesteryear": "Yesteryear",
1013
+ "Yrsa": "Yrsa",
1014
+ "ZCOOL+KuaiLe": "ZCOOL KuaiLe",
1015
+ "ZCOOL+QingKe+HuangYou": "ZCOOL QingKe HuangYou",
1016
+ "ZCOOL+XiaoWei": "ZCOOL XiaoWei",
1017
+ "Zeyada": "Zeyada",
1018
+ "Zhi+Mang+Xing": "Zhi Mang Xing",
1019
+ "Zilla+Slab": "Zilla Slab",
1020
+ "Zilla+Slab+Highlight": "Zilla Slab Highlight"
1021
+ },
1022
+ "default_value": [
1023
+ "Inherit"
1024
+ ],
1025
+ "allow_null": 0,
1026
+ "multiple": 0,
1027
+ "ui": 1,
1028
+ "ajax": 1,
1029
+ "return_format": "value",
1030
+ "placeholder": ""
1031
+ },
1032
+ {
1033
+ "key": "field_5e884835e794b",
1034
+ "label": "Size",
1035
+ "name": "acfb_font_size",
1036
+ "type": "range",
1037
+ "instructions": "",
1038
+ "required": 0,
1039
+ "conditional_logic": 0,
1040
+ "wrapper": {
1041
+ "width": "",
1042
+ "class": "",
1043
+ "id": ""
1044
+ },
1045
+ "default_value": 14,
1046
+ "min": "",
1047
+ "max": 200,
1048
+ "step": "",
1049
+ "prepend": "",
1050
+ "append": "px"
1051
+ },
1052
+ {
1053
+ "key": "field_5e884850e794c",
1054
+ "label": "Weight",
1055
+ "name": "acfb_font_weight",
1056
+ "type": "select",
1057
+ "instructions": "",
1058
+ "required": 0,
1059
+ "conditional_logic": 0,
1060
+ "wrapper": {
1061
+ "width": "",
1062
+ "class": "",
1063
+ "id": ""
1064
+ },
1065
+ "choices": {
1066
+ "100": "100",
1067
+ "200": "200",
1068
+ "300": "300",
1069
+ "400": "400",
1070
+ "500": "500",
1071
+ "600": "600",
1072
+ "700": "700",
1073
+ "800": "800",
1074
+ "900": "900",
1075
+ "default": "Default",
1076
+ "normal": "Normal",
1077
+ "bold": "Bold"
1078
+ },
1079
+ "default_value": [
1080
+ 300
1081
+ ],
1082
+ "allow_null": 0,
1083
+ "multiple": 0,
1084
+ "ui": 0,
1085
+ "return_format": "value",
1086
+ "ajax": 0,
1087
+ "placeholder": ""
1088
+ },
1089
+ {
1090
+ "key": "field_5e884883e794d",
1091
+ "label": "Transform",
1092
+ "name": "acfb_font_transform",
1093
+ "type": "select",
1094
+ "instructions": "",
1095
+ "required": 0,
1096
+ "conditional_logic": 0,
1097
+ "wrapper": {
1098
+ "width": "",
1099
+ "class": "",
1100
+ "id": ""
1101
+ },
1102
+ "choices": {
1103
+ "default": "Default",
1104
+ "uppercase": "Uppercase",
1105
+ "lowercase": "Lowercase",
1106
+ "capitalize": "Capitalize",
1107
+ "normal": "Normal"
1108
+ },
1109
+ "default_value": [
1110
+ "default"
1111
+ ],
1112
+ "allow_null": 0,
1113
+ "multiple": 0,
1114
+ "ui": 0,
1115
+ "return_format": "value",
1116
+ "ajax": 0,
1117
+ "placeholder": ""
1118
+ },
1119
+ {
1120
+ "key": "field_5e8848b3e794e",
1121
+ "label": "Style",
1122
+ "name": "acfb_font_style",
1123
+ "type": "select",
1124
+ "instructions": "",
1125
+ "required": 0,
1126
+ "conditional_logic": 0,
1127
+ "wrapper": {
1128
+ "width": "",
1129
+ "class": "",
1130
+ "id": ""
1131
+ },
1132
+ "choices": {
1133
+ "normal": "Normal",
1134
+ "italic": "Italic",
1135
+ "oblique": "Oblique"
1136
+ },
1137
+ "default_value": [
1138
+ "normal"
1139
+ ],
1140
+ "allow_null": 0,
1141
+ "multiple": 0,
1142
+ "ui": 0,
1143
+ "return_format": "value",
1144
+ "ajax": 0,
1145
+ "placeholder": ""
1146
+ },
1147
+ {
1148
+ "key": "field_5e8848d4e794f",
1149
+ "label": "Decoration",
1150
+ "name": "acfb_font_decoration",
1151
+ "type": "select",
1152
+ "instructions": "",
1153
+ "required": 0,
1154
+ "conditional_logic": 0,
1155
+ "wrapper": {
1156
+ "width": "",
1157
+ "class": "",
1158
+ "id": ""
1159
+ },
1160
+ "choices": {
1161
+ "underline": "Underline",
1162
+ "overline": "Overline",
1163
+ "line through": "Line Through",
1164
+ "none": "None"
1165
+ },
1166
+ "default_value": [
1167
+ "none"
1168
+ ],
1169
+ "allow_null": 0,
1170
+ "multiple": 0,
1171
+ "ui": 0,
1172
+ "return_format": "value",
1173
+ "ajax": 0,
1174
+ "placeholder": ""
1175
+ },
1176
+ {
1177
+ "key": "field_5e8848ffe7950",
1178
+ "label": "Line Height",
1179
+ "name": "acfb_line_height",
1180
+ "type": "range",
1181
+ "instructions": "",
1182
+ "required": 0,
1183
+ "conditional_logic": 0,
1184
+ "wrapper": {
1185
+ "width": "",
1186
+ "class": "",
1187
+ "id": ""
1188
+ },
1189
+ "default_value": 1,
1190
+ "min": "",
1191
+ "max": 100,
1192
+ "step": "",
1193
+ "prepend": "",
1194
+ "append": "px"
1195
+ },
1196
+ {
1197
+ "key": "field_5e884917e7951",
1198
+ "label": "Letter Spacing",
1199
+ "name": "acfb_letter_spacing",
1200
+ "type": "range",
1201
+ "instructions": "",
1202
+ "required": 0,
1203
+ "conditional_logic": 0,
1204
+ "wrapper": {
1205
+ "width": "",
1206
+ "class": "",
1207
+ "id": ""
1208
+ },
1209
+ "default_value": 0,
1210
+ "min": -5,
1211
+ "max": 10,
1212
+ "step": "0.1",
1213
+ "prepend": "",
1214
+ "append": "px"
1215
+ }
1216
+ ]
1217
+ },
1218
+ {
1219
+ "key": "field_5e8aebd76659c",
1220
+ "label": "Text Shadow",
1221
+ "name": "acfb_text_shadow",
1222
+ "type": "group",
1223
+ "instructions": "",
1224
+ "required": 0,
1225
+ "conditional_logic": 0,
1226
+ "wrapper": {
1227
+ "width": "",
1228
+ "class": "",
1229
+ "id": ""
1230
+ },
1231
+ "layout": "block",
1232
+ "sub_fields": [
1233
+ {
1234
+ "key": "field_5e8aecc76659d",
1235
+ "label": "Color",
1236
+ "name": "acfb_text_shadow_color",
1237
+ "type": "color_picker",
1238
+ "instructions": "",
1239
+ "required": 0,
1240
+ "conditional_logic": 0,
1241
+ "wrapper": {
1242
+ "width": "",
1243
+ "class": "",
1244
+ "id": ""
1245
+ },
1246
+ "default_value": ""
1247
+ },
1248
+ {
1249
+ "key": "field_5e8aecfc6659e",
1250
+ "label": "Blur",
1251
+ "name": "acfb_text_shadow_blur",
1252
+ "type": "range",
1253
+ "instructions": "",
1254
+ "required": 0,
1255
+ "conditional_logic": 0,
1256
+ "wrapper": {
1257
+ "width": "",
1258
+ "class": "",
1259
+ "id": ""
1260
+ },
1261
+ "default_value": 24,
1262
+ "min": "",
1263
+ "max": "",
1264
+ "step": "",
1265
+ "prepend": "",
1266
+ "append": ""
1267
+ },
1268
+ {
1269
+ "key": "field_5e8aed286659f",
1270
+ "label": "Horizontal",
1271
+ "name": "acfb_text_shadow_horizontal",
1272
+ "type": "range",
1273
+ "instructions": "",
1274
+ "required": 0,
1275
+ "conditional_logic": 0,
1276
+ "wrapper": {
1277
+ "width": "",
1278
+ "class": "",
1279
+ "id": ""
1280
+ },
1281
+ "default_value": 4,
1282
+ "min": -100,
1283
+ "max": "",
1284
+ "step": "",
1285
+ "prepend": "",
1286
+ "append": ""
1287
+ },
1288
+ {
1289
+ "key": "field_5e8aed4b665a0",
1290
+ "label": "Vertical",
1291
+ "name": "acfb_text_shadow_vertical",
1292
+ "type": "range",
1293
+ "instructions": "",
1294
+ "required": 0,
1295
+ "conditional_logic": 0,
1296
+ "wrapper": {
1297
+ "width": "",
1298
+ "class": "",
1299
+ "id": ""
1300
+ },
1301
+ "default_value": 17,
1302
+ "min": -100,
1303
+ "max": "",
1304
+ "step": "",
1305
+ "prepend": "",
1306
+ "append": ""
1307
+ }
1308
+ ]
1309
+ },
1310
+ {
1311
+ "key": "field_5e8b10e011673",
1312
+ "label": "Margin",
1313
+ "name": "acfb_margin",
1314
+ "type": "group",
1315
+ "instructions": "",
1316
+ "required": 0,
1317
+ "conditional_logic": 0,
1318
+ "wrapper": {
1319
+ "width": "",
1320
+ "class": "acfb_global_margin",
1321
+ "id": ""
1322
+ },
1323
+ "layout": "block",
1324
+ "sub_fields": [
1325
+ {
1326
+ "key": "field_5e8b110911674",
1327
+ "label": "Top",
1328
+ "name": "acfb_margin_top",
1329
+ "type": "range",
1330
+ "instructions": "",
1331
+ "required": 0,
1332
+ "conditional_logic": 0,
1333
+ "wrapper": {
1334
+ "width": "",
1335
+ "class": "",
1336
+ "id": ""
1337
+ },
1338
+ "default_value": 0,
1339
+ "min": "",
1340
+ "max": 1000,
1341
+ "step": "",
1342
+ "prepend": "",
1343
+ "append": "px"
1344
+ },
1345
+ {
1346
+ "key": "field_5e8b114611676",
1347
+ "label": "Bottom",
1348
+ "name": "acfb_margin_bottom",
1349
+ "type": "range",
1350
+ "instructions": "",
1351
+ "required": 0,
1352
+ "conditional_logic": 0,
1353
+ "wrapper": {
1354
+ "width": "",
1355
+ "class": "",
1356
+ "id": ""
1357
+ },
1358
+ "default_value": 0,
1359
+ "min": "",
1360
+ "max": 1000,
1361
+ "step": "",
1362
+ "prepend": "",
1363
+ "append": "px"
1364
+ },
1365
+ {
1366
+ "key": "field_5e8b115711677",
1367
+ "label": "Left",
1368
+ "name": "acfb_margin_left",
1369
+ "type": "range",
1370
+ "instructions": "",
1371
+ "required": 0,
1372
+ "conditional_logic": 0,
1373
+ "wrapper": {
1374
+ "width": "",
1375
+ "class": "",
1376
+ "id": ""
1377
+ },
1378
+ "default_value": 0,
1379
+ "min": "",
1380
+ "max": 1000,
1381
+ "step": "",
1382
+ "prepend": "",
1383
+ "append": "px"
1384
+ },
1385
+ {
1386
+ "key": "field_5e8b113a11675",
1387
+ "label": "Right",
1388
+ "name": "acfb_margin_right",
1389
+ "type": "range",
1390
+ "instructions": "",
1391
+ "required": 0,
1392
+ "conditional_logic": 0,
1393
+ "wrapper": {
1394
+ "width": "",
1395
+ "class": "",
1396
+ "id": ""
1397
+ },
1398
+ "default_value": 0,
1399
+ "min": "",
1400
+ "max": 1000,
1401
+ "step": "",
1402
+ "prepend": "",
1403
+ "append": "px"
1404
+ }
1405
+ ]
1406
+ },
1407
+ {
1408
+ "key": "field_5e8b11f3a2325",
1409
+ "label": "Padding",
1410
+ "name": "acfb_padding",
1411
+ "type": "group",
1412
+ "instructions": "",
1413
+ "required": 0,
1414
+ "conditional_logic": 0,
1415
+ "wrapper": {
1416
+ "width": "",
1417
+ "class": "acfb_global_padding",
1418
+ "id": ""
1419
+ },
1420
+ "layout": "block",
1421
+ "sub_fields": [
1422
+ {
1423
+ "key": "field_5e8b11f3a2326",
1424
+ "label": "Top",
1425
+ "name": "acfb_padding_top",
1426
+ "type": "range",
1427
+ "instructions": "",
1428
+ "required": 0,
1429
+ "conditional_logic": 0,
1430
+ "wrapper": {
1431
+ "width": "",
1432
+ "class": "",
1433
+ "id": ""
1434
+ },
1435
+ "default_value": 0,
1436
+ "min": "",
1437
+ "max": 1000,
1438
+ "step": "",
1439
+ "prepend": "",
1440
+ "append": "px"
1441
+ },
1442
+ {
1443
+ "key": "field_5e8b11f3a2327",
1444
+ "label": "Bottom",
1445
+ "name": "acfb_padding_bottom",
1446
+ "type": "range",
1447
+ "instructions": "",
1448
+ "required": 0,
1449
+ "conditional_logic": 0,
1450
+ "wrapper": {
1451
+ "width": "",
1452
+ "class": "",
1453
+ "id": ""
1454
+ },
1455
+ "default_value": 0,
1456
+ "min": "",
1457
+ "max": 1000,
1458
+ "step": "",
1459
+ "prepend": "",
1460
+ "append": "px"
1461
+ },
1462
+ {
1463
+ "key": "field_5e8b11f3a2328",
1464
+ "label": "Left",
1465
+ "name": "acfb_padding_left",
1466
+ "type": "range",
1467
+ "instructions": "",
1468
+ "required": 0,
1469
+ "conditional_logic": 0,
1470
+ "wrapper": {
1471
+ "width": "",
1472
+ "class": "",
1473
+ "id": ""
1474
+ },
1475
+ "default_value": 0,
1476
+ "min": "",
1477
+ "max": 1000,
1478
+ "step": "",
1479
+ "prepend": "",
1480
+ "append": "px"
1481
+ },
1482
+ {
1483
+ "key": "field_5e8b11f3a2329",
1484
+ "label": "Right",
1485
+ "name": "acfb_padding_right",
1486
+ "type": "range",
1487
+ "instructions": "",
1488
+ "required": 0,
1489
+ "conditional_logic": 0,
1490
+ "wrapper": {
1491
+ "width": "",
1492
+ "class": "",
1493
+ "id": ""
1494
+ },
1495
+ "default_value": 0,
1496
+ "min": "",
1497
+ "max": 1000,
1498
+ "step": "",
1499
+ "prepend": "",
1500
+ "append": "px"
1501
+ }
1502
+ ]
1503
+ }
1504
+ ],
1505
+ "location": [
1506
+ [
1507
+ {
1508
+ "param": "block",
1509
+ "operator": "!=",
1510
+ "value": "all"
1511
+ }
1512
+ ]
1513
+ ],
1514
+ "menu_order": 0,
1515
+ "position": "normal",
1516
+ "style": "default",
1517
+ "label_placement": "top",
1518
+ "instruction_placement": "label",
1519
+ "hide_on_screen": "",
1520
+ "active": 1,
1521
+ "description": "",
1522
+ "modified": 1586604481
1523
+ }
admin/admin-script.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($){
2
+ $().ready(function(){
3
+ $(document).on('click' , '.acf-range-wrap', function() {
4
+
5
+ let range = $(this).find('input[type="range"]');
6
+ let number = $(this).find('input[type="number"]');
7
+
8
+ // console.log(range);
9
+
10
+
11
+ range.change(function() {
12
+
13
+ // console.log($(this).val());
14
+ number.val($(this).val());
15
+ });
16
+
17
+ });
18
+ $(document).on('input', '.acfb-checkbox-true-false', function() {
19
+ const v = $(this).val();
20
+ v === '0' ? $(this).val('1') : $(this).val('0');
21
+ const field = $(this).parents('.acfb_cs_field_root').find('.acfb_cs_field_main');
22
+ v !== '1' ? field.show() : field.hide();
23
+ });
24
+
25
+ $(document).on('click', '.acf-label', function() {
26
+
27
+ $(this).parent().find('.acfb-checkbox-true-false')[0].click();
28
+
29
+ });
30
+
31
+
32
+ });
33
+ })(jQuery);
34
+
admin/admin-styles.css CHANGED
@@ -96,4 +96,64 @@
96
  .acfb_admin_button:hover{
97
  background: #1d2125;
98
  color: white;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
99
  }
96
  .acfb_admin_button:hover{
97
  background: #1d2125;
98
  color: white;
99
+ }
100
+
101
+
102
+ .acfb_admin_templib{
103
+ background-image: linear-gradient(rgba(0,0,0,0.61), rgba(0,0,0,0.61)), url("../img/temp-lib.png");
104
+ background-size: cover;
105
+ min-height: 300px;
106
+ padding: 30px 30px;
107
+ margin: 50px;
108
+ }
109
+
110
+ .acfb_admin_templib h1, .acfb_admin_templib p{
111
+ color: #ffffff !important;
112
+ padding: 0;
113
+ width: 100% !important;
114
+ }
115
+
116
+ .acfb_admin_templib h1{
117
+ font-size: 25px;
118
+ font-weight: 400;
119
+ font-family: 'Poppins', sans-serif;
120
+ }
121
+
122
+ .acfb_admin_templib p{
123
+ font-size: 15px !important;
124
+ font-family: 'Poppins', sans-serif;
125
+ width: 465px !important;
126
+ display: block;
127
+ margin: 5px 0 30px 0 !important;
128
+ text-align: left !important;
129
+ }
130
+
131
+ .acfb_admin_templib_button a{
132
+ background-color: #4dd6be;
133
+ color: #000000;
134
+ font-family: 'Poppins', sans-serif;
135
+ font-weight: 600;
136
+ border-radius: 100px;
137
+ text-transform: uppercase;
138
+ font-size: 16px;
139
+ letter-spacing: 3px;
140
+ padding: 15px 20px;
141
+ text-decoration: none;
142
+ }
143
+
144
+ .acfb_admin_templib_button a:first-child{
145
+ margin-right: 10px;
146
+ }
147
+
148
+ .acfb_admin_templib_button a:hover{
149
+ background-color: #48c9b1;
150
+ }
151
+
152
+
153
+
154
+
155
+ .acfb_button_group_svg{
156
+ width: 20px;
157
+ height: 20px;
158
+ display: flex;
159
  }
admin/class-acf-admin-page.php CHANGED
@@ -27,6 +27,16 @@ class acfb_Settings_Page {
27
  <?php if(acfb_fs()->is_free_plan()){ ?>
28
  <a href="<?php menu_page_url('acf-blocks-pricing'); ?>" class="acfb_admin_button">Upgrade To Pro</a>
29
  <?php } ?>
 
 
 
 
 
 
 
 
 
 
30
  <div class="acfb_admin_call_to">
31
  <div>If you have any questions or suggestion, let us know through <a href="https://twitter.com/acfwpblocks" target="_blank">Twitter</a> or our <a href="https://www.facebook.com/acfwpblocks/" target="_blank">Facebook community </a>. Also, <a href="https://acfblocks.com/subscribe" target="_blank">subscribe to our newsletter</a> if you want to stay up to date with what's new and upcoming at AcfBlocks.
32
  <br>
27
  <?php if(acfb_fs()->is_free_plan()){ ?>
28
  <a href="<?php menu_page_url('acf-blocks-pricing'); ?>" class="acfb_admin_button">Upgrade To Pro</a>
29
  <?php } ?>
30
+
31
+ <div class="acfb_admin_templib">
32
+ <h1>Ready to Use Section Templates</h1>
33
+ <p>We created customizable ready to use sections that you can use to save time creating a beautiful WordPress website fast. We have added these templates to Gutenberg Templates Library, from where you can easily copy & paste these (and many more) Gutenberg template easily.</p>
34
+ <div class="acfb_admin_templib_button">
35
+ <a href="https://templates.gutenberghub.com/?plugin=ACF%20Blocks" target="_blank">Browse Library</a>
36
+ <a href="https://chrome.google.com/webstore/detail/gutenberghub/pkjhekakadbpmpehgkdndgmpepphekbk" target="_blank">Chrome Extension</a>
37
+ </div>
38
+ </div>
39
+
40
  <div class="acfb_admin_call_to">
41
  <div>If you have any questions or suggestion, let us know through <a href="https://twitter.com/acfwpblocks" target="_blank">Twitter</a> or our <a href="https://www.facebook.com/acfwpblocks/" target="_blank">Facebook community </a>. Also, <a href="https://acfblocks.com/subscribe" target="_blank">subscribe to our newsletter</a> if you want to stay up to date with what's new and upcoming at AcfBlocks.
42
  <br>
block-templates/free/acfb-accordion.php CHANGED
@@ -1,4 +1,20 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
  $uid_accordion = str_replace("block","accordion",$uid);
4
 
@@ -14,10 +30,15 @@ if( !empty($block['align']) ) {
14
 
15
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
16
  <style>
 
 
 
 
 
17
  .<?php echo $uid; ?> .acfb_accordion .acfb_accordion_title {
18
  background: <?php the_field('acfb_accordion_title_background'); ?>;
19
  color: <?php the_field('acfb_accordion_title_color'); ?>;
20
- font-size: <?php the_field('acfb_accordion_title_size'); ?>px;
21
  text-align: <?php the_field('acfb_accordion_title_alignment'); ?>;
22
  }
23
 
@@ -29,7 +50,7 @@ if( !empty($block['align']) ) {
29
  .<?php echo $uid; ?> .acfb_accordion .acfb_accordion_content {
30
  background: <?php the_field('acfb_accordion_content_background'); ?>;
31
  color: <?php the_field('acfb_accordion_content_color'); ?>;
32
- font-size: <?php the_field('acfb_accordion_content_size'); ?>px;
33
  }
34
  </style>
35
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_accordion_title_typo'),
7
+ get_field('acfb_accordion_content_content')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_accordion_padding = acfb_padding_name('acfb_accordion_padding');
13
+ $acfb_accordion_margin = acfb_margin_name('acfb_accordion_margin');
14
+ $acfb_accordion_title_typo = acfb_ffaimly_name('acfb_accordion_title_typo');
15
+ $acfb_accordion_content_content = acfb_ffaimly_name('acfb_accordion_content_content');
16
+
17
+
18
  $uid = $block['id'];
19
  $uid_accordion = str_replace("block","accordion",$uid);
20
 
30
 
31
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
32
  <style>
33
+ .<?php echo $uid; ?> {
34
+ <?php echo get_padding_field($acfb_accordion_padding); ?>
35
+ <?php echo get_margin_field($acfb_accordion_margin); ?>
36
+ }
37
+
38
  .<?php echo $uid; ?> .acfb_accordion .acfb_accordion_title {
39
  background: <?php the_field('acfb_accordion_title_background'); ?>;
40
  color: <?php the_field('acfb_accordion_title_color'); ?>;
41
+ <?php echo get_typo_field($acfb_accordion_title_typo); ?>
42
  text-align: <?php the_field('acfb_accordion_title_alignment'); ?>;
43
  }
44
 
50
  .<?php echo $uid; ?> .acfb_accordion .acfb_accordion_content {
51
  background: <?php the_field('acfb_accordion_content_background'); ?>;
52
  color: <?php the_field('acfb_accordion_content_color'); ?>;
53
+ <?php echo get_typo_field($acfb_accordion_content_content); ?>
54
  }
55
  </style>
56
 
block-templates/free/acfb-business-hours.php CHANGED
@@ -1,4 +1,19 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_business_hours';
@@ -12,10 +27,18 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
 
16
  .<?php echo $uid; ?> .acfb_bh_wrapper{
17
  background: <?php the_field('acfb_bh_background_color'); ?>;
18
- padding: <?php the_field('acfb_bh_padding'); ?>px;
 
 
 
19
  }
20
 
21
  .<?php echo $uid; ?> .acfb_bh_wrapper .acfb_bh_op_time .acfb_bh_day,
@@ -34,7 +57,7 @@ if( !empty($block['align']) ) {
34
 
35
  .<?php echo $uid; ?> .acfb_bh_wrapper .acfb_bh_item{
36
  border-bottom: 1px solid <?php the_field('acfb_bh_border_color'); ?>;
37
- font-size: <?php the_field('acfb_bh_font_size'); ?>px;
38
  }
39
 
40
  </style>
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_bh_text_typo')
7
+ )
8
+ );
9
+
10
+
11
+ $acfb_bh_inner_padding = acfb_padding_name('acfb_bh_inner_padding');
12
+ $acfb_bh_padding = acfb_padding_name('acfb_bh_padding');
13
+ $acfb_bh_margin = acfb_margin_name('acfb_bh_margin');
14
+ $acfb_bh_text_typo = acfb_ffaimly_name('acfb_bh_text_typo');
15
+
16
+
17
  $uid = $block['id'];
18
 
19
  $className = 'acfb_business_hours';
27
  ?>
28
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
29
  <style type="text/css">
30
+ .<?php echo $uid; ?> {
31
+ <?php echo get_padding_field($acfb_bh_padding); ?>
32
+ <?php echo get_margin_field($acfb_bh_margin); ?>
33
+ }
34
+
35
 
36
  .<?php echo $uid; ?> .acfb_bh_wrapper{
37
  background: <?php the_field('acfb_bh_background_color'); ?>;
38
+ padding-top: <?php echo $acfb_bh_inner_padding['padding_top']; ?>px;
39
+ padding-bottom: <?php echo $acfb_bh_inner_padding['padding_bottom']; ?>px;
40
+ padding-left: <?php echo $acfb_bh_inner_padding['padding_left']; ?>px;
41
+ padding-right: <?php echo $acfb_bh_inner_padding['padding_right']; ?>px;
42
  }
43
 
44
  .<?php echo $uid; ?> .acfb_bh_wrapper .acfb_bh_op_time .acfb_bh_day,
57
 
58
  .<?php echo $uid; ?> .acfb_bh_wrapper .acfb_bh_item{
59
  border-bottom: 1px solid <?php the_field('acfb_bh_border_color'); ?>;
60
+ <?php echo get_typo_field($acfb_bh_text_typo); ?>
61
  }
62
 
63
  </style>
block-templates/free/acfb-clicktotweet.php CHANGED
@@ -1,4 +1,20 @@
1
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_click_to_tweet_block';
@@ -12,13 +28,22 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_click_to_tweet {
16
  background-color: <?php the_field('acfb_click_to_tweet_bg_color'); ?>;
 
 
 
 
17
  }
18
 
19
  .<?php echo $uid; ?> .acfb_click_to_tweet a {
20
  color: <?php the_field('acfb_click_to_tweet_text_color'); ?> !important;
21
- font-size: <?php the_field('acfb_click_to_tweet_text_size'); ?>px;
22
  }
23
 
24
  .<?php echo $uid; ?> .acfb_click_to_tweet a:hover, .<?php echo $uid; ?> .acfb_click_to_tweet:hover a:after{
@@ -28,7 +53,7 @@ if( !empty($block['align']) ) {
28
  .<?php echo $uid; ?> .acfb_click_to_tweet a:after {
29
  content: '<?php the_field('acfb_click_to_tweet_button_text'); ?>';
30
  color: <?php the_field('acfb_click_to_tweet_button_color'); ?>;
31
- font-size: <?php the_field('acfb_click_to_tweet_button_size'); ?>px;
32
  }
33
 
34
  </style>
1
+ <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_click_to_tweet_text_typo'),
7
+ get_field('acfb_click_to_tweet_button_typo')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_click_to_inner_padding = acfb_padding_name('acfb_click_to_inner_padding');
13
+ $acfb_click_to_tweet_padding = acfb_padding_name('acfb_click_to_tweet_padding');
14
+ $acfb_click_to_tweet_margin = acfb_margin_name('acfb_click_to_tweet_margin');
15
+ $acfb_click_to_tweet_text_typo = acfb_ffaimly_name('acfb_click_to_tweet_text_typo');
16
+ $acfb_click_to_tweet_button_typo = acfb_ffaimly_name('acfb_click_to_tweet_button_typo');
17
+
18
  $uid = $block['id'];
19
 
20
  $className = 'acfb_click_to_tweet_block';
28
  ?>
29
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
30
  <style type="text/css">
31
+ .<?php echo $uid; ?> {
32
+ <?php echo get_padding_field($acfb_click_to_tweet_padding); ?>
33
+ <?php echo get_margin_field($acfb_click_to_tweet_margin); ?>
34
+ }
35
+
36
  .<?php echo $uid; ?> .acfb_click_to_tweet {
37
  background-color: <?php the_field('acfb_click_to_tweet_bg_color'); ?>;
38
+ padding-top: <?php echo $acfb_click_to_inner_padding['padding_top']; ?>px;
39
+ padding-bottom: <?php echo $acfb_click_to_inner_padding['padding_bottom']; ?>px;
40
+ padding-left: <?php echo $acfb_click_to_inner_padding['padding_left']; ?>px;
41
+ padding-right: <?php echo $acfb_click_to_inner_padding['padding_right']; ?>px;
42
  }
43
 
44
  .<?php echo $uid; ?> .acfb_click_to_tweet a {
45
  color: <?php the_field('acfb_click_to_tweet_text_color'); ?> !important;
46
+ <?php echo get_typo_field($acfb_click_to_tweet_text_typo); ?>
47
  }
48
 
49
  .<?php echo $uid; ?> .acfb_click_to_tweet a:hover, .<?php echo $uid; ?> .acfb_click_to_tweet:hover a:after{
53
  .<?php echo $uid; ?> .acfb_click_to_tweet a:after {
54
  content: '<?php the_field('acfb_click_to_tweet_button_text'); ?>';
55
  color: <?php the_field('acfb_click_to_tweet_button_color'); ?>;
56
+ <?php echo get_typo_field($acfb_click_to_tweet_button_typo); ?>
57
  }
58
 
59
  </style>
block-templates/free/acfb-counternumber.php CHANGED
@@ -1,4 +1,20 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_counter_number_block';
@@ -12,14 +28,19 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_counter_number_wrapper{
16
  color: <?php the_field('acfb_counter_number_color'); ?>;
17
- font-size: <?php the_field('acfb_counter_number_size'); ?>px;
18
  }
19
 
20
  .<?php echo $uid; ?> .acfb_counter .acfb_counter_title{
21
  color: <?php the_field('acfb_counter_number_title_color'); ?>;
22
- font-size: <?php the_field('acfb_counter_number_title_size'); ?>px;
23
  }
24
  </style>
25
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_counter_number_typo'),
7
+ get_field('acfb_counter_title_typo')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_counter_number_padding = acfb_padding_name('acfb_counter_number_padding');
13
+ $acfb_counter_number_margin = acfb_margin_name('acfb_counter_number_margin');
14
+ $acfb_counter_number_typo = acfb_ffaimly_name('acfb_counter_number_typo');
15
+ $acfb_counter_title_typo = acfb_ffaimly_name('acfb_counter_title_typo');
16
+
17
+
18
  $uid = $block['id'];
19
 
20
  $className = 'acfb_counter_number_block';
28
  ?>
29
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
30
  <style type="text/css">
31
+ .<?php echo $uid; ?> {
32
+ <?php echo get_padding_field($acfb_counter_number_padding); ?>
33
+ <?php echo get_margin_field($acfb_counter_number_margin); ?>
34
+ }
35
+
36
  .<?php echo $uid; ?> .acfb_counter_number_wrapper{
37
  color: <?php the_field('acfb_counter_number_color'); ?>;
38
+ <?php echo get_typo_field($acfb_counter_number_typo); ?>
39
  }
40
 
41
  .<?php echo $uid; ?> .acfb_counter .acfb_counter_title{
42
  color: <?php the_field('acfb_counter_number_title_color'); ?>;
43
+ <?php echo get_typo_field($acfb_counter_title_typo); ?>
44
  }
45
  </style>
46
 
block-templates/free/acfb-dual-button.php DELETED
@@ -1,111 +0,0 @@
1
- <?php
2
- $uid = $block['id'];
3
-
4
- $className = 'acfb_dual_button_block';
5
- if( !empty($block['className']) ) {
6
- $className .= ' ' . $block['className'];
7
- }
8
- if( !empty($block['align']) ) {
9
- $className .= ' align' . $block['align'];
10
- }
11
-
12
- $acfb_db_radius = get_field('acfb_db_radius');
13
- $acfb_db_bc_box_shadow = get_field('acfb_db_bc_box_shadow');
14
-
15
- ?>
16
- <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
17
- <style type="text/css">
18
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_one{
19
- background: <?php the_field('acfb_db_lb_bg_color'); ?>;
20
- }
21
-
22
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_one:hover{
23
- background: <?php the_field('acfb_db_lb_hover_bg_color'); ?>;
24
- }
25
-
26
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_one .acfb_db{
27
- color: <?php the_field('acfb_db_lb_color'); ?>;
28
- }
29
-
30
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_one .acfb_db:hover{
31
- color: <?php the_field('acfb_db_lb_hover_color'); ?>;
32
- }
33
-
34
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_two{
35
- background: <?php the_field('acfb_db_rb_bg_color'); ?>;
36
- }
37
-
38
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_two:hover{
39
- background: <?php the_field('acfb_db_rb_hover_bg_color'); ?>;
40
- }
41
-
42
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_two .acfb_db{
43
- color: <?php the_field('acfb_db_rb_color'); ?>;
44
- }
45
-
46
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_two .acfb_db:hover{
47
- color: <?php the_field('acfb_db_rb_hover_color'); ?>;
48
- }
49
-
50
-
51
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db{
52
- font-size: <?php the_field('acfb_db_button_text_size'); ?>px;
53
- }
54
-
55
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_seprator{
56
- background: <?php the_field('acfb_db_bc_bg_color'); ?>;
57
- <?php if(get_field('acfb_db_bc_img_text') == 'acfb_db_bc_text'): ?>
58
- color: <?php the_field('acfb_db_bc_text_color'); ?>;
59
- <?php endif; ?>
60
- border-radius: <?php the_field('acfb_db_bc_radius'); ?>%;
61
- box-shadow: <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_horizontal']; ?>px <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_vertical']; ?>px <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_blur']; ?>px <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_spread']; ?>px <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_color']; ?> <?php if($acfb_db_bc_box_shadow['acfb_db_bc_shadow_position'] == 'inset'): ?> <?php echo $acfb_db_bc_box_shadow['acfb_db_bc_shadow_position']; ?><?php endif; ?>;
62
- }
63
-
64
-
65
- .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_one, .<?php echo $uid; ?> .acfb_db_wrapper .acfb_db_two{
66
- border-top-left-radius: <?php echo $acfb_db_radius['acfb_db_tl_radius']; ?>px;
67
- border-top-right-radius: <?php echo $acfb_db_radius['acfb_db_tr_radius']; ?>px;
68
- border-bottom-left-radius: <?php echo $acfb_db_radius['acfb_db_bl_radius']; ?>px;
69
- border-bottom-right-radius: <?php echo $acfb_db_radius['acfb_db_br_radius']; ?>px;
70
- }
71
-
72
- </style>
73
-
74
- <?php
75
- $acfb_image = '';
76
- if(!get_field('acfb_db_bc_img')){
77
- $acfb_image = plugins_url() . '/acf-blocks/img/placeholder-image.jpg';
78
- } else{
79
- $acfb_image = get_field('acfb_db_bc_img');
80
- }
81
-
82
- $acfb_db_bc_img_text = "";
83
- if(get_field('acfb_db_bc_img_text') == 'acfb_db_bc_img'){
84
- $acfb_db_bc_img_text = '<img src="' . $acfb_image . '">';
85
- } else{
86
- $acfb_db_bc_img_text = get_field('acfb_db_bc_text');
87
- }
88
-
89
- ?>
90
-
91
- <div class="acfb_db_wrapper">
92
-
93
- <div class="acfb_db_one">
94
- <a class="acfb_db" href="<?php the_field('acfb_db_lb_url'); ?>">
95
- <span class="btn-text"><?php the_field('acfb_db_lb_text'); ?></span>
96
- </a>
97
- <?php if(get_field('acfb_db_bc') == 'true'): ?>
98
- <div class="acfb_db_seprator"><span><?php echo $acfb_db_bc_img_text; ?></span></div>
99
- <?php endif; ?>
100
- </div>
101
-
102
- <div class="acfb_db_two">
103
- <a class="acfb_db" href="<?php the_field('acfb_db_rb_url'); ?>">
104
- <span class="btn-text"><?php the_field('acfb_db_rb_text'); ?></span>
105
- </a>
106
- </div>
107
-
108
- </div>
109
-
110
-
111
- </div><!-- Uid -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
block-templates/free/acfb-image-slider.php CHANGED
@@ -1,4 +1,18 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
  $acfb_slider_images = get_field('acfb_slider_images');
4
  $acfb_slide_placeholder = plugins_url() . '/acf-blocks/img/placeholder-image.jpg';
@@ -15,6 +29,12 @@ if( !empty($block['align']) ) {
15
 
16
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
17
  <style type="text/css">
 
 
 
 
 
 
18
  .<?php echo $uid; ?> .swiper-container .swiper-wrapper .swiper-slide{
19
  <?php if(get_field('acfb_slider_caption') == 'true'): ?>
20
  display: flex;
@@ -25,7 +45,7 @@ if( !empty($block['align']) ) {
25
 
26
  .<?php echo $uid; ?> .swiper-container .swiper-wrapper .swiper-slide .acfb_caption{
27
  background-color: <?php the_field("acfb_slider_caption_background"); ?>;
28
- font-size: <?php the_field("acfb_slider_caption_size"); ?>px;
29
  color: <?php the_field("acfb_slider_caption_color"); ?>;
30
  align-self: <?php the_field("acfb_slider_caption_vertical_position"); ?>;
31
  }
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_slider_caption_typo')
7
+ )
8
+ );
9
+
10
+
11
+ $acfb_slider_padding = acfb_padding_name('acfb_slider_padding');
12
+ $acfb_slider_margin = acfb_margin_name('acfb_slider_margin');
13
+ $acfb_slider_caption_typo = acfb_ffaimly_name('acfb_slider_caption_typo');
14
+
15
+
16
  $uid = $block['id'];
17
  $acfb_slider_images = get_field('acfb_slider_images');
18
  $acfb_slide_placeholder = plugins_url() . '/acf-blocks/img/placeholder-image.jpg';
29
 
30
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
31
  <style type="text/css">
32
+ .<?php echo $uid; ?> {
33
+ <?php echo get_padding_field($acfb_slider_padding); ?>
34
+ <?php echo get_margin_field($acfb_slider_margin); ?>
35
+ }
36
+
37
+
38
  .<?php echo $uid; ?> .swiper-container .swiper-wrapper .swiper-slide{
39
  <?php if(get_field('acfb_slider_caption') == 'true'): ?>
40
  display: flex;
45
 
46
  .<?php echo $uid; ?> .swiper-container .swiper-wrapper .swiper-slide .acfb_caption{
47
  background-color: <?php the_field("acfb_slider_caption_background"); ?>;
48
+ <?php echo get_typo_field($acfb_slider_caption_typo); ?>
49
  color: <?php the_field("acfb_slider_caption_color"); ?>;
50
  align-self: <?php the_field("acfb_slider_caption_vertical_position"); ?>;
51
  }
block-templates/free/acfb-multibuttons.php CHANGED
@@ -1,4 +1,19 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_multibuttons_block';
@@ -12,14 +27,23 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_multibuttons_wrap {
16
  justify-content: <?php the_field('acfb_multibutton_alignment'); ?>;
17
  }
18
 
19
  .<?php echo $uid; ?> .acfb_multibuttons_wrap .acfb_button{
20
- font-size: <?php the_field('acfb_multibutton_text_size'); ?>px;
21
  border-radius: <?php the_field('acfb_multibutton_border_radius'); ?>px;
22
  margin-right: <?php the_field('acfb_multibutton_gutter_space'); ?>px;
 
 
 
 
23
  }
24
  </style>
25
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_multibutton_text_typo')
7
+ )
8
+ );
9
+
10
+
11
+ $acfb_multibutton_button_padding = acfb_padding_name('acfb_multibutton_button_padding');
12
+ $acfb_multibutton_padding = acfb_padding_name('acfb_multibutton_padding');
13
+ $acfb_multibutton_margin = acfb_margin_name('acfb_multibutton_margin');
14
+ $acfb_multibutton_text_typo = acfb_ffaimly_name('acfb_multibutton_text_typo');
15
+
16
+
17
  $uid = $block['id'];
18
 
19
  $className = 'acfb_multibuttons_block';
27
  ?>
28
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
29
  <style type="text/css">
30
+ .<?php echo $uid; ?> {
31
+ <?php echo get_padding_field($acfb_multibutton_padding); ?>
32
+ <?php echo get_margin_field($acfb_multibutton_margin); ?>
33
+ }
34
+
35
  .<?php echo $uid; ?> .acfb_multibuttons_wrap {
36
  justify-content: <?php the_field('acfb_multibutton_alignment'); ?>;
37
  }
38
 
39
  .<?php echo $uid; ?> .acfb_multibuttons_wrap .acfb_button{
40
+ <?php echo get_typo_field($acfb_multibutton_text_typo); ?>
41
  border-radius: <?php the_field('acfb_multibutton_border_radius'); ?>px;
42
  margin-right: <?php the_field('acfb_multibutton_gutter_space'); ?>px;
43
+ padding-top: <?php echo $acfb_multibutton_button_padding['padding_top']; ?>px;
44
+ padding-bottom: <?php echo $acfb_multibutton_button_padding['padding_bottom']; ?>px;
45
+ padding-left: <?php echo $acfb_multibutton_button_padding['padding_left']; ?>px;
46
+ padding-right: <?php echo $acfb_multibutton_button_padding['padding_right']; ?>px;
47
  }
48
  </style>
49
 
block-templates/free/acfb-photocollage.php CHANGED
@@ -1,4 +1,7 @@
1
  <?php
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_photo_collage_block';
@@ -45,7 +48,12 @@ if ( $images_field && count($images_field) > 3 ) {
45
 
46
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
47
  <style type="text/css">
48
-
 
 
 
 
 
49
  .<?php echo $uid; ?> .acfb_photo_collage{
50
  width: <?php the_field('acfb_photo_collage_layout_width'); ?>%;
51
  height: <?php the_field('acfb_photo_collage_layout_height'); ?>px;
1
  <?php
2
+ $acfb_photo_collage_padding = acfb_padding_name('acfb_photo_collage_padding');
3
+ $acfb_photo_collage_margin = acfb_margin_name('acfb_photo_collage_margin');
4
+
5
  $uid = $block['id'];
6
 
7
  $className = 'acfb_photo_collage_block';
48
 
49
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
50
  <style type="text/css">
51
+ .<?php echo $uid; ?>{
52
+ <?php echo get_padding_field($acfb_photo_collage_padding); ?>
53
+ <?php echo get_margin_field($acfb_photo_collage_margin); ?>
54
+ }
55
+
56
+
57
  .<?php echo $uid; ?> .acfb_photo_collage{
58
  width: <?php the_field('acfb_photo_collage_layout_width'); ?>%;
59
  height: <?php the_field('acfb_photo_collage_layout_height'); ?>px;
block-templates/free/acfb-posts.php CHANGED
@@ -1,4 +1,24 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_posts_block';
@@ -21,15 +41,24 @@ $acfb_post_excerpt_length = get_field('acfb_post_excerpt_length');
21
  $acfb_post_title_html_tag = get_field('acfb_post_title_html_tag');
22
  ?>
23
  <style type="text/css">
 
 
 
 
 
24
  .<?php echo $uid; ?> .acfb_post {
25
  background: <?php the_field('acfb_post_background_color'); ?>;
26
  }
27
 
28
- <?php if( get_field('acfb_post_title_custom_styles') == '1' ): ?>
 
 
 
 
 
 
29
  .<?php echo $uid; ?> .acfb_post .acfb_post_title a{
30
  color: <?php the_field('acfb_post_title_color'); ?> !important;
31
- font-size: <?php the_field('acfb_post_title_size'); ?>px;
32
- text-decoration: none;
33
  }
34
 
35
  .<?php echo $uid; ?> .acfb_post .acfb_post_title a:hover{
@@ -37,26 +66,46 @@ $acfb_post_title_html_tag = get_field('acfb_post_title_html_tag');
37
  }
38
  <?php endif; ?>
39
 
40
- <?php if( get_field('acfb_post_meta_custom_styles') == '1' ): ?>
 
 
 
 
 
 
 
41
  .<?php echo $uid; ?> .acfb_post .acfb_post_meta{
42
  color: <?php the_field('acfb_post_meta_color'); ?>;
43
- font-size: <?php the_field('acfb_post_meta_size'); ?>px;
44
  }
45
  <?php endif; ?>
46
 
47
- <?php if( get_field('acfb_post_excerpt_custom_styles') == '1' ): ?>
 
 
 
 
 
 
48
  .<?php echo $uid; ?> .acfb_post .acfb_post_excerpt{
49
  color: <?php the_field('acfb_post_excerpt_color'); ?>;
50
- font-size: <?php the_field('acfb_post_excerpt_size'); ?>px;
51
  }
52
  <?php endif; ?>
53
 
54
- <?php if( get_field('acfb_post_button_custom_styles') == '1' ): ?>
 
 
 
 
 
 
 
55
  .<?php echo $uid; ?> .acfb_post .acfb_post_button a{
56
  background-color: <?php the_field('acfb_post_button_background_color'); ?>;
57
  color: <?php the_field('acfb_post_button_text_color'); ?> !important;
58
- font-size: <?php the_field('acfb_post_button_size'); ?>px;
59
- padding: 10px;
 
 
60
  }
61
 
62
  .<?php echo $uid; ?> .acfb_post .acfb_post_button a:hover{
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_post_title_typo'),
7
+ get_field('acfb_post_meta_typo'),
8
+ get_field('acfb_post_excerpt_typo'),
9
+ get_field('acfb_post_button_typo')
10
+ )
11
+ );
12
+
13
+ $acfb_post_button_padding = acfb_padding_name('acfb_post_button_padding');
14
+ $acfb_post_padding = acfb_padding_name('acfb_post_padding');
15
+ $acfb_post_margin = acfb_margin_name('acfb_post_margin');
16
+ $acfb_post_title_typo = acfb_ffaimly_name('acfb_post_title_typo');
17
+ $acfb_post_meta_typo = acfb_ffaimly_name('acfb_post_meta_typo');
18
+ $acfb_post_excerpt_typo = acfb_ffaimly_name('acfb_post_excerpt_typo');
19
+ $acfb_post_button_typo = acfb_ffaimly_name('acfb_post_button_typo');
20
+
21
+
22
  $uid = $block['id'];
23
 
24
  $className = 'acfb_posts_block';
41
  $acfb_post_title_html_tag = get_field('acfb_post_title_html_tag');
42
  ?>
43
  <style type="text/css">
44
+ .<?php echo $uid; ?> {
45
+ <?php echo get_padding_field($acfb_post_padding); ?>
46
+ <?php echo get_margin_field($acfb_post_margin); ?>
47
+ }
48
+
49
  .<?php echo $uid; ?> .acfb_post {
50
  background: <?php the_field('acfb_post_background_color'); ?>;
51
  }
52
 
53
+ <?php if( get_field('acfb_post_title_custom_typography') == '1' ): ?>
54
+ .<?php echo $uid; ?> .acfb_post .acfb_post_title a{
55
+ <?php echo get_typo_field($acfb_post_title_typo); ?>
56
+ }
57
+ <?php endif; ?>
58
+
59
+ <?php if( get_field('acfb_post_title_custom_color') == '1' ): ?>
60
  .<?php echo $uid; ?> .acfb_post .acfb_post_title a{
61
  color: <?php the_field('acfb_post_title_color'); ?> !important;
 
 
62
  }
63
 
64
  .<?php echo $uid; ?> .acfb_post .acfb_post_title a:hover{
66
  }
67
  <?php endif; ?>
68
 
69
+
70
+ <?php if( get_field('acfb_post_meta_custom_typography') == '1' ): ?>
71
+ .<?php echo $uid; ?> .acfb_post .acfb_post_meta{
72
+ <?php echo get_typo_field($acfb_post_meta_typo); ?>
73
+ }
74
+ <?php endif; ?>
75
+
76
+ <?php if( get_field('acfb_post_meta_custom_color') == '1' ): ?>
77
  .<?php echo $uid; ?> .acfb_post .acfb_post_meta{
78
  color: <?php the_field('acfb_post_meta_color'); ?>;
 
79
  }
80
  <?php endif; ?>
81
 
82
+ <?php if( get_field('acfb_post_excerpt_custom_typography') == '1' ): ?>
83
+ .<?php echo $uid; ?> .acfb_post .acfb_post_excerpt{
84
+ <?php echo get_typo_field($acfb_post_excerpt_typo); ?>
85
+ }
86
+ <?php endif; ?>
87
+
88
+ <?php if( get_field('acfb_post_excerpt_custom_color') == '1' ): ?>
89
  .<?php echo $uid; ?> .acfb_post .acfb_post_excerpt{
90
  color: <?php the_field('acfb_post_excerpt_color'); ?>;
 
91
  }
92
  <?php endif; ?>
93
 
94
+
95
+ <?php if( get_field('acfb_post_button_custom_typography') == '1' ): ?>
96
+ .<?php echo $uid; ?> .acfb_post .acfb_post_button a{
97
+ <?php echo get_typo_field($acfb_post_button_typo); ?>
98
+ }
99
+ <?php endif; ?>
100
+
101
+ <?php if( get_field('acfb_post_button_custom_color') == '1' ): ?>
102
  .<?php echo $uid; ?> .acfb_post .acfb_post_button a{
103
  background-color: <?php the_field('acfb_post_button_background_color'); ?>;
104
  color: <?php the_field('acfb_post_button_text_color'); ?> !important;
105
+ padding-top: <?php echo $acfb_post_button_padding['padding_top']; ?>px;
106
+ padding-bottom: <?php echo $acfb_post_button_padding['padding_bottom']; ?>px;
107
+ padding-left: <?php echo $acfb_post_button_padding['padding_left']; ?>px;
108
+ padding-right: <?php echo $acfb_post_button_padding['padding_right']; ?>px;
109
  }
110
 
111
  .<?php echo $uid; ?> .acfb_post .acfb_post_button a:hover{
block-templates/free/acfb-pricelist.php CHANGED
@@ -1,4 +1,19 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_price_list_block';
@@ -12,6 +27,11 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  <?php if(get_field('acfb_price_list_image_position') == 'acfb_price_list_image_top'): ?>
16
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item{
17
  grid-template-areas: 'acfbPli' 'acfbPlt';
@@ -52,7 +72,7 @@ if( !empty($block['align']) ) {
52
 
53
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text .acfb_price_list_header{
54
  color: <?php the_field('acfb_price_list_title_&_price_color'); ?>;
55
- font-size: <?php the_field('acfb_price_list_title_&_price_size'); ?>px;
56
  }
57
 
58
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text .acfb_price_list_header .acfb_price_list_separator {
@@ -64,7 +84,7 @@ if( !empty($block['align']) ) {
64
 
65
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text p.acfb_price_list_description {
66
  color: <?php the_field('acfb_price_list_description_color'); ?>;
67
- font-size: <?php the_field('acfb_price_list_description_size'); ?>px;
68
  }
69
 
70
  </style>
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_price_list_title_typo'),
7
+ get_field('acfb_price_list_description_typo')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_price_list_padding = acfb_padding_name('acfb_price_list_padding');
13
+ $acfb_price_list_margin = acfb_margin_name('acfb_price_list_margin');
14
+ $acfb_price_list_title_typo = acfb_ffaimly_name('acfb_price_list_title_typo');
15
+ $acfb_price_list_description_typo = acfb_ffaimly_name('acfb_price_list_description_typo');
16
+
17
  $uid = $block['id'];
18
 
19
  $className = 'acfb_price_list_block';
27
  ?>
28
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
29
  <style type="text/css">
30
+ .<?php echo $uid; ?> {
31
+ <?php echo get_padding_field($acfb_price_list_padding); ?>
32
+ <?php echo get_margin_field($acfb_price_list_margin); ?>
33
+ }
34
+
35
  <?php if(get_field('acfb_price_list_image_position') == 'acfb_price_list_image_top'): ?>
36
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item{
37
  grid-template-areas: 'acfbPli' 'acfbPlt';
72
 
73
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text .acfb_price_list_header{
74
  color: <?php the_field('acfb_price_list_title_&_price_color'); ?>;
75
+ <?php echo get_typo_field($acfb_price_list_title_typo); ?>
76
  }
77
 
78
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text .acfb_price_list_header .acfb_price_list_separator {
84
 
85
  .<?php echo $uid; ?> .acfb_price_list_wrap .acfb_price_list_item .acfb_price_list_text p.acfb_price_list_description {
86
  color: <?php the_field('acfb_price_list_description_color'); ?>;
87
+ <?php echo get_typo_field($acfb_price_list_description_typo); ?>
88
  }
89
 
90
  </style>
block-templates/free/acfb-pricingbox.php CHANGED
@@ -1,4 +1,32 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_pricing_table_block';
@@ -12,8 +40,17 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_pricing_table_wrap{
16
  background-color: <?php the_field('acfb_pricingbox_background_color'); ?>;
 
 
 
 
17
  }
18
 
19
  .<?php echo $uid; ?> .acfb_pricing_table_wrap img{
@@ -22,33 +59,37 @@ if( !empty($block['align']) ) {
22
 
23
  .<?php echo $uid; ?> h3.acfb_pricing_box_title{
24
  color: <?php the_field('acfb_pricingbox_title_color'); ?>;
25
- font-size: <?php the_field('acfb_pricingbox_title_size'); ?>px;
26
  }
27
 
28
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price_prefix{
29
  color: <?php the_field('acfb_pricingbox_prefix_color'); ?>;
30
- font-size: <?php the_field('acfb_pricingbox_prefix_size'); ?>px;
31
  }
32
 
33
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price{
34
  color: <?php the_field('acfb_pricingbox_price_color'); ?>;
35
- font-size: <?php the_field('acfb_pricingbox_price_size'); ?>px;
36
  }
37
 
38
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price_suffix{
39
  color: <?php the_field('acfb_pricingbox_suffix_color'); ?>;
40
- font-size: <?php the_field('acfb_pricingbox_suffix_size'); ?>px;
41
  }
42
 
43
  .<?php echo $uid; ?> .acfb_pricing_box_subprice{
44
  color: <?php the_field('acfb_pricingbox_subtext_color'); ?>;
45
- font-size: <?php the_field('acfb_pricingbox_subtext_size'); ?>px;
46
  }
47
 
48
  .<?php echo $uid; ?> .acfb_pricing_box_button a{
49
  background-color: <?php the_field('acfb_pricingbox_button_background_color'); ?>;
50
  color: <?php the_field('acfb_pricingbox_button_text_color'); ?> !important;
51
- font-size: <?php the_field('acfb_pricingbox_button_size'); ?>px;
 
 
 
 
52
  }
53
 
54
  .<?php echo $uid; ?> .acfb_pricing_box_button a:hover{
@@ -56,9 +97,9 @@ if( !empty($block['align']) ) {
56
  color: <?php the_field('acfb_pricingbox_button_text_hover_color'); ?> !important;
57
  }
58
 
59
- .<?php echo $uid; ?> .acfb_pricing_box_description{
60
  color: <?php the_field('acfb_pricingbox_description_color'); ?>;
61
- font-size: <?php the_field('acfb_pricingbox_description_size'); ?>px;
62
  }
63
  </style>
64
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_pricingbox_title_typo'),
7
+ get_field('acfb_pricingbox_prefix_typo'),
8
+ get_field('acfb_pricingbox_price_typo'),
9
+ get_field('acfb_pricingbox_suffix_typo'),
10
+ get_field('acfb_pricingbox_subtext_typo'),
11
+ get_field('acfb_pricingbox_button_typo'),
12
+ get_field('acfb_pricingbox_description_typo')
13
+ )
14
+ );
15
+
16
+
17
+ $acfb_pricingbox_inner_padding = acfb_padding_name('acfb_pricingbox_inner_padding');
18
+ $acfb_pricingbox_inner_button_padding = acfb_padding_name('acfb_pricingbox_inner_button_padding');
19
+ $acfb_pricingbox_padding = acfb_padding_name('acfb_pricingbox_padding');
20
+ $acfb_pricingbox_margin = acfb_margin_name('acfb_pricingbox_margin');
21
+ $acfb_pricingbox_title_typo = acfb_ffaimly_name('acfb_pricingbox_title_typo');
22
+ $acfb_pricingbox_prefix_typo = acfb_ffaimly_name('acfb_pricingbox_prefix_typo');
23
+ $acfb_pricingbox_price_typo = acfb_ffaimly_name('acfb_pricingbox_price_typo');
24
+ $acfb_pricingbox_suffix_typo = acfb_ffaimly_name('acfb_pricingbox_suffix_typo');
25
+ $acfb_pricingbox_subtext_typo = acfb_ffaimly_name('acfb_pricingbox_subtext_typo');
26
+ $acfb_pricingbox_button_typo = acfb_ffaimly_name('acfb_pricingbox_button_typo');
27
+ $acfb_pricingbox_description_typo = acfb_ffaimly_name('acfb_pricingbox_description_typo');
28
+
29
+
30
  $uid = $block['id'];
31
 
32
  $className = 'acfb_pricing_table_block';
40
  ?>
41
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
42
  <style type="text/css">
43
+ .<?php echo $uid; ?> {
44
+ <?php echo get_padding_field($acfb_pricingbox_padding); ?>
45
+ <?php echo get_margin_field($acfb_pricingbox_margin); ?>
46
+ }
47
+
48
  .<?php echo $uid; ?> .acfb_pricing_table_wrap{
49
  background-color: <?php the_field('acfb_pricingbox_background_color'); ?>;
50
+ padding-top: <?php echo $acfb_pricingbox_inner_padding['padding_top']; ?>px;
51
+ padding-bottom: <?php echo $acfb_pricingbox_inner_padding['padding_bottom']; ?>px;
52
+ padding-left: <?php echo $acfb_pricingbox_inner_padding['padding_left']; ?>px;
53
+ padding-right: <?php echo $acfb_pricingbox_inner_padding['padding_right']; ?>px;
54
  }
55
 
56
  .<?php echo $uid; ?> .acfb_pricing_table_wrap img{
59
 
60
  .<?php echo $uid; ?> h3.acfb_pricing_box_title{
61
  color: <?php the_field('acfb_pricingbox_title_color'); ?>;
62
+ <?php echo get_typo_field($acfb_pricingbox_title_typo); ?>
63
  }
64
 
65
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price_prefix{
66
  color: <?php the_field('acfb_pricingbox_prefix_color'); ?>;
67
+ <?php echo get_typo_field($acfb_pricingbox_prefix_typo); ?>
68
  }
69
 
70
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price{
71
  color: <?php the_field('acfb_pricingbox_price_color'); ?>;
72
+ <?php echo get_typo_field($acfb_pricingbox_price_typo); ?>
73
  }
74
 
75
  .<?php echo $uid; ?> .acfb_pricing_box_price_line .acfb_pricing_box_price_suffix{
76
  color: <?php the_field('acfb_pricingbox_suffix_color'); ?>;
77
+ <?php echo get_typo_field($acfb_pricingbox_suffix_typo); ?>
78
  }
79
 
80
  .<?php echo $uid; ?> .acfb_pricing_box_subprice{
81
  color: <?php the_field('acfb_pricingbox_subtext_color'); ?>;
82
+ <?php echo get_typo_field($acfb_pricingbox_subtext_typo); ?>
83
  }
84
 
85
  .<?php echo $uid; ?> .acfb_pricing_box_button a{
86
  background-color: <?php the_field('acfb_pricingbox_button_background_color'); ?>;
87
  color: <?php the_field('acfb_pricingbox_button_text_color'); ?> !important;
88
+ <?php echo get_typo_field($acfb_pricingbox_button_typo); ?>
89
+ padding-top: <?php echo $acfb_pricingbox_inner_button_padding['padding_top']; ?>px;
90
+ padding-bottom: <?php echo $acfb_pricingbox_inner_button_padding['padding_bottom']; ?>px;
91
+ padding-left: <?php echo $acfb_pricingbox_inner_button_padding['padding_left']; ?>px;
92
+ padding-right: <?php echo $acfb_pricingbox_inner_button_padding['padding_right']; ?>px;
93
  }
94
 
95
  .<?php echo $uid; ?> .acfb_pricing_box_button a:hover{
97
  color: <?php the_field('acfb_pricingbox_button_text_hover_color'); ?> !important;
98
  }
99
 
100
+ .<?php echo $uid; ?> .acfb_pricing_table_wrap .acfb_pricing_box_description{
101
  color: <?php the_field('acfb_pricingbox_description_color'); ?>;
102
+ <?php echo get_typo_field($acfb_pricingbox_description_typo); ?>
103
  }
104
  </style>
105
 
block-templates/free/acfb-progressbar.php CHANGED
@@ -1,4 +1,20 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_progress_bar_block';
@@ -12,6 +28,11 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_inner_wrap{
16
  background-color: <?php the_field('acfb_progressbar_unactive_bg_color'); ?>;
17
  color: <?php the_field('acfb_progressbar_text_color'); ?>;
@@ -19,12 +40,12 @@ if( !empty($block['align']) ) {
19
 
20
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_progress_bar_title{
21
  color: <?php the_field('acfb_progressbar_title_color'); ?>;
22
- font-size: <?php the_field('acfb_progressbar_title_size'); ?>px;
23
  }
24
 
25
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_progress_bar{
26
  background-color: <?php the_field('acfb_progressbar_bg_color'); ?>;
27
- font-size: <?php the_field('acfb_progressbar_text_size'); ?>px;
28
  }
29
  </style>
30
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_progressbar_text_typo'),
7
+ get_field('acfb_progressbar_title_typo')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_progressbar_padding = acfb_padding_name('acfb_progressbar_padding');
13
+ $acfb_progressbar_margin = acfb_margin_name('acfb_progressbar_margin');
14
+ $acfb_progressbar_text_typo = acfb_ffaimly_name('acfb_progressbar_text_typo');
15
+ $acfb_progressbar_title_typo = acfb_ffaimly_name('acfb_progressbar_title_typo');
16
+
17
+
18
  $uid = $block['id'];
19
 
20
  $className = 'acfb_progress_bar_block';
28
  ?>
29
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
30
  <style type="text/css">
31
+ .<?php echo $uid; ?> {
32
+ <?php echo get_padding_field($acfb_progressbar_padding); ?>
33
+ <?php echo get_margin_field($acfb_progressbar_margin); ?>
34
+ }
35
+
36
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_inner_wrap{
37
  background-color: <?php the_field('acfb_progressbar_unactive_bg_color'); ?>;
38
  color: <?php the_field('acfb_progressbar_text_color'); ?>;
40
 
41
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_progress_bar_title{
42
  color: <?php the_field('acfb_progressbar_title_color'); ?>;
43
+ <?php echo get_typo_field($acfb_progressbar_title_typo); ?>
44
  }
45
 
46
  .<?php echo $uid; ?> .acfb_progress_wrapper .acfb_progress_bar{
47
  background-color: <?php the_field('acfb_progressbar_bg_color'); ?>;
48
+ <?php echo get_typo_field($acfb_progressbar_text_typo); ?>
49
  }
50
  </style>
51
 
block-templates/free/acfb-scrollable-image.php CHANGED
@@ -1,4 +1,7 @@
1
  <?php
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_scrollable_image_block';
@@ -12,6 +15,11 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_scrollable_image{
16
  min-height: <?php the_field('acfb_scrollable_image_height'); ?>px;
17
  }
1
  <?php
2
+ $acfb_scrollable_image_padding = acfb_padding_name('acfb_scrollable_image_padding');
3
+ $acfb_scrollable_image_margin = acfb_margin_name('acfb_scrollable_image_margin');
4
+
5
  $uid = $block['id'];
6
 
7
  $className = 'acfb_scrollable_image_block';
15
  ?>
16
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
17
  <style type="text/css">
18
+ .<?php echo $uid; ?>{
19
+ <?php echo get_padding_field($acfb_scrollable_image_padding); ?>
20
+ <?php echo get_margin_field($acfb_scrollable_image_margin); ?>
21
+ }
22
+
23
  .<?php echo $uid; ?> .acfb_scrollable_image{
24
  min-height: <?php the_field('acfb_scrollable_image_height'); ?>px;
25
  }
block-templates/free/acfb-socialsharing.php CHANGED
@@ -1,4 +1,19 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
  $acfb_permalink = get_permalink();
4
  $acfb_pagetitle = get_the_title();
@@ -31,9 +46,21 @@
31
 
32
 
33
  <style>
 
 
 
 
 
34
  .<?php echo $uid; ?> a.acfb_btn_styling {
 
35
  border-radius: <?php the_field("acfb_rounded_corners"); ?>% !important;
36
  background-color:<?php the_field("acfb_background_color"); ?> !important;
 
 
 
 
 
 
37
  }
38
 
39
  .<?php echo $uid; ?> a > span {
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_social_button_text_typo')
7
+ )
8
+ );
9
+
10
+
11
+ $acfb_social_button_padding = acfb_padding_name('acfb_social_button_padding');
12
+ $acfb_social_button_inner_padding = acfb_padding_name('acfb_social_button_inner_padding');
13
+ $acfb_social_button_margin = acfb_margin_name('acfb_social_button_margin');
14
+ $acfb_social_button_text_typo = acfb_ffaimly_name('acfb_social_button_text_typo');
15
+
16
+
17
  $uid = $block['id'];
18
  $acfb_permalink = get_permalink();
19
  $acfb_pagetitle = get_the_title();
46
 
47
 
48
  <style>
49
+ .<?php echo $uid; ?>{
50
+ <?php echo get_padding_field($acfb_social_button_padding); ?>
51
+ <?php echo get_margin_field($acfb_social_button_margin); ?>
52
+ }
53
+
54
  .<?php echo $uid; ?> a.acfb_btn_styling {
55
+ <?php echo get_typo_field($acfb_social_button_text_typo); ?>
56
  border-radius: <?php the_field("acfb_rounded_corners"); ?>% !important;
57
  background-color:<?php the_field("acfb_background_color"); ?> !important;
58
+
59
+ padding-top: <?php echo $acfb_social_button_inner_padding['padding_top']; ?>px;
60
+ padding-bottom: <?php echo $acfb_social_button_inner_padding['padding_bottom']; ?>px;
61
+ padding-left: <?php echo $acfb_social_button_inner_padding['padding_left']; ?>px;
62
+ padding-right: <?php echo $acfb_social_button_inner_padding['padding_right']; ?>px;
63
+
64
  }
65
 
66
  .<?php echo $uid; ?> a > span {
block-templates/free/acfb-starrating.php CHANGED
@@ -1,4 +1,18 @@
1
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_star_rating_block';
@@ -12,12 +26,17 @@ if( !empty($block['align']) ) {
12
  ?>
13
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
14
  <style type="text/css">
 
 
 
 
 
15
  .<?php echo $uid; ?> .acfb_star_rating{
16
  justify-content: <?php the_field('acfb_rating_alignment'); ?>;
17
  }
18
 
19
  .<?php echo $uid; ?> .acfb_star_rating .acfb_before{
20
- font-size: <?php the_field('acfb_rating_before_text_size'); ?>px;
21
  color: <?php the_field('acfb_rating_before_text_color'); ?>;
22
  margin-right: <?php the_field('acfb_rating_before_text_gap'); ?>px;
23
  }
1
+ <?php
2
+
3
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
4
+
5
+ echo parse_link(
6
+ array(
7
+ get_field('acfb_rating_before_text_typo')
8
+ )
9
+ );
10
+
11
+ $acfb_rating_padding = acfb_padding_name('acfb_rating_padding');
12
+ $acfb_rating_margin = acfb_margin_name('acfb_rating_margin');
13
+ $acfb_rating_before_text_typo = acfb_ffaimly_name('acfb_rating_before_text_typo');
14
+
15
+
16
  $uid = $block['id'];
17
 
18
  $className = 'acfb_star_rating_block';
26
  ?>
27
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
28
  <style type="text/css">
29
+ .<?php echo $uid; ?>{
30
+ <?php echo get_padding_field($acfb_rating_padding); ?>
31
+ <?php echo get_margin_field($acfb_rating_margin); ?>
32
+ }
33
+
34
  .<?php echo $uid; ?> .acfb_star_rating{
35
  justify-content: <?php the_field('acfb_rating_alignment'); ?>;
36
  }
37
 
38
  .<?php echo $uid; ?> .acfb_star_rating .acfb_before{
39
+ <?php echo get_typo_field($acfb_rating_before_text_typo); ?>
40
  color: <?php the_field('acfb_rating_before_text_color'); ?>;
41
  margin-right: <?php the_field('acfb_rating_before_text_gap'); ?>px;
42
  }
block-templates/free/acfb-tabs.php CHANGED
@@ -1,4 +1,21 @@
1
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
  $uid_tab = str_replace("block","tab",$uid);
4
 
@@ -13,12 +30,18 @@ if( !empty($block['align']) ) {
13
 
14
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
15
  <style>
 
 
 
 
 
 
16
  .<?php echo $uid; ?> ul li{
17
  background: <?php the_field('acfb_tab_title_background'); ?>;
18
  }
19
 
20
  .<?php echo $uid; ?> ul li a {
21
- font-size: <?php the_field('acfb_tab_title_size'); ?>px;
22
  color: <?php the_field('acfb_tab_title_color'); ?>;
23
  }
24
 
@@ -33,7 +56,11 @@ if( !empty($block['align']) ) {
33
  .<?php echo $uid; ?> .acfb_tab_content{
34
  background: <?php the_field('acfb_tab_content_background'); ?>;
35
  color: <?php the_field('acfb_tab_content_color'); ?>;
36
- font-size: <?php the_field('acfb_tab_content_size'); ?>px;
 
 
 
 
37
  }
38
  </style>
39
 
1
+ <?php
2
+
3
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
4
+
5
+ echo parse_link(
6
+ array(
7
+ get_field('acfb_tab_title_typo'),
8
+ get_field('acfb_tab_content_typo')
9
+ )
10
+ );
11
+
12
+ $acfb_tab_content_padding = acfb_padding_name('acfb_tab_content_padding');
13
+ $acfb_tab_padding = acfb_padding_name('acfb_tab_padding');
14
+ $acfb_tab_margin = acfb_margin_name('acfb_tab_margin');
15
+ $acfb_tab_title_typo = acfb_ffaimly_name('acfb_tab_title_typo');
16
+ $acfb_tab_content_typo = acfb_ffaimly_name('acfb_tab_content_typo');
17
+
18
+
19
  $uid = $block['id'];
20
  $uid_tab = str_replace("block","tab",$uid);
21
 
30
 
31
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
32
  <style>
33
+
34
+ .<?php echo $uid; ?> {
35
+ <?php echo get_padding_field($acfb_tab_padding); ?>
36
+ <?php echo get_margin_field($acfb_tab_margin); ?>
37
+ }
38
+
39
  .<?php echo $uid; ?> ul li{
40
  background: <?php the_field('acfb_tab_title_background'); ?>;
41
  }
42
 
43
  .<?php echo $uid; ?> ul li a {
44
+ <?php echo get_typo_field($acfb_tab_title_typo); ?>
45
  color: <?php the_field('acfb_tab_title_color'); ?>;
46
  }
47
 
56
  .<?php echo $uid; ?> .acfb_tab_content{
57
  background: <?php the_field('acfb_tab_content_background'); ?>;
58
  color: <?php the_field('acfb_tab_content_color'); ?>;
59
+ <?php echo get_typo_field($acfb_tab_content_typo); ?>
60
+ padding-top: <?php echo $acfb_tab_content_padding['padding_top']; ?>px;
61
+ padding-bottom: <?php echo $acfb_tab_content_padding['padding_bottom']; ?>px;
62
+ padding-left: <?php echo $acfb_tab_content_padding['padding_left']; ?>px;
63
+ padding-right: <?php echo $acfb_tab_content_padding['padding_right']; ?>px;
64
  }
65
  </style>
66
 
block-templates/free/acfb-team.php CHANGED
@@ -1,4 +1,22 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_team_block';
@@ -11,8 +29,17 @@ if( !empty($block['align']) ) {
11
  ?>
12
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
13
  <style type="text/css">
 
 
 
 
 
14
  .<?php echo $uid; ?> .acfb_team_wrap{
15
- background: <?php the_field('acfb_team_background_color'); ?>;
 
 
 
 
16
  }
17
 
18
  .<?php echo $uid; ?> .acfb_team_wrap.acfb_team_top{
@@ -42,7 +69,7 @@ if( !empty($block['align']) ) {
42
 
43
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_avatar{
44
  width: <?php the_field('acfb_team_image_size'); ?>px;
45
- height: <?php the_field('acfb_team_image_size'); ?>px;
46
  }
47
 
48
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_avatar img{
@@ -51,17 +78,17 @@ if( !empty($block['align']) ) {
51
 
52
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_name{
53
  color: <?php the_field('acfb_team_name_color'); ?>;
54
- font-size: <?php the_field('acfb_team_name_size'); ?>px;
55
  }
56
 
57
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_position{
58
  color: <?php the_field('acfb_team_position_color'); ?>;
59
- font-size: <?php the_field('acfb_team_position_size'); ?>px;
60
  }
61
 
62
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_description{
63
  color: <?php the_field('acfb_team_description_color'); ?>;
64
- font-size: <?php the_field('acfb_team_description_size'); ?>px;
65
  }
66
 
67
  </style>
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_team_name_typo'),
7
+ get_field('acfb_team_position_typo'),
8
+ get_field('acfb_team_description_typo')
9
+ )
10
+ );
11
+
12
+ $acfb_team_inner_padding = acfb_padding_name('acfb_team_inner_padding');
13
+ $acfb_team_padding = acfb_padding_name('acfb_team_padding');
14
+ $acfb_team_margin = acfb_margin_name('acfb_team_margin');
15
+ $acfb_team_name_typo = acfb_ffaimly_name('acfb_team_name_typo');
16
+ $acfb_team_position_typo = acfb_ffaimly_name('acfb_team_position_typo');
17
+ $acfb_team_description_typo = acfb_ffaimly_name('acfb_team_description_typo');
18
+
19
+
20
  $uid = $block['id'];
21
 
22
  $className = 'acfb_team_block';
29
  ?>
30
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
31
  <style type="text/css">
32
+ .<?php echo $uid; ?>{
33
+ <?php echo get_padding_field($acfb_team_padding); ?>
34
+ <?php echo get_margin_field($acfb_team_margin); ?>
35
+ }
36
+
37
  .<?php echo $uid; ?> .acfb_team_wrap{
38
+ background: <?php the_field('acfb_team_background_color'); ?>;
39
+ padding-top: <?php echo $acfb_team_inner_padding['padding_top']; ?>px;
40
+ padding-bottom: <?php echo $acfb_team_inner_padding['padding_bottom']; ?>px;
41
+ padding-left: <?php echo $acfb_team_inner_padding['padding_left']; ?>px;
42
+ padding-right: <?php echo $acfb_team_inner_padding['padding_right']; ?>px;
43
  }
44
 
45
  .<?php echo $uid; ?> .acfb_team_wrap.acfb_team_top{
69
 
70
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_avatar{
71
  width: <?php the_field('acfb_team_image_size'); ?>px;
72
+ height: <?php the_field('acfb_team_image_size'); ?>px;
73
  }
74
 
75
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_avatar img{
78
 
79
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_name{
80
  color: <?php the_field('acfb_team_name_color'); ?>;
81
+ <?php echo get_typo_field($acfb_team_name_typo); ?>
82
  }
83
 
84
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_position{
85
  color: <?php the_field('acfb_team_position_color'); ?>;
86
+ <?php echo get_typo_field($acfb_team_position_typo); ?>
87
  }
88
 
89
  .<?php echo $uid; ?> .acfb_team_wrap .acfb_team_info .acfb_team_description{
90
  color: <?php the_field('acfb_team_description_color'); ?>;
91
+ <?php echo get_typo_field($acfb_team_description_typo); ?>
92
  }
93
 
94
  </style>
block-templates/free/acfb-testimonial.php CHANGED
@@ -1,6 +1,25 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
 
 
 
 
 
 
 
 
 
4
  $className = 'acfb_testimonial_block';
5
  if( !empty($block['className']) ) {
6
  $className .= ' ' . $block['className'];
@@ -8,16 +27,28 @@ if( !empty($block['className']) ) {
8
  if( !empty($block['align']) ) {
9
  $className .= ' align' . $block['align'];
10
  }
 
11
  ?>
 
 
12
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
13
  <style type="text/css">
 
 
 
 
 
14
  .<?php echo $uid; ?> .acfb_testimonial_wrap{
15
  background-color: <?php the_field('acfb_testimonial_background_color'); ?>;
16
- }
 
 
 
 
17
 
18
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_text{
19
  color: <?php the_field('acfb_testimonial_text_color'); ?>;
20
- font-size: <?php the_field('acfb_testimonial_text_size'); ?>px;
21
  }
22
 
23
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_avatar_wrap{
@@ -27,12 +58,12 @@ if( !empty($block['align']) ) {
27
 
28
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_name{
29
  color: <?php the_field('acfb_testimonial_name_color'); ?>;
30
- font-size: <?php the_field('acfb_testimonial_name_size'); ?>px;
31
  }
32
 
33
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_position{
34
  color: <?php the_field('acfb_testimonial_position_color'); ?>;
35
- font-size: <?php the_field('acfb_testimonial_position_size'); ?>px;
36
  }
37
 
38
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_avatar_wrap .acfb_testimonial_avatar{
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_testimonial_text_typo'),
7
+ get_field('acfb_testimonial_name_typo'),
8
+ get_field('acfb_testimonial_position_typo')
9
+ )
10
+ );
11
+
12
  $uid = $block['id'];
13
 
14
+ $acfb_testimonial_inner_padding = acfb_padding_name('acfb_testimonial_inner_padding');
15
+ $acfb_testimonial_padding = acfb_padding_name('acfb_testimonial_padding');
16
+ $acfb_testimonial_margin = acfb_margin_name('acfb_testimonial_margin');
17
+ $acfb_testimonial_text_typo = acfb_ffaimly_name('acfb_testimonial_text_typo');
18
+ $acfb_testimonial_name_typo = acfb_ffaimly_name('acfb_testimonial_name_typo');
19
+ $acfb_testimonial_position_typo = acfb_ffaimly_name('acfb_testimonial_position_typo');
20
+
21
+
22
+
23
  $className = 'acfb_testimonial_block';
24
  if( !empty($block['className']) ) {
25
  $className .= ' ' . $block['className'];
27
  if( !empty($block['align']) ) {
28
  $className .= ' align' . $block['align'];
29
  }
30
+
31
  ?>
32
+
33
+
34
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
35
  <style type="text/css">
36
+ .<?php echo $uid; ?>{
37
+ <?php echo get_padding_field($acfb_testimonial_padding); ?>
38
+ <?php echo get_margin_field($acfb_testimonial_margin); ?>
39
+ }
40
+
41
  .<?php echo $uid; ?> .acfb_testimonial_wrap{
42
  background-color: <?php the_field('acfb_testimonial_background_color'); ?>;
43
+ padding-top: <?php echo $acfb_testimonial_inner_padding['padding_top']; ?>px;
44
+ padding-bottom: <?php echo $acfb_testimonial_inner_padding['padding_bottom']; ?>px;
45
+ padding-left: <?php echo $acfb_testimonial_inner_padding['padding_left']; ?>px;
46
+ padding-right: <?php echo $acfb_testimonial_inner_padding['padding_right']; ?>px;
47
+ }
48
 
49
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_text{
50
  color: <?php the_field('acfb_testimonial_text_color'); ?>;
51
+ <?php echo get_typo_field($acfb_testimonial_text_typo); ?>
52
  }
53
 
54
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_avatar_wrap{
58
 
59
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_name{
60
  color: <?php the_field('acfb_testimonial_name_color'); ?>;
61
+ <?php echo get_typo_field($acfb_testimonial_name_typo); ?>
62
  }
63
 
64
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_position{
65
  color: <?php the_field('acfb_testimonial_position_color'); ?>;
66
+ <?php echo get_typo_field($acfb_testimonial_position_typo); ?>
67
  }
68
 
69
  .<?php echo $uid; ?> .acfb_testimonial_wrap .acfb_testimonial_bio .acfb_testimonial_avatar_wrap .acfb_testimonial_avatar{
block-templates/free/acfb-toggle.php CHANGED
@@ -1,4 +1,20 @@
1
  <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  $uid = $block['id'];
3
 
4
  $className = 'acfb_toggle_block';
@@ -13,10 +29,14 @@ if( !empty($block['align']) ) {
13
 
14
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
15
  <style>
 
 
 
 
16
  .<?php echo $uid; ?> .acfb_toggle_title{
17
  background: <?php the_field('acfb_toggle_title_background'); ?>;
18
  color: <?php the_field('acfb_toggle_title_color'); ?>;
19
- font-size: <?php the_field('acfb_toggle_title_size'); ?>px;
20
  text-align: <?php the_field('acfb_toogle_title_alignment'); ?>;
21
  }
22
 
@@ -28,7 +48,7 @@ if( !empty($block['align']) ) {
28
  .<?php echo $uid; ?> .acfb_toggle_content {
29
  background: <?php the_field('acfb_toggle_content_background'); ?>;
30
  color: <?php the_field('acfb_toggle_content_color'); ?>;
31
- font-size: <?php the_field('acfb_toggle_content_size'); ?>px;
32
  }
33
  </style>
34
 
1
  <?php
2
+ require_once plugin_dir_path( __DIR__ ) . 'functions/function.php';
3
+
4
+ echo parse_link(
5
+ array(
6
+ get_field('acfb_toggle_title_typo'),
7
+ get_field('acfb_toggle_content_typo')
8
+ )
9
+ );
10
+
11
+
12
+ $acfb_toggle_padding = acfb_padding_name('acfb_toggle_padding');
13
+ $acfb_toggle_margin = acfb_margin_name('acfb_toggle_margin');
14
+ $acfb_toggle_title_typo = acfb_ffaimly_name('acfb_toggle_title_typo');
15
+ $acfb_toggle_content_typo = acfb_ffaimly_name('acfb_toggle_content_typo');
16
+
17
+
18
  $uid = $block['id'];
19
 
20
  $className = 'acfb_toggle_block';
29
 
30
  <div class="<?php echo $uid; ?> <?php echo esc_attr($className); ?>">
31
  <style>
32
+ .<?php echo $uid; ?> {
33
+ <?php echo get_padding_field($acfb_toggle_padding); ?>
34
+ <?php echo get_margin_field($acfb_toggle_margin); ?>
35
+ }
36
  .<?php echo $uid; ?> .acfb_toggle_title{
37
  background: <?php the_field('acfb_toggle_title_background'); ?>;
38
  color: <?php the_field('acfb_toggle_title_color'); ?>;
39
+ <?php echo get_typo_field($acfb_toggle_title_typo); ?>
40
  text-align: <?php the_field('acfb_toogle_title_alignment'); ?>;
41
  }
42
 
48
  .<?php echo $uid; ?> .acfb_toggle_content {
49
  background: <?php the_field('acfb_toggle_content_background'); ?>;
50
  color: <?php the_field('acfb_toggle_content_color'); ?>;
51
+ <?php echo get_typo_field($acfb_toggle_content_typo); ?>
52
  }
53
  </style>
54
 
block-templates/functions/function.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ function parse_link( $fields ) {
4
+
5
+ $acfb_families = array();
6
+
7
+
8
+ foreach ( $fields as $key => $field ) {
9
+
10
+ if (is_array($field) and array_key_exists('font_family', $field) ) {
11
+
12
+ $acfb_font_family = $field['font_family'];
13
+
14
+ if ( $acfb_font_family !== "" and $acfb_font_family !== NULL and $acfb_font_family !== 'default' ) {
15
+ $acfb_families[] = $acfb_font_family;
16
+ }
17
+
18
+ }
19
+
20
+ }
21
+
22
+ if (!empty($acfb_families)) {
23
+ $family_merges = join('&family=', $acfb_families);
24
+
25
+ return "<link href='https://fonts.googleapis.com/css2?family=$family_merges' rel='stylesheet'>";
26
+
27
+ } else return "";
28
+
29
+
30
+ }
31
+
32
+
33
+ function get_family( $family ) {
34
+ return str_replace('+', " ", $family);
35
+ }
css/acfblocks.css CHANGED
@@ -886,7 +886,6 @@ svg.acfb_social_icons path {
886
  .acfb_toggle_block .acfb_toggle_title{
887
  width: 100%;
888
  border: none;
889
- font-weight: 600;
890
  padding: 10px 20px;
891
  outline: none;
892
  cursor: pointer;
@@ -1248,8 +1247,6 @@ svg.acfb_social_icons path {
1248
  }
1249
 
1250
  .acfb_center_timeline .acfb_timeline_inner .acfb_timeline_content{
1251
- padding: 20px 30px;
1252
- background-color: #f3f4f5;
1253
  position: relative;
1254
  }
1255
 
@@ -1441,7 +1438,6 @@ svg.acfb_social_icons path {
1441
  -webkit-justify-content: center;
1442
  -ms-flex-pack: center;
1443
  /*justify-content: center;*/
1444
- padding: 20px;
1445
  position: absolute;
1446
  top: 0;
1447
  right: 0;
@@ -2186,7 +2182,6 @@ transition: all .3s .3s;
2186
  .acfb_posts_tiled_block .acfb_post_tiled_grid .acfb_post_tiled_item .acfb_post_tiled_item_inner{
2187
  background-size: cover !important;
2188
  background-position: center !important;
2189
- padding: 15px;
2190
  display: grid;
2191
  }
2192
 
@@ -2672,20 +2667,6 @@ transition: all .3s .3s;
2672
 
2673
 
2674
 
2675
-
2676
-
2677
-
2678
-
2679
-
2680
-
2681
-
2682
-
2683
-
2684
-
2685
-
2686
-
2687
-
2688
-
2689
  @media screen and (max-width: 767px) {
2690
  .acfb_post_timeline_center .acfb_post_timeline_inner{
2691
  width: 100%;
@@ -2745,24 +2726,8 @@ transition: all .3s .3s;
2745
 
2746
 
2747
 
2748
-
2749
-
2750
-
2751
-
2752
-
2753
-
2754
-
2755
-
2756
-
2757
-
2758
-
2759
-
2760
-
2761
-
2762
-
2763
  /************ Post Slider CSS ************/
2764
  .acfb_posts_slider_block .acfb_post_slider_tiled{
2765
- padding: 20px;
2766
  background-size: cover !important;
2767
  background-repeat: no-repeat !important;
2768
  background-position: center !important;
@@ -2828,13 +2793,6 @@ transition: all .3s .3s;
2828
 
2829
 
2830
 
2831
- /************ Image Shape CSS ************/
2832
-
2833
-
2834
-
2835
-
2836
-
2837
-
2838
 
2839
  /************ Business Hours CSS ************/
2840
  .acfb_bh_wrapper{}
@@ -2860,12 +2818,8 @@ transition: all .3s .3s;
2860
 
2861
 
2862
 
2863
-
2864
-
2865
-
2866
-
2867
  /************ Dual Button CSS ************/
2868
- /*.acfb_db_wrapper{
2869
  display: -webkit-box;
2870
  display: -ms-flexbox;
2871
  display: flex;
@@ -2875,13 +2829,12 @@ transition: all .3s .3s;
2875
  }
2876
 
2877
  .acfb_db_wrapper .acfb_db{
2878
- padding-top: 10px!important;
2879
- padding-right: 45px!important;
2880
- padding-bottom: 10px!important;
2881
- padding-left: 45px!important;
2882
  display: -webkit-box;
2883
  display: -ms-flexbox;
2884
  display: flex;
 
 
 
2885
  }
2886
  .acfb_db_wrapper .acfb_db_seprator{
2887
  position: absolute;
@@ -2901,7 +2854,6 @@ transition: all .3s .3s;
2901
  -webkit-box-pack: center;
2902
  -ms-flex-pack: center;
2903
  justify-content: center;
2904
- box-shadow: 0px 0px 0px 6px rgba(255,255,255,0.3);
2905
  }
2906
 
2907
  .acfb_db_wrapper .acfb_db_seprator span{
@@ -2911,6 +2863,7 @@ transition: all .3s .3s;
2911
 
2912
  .acfb_db_wrapper .acfb_db_seprator img{
2913
  padding: 5px;
 
2914
  }
2915
 
2916
 
@@ -2940,10 +2893,6 @@ transition: all .3s .3s;
2940
  overflow: hidden;
2941
  }
2942
 
2943
- .acfb_db_radius .acf-fields .acf-field{
2944
- padding: 10px !important;
2945
- }
2946
-
2947
  .acfb_db_radius .acf-fields input[type=range]{
2948
  width: 100%;
2949
  margin-bottom: 5px;
@@ -2951,7 +2900,51 @@ transition: all .3s .3s;
2951
 
2952
  .acfb_db_radius .acf-fields input[type=number]{
2953
  margin-left: 0;
2954
- }*/
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2955
 
2956
 
2957
 
@@ -3061,6 +3054,11 @@ transition: all .3s .3s;
3061
 
3062
 
3063
 
 
 
 
 
 
3064
 
3065
 
3066
 
@@ -3073,22 +3071,58 @@ transition: all .3s .3s;
3073
 
3074
 
3075
  .editor-block-list-item-acf-acfb-flipbox .editor-block-types-list__item-title::after,
 
 
3076
  .editor-block-list-item-acf-acfb-content-timeline .editor-block-types-list__item-title::after,
 
 
3077
  .editor-block-list-item-acf-acfb-image-accordion .editor-block-types-list__item-title::after,
 
 
3078
  .editor-block-list-item-acf-acfb-call-to-action .editor-block-types-list__item-title::after,
 
 
3079
  .editor-block-list-item-acf-acfb-image-hotspot .editor-block-types-list__item-title::after,
 
 
3080
  .editor-block-list-item-acf-acfb-gallery .editor-block-types-list__item-title::after,
 
 
3081
  .editor-block-list-item-acf-acfb-device .editor-block-types-list__item-title::after,
 
 
3082
  .editor-block-list-item-acf-acfb-shape-divider .editor-block-types-list__item-title::after,
 
 
3083
  .editor-block-list-item-acf-acfb-post-ticker .editor-block-types-list__item-title::after,
 
 
3084
  .editor-block-list-item-acf-acfb-post-slider .editor-block-types-list__item-title::after,
 
 
3085
  .editor-block-list-item-acf-acfb-post-tiled .editor-block-types-list__item-title::after,
 
 
3086
  .editor-block-list-item-acf-acfb-post-timeline .editor-block-types-list__item-title::after,
 
 
3087
  .editor-block-list-item-acf-acfb-before-after-image .editor-block-types-list__item-title::after,
 
 
3088
  .editor-block-list-item-acf-acfb-image-shape .editor-block-types-list__item-title::after,
 
 
3089
  .editor-block-list-item-acf-acfb-animated-headline .editor-block-types-list__item-title::after,
 
 
3090
  .editor-block-list-item-acf-acfb-steps .editor-block-types-list__item-title::after,
3091
- .editor-block-list-item-acf-acfb-highlighted-headline .editor-block-types-list__item-title::after{
 
 
 
 
 
 
3092
  content: " PRO";
3093
  color: #ffffff;
3094
  font-weight: bold;
@@ -3107,4 +3141,90 @@ transition: all .3s .3s;
3107
  [data-name="acfb_timeline_content"] .acf-label,
3108
  [data-name="acfb_timeline_button"] .acf-label {
3109
  display: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3110
  }
886
  .acfb_toggle_block .acfb_toggle_title{
887
  width: 100%;
888
  border: none;
 
889
  padding: 10px 20px;
890
  outline: none;
891
  cursor: pointer;
1247
  }
1248
 
1249
  .acfb_center_timeline .acfb_timeline_inner .acfb_timeline_content{
 
 
1250
  position: relative;
1251
  }
1252
 
1438
  -webkit-justify-content: center;
1439
  -ms-flex-pack: center;
1440
  /*justify-content: center;*/
 
1441
  position: absolute;
1442
  top: 0;
1443
  right: 0;
2182
  .acfb_posts_tiled_block .acfb_post_tiled_grid .acfb_post_tiled_item .acfb_post_tiled_item_inner{
2183
  background-size: cover !important;
2184
  background-position: center !important;
 
2185
  display: grid;
2186
  }
2187
 
2667
 
2668
 
2669
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2670
  @media screen and (max-width: 767px) {
2671
  .acfb_post_timeline_center .acfb_post_timeline_inner{
2672
  width: 100%;
2726
 
2727
 
2728
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2729
  /************ Post Slider CSS ************/
2730
  .acfb_posts_slider_block .acfb_post_slider_tiled{
 
2731
  background-size: cover !important;
2732
  background-repeat: no-repeat !important;
2733
  background-position: center !important;
2793
 
2794
 
2795
 
 
 
 
 
 
 
 
2796
 
2797
  /************ Business Hours CSS ************/
2798
  .acfb_bh_wrapper{}
2818
 
2819
 
2820
 
 
 
 
 
2821
  /************ Dual Button CSS ************/
2822
+ .acfb_db_wrapper{
2823
  display: -webkit-box;
2824
  display: -ms-flexbox;
2825
  display: flex;
2829
  }
2830
 
2831
  .acfb_db_wrapper .acfb_db{
 
 
 
 
2832
  display: -webkit-box;
2833
  display: -ms-flexbox;
2834
  display: flex;
2835
+ flex-grow: 1;
2836
+ justify-content: center;
2837
+ text-decoration: none !important;
2838
  }
2839
  .acfb_db_wrapper .acfb_db_seprator{
2840
  position: absolute;
2854
  -webkit-box-pack: center;
2855
  -ms-flex-pack: center;
2856
  justify-content: center;
 
2857
  }
2858
 
2859
  .acfb_db_wrapper .acfb_db_seprator span{
2863
 
2864
  .acfb_db_wrapper .acfb_db_seprator img{
2865
  padding: 5px;
2866
+ width: 100%;
2867
  }
2868
 
2869
 
2893
  overflow: hidden;
2894
  }
2895
 
 
 
 
 
2896
  .acfb_db_radius .acf-fields input[type=range]{
2897
  width: 100%;
2898
  margin-bottom: 5px;
2900
 
2901
  .acfb_db_radius .acf-fields input[type=number]{
2902
  margin-left: 0;
2903
+ }
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+ /************ Image Shape CSS ************/
2910
+ .acfb_is_wrap .acfb_is{
2911
+ -webkit-mask-position: center;
2912
+ -webkit-mask-repeat: no-repeat;
2913
+ /*-webkit-mask-size: 100%;*/
2914
+ }
2915
+
2916
+
2917
+ .acfb_is_wrap .acfb_is_1{
2918
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBjbGFzcz0ic3F1YXJlX3N2Z19fc3QwIiBkPSJNMCAwaDIwMHYyMDBIMHoiPjwvcGF0aD48L3N2Zz4=');
2919
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBjbGFzcz0ic3F1YXJlX3N2Z19fc3QwIiBkPSJNMCAwaDIwMHYyMDBIMHoiPjwvcGF0aD48L3N2Zz4=');
2920
+ }
2921
+
2922
+ .acfb_is_wrap .acfb_is_2{
2923
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1MCI+PC9jaXJjbGU+PC9zdmc+');
2924
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1MCI+PC9jaXJjbGU+PC9zdmc+');
2925
+ }
2926
+
2927
+ .acfb_is_wrap .acfb_is_3{
2928
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTg4LjUgMzEuOWMxMi45IDE1LjkgMTIuNSA0My4zIDEwLjMgNzcuMXMtNi4yIDc0LjItMjYuMiA4Ni41LTU2LjEtMy4zLTg5LjQtMjEuMi02My43LTM4LjEtNzYuNC02OS44Qy01LjkgNzMtLjggMjkuOSAyMS42IDExLjcgNDQtNi40IDgzLjguNSAxMTYuNyA2LjFzNTkgMTAgNzEuOCAyNS44eiI+PC9wYXRoPjwvc3ZnPg==');
2929
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjAwIDIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTg4LjUgMzEuOWMxMi45IDE1LjkgMTIuNSA0My4zIDEwLjMgNzcuMXMtNi4yIDc0LjItMjYuMiA4Ni41LTU2LjEtMy4zLTg5LjQtMjEuMi02My43LTM4LjEtNzYuNC02OS44Qy01LjkgNzMtLjggMjkuOSAyMS42IDExLjcgNDQtNi40IDgzLjguNSAxMTYuNyA2LjFzNTkgMTAgNzEuOCAyNS44eiI+PC9wYXRoPjwvc3ZnPg==');
2930
+ }
2931
+
2932
+ .acfb_is_wrap .acfb_is_4{
2933
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTkyIDExOC40YzMzLjQgNzMuMy00Ni42IDE1Ny45LTgwIDI0OC40LTMzLjYgOTAuNS0yMC42IDE4Ni44LTgyLjQgMjE5LjYtNjEuOCAzMi43LTE5OC43IDEuOS0yODkuMy00My44QzQ5LjQgNDk3IDQuNyA0MzYuNS40IDM4Mi4yczMxLjQtMTAyLjUgODIuMi0xNzguM1MxOTkgMjQuOSAzMDUuMyA0LjEgNTU4LjQgNDUuMiA1OTIgMTE4LjR6Ij48L3BhdGg+PC9zdmc+');
2934
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTkyIDExOC40YzMzLjQgNzMuMy00Ni42IDE1Ny45LTgwIDI0OC40LTMzLjYgOTAuNS0yMC42IDE4Ni44LTgyLjQgMjE5LjYtNjEuOCAzMi43LTE5OC43IDEuOS0yODkuMy00My44QzQ5LjQgNDk3IDQuNyA0MzYuNS40IDM4Mi4yczMxLjQtMTAyLjUgODIuMi0xNzguM1MxOTkgMjQuOSAzMDUuMyA0LjEgNTU4LjQgNDUuMiA1OTIgMTE4LjR6Ij48L3BhdGg+PC9zdmc+');
2935
+ }
2936
+
2937
+ .acfb_is_wrap .acfb_is_5{
2938
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDU0LjUgMTM3LjZDNTIwIDIwMC4xIDU5OC4yIDI2OC41IDYwMCAzNDMuOGMxLjYgNzUuMy03My40IDE1Ny41LTE3MS40IDIwNy41LTk4IDQ5LjktMjE4LjkgNjcuOC0yOTcgMjMuMi03Ny45LTQ0LjQtMTEyLjgtMTUxLjEtMTI2LTI1MFMuOSAxMzQuNyA1MSA3NS42YzQ5LjktNTkuMSAxNDEuMy04Ni40IDIxMy4zLTcxLjdDMzM2LjMgMTguNiAzODkgNzUgNDU0LjUgMTM3LjZ6Ij48L3BhdGg+PC9zdmc+');
2939
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDU0LjUgMTM3LjZDNTIwIDIwMC4xIDU5OC4yIDI2OC41IDYwMCAzNDMuOGMxLjYgNzUuMy03My40IDE1Ny41LTE3MS40IDIwNy41LTk4IDQ5LjktMjE4LjkgNjcuOC0yOTcgMjMuMi03Ny45LTQ0LjQtMTEyLjgtMTUxLjEtMTI2LTI1MFMuOSAxMzQuNyA1MSA3NS42YzQ5LjktNTkuMSAxNDEuMy04Ni40IDIxMy4zLTcxLjdDMzM2LjMgMTguNiAzODkgNzUgNDU0LjUgMTM3LjZ6Ij48L3BhdGg+PC9zdmc+');
2940
+ }
2941
+
2942
+ .acfb_is_wrap .acfb_is_6{
2943
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDU0LjUgMTM3LjZDNTIwIDIwMC4xIDU5OC4yIDI2OC41IDYwMCAzNDMuOGMxLjYgNzUuMy03My40IDE1Ny41LTE3MS40IDIwNy41LTk4IDQ5LjktMjE4LjkgNjcuOC0yOTcgMjMuMi03Ny45LTQ0LjQtMTEyLjgtMTUxLjEtMTI2LTI1MFMuOSAxMzQuNyA1MSA3NS42YzQ5LjktNTkuMSAxNDEuMy04Ni40IDIxMy4zLTcxLjdDMzM2LjMgMTguNiAzODkgNzUgNDU0LjUgMTM3LjZ6Ij48L3BhdGg+PC9zdmc+');
2944
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwIDYwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDU0LjUgMTM3LjZDNTIwIDIwMC4xIDU5OC4yIDI2OC41IDYwMCAzNDMuOGMxLjYgNzUuMy03My40IDE1Ny41LTE3MS40IDIwNy41LTk4IDQ5LjktMjE4LjkgNjcuOC0yOTcgMjMuMi03Ny45LTQ0LjQtMTEyLjgtMTUxLjEtMTI2LTI1MFMuOSAxMzQuNyA1MSA3NS42YzQ5LjktNTkuMSAxNDEuMy04Ni40IDIxMy4zLTcxLjdDMzM2LjMgMTguNiAzODkgNzUgNDU0LjUgMTM3LjZ6Ij48L3BhdGg+PC9zdmc+');
2945
+ }
2946
+
2947
+
2948
 
2949
 
2950
 
3054
 
3055
 
3056
 
3057
+ /************ Animated Headline CSS ************/
3058
+
3059
+
3060
+
3061
+
3062
 
3063
 
3064
 
3071
 
3072
 
3073
  .editor-block-list-item-acf-acfb-flipbox .editor-block-types-list__item-title::after,
3074
+ .editor-block-list-item-acf-acfb-flipbox .block-editor-block-types-list__item-title::after,
3075
+
3076
  .editor-block-list-item-acf-acfb-content-timeline .editor-block-types-list__item-title::after,
3077
+ .editor-block-list-item-acf-acfb-content-timeline .block-editor-block-types-list__item-title::after,
3078
+
3079
  .editor-block-list-item-acf-acfb-image-accordion .editor-block-types-list__item-title::after,
3080
+ .editor-block-list-item-acf-acfb-image-accordion .block-editor-block-types-list__item-title::after,
3081
+
3082
  .editor-block-list-item-acf-acfb-call-to-action .editor-block-types-list__item-title::after,
3083
+ .editor-block-list-item-acf-acfb-call-to-action .block-editor-block-types-list__item-title::after,
3084
+
3085
  .editor-block-list-item-acf-acfb-image-hotspot .editor-block-types-list__item-title::after,
3086
+ .editor-block-list-item-acf-acfb-image-hotspot .block-editor-block-types-list__item-title::after,
3087
+
3088
  .editor-block-list-item-acf-acfb-gallery .editor-block-types-list__item-title::after,
3089
+ .editor-block-list-item-acf-acfb-gallery .block-editor-block-types-list__item-title::after,
3090
+
3091
  .editor-block-list-item-acf-acfb-device .editor-block-types-list__item-title::after,
3092
+ .editor-block-list-item-acf-acfb-device .block-editor-block-types-list__item-title::after,
3093
+
3094
  .editor-block-list-item-acf-acfb-shape-divider .editor-block-types-list__item-title::after,
3095
+ .editor-block-list-item-acf-acfb-shape-divider .block-editor-block-types-list__item-title::after,
3096
+
3097
  .editor-block-list-item-acf-acfb-post-ticker .editor-block-types-list__item-title::after,
3098
+ .editor-block-list-item-acf-acfb-post-ticker .block-editor-block-types-list__item-title::after,
3099
+
3100
  .editor-block-list-item-acf-acfb-post-slider .editor-block-types-list__item-title::after,
3101
+ .editor-block-list-item-acf-acfb-post-slider .block-editor-block-types-list__item-title::after,
3102
+
3103
  .editor-block-list-item-acf-acfb-post-tiled .editor-block-types-list__item-title::after,
3104
+ .editor-block-list-item-acf-acfb-post-tiled .block-editor-block-types-list__item-title::after,
3105
+
3106
  .editor-block-list-item-acf-acfb-post-timeline .editor-block-types-list__item-title::after,
3107
+ .editor-block-list-item-acf-acfb-post-timeline .block-editor-block-types-list__item-title::after,
3108
+
3109
  .editor-block-list-item-acf-acfb-before-after-image .editor-block-types-list__item-title::after,
3110
+ .editor-block-list-item-acf-acfb-before-after-image .block-editor-block-types-list__item-title::after,
3111
+
3112
  .editor-block-list-item-acf-acfb-image-shape .editor-block-types-list__item-title::after,
3113
+ .editor-block-list-item-acf-acfb-image-shape .block-editor-block-types-list__item-title::after,
3114
+
3115
  .editor-block-list-item-acf-acfb-animated-headline .editor-block-types-list__item-title::after,
3116
+ .editor-block-list-item-acf-acfb-animated-headline .block-editor-block-types-list__item-title::after,
3117
+
3118
  .editor-block-list-item-acf-acfb-steps .editor-block-types-list__item-title::after,
3119
+ .editor-block-list-item-acf-acfb-steps .block-editor-block-types-list__item-title::after,
3120
+
3121
+ .editor-block-list-item-acf-acfb-highlighted-headline .editor-block-types-list__item-title::after,
3122
+ .editor-block-list-item-acf-acfb-highlighted-headline .block-editor-block-types-list__item-title::after,
3123
+
3124
+ .editor-block-list-item-acf-acfb-dual-button .editor-block-types-list__item-title::after,
3125
+ .editor-block-list-item-acf-acfb-dual-button .block-editor-block-types-list__item-title::after{
3126
  content: " PRO";
3127
  color: #ffffff;
3128
  font-weight: bold;
3141
  [data-name="acfb_timeline_content"] .acf-label,
3142
  [data-name="acfb_timeline_button"] .acf-label {
3143
  display: none;
3144
+ }
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+ /*
3151
+ div[data-name="letter_spacing"] input,
3152
+ div[data-name="line_height"] input,
3153
+ div[data-name="font_size"] input{
3154
+ display: flex;
3155
+ flex-direction: column;
3156
+ width: 50%;
3157
+ }
3158
+
3159
+
3160
+ div[data-name="font_weight"],
3161
+ div[data-name="font_transform"]{
3162
+ max-width: 50% !important;
3163
+ }*/
3164
+
3165
+
3166
+
3167
+
3168
+ div[data-type~="typography"], div[data-type~="padding"], div[data-type~="margin"]{
3169
+ padding: 10px !important;
3170
+ border: 1px solid #c5c5c5 !important;
3171
+ }
3172
+
3173
+
3174
+ div[data-type~="typography"] .acf-field-range .acf-range-wrap{
3175
+ display: grid;
3176
+ grid-template-columns: 50% 30% 20%;
3177
+ }
3178
+
3179
+
3180
+
3181
+ .acf-field-padding .acfb-padding,
3182
+ .acf-field-margin .acfb-margin{
3183
+ display: grid;
3184
+ grid-template-columns: 50% 50%;
3185
+ justify-items: center;
3186
+
3187
+ }
3188
+
3189
+
3190
+ .acf-field-padding .acfb-padding .acf-range-wrap input,
3191
+ .acf-field-margin .acfb-margin .acf-range-wrap input{
3192
+ margin-left: 0;
3193
+ }
3194
+
3195
+
3196
+ .acfb_pannel_eye{
3197
+ position: absolute;
3198
+ top: -22px;
3199
+ right: 0;
3200
+ }
3201
+
3202
+ .acfb_pannel_eye svg{
3203
+ width: 17px;
3204
+ height: 19px;
3205
+ }
3206
+
3207
+
3208
+ .acfb-checkbox-true-false[type=checkbox]{
3209
+ display:none;
3210
+ }
3211
+
3212
+ .acfb-checkbox-true-false[type=checkbox] + label{
3213
+ height: 16px;
3214
+ width: 16px;
3215
+ fill: #444;
3216
+ }
3217
+
3218
+ .acfb-checkbox-true-false[type=checkbox]:checked + label{
3219
+ height: 16px;
3220
+ width: 16px;
3221
+ fill: #444;
3222
+ }
3223
+
3224
+ .acfb_eye_svg{
3225
+ position: absolute;
3226
+ top: -21px;
3227
+ right: 0;
3228
+ width: 15px;
3229
+ height: 15px;
3230
  }
css/animated-headline.css CHANGED
@@ -548,7 +548,6 @@ xloading-bar
548
  bottom: 0;
549
  height: 3px;
550
  width: 0;
551
- background: #0096a7;
552
  z-index: 2;
553
  -webkit-transition: width 0.3s -0.1s;
554
  -moz-transition: width 0.3s -0.1s;
548
  bottom: 0;
549
  height: 3px;
550
  width: 0;
 
551
  z-index: 2;
552
  -webkit-transition: width 0.3s -0.1s;
553
  -moz-transition: width 0.3s -0.1s;
css/magnific-popup.css DELETED
@@ -1,351 +0,0 @@
1
- /* Magnific Popup CSS */
2
- .mfp-bg {
3
- top: 0;
4
- left: 0;
5
- width: 100%;
6
- height: 100%;
7
- z-index: 1042;
8
- overflow: hidden;
9
- position: fixed;
10
- background: #0b0b0b;
11
- opacity: 0.8; }
12
-
13
- .mfp-wrap {
14
- top: 0;
15
- left: 0;
16
- width: 100%;
17
- height: 100%;
18
- z-index: 1043;
19
- position: fixed;
20
- outline: none !important;
21
- -webkit-backface-visibility: hidden; }
22
-
23
- .mfp-container {
24
- text-align: center;
25
- position: absolute;
26
- width: 100%;
27
- height: 100%;
28
- left: 0;
29
- top: 0;
30
- padding: 0 8px;
31
- box-sizing: border-box; }
32
-
33
- .mfp-container:before {
34
- content: '';
35
- display: inline-block;
36
- height: 100%;
37
- vertical-align: middle; }
38
-
39
- .mfp-align-top .mfp-container:before {
40
- display: none; }
41
-
42
- .mfp-content {
43
- position: relative;
44
- display: inline-block;
45
- vertical-align: middle;
46
- margin: 0 auto;
47
- text-align: left;
48
- z-index: 1045; }
49
-
50
- .mfp-inline-holder .mfp-content,
51
- .mfp-ajax-holder .mfp-content {
52
- width: 100%;
53
- cursor: auto; }
54
-
55
- .mfp-ajax-cur {
56
- cursor: progress; }
57
-
58
- .mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
59
- cursor: -moz-zoom-out;
60
- cursor: -webkit-zoom-out;
61
- cursor: zoom-out; }
62
-
63
- .mfp-zoom {
64
- cursor: pointer;
65
- cursor: -webkit-zoom-in;
66
- cursor: -moz-zoom-in;
67
- cursor: zoom-in; }
68
-
69
- .mfp-auto-cursor .mfp-content {
70
- cursor: auto; }
71
-
72
- .mfp-close,
73
- .mfp-arrow,
74
- .mfp-preloader,
75
- .mfp-counter {
76
- -webkit-user-select: none;
77
- -moz-user-select: none;
78
- user-select: none; }
79
-
80
- .mfp-loading.mfp-figure {
81
- display: none; }
82
-
83
- .mfp-hide {
84
- display: none !important; }
85
-
86
- .mfp-preloader {
87
- color: #CCC;
88
- position: absolute;
89
- top: 50%;
90
- width: auto;
91
- text-align: center;
92
- margin-top: -0.8em;
93
- left: 8px;
94
- right: 8px;
95
- z-index: 1044; }
96
- .mfp-preloader a {
97
- color: #CCC; }
98
- .mfp-preloader a:hover {
99
- color: #FFF; }
100
-
101
- .mfp-s-ready .mfp-preloader {
102
- display: none; }
103
-
104
- .mfp-s-error .mfp-content {
105
- display: none; }
106
-
107
- button.mfp-close,
108
- button.mfp-arrow {
109
- overflow: visible;
110
- cursor: pointer;
111
- background: transparent;
112
- border: 0;
113
- -webkit-appearance: none;
114
- display: block;
115
- outline: none;
116
- padding: 0;
117
- z-index: 1046;
118
- box-shadow: none;
119
- touch-action: manipulation; }
120
-
121
- button::-moz-focus-inner {
122
- padding: 0;
123
- border: 0; }
124
-
125
- .mfp-close {
126
- width: 44px;
127
- height: 44px;
128
- line-height: 44px;
129
- position: absolute;
130
- right: 0;
131
- top: 0;
132
- text-decoration: none;
133
- text-align: center;
134
- opacity: 0.65;
135
- padding: 0 0 18px 10px;
136
- color: #FFF;
137
- font-style: normal;
138
- font-size: 28px;
139
- font-family: Arial, Baskerville, monospace; }
140
- .mfp-close:hover,
141
- .mfp-close:focus {
142
- opacity: 1; }
143
- .mfp-close:active {
144
- top: 1px; }
145
-
146
- .mfp-close-btn-in .mfp-close {
147
- color: #333; }
148
-
149
- .mfp-image-holder .mfp-close,
150
- .mfp-iframe-holder .mfp-close {
151
- color: #FFF;
152
- right: -6px;
153
- text-align: right;
154
- padding-right: 6px;
155
- width: 100%; }
156
-
157
- .mfp-counter {
158
- position: absolute;
159
- top: 0;
160
- right: 0;
161
- color: #CCC;
162
- font-size: 12px;
163
- line-height: 18px;
164
- white-space: nowrap; }
165
-
166
- .mfp-arrow {
167
- position: absolute;
168
- opacity: 0.65;
169
- margin: 0;
170
- top: 50%;
171
- margin-top: -55px;
172
- padding: 0;
173
- width: 90px;
174
- height: 110px;
175
- -webkit-tap-highlight-color: transparent; }
176
- .mfp-arrow:active {
177
- margin-top: -54px; }
178
- .mfp-arrow:hover,
179
- .mfp-arrow:focus {
180
- opacity: 1; }
181
- .mfp-arrow:before,
182
- .mfp-arrow:after {
183
- content: '';
184
- display: block;
185
- width: 0;
186
- height: 0;
187
- position: absolute;
188
- left: 0;
189
- top: 0;
190
- margin-top: 35px;
191
- margin-left: 35px;
192
- border: medium inset transparent; }
193
- .mfp-arrow:after {
194
- border-top-width: 13px;
195
- border-bottom-width: 13px;
196
- top: 8px; }
197
- .mfp-arrow:before {
198
- border-top-width: 21px;
199
- border-bottom-width: 21px;
200
- opacity: 0.7; }
201
-
202
- .mfp-arrow-left {
203
- left: 0; }
204
- .mfp-arrow-left:after {
205
- border-right: 17px solid #FFF;
206
- margin-left: 31px; }
207
- .mfp-arrow-left:before {
208
- margin-left: 25px;
209
- border-right: 27px solid #3F3F3F; }
210
-
211
- .mfp-arrow-right {
212
- right: 0; }
213
- .mfp-arrow-right:after {
214
- border-left: 17px solid #FFF;
215
- margin-left: 39px; }
216
- .mfp-arrow-right:before {
217
- border-left: 27px solid #3F3F3F; }
218
-
219
- .mfp-iframe-holder {
220
- padding-top: 40px;
221
- padding-bottom: 40px; }
222
- .mfp-iframe-holder .mfp-content {
223
- line-height: 0;
224
- width: 100%;
225
- max-width: 900px; }
226
- .mfp-iframe-holder .mfp-close {
227
- top: -40px; }
228
-
229
- .mfp-iframe-scaler {
230
- width: 100%;
231
- height: 0;
232
- overflow: hidden;
233
- padding-top: 56.25%; }
234
- .mfp-iframe-scaler iframe {
235
- position: absolute;
236
- display: block;
237
- top: 0;
238
- left: 0;
239
- width: 100%;
240
- height: 100%;
241
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
242
- background: #000; }
243
-
244
- /* Main image in popup */
245
- img.mfp-img {
246
- width: auto;
247
- max-width: 100%;
248
- height: auto;
249
- display: block;
250
- line-height: 0;
251
- box-sizing: border-box;
252
- padding: 40px 0 40px;
253
- margin: 0 auto; }
254
-
255
- /* The shadow behind the image */
256
- .mfp-figure {
257
- line-height: 0; }
258
- .mfp-figure:after {
259
- content: '';
260
- position: absolute;
261
- left: 0;
262
- top: 40px;
263
- bottom: 40px;
264
- display: block;
265
- right: 0;
266
- width: auto;
267
- height: auto;
268
- z-index: -1;
269
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
270
- background: #444; }
271
- .mfp-figure small {
272
- color: #BDBDBD;
273
- display: block;
274
- font-size: 12px;
275
- line-height: 14px; }
276
- .mfp-figure figure {
277
- margin: 0; }
278
-
279
- .mfp-bottom-bar {
280
- margin-top: -36px;
281
- position: absolute;
282
- top: 100%;
283
- left: 0;
284
- width: 100%;
285
- cursor: auto; }
286
-
287
- .mfp-title {
288
- text-align: left;
289
- line-height: 18px;
290
- color: #F3F3F3;
291
- word-wrap: break-word;
292
- padding-right: 36px; }
293
-
294
- .mfp-image-holder .mfp-content {
295
- max-width: 100%; }
296
-
297
- .mfp-gallery .mfp-image-holder .mfp-figure {
298
- cursor: pointer; }
299
-
300
- @media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
301
- /**
302
- * Remove all paddings around the image on small screen
303
- */
304
- .mfp-img-mobile .mfp-image-holder {
305
- padding-left: 0;
306
- padding-right: 0; }
307
- .mfp-img-mobile img.mfp-img {
308
- padding: 0; }
309
- .mfp-img-mobile .mfp-figure:after {
310
- top: 0;
311
- bottom: 0; }
312
- .mfp-img-mobile .mfp-figure small {
313
- display: inline;
314
- margin-left: 5px; }
315
- .mfp-img-mobile .mfp-bottom-bar {
316
- background: rgba(0, 0, 0, 0.6);
317
- bottom: 0;
318
- margin: 0;
319
- top: auto;
320
- padding: 3px 5px;
321
- position: fixed;
322
- box-sizing: border-box; }
323
- .mfp-img-mobile .mfp-bottom-bar:empty {
324
- padding: 0; }
325
- .mfp-img-mobile .mfp-counter {
326
- right: 5px;
327
- top: 3px; }
328
- .mfp-img-mobile .mfp-close {
329
- top: 0;
330
- right: 0;
331
- width: 35px;
332
- height: 35px;
333
- line-height: 35px;
334
- background: rgba(0, 0, 0, 0.6);
335
- position: fixed;
336
- text-align: center;
337
- padding: 0; } }
338
-
339
- @media all and (max-width: 900px) {
340
- .mfp-arrow {
341
- -webkit-transform: scale(0.75);
342
- transform: scale(0.75); }
343
- .mfp-arrow-left {
344
- -webkit-transform-origin: 0;
345
- transform-origin: 0; }
346
- .mfp-arrow-right {
347
- -webkit-transform-origin: 100%;
348
- transform-origin: 100%; }
349
- .mfp-container {
350
- padding-left: 6px;
351
- padding-right: 6px; } }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fields/class-acfb-acf-field-margin-v5.php ADDED
@@ -0,0 +1,749 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // exit if accessed directly
4
+ if( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+
7
+ // check if class already exists
8
+ if( !class_exists('acfb_acf_field_margin') ) :
9
+
10
+
11
+ class acfb_acf_field_margin extends acf_field {
12
+
13
+
14
+ /*
15
+ * __construct
16
+ *
17
+ * This function will setup the field type data
18
+ *
19
+ * @type function
20
+ * @date 5/03/2014
21
+ * @since 5.0.0
22
+ *
23
+ * @param n/a
24
+ * @return n/a
25
+ */
26
+
27
+ function __construct( $settings ) {
28
+
29
+ /*
30
+ * name (string) Single word, no spaces. Underscores allowed
31
+ */
32
+
33
+
34
+ $this->name = 'margin';
35
+
36
+
37
+ /*
38
+ * label (string) Multiple words, can include spaces, visible when selecting a field type
39
+ */
40
+
41
+ $this->label = __('Acfb Margin', 'acfb-margin');
42
+
43
+
44
+ /*
45
+ * category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
46
+ */
47
+
48
+ $this->category = 'basic';
49
+
50
+
51
+ /*
52
+ * defaults (array) Array of default settings which are merged into the field object. These are used later in settings
53
+ */
54
+
55
+ $this->defaults = array(
56
+ 'margin_enable' => 0
57
+ );
58
+
59
+
60
+ /*
61
+ * l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
62
+ * var message = acf._e('margin', 'error');
63
+ */
64
+
65
+ $this->l10n = array(
66
+ 'error' => __('Error! Please enter a higher value', 'acfb-margin'),
67
+ );
68
+
69
+
70
+ /*
71
+ * settings (array) Store plugin settings (url, path, version) as a reference for later use with assets
72
+ */
73
+
74
+ $this->settings = $settings;
75
+
76
+
77
+ // do not delete!
78
+ parent::__construct();
79
+
80
+ }
81
+
82
+
83
+ /*
84
+ * render_field_settings()
85
+ *
86
+ * Create extra settings for your field. These are visible when editing a field
87
+ *
88
+ * @type action
89
+ * @since 3.6
90
+ * @date 23/01/13
91
+ *
92
+ * @param $field (array) the $field being edited
93
+ * @return n/a
94
+ */
95
+
96
+ function render_field_settings( $field ) {
97
+
98
+ /*
99
+ * acf_render_field_setting
100
+ *
101
+ * This function will create a setting for your field. Simply pass the $field parameter and an array of field settings.
102
+ * The array of settings does not require a `value` or `prefix`; These settings are found from the $field array.
103
+ *
104
+ * More than one setting can be added by copy/paste the above code.
105
+ * Please note that you must also have a matching $defaults value for the field name (font_size)
106
+ */
107
+
108
+ acf_render_field_setting( $field, array(
109
+ 'label' => __('Enable Field','acfb-typography'),
110
+ 'instructions' => __('Default','acfb-typography'),
111
+ 'type' => 'true_false',
112
+ 'name' => 'margin_enable',
113
+ 'layout' => 'horizontal',
114
+ 'ui' => 0
115
+ ));
116
+
117
+ acf_render_field_setting( $field, array(
118
+ 'label' => __('Margin Top','acfb-margin'),
119
+ 'instructions' => __('Default','acfb-margin'),
120
+ 'type' => 'number',
121
+ 'name' => 'margin_top',
122
+ 'prepend' => 'px',
123
+ ));
124
+
125
+ acf_render_field_setting( $field, array(
126
+ 'label' => __('Margin Right','acfb-margin'),
127
+ 'instructions' => __('Default','acfb-margin'),
128
+ 'type' => 'number',
129
+ 'name' => 'margin_right',
130
+ 'prepend' => 'px',
131
+ ));
132
+
133
+ acf_render_field_setting( $field, array(
134
+ 'label' => __('Margin Bottom','acfb-margin'),
135
+ 'instructions' => __('Default','acfb-margin'),
136
+ 'type' => 'number',
137
+ 'name' => 'margin_bottom',
138
+ 'prepend' => 'px',
139
+ ));
140
+
141
+
142
+ acf_render_field_setting( $field, array(
143
+ 'label' => __('Margin Left','acfb-margin'),
144
+ 'instructions' => __('Default','acfb-margin'),
145
+ 'type' => 'number',
146
+ 'name' => 'margin_left',
147
+ 'prepend' => 'px',
148
+ ));
149
+
150
+
151
+
152
+
153
+
154
+ }
155
+
156
+
157
+
158
+ /*
159
+ * render_field()
160
+ *
161
+ * Create the HTML interface for your field
162
+ *
163
+ * @param $field (array) the $field being rendered
164
+ *
165
+ * @type action
166
+ * @since 3.6
167
+ * @date 23/01/13
168
+ *
169
+ * @param $field (array) the $field being edited
170
+ * @return n/a
171
+ */
172
+
173
+ function render_field( $field ) {
174
+
175
+
176
+ /*
177
+ * Review the data of $field.
178
+ * This will show what data is available
179
+ */
180
+
181
+
182
+ // echo '<pre>';
183
+ // print_r( $field );
184
+ // echo '</pre>';
185
+
186
+
187
+ /*
188
+ * Create a simple text input using the 'font_size' setting.
189
+ */
190
+
191
+ $field = array_merge($this->defaults, $field);
192
+
193
+ // $default_font_family = $field['font_family'];
194
+
195
+ if ( empty($field['value']) ) {
196
+
197
+ $field['value']['margin_enable'] = $field['margin_enable'];
198
+
199
+ $field['value']['margin_top'] = $field['margin_top'];
200
+ $field['value']['margin_bottom'] = $field['margin_bottom'];
201
+ $field['value']['margin_left'] = $field['margin_left'];
202
+ $field['value']['margin_right'] = $field['margin_right'];
203
+
204
+ }
205
+
206
+ ?>
207
+ <?php
208
+ ?>
209
+
210
+
211
+ <div class="acf_margin_root acfb_cs_field_root">
212
+
213
+
214
+ <div class="acf-input">
215
+ <div class="acf-true-false">
216
+ <input type="checkbox"
217
+ name="<?php echo $field['name'] . 'margin_enable' ?>"
218
+ value="<?php echo $field['value']['margin_enable']; ?>"
219
+ id="acfb_eye_margin_<?php echo $field['name']; ?>"
220
+ class="acfb-checkbox-true-false"
221
+ <?php
222
+ if ($field['value']['margin_enable'] === 1) {
223
+
224
+ echo 'checked';
225
+
226
+ }
227
+ ?>
228
+ >
229
+ <label for="acfb_eye_margin_<?php echo $field['name']; ?>">
230
+ <svg class="acfb_eye_svg" viewBox="0 -1 401.52289 401" xmlns="http://www.w3.org/2000/svg"><path d="m370.589844 250.972656c-5.523438 0-10 4.476563-10 10v88.789063c-.019532 16.5625-13.4375 29.984375-30 30h-280.589844c-16.5625-.015625-29.980469-13.4375-30-30v-260.589844c.019531-16.558594 13.4375-29.980469 30-30h88.789062c5.523438 0 10-4.476563 10-10 0-5.519531-4.476562-10-10-10h-88.789062c-27.601562.03125-49.96875 22.398437-50 50v260.59375c.03125 27.601563 22.398438 49.96875 50 50h280.589844c27.601562-.03125 49.96875-22.398437 50-50v-88.792969c0-5.523437-4.476563-10-10-10zm0 0"/><path d="m376.628906 13.441406c-17.574218-17.574218-46.066406-17.574218-63.640625 0l-178.40625 178.40625c-1.222656 1.222656-2.105469 2.738282-2.566406 4.402344l-23.460937 84.699219c-.964844 3.472656.015624 7.191406 2.5625 9.742187 2.550781 2.546875 6.269531 3.527344 9.742187 2.566406l84.699219-23.464843c1.664062-.460938 3.179687-1.34375 4.402344-2.566407l178.402343-178.410156c17.546875-17.585937 17.546875-46.054687 0-63.640625zm-220.257812 184.90625 146.011718-146.015625 47.089844 47.089844-146.015625 146.015625zm-9.40625 18.875 37.621094 37.625-52.039063 14.417969zm227.257812-142.546875-10.605468 10.605469-47.09375-47.09375 10.609374-10.605469c9.761719-9.761719 25.589844-9.761719 35.351563 0l11.738281 11.734375c9.746094 9.773438 9.746094 25.589844 0 35.359375zm0 0"/></svg>
231
+ </label>
232
+ </div>
233
+ </div>
234
+
235
+
236
+
237
+ <?php
238
+ $acfb_margin_display = $field['value']['margin_enable'] === 1 ? 'block' : 'none';
239
+ ?>
240
+
241
+ <div class="acfb_margin_main acfb_cs_field_main" style="display: <?php echo $acfb_margin_display; ?>">
242
+
243
+ <div class="acfb-margin">
244
+
245
+ <div class="acf-field acf-field-range">
246
+ <div class="acf-label">
247
+ <label>Top</label>
248
+ </div>
249
+ <div class="acf-input">
250
+ <div class="acf-range-wrap">
251
+ <input
252
+ type="number"
253
+ id="test"
254
+ name="<?php echo $field['name'] . 'margin_top' ?>"
255
+ value="<?php echo esc_attr($field['value']['margin_top']) ?>"
256
+ step="1" style="width: 3.9em;"
257
+ >
258
+ <div class="acf-append">
259
+ <?php //echo $field['value']['margin_top'] ?>
260
+ px
261
+ </div>
262
+ </div>
263
+ </div>
264
+ </div>
265
+
266
+
267
+ <div class="acf-field acf-field-range">
268
+ <div class="acf-label">
269
+ <label>Right</label>
270
+ </div>
271
+ <div class="acf-input">
272
+ <div class="acf-range-wrap">
273
+ <input
274
+ type="number"
275
+ id="test"
276
+ name="<?php echo $field['name'] . 'margin_right' ?>"
277
+ value="<?php echo esc_attr($field['value']['margin_right']) ?>"
278
+ step="1" style="width: 3.9em;"
279
+ >
280
+ <div class="acf-append">
281
+ <?php //echo $field['value']['margin_right'] ?>
282
+ px
283
+ </div>
284
+ </div>
285
+ </div>
286
+ </div>
287
+
288
+
289
+ <div class="acf-field acf-field-range">
290
+ <div class="acf-label">
291
+ <label>Bottom</label>
292
+ </div>
293
+ <div class="acf-input">
294
+ <div class="acf-range-wrap">
295
+ <input
296
+ type="number"
297
+ id="test"
298
+ name="<?php echo $field['name'] . 'margin_bottom' ?>"
299
+ value="<?php echo esc_attr($field['value']['margin_bottom']) ?>"
300
+ step="1" style="width: 3.9em;"
301
+ >
302
+ <div class="acf-append">
303
+ <?php //echo $field['value']['margin_bottom'] ?>
304
+ px
305
+ </div>
306
+ </div>
307
+ </div>
308
+ </div>
309
+
310
+ <div class="acf-field acf-field-range">
311
+ <div class="acf-label">
312
+ <label>Left</label>
313
+ </div>
314
+ <div class="acf-input">
315
+ <div class="acf-range-wrap">
316
+ <input
317
+ type="number"
318
+ id="test"
319
+ name="<?php echo $field['name'] . 'margin_left' ?>"
320
+ value="<?php echo esc_attr($field['value']['margin_left']) ?>"
321
+ step="1" style="width: 3.9em;"
322
+ >
323
+ <div class="acf-append">
324
+ <?php //echo $field['value']['margin_left'] ?>
325
+ px
326
+ </div>
327
+ </div>
328
+ </div>
329
+ </div>
330
+
331
+ </div>
332
+ </div>
333
+ </div>
334
+
335
+
336
+ <?php
337
+ }
338
+
339
+
340
+ /*
341
+ * input_admin_enqueue_scripts()
342
+ *
343
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
344
+ * Use this action to add CSS + JavaScript to assist your render_field() action.
345
+ *
346
+ * @type action (admin_enqueue_scripts)
347
+ * @since 3.6
348
+ * @date 23/01/13
349
+ *
350
+ * @param n/a
351
+ * @return n/a
352
+ */
353
+
354
+
355
+ /*
356
+ function input_admin_enqueue_scripts() {
357
+
358
+ // vars
359
+ $url = $this->settings['url'];
360
+ $version = $this->settings['version'];
361
+
362
+
363
+ // register & include JS
364
+ wp_register_script('acfb-margin', "{$url}assets/js/input.js", array('acf-input'), $version);
365
+ wp_enqueue_script('acfb-margin');
366
+
367
+
368
+ // register & include CSS
369
+ wp_register_style('acfb-margin', "{$url}assets/css/input.css", array('acf-input'), $version);
370
+ wp_enqueue_style('acfb-margin');
371
+
372
+ }
373
+
374
+ */
375
+
376
+
377
+ /*
378
+ * input_admin_head()
379
+ *
380
+ * This action is called in the admin_head action on the edit screen where your field is created.
381
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
382
+ *
383
+ * @type action (admin_head)
384
+ * @since 3.6
385
+ * @date 23/01/13
386
+ *
387
+ * @param n/a
388
+ * @return n/a
389
+ */
390
+
391
+ /*
392
+
393
+ function input_admin_head() {
394
+
395
+
396
+
397
+ }
398
+
399
+ */
400
+
401
+
402
+ /*
403
+ * input_form_data()
404
+ *
405
+ * This function is called once on the 'input' page between the head and footer
406
+ * There are 2 situations where ACF did not load during the 'acf/input_admin_enqueue_scripts' and
407
+ * 'acf/input_admin_head' actions because ACF did not know it was going to be used. These situations are
408
+ * seen on comments / user edit forms on the front end. This function will always be called, and includes
409
+ * $args that related to the current screen such as $args['post_id']
410
+ *
411
+ * @type function
412
+ * @date 6/03/2014
413
+ * @since 5.0.0
414
+ *
415
+ * @param $args (array)
416
+ * @return n/a
417
+ */
418
+
419
+ /*
420
+
421
+ function input_form_data( $args ) {
422
+
423
+
424
+
425
+ }
426
+
427
+ */
428
+
429
+
430
+ /*
431
+ * input_admin_footer()
432
+ *
433
+ * This action is called in the admin_footer action on the edit screen where your field is created.
434
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
435
+ *
436
+ * @type action (admin_footer)
437
+ * @since 3.6
438
+ * @date 23/01/13
439
+ *
440
+ * @param n/a
441
+ * @return n/a
442
+ */
443
+
444
+ /*
445
+
446
+ function input_admin_footer() {
447
+
448
+
449
+
450
+ }
451
+
452
+ */
453
+
454
+
455
+ /*
456
+ * field_group_admin_enqueue_scripts()
457
+ *
458
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is edited.
459
+ * Use this action to add CSS + JavaScript to assist your render_field_options() action.
460
+ *
461
+ * @type action (admin_enqueue_scripts)
462
+ * @since 3.6
463
+ * @date 23/01/13
464
+ *
465
+ * @param n/a
466
+ * @return n/a
467
+ */
468
+
469
+ /*
470
+
471
+ function field_group_admin_enqueue_scripts() {
472
+
473
+ }
474
+
475
+ */
476
+
477
+
478
+ /*
479
+ * field_group_admin_head()
480
+ *
481
+ * This action is called in the admin_head action on the edit screen where your field is edited.
482
+ * Use this action to add CSS and JavaScript to assist your render_field_options() action.
483
+ *
484
+ * @type action (admin_head)
485
+ * @since 3.6
486
+ * @date 23/01/13
487
+ *
488
+ * @param n/a
489
+ * @return n/a
490
+ */
491
+
492
+ /*
493
+
494
+ function field_group_admin_head() {
495
+
496
+ }
497
+
498
+ */
499
+
500
+
501
+ /*
502
+ * load_value()
503
+ *
504
+ * This filter is applied to the $value after it is loaded from the db
505
+ *
506
+ * @type filter
507
+ * @since 3.6
508
+ * @date 23/01/13
509
+ *
510
+ * @param $value (mixed) the value found in the database
511
+ * @param $post_id (mixed) the $post_id from which the value was loaded
512
+ * @param $field (array) the field array holding all the field options
513
+ * @return $value
514
+ */
515
+
516
+
517
+
518
+ function load_value( $value, $post_id, $field ) {
519
+
520
+ return $value;
521
+
522
+ }
523
+
524
+
525
+
526
+
527
+ /*
528
+ * update_value()
529
+ *
530
+ * This filter is applied to the $value before it is saved in the db
531
+ *
532
+ * @type filter
533
+ * @since 3.6
534
+ * @date 23/01/13
535
+ *
536
+ * @param $value (mixed) the value found in the database
537
+ * @param $post_id (mixed) the $post_id from which the value was loaded
538
+ * @param $field (array) the field array holding all the field options
539
+ * @return $value
540
+ */
541
+
542
+
543
+
544
+ function update_value( $value, $post_id, $field ) {
545
+
546
+ return $value;
547
+
548
+ }
549
+
550
+
551
+
552
+
553
+ /*
554
+ * format_value()
555
+ *
556
+ * This filter is appied to the $value after it is loaded from the db and before it is returned to the template
557
+ *
558
+ * @type filter
559
+ * @since 3.6
560
+ * @date 23/01/13
561
+ *
562
+ * @param $value (mixed) the value which was loaded from the database
563
+ * @param $post_id (mixed) the $post_id from which the value was loaded
564
+ * @param $field (array) the field array holding all the field options
565
+ *
566
+ * @return $value (mixed) the modified value
567
+ */
568
+
569
+
570
+
571
+ function format_value( $value, $post_id, $field ) {
572
+
573
+ // bail early if no value
574
+ if( empty($value) ) {
575
+
576
+ return $value;
577
+
578
+ }
579
+
580
+
581
+ // apply setting
582
+ // if( $field['font_size'] > 12 ) {
583
+
584
+ // format the value
585
+ // $value = 'something';
586
+
587
+ // }
588
+
589
+
590
+ // return
591
+ return $value;
592
+ }
593
+
594
+
595
+
596
+
597
+ /*
598
+ * validate_value()
599
+ *
600
+ * This filter is used to perform validation on the value prior to saving.
601
+ * All values are validated regardless of the field's required setting. This allows you to validate and return
602
+ * messages to the user if the value is not correct
603
+ *
604
+ * @type filter
605
+ * @date 11/02/2014
606
+ * @since 5.0.0
607
+ *
608
+ * @param $valid (boolean) validation status based on the value and the field's required setting
609
+ * @param $value (mixed) the $_POST value
610
+ * @param $field (array) the field array holding all the field options
611
+ * @param $input (string) the corresponding input name for $_POST value
612
+ * @return $valid
613
+ */
614
+
615
+
616
+
617
+ // function validate_value( $valid, $value, $field, $input ){
618
+
619
+ // // Basic usage
620
+
621
+ // if( $value < $field['custom_minimum_setting'] )
622
+ // {
623
+ // $valid = false;
624
+ // }
625
+
626
+
627
+ // // Advanced usage
628
+ // if( $value < $field['custom_minimum_setting'] )
629
+ // {
630
+ // $valid = __('The value is too little!','acfb-margin');
631
+ // }
632
+
633
+
634
+ // // return
635
+ // return $valid;
636
+
637
+ // }
638
+
639
+
640
+
641
+ /*
642
+ * delete_value()
643
+ *
644
+ * This action is fired after a value has been deleted from the db.
645
+ * Please note that saving a blank value is treated as an update, not a delete
646
+ *
647
+ * @type action
648
+ * @date 6/03/2014
649
+ * @since 5.0.0
650
+ *
651
+ * @param $post_id (mixed) the $post_id from which the value was deleted
652
+ * @param $key (string) the $meta_key which the value was deleted
653
+ * @return n/a
654
+ */
655
+
656
+ /*
657
+
658
+ function delete_value( $post_id, $key ) {
659
+
660
+
661
+
662
+ }
663
+
664
+ */
665
+
666
+
667
+ /*
668
+ * load_field()
669
+ *
670
+ * This filter is applied to the $field after it is loaded from the database
671
+ *
672
+ * @type filter
673
+ * @date 23/01/2013
674
+ * @since 3.6.0
675
+ *
676
+ * @param $field (array) the field array holding all the field options
677
+ * @return $field
678
+ */
679
+
680
+
681
+
682
+ function load_field( $field ) {
683
+
684
+ return $field;
685
+
686
+ }
687
+
688
+
689
+
690
+
691
+ /*
692
+ * update_field()
693
+ *
694
+ * This filter is applied to the $field before it is saved to the database
695
+ *
696
+ * @type filter
697
+ * @date 23/01/2013
698
+ * @since 3.6.0
699
+ *
700
+ * @param $field (array) the field array holding all the field options
701
+ * @return $field
702
+ */
703
+
704
+
705
+
706
+ function update_field( $field ) {
707
+
708
+ return $field;
709
+
710
+ }
711
+
712
+
713
+
714
+
715
+ /*
716
+ * delete_field()
717
+ *
718
+ * This action is fired after a field is deleted from the database
719
+ *
720
+ * @type action
721
+ * @date 11/02/2014
722
+ * @since 5.0.0
723
+ *
724
+ * @param $field (array) the field array holding all the field options
725
+ * @return n/a
726
+ */
727
+
728
+ /*
729
+
730
+ function delete_field( $field ) {
731
+
732
+
733
+
734
+ }
735
+
736
+ */
737
+
738
+
739
+ }
740
+
741
+
742
+ // initialize
743
+ new acfb_acf_field_margin( $this->settings );
744
+
745
+
746
+ // class_exists check
747
+ endif;
748
+
749
+ ?>
fields/class-acfb-acf-field-padding-v5.php ADDED
@@ -0,0 +1,747 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // exit if accessed directly
4
+ if( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+
7
+ // check if class already exists
8
+ if( !class_exists('acfb_acf_field_padding') ) :
9
+
10
+
11
+ class acfb_acf_field_padding extends acf_field {
12
+
13
+
14
+ /*
15
+ * __construct
16
+ *
17
+ * This function will setup the field type data
18
+ *
19
+ * @type function
20
+ * @date 5/03/2014
21
+ * @since 5.0.0
22
+ *
23
+ * @param n/a
24
+ * @return n/a
25
+ */
26
+
27
+ function __construct( $settings ) {
28
+
29
+ /*
30
+ * name (string) Single word, no spaces. Underscores allowed
31
+ */
32
+
33
+
34
+ $this->name = 'padding';
35
+
36
+
37
+ /*
38
+ * label (string) Multiple words, can include spaces, visible when selecting a field type
39
+ */
40
+
41
+ $this->label = __('Acfb Padding', 'acfb-padding');
42
+
43
+
44
+ /*
45
+ * category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
46
+ */
47
+
48
+ $this->category = 'basic';
49
+
50
+
51
+ /*
52
+ * defaults (array) Array of default settings which are merged into the field object. These are used later in settings
53
+ */
54
+
55
+ $this->defaults = array(
56
+ 'padding_enable' => 0
57
+ );
58
+
59
+
60
+ /*
61
+ * l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
62
+ * var message = acf._e('padding', 'error');
63
+ */
64
+
65
+ $this->l10n = array(
66
+ 'error' => __('Error! Please enter a higher value', 'acfb-padding'),
67
+ );
68
+
69
+
70
+ /*
71
+ * settings (array) Store plugin settings (url, path, version) as a reference for later use with assets
72
+ */
73
+
74
+ $this->settings = $settings;
75
+
76
+
77
+ // do not delete!
78
+ parent::__construct();
79
+
80
+ }
81
+
82
+
83
+ /*
84
+ * render_field_settings()
85
+ *
86
+ * Create extra settings for your field. These are visible when editing a field
87
+ *
88
+ * @type action
89
+ * @since 3.6
90
+ * @date 23/01/13
91
+ *
92
+ * @param $field (array) the $field being edited
93
+ * @return n/a
94
+ */
95
+
96
+ function render_field_settings( $field ) {
97
+
98
+ /*
99
+ * acf_render_field_setting
100
+ *
101
+ * This function will create a setting for your field. Simply pass the $field parameter and an array of field settings.
102
+ * The array of settings does not require a `value` or `prefix`; These settings are found from the $field array.
103
+ *
104
+ * More than one setting can be added by copy/paste the above code.
105
+ * Please note that you must also have a matching $defaults value for the field name (font_size)
106
+ */
107
+
108
+
109
+ acf_render_field_setting( $field, array(
110
+ 'label' => __('Enable Field','acfb-typography'),
111
+ 'instructions' => __('Default','acfb-typography'),
112
+ 'type' => 'true_false',
113
+ 'name' => 'padding_enable',
114
+ 'layout' => 'horizontal',
115
+ 'ui' => 0
116
+ ));
117
+
118
+ acf_render_field_setting( $field, array(
119
+ 'label' => __('Padding Top','acfb-padding'),
120
+ 'instructions' => __('Default','acfb-padding'),
121
+ 'type' => 'number',
122
+ 'name' => 'padding_top',
123
+ 'prepend' => 'px',
124
+ ));
125
+
126
+ acf_render_field_setting( $field, array(
127
+ 'label' => __('Padding Right','acfb-padding'),
128
+ 'instructions' => __('Default','acfb-padding'),
129
+ 'type' => 'number',
130
+ 'name' => 'padding_right',
131
+ 'prepend' => 'px',
132
+ ));
133
+
134
+ acf_render_field_setting( $field, array(
135
+ 'label' => __('Padding Bottom','acfb-padding'),
136
+ 'instructions' => __('Default','acfb-padding'),
137
+ 'type' => 'number',
138
+ 'name' => 'padding_bottom',
139
+ 'prepend' => 'px',
140
+ ));
141
+
142
+
143
+ acf_render_field_setting( $field, array(
144
+ 'label' => __('Padding Left','acfb-padding'),
145
+ 'instructions' => __('Default','acfb-padding'),
146
+ 'type' => 'number',
147
+ 'name' => 'padding_left',
148
+ 'prepend' => 'px',
149
+ ));
150
+
151
+
152
+ }
153
+
154
+
155
+
156
+ /*
157
+ * render_field()
158
+ *
159
+ * Create the HTML interface for your field
160
+ *
161
+ * @param $field (array) the $field being rendered
162
+ *
163
+ * @type action
164
+ * @since 3.6
165
+ * @date 23/01/13
166
+ *
167
+ * @param $field (array) the $field being edited
168
+ * @return n/a
169
+ */
170
+
171
+ function render_field( $field ) {
172
+
173
+
174
+ /*
175
+ * Review the data of $field.
176
+ * This will show what data is available
177
+ */
178
+
179
+
180
+ // echo '<pre>';
181
+ // print_r( $field );
182
+ // echo '</pre>';
183
+
184
+
185
+ /*
186
+ * Create a simple text input using the 'font_size' setting.
187
+ */
188
+
189
+ $field = array_merge($this->defaults, $field);
190
+
191
+ // $default_font_family = $field['font_family'];
192
+
193
+ if ( empty($field['value']) ) {
194
+
195
+ $field['value']['padding_enable'] = $field['padding_enable'];
196
+
197
+ $field['value']['padding_top'] = $field['padding_top'];
198
+ $field['value']['padding_bottom'] = $field['padding_bottom'];
199
+ $field['value']['padding_left'] = $field['padding_left'];
200
+ $field['value']['padding_right'] = $field['padding_right'];
201
+
202
+ }
203
+
204
+ ?>
205
+ <?php
206
+ ?>
207
+
208
+ <div class="acf_padding_root acfb_cs_field_root">
209
+
210
+
211
+
212
+ <div class="acf-input">
213
+ <div class="acf-true-false">
214
+ <input type="checkbox"
215
+ name="<?php echo $field['name'] . 'padding_enable' ?>"
216
+ value="<?php echo $field['value']['padding_enable']; ?>"
217
+ id="acfb_eye_padding_<?php echo $field['name']; ?>"
218
+ class="acfb-checkbox-true-false"
219
+ <?php
220
+ if ($field['value']['padding_enable'] === 1) {
221
+
222
+ echo 'checked';
223
+
224
+ }
225
+ ?>
226
+ >
227
+ <label for="acfb_eye_padding_<?php echo $field['name']; ?>">
228
+ <svg class="acfb_eye_svg" viewBox="0 -1 401.52289 401" xmlns="http://www.w3.org/2000/svg"><path d="m370.589844 250.972656c-5.523438 0-10 4.476563-10 10v88.789063c-.019532 16.5625-13.4375 29.984375-30 30h-280.589844c-16.5625-.015625-29.980469-13.4375-30-30v-260.589844c.019531-16.558594 13.4375-29.980469 30-30h88.789062c5.523438 0 10-4.476563 10-10 0-5.519531-4.476562-10-10-10h-88.789062c-27.601562.03125-49.96875 22.398437-50 50v260.59375c.03125 27.601563 22.398438 49.96875 50 50h280.589844c27.601562-.03125 49.96875-22.398437 50-50v-88.792969c0-5.523437-4.476563-10-10-10zm0 0"/><path d="m376.628906 13.441406c-17.574218-17.574218-46.066406-17.574218-63.640625 0l-178.40625 178.40625c-1.222656 1.222656-2.105469 2.738282-2.566406 4.402344l-23.460937 84.699219c-.964844 3.472656.015624 7.191406 2.5625 9.742187 2.550781 2.546875 6.269531 3.527344 9.742187 2.566406l84.699219-23.464843c1.664062-.460938 3.179687-1.34375 4.402344-2.566407l178.402343-178.410156c17.546875-17.585937 17.546875-46.054687 0-63.640625zm-220.257812 184.90625 146.011718-146.015625 47.089844 47.089844-146.015625 146.015625zm-9.40625 18.875 37.621094 37.625-52.039063 14.417969zm227.257812-142.546875-10.605468 10.605469-47.09375-47.09375 10.609374-10.605469c9.761719-9.761719 25.589844-9.761719 35.351563 0l11.738281 11.734375c9.746094 9.773438 9.746094 25.589844 0 35.359375zm0 0"/></svg>
229
+ </label>
230
+ </div>
231
+ </div>
232
+
233
+
234
+
235
+
236
+
237
+
238
+ <?php
239
+ $acfb_padding_display = $field['value']['padding_enable'] === 1 ? 'block' : 'none';
240
+ ?>
241
+
242
+
243
+ <div class="acfb_padding_main acfb_cs_field_main" style="display: <?php echo $acfb_padding_display; ?>">
244
+
245
+ <div class="acfb-padding">
246
+
247
+ <div class="acf-field acf-field-range">
248
+ <div class="acf-label">
249
+ <label>Top</label>
250
+ </div>
251
+ <div class="acf-input">
252
+ <div class="acf-range-wrap">
253
+ <input
254
+ type="number"
255
+ id="test"
256
+ name="<?php echo $field['name'] . 'padding_top' ?>"
257
+ value="<?php echo esc_attr($field['value']['padding_top']) ?>"
258
+ step="1" style="width: 3.9em;"
259
+ >
260
+ <div class="acf-append">
261
+ <?php //echo $field['value']['padding_top'] ?>
262
+ px
263
+ </div>
264
+ </div>
265
+ </div>
266
+ </div>
267
+
268
+ <div class="acf-field acf-field-range">
269
+ <div class="acf-label">
270
+ <label>Right</label>
271
+ </div>
272
+ <div class="acf-input">
273
+ <div class="acf-range-wrap">
274
+ <input
275
+ type="number"
276
+ id="test"
277
+ name="<?php echo $field['name'] . 'padding_right' ?>"
278
+ value="<?php echo esc_attr($field['value']['padding_right']) ?>"
279
+ step="1" style="width: 3.9em;"
280
+ >
281
+ <div class="acf-append">
282
+ <?php //echo $field['value']['padding_right'] ?>
283
+ px
284
+ </div>
285
+ </div>
286
+ </div>
287
+ </div>
288
+
289
+ <div class="acf-field acf-field-range">
290
+ <div class="acf-label">
291
+ <label>Bottom</label>
292
+ </div>
293
+ <div class="acf-input">
294
+ <div class="acf-range-wrap">
295
+ <input
296
+ type="number"
297
+ id="test"
298
+ name="<?php echo $field['name'] . 'padding_bottom' ?>"
299
+ value="<?php echo esc_attr($field['value']['padding_bottom']) ?>"
300
+ step="1" style="width: 3.9em;"
301
+ >
302
+ <div class="acf-append">
303
+ <?php //echo $field['value']['padding_bottom'] ?>
304
+ px
305
+ </div>
306
+ </div>
307
+ </div>
308
+ </div>
309
+
310
+ <div class="acf-field acf-field-range">
311
+ <div class="acf-label">
312
+ <label>Left</label>
313
+ </div>
314
+ <div class="acf-input">
315
+ <div class="acf-range-wrap">
316
+ <input
317
+ type="number"
318
+ id="test"
319
+ name="<?php echo $field['name'] . 'padding_left' ?>"
320
+ value="<?php echo esc_attr($field['value']['padding_left']) ?>"
321
+ step="1" style="width: 3.9em;"
322
+ >
323
+ <div class="acf-append">
324
+ <?php //echo $field['value']['padding_left'] ?>
325
+ px
326
+ </div>
327
+ </div>
328
+ </div>
329
+ </div>
330
+
331
+ </div>
332
+
333
+ </div>
334
+ </div>
335
+
336
+ <?php
337
+ }
338
+
339
+
340
+ /*
341
+ * input_admin_enqueue_scripts()
342
+ *
343
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
344
+ * Use this action to add CSS + JavaScript to assist your render_field() action.
345
+ *
346
+ * @type action (admin_enqueue_scripts)
347
+ * @since 3.6
348
+ * @date 23/01/13
349
+ *
350
+ * @param n/a
351
+ * @return n/a
352
+ */
353
+
354
+
355
+
356
+ // function input_admin_enqueue_scripts() {
357
+
358
+ // // vars
359
+ // $url = $this->settings['url'];
360
+ // $version = $this->settings['version'];
361
+
362
+
363
+ // // register & include JS
364
+ // wp_register_script('acfb-padding', "{$url}assets/js/input.js", array('acf-input'), $version);
365
+ // wp_enqueue_script('acfb-padding');
366
+
367
+
368
+ // // register & include CSS
369
+ // wp_register_style('acfb-padding', "{$url}assets/css/input.css", array('acf-input'), $version);
370
+ // wp_enqueue_style('acfb-padding');
371
+
372
+ // }
373
+
374
+
375
+
376
+
377
+ /*
378
+ * input_admin_head()
379
+ *
380
+ * This action is called in the admin_head action on the edit screen where your field is created.
381
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
382
+ *
383
+ * @type action (admin_head)
384
+ * @since 3.6
385
+ * @date 23/01/13
386
+ *
387
+ * @param n/a
388
+ * @return n/a
389
+ */
390
+
391
+ /*
392
+
393
+ function input_admin_head() {
394
+
395
+
396
+
397
+ }
398
+
399
+ */
400
+
401
+
402
+ /*
403
+ * input_form_data()
404
+ *
405
+ * This function is called once on the 'input' page between the head and footer
406
+ * There are 2 situations where ACF did not load during the 'acf/input_admin_enqueue_scripts' and
407
+ * 'acf/input_admin_head' actions because ACF did not know it was going to be used. These situations are
408
+ * seen on comments / user edit forms on the front end. This function will always be called, and includes
409
+ * $args that related to the current screen such as $args['post_id']
410
+ *
411
+ * @type function
412
+ * @date 6/03/2014
413
+ * @since 5.0.0
414
+ *
415
+ * @param $args (array)
416
+ * @return n/a
417
+ */
418
+
419
+ /*
420
+
421
+ function input_form_data( $args ) {
422
+
423
+
424
+
425
+ }
426
+
427
+ */
428
+
429
+
430
+ /*
431
+ * input_admin_footer()
432
+ *
433
+ * This action is called in the admin_footer action on the edit screen where your field is created.
434
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
435
+ *
436
+ * @type action (admin_footer)
437
+ * @since 3.6
438
+ * @date 23/01/13
439
+ *
440
+ * @param n/a
441
+ * @return n/a
442
+ */
443
+
444
+
445
+
446
+ // function input_admin_footer() {
447
+
448
+ // }
449
+
450
+
451
+
452
+
453
+ /*
454
+ * field_group_admin_enqueue_scripts()
455
+ *
456
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is edited.
457
+ * Use this action to add CSS + JavaScript to assist your render_field_options() action.
458
+ *
459
+ * @type action (admin_enqueue_scripts)
460
+ * @since 3.6
461
+ * @date 23/01/13
462
+ *
463
+ * @param n/a
464
+ * @return n/a
465
+ */
466
+
467
+ /*
468
+
469
+ function field_group_admin_enqueue_scripts() {
470
+
471
+ }
472
+
473
+ */
474
+
475
+
476
+ /*
477
+ * field_group_admin_head()
478
+ *
479
+ * This action is called in the admin_head action on the edit screen where your field is edited.
480
+ * Use this action to add CSS and JavaScript to assist your render_field_options() action.
481
+ *
482
+ * @type action (admin_head)
483
+ * @since 3.6
484
+ * @date 23/01/13
485
+ *
486
+ * @param n/a
487
+ * @return n/a
488
+ */
489
+
490
+ /*
491
+
492
+ function field_group_admin_head() {
493
+
494
+ }
495
+
496
+ */
497
+
498
+
499
+ /*
500
+ * load_value()
501
+ *
502
+ * This filter is applied to the $value after it is loaded from the db
503
+ *
504
+ * @type filter
505
+ * @since 3.6
506
+ * @date 23/01/13
507
+ *
508
+ * @param $value (mixed) the value found in the database
509
+ * @param $post_id (mixed) the $post_id from which the value was loaded
510
+ * @param $field (array) the field array holding all the field options
511
+ * @return $value
512
+ */
513
+
514
+
515
+
516
+ function load_value( $value, $post_id, $field ) {
517
+
518
+ return $value;
519
+
520
+ }
521
+
522
+
523
+
524
+
525
+ /*
526
+ * update_value()
527
+ *
528
+ * This filter is applied to the $value before it is saved in the db
529
+ *
530
+ * @type filter
531
+ * @since 3.6
532
+ * @date 23/01/13
533
+ *
534
+ * @param $value (mixed) the value found in the database
535
+ * @param $post_id (mixed) the $post_id from which the value was loaded
536
+ * @param $field (array) the field array holding all the field options
537
+ * @return $value
538
+ */
539
+
540
+
541
+
542
+ function update_value( $value, $post_id, $field ) {
543
+
544
+ return $value;
545
+
546
+ }
547
+
548
+
549
+
550
+
551
+ /*
552
+ * format_value()
553
+ *
554
+ * This filter is appied to the $value after it is loaded from the db and before it is returned to the template
555
+ *
556
+ * @type filter
557
+ * @since 3.6
558
+ * @date 23/01/13
559
+ *
560
+ * @param $value (mixed) the value which was loaded from the database
561
+ * @param $post_id (mixed) the $post_id from which the value was loaded
562
+ * @param $field (array) the field array holding all the field options
563
+ *
564
+ * @return $value (mixed) the modified value
565
+ */
566
+
567
+
568
+
569
+ function format_value( $value, $post_id, $field ) {
570
+
571
+ // bail early if no value
572
+ if( empty($value) ) {
573
+
574
+ return $value;
575
+
576
+ }
577
+
578
+
579
+ // apply setting
580
+ // if( $field['font_size'] > 12 ) {
581
+
582
+ // format the value
583
+ // $value = 'something';
584
+
585
+ // }
586
+
587
+
588
+ // return
589
+ return $value;
590
+ }
591
+
592
+
593
+
594
+
595
+ /*
596
+ * validate_value()
597
+ *
598
+ * This filter is used to perform validation on the value prior to saving.
599
+ * All values are validated regardless of the field's required setting. This allows you to validate and return
600
+ * messages to the user if the value is not correct
601
+ *
602
+ * @type filter
603
+ * @date 11/02/2014
604
+ * @since 5.0.0
605
+ *
606
+ * @param $valid (boolean) validation status based on the value and the field's required setting
607
+ * @param $value (mixed) the $_POST value
608
+ * @param $field (array) the field array holding all the field options
609
+ * @param $input (string) the corresponding input name for $_POST value
610
+ * @return $valid
611
+ */
612
+
613
+
614
+
615
+ // function validate_value( $valid, $value, $field, $input ){
616
+
617
+ // // Basic usage
618
+
619
+ // if( $value < $field['custom_minimum_setting'] )
620
+ // {
621
+ // $valid = false;
622
+ // }
623
+
624
+
625
+ // // Advanced usage
626
+ // if( $value < $field['custom_minimum_setting'] )
627
+ // {
628
+ // $valid = __('The value is too little!','acfb-padding');
629
+ // }
630
+
631
+
632
+ // // return
633
+ // return $valid;
634
+
635
+ // }
636
+
637
+
638
+
639
+ /*
640
+ * delete_value()
641
+ *
642
+ * This action is fired after a value has been deleted from the db.
643
+ * Please note that saving a blank value is treated as an update, not a delete
644
+ *
645
+ * @type action
646
+ * @date 6/03/2014
647
+ * @since 5.0.0
648
+ *
649
+ * @param $post_id (mixed) the $post_id from which the value was deleted
650
+ * @param $key (string) the $meta_key which the value was deleted
651
+ * @return n/a
652
+ */
653
+
654
+ /*
655
+
656
+ function delete_value( $post_id, $key ) {
657
+
658
+
659
+
660
+ }
661
+
662
+ */
663
+
664
+
665
+ /*
666
+ * load_field()
667
+ *
668
+ * This filter is applied to the $field after it is loaded from the database
669
+ *
670
+ * @type filter
671
+ * @date 23/01/2013
672
+ * @since 3.6.0
673
+ *
674
+ * @param $field (array) the field array holding all the field options
675
+ * @return $field
676
+ */
677
+
678
+
679
+
680
+ function load_field( $field ) {
681
+
682
+ return $field;
683
+
684
+ }
685
+
686
+
687
+
688
+
689
+ /*
690
+ * update_field()
691
+ *
692
+ * This filter is applied to the $field before it is saved to the database
693
+ *
694
+ * @type filter
695
+ * @date 23/01/2013
696
+ * @since 3.6.0
697
+ *
698
+ * @param $field (array) the field array holding all the field options
699
+ * @return $field
700
+ */
701
+
702
+
703
+
704
+ function update_field( $field ) {
705
+
706
+ return $field;
707
+
708
+ }
709
+
710
+
711
+
712
+
713
+ /*
714
+ * delete_field()
715
+ *
716
+ * This action is fired after a field is deleted from the database
717
+ *
718
+ * @type action
719
+ * @date 11/02/2014
720
+ * @since 5.0.0
721
+ *
722
+ * @param $field (array) the field array holding all the field options
723
+ * @return n/a
724
+ */
725
+
726
+ /*
727
+
728
+ function delete_field( $field ) {
729
+
730
+
731
+
732
+ }
733
+
734
+ */
735
+
736
+
737
+ }
738
+
739
+
740
+ // initialize
741
+ new acfb_acf_field_padding( $this->settings );
742
+
743
+
744
+ // class_exists check
745
+ endif;
746
+
747
+ ?>
fields/class-acfb-acf-field-typography-v5.php ADDED
@@ -0,0 +1,962 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // exit if accessed directly
4
+ if( ! defined( 'ABSPATH' ) ) exit;
5
+
6
+
7
+ // check if class already exists
8
+ if( !class_exists('acfb_acf_field_typography') ) :
9
+
10
+
11
+ class acfb_acf_field_typography extends acf_field {
12
+
13
+
14
+ /*
15
+ * __construct
16
+ *
17
+ * This function will setup the field type data
18
+ *
19
+ * @type function
20
+ * @date 5/03/2014
21
+ * @since 5.0.0
22
+ *
23
+ * @param n/a
24
+ * @return n/a
25
+ */
26
+
27
+ function __construct( $settings ) {
28
+
29
+ /*
30
+ * name (string) Single word, no spaces. Underscores allowed
31
+ */
32
+
33
+
34
+ $this->name = 'typography';
35
+
36
+
37
+ /*
38
+ * label (string) Multiple words, can include spaces, visible when selecting a field type
39
+ */
40
+
41
+ $this->label = __('Acfb Typography', 'acfb-typography');
42
+
43
+
44
+ /*
45
+ * category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
46
+ */
47
+
48
+ $this->category = 'basic';
49
+
50
+
51
+ /*
52
+ * defaults (array) Array of default settings which are merged into the field object. These are used later in settings
53
+ */
54
+
55
+ $this->defaults = array(
56
+ 'font_family_enable' => 0,
57
+ 'font_family' => 'default',
58
+ 'font_size' => 18,
59
+ 'font_weight' => 'default',
60
+ 'font_transform' => 'default',
61
+ 'font_style' => 'default',
62
+ 'font_decoration' => 'default',
63
+ 'font_line_height' => '',
64
+ 'font_letter_spacing' => ''
65
+
66
+ );
67
+
68
+
69
+
70
+ $f = '{"default":"Default","ABeeZee":"ABeeZee","Abel":"Abel","Abhaya+Libre":"Abhaya Libre","Abril+Fatface":"Abril Fatface","Aclonica":"Aclonica","Acme":"Acme","Actor":"Actor","Adamina":"Adamina","Advent+Pro":"Advent Pro","Aguafina+Script":"Aguafina Script","Akronim":"Akronim","Aladin":"Aladin","Alata":"Alata","Alatsi":"Alatsi","Aldrich":"Aldrich","Alef":"Alef","Alegreya":"Alegreya","Alegreya+SC":"Alegreya SC","Alegreya+Sans":"Alegreya Sans","Alegreya+Sans+SC":"Alegreya Sans SC","Aleo":"Aleo","Alex+Brush":"Alex Brush","Alfa+Slab+One":"Alfa Slab One","Alice":"Alice","Alike":"Alike","Alike+Angular":"Alike Angular","Allan":"Allan","Allerta":"Allerta","Allerta+Stencil":"Allerta Stencil","Allura":"Allura","Almarai":"Almarai","Almendra":"Almendra","Almendra+Display":"Almendra Display","Almendra+SC":"Almendra SC","Amarante":"Amarante","Amaranth":"Amaranth","Amatic+SC":"Amatic SC","Amethysta":"Amethysta","Amiko":"Amiko","Amiri":"Amiri","Amita":"Amita","Anaheim":"Anaheim","Andada":"Andada","Andika":"Andika","Angkor":"Angkor","Annie+Use+Your+Telescope":"Annie Use Your Telescope","Anonymous+Pro":"Anonymous Pro","Antic":"Antic","Antic+Didone":"Antic Didone","Antic+Slab":"Antic Slab","Anton":"Anton","Arapey":"Arapey","Arbutus":"Arbutus","Arbutus+Slab":"Arbutus Slab","Architects+Daughter":"Architects Daughter","Archivo":"Archivo","Archivo+Black":"Archivo Black","Archivo+Narrow":"Archivo Narrow","Aref+Ruqaa":"Aref Ruqaa","Arima+Madurai":"Arima Madurai","Arimo":"Arimo","Arizonia":"Arizonia","Armata":"Armata","Arsenal":"Arsenal","Artifika":"Artifika","Arvo":"Arvo","Arya":"Arya","Asap":"Asap","Asap+Condensed":"Asap Condensed","Asar":"Asar","Asset":"Asset","Assistant":"Assistant","Astloch":"Astloch","Asul":"Asul","Athiti":"Athiti","Atma":"Atma","Atomic+Age":"Atomic Age","Aubrey":"Aubrey","Audiowide":"Audiowide","Autour+One":"Autour One","Average":"Average","Average+Sans":"Average Sans","Averia+Gruesa+Libre":"Averia Gruesa Libre","Averia+Libre":"Averia Libre","Averia+Sans+Libre":"Averia Sans Libre","Averia+Serif+Libre":"Averia Serif Libre","B612":"B612","B612+Mono":"B612 Mono","Bad+Script":"Bad Script","Bahiana":"Bahiana","Bahianita":"Bahianita","Bai+Jamjuree":"Bai Jamjuree","Baloo+2":"Baloo 2","Baloo+Bhai+2":"Baloo Bhai 2","Baloo+Bhaina+2":"Baloo Bhaina 2","Baloo+Chettan+2":"Baloo Chettan 2","Baloo+Da+2":"Baloo Da 2","Baloo+Paaji+2":"Baloo Paaji 2","Baloo+Tamma+2":"Baloo Tamma 2","Baloo+Tammudu+2":"Baloo Tammudu 2","Baloo+Thambi+2":"Baloo Thambi 2","Balthazar":"Balthazar","Bangers":"Bangers","Barlow":"Barlow","Barlow+Condensed":"Barlow Condensed","Barlow+Semi+Condensed":"Barlow Semi Condensed","Barriecito":"Barriecito","Barrio":"Barrio","Basic":"Basic","Baskervville":"Baskervville","Battambang":"Battambang","Baumans":"Baumans","Bayon":"Bayon","Be+Vietnam":"Be Vietnam","Bebas+Neue":"Bebas Neue","Belgrano":"Belgrano","Bellefair":"Bellefair","Belleza":"Belleza","Bellota":"Bellota","Bellota+Text":"Bellota Text","BenchNine":"BenchNine","Bentham":"Bentham","Berkshire+Swash":"Berkshire Swash","Beth+Ellen":"Beth Ellen","Bevan":"Bevan","Big+Shoulders+Display":"Big Shoulders Display","Big+Shoulders+Text":"Big Shoulders Text","Bigelow+Rules":"Bigelow Rules","Bigshot+One":"Bigshot One","Bilbo":"Bilbo","Bilbo+Swash+Caps":"Bilbo Swash Caps","BioRhyme":"BioRhyme","BioRhyme+Expanded":"BioRhyme Expanded","Biryani":"Biryani","Bitter":"Bitter","Black+And+White+Picture":"Black And White Picture","Black+Han+Sans":"Black Han Sans","Black+Ops+One":"Black Ops One","Blinker":"Blinker","Bokor":"Bokor","Bonbon":"Bonbon","Boogaloo":"Boogaloo","Bowlby+One":"Bowlby One","Bowlby+One+SC":"Bowlby One SC","Brawler":"Brawler","Bree+Serif":"Bree Serif","Bubblegum+Sans":"Bubblegum Sans","Bubbler+One":"Bubbler One","Buda":"Buda","Buenard":"Buenard","Bungee":"Bungee","Bungee+Hairline":"Bungee Hairline","Bungee+Inline":"Bungee Inline","Bungee+Outline":"Bungee Outline","Bungee+Shade":"Bungee Shade","Butcherman":"Butcherman","Butterfly+Kids":"Butterfly Kids","Cabin":"Cabin","Cabin+Condensed":"Cabin Condensed","Cabin+Sketch":"Cabin Sketch","Caesar+Dressing":"Caesar Dressing","Cagliostro":"Cagliostro","Cairo":"Cairo","Caladea":"Caladea","Calistoga":"Calistoga","Calligraffitti":"Calligraffitti","Cambay":"Cambay","Cambo":"Cambo","Candal":"Candal","Cantarell":"Cantarell","Cantata+One":"Cantata One","Cantora+One":"Cantora One","Capriola":"Capriola","Cardo":"Cardo","Carme":"Carme","Carrois+Gothic":"Carrois Gothic","Carrois+Gothic+SC":"Carrois Gothic SC","Carter+One":"Carter One","Catamaran":"Catamaran","Caudex":"Caudex","Caveat":"Caveat","Caveat+Brush":"Caveat Brush","Cedarville+Cursive":"Cedarville Cursive","Ceviche+One":"Ceviche One","Chakra+Petch":"Chakra Petch","Changa":"Changa","Changa+One":"Changa One","Chango":"Chango","Charm":"Charm","Charmonman":"Charmonman","Chathura":"Chathura","Chau+Philomene+One":"Chau Philomene One","Chela+One":"Chela One","Chelsea+Market":"Chelsea Market","Chenla":"Chenla","Cherry+Cream+Soda":"Cherry Cream Soda","Cherry+Swash":"Cherry Swash","Chewy":"Chewy","Chicle":"Chicle","Chilanka":"Chilanka","Chivo":"Chivo","Chonburi":"Chonburi","Cinzel":"Cinzel","Cinzel+Decorative":"Cinzel Decorative","Clicker+Script":"Clicker Script","Coda":"Coda","Coda+Caption":"Coda Caption","Codystar":"Codystar","Coiny":"Coiny","Combo":"Combo","Comfortaa":"Comfortaa","Comic+Neue":"Comic Neue","Coming+Soon":"Coming Soon","Concert+One":"Concert One","Condiment":"Condiment","Content":"Content","Contrail+One":"Contrail One","Convergence":"Convergence","Cookie":"Cookie","Copse":"Copse","Corben":"Corben","Cormorant":"Cormorant","Cormorant+Garamond":"Cormorant Garamond","Cormorant+Infant":"Cormorant Infant","Cormorant+SC":"Cormorant SC","Cormorant+Unicase":"Cormorant Unicase","Cormorant+Upright":"Cormorant Upright","Courgette":"Courgette","Courier+Prime":"Courier Prime","Cousine":"Cousine","Coustard":"Coustard","Covered+By+Your+Grace":"Covered By Your Grace","Crafty+Girls":"Crafty Girls","Creepster":"Creepster","Crete+Round":"Crete Round","Crimson+Pro":"Crimson Pro","Crimson+Text":"Crimson Text","Croissant+One":"Croissant One","Crushed":"Crushed","Cuprum":"Cuprum","Cute+Font":"Cute Font","Cutive":"Cutive","Cutive+Mono":"Cutive Mono","DM+Sans":"DM Sans","DM+Serif+Display":"DM Serif Display","DM+Serif+Text":"DM Serif Text","Damion":"Damion","Dancing+Script":"Dancing Script","Dangrek":"Dangrek","Darker+Grotesque":"Darker Grotesque","David+Libre":"David Libre","Dawning+of+a+New+Day":"Dawning of a New Day","Days+One":"Days One","Dekko":"Dekko","Delius":"Delius","Delius+Swash+Caps":"Delius Swash Caps","Delius+Unicase":"Delius Unicase","Della+Respira":"Della Respira","Denk+One":"Denk One","Devonshire":"Devonshire","Dhurjati":"Dhurjati","Didact+Gothic":"Didact Gothic","Diplomata":"Diplomata","Diplomata+SC":"Diplomata SC","Do+Hyeon":"Do Hyeon","Dokdo":"Dokdo","Domine":"Domine","Donegal+One":"Donegal One","Doppio+One":"Doppio One","Dorsa":"Dorsa","Dosis":"Dosis","Dr+Sugiyama":"Dr Sugiyama","Duru+Sans":"Duru Sans","Dynalight":"Dynalight","EB+Garamond":"EB Garamond","Eagle+Lake":"Eagle Lake","East+Sea+Dokdo":"East Sea Dokdo","Eater":"Eater","Economica":"Economica","Eczar":"Eczar","El+Messiri":"El Messiri","Electrolize":"Electrolize","Elsie":"Elsie","Elsie+Swash+Caps":"Elsie Swash Caps","Emblema+One":"Emblema One","Emilys+Candy":"Emilys Candy","Encode+Sans":"Encode Sans","Encode+Sans+Condensed":"Encode Sans Condensed","Encode+Sans+Expanded":"Encode Sans Expanded","Encode+Sans+Semi+Condensed":"Encode Sans Semi Condensed","Encode+Sans+Semi+Expanded":"Encode Sans Semi Expanded","Engagement":"Engagement","Englebert":"Englebert","Enriqueta":"Enriqueta","Erica+One":"Erica One","Esteban":"Esteban","Euphoria+Script":"Euphoria Script","Ewert":"Ewert","Exo":"Exo","Exo+2":"Exo 2","Expletus+Sans":"Expletus Sans","Fahkwang":"Fahkwang","Fanwood+Text":"Fanwood Text","Farro":"Farro","Farsan":"Farsan","Fascinate":"Fascinate","Fascinate+Inline":"Fascinate Inline","Faster+One":"Faster One","Fasthand":"Fasthand","Fauna+One":"Fauna One","Faustina":"Faustina","Federant":"Federant","Federo":"Federo","Felipa":"Felipa","Fenix":"Fenix","Finger+Paint":"Finger Paint","Fira+Code":"Fira Code","Fira+Mono":"Fira Mono","Fira+Sans":"Fira Sans","Fira+Sans+Condensed":"Fira Sans Condensed","Fira+Sans+Extra+Condensed":"Fira Sans Extra Condensed","Fjalla+One":"Fjalla One","Fjord+One":"Fjord One","Flamenco":"Flamenco","Flavors":"Flavors","Fondamento":"Fondamento","Fontdiner+Swanky":"Fontdiner Swanky","Forum":"Forum","Francois+One":"Francois One","Frank+Ruhl+Libre":"Frank Ruhl Libre","Freckle+Face":"Freckle Face","Fredericka+the+Great":"Fredericka the Great","Fredoka+One":"Fredoka One","Freehand":"Freehand","Fresca":"Fresca","Frijole":"Frijole","Fruktur":"Fruktur","Fugaz+One":"Fugaz One","GFS+Didot":"GFS Didot","GFS+Neohellenic":"GFS Neohellenic","Gabriela":"Gabriela","Gaegu":"Gaegu","Gafata":"Gafata","Galada":"Galada","Galdeano":"Galdeano","Galindo":"Galindo","Gamja+Flower":"Gamja Flower","Gayathri":"Gayathri","Gelasio":"Gelasio","Gentium+Basic":"Gentium Basic","Gentium+Book+Basic":"Gentium Book Basic","Geo":"Geo","Geostar":"Geostar","Geostar+Fill":"Geostar Fill","Germania+One":"Germania One","Gidugu":"Gidugu","Gilda+Display":"Gilda Display","Girassol":"Girassol","Give+You+Glory":"Give You Glory","Glass+Antiqua":"Glass Antiqua","Glegoo":"Glegoo","Gloria+Hallelujah":"Gloria Hallelujah","Goblin+One":"Goblin One","Gochi+Hand":"Gochi Hand","Gorditas":"Gorditas","Gothic+A1":"Gothic A1","Gotu":"Gotu","Goudy+Bookletter+1911":"Goudy Bookletter 1911","Graduate":"Graduate","Grand+Hotel":"Grand Hotel","Gravitas+One":"Gravitas One","Great+Vibes":"Great Vibes","Grenze":"Grenze","Griffy":"Griffy","Gruppo":"Gruppo","Gudea":"Gudea","Gugi":"Gugi","Gupter":"Gupter","Gurajada":"Gurajada","Habibi":"Habibi","Halant":"Halant","Hammersmith+One":"Hammersmith One","Hanalei":"Hanalei","Hanalei+Fill":"Hanalei Fill","Handlee":"Handlee","Hanuman":"Hanuman","Happy+Monkey":"Happy Monkey","Harmattan":"Harmattan","Headland+One":"Headland One","Heebo":"Heebo","Henny+Penny":"Henny Penny","Hepta+Slab":"Hepta Slab","Herr+Von+Muellerhoff":"Herr Von Muellerhoff","Hi+Melody":"Hi Melody","Hind":"Hind","Hind+Guntur":"Hind Guntur","Hind+Madurai":"Hind Madurai","Hind+Siliguri":"Hind Siliguri","Hind+Vadodara":"Hind Vadodara","Holtwood+One+SC":"Holtwood One SC","Homemade+Apple":"Homemade Apple","Homenaje":"Homenaje","IBM+Plex+Mono":"IBM Plex Mono","IBM+Plex+Sans":"IBM Plex Sans","IBM+Plex+Sans+Condensed":"IBM Plex Sans Condensed","IBM+Plex+Serif":"IBM Plex Serif","IM+Fell+DW+Pica":"IM Fell DW Pica","IM+Fell+DW+Pica+SC":"IM Fell DW Pica SC","IM+Fell+Double+Pica":"IM Fell Double Pica","IM+Fell+Double+Pica+SC":"IM Fell Double Pica SC","IM+Fell+English":"IM Fell English","IM+Fell+English+SC":"IM Fell English SC","IM+Fell+French+Canon":"IM Fell French Canon","IM+Fell+French+Canon+SC":"IM Fell French Canon SC","IM+Fell+Great+Primer":"IM Fell Great Primer","IM+Fell+Great+Primer+SC":"IM Fell Great Primer SC","Ibarra+Real+Nova":"Ibarra Real Nova","Iceberg":"Iceberg","Iceland":"Iceland","Imprima":"Imprima","Inconsolata":"Inconsolata","Inder":"Inder","Indie+Flower":"Indie Flower","Inika":"Inika","Inknut+Antiqua":"Inknut Antiqua","Inria+Sans":"Inria Sans","Inria+Serif":"Inria Serif","Inter":"Inter","Irish+Grover":"Irish Grover","Istok+Web":"Istok Web","Italiana":"Italiana","Italianno":"Italianno","Itim":"Itim","Jacques+Francois":"Jacques Francois","Jacques+Francois+Shadow":"Jacques Francois Shadow","Jaldi":"Jaldi","Jim+Nightshade":"Jim Nightshade","Jockey+One":"Jockey One","Jolly+Lodger":"Jolly Lodger","Jomhuria":"Jomhuria","Jomolhari":"Jomolhari","Josefin+Sans":"Josefin Sans","Josefin+Slab":"Josefin Slab","Joti+One":"Joti One","Jua":"Jua","Judson":"Judson","Julee":"Julee","Julius+Sans+One":"Julius Sans One","Junge":"Junge","Jura":"Jura","Just+Another+Hand":"Just Another Hand","Just+Me+Again+Down+Here":"Just Me Again Down Here","K2D":"K2D","Kadwa":"Kadwa","Kalam":"Kalam","Kameron":"Kameron","Kanit":"Kanit","Kantumruy":"Kantumruy","Karla":"Karla","Karma":"Karma","Katibeh":"Katibeh","Kaushan+Script":"Kaushan Script","Kavivanar":"Kavivanar","Kavoon":"Kavoon","Kdam+Thmor":"Kdam Thmor","Keania+One":"Keania One","Kelly+Slab":"Kelly Slab","Kenia":"Kenia","Khand":"Khand","Khmer":"Khmer","Khula":"Khula","Kirang+Haerang":"Kirang Haerang","Kite+One":"Kite One","Knewave":"Knewave","KoHo":"KoHo","Kodchasan":"Kodchasan","Kosugi":"Kosugi","Kosugi+Maru":"Kosugi Maru","Kotta+One":"Kotta One","Koulen":"Koulen","Kranky":"Kranky","Kreon":"Kreon","Kristi":"Kristi","Krona+One":"Krona One","Krub":"Krub","Kulim+Park":"Kulim Park","Kumar+One":"Kumar One","Kumar+One+Outline":"Kumar One Outline","Kurale":"Kurale","La+Belle+Aurore":"La Belle Aurore","Lacquer":"Lacquer","Laila":"Laila","Lakki+Reddy":"Lakki Reddy","Lalezar":"Lalezar","Lancelot":"Lancelot","Lateef":"Lateef","Lato":"Lato","League+Script":"League Script","Leckerli+One":"Leckerli One","Ledger":"Ledger","Lekton":"Lekton","Lemon":"Lemon","Lemonada":"Lemonada","Lexend+Deca":"Lexend Deca","Lexend+Exa":"Lexend Exa","Lexend+Giga":"Lexend Giga","Lexend+Mega":"Lexend Mega","Lexend+Peta":"Lexend Peta","Lexend+Tera":"Lexend Tera","Lexend+Zetta":"Lexend Zetta","Libre+Barcode+128":"Libre Barcode 128","Libre+Barcode+128+Text":"Libre Barcode 128 Text","Libre+Barcode+39":"Libre Barcode 39","Libre+Barcode+39+Extended":"Libre Barcode 39 Extended","Libre+Barcode+39+Extended+Text":"Libre Barcode 39 Extended Text","Libre+Barcode+39+Text":"Libre Barcode 39 Text","Libre+Baskerville":"Libre Baskerville","Libre+Caslon+Display":"Libre Caslon Display","Libre+Caslon+Text":"Libre Caslon Text","Libre+Franklin":"Libre Franklin","Life+Savers":"Life Savers","Lilita+One":"Lilita One","Lily+Script+One":"Lily Script One","Limelight":"Limelight","Linden+Hill":"Linden Hill","Literata":"Literata","Liu+Jian+Mao+Cao":"Liu Jian Mao Cao","Livvic":"Livvic","Lobster":"Lobster","Lobster+Two":"Lobster Two","Londrina+Outline":"Londrina Outline","Londrina+Shadow":"Londrina Shadow","Londrina+Sketch":"Londrina Sketch","Londrina+Solid":"Londrina Solid","Long+Cang":"Long Cang","Lora":"Lora","Love+Ya+Like+A+Sister":"Love Ya Like A Sister","Loved+by+the+King":"Loved by the King","Lovers+Quarrel":"Lovers Quarrel","Luckiest+Guy":"Luckiest Guy","Lusitana":"Lusitana","Lustria":"Lustria","M+PLUS+1p":"M PLUS 1p","M+PLUS+Rounded+1c":"M PLUS Rounded 1c","Ma+Shan+Zheng":"Ma Shan Zheng","Macondo":"Macondo","Macondo+Swash+Caps":"Macondo Swash Caps","Mada":"Mada","Magra":"Magra","Maiden+Orange":"Maiden Orange","Maitree":"Maitree","Major+Mono+Display":"Major Mono Display","Mako":"Mako","Mali":"Mali","Mallanna":"Mallanna","Mandali":"Mandali","Manjari":"Manjari","Mansalva":"Mansalva","Manuale":"Manuale","Marcellus":"Marcellus","Marcellus+SC":"Marcellus SC","Marck+Script":"Marck Script","Margarine":"Margarine","Markazi+Text":"Markazi Text","Marko+One":"Marko One","Marmelad":"Marmelad","Martel":"Martel","Martel+Sans":"Martel Sans","Marvel":"Marvel","Mate":"Mate","Mate+SC":"Mate SC","Maven+Pro":"Maven Pro","McLaren":"McLaren","Meddon":"Meddon","MedievalSharp":"MedievalSharp","Medula+One":"Medula One","Meera+Inimai":"Meera Inimai","Megrim":"Megrim","Meie+Script":"Meie Script","Merienda":"Merienda","Merienda+One":"Merienda One","Merriweather":"Merriweather","Merriweather+Sans":"Merriweather Sans","Metal":"Metal","Metal+Mania":"Metal Mania","Metamorphous":"Metamorphous","Metrophobic":"Metrophobic","Michroma":"Michroma","Milonga":"Milonga","Miltonian":"Miltonian","Miltonian+Tattoo":"Miltonian Tattoo","Mina":"Mina","Miniver":"Miniver","Miriam+Libre":"Miriam Libre","Mirza":"Mirza","Miss+Fajardose":"Miss Fajardose","Mitr":"Mitr","Modak":"Modak","Modern+Antiqua":"Modern Antiqua","Mogra":"Mogra","Molengo":"Molengo","Molle":"Molle","Monda":"Monda","Monofett":"Monofett","Monoton":"Monoton","Monsieur+La+Doulaise":"Monsieur La Doulaise","Montaga":"Montaga","Montez":"Montez","Montserrat":"Montserrat","Montserrat+Alternates":"Montserrat Alternates","Montserrat+Subrayada":"Montserrat Subrayada","Moul":"Moul","Moulpali":"Moulpali","Mountains+of+Christmas":"Mountains of Christmas","Mouse+Memoirs":"Mouse Memoirs","Mr+Bedfort":"Mr Bedfort","Mr+Dafoe":"Mr Dafoe","Mr+De+Haviland":"Mr De Haviland","Mrs+Saint+Delafield":"Mrs Saint Delafield","Mrs+Sheppards":"Mrs Sheppards","Mukta":"Mukta","Mukta+Mahee":"Mukta Mahee","Mukta+Malar":"Mukta Malar","Mukta+Vaani":"Mukta Vaani","Muli":"Muli","Mystery+Quest":"Mystery Quest","NTR":"NTR","Nanum+Brush+Script":"Nanum Brush Script","Nanum+Gothic":"Nanum Gothic","Nanum+Gothic+Coding":"Nanum Gothic Coding","Nanum+Myeongjo":"Nanum Myeongjo","Nanum+Pen+Script":"Nanum Pen Script","Neucha":"Neucha","Neuton":"Neuton","New+Rocker":"New Rocker","News+Cycle":"News Cycle","Niconne":"Niconne","Niramit":"Niramit","Nixie+One":"Nixie One","Nobile":"Nobile","Nokora":"Nokora","Norican":"Norican","Nosifer":"Nosifer","Notable":"Notable","Nothing+You+Could+Do":"Nothing You Could Do","Noticia+Text":"Noticia Text","Noto+Sans":"Noto Sans","Noto+Sans+HK":"Noto Sans HK","Noto+Sans+JP":"Noto Sans JP","Noto+Sans+KR":"Noto Sans KR","Noto+Sans+SC":"Noto Sans SC","Noto+Sans+TC":"Noto Sans TC","Noto+Serif":"Noto Serif","Noto+Serif+JP":"Noto Serif JP","Noto+Serif+KR":"Noto Serif KR","Noto+Serif+SC":"Noto Serif SC","Noto+Serif+TC":"Noto Serif TC","Nova+Cut":"Nova Cut","Nova+Flat":"Nova Flat","Nova+Mono":"Nova Mono","Nova+Oval":"Nova Oval","Nova+Round":"Nova Round","Nova+Script":"Nova Script","Nova+Slim":"Nova Slim","Nova+Square":"Nova Square","Numans":"Numans","Nunito":"Nunito","Nunito+Sans":"Nunito Sans","Odibee+Sans":"Odibee Sans","Odor+Mean+Chey":"Odor Mean Chey","Offside":"Offside","Old+Standard+TT":"Old Standard TT","Oldenburg":"Oldenburg","Oleo+Script":"Oleo Script","Oleo+Script+Swash+Caps":"Oleo Script Swash Caps","Open+Sans":"Open Sans","Open+Sans+Condensed":"Open Sans Condensed","Oranienbaum":"Oranienbaum","Orbitron":"Orbitron","Oregano":"Oregano","Orienta":"Orienta","Original+Surfer":"Original Surfer","Oswald":"Oswald","Over+the+Rainbow":"Over the Rainbow","Overlock":"Overlock","Overlock+SC":"Overlock SC","Overpass":"Overpass","Overpass+Mono":"Overpass Mono","Ovo":"Ovo","Oxanium":"Oxanium","Oxygen":"Oxygen","Oxygen+Mono":"Oxygen Mono","PT+Mono":"PT Mono","PT+Sans":"PT Sans","PT+Sans+Caption":"PT Sans Caption","PT+Sans+Narrow":"PT Sans Narrow","PT+Serif":"PT Serif","PT+Serif+Caption":"PT Serif Caption","Pacifico":"Pacifico","Padauk":"Padauk","Palanquin":"Palanquin","Palanquin+Dark":"Palanquin Dark","Pangolin":"Pangolin","Paprika":"Paprika","Parisienne":"Parisienne","Passero+One":"Passero One","Passion+One":"Passion One","Pathway+Gothic+One":"Pathway Gothic One","Patrick+Hand":"Patrick Hand","Patrick+Hand+SC":"Patrick Hand SC","Pattaya":"Pattaya","Patua+One":"Patua One","Pavanam":"Pavanam","Paytone+One":"Paytone One","Peddana":"Peddana","Peralta":"Peralta","Permanent+Marker":"Permanent Marker","Petit+Formal+Script":"Petit Formal Script","Petrona":"Petrona","Philosopher":"Philosopher","Piedra":"Piedra","Pinyon+Script":"Pinyon Script","Pirata+One":"Pirata One","Plaster":"Plaster","Play":"Play","Playball":"Playball","Playfair+Display":"Playfair Display","Playfair+Display+SC":"Playfair Display SC","Podkova":"Podkova","Poiret+One":"Poiret One","Poller+One":"Poller One","Poly":"Poly","Pompiere":"Pompiere","Pontano+Sans":"Pontano Sans","Poor+Story":"Poor Story","Poppins":"Poppins","Port+Lligat+Sans":"Port Lligat Sans","Port+Lligat+Slab":"Port Lligat Slab","Pragati+Narrow":"Pragati Narrow","Prata":"Prata","Preahvihear":"Preahvihear","Press+Start+2P":"Press Start 2P","Pridi":"Pridi","Princess+Sofia":"Princess Sofia","Prociono":"Prociono","Prompt":"Prompt","Prosto+One":"Prosto One","Proza+Libre":"Proza Libre","Public+Sans":"Public Sans","Puritan":"Puritan","Purple+Purse":"Purple Purse","Quando":"Quando","Quantico":"Quantico","Quattrocento":"Quattrocento","Quattrocento+Sans":"Quattrocento Sans","Questrial":"Questrial","Quicksand":"Quicksand","Quintessential":"Quintessential","Qwigley":"Qwigley","Racing+Sans+One":"Racing Sans One","Radley":"Radley","Rajdhani":"Rajdhani","Rakkas":"Rakkas","Raleway":"Raleway","Raleway+Dots":"Raleway Dots","Ramabhadra":"Ramabhadra","Ramaraja":"Ramaraja","Rambla":"Rambla","Rammetto+One":"Rammetto One","Ranchers":"Ranchers","Rancho":"Rancho","Ranga":"Ranga","Rasa":"Rasa","Rationale":"Rationale","Ravi+Prakash":"Ravi Prakash","Red+Hat+Display":"Red Hat Display","Red+Hat+Text":"Red Hat Text","Redressed":"Redressed","Reem+Kufi":"Reem Kufi","Reenie+Beanie":"Reenie Beanie","Revalia":"Revalia","Rhodium+Libre":"Rhodium Libre","Ribeye":"Ribeye","Ribeye+Marrow":"Ribeye Marrow","Righteous":"Righteous","Risque":"Risque","Roboto":"Roboto","Roboto+Condensed":"Roboto Condensed","Roboto+Mono":"Roboto Mono","Roboto+Slab":"Roboto Slab","Rochester":"Rochester","Rock+Salt":"Rock Salt","Rokkitt":"Rokkitt","Romanesco":"Romanesco","Ropa+Sans":"Ropa Sans","Rosario":"Rosario","Rosarivo":"Rosarivo","Rouge+Script":"Rouge Script","Rozha+One":"Rozha One","Rubik":"Rubik","Rubik+Mono+One":"Rubik Mono One","Ruda":"Ruda","Rufina":"Rufina","Ruge+Boogie":"Ruge Boogie","Ruluko":"Ruluko","Rum+Raisin":"Rum Raisin","Ruslan+Display":"Ruslan Display","Russo+One":"Russo One","Ruthie":"Ruthie","Rye":"Rye","Sacramento":"Sacramento","Sahitya":"Sahitya","Sail":"Sail","Saira":"Saira","Saira+Condensed":"Saira Condensed","Saira+Extra+Condensed":"Saira Extra Condensed","Saira+Semi+Condensed":"Saira Semi Condensed","Saira+Stencil+One":"Saira Stencil One","Salsa":"Salsa","Sanchez":"Sanchez","Sancreek":"Sancreek","Sansita":"Sansita","Sarabun":"Sarabun","Sarala":"Sarala","Sarina":"Sarina","Sarpanch":"Sarpanch","Satisfy":"Satisfy","Sawarabi+Gothic":"Sawarabi Gothic","Sawarabi+Mincho":"Sawarabi Mincho","Scada":"Scada","Scheherazade":"Scheherazade","Schoolbell":"Schoolbell","Scope+One":"Scope One","Seaweed+Script":"Seaweed Script","Secular+One":"Secular One","Sedgwick+Ave":"Sedgwick Ave","Sedgwick+Ave+Display":"Sedgwick Ave Display","Sen":"Sen","Sevillana":"Sevillana","Seymour+One":"Seymour One","Shadows+Into+Light":"Shadows Into Light","Shadows+Into+Light+Two":"Shadows Into Light Two","Shanti":"Shanti","Share":"Share","Share+Tech":"Share Tech","Share+Tech+Mono":"Share Tech Mono","Shojumaru":"Shojumaru","Short+Stack":"Short Stack","Shrikhand":"Shrikhand","Siemreap":"Siemreap","Sigmar+One":"Sigmar One","Signika":"Signika","Signika+Negative":"Signika Negative","Simonetta":"Simonetta","Single+Day":"Single Day","Sintony":"Sintony","Sirin+Stencil":"Sirin Stencil","Six+Caps":"Six Caps","Skranji":"Skranji","Slabo+13px":"Slabo 13px","Slabo+27px":"Slabo 27px","Slackey":"Slackey","Smokum":"Smokum","Smythe":"Smythe","Sniglet":"Sniglet","Snippet":"Snippet","Snowburst+One":"Snowburst One","Sofadi+One":"Sofadi One","Sofia":"Sofia","Solway":"Solway","Song+Myung":"Song Myung","Sonsie+One":"Sonsie One","Sorts+Mill+Goudy":"Sorts Mill Goudy","Source+Code+Pro":"Source Code Pro","Source+Sans+Pro":"Source Sans Pro","Source+Serif+Pro":"Source Serif Pro","Space+Mono":"Space Mono","Spartan":"Spartan","Special+Elite":"Special Elite","Spectral":"Spectral","Spectral+SC":"Spectral SC","Spicy+Rice":"Spicy Rice","Spinnaker":"Spinnaker","Spirax":"Spirax","Squada+One":"Squada One","Sree+Krushnadevaraya":"Sree Krushnadevaraya","Sriracha":"Sriracha","Srisakdi":"Srisakdi","Staatliches":"Staatliches","Stalemate":"Stalemate","Stalinist+One":"Stalinist One","Stardos+Stencil":"Stardos Stencil","Stint+Ultra+Condensed":"Stint Ultra Condensed","Stint+Ultra+Expanded":"Stint Ultra Expanded","Stoke":"Stoke","Strait":"Strait","Stylish":"Stylish","Sue+Ellen+Francisco":"Sue Ellen Francisco","Suez+One":"Suez One","Sulphur+Point":"Sulphur Point","Sumana":"Sumana","Sunflower":"Sunflower","Sunshiney":"Sunshiney","Supermercado+One":"Supermercado One","Sura":"Sura","Suranna":"Suranna","Suravaram":"Suravaram","Suwannaphum":"Suwannaphum","Swanky+and+Moo+Moo":"Swanky and Moo Moo","Syncopate":"Syncopate","Tajawal":"Tajawal","Tangerine":"Tangerine","Taprom":"Taprom","Tauri":"Tauri","Taviraj":"Taviraj","Teko":"Teko","Telex":"Telex","Tenali+Ramakrishna":"Tenali Ramakrishna","Tenor+Sans":"Tenor Sans","Text+Me+One":"Text Me One","Thasadith":"Thasadith","The+Girl+Next+Door":"The Girl Next Door","Tienne":"Tienne","Tillana":"Tillana","Timmana":"Timmana","Tinos":"Tinos","Titan+One":"Titan One","Titillium+Web":"Titillium Web","Tomorrow":"Tomorrow","Trade+Winds":"Trade Winds","Trirong":"Trirong","Trocchi":"Trocchi","Trochut":"Trochut","Trykker":"Trykker","Tulpen+One":"Tulpen One","Turret+Road":"Turret Road","Ubuntu":"Ubuntu","Ubuntu+Condensed":"Ubuntu Condensed","Ubuntu+Mono":"Ubuntu Mono","Ultra":"Ultra","Uncial+Antiqua":"Uncial Antiqua","Underdog":"Underdog","Unica+One":"Unica One","UnifrakturCook":"UnifrakturCook","UnifrakturMaguntia":"UnifrakturMaguntia","Unkempt":"Unkempt","Unlock":"Unlock","Unna":"Unna","VT323":"VT323","Vampiro+One":"Vampiro One","Varela":"Varela","Varela+Round":"Varela Round","Vast+Shadow":"Vast Shadow","Vesper+Libre":"Vesper Libre","Viaoda+Libre":"Viaoda Libre","Vibes":"Vibes","Vibur":"Vibur","Vidaloka":"Vidaloka","Viga":"Viga","Voces":"Voces","Volkhov":"Volkhov","Vollkorn":"Vollkorn","Vollkorn+SC":"Vollkorn SC","Voltaire":"Voltaire","Waiting+for+the+Sunrise":"Waiting for the Sunrise","Wallpoet":"Wallpoet","Walter+Turncoat":"Walter Turncoat","Warnes":"Warnes","Wellfleet":"Wellfleet","Wendy+One":"Wendy One","Wire+One":"Wire One","Work+Sans":"Work Sans","Yanone+Kaffeesatz":"Yanone Kaffeesatz","Yantramanav":"Yantramanav","Yatra+One":"Yatra One","Yellowtail":"Yellowtail","Yeon+Sung":"Yeon Sung","Yeseva+One":"Yeseva One","Yesteryear":"Yesteryear","Yrsa":"Yrsa","ZCOOL+KuaiLe":"ZCOOL KuaiLe","ZCOOL+QingKe+HuangYou":"ZCOOL QingKe HuangYou","ZCOOL+XiaoWei":"ZCOOL XiaoWei","Zeyada":"Zeyada","Zhi+Mang+Xing":"Zhi Mang Xing","Zilla+Slab":"Zilla Slab","Zilla+Slab+Highlight":"Zilla Slab Highlight"}';
71
+
72
+
73
+
74
+ $this->font_family = json_decode($f, JSON_PRETTY_PRINT);
75
+
76
+
77
+ $this->font_weight = array(
78
+ 'default' => 'Default',
79
+ '100' => '100',
80
+ '200' => '200',
81
+ '300' => '300',
82
+ '400' => '400',
83
+ '500' => '500',
84
+ '600' => '600',
85
+ '700' => '700',
86
+ '800' => '800',
87
+ '900' => '900',
88
+ 'normal' => 'Normal',
89
+ 'bold' => 'Bold',
90
+ );
91
+
92
+ $this->font_transform = array(
93
+ 'default' => 'Default',
94
+ 'normal' => 'Normal',
95
+ 'uppercase' => 'Uppercase',
96
+ 'lowercase' => 'Lowercase',
97
+ 'capitalize' => 'Capitalize',
98
+ );
99
+
100
+ $this->font_style = array(
101
+ 'default' => 'Default',
102
+ 'normal' => 'Normal',
103
+ 'italic' => 'Italic',
104
+ );
105
+
106
+ $this->font_decoration = array(
107
+ 'default' => 'Default',
108
+ 'underline' => 'Underline',
109
+ 'overline' => 'Overline',
110
+ 'linethrough' => 'Line Through',
111
+ 'none' => 'None',
112
+ );
113
+
114
+
115
+ /*
116
+ * l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
117
+ * var message = acf._e('typography', 'error');
118
+ */
119
+
120
+ $this->l10n = array(
121
+ 'error' => __('Error! Please enter a higher value', 'acfb-typography'),
122
+ );
123
+
124
+
125
+ /*
126
+ * settings (array) Store plugin settings (url, path, version) as a reference for later use with assets
127
+ */
128
+
129
+ $this->settings = $settings;
130
+
131
+
132
+ // do not delete!
133
+ parent::__construct();
134
+
135
+ }
136
+
137
+
138
+ /*
139
+ * render_field_settings()
140
+ *
141
+ * Create extra settings for your field. These are visible when editing a field
142
+ *
143
+ * @type action
144
+ * @since 3.6
145
+ * @date 23/01/13
146
+ *
147
+ * @param $field (array) the $field being edited
148
+ * @return n/a
149
+ */
150
+
151
+ function render_field_settings( $field ) {
152
+
153
+ /*
154
+ * acf_render_field_setting
155
+ *
156
+ * This function will create a setting for your field. Simply pass the $field parameter and an array of field settings.
157
+ * The array of settings does not require a `value` or `prefix`; These settings are found from the $field array.
158
+ *
159
+ * More than one setting can be added by copy/paste the above code.
160
+ * Please note that you must also have a matching $defaults value for the field name (font_size)
161
+ */
162
+
163
+
164
+ acf_render_field_setting( $field, array(
165
+ 'label' => __('Enable Field','acfb-typography'),
166
+ 'instructions' => __('Default','acfb-typography'),
167
+ 'type' => 'true_false',
168
+ 'name' => 'font_family_enable',
169
+ 'layout' => 'horizontal',
170
+ 'ui' => 0
171
+ ));
172
+
173
+ acf_render_field_setting( $field, array(
174
+ 'label' => __('Family','acfb-typography'),
175
+ 'instructions' => __('Default','acfb-typography'),
176
+ 'type' => 'select',
177
+ 'name' => 'font_family',
178
+ 'choices' => $this->font_family,
179
+ 'layout' => 'horizontal'
180
+ ));
181
+
182
+ acf_render_field_setting( $field, array(
183
+ 'label' => __('Size','acfb-typography'),
184
+ 'instructions' => __('Default','acfb-typography'),
185
+ 'type' => 'range',
186
+ 'name' => 'font_size',
187
+ 'min' => 0,
188
+ 'max' => 100,
189
+ 'step' => 1,
190
+ 'prepend' => 'px',
191
+ ));
192
+
193
+
194
+ acf_render_field_setting( $field, array(
195
+ 'label' => __('Weight','acfb-typography'),
196
+ 'instructions' => __('Default','acfb-typography'),
197
+ 'type' => 'select',
198
+ 'name' => 'font_weight',
199
+ 'choices' => $this->font_weight,
200
+ 'layout' => 'horizontal'
201
+ ));
202
+
203
+ acf_render_field_setting( $field, array(
204
+ 'label' => __('Transform','acfb-typography'),
205
+ 'instructions' => __('Default','acfb-typography'),
206
+ 'type' => 'select',
207
+ 'name' => 'font_transform',
208
+ 'choices' => $this->font_transform,
209
+ 'layout' => 'horizontal'
210
+ ));
211
+
212
+ acf_render_field_setting( $field, array(
213
+ 'label' => __('Style','acfb-typography'),
214
+ 'instructions' => __('Default','acfb-typography'),
215
+ 'type' => 'select',
216
+ 'name' => 'font_style',
217
+ 'choices' => $this->font_style,
218
+ 'layout' => 'horizontal'
219
+ ));
220
+
221
+ acf_render_field_setting( $field, array(
222
+ 'label' => __('Decoration','acfb-typography'),
223
+ 'instructions' => __('Default','acfb-typography'),
224
+ 'type' => 'select',
225
+ 'name' => 'font_decoration',
226
+ 'choices' => $this->font_decoration,
227
+ 'layout' => 'horizontal'
228
+ ));
229
+
230
+ acf_render_field_setting( $field, array(
231
+ 'label' => __('Line Height','acfb-typography'),
232
+ 'instructions' => __('Default','acfb-typography'),
233
+ 'type' => 'range',
234
+ 'name' => 'font_line_height',
235
+ 'min' => 0.1,
236
+ 'max' => 10,
237
+ 'step' => 0.1,
238
+ 'prepend' => 'px',
239
+ ));
240
+
241
+ acf_render_field_setting( $field, array(
242
+ 'label' => __('Letter Spacing','acfb-typography'),
243
+ 'instructions' => __('Default','acfb-typography'),
244
+ 'type' => 'range',
245
+ 'name' => 'font_letter_spacing',
246
+ 'min' => -5,
247
+ 'max' => 10,
248
+ 'step' => 0.1,
249
+ 'prepend' => 'px',
250
+ ));
251
+
252
+
253
+
254
+ }
255
+
256
+
257
+
258
+ /*
259
+ * render_field()
260
+ *
261
+ * Create the HTML interface for your field
262
+ *
263
+ * @param $field (array) the $field being rendered
264
+ *
265
+ * @type action
266
+ * @since 3.6
267
+ * @date 23/01/13
268
+ *
269
+ * @param $field (array) the $field being edited
270
+ * @return n/a
271
+ */
272
+
273
+ function render_field( $field ) {
274
+
275
+
276
+ /*
277
+ * Review the data of $field.
278
+ * This will show what data is available
279
+ */
280
+
281
+ /*
282
+ * Create a simple text input using the 'font_size' setting.
283
+ */
284
+
285
+ // $field = array_merge($this->defaults, $field);
286
+
287
+ // $default_font_family = $field['font_family_enable'];
288
+
289
+
290
+ if ( empty($field['value']) ) {
291
+
292
+ $field['value']['font_family_enable'] = $field['font_family_enable'];
293
+
294
+ $field['value']['font_family'] = $field['font_family'];
295
+ $field['value']['font_size'] = $field['font_size'];
296
+ $field['value']['font_color'] = $field['font_color'];
297
+ $field['value']['font_weight'] = $field['font_weight'];
298
+ $field['value']['font_transform'] = $field['font_transform'];
299
+ $field['value']['font_style'] = $field['font_style'];
300
+ $field['value']['font_decoration'] = $field['font_decoration'];
301
+ $field['value']['font_line_height'] = $field['font_line_height'];
302
+ // $field['value']['font_letter_spacing'] = $field['font_letter_spacing'];
303
+ // $field['value']['font_color'] = $field['font_color'];
304
+
305
+ }
306
+
307
+
308
+
309
+ ?>
310
+
311
+
312
+
313
+ <div class="acf_typo_root acfb_cs_field_root">
314
+
315
+ <div class="acf-input">
316
+ <div class="acf-true-false">
317
+ <input type="checkbox"
318
+ name="<?php echo $field['name'] . 'font_family_enable' ?>"
319
+ value="<?php echo $field['value']['font_family_enable']; ?>"
320
+ id="acfb_eye_typo_<?php echo $field['name']; ?>"
321
+ class="acfb-checkbox-true-false"
322
+ <?php
323
+ if ($field['value']['font_family_enable'] === 1) {
324
+
325
+ echo 'checked';
326
+
327
+ }
328
+ ?>
329
+ >
330
+ <label for="acfb_eye_typo_<?php echo $field['name']; ?>">
331
+ <svg class="acfb_eye_svg" viewBox="0 -1 401.52289 401" xmlns="http://www.w3.org/2000/svg"><path d="m370.589844 250.972656c-5.523438 0-10 4.476563-10 10v88.789063c-.019532 16.5625-13.4375 29.984375-30 30h-280.589844c-16.5625-.015625-29.980469-13.4375-30-30v-260.589844c.019531-16.558594 13.4375-29.980469 30-30h88.789062c5.523438 0 10-4.476563 10-10 0-5.519531-4.476562-10-10-10h-88.789062c-27.601562.03125-49.96875 22.398437-50 50v260.59375c.03125 27.601563 22.398438 49.96875 50 50h280.589844c27.601562-.03125 49.96875-22.398437 50-50v-88.792969c0-5.523437-4.476563-10-10-10zm0 0"/><path d="m376.628906 13.441406c-17.574218-17.574218-46.066406-17.574218-63.640625 0l-178.40625 178.40625c-1.222656 1.222656-2.105469 2.738282-2.566406 4.402344l-23.460937 84.699219c-.964844 3.472656.015624 7.191406 2.5625 9.742187 2.550781 2.546875 6.269531 3.527344 9.742187 2.566406l84.699219-23.464843c1.664062-.460938 3.179687-1.34375 4.402344-2.566407l178.402343-178.410156c17.546875-17.585937 17.546875-46.054687 0-63.640625zm-220.257812 184.90625 146.011718-146.015625 47.089844 47.089844-146.015625 146.015625zm-9.40625 18.875 37.621094 37.625-52.039063 14.417969zm227.257812-142.546875-10.605468 10.605469-47.09375-47.09375 10.609374-10.605469c9.761719-9.761719 25.589844-9.761719 35.351563 0l11.738281 11.734375c9.746094 9.773438 9.746094 25.589844 0 35.359375zm0 0"/></svg>
332
+ </label>
333
+ </div>
334
+ </div>
335
+
336
+
337
+
338
+ <?php
339
+ $acfb_typo_display = $field['value']['font_family_enable'] === 1 ? 'block' : 'none';
340
+ ?>
341
+
342
+ <div class="acfb_typography_main acfb_cs_field_main" style="display: <?php echo $acfb_typo_display; ?>">
343
+
344
+
345
+ <div class="acf-field acf-field-select">
346
+ <div class="acf-label">
347
+ <label>Family</label>
348
+ </div>
349
+ <div class="acf-input">
350
+
351
+
352
+ <select name="<?php echo $field['name'] . 'font_family' ?>">
353
+ <?php
354
+
355
+ foreach ($this->font_family as $key => $font) {
356
+
357
+ $selected_value = selected( $field['value']['font_family'], $font );
358
+
359
+ echo "<option $selected_value value='$key'>$font</option>";
360
+
361
+ }
362
+
363
+ ?>
364
+ </select>
365
+ </div>
366
+ </div>
367
+
368
+
369
+ <div class="acf-field acf-field-range">
370
+ <div class="acf-label">
371
+ <label>Size</label>
372
+ </div>
373
+ <div class="acf-input">
374
+ <div class="acf-range-wrap">
375
+ <input type="range" id="font_size_range" name="<?php echo $field['name'] . 'font_size' ?>" min="0" max="100" step="1">
376
+ <input
377
+ type="number"
378
+ id="font_size_num"
379
+ name="<?php echo $field['name'] . 'font_size' ?>"
380
+ value="<?php echo $field['value']['font_size'] ?>"
381
+ step="1" style="width: 3.9em;"
382
+ >
383
+ <div class="acf-append">
384
+ <?php //echo $field['value']['font_size'] ?>
385
+ px
386
+ </div>
387
+ </div>
388
+ </div>
389
+ </div>
390
+
391
+
392
+ <div class="acf-field acf-field-select">
393
+ <div class="acf-label">
394
+ <label>Weight</label>
395
+ </div>
396
+ <div class="acf-input">
397
+ <select name="<?php echo $field['name'] . 'font_weight' ?>">
398
+ <?php
399
+
400
+ foreach ( $this->font_weight as $weight => $val ) {
401
+
402
+ $selected_value = selected( $field['value']['font_weight'], $val );
403
+
404
+ echo '<option '. $selected_value .' value="' . $weight . '">'. $val .'</option>';
405
+ }
406
+ ?>
407
+
408
+ </select>
409
+ </div>
410
+ </div>
411
+
412
+ <div class="acf-field acf-field-select">
413
+ <div class="acf-label">
414
+ <label>Transform</label>
415
+ </div>
416
+ <div class="acf-input">
417
+ <select name="<?php echo $field['name'] . 'font_transform' ?>">
418
+
419
+ <?php
420
+
421
+ foreach ( $this->font_transform as $transform => $val ) {
422
+
423
+ $selected_value = selected( $field['value']['font_transform'], $transform );
424
+
425
+ echo '<option '. $selected_value .' value="' . $transform . '">'. $val .'</option>';
426
+ }
427
+
428
+ ?>
429
+ </select>
430
+ </div>
431
+ </div>
432
+ <div class="acf-field acf-field-select">
433
+ <div class="acf-label">
434
+ <label>Style</label>
435
+ </div>
436
+ <div class="acf-input">
437
+ <select name="<?php echo $field['name'] . 'font_style' ?>">
438
+ <?php
439
+
440
+ foreach ( $this->font_style as $font_style => $val ) {
441
+
442
+ $selected_value = selected( $field['value']['font_style'], $font_style );
443
+
444
+ echo '<option '. $selected_value .' value="' . $font_style . '">'. $val .'</option>';
445
+ }
446
+
447
+ ?>
448
+ </select>
449
+ </div>
450
+ </div>
451
+
452
+
453
+ <div class="acf-field acf-field-select">
454
+ <div class="acf-label">
455
+ <label>Decoration</label>
456
+ </div>
457
+ <div class="acf-input">
458
+ <select name="<?php echo $field['name'] . 'font_decoration' ?>">
459
+ <?php
460
+
461
+ foreach ( $this->font_decoration as $font_decoration => $val ) {
462
+
463
+ $selected_value = selected( $field['value']['font_decoration'], $font_decoration );
464
+
465
+ echo '<option '. $selected_value .' value="' . $font_decoration . '">'. $val .'</option>';
466
+ }
467
+
468
+ ?>
469
+ </select>
470
+ </div>
471
+ </div>
472
+ <div class="acf-field acf-field-range">
473
+ <div class="acf-label">
474
+ <label>Line Height</label>
475
+ </div>
476
+ <div class="acf-input">
477
+ <div class="acf-range-wrap">
478
+ <input
479
+ type="range"
480
+ id=""
481
+ name="<?php echo $field['name'] . 'font_line_height' ?>"
482
+ value="<?php echo $field['value']['font_line_height'] ?>"
483
+ min="0.1"
484
+ max="10"
485
+ step="0.1"
486
+ >
487
+ <input
488
+ type="number"
489
+ id=""
490
+ name="<?php echo $field['name'] . 'font_line_height' ?>"
491
+ value="<?php echo $field['value']['font_line_height'] ?>"
492
+ step="1"
493
+ style="width: 3.9em;"
494
+ >
495
+ <div class="acf-append">px</div>
496
+ </div>
497
+ </div>
498
+ </div>
499
+
500
+ <div class="acf-field acf-field-range">
501
+ <div class="acf-label">
502
+ <label>Letter Spacing</label>
503
+ </div>
504
+ <div class="acf-input">
505
+ <div class="acf-range-wrap">
506
+ <input
507
+ type="range" id=""
508
+ name="<?php echo $field['name'] . 'font_letter_spacing'?>"
509
+ value="<?php echo $field['value']['font_letter_spacing'] ?>"
510
+ min="-5" max="10" step="0.1">
511
+ <input
512
+ type="number"
513
+ id=""
514
+ name="<?php echo $field['name'] . 'font_letter_spacing' ?>"
515
+ value="<?php echo $field['value']['font_letter_spacing'] ?>"
516
+ step="1"
517
+ style="width: 3.9em;">
518
+ <div class="acf-append">px</div>
519
+ </div>
520
+ </div>
521
+ </div>
522
+
523
+
524
+ </div>
525
+
526
+
527
+ </div>
528
+
529
+
530
+ <?php
531
+ }
532
+
533
+
534
+ /*
535
+ function updateTextInput() {
536
+ ?>
537
+ <script>
538
+ var slider = document.getElementById("font_size_range");
539
+ var output = document.getElementById("font_size_num");
540
+ output.innerHTML = slider.value;
541
+
542
+ slider.oninput = function() {
543
+ output.innerHTML = this.value;
544
+ }
545
+ </script>
546
+ <?php
547
+ }
548
+
549
+ */
550
+
551
+
552
+
553
+ /*
554
+ * input_admin_enqueue_scripts()
555
+ *
556
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
557
+ * Use this action to add CSS + JavaScript to assist your render_field() action.
558
+ *
559
+ * @type action (admin_enqueue_scripts)
560
+ * @since 3.6
561
+ * @date 23/01/13
562
+ *
563
+ * @param n/a
564
+ * @return n/a
565
+ */
566
+
567
+
568
+ /*
569
+ function input_admin_enqueue_scripts() {
570
+
571
+ // vars
572
+ $url = $this->settings['url'];
573
+ $version = $this->settings['version'];
574
+
575
+
576
+ // register & include JS
577
+ wp_register_script('acfb-typography', "{$url}assets/js/input.js", array('acf-input'), $version);
578
+ wp_enqueue_script('acfb-typography');
579
+
580
+
581
+ // register & include CSS
582
+ wp_register_style('acfb-typography', "{$url}assets/css/input.css", array('acf-input'), $version);
583
+ wp_enqueue_style('acfb-typography');
584
+
585
+ }
586
+
587
+ */
588
+
589
+
590
+ /*
591
+ * input_admin_head()
592
+ *
593
+ * This action is called in the admin_head action on the edit screen where your field is created.
594
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
595
+ *
596
+ * @type action (admin_head)
597
+ * @since 3.6
598
+ * @date 23/01/13
599
+ *
600
+ * @param n/a
601
+ * @return n/a
602
+ */
603
+
604
+ /*
605
+
606
+ function input_admin_head() {
607
+
608
+
609
+
610
+ }
611
+
612
+ */
613
+
614
+
615
+ /*
616
+ * input_form_data()
617
+ *
618
+ * This function is called once on the 'input' page between the head and footer
619
+ * There are 2 situations where ACF did not load during the 'acf/input_admin_enqueue_scripts' and
620
+ * 'acf/input_admin_head' actions because ACF did not know it was going to be used. These situations are
621
+ * seen on comments / user edit forms on the front end. This function will always be called, and includes
622
+ * $args that related to the current screen such as $args['post_id']
623
+ *
624
+ * @type function
625
+ * @date 6/03/2014
626
+ * @since 5.0.0
627
+ *
628
+ * @param $args (array)
629
+ * @return n/a
630
+ */
631
+
632
+ /*
633
+
634
+ function input_form_data( $args ) {
635
+
636
+
637
+
638
+ }
639
+
640
+ */
641
+
642
+
643
+ /*
644
+ * input_admin_footer()
645
+ *
646
+ * This action is called in the admin_footer action on the edit screen where your field is created.
647
+ * Use this action to add CSS and JavaScript to assist your render_field() action.
648
+ *
649
+ * @type action (admin_footer)
650
+ * @since 3.6
651
+ * @date 23/01/13
652
+ *
653
+ * @param n/a
654
+ * @return n/a
655
+ */
656
+
657
+ /*
658
+
659
+ function input_admin_footer() {
660
+
661
+
662
+
663
+ }
664
+
665
+ */
666
+
667
+
668
+ /*
669
+ * field_group_admin_enqueue_scripts()
670
+ *
671
+ * This action is called in the admin_enqueue_scripts action on the edit screen where your field is edited.
672
+ * Use this action to add CSS + JavaScript to assist your render_field_options() action.
673
+ *
674
+ * @type action (admin_enqueue_scripts)
675
+ * @since 3.6
676
+ * @date 23/01/13
677
+ *
678
+ * @param n/a
679
+ * @return n/a
680
+ */
681
+
682
+ /*
683
+
684
+ function field_group_admin_enqueue_scripts() {
685
+
686
+ }
687
+
688
+ */
689
+
690
+
691
+ /*
692
+ * field_group_admin_head()
693
+ *
694
+ * This action is called in the admin_head action on the edit screen where your field is edited.
695
+ * Use this action to add CSS and JavaScript to assist your render_field_options() action.
696
+ *
697
+ * @type action (admin_head)
698
+ * @since 3.6
699
+ * @date 23/01/13
700
+ *
701
+ * @param n/a
702
+ * @return n/a
703
+ */
704
+
705
+ /*
706
+
707
+ function field_group_admin_head() {
708
+
709
+ }
710
+
711
+ */
712
+
713
+
714
+ /*
715
+ * load_value()
716
+ *
717
+ * This filter is applied to the $value after it is loaded from the db
718
+ *
719
+ * @type filter
720
+ * @since 3.6
721
+ * @date 23/01/13
722
+ *
723
+ * @param $value (mixed) the value found in the database
724
+ * @param $post_id (mixed) the $post_id from which the value was loaded
725
+ * @param $field (array) the field array holding all the field options
726
+ * @return $value
727
+ */
728
+
729
+
730
+
731
+ function load_value( $value, $post_id, $field ) {
732
+
733
+ return $value;
734
+
735
+ }
736
+
737
+
738
+
739
+
740
+ /*
741
+ * update_value()
742
+ *
743
+ * This filter is applied to the $value before it is saved in the db
744
+ *
745
+ * @type filter
746
+ * @since 3.6
747
+ * @date 23/01/13
748
+ *
749
+ * @param $value (mixed) the value found in the database
750
+ * @param $post_id (mixed) the $post_id from which the value was loaded
751
+ * @param $field (array) the field array holding all the field options
752
+ * @return $value
753
+ */
754
+
755
+
756
+
757
+ function update_value( $value, $post_id, $field ) {
758
+
759
+ return $value;
760
+
761
+ }
762
+
763
+
764
+
765
+
766
+ /*
767
+ * format_value()
768
+ *
769
+ * This filter is appied to the $value after it is loaded from the db and before it is returned to the template
770
+ *
771
+ * @type filter
772
+ * @since 3.6
773
+ * @date 23/01/13
774
+ *
775
+ * @param $value (mixed) the value which was loaded from the database
776
+ * @param $post_id (mixed) the $post_id from which the value was loaded
777
+ * @param $field (array) the field array holding all the field options
778
+ *
779
+ * @return $value (mixed) the modified value
780
+ */
781
+
782
+
783
+
784
+ function format_value( $value, $post_id, $field ) {
785
+
786
+ // bail early if no value
787
+ if( empty($value) ) {
788
+
789
+ return $value;
790
+
791
+ }
792
+
793
+
794
+ // apply setting
795
+ // if( $field['font_size'] > 12 ) {
796
+
797
+ // format the value
798
+ // $value = 'something';
799
+
800
+ // }
801
+
802
+
803
+ // return
804
+ return $value;
805
+ }
806
+
807
+
808
+
809
+
810
+ /*
811
+ * validate_value()
812
+ *
813
+ * This filter is used to perform validation on the value prior to saving.
814
+ * All values are validated regardless of the field's required setting. This allows you to validate and return
815
+ * messages to the user if the value is not correct
816
+ *
817
+ * @type filter
818
+ * @date 11/02/2014
819
+ * @since 5.0.0
820
+ *
821
+ * @param $valid (boolean) validation status based on the value and the field's required setting
822
+ * @param $value (mixed) the $_POST value
823
+ * @param $field (array) the field array holding all the field options
824
+ * @param $input (string) the corresponding input name for $_POST value
825
+ * @return $valid
826
+ */
827
+
828
+
829
+
830
+ // function validate_value( $valid, $value, $field, $input ){
831
+
832
+ // // Basic usage
833
+
834
+ // if( $value < $field['custom_minimum_setting'] )
835
+ // {
836
+ // $valid = false;
837
+ // }
838
+
839
+
840
+ // // Advanced usage
841
+ // if( $value < $field['custom_minimum_setting'] )
842
+ // {
843
+ // $valid = __('The value is too little!','acfb-typography');
844
+ // }
845
+
846
+
847
+ // // return
848
+ // return $valid;
849
+
850
+ // }
851
+
852
+
853
+
854
+ /*
855
+ * delete_value()
856
+ *
857
+ * This action is fired after a value has been deleted from the db.
858
+ * Please note that saving a blank value is treated as an update, not a delete
859
+ *
860
+ * @type action
861
+ * @date 6/03/2014
862
+ * @since 5.0.0
863
+ *
864
+ * @param $post_id (mixed) the $post_id from which the value was deleted
865
+ * @param $key (string) the $meta_key which the value was deleted
866
+ * @return n/a
867
+ */
868
+
869
+ /*
870
+
871
+ function delete_value( $post_id, $key ) {
872
+
873
+
874
+
875
+ }
876
+
877
+ */
878
+
879
+
880
+ /*
881
+ * load_field()
882
+ *
883
+ * This filter is applied to the $field after it is loaded from the database
884
+ *
885
+ * @type filter
886
+ * @date 23/01/2013
887
+ * @since 3.6.0
888
+ *
889
+ * @param $field (array) the field array holding all the field options
890
+ * @return $field
891
+ */
892
+
893
+
894
+
895
+ function load_field( $field ) {
896
+
897
+ return $field;
898
+
899
+ }
900
+
901
+
902
+
903
+
904
+ /*
905
+ * update_field()
906
+ *
907
+ * This filter is applied to the $field before it is saved to the database
908
+ *
909
+ * @type filter
910
+ * @date 23/01/2013
911
+ * @since 3.6.0
912
+ *
913
+ * @param $field (array) the field array holding all the field options
914
+ * @return $field
915
+ */
916
+
917
+
918
+
919
+ function update_field( $field ) {
920
+
921
+ return $field;
922
+
923
+ }
924
+
925
+
926
+
927
+
928
+ /*
929
+ * delete_field()
930
+ *
931
+ * This action is fired after a field is deleted from the database
932
+ *
933
+ * @type action
934
+ * @date 11/02/2014
935
+ * @since 5.0.0
936
+ *
937
+ * @param $field (array) the field array holding all the field options
938
+ * @return n/a
939
+ */
940
+
941
+ /*
942
+
943
+ function delete_field( $field ) {
944
+
945
+
946
+
947
+ }
948
+
949
+ */
950
+
951
+
952
+ }
953
+
954
+
955
+ // initialize
956
+ new acfb_acf_field_typography( $this->settings );
957
+
958
+
959
+ // class_exists check
960
+ endif;
961
+
962
+ ?>
free-acf-blocks.php CHANGED
@@ -326,26 +326,6 @@ function acfb_blocks_free() {
326
  },
327
  ));
328
 
329
-
330
-
331
- // register a Dual Button Block.
332
- // acf_register_block(array(
333
- // 'name' => 'acfb-dual-button',
334
- // 'mode' => 'preview',
335
- // 'title' => __('Dual Button'),
336
- // 'description' => __('Add Dual Button in your pages/posts.'),
337
- // 'render_callback' => 'acf_blocks_template',
338
- // // 'render_template' => plugin_dir_path( __FILE__ ) . 'block-templates/scrollable-image.php',
339
- // 'category' => 'acfb-blocks',
340
- // 'icon' => '<svg viewBox="0 -62 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m203.640625 24.574219h-79.988281c-5.65625 0-10.246094 4.589843-10.246094 10.246093s4.589844 10.246094 10.246094 10.246094h69.742187v281.945313h-172.90625v-281.945313h24.007813c5.65625 0 10.246094-4.589844 10.246094-10.246094s-4.589844-10.246093-10.246094-10.246093h-34.25c-5.660156 0-10.246094 4.589843-10.246094 10.246093v302.433594c0 5.65625 4.585938 10.246094 10.246094 10.246094h193.394531c5.65625 0 10.242187-4.589844 10.242187-10.246094v-302.433594c0-5.65625-4.585937-10.246093-10.242187-10.246093zm0 0"/><path d="m29.007812 64.199219v243.675781c0 5.660156 4.585938 10.246094 10.246094 10.246094h135.375c5.660156 0 10.246094-4.585938 10.246094-10.246094v-243.675781c0-5.65625-4.585938-10.246094-10.246094-10.246094h-135.375c-5.660156 0-10.246094 4.585937-10.246094 10.246094zm20.488282 10.242187h114.890625v223.191406h-114.890625zm0 0"/><path d="m501.753906 24.574219h-193.394531c-5.65625 0-10.242187 4.589843-10.242187 10.246093v302.433594c0 5.65625 4.585937 10.246094 10.242187 10.246094h41.964844c8.777343 21.621094 29.996093 36.917969 54.734375 36.917969 24.734375 0 45.957031-15.296875 54.734375-36.917969h41.960937c5.660156 0 10.246094-4.589844 10.246094-10.246094v-302.433594c0-5.65625-4.585938-10.246093-10.246094-10.246093zm-96.695312 339.355469c-21.265625 0-38.566406-17.300782-38.566406-38.566407s17.300781-38.566406 38.566406-38.566406 38.566406 17.300781 38.566406 38.566406-17.300781 38.566407-38.566406 38.566407zm57.441406-66.296876h-5.324219c-9.945312-18.621093-29.574219-31.324218-52.117187-31.324218-22.542969 0-42.171875 12.703125-52.121094 31.324218h-5.324219v-223.191406h114.890625v223.191406zm29.011719 29.378907h-27.441407c.015626-.550781.042969-1.09375.042969-1.648438 0-2.453125-.167969-4.867187-.460937-7.242187h9.09375c5.65625 0 10.246094-4.585938 10.246094-10.242188v-243.679687c0-5.65625-4.589844-10.246094-10.246094-10.246094h-135.378906c-5.65625 0-10.242188 4.589844-10.242188 10.246094v243.675781c0 5.660156 4.585938 10.246094 10.242188 10.246094h9.09375c-.289063 2.375-.457032 4.789062-.457032 7.242187 0 .550781.027344 1.097657.039063 1.644531h-27.4375v-281.941406h172.90625zm0 0"/><path d="m255.125 307.335938c-5.660156 0-10.246094 4.585937-10.246094 10.246093v21.8125c0 5.65625 4.585938 10.246094 10.246094 10.246094 5.65625 0 10.242188-4.589844 10.242188-10.246094v-21.8125c0-5.660156-4.585938-10.246093-10.242188-10.246093zm0 0"/><path d="m255.125 0c-5.660156 0-10.246094 4.585938-10.246094 10.246094v51.222656c0 5.65625 4.585938 10.242188 10.246094 10.242188 5.65625 0 10.242188-4.585938 10.242188-10.242188v-51.222656c0-5.660156-4.585938-10.246094-10.242188-10.246094zm0 0"/><path d="m255.125 204.890625c-5.660156 0-10.246094 4.585937-10.246094 10.246094v51.222656c0 5.65625 4.585938 10.242187 10.246094 10.242187 5.65625 0 10.242188-4.585937 10.242188-10.242187v-51.222656c0-5.660157-4.585938-10.246094-10.242188-10.246094zm0 0"/><path d="m255.125 102.445312c-5.660156 0-10.246094 4.585938-10.246094 10.246094v51.222656c0 5.65625 4.585938 10.242188 10.246094 10.242188 5.65625 0 10.242188-4.585938 10.242188-10.242188v-51.222656c0-5.660156-4.585938-10.246094-10.242188-10.246094zm0 0"/><path d="m120.96875 137.875c-1.476562-4.523438-7.515625-6.71875-13.6875-6.71875-6.175781 0-12.214844 2.195312-13.691406 6.71875l-24.964844 78.839844c-.132812.515625-.269531 1.035156-.269531 1.421875 0 4.78125 7.652343 8.269531 13.421875 8.269531 3.355468 0 6.039062-1.03125 6.847656-3.746094l4.5625-16.15625h28.320312l4.5625 16.15625c.804688 2.714844 3.488282 3.746094 6.847657 3.746094 5.769531 0 13.421875-3.488281 13.421875-8.269531 0-.386719-.136719-.90625-.269532-1.421875zm-23.488281 53.121094 9.796875-34.640625 9.800781 34.640625zm0 0"/><path d="m383.847656 226.40625h29.796875c15.164063 0 26.976563-7.363281 26.976563-27.785156v-2.714844c0-12.921875-5.636719-17.707031-13.824219-20.679688 7.113281-2.972656 11.40625-9.824218 11.40625-20.292968 0-18.351563-13.421875-23.003906-26.84375-23.003906h-27.511719c-4.5625 0-9.128906 2.070312-9.128906 6.203124v82.199219c0 3.230469 3.492188 6.074219 9.128906 6.074219zm11.675782-76.898438h14.09375c5.101562 0 7.648437 4.523438 7.648437 9.046876 0 4.394531-2.546875 8.917968-7.648437 8.917968h-14.09375zm0 33.472657h13.421874c6.710938 0 10.738282 3.101562 10.738282 11.890625v2.070312c0 8.269532-4.027344 11.890625-10.738282 11.890625h-13.421874zm0 0"/><path d="m414.449219 308.660156-16.765625 16.179688-2.398438-2.53125c-3.890625-4.109375-10.375-4.289063-14.484375-.398438s-4.285156 10.375-.398437 14.484375l9.507812 10.042969c1.878906 1.984375 4.476563 3.136719 7.210938 3.199219.078125 0 .152344.003906.230468.003906 2.652344 0 5.203126-1.027344 7.113282-2.875l24.214844-23.359375c4.070312-3.929688 4.183593-10.417969.257812-14.488281-3.929688-4.070313-10.414062-4.183594-14.488281-.257813zm0 0"/><path d="m83.457031 45.449219c.195313.011719.390625.015625.582031.015625 5.398438 0 9.921876-4.257813 10.230469-9.710938.320313-5.648437-4-10.488281-9.648437-10.808594-5.652344-.308593-10.488282 4-10.808594 9.648438l-.003906.097656c-.320313 5.648438 4 10.4375 9.648437 10.757813zm0 0"/><path d="m255.707031 366.96875c-5.660156-.320312-10.488281 4-10.808593 9.648438l-.003907.097656c-.320312 5.652344 4 10.441406 9.648438 10.761718.195312.011719.390625.015626.582031.015626 5.394531 0 9.921875-4.257813 10.230469-9.710938.320312-5.652344-4-10.492188-9.648438-10.8125zm0 0"/></svg>',
341
- // 'enqueue_assets' => function(){
342
- // wp_enqueue_style( 'acfb-blocks-css', plugin_dir_url( __FILE__ ) . 'css/acfblocks.css' );
343
- // },
344
- // ));
345
-
346
-
347
-
348
-
349
  }
350
 
351
  }
326
  },
327
  ));
328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  }
330
 
331
  }
freemius/assets/css/admin/account.css CHANGED
@@ -1 +1 @@
1
- #fs_account .postbox,#fs_account .widefat{max-width:700px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}#fs_account .postbox,#fs_account .widefat{max-width:800px}#fs_account h3{font-size:1.3em;padding:12px 15px;margin:0 0 12px 0;line-height:1.4;border-bottom:1px solid #F1F1F1}#fs_account h3 .dashicons{width:26px;height:26px;font-size:1.3em}#fs_account i.dashicons{font-size:1.2em;height:1.2em;width:1.2em}#fs_account .dashicons{vertical-align:middle}#fs_account .fs-header-actions{position:absolute;top:17px;right:15px;font-size:0.9em}#fs_account .fs-header-actions ul{margin:0}#fs_account .fs-header-actions li{float:left}#fs_account .fs-header-actions li form{display:inline-block}#fs_account .fs-header-actions li a{text-decoration:none}#fs_account_details .button-group{float:right}.rtl #fs_account .fs-header-actions{left:15px;right:auto}.fs-key-value-table{width:100%}.fs-key-value-table form{display:inline-block}.fs-key-value-table tr td:first-child{text-align:right}.fs-key-value-table tr td:first-child nobr{font-weight:bold}.fs-key-value-table tr td:first-child form{display:block}.fs-key-value-table tr td.fs-right{text-align:right}.fs-key-value-table tr.fs-odd{background:#ebebeb}.fs-key-value-table td,.fs-key-value-table th{padding:10px}.fs-key-value-table code{line-height:28px}.fs-key-value-table var,.fs-key-value-table code,.fs-key-value-table input[type="text"]{color:#0073AA;font-size:16px;background:none}.fs-key-value-table input[type="text"]{width:100%;font-weight:bold}.fs-field-beta_program label{margin-left:7px}label.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error{background:#dc3232}#fs_sites .fs-scrollable-table .fs-table-body{max-height:200px;overflow:auto;border:1px solid #e5e5e5}#fs_sites .fs-scrollable-table .fs-table-body>table.widefat{border:none !important}#fs_sites .fs-scrollable-table .fs-main-column{width:100%}#fs_sites .fs-scrollable-table .fs-site-details td:first-of-type{text-align:right;color:grey;width:1px}#fs_sites .fs-scrollable-table .fs-site-details td:last-of-type{text-align:right}#fs_sites .fs-scrollable-table .fs-install-details table tr td{width:1px;white-space:nowrap}#fs_sites .fs-scrollable-table .fs-install-details table tr td:last-of-type{width:auto}#fs_addons h3{border:none;margin-bottom:0;padding:4px 5px}#fs_addons td{vertical-align:middle}#fs_addons thead{white-space:nowrap}#fs_addons td:first-child,#fs_addons th:first-child{text-align:left;font-weight:bold}#fs_addons td:last-child,#fs_addons th:last-child{text-align:right}#fs_addons th{font-weight:bold}#fs_billing_address{width:100%}#fs_billing_address tr td{width:50%;padding:5px}#fs_billing_address tr:first-of-type td{padding-top:0}#fs_billing_address span{font-weight:bold}#fs_billing_address input,#fs_billing_address select{display:block;width:100%;margin-top:5px}#fs_billing_address input::-moz-placeholder,#fs_billing_address select::-moz-placeholder{color:transparent;opacity:1}#fs_billing_address input:-ms-input-placeholder,#fs_billing_address select:-ms-input-placeholder{color:transparent}#fs_billing_address input::-webkit-input-placeholder,#fs_billing_address select::-webkit-input-placeholder{color:transparent}#fs_billing_address input.fs-read-mode,#fs_billing_address select.fs-read-mode{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode td span{display:none}#fs_billing_address.fs-read-mode input,#fs_billing_address.fs-read-mode select{border-color:transparent;color:#777;border-bottom:1px dashed #ccc;padding-left:0;background:none}#fs_billing_address.fs-read-mode input::-moz-placeholder,#fs_billing_address.fs-read-mode select::-moz-placeholder{color:#ccc;opacity:1}#fs_billing_address.fs-read-mode input:-ms-input-placeholder,#fs_billing_address.fs-read-mode select:-ms-input-placeholder{color:#ccc}#fs_billing_address.fs-read-mode input::-webkit-input-placeholder,#fs_billing_address.fs-read-mode select::-webkit-input-placeholder{color:#ccc}#fs_billing_address button{display:block;width:100%}
freemius/assets/css/admin/add-ons.css CHANGED
@@ -1,2 +1,2 @@
1
- #fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}
2
- #TB_window,#TB_window iframe{width:772px !important}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}#fs_addons .fs-cards-list{list-style:none}#fs_addons .fs-cards-list .fs-card{float:left;height:152px;width:310px;padding:0;margin:0 0 30px 30px;font-size:14px;list-style:none;border:1px solid #ddd;cursor:pointer;position:relative}#fs_addons .fs-cards-list .fs-card .fs-overlay{position:absolute;left:0;right:0;bottom:0;top:0;z-index:9}#fs_addons .fs-cards-list .fs-card .fs-inner{background-color:#fff;overflow:hidden;height:100%;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner>ul{-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s;left:0;right:0;top:0;position:absolute}#fs_addons .fs-cards-list .fs-card .fs-inner>ul>li{list-style:none;line-height:18px;padding:0 15px;width:100%;display:block;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner{padding:0;margin:0;line-height:0;display:block;height:100px;background-repeat:repeat-x;background-size:100% 100%;-moz-transition:all,0.15s;-o-transition:all,0.15s;-ms-transition:all,0.15s;-webkit-transition:all,0.15s;transition:all,0.15s}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-card-banner .fs-badge.fs-installed-addon-badge{font-size:1.02em;line-height:1.3em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-title{margin:10px 0 0 0;height:18px;overflow:hidden;color:#000;white-space:nowrap;text-overflow:ellipsis;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-offer{font-size:0.9em}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-description{background-color:#f9f9f9;padding:10px 15px 100px 15px;border-top:1px solid #eee;margin:0 0 10px 0;color:#777}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-tag{position:absolute;top:10px;right:0px;background:greenyellow;display:block;padding:2px 10px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.3);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.3);box-shadow:1px 1px 1px rgba(0,0,0,0.3);text-transform:uppercase;font-size:0.9em;font-weight:bold}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button,#fs_addons .fs-cards-list .fs-card .fs-inner .fs-cta .button-group{position:absolute;top:112px;right:10px}@media screen and (min-width: 960px){#fs_addons .fs-cards-list .fs-card:hover .fs-overlay{border:2px solid #29abe1;margin-left:-1px;margin-top:-1px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner ul{top:-100px}#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-title,#fs_addons .fs-cards-list .fs-card:hover .fs-inner .fs-offer{color:#29abe1}}
2
+ #TB_window,#TB_window iframe{width:821px !important}#plugin-information .fyi{width:266px !important}#plugin-information #section-holder{margin-right:299px}#plugin-information #section-description h2,#plugin-information #section-description h3,#plugin-information #section-description p,#plugin-information #section-description b,#plugin-information #section-description i,#plugin-information #section-description blockquote,#plugin-information #section-description li,#plugin-information #section-description ul,#plugin-information #section-description ol{clear:none}#plugin-information #section-description .fs-selling-points{padding-bottom:10px;border-bottom:1px solid #ddd}#plugin-information #section-description .fs-selling-points ul{margin:0}#plugin-information #section-description .fs-selling-points ul li{padding:0;list-style:none outside none}#plugin-information #section-description .fs-selling-points ul li i.dashicons{color:#71ae00;font-size:3em;vertical-align:middle;line-height:30px;float:left;margin:0 0 0 -15px}#plugin-information #section-description .fs-selling-points ul li h3{margin:1em 30px !important}#plugin-information #section-description .fs-screenshots:after{content:"";display:table;clear:both}#plugin-information #section-description .fs-screenshots ul{list-style:none;margin:0}#plugin-information #section-description .fs-screenshots ul li{width:225px;height:225px;float:left;margin-bottom:20px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#plugin-information #section-description .fs-screenshots ul li a{display:block;width:100%;height:100%;border:1px solid;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);background-size:cover}#plugin-information #section-description .fs-screenshots ul li.odd{margin-right:20px}#plugin-information .plugin-information-pricing{margin:-16px;border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan h3{margin-top:0;padding:20px;font-size:16px}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper{border-bottom:1px solid #ddd}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab{cursor:pointer;position:relative;padding:0 10px;font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab label{text-transform:uppercase;color:green;background:greenyellow;position:absolute;left:-1px;right:-1px;bottom:100%;border:1px solid darkgreen;padding:2px;text-align:center;font-size:0.9em;line-height:1em}#plugin-information .plugin-information-pricing .fs-plan .nav-tab-wrapper .nav-tab.nav-tab-active{cursor:default;background:#fffeec;border-bottom-color:#fffeec}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle h3{background:#fffeec;margin:0;padding-bottom:0;color:#0073aa}#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .nav-tab-wrapper,#plugin-information .plugin-information-pricing .fs-plan.fs-single-cycle .fs-billing-frequency{display:none}#plugin-information .plugin-information-pricing .fs-plan .fs-pricing-body{background:#fffeec;padding:20px}#plugin-information .plugin-information-pricing .fs-plan .button{width:100%;text-align:center;font-weight:bold;text-transform:uppercase;font-size:1.1em}#plugin-information .plugin-information-pricing .fs-plan label{white-space:nowrap}#plugin-information .plugin-information-pricing .fs-plan var{font-style:normal}#plugin-information .plugin-information-pricing .fs-plan .fs-billing-frequency,#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-align:center;display:block;font-weight:bold;margin-bottom:10px;text-transform:uppercase;background:#F3F3F3;padding:2px;border:1px solid #ccc}#plugin-information .plugin-information-pricing .fs-plan .fs-annual-discount{text-transform:none;color:green;background:greenyellow}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms{font-size:0.9em}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms i{float:left;margin:0 0 0 -15px}#plugin-information .plugin-information-pricing .fs-plan ul.fs-trial-terms li{margin:10px 0 0 0}#plugin-information #section-features .fs-features{margin:-20px -26px}#plugin-information #section-features table{width:100%;border-spacing:0;border-collapse:separate}#plugin-information #section-features table thead th{padding:10px 0}#plugin-information #section-features table thead .fs-price{color:#71ae00;font-weight:normal;display:block;text-align:center}#plugin-information #section-features table tbody td{border-top:1px solid #ccc;padding:10px 0;text-align:center;width:100px;color:#71ae00}#plugin-information #section-features table tbody td:first-child{text-align:left;width:auto;color:inherit;padding-left:26px}#plugin-information #section-features table tbody tr.fs-odd td{background:#fefefe}#plugin-information #section-features .dashicons-yes{width:30px;height:30px;font-size:30px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button,#plugin-information .fs-dropdown .button-group .button{position:relative;width:auto;top:0;right:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .button:focus,#plugin-information .fs-dropdown .button-group .button:focus{z-index:10}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .button-group .fs-dropdown-arrow,#plugin-information .fs-dropdown .button-group .fs-dropdown-arrow{border-top:6px solid white;border-right:4px solid transparent;border-left:4px solid transparent;top:12px;position:relative}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active:not(.up) .button:not(.fs-dropdown-arrow-button){border-bottom-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active:not(.up) .fs-dropdown-arrow-button{border-bottom-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button),#plugin-information .fs-dropdown.active.up .button:not(.fs-dropdown-arrow-button){border-top-left-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.active.up .fs-dropdown-arrow-button,#plugin-information .fs-dropdown.active.up .fs-dropdown-arrow-button{border-top-right-radius:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list,#plugin-information .fs-dropdown .fs-dropdown-list{position:absolute;right:-1px;top:100%;margin-left:auto;padding:3px 0;border:1px solid #bfbfbf;background-color:#fff;z-index:1;width:230px;text-align:left;-moz-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);-webkit-box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12)}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li,#plugin-information .fs-dropdown .fs-dropdown-list li{margin:0}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li a,#plugin-information .fs-dropdown .fs-dropdown-list li a{display:block;padding:5px 10px;text-decoration:none;text-shadow:none}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover,#plugin-information .fs-dropdown .fs-dropdown-list li:hover{background-color:#0074a3;color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown .fs-dropdown-list li:hover a,#plugin-information .fs-dropdown .fs-dropdown-list li:hover a{color:#fff}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown:not(.up) .fs-dropdown-list,#plugin-information .fs-dropdown:not(.up) .fs-dropdown-list{-moz-border-radius:3px 0 3px 3px;-webkit-border-radius:3px 0 3px 3px;border-radius:3px 0 3px 3px}#fs_addons .fs-cards-list .fs-card .fs-inner .fs-dropdown.up .fs-dropdown-list,#plugin-information .fs-dropdown.up .fs-dropdown-list{-moz-border-radius:3px 3px 0 3px;-webkit-border-radius:3px 3px 0 3px;border-radius:3px 3px 0 3px}#plugin-information .fs-dropdown .button-group{width:100%}#plugin-information .fs-dropdown .button-group .button{float:none;font-size:14px;font-weight:normal;text-transform:none}#plugin-information .fs-dropdown .fs-dropdown-list{margin-top:1px}#plugin-information .fs-dropdown.up .fs-dropdown-list{top:auto;bottom:100%;margin-bottom:2px}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group{text-align:center;display:table}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button{display:table-cell}#plugin-information.wp-core-ui .fs-pricing-body .fs-dropdown .button-group .button:not(.fs-dropdown-arrow-button){left:1px;width:100%}#plugin-information-footer>.button,#plugin-information-footer .fs-dropdown{position:relative;top:3px}#plugin-information-footer>.button.left,#plugin-information-footer .fs-dropdown.left{float:left}#plugin-information-footer>.right,#plugin-information-footer .fs-dropdown{float:right}@media screen and (max-width: 961px){#fs_addons .fs-cards-list .fs-card{height:265px}}
freemius/assets/css/admin/common.css CHANGED
@@ -1,2 +1,2 @@
1
- .theme-browser .theme .fs-premium-theme-badge{position:absolute;top:10px;right:0;background:#71ae00;color:#fff;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);font-size:1.1em}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
1
+ .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
freemius/assets/css/admin/connect.css CHANGED
@@ -1 +1 @@
1
- #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key #sites_list_container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li div{margin-left:55px}#fs_connect .fs-permissions ul li div span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li div p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}#multisite_options_container{margin-top:10px;border:1px solid #ccc;padding:5px}#multisite_options_container a{text-decoration:none}#multisite_options_container a:focus{box-shadow:none}#multisite_options_container a.selected{font-weight:bold}#multisite_options_container.apply-on-all-sites{border:0 none;padding:0}#multisite_options_container.apply-on-all-sites #all_sites_options{border-spacing:0}#multisite_options_container.apply-on-all-sites #all_sites_options td:not(:first-child){display:none}#multisite_options_container #sites_list_container{display:none;overflow:auto}#multisite_options_container #sites_list_container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li div{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
1
+ #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
freemius/assets/css/admin/debug.css CHANGED
@@ -1 +1 @@
1
- .switch{position:relative;display:inline-block;font-size:1.6em;font-weight:bold;color:#ccc;text-shadow:0px 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:4px;background:#ececec;box-shadow:0px 0px 4px rgba(0,0,0,0.1),inset 0px 1px 3px 0px rgba(0,0,0,0.1);cursor:pointer}.switch span{display:inline-block;width:35px;text-transform:uppercase}.switch span.on{color:#6bc406}.switch .toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background:-moz-linear-gradient(top, #ececec 0%, #fff 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));background:-webkit-linear-gradient(top, #ececec 0%, #fff 100%);background:-o-linear-gradient(top, #ececec 0%, #fff 100%);background:-ms-linear-gradient(top, #ececec 0%, #fff 100%);background:linear-gradient(top, #ececec 0%, #fff 100%);box-shadow:inset 0px 1px 0px 0px rgba(255,255,255,0.5);z-index:999;-moz-transition:all 0.15s ease-in-out;-o-transition:all 0.15s ease-in-out;-ms-transition:all 0.15s ease-in-out;-webkit-transition:all 0.15s ease-in-out;transition:all 0.15s ease-in-out}.switch.on .toggle{left:2%}.switch.off .toggle{left:54%}.switch.round{padding:0px 20px;border-radius:40px}.switch.round .toggle{border-radius:40px;width:14px;height:14px}.switch.round.on .toggle{left:3%;background:#6bc406}.switch.round.off .toggle{left:58%}.switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
1
+ .fs-switch-label{font-size:20px;line-height:31px;margin:0 5px}#fs_log_book table{font-family:Consolas,Monaco,monospace;font-size:12px}#fs_log_book table th{color:#ccc}#fs_log_book table tr{background:#232525}#fs_log_book table tr.alternate{background:#2b2b2b}#fs_log_book table tr td.fs-col--logger{color:#5a7435}#fs_log_book table tr td.fs-col--type{color:#ffc861}#fs_log_book table tr td.fs-col--function{color:#a7b7b1;font-weight:bold}#fs_log_book table tr td.fs-col--message,#fs_log_book table tr td.fs-col--message a{color:#9a73ac !important}#fs_log_book table tr td.fs-col--file{color:#d07922}#fs_log_book table tr td.fs-col--timestamp{color:#6596be}
freemius/assets/css/admin/dialog-boxes.css CHANGED
@@ -1,2 +1,2 @@
1
- .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.license_key{width:100%}#license_options_container table,#license_options_container table select,#license_options_container table #available_license_key{width:100%}#license_options_container table td:first-child{width:1%}#license_options_container table #other_license_key_container label{position:relative;top:6px;float:left;margin-right:5px}#license_options_container table #other_license_key_container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}#license_options_container table #other_license_key_container div input{margin:0}#sites_list_container td{cursor:pointer}#multisite_options_container{margin-top:10px;border:1px solid #ccc;padding:5px}#multisite_options_container a{text-decoration:none}#multisite_options_container a:focus{box-shadow:none}#multisite_options_container a.selected{font-weight:bold}#multisite_options_container.apply-on-all-sites{border:0 none;padding:0}#multisite_options_container.apply-on-all-sites #all_sites_options{border-spacing:0}#multisite_options_container.apply-on-all-sites #all_sites_options td:not(:first-child){display:none}#multisite_options_container #sites_list_container{display:none;overflow:auto}#multisite_options_container #sites_list_container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
1
+ .fs-modal{position:fixed;overflow:auto;height:100%;width:100%;top:0;z-index:100000;display:none;background:rgba(0,0,0,0.6)}.fs-modal .dashicons{vertical-align:middle}.fs-modal .fs-modal-dialog{background:transparent;position:absolute;left:50%;margin-left:-298px;padding-bottom:30px;top:-100%;z-index:100001;width:596px}@media (max-width: 650px){.fs-modal .fs-modal-dialog{margin-left:-50%;box-sizing:border-box;padding-left:10px;padding-right:10px;width:100%}.fs-modal .fs-modal-dialog .fs-modal-panel>h3>strong{font-size:1.3em}}.fs-modal.active{display:block}.fs-modal.active:before{display:block}.fs-modal.active .fs-modal-dialog{top:10%}.fs-modal.fs-success .fs-modal-header{border-bottom-color:#46b450}.fs-modal.fs-success .fs-modal-body{background-color:#f7fff7}.fs-modal.fs-warn .fs-modal-header{border-bottom-color:#ffb900}.fs-modal.fs-warn .fs-modal-body{background-color:#fff8e5}.fs-modal.fs-error .fs-modal-header{border-bottom-color:#dc3232}.fs-modal.fs-error .fs-modal-body{background-color:#ffeaea}.fs-modal .fs-modal-body,.fs-modal .fs-modal-footer{border:0;background:#fefefe;padding:20px}.fs-modal .fs-modal-header{border-bottom:#eeeeee solid 1px;background:#fbfbfb;padding:15px 20px;position:relative;margin-bottom:-10px}.fs-modal .fs-modal-header h4{margin:0;padding:0;text-transform:uppercase;font-size:1.2em;font-weight:bold;color:#cacaca;text-shadow:1px 1px 1px #fff;letter-spacing:0.6px;-webkit-font-smoothing:antialiased}.fs-modal .fs-modal-header .fs-close{position:absolute;right:10px;top:12px;cursor:pointer;color:#bbb;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;padding:3px;-moz-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;-ms-transition:all 0.2s ease-in-out;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.fs-modal .fs-modal-header .fs-close:hover{color:#fff;background:#aaa}.fs-modal .fs-modal-header .fs-close .dashicons,.fs-modal .fs-modal-header .fs-close:hover .dashicons{text-decoration:none}.fs-modal .fs-modal-body{border-bottom:0}.fs-modal .fs-modal-body p{font-size:14px}.fs-modal .fs-modal-body h2{font-size:20px;line-height:1.5em}.fs-modal .fs-modal-body>div{margin-top:10px}.fs-modal .fs-modal-body>div h2{font-weight:bold;font-size:20px;margin-top:0}.fs-modal .fs-modal-footer{border-top:#eeeeee solid 1px;text-align:right}.fs-modal .fs-modal-footer>.button{margin:0 7px}.fs-modal .fs-modal-footer>.button:first-child{margin:0}.fs-modal .fs-modal-panel>.notice.inline{margin:0;display:none}.fs-modal .fs-modal-panel:not(.active){display:none}.rtl .fs-modal .fs-modal-header .fs-close{right:auto;left:20px}body.has-fs-modal{overflow:hidden}.fs-modal.fs-modal-deactivation-feedback .reason-input,.fs-modal.fs-modal-deactivation-feedback .internal-message{margin:3px 0 3px 22px}.fs-modal.fs-modal-deactivation-feedback .reason-input input,.fs-modal.fs-modal-deactivation-feedback .reason-input textarea,.fs-modal.fs-modal-deactivation-feedback .internal-message input,.fs-modal.fs-modal-deactivation-feedback .internal-message textarea{width:100%}.fs-modal.fs-modal-deactivation-feedback li.reason.has-internal-message .internal-message{border:1px solid #ccc;padding:7px;display:none}@media (max-width: 650px){.fs-modal.fs-modal-deactivation-feedback li.reason li.reason{margin-bottom:10px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .reason-input,.fs-modal.fs-modal-deactivation-feedback li.reason li.reason .internal-message{margin-left:29px}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label{display:table}.fs-modal.fs-modal-deactivation-feedback li.reason li.reason label>span{display:table-cell;font-size:1.3em}}.fs-modal.fs-modal-deactivation-feedback .anonymous-feedback-label{float:left}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel{margin-top:0 !important}.fs-modal.fs-modal-deactivation-feedback .fs-modal-panel h3{margin-top:0;line-height:1.5em}#the-list .deactivate>.fs-slug{display:none}.fs-modal.fs-modal-subscription-cancellation .fs-price-increase-warning{color:red;font-weight:bold;padding:0 25px;margin-bottom:0}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:left;top:5px;position:relative}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label input{float:right}.fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{display:block;margin-left:24px}.rtl .fs-modal.fs-modal-subscription-cancellation ul.subscription-actions label span{margin-left:0;margin-right:24px}.fs-modal.fs-modal-license-activation .fs-modal-body input.fs-license-key{width:100%}.fs-license-options-container table,.fs-license-options-container table select,.fs-license-options-container table .fs-available-license-key{width:100%}.fs-license-options-container table td:first-child{width:1%}.fs-license-options-container table .fs-other-license-key-container label{position:relative;top:6px;float:left;margin-right:5px}.fs-license-options-container table .fs-other-license-key-container div{overflow:hidden;width:auto;height:30px;display:block;top:2px;position:relative}.fs-license-options-container table .fs-other-license-key-container div input{margin:0}.fs-sites-list-container td{cursor:pointer}.fs-modal.fs-modal-user-change .fs-modal-body input#fs_other_email_address{width:100%}.fs-user-change-options-container table{width:100%;border-collapse:collapse}.fs-user-change-options-container table tr{display:block;margin-bottom:2px}.fs-user-change-options-container table .fs-email-address-container td{display:inline-block}.fs-user-change-options-container table .fs-email-address-container input[type="radio"]{margin-bottom:0;margin-top:0}.fs-user-change-options-container table .fs-other-email-address-container{width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div{display:table;width:100%}.fs-user-change-options-container table .fs-other-email-address-container>div label,.fs-user-change-options-container table .fs-other-email-address-container>div>div{display:table-cell}.fs-user-change-options-container table .fs-other-email-address-container>div label{width:1%;padding-left:3px;padding-right:3px}.fs-user-change-options-container table .fs-other-email-address-container>div>div{width:auto}.fs-user-change-options-container table .fs-other-email-address-container>div>div input{width:100%}.fs-modal.fs-modal-developer-license-debug-mode .fs-modal-body input.fs-license-or-user-key{width:100%}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-modal.fs-modal-license-key-resend .email-address-container{overflow:hidden;padding-right:2px}.fs-modal.fs-modal-license-key-resend.fs-freemium input.email-address{width:300px}.fs-modal.fs-modal-license-key-resend.fs-freemium label{display:block;margin-bottom:10px}.fs-modal.fs-modal-license-key-resend.fs-premium input.email-address{width:100%}.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{float:right;margin-left:7px}@media (max-width: 650px){.fs-modal.fs-modal-license-key-resend.fs-premium .button-container{margin-top:2px}}
2
  .rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .input-container>.email-address-container{padding-left:2px;padding-right:0}.rtl .fs-modal.fs-modal-license-key-resend .fs-modal-body .button-container{float:left;margin-right:7px;margin-left:0}a.show-license-resend-modal{margin-top:4px;display:inline-block}.fs-ajax-loader{position:relative;width:170px;height:20px;margin:auto}.fs-ajax-loader .fs-ajax-loader-bar{position:absolute;top:0;background-color:#0074a3;width:20px;height:20px;-webkit-animation-name:bounce_ajaxLoader;-moz-animation-name:bounce_ajaxLoader;-ms-animation-name:bounce_ajaxLoader;-o-animation-name:bounce_ajaxLoader;animation-name:bounce_ajaxLoader;-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;-ms-animation-duration:1.5s;-o-animation-duration:1.5s;animation-duration:1.5s;animation-iteration-count:infinite;-o-animation-iteration-count:infinite;-ms-animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;-moz-animation-iteration-count:infinite;-webkit-animation-direction:normal;-moz-animation-direction:normal;-ms-animation-direction:normal;-o-animation-direction:normal;animation-direction:normal;-moz-transform:0.3;-o-transform:0.3;-ms-transform:0.3;-webkit-transform:0.3;transform:0.3}.fs-ajax-loader .fs-ajax-loader-bar-1{left:0px;animation-delay:0.6s;-o-animation-delay:0.6s;-ms-animation-delay:0.6s;-webkit-animation-delay:0.6s;-moz-animation-delay:0.6s}.fs-ajax-loader .fs-ajax-loader-bar-2{left:19px;animation-delay:0.75s;-o-animation-delay:0.75s;-ms-animation-delay:0.75s;-webkit-animation-delay:0.75s;-moz-animation-delay:0.75s}.fs-ajax-loader .fs-ajax-loader-bar-3{left:38px;animation-delay:0.9s;-o-animation-delay:0.9s;-ms-animation-delay:0.9s;-webkit-animation-delay:0.9s;-moz-animation-delay:0.9s}.fs-ajax-loader .fs-ajax-loader-bar-4{left:57px;animation-delay:1.05s;-o-animation-delay:1.05s;-ms-animation-delay:1.05s;-webkit-animation-delay:1.05s;-moz-animation-delay:1.05s}.fs-ajax-loader .fs-ajax-loader-bar-5{left:76px;animation-delay:1.2s;-o-animation-delay:1.2s;-ms-animation-delay:1.2s;-webkit-animation-delay:1.2s;-moz-animation-delay:1.2s}.fs-ajax-loader .fs-ajax-loader-bar-6{left:95px;animation-delay:1.35s;-o-animation-delay:1.35s;-ms-animation-delay:1.35s;-webkit-animation-delay:1.35s;-moz-animation-delay:1.35s}.fs-ajax-loader .fs-ajax-loader-bar-7{left:114px;animation-delay:1.5s;-o-animation-delay:1.5s;-ms-animation-delay:1.5s;-webkit-animation-delay:1.5s;-moz-animation-delay:1.5s}.fs-ajax-loader .fs-ajax-loader-bar-8{left:133px;animation-delay:1.65s;-o-animation-delay:1.65s;-ms-animation-delay:1.65s;-webkit-animation-delay:1.65s;-moz-animation-delay:1.65s}@-moz-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-ms-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-o-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@-webkit-keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}@keyframes bounce_ajaxLoader{0%{-moz-transform:scale(1);-o-transform:scale(1);-ms-transform:scale(1);-webkit-transform:scale(1);transform:scale(1);background-color:#0074a3}100%{-moz-transform:scale(0.3);-o-transform:scale(0.3);-ms-transform:scale(0.3);-webkit-transform:scale(0.3);transform:scale(0.3);background-color:#fff}}.fs-modal-auto-install #request-filesystem-credentials-form h2,.fs-modal-auto-install #request-filesystem-credentials-form .request-filesystem-credentials-action-buttons{display:none}.fs-modal-auto-install #request-filesystem-credentials-form input[type=password],.fs-modal-auto-install #request-filesystem-credentials-form input[type=email],.fs-modal-auto-install #request-filesystem-credentials-form input[type=text]{-webkit-appearance:none;padding:10px 10px 5px 10px;width:300px;max-width:100%}.fs-modal-auto-install #request-filesystem-credentials-form>div,.fs-modal-auto-install #request-filesystem-credentials-form label,.fs-modal-auto-install #request-filesystem-credentials-form fieldset{width:300px;max-width:100%;margin:0 auto;display:block}.button-primary.warn{box-shadow:0 1px 0 #d2593c;text-shadow:0 -1px 1px #d2593c,1px 0 1px #d2593c,0 1px 1px #d2593c,-1px 0 1px #d2593c;background:#f56a48;border-color:#ec6544 #d2593c #d2593c}.button-primary.warn:hover{background:#fd6d4a;border-color:#d2593c}.button-primary.warn:focus{box-shadow:0 1px 0 #dd6041,0 0 2px 1px #e4a796}.button-primary.warn:active{background:#dd6041;border-color:#d2593c;box-shadow:inset 0 2px 0 #d2593c}.button-primary.warn.disabled{color:#f5b3a1 !important;background:#e76444 !important;border-color:#d85e40 !important;text-shadow:0 -1px 0 rgba(0,0,0,0.1) !important}
freemius/assets/css/admin/plugins.css ADDED
@@ -0,0 +1 @@
 
1
+ label.fs-tag,span.fs-tag{background:#ffba00;color:#fff;display:inline-block;border-radius:3px;padding:5px;font-size:11px;line-height:11px;vertical-align:baseline}label.fs-tag.fs-warn,span.fs-tag.fs-warn{background:#ffba00}label.fs-tag.fs-info,span.fs-tag.fs-info{background:#00a0d2}label.fs-tag.fs-success,span.fs-tag.fs-success{background:#46b450}label.fs-tag.fs-error,span.fs-tag.fs-error{background:#dc3232}.wp-list-table.plugins .plugin-title span.fs-tag{display:inline-block;margin-left:5px;line-height:10px}
freemius/assets/css/customizer.css CHANGED
@@ -1 +1 @@
1
- #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}
1
+ #fs_customizer_upsell .fs-customizer-plan{padding:10px 20px 20px 20px;border-radius:3px;background:#fff}#fs_customizer_upsell .fs-customizer-plan h2{position:relative;margin:0;line-height:2em;text-transform:uppercase}#fs_customizer_upsell .fs-customizer-plan h2 .button-link{top:-2px}#fs_customizer_upsell .fs-feature{position:relative}#fs_customizer_upsell .dashicons-yes{color:#0085ba;font-size:2em;vertical-align:bottom;margin-left:-7px;margin-right:10px}.rtl #fs_customizer_upsell .dashicons-yes{margin-left:10px;margin-right:-7px}#fs_customizer_upsell .dashicons-editor-help{color:#bbb;cursor:help}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:#000;color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc{text-align:right}#fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#000 transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl #fs_customizer_upsell .dashicons-editor-help .fs-feature-desc::after{right:21px;left:auto}#fs_customizer_upsell .dashicons-editor-help:hover .fs-feature-desc{visibility:visible;opacity:1}#fs_customizer_upsell .button-primary{display:block;text-align:center;margin-top:10px}#fs_customizer_support{display:block !important}#fs_customizer_support .button{float:right}#fs_customizer_support .button-group{width:100%;display:block;margin-top:10px}#fs_customizer_support .button-group .button{float:none;width:50%;text-align:center}#customize-theme-controls #accordion-section-freemius_upsell{border-top:1px solid #0085ba !important;border-bottom:1px solid #0085ba !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title{color:#fff;background-color:#0085ba;border-left:4px solid #0085ba;transition:.15s background-color ease-in-out, .15s border-color ease-in-out;outline:none;border-bottom:none !important}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:hover{background-color:#008ec2;border-left-color:#0073aa}#customize-theme-controls #accordion-section-freemius_upsell h3.accordion-section-title:after{color:#fff}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title{border-left:none;border-right:4px solid #0085ba}#customize-theme-controls #accordion-section-freemius_upsell .rtl h3.accordion-section-title:hover{border-right-color:#0073aa}
freemius/assets/img/acf-blocks.svg DELETED
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="214" height="214" viewbox="0 0 214 214" preserveAspectRatio="none"><rect x="0" y="0" width="100%" height="100%" fill="rgb(137, 69, 90)" /><circle cx="0" cy="0" r="35.833333333333" fill="#ddd" style="opacity:0.054666666666667;" /><circle cx="215" cy="0" r="35.833333333333" fill="#ddd" style="opacity:0.054666666666667;" /><circle cx="0" cy="215" r="35.833333333333" fill="#ddd" style="opacity:0.054666666666667;" /><circle cx="215" cy="215" r="35.833333333333" fill="#ddd" style="opacity:0.054666666666667;" /><circle cx="35.833333333333" cy="0" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="35.833333333333" cy="215" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="71.666666666667" cy="0" r="35.833333333333" fill="#222" style="opacity:0.063333333333333;" /><circle cx="71.666666666667" cy="215" r="35.833333333333" fill="#222" style="opacity:0.063333333333333;" /><circle cx="107.5" cy="0" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="107.5" cy="215" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="143.33333333333" cy="0" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="143.33333333333" cy="215" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="179.16666666667" cy="0" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="179.16666666667" cy="215" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="0" cy="35.833333333333" r="35.833333333333" fill="#222" style="opacity:0.063333333333333;" /><circle cx="215" cy="35.833333333333" r="35.833333333333" fill="#222" style="opacity:0.063333333333333;" /><circle cx="35.833333333333" cy="35.833333333333" r="35.833333333333" fill="#ddd" style="opacity:0.037333333333333;" /><circle cx="71.666666666667" cy="35.833333333333" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="107.5" cy="35.833333333333" r="35.833333333333" fill="#ddd" style="opacity:0.072;" /><circle cx="143.33333333333" cy="35.833333333333" r="35.833333333333" fill="#ddd" style="opacity:0.089333333333333;" /><circle cx="179.16666666667" cy="35.833333333333" r="35.833333333333" fill="#222" style="opacity:0.11533333333333;" /><circle cx="0" cy="71.666666666667" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="215" cy="71.666666666667" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="35.833333333333" cy="71.666666666667" r="35.833333333333" fill="#ddd" style="opacity:0.10666666666667;" /><circle cx="71.666666666667" cy="71.666666666667" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="107.5" cy="71.666666666667" r="35.833333333333" fill="#222" style="opacity:0.13266666666667;" /><circle cx="143.33333333333" cy="71.666666666667" r="35.833333333333" fill="#ddd" style="opacity:0.072;" /><circle cx="179.16666666667" cy="71.666666666667" r="35.833333333333" fill="#222" style="opacity:0.098;" /><circle cx="0" cy="107.5" r="35.833333333333" fill="#ddd" style="opacity:0.10666666666667;" /><circle cx="215" cy="107.5" r="35.833333333333" fill="#ddd" style="opacity:0.10666666666667;" /><circle cx="35.833333333333" cy="107.5" r="35.833333333333" fill="#ddd" style="opacity:0.02;" /><circle cx="71.666666666667" cy="107.5" r="35.833333333333" fill="#222" style="opacity:0.028666666666667;" /><circle cx="107.5" cy="107.5" r="35.833333333333" fill="#222" style="opacity:0.11533333333333;" /><circle cx="143.33333333333" cy="107.5" r="35.833333333333" fill="#222" style="opacity:0.098;" /><circle cx="179.16666666667" cy="107.5" r="35.833333333333" fill="#ddd" style="opacity:0.14133333333333;" /><circle cx="0" cy="143.33333333333" r="35.833333333333" fill="#222" style="opacity:0.046;" /><circle cx="215" cy="143.33333333333" r="35.833333333333" fill="#222" style="opacity:0.046;" /><circle cx="35.833333333333" cy="143.33333333333" r="35.833333333333" fill="#ddd" style="opacity:0.089333333333333;" /><circle cx="71.666666666667" cy="143.33333333333" r="35.833333333333" fill="#ddd" style="opacity:0.124;" /><circle cx="107.5" cy="143.33333333333" r="35.833333333333" fill="#222" style="opacity:0.080666666666667;" /><circle cx="143.33333333333" cy="143.33333333333" r="35.833333333333" fill="#ddd" style="opacity:0.10666666666667;" /><circle cx="179.16666666667" cy="143.33333333333" r="35.833333333333" fill="#222" style="opacity:0.080666666666667;" /><circle cx="0" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.11533333333333;" /><circle cx="215" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.11533333333333;" /><circle cx="35.833333333333" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.080666666666667;" /><circle cx="71.666666666667" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.080666666666667;" /><circle cx="107.5" cy="179.16666666667" r="35.833333333333" fill="#ddd" style="opacity:0.054666666666667;" /><circle cx="143.33333333333" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.15;" /><circle cx="179.16666666667" cy="179.16666666667" r="35.833333333333" fill="#222" style="opacity:0.098;" /></svg>
 
freemius/assets/scss/_colors.scss DELETED
@@ -1,79 +0,0 @@
1
- $menu-hover-color: #333;
2
- $darkest-color: #000;
3
- $fms-live-color: #71ae00;
4
- $fms-test-color: #f7941d;
5
- $fms-link-color: #29abe1;
6
- $fms-link-hover-color: darken(#29abe1, 10%);
7
- $body-bkg: #111;
8
- $special-color: #d3135a;
9
- $body-color: #f1f1f1;
10
- $fms-white: #f1f1f1;
11
- $container-bkg: #222;
12
- $container-bkg-odd: #262626;
13
- $container-border-color: #333;
14
- $table-head-bkg: #333;
15
- $table-head-color: #999;
16
- $info-color: #999;
17
- $error-color: #ff0000;
18
-
19
- $fs-logo-blue-color: #29abe1;
20
- $fs-logo-green-color: #71ae00;
21
- $fs-logo-magenta-color: #d3135a;
22
-
23
- // WordPress colors.
24
- $page-header-bkg: #333;
25
- $page-header-color: $fms-white;
26
- $text-dark-color: #333;
27
- $text-light-color: #666;
28
- $text-lightest-color: #999;
29
-
30
- // Notices.
31
- $wp-notice-success-color: #f7fff7;
32
- $wp-notice-success-dark-color: #46b450;
33
- $wp-notice-error-color: #ffeaea;
34
- $wp-notice-error-dark-color: #dc3232;
35
- $wp-notice-warn-color: #fff8e5;
36
- $wp-notice-warn-dark-color: #ffb900;
37
- $fs-notice-promotion-border-color: #00a0d2;
38
- $fs-notice-promotion-bkg: #f2fcff;
39
-
40
- // WP Buttons.
41
- $button-primary-bkg: #6bc406;
42
- $button-primary-color: $fms-white;
43
- $button-secondary-bkg: #333;
44
- $button-secondary-color: $fms-white;
45
- $featured-color: #6bc406;
46
- $wp-selected-color: #0074a3;
47
- $wp-button-alert-border-color: #d2593c;
48
- $wp-button-alert-border-top-color: #ec6544;
49
- $wp-button-alert-shadow-color: #d2593c;
50
- $wp-button-alert-focused-shadow1-color: #dd6041;
51
- $wp-button-alert-focused-shadow2-color: #e4a796;
52
- $wp-button-alert-background-color: #f56a48;
53
- $wp-button-alert-hovered-background-color: #fd6d4a;
54
- $wp-button-alert-active-background-color: #dd6041;
55
- $wp-button-alert-disabled-color: #f5b3a1;
56
- $wp-button-alert-disabled-background-color: #e76444;
57
- $wp-button-alert-disabled-border-color: #d85e40;
58
-
59
- $wordpress_color: #01749A;
60
- $blogger_color: #ff8100;
61
- $wix_color: #fac102;
62
- $shopify_color: #80d100;
63
- $addthis_color: #fe6d4e;
64
- $tumblr_color: #34506b;
65
- $zepo_color: #00baf2;
66
- $jquery_color: #000919;
67
- $javascript_color: #00baf2;
68
- $squarespace_color: #000;
69
-
70
- $blog_color: #ff6600;
71
- $facebook_color: #3b5998;
72
- $twitter_color: #4099ff;
73
- $linkedin_color: #4875b4;
74
- $youtube_color: #ff3333;
75
- $gplus_color: #c63d2d;
76
-
77
- // Tooltip
78
- $tooltip-color: #fff;
79
- $tooltip-bkg-color: rgba(0,0,0,0.8);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/_functions.scss DELETED
File without changes
freemius/assets/scss/_load.scss DELETED
@@ -1,4 +0,0 @@
1
- @import 'mixins';
2
- @import "vars";
3
- @import "functions";
4
- @import "colors";
 
 
 
 
freemius/assets/scss/_mixins.scss DELETED
@@ -1,270 +0,0 @@
1
- // ---- CSS3 SASS MIXINS ----
2
- // https://github.com/madr/css3-sass-mixins
3
- //
4
- // Copyright (C) 2011 by Anders Ytterström
5
- //
6
- // Permission is hereby granted, free of charge, to any person obtaining a copy
7
- // of this software and associated documentation files (the "Software"), to deal
8
- // in the Software without restriction, including without limitation the rights
9
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- // copies of the Software, and to permit persons to whom the Software is
11
- // furnished to do so, subject to the following conditions:
12
- //
13
- // The above copyright notice and this permission notice shall be included in
14
- // all copies or substantial portions of the Software.
15
- //
16
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- // THE SOFTWARE.
23
- //
24
-
25
- // ---- LEGACY IE SUPPORT USING FILTERS ----
26
- // Should IE filters be used or not?
27
- // PROS: gradients, drop shadows etc will be handled by css.
28
- // CONS: will harm the site performance badly,
29
- // especially on sites with heavy rendering and scripting.
30
- $useIEFilters: 0;
31
- // might be 0 or 1. disabled by default.
32
- // ---- /LEGACY IE SUPPORT USING FILTERS ----
33
-
34
-
35
- @mixin background-size ($value) {
36
- -webkit-background-size: $value;
37
- background-size: $value;
38
- }
39
-
40
- @mixin border-image ($path, $offsets, $repeats) {
41
- -moz-border-image: $path $offsets $repeats;
42
- -o-border-image: $path $offsets $repeats;
43
- -webkit-border-image: $path $offsets $repeats;
44
- border-image: $path $offsets $repeats;
45
- }
46
-
47
- @mixin border-radius ($values...) {
48
- -moz-border-radius: $values;
49
- -webkit-border-radius: $values;
50
- border-radius: $values;
51
- /*-moz-background-clip: padding;
52
- -webkit-background-clip: padding-box;
53
- background-clip: padding-box;*/
54
- }
55
-
56
- @mixin box-shadow ($values...) {
57
- -moz-box-shadow: $values;
58
- -webkit-box-shadow: $values;
59
- box-shadow: $values;
60
- }
61
-
62
- //@mixin box-shadow ($x, $y, $offset, $hex, $ie: $useIEFilters, $inset: null, $spread:null) {
63
- // -moz-box-shadow: $x $y $offset $spread $hex $inset;
64
- // -webkit-box-shadow: $x $y $offset $spread $hex $inset;
65
- // box-shadow: $x $y $offset $spread $hex $inset;
66
- //
67
- // @if $ie == 1 {
68
- // $iecolor: '#' + red($hex) + green($hex) + blue($hex);
69
- // filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=#{$x}, OffY=#{$y}, Color='#{$iecolor}');
70
- // -ms-filter: quote(progid:DXImageTransform.Microsoft.dropshadow(OffX=#{$x}, OffY=#{$y}, Color='#{$iecolor}'));
71
- // }
72
- //}
73
-
74
- @mixin box-sizing($value) {
75
- -moz-box-sizing: $value;
76
- -webkit-box-sizing: $value;
77
- box-sizing: $value;
78
- }
79
-
80
- // requires sass 3.2
81
- @mixin keyframes($name){
82
- @-moz-keyframes #{$name} { @content; }
83
- @-ms-keyframes #{$name} { @content; }
84
- @-o-keyframes #{$name} { @content; }
85
- @-webkit-keyframes #{$name} { @content; }
86
- @keyframes #{$name} { @content; }
87
- }
88
-
89
- @mixin linear-gradient($from, $to, $ie: $useIEFilters) {
90
- @if $ie != 1 { background-color: $to; }
91
-
92
- background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, $from),color-stop(1, $to));
93
- background-image: -webkit-linear-gradient(top, $from, $to);
94
- background-image: -moz-linear-gradient(top, $from, $to);
95
- background-image: -ms-linear-gradient(top, $from, $to);
96
- background-image: -o-linear-gradient(top, $from, $to);
97
- background-image: linear-gradient(top, bottom, $from, $to);
98
-
99
- @if $ie == 1 {
100
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}');
101
- }
102
- }
103
-
104
- @mixin horizontal-gradient($startColor: #555, $endColor: #333, $ie: $useIEFilters) {
105
- @if $ie != 1 { background-color: $endColor; }
106
-
107
- background-color: $endColor;
108
- background-image: -webkit-gradient(linear, 0 0, 100% 0, from($startColor), to($endColor)); // Safari 4+, Chrome 2+
109
- background-image: -webkit-linear-gradient(left, $startColor, $endColor); // Safari 5.1+, Chrome 10+
110
- background-image: -moz-linear-gradient(left, $startColor, $endColor); // FF 3.6+
111
- background-image: -o-linear-gradient(left, $startColor, $endColor); // Opera 11.10
112
- background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10
113
- background-repeat: repeat-x;
114
- @if $ie == 1 {
115
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$startColor}', endColorstr='#{$endColor}', GradientType=1);
116
- }
117
- }
118
-
119
- @mixin radial-gradient($from, $to, $ie: $useIEFilters) {
120
- @if $ie != 1 { background-color: $to; }
121
-
122
- background: -moz-radial-gradient(center, circle cover, $from 0%, $to 100%);
123
- background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, $from), color-stop(100%, $to));
124
- background: -webkit-radial-gradient(center, circle cover, $from 0%, $to 100%);
125
- background: -o-radial-gradient(center, circle cover, $from 0%, $to 100%);
126
- background: -ms-radial-gradient(center, circle cover, $from 0%, $to 100%);
127
- background: radial-gradient(center, circle cover, $from 0%, $to 100%);
128
- background-color: $from;
129
-
130
- @if $ie == 1 {
131
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{$from}', endColorstr='#{$to}', GradientType=1); /* IE6-9 fallback on horizontal gradient */
132
- }
133
- }
134
-
135
- @mixin perspective($perspective) {
136
- -moz-perspective: $perspective;
137
- -ms-perspective: $perspective;
138
- -webkit-perspective: $perspective;
139
- perspective: $perspective;
140
- -moz-transform-style: preserve-3d;
141
- -ms-transform-style: preserve-3d;
142
- -webkit-transform-style: preserve-3d;
143
- transform-style: preserve-3d;
144
- }
145
-
146
- @mixin transform ($transforms) {
147
- -moz-transform: $transforms;
148
- -o-transform: $transforms;
149
- -ms-transform: $transforms;
150
- -webkit-transform: $transforms;
151
- transform: $transforms;
152
- }
153
-
154
- @mixin matrix ($a, $b, $c, $d, $e, $f) {
155
- -moz-transform: matrix($a, $b, $c, $d, #{$e}px, #{$f}px);
156
- -o-transform: matrix($a, $b, $c, $d, $e, $f);
157
- -ms-transform: matrix($a, $b, $c, $d, $e, $f);
158
- -webkit-transform: matrix($a, $b, $c, $d, $e, $f);
159
- transform: matrix($a, $b, $c, $d, $e, $f);
160
- }
161
-
162
- @mixin rotate ($deg) {
163
- @include transform(rotate(#{$deg}deg));
164
- }
165
-
166
- @mixin scale ($size) {
167
- @include transform(scale(#{$size}));
168
- }
169
-
170
- @mixin translate ($x, $y) {
171
- @include transform(translate($x, $y));
172
- }
173
-
174
- @mixin transition ($value...) {
175
- -moz-transition: $value;
176
- -o-transition: $value;
177
- -ms-transition: $value;
178
- -webkit-transition: $value;
179
- transition: $value;
180
- }
181
-
182
- @mixin animation($str) {
183
- -webkit-animation: #{$str};
184
- -moz-animation: #{$str};
185
- -ms-animation: #{$str};
186
- -o-animation: #{$str};
187
- animation: #{$str};
188
- }
189
-
190
- @mixin animation-name($str) {
191
- -webkit-animation-name: #{$str};
192
- -moz-animation-name: #{$str};
193
- -ms-animation-name: #{$str};
194
- -o-animation-name: #{$str};
195
- animation-name: #{$str};
196
- }
197
-
198
- @mixin animation-duration($str) {
199
- -webkit-animation-duration: #{$str};
200
- -moz-animation-duration: #{$str};
201
- -ms-animation-duration: #{$str};
202
- -o-animation-duration: #{$str};
203
- animation-duration: #{$str};
204
- }
205
-
206
- @mixin animation-direction($str) {
207
- -webkit-animation-direction: #{$str};
208
- -moz-animation-direction: #{$str};
209
- -ms-animation-direction: #{$str};
210
- -o-animation-direction: #{$str};
211
- animation-direction: #{$str};
212
- }
213
-
214
- @mixin animation-delay($str) {
215
- animation-delay:#{$str};
216
- -o-animation-delay:#{$str};
217
- -ms-animation-delay:#{$str};
218
- -webkit-animation-delay:#{$str};
219
- -moz-animation-delay:#{$str};
220
- }
221
-
222
- @mixin animation-iteration-count($str) {
223
- animation-iteration-count:#{$str};
224
- -o-animation-iteration-count:#{$str};
225
- -ms-animation-iteration-count:#{$str};
226
- -webkit-animation-iteration-count:#{$str};
227
- -moz-animation-iteration-count:#{$str};
228
- }
229
-
230
- @mixin animation-timing-function($str) {
231
- -webkit-animation-timing-function: #{$str};
232
- -moz-animation-timing-function: #{$str};
233
- -ms-animation-timing-function: #{$str};
234
- -o-animation-timing-function: #{$str};
235
- animation-timing-function: #{$str};
236
- }
237
-
238
- // ==== /CSS3 SASS MIXINS ====
239
-
240
- @mixin opacity($opacity) {
241
- opacity: $opacity;
242
- $opacity-ie: $opacity * 100;
243
- filter: alpha(opacity=$opacity-ie); //IE8
244
- }
245
-
246
- @mixin size($width, $height: $width)
247
- {
248
- width: $width;
249
- height: $height;
250
- }
251
-
252
- @mixin clearfix
253
- {
254
- &:after {
255
- content: "";
256
- display: table;
257
- clear: both;
258
- }
259
- }
260
-
261
- // Placeholder text
262
- @mixin placeholder($color: $input-color-placeholder) {
263
- // Firefox
264
- &::-moz-placeholder {
265
- color: $color;
266
- opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526
267
- }
268
- &:-ms-input-placeholder { color: $color; } // Internet Explorer 10+
269
- &::-webkit-input-placeholder { color: $color; } // Safari and Chrome
270
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/_start.scss DELETED
@@ -1,4 +0,0 @@
1
- @import "vars";
2
- @import "colors";
3
- @import "mixins";
4
- @import "functions";
 
 
 
 
freemius/assets/scss/_vars.scss DELETED
@@ -1,6 +0,0 @@
1
- $is_production: true;
2
-
3
- $img_common: if($is_production == true, '//img.freemius.com', 'http://img.freemius:8080');
4
-
5
- $layout_width: 960px;
6
- $admin_mobile_max_width: 782px;
 
 
 
 
 
 
freemius/assets/scss/admin/_ajax-loader.scss DELETED
@@ -1,49 +0,0 @@
1
- $color: $wp-selected-color;
2
- $bkg-color: #fff;
3
- $size: 20;
4
-
5
- .fs-ajax-loader
6
- {
7
- position: relative;
8
- width: #{8*$size + 10}px;
9
- height: #{$size}px;
10
- margin: auto;
11
-
12
- .fs-ajax-loader-bar
13
- {
14
- position: absolute;
15
- top: 0;
16
- background-color: $color;
17
- width: #{$size}px;
18
- height: #{$size}px;
19
- @include animation-name(bounce_ajaxLoader);
20
- @include animation-duration(1.5s);
21
- @include animation-iteration-count(infinite);
22
- @include animation-direction(normal);
23
- @include transform(.3);
24
- }
25
-
26
- @for $i from 0 through 7
27
- {
28
- .fs-ajax-loader-bar-#{$i + 1}
29
- {
30
- left: #{$i*($size - 1)}px;
31
- @include animation-delay(#{0.6 + $i*0.15}s);
32
- }
33
- }
34
- }
35
-
36
- @include keyframes(bounce_ajaxLoader)
37
- {
38
- 0%
39
- {
40
- @include transform(scale(1));
41
- background-color: $color;
42
- }
43
-
44
- 100%
45
- {
46
- @include transform(scale(.3));
47
- background-color: $bkg-color;
48
- }
49
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_auto-install.scss DELETED
@@ -1,33 +0,0 @@
1
- .fs-modal-auto-install
2
- {
3
- $max-width: 300px;
4
-
5
- #request-filesystem-credentials-form
6
- {
7
- h2,
8
- .request-filesystem-credentials-action-buttons
9
- {
10
- display: none;
11
- }
12
-
13
- input[type=password],
14
- input[type=email],
15
- input[type=text]
16
- {
17
- -webkit-appearance: none;
18
- padding: 10px 10px 5px 10px;
19
- width: $max-width;
20
- max-width: 100%;
21
- }
22
-
23
- > div,
24
- label,
25
- fieldset
26
- {
27
- width: $max-width;
28
- max-width: 100%;
29
- margin: 0 auto;
30
- display: block;
31
- }
32
- }
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_buttons.scss DELETED
@@ -1,28 +0,0 @@
1
- .button-primary.warn {
2
- box-shadow: 0 1px 0 $wp-button-alert-shadow-color;
3
- text-shadow: 0 -1px 1px $wp-button-alert-shadow-color, 1px 0 1px $wp-button-alert-shadow-color, 0 1px 1px $wp-button-alert-shadow-color, -1px 0 1px $wp-button-alert-shadow-color;
4
- background: $wp-button-alert-background-color;
5
- border-color: $wp-button-alert-border-top-color $wp-button-alert-border-color $wp-button-alert-border-color;
6
-
7
- &:hover {
8
- background: $wp-button-alert-hovered-background-color;
9
- border-color: $wp-button-alert-border-color;
10
- }
11
-
12
- &:focus {
13
- box-shadow: 0 1px 0 $wp-button-alert-focused-shadow1-color, 0 0 2px 1px $wp-button-alert-focused-shadow2-color;
14
- }
15
-
16
- &:active {
17
- background: $wp-button-alert-active-background-color;
18
- border-color: $wp-button-alert-border-color;
19
- box-shadow: inset 0 2px 0 $wp-button-alert-shadow-color;
20
- }
21
-
22
- &.disabled {
23
- color: $wp-button-alert-disabled-color !important;
24
- background: $wp-button-alert-disabled-background-color !important;
25
- border-color: $wp-button-alert-disabled-border-color !important;
26
- text-shadow: 0 -1px 0 rgba(0,0,0,.1) !important;
27
- }
28
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_deactivation-feedback.scss DELETED
@@ -1,55 +0,0 @@
1
- @import "../colors";
2
-
3
- .fs-modal.fs-modal-deactivation-feedback {
4
- .reason-input, .internal-message {
5
- margin: 3px 0 3px 22px;
6
-
7
- input, textarea {
8
- width: 100%;
9
- }
10
- }
11
-
12
- li.reason {
13
- &.has-internal-message .internal-message {
14
- border: 1px solid lighten($darkest-color, 80%);
15
- padding: 7px;
16
- display: none;
17
- }
18
-
19
- @media (max-width: 650px) {
20
- li.reason {
21
- margin-bottom: 10px;
22
-
23
- .reason-input, .internal-message {
24
- margin-left: 29px;
25
- }
26
-
27
- label {
28
- display: table;
29
-
30
- > span {
31
- display: table-cell;
32
- font-size: 1.3em;
33
- }
34
- }
35
- }
36
- }
37
- }
38
-
39
- .anonymous-feedback-label {
40
- float: left;
41
- }
42
-
43
- .fs-modal-panel {
44
- margin-top: 0 !important;
45
-
46
- h3 {
47
- margin-top: 0;
48
- line-height: 1.5em;
49
- }
50
- }
51
- }
52
-
53
- #the-list .deactivate > .fs-slug {
54
- display: none;
55
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_gdpr-consent.scss DELETED
@@ -1,81 +0,0 @@
1
- #fs_marketing_optin
2
- {
3
- display: none;
4
- margin-top: 10px;
5
- border: 1px solid #ccc;
6
- padding: 10px;
7
- line-height: 1.5em;
8
-
9
- .fs-message
10
- {
11
- display: block;
12
- margin-bottom: 5px;
13
- font-size: 1.05em;
14
- font-weight: 600;
15
- }
16
-
17
- &.error
18
- {
19
- border: 1px solid $fs-logo-magenta-color;
20
- background: #fee;
21
-
22
- .fs-message
23
- {
24
- color: $fs-logo-magenta-color;
25
- }
26
- }
27
-
28
- .fs-input-container
29
- {
30
- margin-top: 5px;
31
-
32
- label
33
- {
34
- margin-top: 5px;
35
- display: block;
36
-
37
- input
38
- {
39
- float: left;
40
- margin: 1px 0 0 0;
41
- }
42
-
43
- &:first-child
44
- {
45
- display: block;
46
- margin-bottom: 2px;
47
- }
48
- }
49
- }
50
-
51
- .fs-input-label
52
- {
53
- display: block;
54
- margin-left: 20px;
55
-
56
- .underlined
57
- {
58
- text-decoration: underline;
59
- }
60
- }
61
- }
62
-
63
- .rtl
64
- {
65
- #fs_marketing_optin
66
- {
67
- .fs-input-container
68
- {
69
- label input
70
- {
71
- float: right;
72
- }
73
- }
74
-
75
- .fs-input-label
76
- {
77
- margin-left: 0;
78
- margin-right: 20px;
79
- }
80
- }
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_license-activation.scss DELETED
@@ -1,47 +0,0 @@
1
- .fs-modal.fs-modal-license-activation {
2
- .fs-modal-body {
3
- input.license_key {
4
- width: 100%;
5
- }
6
- }
7
- }
8
-
9
- #license_options_container {
10
- table {
11
- &, select, #available_license_key {
12
- width: 100%;
13
- }
14
-
15
- td:first-child {
16
- width: 1%;
17
- }
18
-
19
- #other_license_key_container {
20
- label {
21
- position: relative;
22
- top: 6px;
23
- float: left;
24
- margin-right: 5px;
25
- }
26
-
27
- div {
28
- overflow: hidden;
29
- width: auto;
30
- height: 30px;
31
- display: block;
32
- top: 2px;
33
- position: relative;
34
-
35
- input {
36
- margin: 0;
37
- }
38
- }
39
- }
40
- }
41
- }
42
-
43
- #sites_list_container {
44
- td {
45
- cursor: pointer;
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_license-key-resend.scss DELETED
@@ -1,68 +0,0 @@
1
- .fs-modal.fs-modal-license-key-resend
2
- {
3
- .email-address-container
4
- {
5
- overflow: hidden;
6
- padding-right: 2px;
7
- }
8
-
9
- &.fs-freemium
10
- {
11
- input.email-address
12
- {
13
- width: 300px;
14
- }
15
-
16
- label
17
- {
18
- display: block;
19
- margin-bottom: 10px;
20
- }
21
- }
22
-
23
- &.fs-premium
24
- {
25
- input.email-address
26
- {
27
- width: 100%;
28
- }
29
-
30
- .button-container
31
- {
32
- float: right;
33
- margin-left: 7px;
34
-
35
- @media (max-width: 650px) {
36
- margin-top: 2px;
37
- }
38
- }
39
- }
40
- }
41
-
42
- .rtl
43
- {
44
- .fs-modal.fs-modal-license-key-resend
45
- {
46
- .fs-modal-body
47
- {
48
- .input-container > .email-address-container
49
- {
50
- padding-left: 2px;
51
- padding-right: 0;
52
- }
53
-
54
- .button-container
55
- {
56
- float: left;
57
- margin-right: 7px;
58
- margin-left: 0;
59
- }
60
- }
61
- }
62
- }
63
-
64
- a.show-license-resend-modal
65
- {
66
- margin-top: 4px;
67
- display: inline-block;
68
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_modal-common.scss DELETED
@@ -1,194 +0,0 @@
1
- @import "../colors";
2
- @import "../mixins";
3
-
4
- .fs-modal {
5
- position: fixed;
6
- overflow: auto;
7
- height: 100%;
8
- width: 100%;
9
- top: 0;
10
- z-index: 100000;
11
- display: none;
12
- background: rgba(0, 0, 0, 0.6);
13
-
14
- .fs-modal-dialog {
15
- background: transparent;
16
- position: absolute;
17
- left: 50%;
18
- margin-left: -298px;
19
- padding-bottom: 30px;
20
- top: -100%;
21
- z-index: 100001;
22
- width: 596px;
23
-
24
- @media (max-width: 650px) {
25
- margin-left: -50%;
26
- box-sizing: border-box;
27
- padding-left: 10px;
28
- padding-right: 10px;
29
- width: 100%;
30
-
31
- .fs-modal-panel > h3 > strong {
32
- font-size: 1.3em;
33
- }
34
- }
35
- }
36
-
37
- &.active {
38
- display: block;
39
-
40
- &:before {
41
- display: block;
42
- }
43
-
44
- .fs-modal-dialog {
45
- top: 10%;
46
- }
47
- }
48
-
49
- &.fs-success {
50
- .fs-modal-header {
51
- border-bottom-color: $wp-notice-success-dark-color;
52
- }
53
-
54
- .fs-modal-body {
55
- background-color: $wp-notice-success-color;
56
- }
57
- }
58
-
59
- &.fs-warn {
60
- .fs-modal-header {
61
- border-bottom-color: $wp-notice-warn-dark-color;
62
- }
63
-
64
- .fs-modal-body {
65
- background-color: $wp-notice-warn-color;
66
- }
67
- }
68
-
69
- &.fs-error {
70
- .fs-modal-header {
71
- border-bottom-color: $wp-notice-error-dark-color;
72
- }
73
-
74
- .fs-modal-body {
75
- background-color: $wp-notice-error-color;
76
- }
77
- }
78
-
79
-
80
- .fs-modal-body,
81
- .fs-modal-footer {
82
- border: 0;
83
- background: #fefefe;
84
- padding: 20px;
85
- }
86
-
87
- .fs-modal-header {
88
- border-bottom: #eeeeee solid 1px;
89
- background: #fbfbfb;
90
- padding: 15px 20px;
91
- position: relative;
92
- margin-bottom: -10px;
93
- // z-index: 2;
94
-
95
- h4 {
96
- margin: 0;
97
- padding: 0;
98
- text-transform: uppercase;
99
- font-size: 1.2em;
100
- font-weight: bold;
101
- color: #cacaca;
102
- text-shadow: 1px 1px 1px #fff;
103
- letter-spacing: 0.6px;
104
- -webkit-font-smoothing: antialiased;
105
- }
106
-
107
- .fs-close {
108
- position: absolute;
109
- right: 10px;
110
- top: 12px;
111
- cursor: pointer;
112
- color: #bbb;
113
- @include border-radius(20px);
114
- padding: 3px;
115
- @include transition(all 0.2s ease-in-out);
116
-
117
- &:hover {
118
- color: #fff;
119
- background: #aaa;
120
- }
121
-
122
- &, &:hover
123
- {
124
- .dashicons
125
- {
126
- text-decoration: none;
127
- }
128
- }
129
- }
130
- }
131
-
132
- .fs-modal-body {
133
- border-bottom: 0;
134
-
135
- p {
136
- font-size: 14px;
137
- }
138
-
139
- h2 {
140
- font-size: 20px;
141
- line-height: 1.5em;
142
- }
143
-
144
- > div {
145
- margin-top: 10px;
146
-
147
- h2 {
148
- font-weight: bold;
149
- font-size: 20px;
150
- margin-top: 0;
151
- }
152
- }
153
- }
154
-
155
- .fs-modal-footer {
156
- border-top: #eeeeee solid 1px;
157
- text-align: right;
158
-
159
- > .button {
160
- margin: 0 7px;
161
-
162
- &:first-child {
163
- margin: 0;
164
- }
165
- }
166
- }
167
-
168
- .fs-modal-panel {
169
- > .notice.inline {
170
- margin: 0;
171
- display: none;
172
- }
173
-
174
- &:not(.active) {
175
- display: none;
176
- }
177
- }
178
- }
179
-
180
- .rtl
181
- {
182
- .fs-modal {
183
- .fs-modal-header {
184
- .fs-close {
185
- right: auto;
186
- left: 20px;
187
- }
188
- }
189
- }
190
- }
191
-
192
- body.has-fs-modal {
193
- overflow: hidden;
194
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_multisite-options.scss DELETED
@@ -1,40 +0,0 @@
1
- #multisite_options_container {
2
- margin-top: 10px;
3
- border: 1px solid #ccc;
4
- padding: 5px;
5
-
6
- a {
7
- text-decoration: none;
8
-
9
- &:focus {
10
- box-shadow: none;
11
- }
12
-
13
- &.selected {
14
- font-weight: bold;
15
- }
16
- }
17
-
18
- &.apply-on-all-sites {
19
- border: 0 none;
20
- padding: 0;
21
-
22
- #all_sites_options {
23
- border-spacing: 0;
24
-
25
- td:not(:first-child) {
26
- display: none;
27
- }
28
- }
29
- }
30
-
31
- #sites_list_container {
32
- display: none;
33
- overflow: auto;
34
-
35
- table td {
36
- border-top: 1px solid #ccc;
37
- padding: 4px 2px;
38
- }
39
- }
40
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_plugin-upgrade-notice.scss DELETED
@@ -1,8 +0,0 @@
1
- .plugins p.fs-upgrade-notice
2
- {
3
- border: 0;
4
- background-color: #d54e21;
5
- padding: 10px;
6
- color: #f9f9f9;
7
- margin-top: 10px;
8
- }
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_subscription-cancellation.scss DELETED
@@ -1,30 +0,0 @@
1
- .fs-modal.fs-modal-subscription-cancellation {
2
- .fs-price-increase-warning {
3
- color: red;
4
- font-weight: bold;
5
- padding: 0 25px;
6
- margin-bottom: 0;
7
- }
8
-
9
- ul.subscription-actions label {
10
- input {
11
- float: left;
12
- top: 5px;
13
- position: relative;
14
-
15
- .rtl & {
16
- float: right;
17
- }
18
- }
19
-
20
- span {
21
- display: block;
22
- margin-left: 24px;
23
-
24
- .rtl & {
25
- margin-left: 0;
26
- margin-right: 24px;
27
- }
28
- }
29
- }
30
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_themes.scss DELETED
@@ -1,21 +0,0 @@
1
- .theme-browser
2
- {
3
- .theme
4
- {
5
- .fs-premium-theme-badge
6
- {
7
- position: absolute;
8
- top: 10px;
9
- right: 0;
10
- background: $fs-logo-green-color;
11
- color: #fff;
12
- text-transform: uppercase;
13
- padding: 5px 10px;
14
- @include border-radius(3px 0 0 3px);
15
- font-weight: bold;
16
- border-right: 0;
17
- @include box-shadow(0 2px 1px -1px rgba(0, 0, 0, .3));
18
- font-size: 1.1em;
19
- }
20
- }
21
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/_tooltip.scss DELETED
@@ -1,66 +0,0 @@
1
- .fs-tooltip-trigger
2
- {
3
- &:not(a)
4
- {
5
- cursor: help;
6
- }
7
-
8
- position: relative;
9
-
10
- .fs-tooltip
11
- {
12
- opacity: 0;
13
- visibility: hidden;
14
- @include transition(opacity 0.3s ease-in-out);
15
- position: absolute;
16
- background: $tooltip-bkg-color;
17
- color: $tooltip-color;
18
- font-family: 'arial', serif;
19
- font-size: 12px;
20
- padding: 10px;
21
- z-index: 999999;
22
- bottom: 100%;
23
- margin-bottom: 5px;
24
- left: 0;
25
- right: 0;
26
- @include border-radius(5px);
27
- @include box-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));
28
- line-height: 1.3em;
29
- font-weight: bold;
30
- text-align: left;
31
-
32
- .rtl &
33
- {
34
- text-align: right;
35
- }
36
-
37
- &::after
38
- {
39
- content: ' ';
40
- display: block;
41
- width: 0;
42
- height: 0;
43
- border-style: solid;
44
- border-width: 5px 5px 0 5px;
45
- border-color: $tooltip-bkg-color transparent transparent transparent;
46
- position: absolute;
47
- top: 100%;
48
- left: 21px;
49
-
50
- .rtl &
51
- {
52
- right: 21px;
53
- left: auto;
54
- }
55
- }
56
- }
57
-
58
- &:hover
59
- {
60
- .fs-tooltip
61
- {
62
- visibility: visible;
63
- opacity: 1;
64
- }
65
- }
66
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/account.scss DELETED
@@ -1,302 +0,0 @@
1
- @import "../start";
2
-
3
- #fs_account
4
- {
5
- .postbox,
6
- .widefat
7
- {
8
- max-width: 700px;
9
- }
10
-
11
- h3
12
- {
13
- font-size: 1.3em;
14
- padding: 12px 15px;
15
- margin: 0 0 12px 0;
16
- line-height: 1.4;
17
- border-bottom: 1px solid #F1F1F1;
18
-
19
- .dashicons {
20
- width: 26px;
21
- height: 26px;
22
- font-size: 1.3em;
23
- }
24
- }
25
-
26
- i.dashicons
27
- {
28
- font-size: 1.2em;
29
- height: 1.2em;
30
- width: 1.2em;
31
- }
32
-
33
- .dashicons
34
- {
35
- vertical-align: middle;
36
- }
37
-
38
- .fs-header-actions
39
- {
40
- position: absolute;
41
- top: 17px;
42
- right: 15px;
43
- font-size: 0.9em;
44
-
45
- ul
46
- {
47
- margin: 0;
48
- }
49
-
50
- li
51
- {
52
- form
53
- {
54
- display: inline-block;
55
- }
56
-
57
- float: left;
58
- a
59
- {
60
- text-decoration: none;
61
- }
62
- }
63
- }
64
- }
65
-
66
- #fs_account_details .button-group {
67
- float: right;
68
- }
69
-
70
- .rtl #fs_account .fs-header-actions
71
- {
72
- left: 15px;
73
- right: auto;
74
- }
75
-
76
- .fs-key-value-table
77
- {
78
- width: 100%;
79
-
80
- form
81
- {
82
- display: inline-block;
83
- }
84
-
85
- tr
86
- {
87
- td:first-child
88
- {
89
- nobr
90
- {
91
- font-weight: bold;
92
- }
93
-
94
- text-align: right;
95
-
96
- form
97
- {
98
- display: block;
99
- }
100
- }
101
-
102
- td.fs-right
103
- {
104
- text-align: right;
105
- }
106
-
107
- &.fs-odd
108
- {
109
- background: #ebebeb;
110
- }
111
- }
112
-
113
- td, th
114
- {
115
- padding: 10px;
116
- }
117
-
118
- code {
119
- line-height: 28px;
120
- }
121
-
122
- var, code, input[type="text"]
123
- {
124
- color: #0073AA;
125
- font-size: 16px;
126
- background: none;
127
- }
128
-
129
- input[type="text"] {
130
- width: 100%;
131
- font-weight: bold;
132
- }
133
- }
134
-
135
- label.fs-tag
136
- {
137
- background: #ffba00;
138
- color: #fff;
139
- display: inline-block;
140
- border-radius: 3px;
141
- padding: 5px;
142
- font-size: 11px;
143
- line-height: 11px;
144
- vertical-align: baseline;
145
-
146
- &.fs-warn
147
- {
148
- background: #ffba00;
149
- }
150
- &.fs-success
151
- {
152
- background: #46b450;
153
- }
154
- &.fs-error
155
- {
156
- background: #dc3232;
157
- }
158
- }
159
-
160
- #fs_sites
161
- {
162
- .fs-scrollable-table
163
- {
164
- .fs-table-body {
165
- max-height: 200px;
166
- overflow: auto;
167
- border: 1px solid #e5e5e5;
168
-
169
- & > table.widefat {
170
- border: none !important;
171
- }
172
- }
173
-
174
- .fs-main-column {
175
- width: 100%;
176
- }
177
-
178
- .fs-site-details
179
- {
180
- td:first-of-type
181
- {
182
- text-align: right;
183
- color: grey;
184
- width: 1px;
185
- }
186
-
187
- td:last-of-type
188
- {
189
- text-align: right;
190
- }
191
- }
192
-
193
- .fs-install-details table
194
- {
195
- tr td
196
- {
197
- width: 1px;
198
- white-space: nowrap;
199
-
200
- &:last-of-type
201
- {
202
- width: auto;
203
- }
204
- }
205
- }
206
- }
207
- }
208
-
209
- #fs_addons
210
- {
211
- h3
212
- {
213
- border: none;
214
- margin-bottom: 0;
215
- padding: 4px 5px;
216
- }
217
-
218
- td
219
- {
220
- vertical-align: middle;
221
- }
222
-
223
- thead {
224
- white-space: nowrap;
225
- }
226
-
227
- td:first-child,
228
- th:first-child
229
- {
230
- text-align: left;
231
- font-weight: bold;
232
- }
233
- td:last-child,
234
- th:last-child
235
- {
236
- text-align: right;
237
- }
238
- th
239
- {
240
- font-weight: bold;
241
- }
242
- }
243
-
244
- #fs_billing_address {
245
- width: 100%;
246
-
247
- tr {
248
- td {
249
- width: 50%;
250
- padding: 5px;
251
- }
252
-
253
- &:first-of-type {
254
- td {
255
- padding-top: 0;
256
- }
257
- }
258
- }
259
-
260
- @mixin read-mode {
261
- border-color: transparent;
262
- color: #777;
263
- border-bottom: 1px dashed #ccc;
264
- padding-left: 0;
265
- background: none;
266
- }
267
-
268
- span {
269
- font-weight: bold;
270
- }
271
-
272
- input, select {
273
- @include placeholder(transparent);
274
-
275
- display: block;
276
- width: 100%;
277
- margin-top: 5px;
278
-
279
- &.fs-read-mode {
280
- @include read-mode();
281
- }
282
- }
283
-
284
-
285
- &.fs-read-mode {
286
- td span {
287
- display: none;
288
- }
289
-
290
- input, select
291
- {
292
- @include read-mode();
293
- @include placeholder(#ccc);
294
- }
295
- }
296
-
297
-
298
- button {
299
- display: block;
300
- width: 100%;
301
- }
302
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/add-ons.scss DELETED
@@ -1,449 +0,0 @@
1
- @import "../start";
2
-
3
- #fs_addons
4
- {
5
- .fs-cards-list
6
- {
7
- list-style: none;
8
-
9
- .fs-card
10
- {
11
- float: left;
12
- // height: 185px; // With reviews/ratings
13
- height: 152px;
14
- width: 310px;
15
- padding: 0;
16
- margin: 0 0 30px 30px;
17
- font-size: 14px;
18
- list-style: none;
19
- border: 1px solid #ddd;
20
- cursor: pointer;
21
- position: relative;
22
-
23
- .fs-overlay
24
- {
25
- position: absolute;
26
- left: 0;
27
- right: 0;
28
- bottom: 0;
29
- top: 0;
30
- z-index: 9;
31
- }
32
-
33
- .fs-inner
34
- {
35
- background-color: #fff;
36
- overflow: hidden;
37
- height: 100%;
38
- position: relative;
39
-
40
- ul
41
- {
42
- @include transition(all, 0.15s);
43
- left: 0;
44
- right: 0;
45
- top: 0;
46
- position: absolute;
47
- }
48
-
49
- li
50
- {
51
- list-style: none;
52
- line-height: 18px;
53
- padding: 0 15px;
54
- width: 100%;
55
- display: block;
56
- @include box-sizing(border-box);
57
- }
58
-
59
- .fs-card-banner
60
- {
61
- padding: 0;
62
- margin: 0;
63
- line-height: 0;
64
- display: block;
65
- height: 100px;
66
- background-repeat: repeat-x;
67
- background-size: 100% 100%;
68
- @include transition(all, 0.15s);
69
- }
70
-
71
- .fs-title
72
- {
73
- margin: 10px 0 0 0;
74
- height: 18px;
75
- overflow: hidden;
76
- color: #000;
77
- white-space: nowrap;
78
- text-overflow: ellipsis;
79
- font-weight: bold;
80
- }
81
-
82
- .fs-offer
83
- {
84
- font-size: 0.9em;
85
- }
86
-
87
- .fs-description
88
- {
89
- background-color: #f9f9f9;
90
- padding: 10px 15px 100px 15px;
91
- border-top: 1px solid #eee;
92
- margin: 0 0 10px 0;
93
- color: #777;
94
- }
95
-
96
- .fs-tag
97
- {
98
- position: absolute;
99
- top: 10px;
100
- right: 0px;
101
- background: greenyellow;
102
- display: block;
103
- padding: 2px 10px;
104
- @include box-shadow(1px 1px 1px rgba(0,0,0,0.3));
105
- text-transform: uppercase;
106
- font-size: 0.9em;
107
- font-weight: bold;
108
- }
109
-
110
- .fs-cta
111
- {
112
- .button
113
- {
114
- position: absolute;
115
- top: 112px;
116
- right: 10px;
117
- }
118
- }
119
- }
120
-
121
- @media screen and (min-width: 960px) {
122
- &:hover
123
- {
124
- .fs-overlay
125
- {
126
- border: 2px solid $fms-link-color;
127
- margin-left: -1px;
128
- margin-top: -1px;
129
- }
130
-
131
- .fs-inner
132
- {
133
- ul
134
- {
135
- top: -100px;
136
- }
137
-
138
- .fs-card-banner
139
- {
140
- // background-position: 50% -100px;
141
- }
142
-
143
- .fs-title,
144
- .fs-offer
145
- {
146
- color: $fms-link-color;
147
- }
148
- }
149
- }
150
- }
151
- }
152
- }
153
- }
154
-
155
- #TB_window
156
- {
157
- &, iframe
158
- {
159
- width: 772px !important;
160
- }
161
- }
162
-
163
- #plugin-information
164
- {
165
- #section-description
166
- {
167
- h2, h3, p, b, i, blockquote, li, ul, ol
168
- {
169
- clear: none;
170
- }
171
-
172
- .fs-selling-points
173
- {
174
- padding-bottom: 10px;
175
- border-bottom: 1px solid #ddd;
176
-
177
- ul
178
- {
179
- margin: 0;
180
-
181
- li
182
- {
183
- padding: 0;
184
- list-style: none outside none;
185
-
186
- i.dashicons
187
- {
188
- color: $fs-logo-green-color;
189
- font-size: 3em;
190
- vertical-align: middle;
191
- line-height: 30px;
192
- float: left;
193
- margin: 0 0 0 -15px;
194
- }
195
-
196
- h3
197
- {
198
- margin: 1em 30px !important;
199
- }
200
- }
201
- }
202
- }
203
-
204
- .fs-screenshots
205
- {
206
- @include clearfix();
207
- ul
208
- {
209
- list-style: none;
210
- margin: 0;
211
-
212
- li
213
- {
214
- width: 225px;
215
- height: 225px;
216
- float: left;
217
- margin-bottom: 20px;
218
- @include box-sizing(content-box);
219
-
220
- a
221
- {
222
- display: block;
223
- width: 100%;
224
- height: 100%;
225
- border: 1px solid;
226
- @include box-shadow(1px 1px 1px rgba(0, 0, 0, 0.2));
227
- background-size: cover;
228
- }
229
-
230
- &.odd
231
- {
232
- margin-right: 20px;
233
- }
234
- }
235
- }
236
- }
237
- }
238
-
239
- .plugin-information-pricing
240
- {
241
- $pricing_color: #FFFEEC;
242
- $borders_color: #DDD;
243
- margin: -16px;
244
- // padding: 20px;
245
- border-bottom: 1px solid $borders_color;
246
-
247
- .fs-plan
248
- {
249
-
250
- h3
251
- {
252
- margin-top: 0;
253
- padding: 20px;
254
- font-size: 16px;
255
- }
256
-
257
- .nav-tab-wrapper
258
- {
259
- border-bottom: 1px solid $borders_color;
260
-
261
- .nav-tab
262
- {
263
- cursor: pointer;
264
- position: relative;
265
- padding: 0 10px;
266
- font-size: 0.9em;
267
-
268
- label
269
- {
270
- text-transform: uppercase;
271
- color: green;
272
- background: greenyellow;
273
- position: absolute;
274
- left: -1px;
275
- right: -1px;
276
- bottom: 100%;
277
- border: 1px solid darkgreen;
278
- padding: 2px;
279
- text-align: center;
280
- font-size: 0.9em;
281
- line-height: 1em;
282
- }
283
-
284
- &.nav-tab-active
285
- {
286
- cursor: default;
287
- background: $pricing_color;
288
- border-bottom-color: $pricing_color;
289
- }
290
- }
291
- }
292
-
293
- &.fs-single-cycle
294
- {
295
- h3
296
- {
297
- background: $pricing_color;
298
- margin: 0;
299
- padding-bottom: 0;
300
- color: #0073aa;
301
- }
302
-
303
- .nav-tab-wrapper,
304
- .fs-billing-frequency
305
- {
306
- display: none;
307
- }
308
- }
309
-
310
- .fs-pricing-body
311
- {
312
- background: $pricing_color;
313
- padding: 20px;
314
- }
315
-
316
- .button
317
- {
318
- width: 100%;
319
- text-align: center;
320
- font-weight: bold;
321
- text-transform: uppercase;
322
- font-size: 1.1em;
323
- }
324
-
325
- label
326
- {
327
- white-space: nowrap;
328
- }
329
-
330
- var {
331
- font-style: normal;
332
- }
333
-
334
- .fs-billing-frequency,
335
- .fs-annual-discount
336
- {
337
- text-align: center;
338
- display: block;
339
- font-weight: bold;
340
- margin-bottom: 10px;
341
- text-transform: uppercase;
342
- background: #F3F3F3;
343
- padding: 2px;
344
- border: 1px solid #ccc;
345
- }
346
-
347
- .fs-annual-discount
348
- {
349
- text-transform: none;
350
- color: green;
351
- background: greenyellow;
352
- }
353
-
354
- ul.fs-trial-terms
355
- {
356
- font-size: 0.9em;
357
-
358
- i
359
- {
360
- float: left;
361
- margin: 0 0 0 -15px;
362
- }
363
-
364
- li
365
- {
366
- margin: 10px 0 0 0;
367
- }
368
- }
369
- }
370
- }
371
-
372
- #section-features
373
- {
374
- .fs-features
375
- {
376
- margin: -20px -26px;
377
- }
378
-
379
- table
380
- {
381
- width: 100%;
382
- border-spacing: 0;
383
- border-collapse: separate;
384
-
385
- thead
386
- {
387
- th
388
- {
389
- padding: 10px 0;
390
- }
391
-
392
- .fs-price
393
- {
394
- color: $fs-logo-green-color;
395
- font-weight: normal;
396
- display: block;
397
- text-align: center;
398
- }
399
- }
400
-
401
- tbody
402
- {
403
- td
404
- {
405
- border-top: 1px solid #ccc;
406
- padding: 10px 0;
407
- text-align: center;
408
- width: 100px;
409
- color: $fs-logo-green-color;
410
-
411
- &:first-child
412
- {
413
- text-align: left;
414
- width: auto;
415
- color: inherit;
416
- padding-left: 26px;
417
- }
418
- }
419
- tr.fs-odd
420
- {
421
- td
422
- {
423
- background: #fefefe;
424
- }
425
- }
426
- }
427
- }
428
-
429
- .dashicons-yes
430
- {
431
- width: 30px;
432
- height: 30px;
433
- font-size: 30px;
434
- }
435
- }
436
- }
437
-
438
- @media screen and (max-width: 961px) {
439
- #fs_addons
440
- {
441
- .fs-cards-list
442
- {
443
- .fs-card
444
- {
445
- height: 265px;
446
- }
447
- }
448
- }
449
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/affiliation.scss DELETED
@@ -1,97 +0,0 @@
1
- @import "../start";
2
-
3
- #fs_affiliation_content_wrapper {
4
- #messages {
5
- margin-top: 25px;
6
- }
7
-
8
- h3 {
9
- font-size: 24px;
10
- padding: 0;
11
- margin-left: 0;
12
- }
13
-
14
- ul {
15
- li {
16
- @include box-sizing(border-box);
17
- list-style-type: none;
18
-
19
- &:before {
20
- content: '✓';
21
- margin-right: 10px;
22
- font-weight: bold;
23
- }
24
- }
25
- }
26
-
27
- p:not(.description), li, label {
28
- font-size: 16px !important;
29
- line-height: 26px !important;
30
- }
31
-
32
- .button {
33
- margin-top: 20px;
34
- margin-bottom: 7px;
35
- line-height: 35px;
36
- height: 40px;
37
- font-size: 16px;
38
-
39
- &#cancel_button {
40
- margin-right: 5px;
41
- }
42
- }
43
-
44
- form {
45
- .input-container {
46
- .input-label {
47
- font-weight: bold;
48
- display: block;
49
- width: 100%;
50
- }
51
-
52
- &.input-container-text {
53
- label, input, textarea {
54
- display: block;
55
- }
56
- }
57
-
58
- margin-bottom: 15px;
59
-
60
- #add_domain, .remove-domain {
61
- text-decoration: none;
62
- display: inline-block;
63
- margin-top: 3px;
64
-
65
- &:focus {
66
- box-shadow: none;
67
- }
68
-
69
- &.disabled {
70
- color: #aaa;
71
- cursor: default;
72
- }
73
- }
74
- }
75
-
76
- #extra_domains_container {
77
- .description {
78
- margin-top: 0;
79
- position: relative;
80
- top: -4px;
81
- }
82
-
83
- .extra-domain-input-container {
84
- margin-bottom: 15px;
85
-
86
- .domain {
87
- display: inline-block;
88
- margin-right: 5px;
89
-
90
- &:last-of-type {
91
- margin-bottom: 0;
92
- }
93
- }
94
- }
95
- }
96
- }
97
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/checkout.scss DELETED
@@ -1,5 +0,0 @@
1
- @media screen and (max-width: 782px) {
2
- #wpbody-content {
3
- padding-bottom: 0 !important;
4
- }
5
- }
 
 
 
 
 
freemius/assets/scss/admin/common.scss DELETED
@@ -1,220 +0,0 @@
1
- @import "../start";
2
- @import "themes";
3
-
4
- #fs_frame
5
- {
6
- line-height: 0;
7
- font-size: 0;
8
- }
9
-
10
- .fs-full-size-wrapper
11
- {
12
- margin: 40px 0 -65px -20px;
13
-
14
- @media (max-width: 600px) {
15
- margin: 0 0 -65px -10px;
16
- }
17
- }
18
-
19
- .fs-notice
20
- {
21
- position: relative;
22
-
23
- &.fs-has-title
24
- {
25
- margin-bottom: 30px !important;
26
- }
27
-
28
- &.success
29
- {
30
- color: green;
31
- // font-weight: normal;
32
- }
33
-
34
- &.promotion
35
- {
36
- border-color: $fs-notice-promotion-border-color !important;
37
- background-color: $fs-notice-promotion-bkg !important;
38
- }
39
-
40
- .fs-notice-body
41
- {
42
- margin: .5em 0;
43
- padding: 2px;
44
- }
45
-
46
- .fs-close
47
- {
48
- // position: absolute;
49
- // top: 2px;
50
- // bottom: 2px;
51
- // right: 2px;
52
- // min-width: 100px;
53
- // text-align: center;
54
- // padding-right: 2px;
55
- cursor: pointer;
56
- color: #aaa;
57
- float: right;
58
-
59
- &:hover
60
- {
61
- color: #666;
62
- // background: #A9A9A9;
63
- }
64
-
65
- > *
66
- {
67
- margin-top: 7px;
68
- display: inline-block;
69
- }
70
- }
71
-
72
- label.fs-plugin-title
73
- {
74
- background: rgba(0, 0, 0, 0.3);
75
- color: #fff;
76
- padding: 2px 10px;
77
- position: absolute;
78
- top: 100%;
79
- bottom: auto;
80
- right: auto;
81
- @include border-radius(0 0 3px 3px);
82
- left: 10px;
83
- font-size: 12px;
84
- font-weight: bold;
85
- cursor: auto;
86
- }
87
- }
88
-
89
- div.fs-notice
90
- {
91
- &.updated,
92
- &.success,
93
- &.promotion
94
- {
95
- display: block !important;
96
- }
97
- }
98
-
99
- .rtl .fs-notice
100
- {
101
- .fs-close
102
- {
103
- // left: 2px;
104
- // right: auto;
105
- // padding-right: 0;
106
- // padding-left: 2px;
107
- float: left;
108
- }
109
- }
110
-
111
- .fs-secure-notice
112
- {
113
- position: fixed;
114
- top: 32px;
115
- left: 160px;
116
- right: 0;
117
- background: rgb(235, 253, 235);
118
- padding: 10px 20px;
119
- color: green;
120
- z-index: 9999;
121
- @include box-shadow(0 2px 2px rgba(6, 113, 6, 0.3));
122
- @include opacity(0.95);
123
-
124
- &:hover
125
- {
126
- @include opacity(1);
127
- }
128
-
129
- a.fs-security-proof
130
- {
131
- color: green;
132
- text-decoration: none;
133
- }
134
- }
135
-
136
- @media screen and (max-width: 960px) {
137
- .fs-secure-notice
138
- {
139
- left: 36px;
140
- }
141
- }
142
-
143
- @media screen and (max-width: 600px) {
144
- .fs-secure-notice
145
- {
146
- display: none;
147
- }
148
- }
149
-
150
- @media screen and (max-width: 500px) {
151
- #fs_promo_tab
152
- {
153
- display: none;
154
- }
155
- }
156
-
157
- @media screen and (max-width: 782px) {
158
- .fs-secure-notice
159
- {
160
- left: 0;
161
- top: 46px;
162
- text-align: center;
163
- }
164
- }
165
-
166
- span.fs-submenu-item.fs-sub:before
167
- {
168
- // Add small arrow.
169
- content: '\21B3';
170
- padding: 0 5px;
171
- }
172
-
173
- .rtl
174
- {
175
- span.fs-submenu-item.fs-sub:before
176
- {
177
- // Add small RTL arrow.
178
- content: '\21B2';
179
- }
180
- }
181
-
182
- .fs-submenu-item
183
- {
184
- &.pricing
185
- {
186
- &.upgrade-mode
187
- {
188
- color: greenyellow;
189
- }
190
-
191
- &.trial-mode
192
- {
193
- color: #83e2ff;
194
- }
195
- }
196
- }
197
-
198
- #adminmenu .update-plugins.fs-trial
199
- {
200
- background-color: #00b9eb;
201
- }
202
- .fs-ajax-spinner
203
- {
204
- border: 0;
205
- width: 20px;
206
- height: 20px;
207
- margin-right: 5px;
208
- vertical-align: sub;
209
- display: inline-block;
210
- background: url('/wp-admin/images/wpspin_light-2x.gif');
211
- background-size: contain;
212
- }
213
-
214
- .wrap.fs-section {
215
- h2 {
216
- text-align: left;
217
- }
218
- }
219
-
220
- @import "plugin-upgrade-notice";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/connect.scss DELETED
@@ -1,548 +0,0 @@
1
- @import "../start";
2
-
3
- $form_width: 480px;
4
-
5
- #fs_connect
6
- {
7
- width: $form_width;
8
- @include box-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));
9
- margin: 20px 0;
10
-
11
- @media screen and (max-width: ($form_width - 1)) {
12
- @include box-shadow(none);
13
- width: auto;
14
- margin: 0 0 0 -10px;
15
- }
16
-
17
- .fs-content
18
- {
19
- background: #fff;
20
- padding: 15px 20px;
21
-
22
- .fs-error {
23
- background: snow;
24
- color: $fs-logo-magenta-color;
25
- border: 1px solid $fs-logo-magenta-color;
26
- @include box-shadow(0 1px 1px 0 rgba(0,0,0,.1));
27
- text-align: center;
28
- padding: 5px;
29
- margin-bottom: 10px;
30
- }
31
-
32
- p
33
- {
34
- margin: 0;
35
- padding: 0;
36
- font-size: 1.2em;
37
- }
38
- }
39
-
40
- .fs-license-key-container {
41
- position: relative;
42
- width: 280px;
43
- margin: 10px auto 0 auto;
44
-
45
- input {
46
- width: 100%;
47
- }
48
-
49
- .dashicons {
50
- position: absolute;
51
- top: 5px;
52
- right: 5px;
53
- }
54
- }
55
-
56
- &.require-license-key {
57
- #sites_list_container {
58
- td {
59
- cursor: pointer;
60
- }
61
- }
62
- }
63
-
64
- #delegate_to_site_admins {
65
- margin-right: 15px;
66
- float: right;
67
- height: 26px;
68
- vertical-align: middle;
69
- line-height: 37px;
70
- font-weight: bold;
71
- border-bottom: 1px dashed;
72
- text-decoration: none;
73
-
74
- &.rtl {
75
- margin-left: 15px;
76
- margin-right: 0;
77
- }
78
- }
79
-
80
- .fs-actions
81
- {
82
- padding: 10px 20px;
83
- background: #C0C7CA;
84
-
85
- .button
86
- {
87
- padding: 0 10px 1px;
88
- line-height: 35px;
89
- height: 37px;
90
- font-size: 16px;
91
- margin-bottom: 0;
92
-
93
- .dashicons
94
- {
95
- font-size: 37px;
96
- margin-left: -8px;
97
- margin-right: 12px;
98
- }
99
-
100
- &.button-primary
101
- {
102
- padding-right: 15px;
103
- padding-left: 15px;
104
-
105
- &:after
106
- {
107
- content: ' \279C';
108
- }
109
-
110
- &.fs-loading
111
- {
112
- &:after
113
- {
114
- content: '';
115
- }
116
- }
117
- }
118
-
119
- &.button-secondary
120
- {
121
- float: right;
122
- }
123
- }
124
-
125
- // .fs-skip
126
- // {
127
- // line-height: 38px;
128
- // vertical-align: middle;
129
- // text-decoration: none;
130
- // margin-left: 10px;
131
- // }
132
- }
133
-
134
- &.fs-anonymous-disabled
135
- {
136
- .fs-actions
137
- {
138
- .button.button-primary
139
- {
140
- width: 100%;
141
- }
142
- }
143
- }
144
-
145
- .fs-permissions
146
- {
147
- padding: 10px 20px;
148
- background: #FEFEFE;
149
- // background: #F1F1F1;
150
- @include transition(background 0.5s ease);
151
-
152
- .fs-license-sync-disclaimer {
153
- text-align: center;
154
- margin-top: 0;
155
- }
156
-
157
- .fs-trigger
158
- {
159
- font-size: 0.9em;
160
- text-decoration: none;
161
- text-align: center;
162
- display: block;
163
- }
164
-
165
- ul
166
- {
167
- height: 0;
168
- overflow: hidden;
169
- margin: 0;
170
-
171
- li
172
- {
173
- margin-bottom: 12px;
174
-
175
- &:last-child
176
- {
177
- margin-bottom: 0;
178
- }
179
-
180
- i.dashicons
181
- {
182
- float: left;
183
- font-size: 40px;
184
- width: 40px;
185
- height: 40px;
186
- }
187
-
188
- div
189
- {
190
- margin-left: 55px;
191
-
192
- span
193
- {
194
- font-weight: bold;
195
- text-transform: uppercase;
196
- color: #23282d;
197
- }
198
-
199
- p
200
- {
201
- margin: 2px 0 0 0;
202
- }
203
- }
204
- }
205
- }
206
-
207
- &.fs-open
208
- {
209
- background: #fff;
210
-
211
- ul
212
- {
213
- height: auto;
214
- margin: 20px 20px 10px 20px;
215
- }
216
- }
217
-
218
- @media screen and (max-width: ($form_width - 1)) {
219
- background: #fff;
220
-
221
- .fs-trigger
222
- {
223
- display: none;
224
- }
225
-
226
- ul
227
- {
228
- height: auto;
229
- margin: 20px;
230
- }
231
- }
232
- }
233
-
234
- .fs-freemium-licensing {
235
- padding: 8px;
236
- // background: #0085BA;
237
- background: #777;
238
- color: #fff;
239
-
240
- p {
241
- text-align: center;
242
- display: block;
243
- margin: 0;
244
- padding: 0;
245
- }
246
-
247
- a {
248
- color: #C2EEFF;
249
- text-decoration: underline;
250
- }
251
- }
252
-
253
- $icon_size: 80px;
254
- $wp_logo_padding: $icon_size / 10;
255
- $icons_top: 10px;
256
-
257
- .fs-visual
258
- {
259
- padding: 12px;
260
- line-height: 0;
261
- background: #fafafa;
262
- height: $icon_size;
263
- position: relative;
264
-
265
- .fs-site-icon
266
- {
267
- position: absolute;
268
- left: 20px;
269
- top: $icons_top;
270
- }
271
-
272
- .fs-connect-logo
273
- {
274
- position: absolute;
275
- right: 20px;
276
- top: $icons_top;
277
- }
278
-
279
- .fs-plugin-icon
280
- {
281
- position: absolute;
282
- top: $icons_top;
283
- left: 50%;
284
- margin-left: - ($icon_size / 2);
285
- }
286
-
287
- .fs-plugin-icon,
288
- .fs-site-icon,
289
- img,
290
- object
291
- {
292
- width: $icon_size;
293
- height: $icon_size;
294
- }
295
-
296
- .dashicons-wordpress
297
- {
298
- font-size: $icon_size - ($wp_logo_padding * 2);
299
- background: $wordpress_color;
300
- color: #fff;
301
- width: $icon_size - ($wp_logo_padding * 2);
302
- height: $icon_size - ($wp_logo_padding * 2);
303
- padding: $wp_logo_padding;
304
- }
305
-
306
- .dashicons-plus
307
- {
308
- position: absolute;
309
- top: 50%;
310
- font-size: 30px;
311
- margin-top: -10px;
312
- color: #bbb;
313
-
314
- &.fs-first
315
- {
316
- left: 28%;
317
- }
318
- &.fs-second
319
- {
320
- left: 65%;
321
- }
322
- }
323
-
324
- .fs-plugin-icon,
325
- .fs-connect-logo,
326
- .fs-site-icon
327
- {
328
- border: 1px solid #ccc;
329
- padding: 1px;
330
- background: #fff;
331
- }
332
- }
333
-
334
- .fs-terms
335
- {
336
- text-align: center;
337
- font-size: 0.85em;
338
- padding: 5px;
339
- background: rgba(0, 0, 0, 0.05);
340
-
341
- &, a
342
- {
343
- color: #999;
344
- }
345
-
346
- a
347
- {
348
- text-decoration: none;
349
- }
350
- }
351
- }
352
-
353
- @import "multisite-options";
354
- @import "tooltip";
355
- @import "gdpr-consent";
356
-
357
- .rtl
358
- {
359
- #fs_connect
360
- {
361
- .fs-actions
362
- {
363
- padding: 10px 20px;
364
- background: #C0C7CA;
365
-
366
- .button
367
- {
368
- .dashicons
369
- {
370
- font-size: 37px;
371
- margin-left: -8px;
372
- margin-right: 12px;
373
- }
374
-
375
- &.button-primary
376
- {
377
- &:after
378
- {
379
- content: ' \000bb';
380
- }
381
-
382
- &.fs-loading
383
- {
384
- &:after
385
- {
386
- content: '';
387
- }
388
- }
389
- }
390
-
391
- &.button-secondary
392
- {
393
- float: left;
394
- }
395
- }
396
- }
397
-
398
- .fs-permissions
399
- {
400
- ul
401
- {
402
- li
403
- {
404
- div
405
- {
406
- margin-right: 55px;
407
- margin-left: 0;
408
- }
409
-
410
- i.dashicons
411
- {
412
- float: right;
413
- }
414
-
415
- }
416
- }
417
- }
418
-
419
- .fs-visual
420
- {
421
- .fs-site-icon
422
- {
423
- right: 20px;
424
- left: auto;
425
- }
426
-
427
- .fs-connect-logo
428
- {
429
- right: auto;
430
- left: 20px;
431
- }
432
- }
433
- }
434
- }
435
-
436
- #fs_theme_connect_wrapper {
437
- position: fixed;
438
- top: 0;
439
- height: 100%;
440
- width: 100%;
441
- z-index: 99990;
442
- background: rgba(0, 0, 0, 0.75);
443
- text-align: center;
444
- overflow-y: auto;
445
-
446
- &:before {
447
- content: "";
448
- display: inline-block;
449
- vertical-align: middle;
450
- height: 100%;
451
- }
452
-
453
- > button.close {
454
- color: white;
455
- cursor: pointer;
456
- height: 40px;
457
- width: 40px;
458
- position: absolute;
459
- right: 0;
460
- border: 0;
461
- background-color: transparent;
462
- top: 32px;
463
- }
464
-
465
- #fs_connect {
466
- top: 0;
467
- text-align: left;
468
- display: inline-block;
469
- vertical-align: middle;
470
- margin-top: 52px;
471
- margin-bottom: 20px;
472
-
473
- .fs-terms
474
- {
475
- background: rgba(140, 140, 140, 0.64);
476
-
477
- &, a
478
- {
479
- color: #c5c5c5;
480
- }
481
- }
482
- }
483
- }
484
-
485
- .wp-pointer-content
486
- {
487
- #fs_connect
488
- {
489
- margin: 0;
490
- @include box-shadow(none);
491
- }
492
- }
493
-
494
- .fs-opt-in-pointer
495
- {
496
- .wp-pointer-content
497
- {
498
- padding: 0;
499
- }
500
-
501
- &.wp-pointer-top
502
- {
503
- .wp-pointer-arrow
504
- {
505
- border-bottom-color: #dfdfdf;
506
- }
507
- .wp-pointer-arrow-inner
508
- {
509
- border-bottom-color: #fafafa;
510
- }
511
- }
512
-
513
- &.wp-pointer-bottom
514
- {
515
- .wp-pointer-arrow
516
- {
517
- border-top-color: #dfdfdf;
518
- }
519
- .wp-pointer-arrow-inner
520
- {
521
- border-top-color: #fafafa;
522
- }
523
- }
524
-
525
- &.wp-pointer-left
526
- {
527
- .wp-pointer-arrow
528
- {
529
- border-right-color: #dfdfdf;
530
- }
531
- .wp-pointer-arrow-inner
532
- {
533
- border-right-color: #fafafa;
534
- }
535
- }
536
-
537
- &.wp-pointer-right
538
- {
539
- .wp-pointer-arrow
540
- {
541
- border-left-color: #dfdfdf;
542
- }
543
- .wp-pointer-arrow-inner
544
- {
545
- border-left-color: #fafafa;
546
- }
547
- }
548
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/debug.scss DELETED
@@ -1,135 +0,0 @@
1
- @import "../start";
2
-
3
- .switch
4
- {
5
- position: relative;
6
- display: inline-block;
7
- font-size: 1.6em;
8
- font-weight: bold;
9
- color: #ccc;
10
- text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8);
11
- height: 18px;
12
- padding: 6px 6px 5px 6px;
13
- border: 1px solid #ccc;
14
- border: 1px solid rgba(0, 0, 0, 0.2);
15
- border-radius: 4px;
16
- background: #ececec;
17
- box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1), inset 0px 1px 3px 0px rgba(0, 0, 0, 0.1);
18
- cursor: pointer;
19
-
20
- span
21
- {
22
- display: inline-block; width: 35px;
23
- text-transform: uppercase;
24
-
25
- &.on
26
- {
27
- color: $button-primary-bkg;
28
- }
29
- }
30
-
31
- .toggle
32
- {
33
- position: absolute;
34
- top: 1px;
35
- width: 37px;
36
- height: 25px;
37
- border: 1px solid #ccc;
38
- border: 1px solid rgba(0, 0, 0, 0.3);
39
- border-radius: 4px;
40
- background: #fff;
41
- background: -moz-linear-gradient(top, #ececec 0%, #fff 100%);
42
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ececec), color-stop(100%, #fff));
43
- background: -webkit-linear-gradient(top, #ececec 0%, #fff 100%);
44
- background: -o-linear-gradient(top, #ececec 0%, #fff 100%);
45
- background: -ms-linear-gradient(top, #ececec 0%, #fff 100%);
46
- background: linear-gradient(top, #ececec 0%, #fff 100%);
47
- box-shadow: inset 0px 1px 0px 0px rgba(255, 255, 255, 0.5);
48
- z-index: 999;
49
- @include transition(all 0.15s ease-in-out);
50
- }
51
-
52
- &.on .toggle
53
- {
54
- left: 2%;
55
- }
56
- &.off .toggle
57
- {
58
- left: 54%;
59
- }
60
-
61
- /* Round switch */
62
- &.round
63
- {
64
- padding: 0px 20px;
65
- border-radius: 40px;
66
-
67
- .toggle
68
- {
69
- border-radius: 40px;
70
- width: 14px;
71
- height: 14px;
72
- }
73
-
74
- &.on .toggle
75
- {
76
- left: 3%;
77
- background: $button-primary-bkg;
78
- }
79
- &.off .toggle
80
- {
81
- left: 58%;
82
- }
83
- }
84
- }
85
-
86
- .switch-label
87
- {
88
- font-size: 20px;
89
- line-height: 31px;
90
- margin: 0 5px;
91
- }
92
-
93
- #fs_log_book {
94
- table {
95
- font-family: Consolas,Monaco,monospace;
96
- font-size: 12px;
97
-
98
- th {
99
- color: #ccc;
100
- }
101
-
102
- tr {
103
- background: #232525;
104
-
105
- &.alternate {
106
- background: #2b2b2b;
107
- }
108
-
109
- td {
110
- &.fs-col--logger {
111
- color: #5a7435;
112
- }
113
- &.fs-col--type {
114
- color: #ffc861;
115
- }
116
- &.fs-col--function {
117
- color: #a7b7b1;
118
- font-weight: bold;
119
- }
120
- &.fs-col--message {
121
- &, a
122
- {
123
- color: #9a73ac !important;
124
- }
125
- }
126
- &.fs-col--file {
127
- color: #d07922;
128
- }
129
- &.fs-col--timestamp {
130
- color: #6596be;
131
- }
132
- }
133
- }
134
- }
135
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/dialog-boxes.scss DELETED
@@ -1,10 +0,0 @@
1
- @import "../start";
2
- @import "modal-common";
3
- @import "deactivation-feedback";
4
- @import "subscription-cancellation";
5
- @import "license-activation";
6
- @import "multisite-options";
7
- @import "license-key-resend";
8
- @import "ajax-loader";
9
- @import "auto-install";
10
- @import "buttons";
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/gdpr-optin-notice.scss DELETED
@@ -1,17 +0,0 @@
1
- .fs-notice[data-id^="gdpr_optin_actions"]
2
- {
3
- .underlined {
4
- text-decoration: underline;
5
- }
6
-
7
- ul {
8
- .button, .action-description {
9
- vertical-align: middle;
10
- }
11
-
12
- .action-description {
13
- display: inline-block;
14
- margin-left: 3px;
15
- }
16
- }
17
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/admin/index.php DELETED
@@ -1,3 +0,0 @@
1
- <?php
2
- // Silence is golden.
3
- // Hide file structure from users on unprotected servers.
 
 
 
freemius/assets/scss/customizer.scss DELETED
@@ -1,125 +0,0 @@
1
- @import "start";
2
-
3
- #fs_customizer_upsell {
4
- .fs-customizer-plan {
5
- padding: 10px 20px 20px 20px;
6
- border-radius: 3px;
7
- background: #fff;
8
-
9
- h2 {
10
- position: relative;
11
- margin: 0;
12
- line-height: 2em;
13
- text-transform: uppercase;
14
-
15
- .button-link {
16
- top: -2px;
17
- }
18
- }
19
- }
20
-
21
- .fs-feature {
22
- position: relative;
23
- }
24
-
25
- .dashicons-yes {
26
- color: #0085ba;
27
- font-size: 2em;
28
- vertical-align: bottom;
29
- margin-left: -7px;
30
- margin-right: 10px;
31
-
32
- .rtl & {
33
- margin-left: 10px;
34
- margin-right: -7px;
35
- }
36
- }
37
-
38
- .dashicons-editor-help
39
- {
40
- color: #bbb;
41
- cursor: help;
42
-
43
- $tooltip-color: #000;
44
-
45
- .fs-feature-desc {
46
- opacity: 0;
47
- visibility: hidden;
48
- @include transition(opacity 0.3s ease-in-out);
49
-
50
- position: absolute;
51
- background: $tooltip-color;
52
- color: #fff;
53
- font-family: 'arial', serif;
54
- font-size: 12px;
55
- padding: 10px;
56
- z-index: 999999;
57
- bottom: 100%;
58
- margin-bottom: 5px;
59
- left: 0;
60
- right: 0;
61
- @include border-radius(5px);
62
- @include box-shadow(1px 1px 1px rgba(0,0,0,0.2));
63
- line-height: 1.3em;
64
- font-weight: bold;
65
- text-align: left;
66
-
67
- .rtl &
68
- {
69
- text-align: right;
70
- }
71
-
72
- &::after {
73
- content: ' ';
74
- display: block;
75
- width: 0;
76
- height: 0;
77
- border-style: solid;
78
- border-width: 5px 5px 0 5px;
79
- border-color: $tooltip-color transparent transparent transparent;
80
- position: absolute;
81
- top: 100%;
82
- left: 21px;
83
-
84
- .rtl & {
85
- right: 21px;
86
- left: auto;
87
- }
88
- }
89
- }
90
-
91
- &:hover {
92
- .fs-feature-desc {
93
- visibility: visible;
94
- opacity: 1;
95
- }
96
- }
97
- }
98
-
99
- .button-primary {
100
- display: block;
101
- text-align: center;
102
- margin-top: 10px;
103
- }
104
- }
105
-
106
- #fs_customizer_support
107
- {
108
- display: block !important;
109
-
110
- .button {
111
- float: right;
112
- }
113
-
114
- .button-group {
115
- width: 100%;
116
- display: block;
117
- margin-top: 10px;
118
-
119
- .button {
120
- float: none;
121
- width: 50%;
122
- text-align: center;
123
- }
124
- }
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
freemius/assets/scss/index.php DELETED
@@ -1,3 +0,0 @@
1
- <?php
2
- // Silence is golden.
3
- // Hide file structure from users on unprotected servers.
 
 
 
freemius/config.php CHANGED
@@ -204,7 +204,7 @@
204
  #--------------------------------------------------------------------------------
205
 
206
  if ( ! defined( 'WP_FS__API_ADDRESS_LOCALHOST' ) ) {
207
- define( 'WP_FS__API_ADDRESS_LOCALHOST', 'http://api.freemius:8080' );
208
  }
209
  if ( ! defined( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST' ) ) {
210
  define( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST', 'http://sandbox-api.freemius:8080' );
@@ -351,8 +351,8 @@
351
  */
352
  if ( ! defined( 'WP_FS__IS_NETWORK_ADMIN' ) ) {
353
  define( 'WP_FS__IS_NETWORK_ADMIN',
354
- is_network_admin() ||
355
- ( is_multisite() &&
356
  ( ( defined( 'DOING_AJAX' ) && DOING_AJAX &&
357
  ( isset( $_REQUEST['_fs_network_admin'] ) /*||
358
  ( ! empty( $_REQUEST['action'] ) && 'delete-plugin' === $_REQUEST['action'] )*/ )
204
  #--------------------------------------------------------------------------------
205
 
206
  if ( ! defined( 'WP_FS__API_ADDRESS_LOCALHOST' ) ) {
207
+ define( 'WP_FS__API_ADDRESS_LOCALHOST', 'http://api.freemius-local.com:8080' );
208
  }
209
  if ( ! defined( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST' ) ) {
210
  define( 'WP_FS__API_SANDBOX_ADDRESS_LOCALHOST', 'http://sandbox-api.freemius:8080' );
351
  */
352
  if ( ! defined( 'WP_FS__IS_NETWORK_ADMIN' ) ) {
353
  define( 'WP_FS__IS_NETWORK_ADMIN',
354
+ is_multisite() &&
355
+ ( is_network_admin() ||
356
  ( ( defined( 'DOING_AJAX' ) && DOING_AJAX &&
357
  ( isset( $_REQUEST['_fs_network_admin'] ) /*||
358
  ( ! empty( $_REQUEST['action'] ) && 'delete-plugin' === $_REQUEST['action'] )*/ )
freemius/includes/class-freemius.php CHANGED
@@ -164,6 +164,15 @@
164
  */
165
  private $_has_addons;
166
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * @since 1.1.6
169
  * @var string[]bool.
@@ -334,6 +343,14 @@
334
  */
335
  private $_dynamically_added_top_level_page_hook_name = '';
336
 
 
 
 
 
 
 
 
 
337
  #region Uninstall Reasons IDs
338
 
339
  const REASON_NO_LONGER_NEEDED = 1;
@@ -399,9 +416,11 @@
399
  $this->_is_multisite_integrated &&
400
  // Themes are always network activated, but the ACTUAL activation is per site.
401
  $this->is_plugin() &&
402
- ( is_plugin_active_for_network( $this->_plugin_basename ) ||
403
- // Plugin network level activation or uninstall.
404
- is_plugin_inactive( $this->_plugin_basename ) )
 
 
405
  );
406
 
407
  $this->_storage->set_network_active(
@@ -409,6 +428,17 @@
409
  $this->is_delegated_connection()
410
  );
411
 
 
 
 
 
 
 
 
 
 
 
 
412
  #region Migration
413
 
414
  if ( is_multisite() ) {
@@ -471,13 +501,13 @@
471
  );
472
 
473
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
474
- 'true' === fs_request_is_action( 'restart_freemius' )
475
  ) {
476
  FS_Api::clear_cache();
477
  $this->_cache->clear();
478
  }
479
 
480
- $this->_register_hooks();
481
 
482
  /**
483
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
@@ -493,6 +523,188 @@
493
  $this->_version_updates_handler();
494
  }
495
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
496
  /**
497
  * Checks whether this module has a settings menu.
498
  *
@@ -507,6 +719,52 @@
507
  $this->_menu->has_menu();
508
  }
509
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
510
  /**
511
  * Check if the context module is free wp.org theme.
512
  *
@@ -539,12 +797,11 @@
539
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
540
  *
541
  * @param string $slug
542
- * @param bool $ignore_free_wp_org_theme_context This is used to decide if the associated tab should be shown
543
- * or hidden.
544
  *
545
  * @return bool
546
  */
547
- function is_submenu_item_visible( $slug, $ignore_free_wp_org_theme_context = false ) {
548
  if ( $this->is_admin_page( $slug ) ) {
549
  /**
550
  * It is the current context page, so show the submenu item
@@ -559,7 +816,7 @@
559
  return false;
560
  }
561
 
562
- if ( ! $ignore_free_wp_org_theme_context && $this->is_free_wp_org_theme() ) {
563
  /**
564
  * wp.org themes are limited to a single submenu item, and
565
  * sub-submenu items are most likely not allowed (never verified).
@@ -785,7 +1042,7 @@
785
  }
786
 
787
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
788
- $this->_storage->subscriptions = array( $this->_storage->subscription );
789
  }
790
  }
791
 
@@ -1258,11 +1515,11 @@
1258
  * @author Vova Feldman (@svovaf)
1259
  * @since 1.0.9
1260
  */
1261
- private function _register_hooks() {
1262
  $this->_logger->entrance();
1263
 
1264
  if ( is_admin() ) {
1265
- add_action( 'plugins_loaded', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1266
 
1267
  if ( $this->is_plugin() ) {
1268
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
@@ -1275,9 +1532,7 @@
1275
  add_filter( 'site_transient_update_plugins', array( 'Freemius', '_remove_fs_updates_from_plugin_install_page' ), 10, 2 );
1276
  } else if ( self::is_plugins_page() || self::is_updates_page() ) {
1277
  /**
1278
- * On the "Plugins" and "Updates" admin pages, if there are premium or non–org-compliant
1279
- * plugins, modify their details dialog URLs (add a Freemius-specific param) so that the SDK can
1280
- * determine if the plugin information dialog should show information from Freemius.
1281
  *
1282
  * @author Leo Fajardo (@leorw)
1283
  * @since 2.2.3
@@ -1305,34 +1560,6 @@
1305
  } else {
1306
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1307
 
1308
- /**
1309
- * Include the required hooks to capture the theme settings' page tabs
1310
- * and cache them.
1311
- *
1312
- * @author Vova Feldman (@svovaf)
1313
- * @since 1.2.2.7
1314
- */
1315
- if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1316
- add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1317
- // Add license activation AJAX callback.
1318
- $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1319
-
1320
- add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1321
- }
1322
-
1323
- add_action(
1324
- 'admin_footer',
1325
- array( &$this, '_add_freemius_tabs' ),
1326
- /**
1327
- * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1328
- * That's why the priority is 11 while the tabs capture logic is added
1329
- * with priority 10.
1330
- *
1331
- * @author Vova Feldman (@svovaf)
1332
- */
1333
- 11
1334
- );
1335
-
1336
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1337
  }
1338
 
@@ -1352,7 +1579,10 @@
1352
  *
1353
  * @author Vova Feldman (@svovaf)
1354
  */
1355
- if ( $this->is_plugin() && $this->is_activation_mode( false ) ) {
 
 
 
1356
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1357
  } else {
1358
  // If was activated before, then it was already loaded before.
@@ -1408,9 +1638,12 @@
1408
 
1409
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1410
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
 
 
1411
 
1412
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1413
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
 
1414
 
1415
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1416
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
@@ -1452,6 +1685,65 @@
1452
  }
1453
  }
1454
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1455
  /**
1456
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1457
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
@@ -1467,7 +1759,7 @@
1467
  static function _remove_fs_updates_from_plugin_install_page( $updates, $transient = null ) {
1468
  if ( is_object( $updates ) && isset( $updates->response ) ) {
1469
  foreach ( $updates->response as $file => $plugin ) {
1470
- if ( false !== strpos( $plugin->package, 'api.freemius' ) ) {
1471
  unset( $updates->response[ $file ] );
1472
  }
1473
  }
@@ -1530,6 +1822,122 @@
1530
  <?php
1531
  }
1532
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1533
  /**
1534
  * Keeping the uninstall hook registered for free or premium plugin version may result to a fatal error that
1535
  * could happen when a user tries to uninstall either version while one of them is still active. Uninstalling a
@@ -1598,7 +2006,7 @@
1598
  * @since 2.0.0
1599
  */
1600
  function _hook_action_links_and_register_account_hooks() {
1601
- add_action( 'admin_init', array( &$this, '_add_tracking_links' ) );
1602
 
1603
  if ( self::is_plugins_page() && $this->is_plugin() ) {
1604
  $this->hook_plugin_action_links();
@@ -1655,7 +2063,7 @@
1655
  // Try to load the cached value of the file path.
1656
  if ( isset( $this->_storage->plugin_main_file ) ) {
1657
  $plugin_main_file = $this->_storage->plugin_main_file;
1658
- if ( isset( $plugin_main_file->path ) ) {
1659
  $absolute_path = $this->get_absolute_path( $plugin_main_file->path );
1660
  if ( file_exists( $absolute_path ) ) {
1661
  return $absolute_path;
@@ -1676,7 +2084,7 @@
1676
  if ( ! $is_init ) {
1677
  // Fetch prev path cache.
1678
  if ( isset( $this->_storage->plugin_main_file ) &&
1679
- isset( $this->_storage->plugin_main_file->prev_path )
1680
  ) {
1681
  $absolute_path = $this->get_absolute_path( $this->_storage->plugin_main_file->prev_path );
1682
  if ( file_exists( $absolute_path ) ) {
@@ -1780,7 +2188,7 @@
1780
  $store_option = true;
1781
  }
1782
 
1783
- if ( ! isset( $id_slug_type_path_map[ $module_id ]['path'] ) ||
1784
  /**
1785
  * This verification is for cases when suddenly the same module
1786
  * is installed but with a different folder name.
@@ -1844,6 +2252,7 @@
1844
  $caller_map = array();
1845
  $module_type = WP_FS__MODULE_TYPE_PLUGIN;
1846
  $themes_dir = fs_normalize_path( get_theme_root( get_stylesheet() ) );
 
1847
 
1848
  for ( $i = 1, $bt = debug_backtrace(), $len = count( $bt ); $i < $len; $i ++ ) {
1849
  if ( empty( $bt[ $i ]['file'] ) ) {
@@ -1869,12 +2278,46 @@
1869
  'activate_plugin'
1870
  ) )
1871
  ) {
1872
- // Ignore call stack hooks and files inclusion.
1873
- continue;
1874
- }
1875
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1876
  $caller_file_path = fs_normalize_path( $bt[ $i ]['file'] );
1877
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1878
  if ( 'functions.php' === basename( $caller_file_path ) ) {
1879
  /**
1880
  * 1. Assumes that theme's starting execution file is functions.php.
@@ -1905,6 +2348,10 @@
1905
 
1906
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
1907
  foreach ( $all_plugins_paths as $plugin_path ) {
 
 
 
 
1908
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
1909
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
1910
  break;
@@ -1934,50 +2381,84 @@
1934
  *
1935
  * @author Vova Feldman (@svovaf)
1936
  * @author Leo Fajardo (@leorw)
 
1937
  * @since 1.1.2
1938
  */
1939
  function _add_deactivation_feedback_dialog_box() {
1940
- /* Check the type of user:
1941
- * 1. Long-term (long-term)
1942
- * 2. Non-registered and non-anonymous short-term (non-registered-and-non-anonymous-short-term).
1943
- * 3. Short-term (short-term)
1944
- */
1945
- $is_long_term_user = true;
1946
-
1947
- // Check if the site is at least 2 days old.
1948
- $time_installed = $this->_storage->install_timestamp;
1949
 
1950
- // Difference in seconds.
1951
- $date_diff = time() - $time_installed;
 
 
 
 
 
 
 
 
 
 
1952
 
1953
- // Convert seconds to days.
1954
- $date_diff_days = floor( $date_diff / ( 60 * 60 * 24 ) );
1955
 
1956
- if ( $date_diff_days < 2 ) {
1957
- $is_long_term_user = false;
 
 
 
 
1958
  }
1959
 
1960
- $is_long_term_user = $this->apply_filters( 'is_long_term_user', $is_long_term_user );
1961
 
1962
- if ( $is_long_term_user ) {
1963
- $user_type = 'long-term';
1964
- } else {
1965
- if ( ! $this->is_registered() && ! $this->is_anonymous() ) {
1966
- $user_type = 'non-registered-and-non-anonymous-short-term';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1967
  } else {
1968
- $user_type = 'short-term';
 
 
 
 
1969
  }
1970
- }
1971
 
1972
- $uninstall_reasons = $this->_get_uninstall_reasons( $user_type );
1973
 
1974
- // Load the HTML template for the deactivation feedback dialog box.
1975
- $vars = array(
1976
- 'reasons' => $uninstall_reasons,
1977
- 'id' => $this->_module_id
1978
- );
 
1979
 
1980
  /**
 
 
1981
  * @todo Deactivation form core functions should be loaded only once! Otherwise, when there are multiple Freemius powered plugins the same code is loaded multiple times. The only thing that should be loaded differently is the various deactivation reasons object based on the state of the plugin.
1982
  */
1983
  fs_require_template( 'forms/deactivation/form.php', $vars );
@@ -2484,12 +2965,14 @@
2484
  function is_site_activation_mode( $and_on = true ) {
2485
  return (
2486
  ( $this->is_on() || ! $and_on ) &&
2487
- ( $this->is_premium() && true === $this->_storage->require_license_activation ) ||
2488
  (
2489
- ( ! $this->is_registered() ||
2490
- ( $this->is_only_premium() && ! $this->has_features_enabled_license() ) ) &&
2491
- ( ! $this->is_enable_anonymous() ||
2492
- ( ! $this->is_anonymous() && ! $this->is_pending_activation() ) )
 
 
 
2493
  )
2494
  );
2495
  }
@@ -2547,7 +3030,7 @@
2547
  * @return bool
2548
  */
2549
  function is_activation_page() {
2550
- if ( $this->_menu->is_main_settings_page() ) {
2551
  return true;
2552
  }
2553
 
@@ -2621,17 +3104,47 @@
2621
  $active_basenames = get_option( 'active_plugins' );
2622
  }
2623
 
 
 
 
 
2624
  if ( is_multisite() ) {
2625
  $network_active_basenames = get_site_option( 'active_sitewide_plugins' );
2626
 
2627
  if ( is_array( $network_active_basenames ) && ! empty( $network_active_basenames ) ) {
2628
- $active_basenames = array_merge( $active_basenames, $network_active_basenames );
2629
  }
2630
  }
2631
 
2632
  return $active_basenames;
2633
  }
2634
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2635
  /**
2636
  * Get collection of all active plugins. Including network activated plugins.
2637
  *
@@ -2879,6 +3392,18 @@
2879
  add_action( 'admin_footer', array( 'Freemius', '_enrich_ajax_url' ) );
2880
  add_action( 'admin_footer', array( 'Freemius', '_open_support_forum_in_new_page' ) );
2881
 
 
 
 
 
 
 
 
 
 
 
 
 
2882
 
2883
  self::$_statics_loaded = true;
2884
  }
@@ -3475,7 +4000,10 @@
3475
  $key = fs_strip_url_protocol( get_site_url( $blog_id ) );
3476
 
3477
  $secure_auth = SECURE_AUTH_KEY;
3478
- if ( empty( $secure_auth ) || false !== strpos( $secure_auth, ' ' ) ) {
 
 
 
3479
  // Protect against default auth key.
3480
  $secure_auth = md5( microtime() );
3481
  }
@@ -4204,22 +4732,7 @@
4204
 
4205
  $this->parse_settings( $plugin_info );
4206
 
4207
- if ( is_admin() && $this->is_theme() && $this->is_premium() && ! $this->has_active_valid_license() ) {
4208
- $this->add_ajax_action(
4209
- 'delete_theme_update_data',
4210
- array( &$this, '_delete_theme_update_data_action' )
4211
- );
4212
- }
4213
-
4214
- if ( ! self::is_ajax() ) {
4215
- if ( ! $this->is_addon() || $this->is_only_premium() ) {
4216
- add_action(
4217
- ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
4218
- array( &$this, '_prepare_admin_menu' ),
4219
- WP_FS__LOWEST_PRIORITY
4220
- );
4221
- }
4222
- }
4223
 
4224
  if ( $this->should_stop_execution() ) {
4225
  return;
@@ -4372,9 +4885,32 @@
4372
 
4373
  return;
4374
  } else {
4375
- if ( $this->_parent->is_registered() && ! $this->is_registered() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4376
  // If parent plugin activated, automatically install add-on for the user.
4377
- $this->_activate_addon_account( $this->_parent );
 
 
 
 
 
4378
  } else if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4379
  // If add-on activated and parent not, automatically install parent for the user.
4380
  $this->activate_parent_account( $this->_parent );
@@ -4480,14 +5016,18 @@
4480
  private function should_use_freemius_updater_and_dialog() {
4481
  return (
4482
  /**
4483
- * Unless the `fs_allow_updater_and_dialog` URL param exists and its value is `true`, disallow updater
4484
- * and dialog on the "Add Plugins" admin page (/plugin-install.php) so that they won't interfere with
4485
- * the .org plugins' functionalities on that page (e.g. installation and viewing plugin details from
4486
- * .org).
 
4487
  */
4488
- ( ! self::is_plugin_install_page() || true === fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) &&
4489
- // Disallow updater and dialog when installing a plugin, otherwise .org "add-on" plugins will be affected.
4490
- ( 'install-plugin' !== fs_request_get( 'action' ) )
 
 
 
4491
  );
4492
  }
4493
 
@@ -4868,6 +5408,62 @@
4868
  }
4869
  }
4870
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4871
  /**
4872
  * Parse plugin's settings (as defined by the plugin dev).
4873
  *
@@ -4943,6 +5539,8 @@
4943
  'premium_suffix' => $premium_suffix,
4944
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
4945
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
 
 
4946
  ) );
4947
 
4948
  if ( $plugin->is_updated() ) {
@@ -4952,6 +5550,21 @@
4952
  // Set the secret key after storing the plugin, we don't want to store the key in the storage.
4953
  $this->_plugin->secret_key = $secret_key;
4954
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4955
  if ( ! isset( $plugin_info['menu'] ) ) {
4956
  $plugin_info['menu'] = array();
4957
 
@@ -4999,6 +5612,14 @@
4999
 
5000
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5001
  }
 
 
 
 
 
 
 
 
5002
  }
5003
 
5004
  /**
@@ -5351,12 +5972,16 @@
5351
  * @return Freemius[]
5352
  */
5353
  function get_installed_addons() {
 
 
 
 
 
5354
  $installed_addons = array();
 
5355
  foreach ( self::$_instances as $instance ) {
5356
- if ( $instance->is_addon() && is_object( $instance->_parent_plugin ) ) {
5357
- if ( $this->_plugin->id == $instance->_parent_plugin->id ) {
5358
- $installed_addons[] = $instance;
5359
- }
5360
  }
5361
  }
5362
 
@@ -5406,7 +6031,25 @@
5406
  * @return bool
5407
  */
5408
  function is_addon() {
5409
- return isset( $this->_plugin->parent_plugin_id ) && is_numeric( $this->_plugin->parent_plugin_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5410
  }
5411
 
5412
  /**
@@ -6066,7 +6709,7 @@
6066
  }
6067
 
6068
  if ( is_multisite() ) {
6069
- $this->switch_to_blog( $current_blog_id );
6070
 
6071
  $this->do_action( "after_{$name}_cron_multisite" );
6072
  }
@@ -6146,6 +6789,8 @@
6146
  */
6147
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6148
  if ( $this->is_registered() ) {
 
 
6149
  if ( $this->has_paid_plan() ) {
6150
  // Initiate background plan sync.
6151
  $this->_sync_license( true, false, $current_blog_id );
@@ -6161,6 +6806,8 @@
6161
  } else {
6162
  $this->sync_install();
6163
  }
 
 
6164
  }
6165
  }
6166
  }
@@ -6373,6 +7020,8 @@
6373
  } else {
6374
  $this->sync_install( array(), true );
6375
  }
 
 
6376
  }
6377
  }
6378
 
@@ -6467,8 +7116,7 @@
6467
 
6468
  $this->_add_upgrade_action_link();
6469
 
6470
- if ( ! $this->is_addon() &&
6471
- ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
6472
  (
6473
  ( true === $this->_storage->require_license_activation ) ||
6474
  // Not registered nor anonymous.
@@ -6478,7 +7126,7 @@
6478
  )
6479
  ) {
6480
  if ( ! $this->is_pending_activation() ) {
6481
- if ( ! $this->_menu->is_main_settings_page() ) {
6482
  /**
6483
  * If a user visits any other admin page before activating the premium-only theme with a valid
6484
  * license, reactivate the previous theme.
@@ -6486,10 +7134,10 @@
6486
  * @author Leo Fajardo (@leorw)
6487
  * @since 1.2.2
6488
  */
6489
- if ( $this->is_theme()
6490
- && ! $this->has_settings_menu()
6491
- && ! isset( $_REQUEST['fs_action'] )
6492
- && $this->can_activate_previous_theme()
6493
  ) {
6494
  if ( $this->is_only_premium() ) {
6495
  $this->activate_previous_theme();
@@ -6545,8 +7193,8 @@
6545
  }
6546
  }
6547
 
6548
- if ( $this->is_theme() &&
6549
- $this->_menu->is_main_settings_page()
6550
  ) {
6551
  $this->_show_theme_activation_optin_dialog();
6552
  }
@@ -6804,7 +7452,7 @@
6804
  foreach ( $plans_ids_to_keep as $plan_id ) {
6805
  $plan = self::_get_plan_by_id( $plan_id );
6806
  if ( is_object( $plan ) ) {
6807
- $plans_to_keep[] = $plan;
6808
  }
6809
  }
6810
  }
@@ -6973,44 +7621,48 @@
6973
  // Clear API cache on activation.
6974
  FS_Api::clear_cache();
6975
 
6976
- $is_premium_version_activation = ( current_filter() !== ( 'activate_' . $this->_free_plugin_basename ) );
 
 
6977
 
6978
  $this->_logger->info( 'Activating ' . ( $is_premium_version_activation ? 'premium' : 'free' ) . ' plugin version.' );
6979
 
6980
- // 1. If running in the activation of the FREE module, get the basename of the PREMIUM.
6981
- // 2. If running in the activation of the PREMIUM module, get the basename of the FREE.
6982
- $other_version_basename = $is_premium_version_activation ?
6983
- $this->_free_plugin_basename :
6984
- $this->premium_plugin_basename();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6985
 
6986
- if ( ! $this->_is_network_active ) {
6987
  /**
6988
- * During the activation, the plugin isn't yet active, therefore,
6989
- * _is_network_active will be set to false even if it's a network level
6990
- * activation. So we need to fix that by looking at the is_network_admin() value.
6991
  *
6992
- * @author Vova Feldman
 
 
 
 
6993
  */
6994
- $this->_is_network_active = (
6995
- $this->_is_multisite_integrated &&
6996
- // Themes are always network activated, but the ACTUAL activation is per site.
6997
- $this->is_plugin() &&
6998
- fs_is_network_admin()
6999
- );
7000
- }
7001
-
7002
- /**
7003
- * If the other module version is activate, deactivate it.
7004
- *
7005
- * is_plugin_active() checks if the plugin active on the site or the network level
7006
- * and deactivate_plugins() deactivates the plugin whether its activated on the site
7007
- * or network level.
7008
- *
7009
- * @author Leo Fajardo (@leorw)
7010
- * @since 1.2.2
7011
- */
7012
- if ( is_plugin_active( $other_version_basename ) ) {
7013
- deactivate_plugins( $other_version_basename );
7014
  }
7015
 
7016
  if ( $this->is_registered() ) {
@@ -7060,14 +7712,41 @@
7060
  }
7061
  }
7062
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7063
  if (
7064
  $is_premium_version_activation &&
7065
  (
7066
  ( ! $this->is_registered() && $this->is_anonymous() ) ||
7067
  (
7068
  $this->is_registered() &&
7069
- ! $this->is_trial() &&
7070
- ! $this->has_features_enabled_license()
7071
  )
7072
  )
7073
  ) {
@@ -7110,34 +7789,222 @@
7110
  }
7111
 
7112
  /**
7113
- * Delete account.
7114
- *
7115
- * @author Vova Feldman (@svovaf)
7116
- * @since 1.0.3
7117
- *
7118
- * @param bool $check_user Enforce checking if user have plugins activation privileges.
7119
  */
7120
- function delete_account_event( $check_user = true ) {
7121
- $this->_logger->entrance( 'slug = ' . $this->_slug );
7122
 
7123
- if ( $check_user && ! $this->is_user_admin() ) {
 
 
 
 
7124
  return;
7125
  }
7126
 
7127
- $this->do_action( 'before_account_delete' );
7128
-
7129
- // Clear all admin notices.
7130
- $this->_admin_notices->clear_all_sticky( false );
7131
 
7132
- $this->_delete_site( false );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7133
 
7134
- $delete_network_common_data = true;
 
 
 
 
7135
 
7136
- if ( $this->_is_network_active ) {
7137
- $installs = $this->get_blog_install_map();
7138
 
7139
- // Don't delete common network data unless no other installs left.
7140
- $delete_network_common_data = empty( $installs );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7141
  }
7142
 
7143
  if ( $delete_network_common_data ) {
@@ -7166,6 +8033,7 @@
7166
 
7167
  // Clear all storage data.
7168
  $this->_storage->clear_all( true, array(
 
7169
  'connectivity_test',
7170
  'is_on',
7171
  ), false );
@@ -7221,6 +8089,10 @@
7221
  foreach ( $sites as $site ) {
7222
  $blog_id = self::get_site_blog_id( $site );
7223
 
 
 
 
 
7224
  $install_id = $this->_delete_site( true, $blog_id );
7225
 
7226
  // Clear all storage data.
@@ -7521,7 +8393,7 @@
7521
  get_current_blog_id() == $network_or_blog_id ||
7522
  ( true === $network_or_blog_id && fs_is_network_admin() )
7523
  ) {
7524
- unset( $this->_is_anonymous );
7525
  }
7526
  }
7527
 
@@ -7985,50 +8857,59 @@
7985
  * @author Vova Feldman (@svovaf)
7986
  * @since 1.1.2
7987
  *
7988
- * @param string[] string $override
7989
- * @param bool $include_plugins Since 1.1.8 by default include plugin changes.
7990
- * @param bool $include_themes Since 1.1.8 by default include plugin changes.
 
7991
  *
7992
  * @return array
7993
  */
7994
  private function get_install_data_for_api(
7995
  array $override,
7996
  $include_plugins = true,
7997
- $include_themes = true
 
7998
  ) {
7999
- if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
8000
- /**
8001
- * @since 1.1.8 Also send plugin updates.
8002
- */
8003
- if ( $include_plugins && ! isset( $override['plugins'] ) ) {
8004
- $plugins = $this->get_plugins_data_for_api();
8005
- if ( ! empty( $plugins ) ) {
8006
- $override['plugins'] = $plugins;
 
 
8007
  }
8008
  }
8009
- }
8010
 
8011
- if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
8012
- /**
8013
- * @since 1.1.8 Also send themes updates.
8014
- */
8015
- if ( $include_themes && ! isset( $override['themes'] ) ) {
8016
- $themes = $this->get_themes_data_for_api();
8017
- if ( ! empty( $themes ) ) {
8018
- $override['themes'] = $themes;
 
8019
  }
8020
  }
8021
  }
8022
 
8023
  $versions = $this->get_versions();
8024
 
8025
- return array_merge( $versions, array(
 
 
 
 
 
 
 
 
 
8026
  'version' => $this->get_plugin_version(),
8027
  'is_premium' => $this->is_premium(),
8028
- 'language' => get_bloginfo( 'language' ),
8029
- 'charset' => get_bloginfo( 'charset' ),
8030
- 'title' => get_bloginfo( 'name' ),
8031
- 'url' => get_site_url(),
8032
  // Special params.
8033
  'is_active' => true,
8034
  'is_disconnected' => $this->is_tracking_prohibited(),
@@ -8366,6 +9247,21 @@
8366
  }
8367
  }
8368
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8369
  /**
8370
  * Update install only if changed.
8371
  *
@@ -8649,6 +9545,8 @@
8649
  $fs = self::get_instance_by_file( $plugin_file );
8650
 
8651
  if ( is_object( $fs ) ) {
 
 
8652
  self::require_plugin_essentials();
8653
 
8654
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
@@ -8700,10 +9598,12 @@
8700
  * @author Vova Feldman (@svovaf)
8701
  * @since 1.0.1
8702
  *
 
 
8703
  * @return array
8704
  */
8705
- function get_plugin_data() {
8706
- if ( ! isset( $this->_plugin_data ) ) {
8707
  self::require_plugin_essentials();
8708
 
8709
  if ( $this->is_plugin() ) {
@@ -8796,6 +9696,30 @@
8796
  return $this->_plugin->id;
8797
  }
8798
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8799
  /**
8800
  * @author Vova Feldman (@svovaf)
8801
  * @since 1.2.1.5
@@ -8818,6 +9742,32 @@
8818
  $this->_plugin->id;
8819
  }
8820
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8821
  /**
8822
  * @author Vova Feldman (@svovaf)
8823
  * @since 1.0.1
@@ -8917,12 +9867,14 @@
8917
  * @author Vova Feldman (@svovaf)
8918
  * @since 1.0.0
8919
  *
 
 
8920
  * @return string
8921
  */
8922
- function get_plugin_version() {
8923
  $this->_logger->entrance();
8924
 
8925
- $plugin_data = $this->get_plugin_data();
8926
 
8927
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
8928
 
@@ -9047,7 +9999,7 @@
9047
  * @return array[number]FS_User
9048
  */
9049
  static function get_all_users() {
9050
- $users = self::$_accounts->get_option( 'users', array() );
9051
 
9052
  if ( ! is_array( $users ) ) {
9053
  $users = array();
@@ -9091,7 +10043,7 @@
9091
  $option_name = $module_type . '_' . $option_name;
9092
  }
9093
 
9094
- return self::$_accounts->get_option( $option_name, array(), $network_level_or_blog_id );
9095
  }
9096
 
9097
  /**
@@ -9139,6 +10091,54 @@
9139
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
9140
  }
9141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9142
  /**
9143
  * @author Vova Feldman (@svovaf)
9144
  * @since 1.0.6
@@ -9322,7 +10322,7 @@
9322
  * @return FS_Plugin_Tag[]
9323
  */
9324
  private static function get_all_updates() {
9325
- $updates = self::$_accounts->get_option( 'updates', array() );
9326
 
9327
  if ( ! is_array( $updates ) ) {
9328
  $updates = array();
@@ -9338,7 +10338,7 @@
9338
  * @return array<number,FS_Plugin[]>|false
9339
  */
9340
  private static function get_all_addons() {
9341
- $addons = self::$_accounts->get_option( 'addons', array() );
9342
 
9343
  if ( ! is_array( $addons ) ) {
9344
  $addons = array();
@@ -9351,7 +10351,7 @@
9351
  * @author Vova Feldman (@svovaf)
9352
  * @since 1.0.6
9353
  *
9354
- * @return FS_Plugin[]|false
9355
  */
9356
  private static function get_all_account_addons() {
9357
  $addons = self::$_accounts->get_option( 'account_addons', array() );
@@ -9452,7 +10452,7 @@
9452
  * @author Vova Feldman (@svovaf)
9453
  * @since 1.0.6
9454
  *
9455
- * @return FS_Plugin[]|false
9456
  */
9457
  function get_account_addons() {
9458
  $this->_logger->entrance();
@@ -9540,52 +10540,225 @@
9540
  }
9541
 
9542
  /**
9543
- * @author Vova Feldman (@svovaf)
9544
- * @since 2.0.0
9545
- *
9546
- * @param number $user_id
9547
- *
9548
- * @return FS_User
9549
  */
9550
- static function _get_user_by_id( $user_id ) {
9551
- self::$_static_logger->entrance( "user_id = {$user_id}" );
9552
-
9553
- $users = self::get_all_users();
9554
 
9555
- if ( is_array( $users ) ) {
9556
- if ( isset( $users[ $user_id ] ) &&
9557
- $users[ $user_id ] instanceof FS_User &&
9558
- $user_id == $users[ $user_id ]->id
9559
- ) {
9560
- return $users[ $user_id ];
9561
- }
 
 
 
 
 
9562
 
9563
- // If user wasn't found by the key, iterate over all the users collection.
9564
- foreach ( $users as $user ) {
9565
- /**
9566
- * @var FS_User $user
9567
- */
9568
- if ( $user_id == $user->id ) {
9569
- return $user;
9570
  }
9571
  }
 
 
9572
  }
9573
 
9574
- return null;
9575
  }
9576
 
9577
  /**
9578
- * Checks if a Freemius user_id is associated with a super-admin.
9579
- *
9580
- * @author Vova Feldman (@svovaf)
9581
- * @since 2.0.0
9582
  *
9583
- * @param number $user_id
 
9584
  *
9585
- * @return bool
9586
  */
9587
- private static function is_super_admin( $user_id ) {
9588
- $is_super_admin = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9589
 
9590
  $user = self::_get_user_by_id( $user_id );
9591
 
@@ -9618,7 +10791,7 @@
9618
  function is_premium() {
9619
  /**
9620
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
9621
- * `_register_hooks` method.
9622
  *
9623
  * @author Leo Fajardo (@leorw)
9624
  * @since 2.2.3
@@ -9715,7 +10888,20 @@
9715
  return false;
9716
  }
9717
 
9718
- return $this->has_active_valid_license() && ( $this->_site->trial_plan_id == $this->_license->plan_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
9719
  }
9720
 
9721
  /**
@@ -9850,10 +11036,26 @@
9850
  * @author Vova Feldman (@svovaf)
9851
  * @since 1.1.7.3
9852
  *
 
 
9853
  * @return bool
9854
  */
9855
- function has_any_license() {
9856
- return is_array( $this->_licenses ) && ( 0 < count( $this->_licenses ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9857
  }
9858
 
9859
  /**
@@ -9999,7 +11201,9 @@
9999
 
10000
  if ( $license instanceof FS_Plugin_License ) {
10001
  $this->_licenses[] = $license;
10002
- $this->_license = $license;
 
 
10003
  $this->_store_licenses();
10004
 
10005
  return $license;
@@ -10017,7 +11221,7 @@
10017
  * @return number[]
10018
  */
10019
  private function get_plans_ids_associated_with_installs() {
10020
- if ( ! $this->_is_network_active ) {
10021
  if ( ! is_object( $this->_site ) ||
10022
  ! FS_Plugin_Plan::is_valid_id( $this->_site->plan_id )
10023
  ) {
@@ -10152,24 +11356,11 @@
10152
  $all_licenses = $this->get_user_licenses( $this->_user->id );
10153
  }
10154
 
10155
- $foreign_licenses = array(
10156
- 'ids' => array(),
10157
- 'license_keys' => array()
10158
- );
10159
 
10160
  $all_licenses_map = array();
10161
  foreach ( $all_licenses as $license ) {
10162
  $all_licenses_map[ $license->id ] = true;
10163
- if ( $license->user_id == $this->_user->id || $license->id == $site_license_id ) {
10164
- continue;
10165
- }
10166
-
10167
- $foreign_licenses['ids'][] = $license->id;
10168
- $foreign_licenses['license_keys'][] = $license->secret_key;
10169
- }
10170
-
10171
- if ( empty( $foreign_licenses['ids'] ) ) {
10172
- $foreign_licenses = array();
10173
  }
10174
 
10175
  $licenses = $this->_fetch_licenses( false, $site_license_id, $foreign_licenses, $blog_id );
@@ -10237,7 +11428,22 @@
10237
 
10238
  // Update current license.
10239
  if ( is_object( $this->_license ) ) {
10240
- $this->_license = $this->_get_license_by_id( $this->_license->id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10241
  }
10242
 
10243
  return $this->_licenses;
@@ -10577,6 +11783,21 @@
10577
  return true;
10578
  }
10579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10580
  /**
10581
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
10582
  *
@@ -10592,7 +11813,7 @@
10592
  private function activate_license_on_many_sites(
10593
  FS_User $user,
10594
  $license_key,
10595
- array $site_ids
10596
  ) {
10597
  $sites = array();
10598
  foreach ( $site_ids as $site_id ) {
@@ -10616,30 +11837,43 @@
10616
  }
10617
 
10618
  $installs = array();
10619
- foreach ( $result->installs as $install ) {
10620
- $installs[] = new FS_Site( $install );
10621
- }
10622
 
10623
- // Map site addresses to their blog IDs.
10624
- $address_to_blog_map = $this->get_address_to_blog_map();
10625
 
10626
- $first_blog_id = null;
10627
 
10628
- foreach ( $installs as $install ) {
10629
- $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
10630
- $blog_id = $address_to_blog_map[ $address ];
10631
 
10632
- $this->_store_site( true, $blog_id, $install );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10633
 
10634
- $this->reset_anonymous_mode( $blog_id );
 
 
10635
 
10636
- if ( is_null( $first_blog_id ) ) {
10637
- $first_blog_id = $blog_id;
 
10638
  }
10639
- }
10640
 
10641
- if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
10642
- $this->_storage->network_install_blog_id = $first_blog_id;
 
10643
  }
10644
 
10645
  return true;
@@ -10658,7 +11892,15 @@
10658
  function _update_site_license( $new_license ) {
10659
  $this->_logger->entrance();
10660
 
10661
- $this->_license = $new_license;
 
 
 
 
 
 
 
 
10662
 
10663
  if ( ! is_object( $new_license ) ) {
10664
  $this->_site->license_id = null;
@@ -10694,43 +11936,278 @@
10694
  }
10695
 
10696
  /**
10697
- * Sync site's subscription.
10698
- *
10699
  * @author Vova Feldman (@svovaf)
10700
- * @since 1.0.9
10701
  *
10702
- * @param FS_Plugin_License|null $license
 
 
 
 
 
 
 
 
 
 
10703
  *
10704
- * @return bool|\FS_Subscription
10705
  */
10706
- private function _sync_site_subscription( $license ) {
10707
- if ( ! is_object( $license ) ) {
10708
- $this->delete_unused_subscriptions();
 
10709
 
10710
- return false;
10711
- }
10712
 
10713
- // Load subscription details if not lifetime.
10714
- $subscription = $license->is_lifetime() ?
10715
- false :
10716
- $this->_fetch_site_license_subscription();
10717
 
10718
- if ( is_object( $subscription ) && ! isset( $subscription->error ) ) {
10719
- $this->store_subscription( $subscription );
10720
- } else {
10721
- $this->delete_unused_subscriptions();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10722
  }
10723
 
10724
- return $subscription;
 
 
 
 
 
 
 
 
 
 
10725
  }
10726
 
10727
  /**
10728
- * @author Vova Feldman (@svovaf)
10729
- * @since 1.0.6
10730
  *
10731
- * @return bool|\FS_Plugin_License
 
10732
  */
10733
- function _get_license() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10734
  if ( ! fs_is_network_admin() || is_object( $this->_license ) ) {
10735
  return $this->_license;
10736
  }
@@ -10750,7 +12227,7 @@
10750
  return null;
10751
  }
10752
 
10753
- foreach ( $this->_storage->subscriptions as $subscription ) {
10754
  if ( $subscription->license_id == $license_id ) {
10755
  return $subscription;
10756
  }
@@ -10776,7 +12253,7 @@
10776
  return;
10777
  }
10778
 
10779
- $subscriptions = $this->_storage->subscriptions;
10780
 
10781
  $updated_subscription = false;
10782
  foreach ( $subscriptions as $key => $existing_subscription ) {
@@ -10871,7 +12348,7 @@
10871
  }
10872
 
10873
  $current_plan_order = - 1;
10874
- $required_plan_order = - 1;
10875
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
10876
  if ( $plan === $this->_plans[ $i ]->name ) {
10877
  $required_plan_order = $i;
@@ -10889,9 +12366,11 @@
10889
  * @author Vova Feldman (@svovaf)
10890
  * @since 1.2.1.7
10891
  *
 
 
10892
  * @return bool
10893
  */
10894
- function is_single_plan() {
10895
  $this->_logger->entrance();
10896
 
10897
  if ( ! $this->is_registered() ||
@@ -10901,7 +12380,18 @@
10901
  return true;
10902
  }
10903
 
10904
- return ( 1 === count( $this->_plans ) );
 
 
 
 
 
 
 
 
 
 
 
10905
  }
10906
 
10907
  /**
@@ -11015,6 +12505,77 @@
11015
  fs_require_template( 'forms/resend-key.php', $vars );
11016
  }
11017
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11018
  /**
11019
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
11020
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
@@ -11025,11 +12586,17 @@
11025
  * @since 2.2.1
11026
  *
11027
  * @param bool $is_license_deactivation
 
 
11028
  */
11029
- function _maybe_add_subscription_cancellation_dialog_box( $is_license_deactivation = false ) {
11030
  if ( fs_is_network_admin() ) {
11031
  // Subscription cancellation dialog box is currently not supported for multisite networks.
11032
- return;
 
 
 
 
11033
  }
11034
 
11035
  $license = $this->_get_license();
@@ -11044,7 +12611,7 @@
11044
  $license->is_lifetime() ||
11045
  ( ! $license->is_single_site() && $license->activated > 1 )
11046
  ) {
11047
- return;
11048
  }
11049
 
11050
  /**
@@ -11052,146 +12619,456 @@
11052
  */
11053
  $subscription = $this->_get_subscription( $license->id );
11054
  if ( ! is_object( $subscription ) || ! $subscription->is_active() ) {
11055
- return;
11056
  }
11057
 
11058
- $vars = array(
11059
  'id' => $this->_module_id,
11060
  'license' => $license,
11061
  'has_trial' => $this->is_paid_trial(),
11062
  'is_license_deactivation' => $is_license_deactivation,
11063
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11064
 
11065
- fs_require_template( 'forms/subscription-cancellation.php', $vars );
11066
  }
11067
 
11068
  /**
 
 
11069
  * @author Leo Fajardo (@leorw)
11070
- * @since 2.0.2
 
 
11071
  */
11072
- function _add_premium_version_upgrade_selection_dialog_box() {
11073
- $modules_update = get_site_transient( $this->is_theme() ? 'update_themes' : 'update_plugins' );
11074
- if ( ! isset( $modules_update->response[ $this->_plugin_basename ] ) ) {
11075
- return;
 
 
 
 
 
11076
  }
11077
 
11078
- $vars = array(
11079
- 'id' => $this->_module_id,
11080
- 'new_version' => is_object( $modules_update->response[ $this->_plugin_basename ] ) ?
11081
- $modules_update->response[ $this->_plugin_basename ]->new_version :
11082
- $modules_update->response[ $this->_plugin_basename ]['new_version']
 
 
 
 
 
11083
  );
11084
 
11085
- fs_require_template( 'forms/premium-versions-upgrade-metadata.php', $vars );
11086
- fs_require_once_template( 'forms/premium-versions-upgrade-handler.php', $vars );
 
11087
  }
11088
 
11089
  /**
11090
- * Displays the opt-out dialog box when the user clicks on the "Opt Out" link on the "Plugins"
11091
- * page.
11092
  *
11093
  * @author Leo Fajardo (@leorw)
11094
- * @since 1.2.1.5
11095
  */
11096
- function _add_optout_dialog() {
11097
- if ( $this->is_theme() ) {
11098
- $vars = null;
11099
- fs_require_once_template( '/js/jquery.content-change.php', $vars );
11100
- }
11101
 
11102
- $vars = array( 'id' => $this->_module_id );
11103
- fs_require_template( 'forms/optout.php', $vars );
11104
- }
11105
 
11106
- /**
11107
- * Prepare page to include all required UI and logic for the license activation dialog.
11108
- *
11109
- * @author Vova Feldman (@svovaf)
11110
- * @since 1.2.0
11111
- */
11112
- function _add_license_activation() {
11113
- if ( ! $this->is_user_admin() ) {
11114
- // Only admins can activate a license.
11115
- return;
11116
- }
11117
 
11118
- if ( ! $this->has_paid_plan() ) {
11119
- // Module doesn't have any paid plans.
11120
- return;
11121
  }
11122
 
11123
- if ( ! $this->is_premium() ) {
11124
- // Only add license activation logic to the premium version.
11125
- return;
 
 
 
11126
  }
11127
 
11128
- // Add license activation link and AJAX request handler.
11129
- if ( self::is_plugins_page() ) {
11130
- /**
11131
- * @since 1.2.0 Add license action link only on plugins page.
11132
- */
11133
- $this->_add_license_action_link();
11134
  }
 
 
11135
 
11136
- // Add license activation AJAX callback.
11137
- $this->add_ajax_action( 'activate_license', array( &$this, '_activate_license_ajax_action' ) );
11138
 
11139
- // Add resend license AJAX callback.
11140
- $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11141
  }
11142
 
11143
  /**
11144
- * @author Leo Fajardo (@leorw)
11145
- * @since 2.0.2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11146
  */
11147
- function _add_premium_version_upgrade_selection() {
11148
- if ( ! $this->is_user_admin() ) {
11149
- return;
11150
- }
 
 
11151
 
11152
- if ( ! $this->is_premium() || $this->has_any_active_valid_license() ) {
11153
- // This is relevant only to the free versions and premium versions without an active license.
11154
- return;
11155
- }
 
 
 
 
 
11156
 
11157
- if ( self::is_updates_page() || ( $this->is_plugin() && self::is_plugins_page() ) ) {
11158
- $this->_add_premium_version_upgrade_selection_action();
11159
- }
 
11160
  }
11161
 
11162
  /**
11163
- * @author Leo Fajardo (@leorw)
11164
  *
11165
- * @since 1.1.9
 
11166
  * @since 2.0.0 When a super-admin that hasn't connected before is network activating a license and excluding some of the sites for the license activation, go over the unselected sites in the network and if a site is not connected, skipped, nor delegated, if it's a freemium product then just skip the connection for the site, if it's a premium only product, delegate the connection and license activation to the site admin (Vova Feldman @svovaf).
 
 
 
 
 
 
 
 
 
 
 
 
11167
  */
11168
- function _activate_license_ajax_action() {
 
 
 
 
 
 
 
 
11169
  $this->_logger->entrance();
11170
-
11171
- $this->check_ajax_referer( 'activate_license' );
11172
 
11173
- $license_key = trim( fs_request_get( 'license_key' ) );
11174
 
11175
- if ( empty( $license_key ) ) {
11176
- exit;
 
11177
  }
11178
 
11179
- $plugin_id = fs_request_get( 'module_id', '', 'post' );
11180
- $fs = ( $plugin_id == $this->_module_id ) ?
11181
  $this :
11182
  $this->get_addon_instance( $plugin_id );
11183
 
 
 
11184
  $error = false;
11185
  $next_page = false;
11186
 
11187
- $sites = fs_is_network_admin() ?
11188
- fs_request_get( 'sites', array(), 'post' ) :
11189
- array();
11190
-
11191
- $blog_id = fs_request_get( 'blog_id' );
11192
  $has_valid_blog_id = is_numeric( $blog_id );
11193
 
11194
- if ( $fs->is_registered() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
11195
  if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
11196
  // If no specific blog ID was provided, activate the license for all sites in the network.
11197
  $blog_2_install_map = array();
@@ -11202,7 +13079,7 @@
11202
  continue;
11203
  }
11204
 
11205
- $install = $this->get_install_by_blog_id( $site['blog_id'] );
11206
 
11207
  if ( is_object( $install ) ) {
11208
  $blog_2_install_map[ $site['blog_id'] ] = $install;
@@ -11211,10 +13088,8 @@
11211
  }
11212
  }
11213
 
11214
- $user = $this->get_current_or_network_user();
11215
-
11216
  if ( ! empty( $blog_2_install_map ) ) {
11217
- $result = $this->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
11218
 
11219
  if ( true !== $result ) {
11220
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -11224,7 +13099,7 @@
11224
  }
11225
 
11226
  if ( empty( $error ) && ! empty( $site_ids ) ) {
11227
- $result = $this->activate_license_on_many_sites( $user, $license_key, $site_ids );
11228
 
11229
  if ( true !== $result ) {
11230
  $error = FS_Api::is_api_error_object( $result ) ?
@@ -11240,31 +13115,67 @@
11240
  *
11241
  * @author Leo Fajardo (@leorw)
11242
  */
11243
- $this->switch_to_blog( $blog_id );
11244
  }
11245
 
11246
- $api = $fs->get_api_site_scope();
 
 
 
11247
 
11248
- $params = array(
11249
- 'license_key' => $fs->apply_filters( 'license_key', $license_key )
11250
- );
11251
 
11252
- $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
11253
 
11254
- if ( FS_Api::is_api_error( $install ) ) {
11255
- $error = FS_Api::is_api_error_object( $install ) ?
11256
- $install->error->message :
11257
- var_export( $install->error, true );
11258
- } else {
11259
- $fs->reconnect_locally( $has_valid_blog_id );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11260
  }
11261
  }
11262
 
11263
  if ( empty( $error ) ) {
11264
- $this->network_upgrade_mode_completed();
11265
 
11266
  $fs->_sync_license( true, $has_valid_blog_id );
11267
 
 
 
11268
  $next_page = $fs->is_addon() ?
11269
  $fs->get_parent_instance()->get_account_url() :
11270
  $fs->get_account_url();
@@ -11278,7 +13189,7 @@
11278
  false,
11279
  false,
11280
  false,
11281
- fs_request_get_bool( 'is_marketing_allowed', null ),
11282
  $sites
11283
  );
11284
 
@@ -11313,17 +13224,17 @@
11313
  continue;
11314
  }
11315
 
11316
- if ( $this->is_installed_on_site( $blog_id ) ) {
11317
  // Site was already connected before.
11318
  continue;
11319
  }
11320
 
11321
- if ( $this->is_site_delegated_connection( $blog_id ) ) {
11322
  // Site's connection was delegated.
11323
  continue;
11324
  }
11325
 
11326
- if ( $this->is_anonymous_site( $blog_id ) ) {
11327
  // Site connection was already skipped.
11328
  continue;
11329
  }
@@ -11332,18 +13243,18 @@
11332
  }
11333
 
11334
  if ( ! empty( $pending_sites ) ) {
11335
- if ( $this->is_freemium() ) {
11336
- $this->skip_connection( $pending_sites );
11337
  } else {
11338
- $this->delegate_connection( $pending_sites );
11339
  }
11340
  }
11341
  }
11342
  }
11343
  }
11344
 
11345
- if ( false === $error && true === $this->_storage->require_license_activation ) {
11346
- $this->_storage->require_license_activation = false;
11347
  }
11348
 
11349
  $result = array(
@@ -11351,14 +13262,82 @@
11351
  );
11352
 
11353
  if ( false !== $error ) {
11354
- $result['error'] = $error;
11355
  } else {
 
 
 
 
 
 
 
 
 
 
 
 
11356
  $result['next_page'] = $next_page;
11357
  }
11358
 
11359
- echo json_encode( $result );
 
11360
 
11361
- exit;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11362
  }
11363
 
11364
  /**
@@ -11393,8 +13372,12 @@
11393
  $total_sites_to_delegate = count( $sites_by_action['delegate'] );
11394
 
11395
  $next_page = '';
 
 
 
11396
  if ( $total_sites === $total_sites_to_delegate &&
11397
- ! $this->is_network_upgrade_mode()
 
11398
  ) {
11399
  $this->delegate_connection();
11400
  } else {
@@ -11406,7 +13389,19 @@
11406
  $this->skip_connection( $sites_by_action['skip'] );
11407
  }
11408
 
11409
- if ( ! empty( $sites_by_action['allow'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
11410
  if ( ! $fs->is_registered() || ! $this->_is_network_active ) {
11411
  $next_page = $fs->opt_in(
11412
  false,
@@ -11993,11 +13988,11 @@
11993
  $params['trial'] = 'true';
11994
  }
11995
 
11996
- if ( $this->is_addon() ) {
11997
- return $this->_parent->addon_url( $this->_slug );
11998
- }
11999
 
12000
- return $this->_get_admin_page_url( 'pricing', $params );
12001
  }
12002
 
12003
  /**
@@ -12006,16 +14001,18 @@
12006
  * @author Vova Feldman (@svovaf)
12007
  * @since 1.0.6
12008
  *
12009
- * @param string $billing_cycle Billing cycle
12010
- * @param bool $is_trial
12011
- * @param array $extra (optional) Extra parameters, override other query params.
 
12012
  *
12013
  * @return string
12014
  */
12015
  function checkout_url(
12016
  $billing_cycle = WP_FS__PERIOD_ANNUALLY,
12017
  $is_trial = false,
12018
- $extra = array()
 
12019
  ) {
12020
  $this->_logger->entrance();
12021
 
@@ -12033,7 +14030,7 @@
12033
  */
12034
  $params = array_merge( $params, $extra );
12035
 
12036
- return $this->_get_admin_page_url( 'pricing', $params );
12037
  }
12038
 
12039
  /**
@@ -12042,10 +14039,11 @@
12042
  * @author Vova Feldman (@svovaf)
12043
  * @since 1.1.7
12044
  *
12045
- * @param number $addon_id
12046
- * @param number $pricing_id
12047
- * @param string $billing_cycle
12048
- * @param bool $is_trial
 
12049
  *
12050
  * @return string
12051
  */
@@ -12053,12 +14051,13 @@
12053
  $addon_id,
12054
  $pricing_id,
12055
  $billing_cycle = WP_FS__PERIOD_ANNUALLY,
12056
- $is_trial = false
 
12057
  ) {
12058
  return $this->checkout_url( $billing_cycle, $is_trial, array(
12059
  'plugin_id' => $addon_id,
12060
  'pricing_id' => $pricing_id,
12061
- ) );
12062
  }
12063
 
12064
  #endregion
@@ -12367,9 +14366,8 @@
12367
  $page_param = $this->_menu->get_slug( $page );
12368
 
12369
  if ( empty( $page ) &&
12370
- $this->is_theme() &&
12371
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
12372
- ( $this->is_free_wp_org_theme() || ! $this->has_settings_menu() )
12373
  ) {
12374
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
12375
 
@@ -12598,6 +14596,10 @@
12598
  * @return array Active & public sites collection.
12599
  */
12600
  static function get_sites() {
 
 
 
 
12601
  /**
12602
  * For consistency with get_blog_list() which only return active public sites.
12603
  *
@@ -12769,7 +14771,7 @@
12769
  * 'blog_id' => string The associated blog ID.
12770
  * }
12771
  */
12772
- private function find_first_install() {
12773
  $sites = self::get_sites();
12774
 
12775
  foreach ( $sites as $site ) {
@@ -12795,10 +14797,12 @@
12795
  *
12796
  * @param int $blog_id
12797
  * @param FS_Site $install
 
 
12798
  */
12799
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
12800
  if ( $blog_id == $this->_context_is_network_or_blog_id ) {
12801
- return;
12802
  }
12803
 
12804
  switch_to_blog( $blog_id );
@@ -12812,9 +14816,10 @@
12812
  $install :
12813
  $this->get_install_by_blog_id( $blog_id );
12814
 
12815
- $this->_user = false;
12816
- $this->_licenses = false;
12817
- $this->_license = null;
 
12818
 
12819
  if ( is_object( $this->_site ) ) {
12820
  // Try to fetch user from install.
@@ -12859,6 +14864,8 @@
12859
 
12860
  unset( $this->_site_api );
12861
  unset( $this->_user_api );
 
 
12862
  }
12863
 
12864
  /**
@@ -13291,17 +15298,29 @@
13291
  }
13292
 
13293
  /**
13294
- * Check if currently in a specified admin page.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13295
  *
13296
  * @author Vova Feldman (@svovaf)
13297
- * @since 1.2.2.7
13298
- *
13299
- * @param string $page
13300
  *
13301
  * @return bool
13302
  */
13303
- function is_admin_page( $page ) {
13304
- return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
13305
  }
13306
 
13307
  /**
@@ -13324,8 +15343,22 @@
13324
  * @since 1.2.2.7
13325
  *
13326
  * @return bool
 
 
13327
  */
13328
  function is_theme_settings_page() {
 
 
 
 
 
 
 
 
 
 
 
 
13329
  return fs_starts_with(
13330
  fs_request_get( 'page', '', 'get' ),
13331
  $this->_menu->get_slug()
@@ -13445,6 +15478,18 @@
13445
  ) );
13446
  }
13447
 
 
 
 
 
 
 
 
 
 
 
 
 
13448
  /* Logger
13449
  ------------------------------------------------------------------------------------------------------------------*/
13450
  /**
@@ -13670,8 +15715,9 @@
13670
  $this->get_install_by_blog_id();
13671
 
13672
  if ( fs_is_network_admin() &&
13673
- ! is_object( $site ) &&
13674
- FS_Site::is_valid_id( $this->_storage->network_install_blog_id )
 
13675
  ) {
13676
  $first_install = $this->find_first_install();
13677
 
@@ -13732,7 +15778,7 @@
13732
  /**
13733
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
13734
  */
13735
- $user = $this->fetch_user_by_install();
13736
  }
13737
 
13738
  $this->_user = ( $user instanceof FS_User ) ?
@@ -13772,13 +15818,19 @@
13772
  * @author Vova Feldman (@svovaf)
13773
  * @since 2.0.0
13774
  *
 
 
13775
  * @return \FS_User|mixed
13776
  */
13777
- private function fetch_user_by_install() {
 
 
 
 
13778
  $api = $this->get_api_site_scope();
13779
 
13780
  $uid = $this->get_anonymous_id();
13781
- $request_path = "/users/{$this->_site->user_id}.json?uid={$uid}";
13782
 
13783
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
13784
 
@@ -13850,6 +15902,47 @@
13850
  return $versions;
13851
  }
13852
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13853
  /**
13854
  * @author Vova Feldman (@svovaf)
13855
  * @since 1.1.7.4
@@ -13893,20 +15986,16 @@
13893
  'is_uninstalled' => false,
13894
  ) );
13895
 
13896
- if ( true === $network_level_or_blog_id ) {
13897
- if ( ! isset( $override_with['sites'] ) ) {
13898
- $params['sites'] = array();
13899
 
13900
- $sites = self::get_sites();
 
 
13901
 
13902
- foreach ( $sites as $site ) {
13903
- $blog_id = self::get_site_blog_id( $site );
13904
- if ( ! $this->is_site_delegated_connection( $blog_id ) &&
13905
- ! $this->is_installed_on_site( $blog_id )
13906
- ) {
13907
- $params['sites'][] = $this->get_site_info( $site );
13908
- }
13909
- }
13910
  }
13911
  } else {
13912
  $site = is_numeric( $network_level_or_blog_id ) ?
@@ -13999,9 +16088,12 @@
13999
  if ( ! $is_uninstall ) {
14000
  $fs_user = Freemius::_get_user_by_email( $email );
14001
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
14002
- return $this->install_with_current_user(
 
14003
  false,
14004
  $trial_plan_id,
 
 
14005
  $sites
14006
  );
14007
  }
@@ -14168,6 +16260,9 @@
14168
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
14169
  $decoded->is_marketing_allowed :
14170
  null ),
 
 
 
14171
  $decoded->install_id,
14172
  $decoded->install_public_key,
14173
  $decoded->install_secret_key,
@@ -14181,6 +16276,9 @@
14181
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
14182
  $decoded->is_marketing_allowed :
14183
  null ),
 
 
 
14184
  $decoded->installs,
14185
  false
14186
  );
@@ -14266,74 +16364,13 @@
14266
  // If Freemius was OFF before, turn it on.
14267
  $this->turn_on();
14268
 
14269
- if ( ! $this->_is_network_active || ! $is_network_level_opt_in ) {
14270
- $this->_set_account( $user, $first_install );
14271
-
14272
- $this->do_action( 'after_account_connection', $user, $first_install );
14273
- } else {
14274
- $this->_store_user();
14275
-
14276
- // Map site addresses to their blog IDs.
14277
- $address_to_blog_map = $this->get_address_to_blog_map();
14278
-
14279
- $first_blog_id = null;
14280
- $blog_2_install_map = array();
14281
- foreach ( $installs as $install ) {
14282
- $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
14283
- $blog_id = $address_to_blog_map[ $address ];
14284
-
14285
- $this->_store_site( true, $blog_id, $install );
14286
-
14287
- if ( is_null( $first_blog_id ) ) {
14288
- $first_blog_id = $blog_id;
14289
- }
14290
-
14291
- $blog_2_install_map[ $blog_id ] = $install;
14292
- }
14293
-
14294
- if ( ! FS_User::is_valid_id( $this->_storage->network_user_id ) ||
14295
- ! is_object( self::_get_user_by_id( $this->_storage->network_user_id ) )
14296
- ) {
14297
- // Store network user.
14298
- $this->_storage->network_user_id = $this->_user->id;
14299
- }
14300
-
14301
- if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
14302
- $this->_storage->network_install_blog_id = $first_blog_id;
14303
- }
14304
-
14305
- if ( count( $installs ) === count( $address_to_blog_map ) ) {
14306
- // Super-admin opted-in for all sites in the network.
14307
- $this->_storage->is_network_connected = true;
14308
- }
14309
-
14310
- $this->_store_licenses( false );
14311
-
14312
- self::$_accounts->store();
14313
-
14314
- // Don't sync the installs data on network upgrade
14315
- if ( ! $this->network_upgrade_mode_completed() ) {
14316
- $this->send_installs_update();
14317
- }
14318
-
14319
- // Switch install context back to the first install.
14320
- $this->_site = $first_install;
14321
-
14322
- $current_blog = get_current_blog_id();
14323
-
14324
- foreach ( $blog_2_install_map as $blog_id => $install ) {
14325
- $this->switch_to_blog( $blog_id );
14326
-
14327
- $this->do_action( 'after_account_connection', $user, $install );
14328
- }
14329
-
14330
- $this->switch_to_blog( $current_blog );
14331
-
14332
- $this->do_action( 'after_network_account_connection', $user, $blog_2_install_map );
14333
- }
14334
 
14335
  if ( is_numeric( $first_install->license_id ) ) {
14336
- $this->_license = $this->_get_license_by_id( $first_install->license_id );
14337
  }
14338
 
14339
  $this->_admin_notices->remove_sticky( 'connect_account' );
@@ -14468,6 +16505,7 @@
14468
  fs_request_get( 'user_public_key' ),
14469
  fs_request_get( 'user_secret_key' ),
14470
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
14471
  $pending_sites_info['blog_ids'],
14472
  $pending_sites_info['license_key'],
14473
  $pending_sites_info['trial_plan_id']
@@ -14478,6 +16516,7 @@
14478
  fs_request_get( 'user_public_key' ),
14479
  fs_request_get( 'user_secret_key' ),
14480
  fs_request_get_bool( 'is_marketing_allowed', null ),
 
14481
  fs_request_get( 'install_id' ),
14482
  fs_request_get( 'install_public_key' ),
14483
  fs_request_get( 'install_secret_key' ),
@@ -14533,13 +16572,12 @@
14533
  * @param string $user_public_key
14534
  * @param string $user_secret_key
14535
  * @param bool|null $is_marketing_allowed
 
14536
  * @param number $install_id
14537
  * @param string $install_public_key
14538
  * @param string $install_secret_key
14539
  * @param bool $redirect
14540
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
14541
- * redirect (or return a URL) to the account page with a special parameter to
14542
- * trigger the auto installation processes.
14543
  *
14544
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
14545
  */
@@ -14548,6 +16586,7 @@
14548
  $user_public_key,
14549
  $user_secret_key,
14550
  $is_marketing_allowed,
 
14551
  $install_id,
14552
  $install_public_key,
14553
  $install_secret_key,
@@ -14589,6 +16628,10 @@
14589
  $this->disable_opt_in_notice_and_lock_user();
14590
  }
14591
 
 
 
 
 
14592
  return $this->setup_account(
14593
  $this->_user,
14594
  $this->_site,
@@ -14607,6 +16650,7 @@
14607
  * @param string $user_public_key
14608
  * @param string $user_secret_key
14609
  * @param bool|null $is_marketing_allowed
 
14610
  * @param array $site_ids
14611
  * @param bool $license_key
14612
  * @param bool $trial_plan_id
@@ -14619,6 +16663,7 @@
14619
  $user_public_key,
14620
  $user_secret_key,
14621
  $is_marketing_allowed,
 
14622
  $site_ids,
14623
  $license_key = false,
14624
  $trial_plan_id = false,
@@ -14630,6 +16675,10 @@
14630
  $this->disable_opt_in_notice_and_lock_user();
14631
  }
14632
 
 
 
 
 
14633
  $sites = array();
14634
  foreach ( $site_ids as $site_id ) {
14635
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
@@ -14648,11 +16697,10 @@
14648
  * @param string $user_public_key
14649
  * @param string $user_secret_key
14650
  * @param bool|null $is_marketing_allowed
 
14651
  * @param object[] $installs
14652
  * @param bool $redirect
14653
- * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will
14654
- * redirect (or return a URL) to the account page with a special parameter to
14655
- * trigger the auto installation processes.
14656
  *
14657
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
14658
  */
@@ -14661,6 +16709,7 @@
14661
  $user_public_key,
14662
  $user_secret_key,
14663
  $is_marketing_allowed,
 
14664
  array $installs,
14665
  $redirect = true,
14666
  $auto_install = false
@@ -14671,6 +16720,10 @@
14671
  $this->disable_opt_in_notice_and_lock_user();
14672
  }
14673
 
 
 
 
 
14674
  $install_ids = array();
14675
 
14676
  foreach ( $installs as $install ) {
@@ -14780,6 +16833,8 @@
14780
  */
14781
  $license_key = fs_request_get( 'license_secret_key' );
14782
 
 
 
14783
  $this->install_with_current_user( $license_key );
14784
  }
14785
  }
@@ -14824,7 +16879,7 @@
14824
  *
14825
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
14826
  */
14827
- private function install_with_user(
14828
  FS_User $user,
14829
  $license_key = false,
14830
  $trial_plan_id = false,
@@ -14913,6 +16968,10 @@
14913
 
14914
  if ( ! empty( $license_key ) ) {
14915
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
 
 
 
 
14916
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
14917
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
14918
  }
@@ -14934,7 +16993,7 @@
14934
  ! $this->is_api_result_object( $result, 'installs' )
14935
  ) {
14936
  if ( ! empty( $args['license_key'] ) ) {
14937
- // Pass full the fully entered license key to the failure handler.
14938
  $args['license_key'] = $license_key;
14939
  }
14940
 
@@ -14969,61 +17028,201 @@
14969
  return $result;
14970
  }
14971
 
14972
- /**
14973
- * Tries to activate add-on account based on parent plugin info.
14974
- *
14975
- * @author Vova Feldman (@svovaf)
14976
- * @since 1.0.6
14977
- *
14978
- * @param Freemius $parent_fs
14979
- */
14980
- private function _activate_addon_account( Freemius $parent_fs ) {
14981
- if ( $this->is_registered() ) {
14982
- // Already activated.
14983
- return;
14984
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14985
 
14986
- // Activate add-on with parent plugin credentials.
14987
- $addon_install = $parent_fs->get_api_site_scope()->call(
14988
- "/addons/{$this->_plugin->id}/installs.json",
14989
- 'post',
14990
- $this->get_install_data_for_api( array(
14991
- 'uid' => $this->get_anonymous_id(),
14992
- ), false, false )
14993
- );
14994
 
14995
- if ( isset( $addon_install->error ) ) {
14996
- $this->_admin_notices->add(
14997
- sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
14998
- $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $addon_install->error->message . '</b>',
14999
- $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
15000
- 'error'
15001
- );
15002
 
15003
- return;
15004
- }
15005
 
15006
- // Get user information based on parent's plugin.
15007
- $user = $parent_fs->get_user();
 
 
15008
 
15009
- // First of all, set site and user info - otherwise we won't
15010
- // be able to invoke API calls.
15011
- $this->_site = new FS_Site( $addon_install );
15012
- $this->_user = $user;
15013
 
15014
- // Sync add-on plans.
15015
- $this->_sync_plans();
15016
 
15017
- // Get site's current plan.
15018
- //$this->_site->plan = $this->_get_plan_by_id( $this->_site->plan->id );
15019
 
15020
- $this->_set_account( $user, $this->_site );
 
15021
 
15022
- // Sync licenses.
15023
- $this->_sync_licenses();
15024
 
15025
- // Try to activate premium license.
15026
- $this->_activate_license( true );
15027
  }
15028
 
15029
  /**
@@ -15140,6 +17339,8 @@
15140
  ! $this->is_registered()
15141
  );
15142
 
 
 
15143
  if ( ( ! $this->has_api_connectivity() && ! $this->is_enable_anonymous() ) ||
15144
  $should_hide_site_admin_settings
15145
  ) {
@@ -15169,7 +17370,7 @@
15169
  */
15170
  private function add_menu_action() {
15171
  if ( $this->is_activation_mode() ) {
15172
- if ( $this->is_plugin() || ( $this->has_settings_menu() && ! $this->is_free_wp_org_theme() ) ) {
15173
  $this->override_plugin_menu_with_activation();
15174
  } else {
15175
  /**
@@ -15191,7 +17392,7 @@
15191
  }
15192
  } else if (
15193
  fs_request_is_action( 'sync_user' ) &&
15194
- ( ! $this->has_settings_menu() || $this->is_free_wp_org_theme() )
15195
  ) {
15196
  $this->_handle_account_user_sync();
15197
  }
@@ -15346,12 +17547,18 @@
15346
  }
15347
 
15348
  if ( ! $this->_menu->has_menu() || $this->_menu->is_top_level() ) {
15349
- $this->_dynamically_added_top_level_page_hook_name = $this->_menu->add_page_and_update(
15350
- $this->get_plugin_name(),
15351
- $this->get_plugin_name(),
15352
- 'manage_options',
15353
- $this->_menu->has_menu() ? $this->_menu->get_slug() : $this->_slug
15354
- );
 
 
 
 
 
 
15355
  } else {
15356
  $this->_menu->add_subpage_and_update(
15357
  $this->_menu->get_parent_slug(),
@@ -15433,10 +17640,49 @@
15433
  // Didn't ask to hide the pricing page.
15434
  $this->is_page_visible( 'pricing' ) &&
15435
  // Don't have a valid active license or has more than one plan.
15436
- ( ! $this->is_paying() || ! $this->is_single_plan() )
15437
  );
15438
  }
15439
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15440
  /**
15441
  * Add default Freemius menu items.
15442
  *
@@ -15449,28 +17695,7 @@
15449
 
15450
  $is_activation_mode = $this->is_activation_mode();
15451
 
15452
- if ( $this->is_addon() ) {
15453
- // No submenu items for add-ons.
15454
- $add_submenu_items = false;
15455
- } else if ( $this->is_free_wp_org_theme() && ! fs_is_network_admin() ) {
15456
- // Also add submenu items when running in a free .org theme so the tabs will be visible.
15457
- $add_submenu_items = true;
15458
- } else if ( $is_activation_mode && ! $this->is_free_wp_org_theme() ) {
15459
- $add_submenu_items = false;
15460
- } else if ( fs_is_network_admin() ) {
15461
- /**
15462
- * Add submenu items to network level when plugin was network
15463
- * activated and the super-admin did NOT delegated the connection
15464
- * of all sites to site admins.
15465
- */
15466
- $add_submenu_items = (
15467
- $this->_is_network_active &&
15468
- ( WP_FS__SHOW_NETWORK_EVEN_WHEN_DELEGATED ||
15469
- ! $this->is_network_delegated_connection() )
15470
- );
15471
- } else {
15472
- $add_submenu_items = ( ! $this->_is_network_active || $this->is_delegated_connection() );
15473
- }
15474
 
15475
  if ( $add_submenu_items ) {
15476
  if ( $this->has_affiliate_program() ) {
@@ -15519,17 +17744,19 @@
15519
  }
15520
 
15521
  if ( $add_submenu_items ) {
15522
- // Add contact page.
15523
- $this->add_submenu_item(
15524
- $this->get_text_inline( 'Contact Us', 'contact-us' ),
15525
- array( &$this, '_contact_page_render' ),
15526
- $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
15527
- 'manage_options',
15528
- 'contact',
15529
- 'Freemius::_clean_admin_content_section',
15530
- WP_FS__DEFAULT_PRIORITY,
15531
- $this->is_submenu_item_visible( 'contact' )
15532
- );
 
 
15533
 
15534
  if ( $this->has_addons() ) {
15535
  $this->add_submenu_item(
@@ -15548,7 +17775,7 @@
15548
  if ( $add_submenu_items ||
15549
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
15550
  ) {
15551
- if ( ! WP_FS__DEMO_MODE ) {
15552
  $show_pricing = (
15553
  $this->is_submenu_item_visible( 'pricing' ) &&
15554
  $this->is_pricing_page_visible()
@@ -15913,6 +18140,24 @@
15913
 
15914
  #endregion ------------------------------------------------------------------
15915
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15916
 
15917
  #--------------------------------------------------------------------------------
15918
  #region Actions / Hooks / Filters
@@ -16289,37 +18534,44 @@
16289
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
16290
  $this->_logger->entrance();
16291
 
16292
- if ( empty( $this->_site->id ) ) {
 
 
 
 
16293
  $this->_logger->error( "Empty install ID, can't store site." );
16294
 
16295
  return;
16296
  }
16297
 
16298
- $site_clone = is_object( $site ) ? $site : $this->_site;
16299
- $encrypted_site = clone $site_clone;
16300
 
16301
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
16302
 
16303
- $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
 
16304
 
16305
- if ( empty( $prev_stored_user_id ) &&
16306
- $this->_user->id != $this->_site->user_id
16307
- ) {
16308
- /**
16309
- * Store the current user ID as the previous user ID so that the previous user can be used
16310
- * as the install's owner while the new owner's details are not yet available.
16311
- *
16312
- * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
16313
- * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
16314
- * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
16315
- * into `replica`.
16316
- *
16317
- * @author Leo Fajardo (@leorw)
16318
- */
16319
- $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
 
 
 
16320
  }
16321
 
16322
- $sites[ $this->_slug ] = $encrypted_site;
16323
 
16324
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
16325
  }
@@ -16497,28 +18749,191 @@
16497
  return false;
16498
  }
16499
 
16500
- unset( $all_addons[ $this->_plugin->id ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16501
 
16502
- self::$_accounts->set_option( 'account_addons', $all_addons, $store );
16503
 
16504
- return true;
16505
- }
 
 
 
 
 
16506
 
16507
- /**
16508
- * Update account add-ons list.
16509
- *
16510
- * @author Vova Feldman (@svovaf)
16511
- * @since 1.0.6
16512
- *
16513
- * @param FS_Plugin[] $addons
16514
- * @param bool $store Flush to Database if true.
16515
- */
16516
- private function _store_account_addons( $addons, $store = true ) {
16517
- $this->_logger->entrance();
16518
 
16519
- $all_addons = self::get_all_account_addons();
16520
- $all_addons[ $this->_plugin->id ] = $addons;
16521
- self::$_accounts->set_option( 'account_addons', $all_addons, $store );
16522
  }
16523
 
16524
  /**
@@ -16615,7 +19030,9 @@
16615
  $api = $this->get_api_site_scope();
16616
 
16617
  if ( ! is_numeric( $license_id ) ) {
16618
- $license_id = $this->_license->id;
 
 
16619
  }
16620
 
16621
  $result = $api->get( "/licenses/{$license_id}/subscriptions.json", true );
@@ -16722,7 +19139,7 @@
16722
  $plugin_id = $this->_plugin->id;
16723
  }
16724
 
16725
- $user_licenses_endpoint = "/plugins/{$plugin_id}/licenses.json";
16726
  if ( ! empty ( $foreign_licenses ) ) {
16727
  $foreign_licenses = array(
16728
  // Prefix with `+` to tell the server to include foreign licenses in the licenses collection.
@@ -16771,7 +19188,7 @@
16771
 
16772
  if ( is_numeric( $site_license_id ) ) {
16773
  // Try to retrieve a foreign license that is linked to the install.
16774
- $api_result = $api->call( '/licenses.json' );
16775
 
16776
  if ( $this->is_api_result_object( $api_result, 'licenses' ) &&
16777
  is_array( $api_result->licenses )
@@ -16784,7 +19201,17 @@
16784
  } else {
16785
  $api_errors[] = $api_result;
16786
  }
16787
- } else if ( is_object( $this->_license ) ) {
 
 
 
 
 
 
 
 
 
 
16788
  $is_license_in_result = false;
16789
  if ( ! empty( $result ) ) {
16790
  foreach ( $result as $license ) {
@@ -16798,7 +19225,7 @@
16798
  if ( ! $is_license_in_result ) {
16799
  // Fetch foreign license by ID and license key.
16800
  $license = $api->get( "/licenses/{$this->_license->id}.json?license_key=" .
16801
- urlencode( $this->_license->secret_key ) );
16802
 
16803
  if ( $this->is_api_result_entity( $license ) ) {
16804
  $result[] = new FS_Plugin_License( $license );
@@ -16867,7 +19294,15 @@
16867
  $plugin_id = $this->_plugin->id;
16868
  }
16869
 
16870
- $result = $api->get( "/plugins/{$plugin_id}/payments.json?include_addons=true", $flush );
 
 
 
 
 
 
 
 
16871
 
16872
  if ( ! isset( $result->error ) ) {
16873
  for ( $i = 0, $len = count( $result->payments ); $i < $len; $i ++ ) {
@@ -16937,15 +19372,24 @@
16937
  return false;
16938
  }
16939
 
 
 
16940
  // Check if version is actually newer.
16941
  $has_new_version =
16942
  // If it's an non-installed add-on then always return latest.
16943
  ( $this->_is_addon_id( $plugin_id ) && ! $this->is_addon_activated( $plugin_id ) ) ||
16944
  // Compare versions.
16945
- version_compare( $this->get_plugin_version(), $latest_tag->version, '<' );
16946
 
16947
  $this->_logger->departure( $has_new_version ? 'Found newer plugin version ' . $latest_tag->version : 'No new version' );
16948
 
 
 
 
 
 
 
 
16949
  return $has_new_version ? $latest_tag : false;
16950
  }
16951
 
@@ -16999,6 +19443,88 @@
16999
  return self::is_active_valid_license( $this->_license );
17000
  }
17001
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17002
  /**
17003
  * Check if a given license is active & valid (not expired).
17004
  *
@@ -17156,9 +19682,19 @@
17156
  if ( $this->is_addon_activated( $addon_id ) ) {
17157
  // If already installed, use add-on sync.
17158
  $fs_addon = self::get_instance_by_id( $addon_id );
17159
- $fs_addon->_sync_license( $background );
17160
 
17161
- return;
 
 
 
 
 
 
 
 
 
 
 
17162
  }
17163
 
17164
  // Validate add-on exists.
@@ -17287,9 +19823,12 @@
17287
  if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
17288
  self::$_global_admin_notices->add(
17289
  sprintf(
17290
- $this->get_text_x_inline( 'Your server is blocking the access to Freemius\' API, which is crucial for %1s synchronization. Please contact your host to whitelist %2s', '%1s - plugin title, %2s - API domain', 'server-blocking-access' ),
17291
  $this->get_plugin_name(),
17292
- '<a href="' . $api->get_url() . '" target="_blank">' . $api->get_url() . '</a>'
 
 
 
17293
  ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
17294
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17295
  'error',
@@ -17300,7 +19839,7 @@
17300
  } else {
17301
  // Authentication params are broken.
17302
  $this->_admin_notices->add(
17303
- $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ),
17304
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17305
  'error'
17306
  );
@@ -17452,7 +19991,7 @@
17452
  $this->_store_licenses();
17453
 
17454
  $plan_change = $is_free ?
17455
- 'upgraded' :
17456
  ( is_object( $new_license ) ?
17457
  'changed' :
17458
  'downgraded' );
@@ -17467,12 +20006,32 @@
17467
  $this->get_network_install_blog_id()
17468
  );
17469
  } else {
17470
- if ( is_object( $this->_license ) && $this->_license->is_expired() ) {
17471
- if ( ! $this->has_features_enabled_license() ) {
17472
- $this->_deactivate_license();
17473
- $plan_change = 'downgraded';
17474
- } else {
17475
- $plan_change = 'expired';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17476
  }
17477
  }
17478
 
@@ -17480,11 +20039,23 @@
17480
  $this->_sync_site_subscription( $this->_license );
17481
  }
17482
  }
 
 
 
 
 
 
 
 
 
 
 
 
17483
  }
17484
 
17485
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
17486
 
17487
- if ( $this->has_paid_plan() ) {
17488
  switch ( $plan_change ) {
17489
  case 'none':
17490
  if ( ! $background && is_admin() ) {
@@ -17513,11 +20084,12 @@
17513
  }
17514
  break;
17515
  case 'upgraded':
 
17516
  $this->_admin_notices->add_sticky(
17517
- sprintf(
17518
- $this->get_text_inline( 'Your plan was successfully upgraded.', 'plan-upgraded-message' ),
17519
- '<i>' . $this->get_plugin_name() . '</i>'
17520
- ) . $this->get_complete_upgrade_instructions(),
17521
  'plan_upgraded',
17522
  $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
17523
  );
@@ -17576,6 +20148,9 @@
17576
  'license_expired',
17577
  $hmm_text
17578
  );
 
 
 
17579
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
17580
  break;
17581
  case 'trial_started':
@@ -17630,24 +20205,27 @@
17630
  * @author Vova Feldman (@svovaf)
17631
  * @since 1.0.5
17632
  *
17633
- * @param bool $background
 
17634
  */
17635
- protected function _activate_license( $background = false ) {
17636
  $this->_logger->entrance();
17637
 
17638
- $license_id = fs_request_get( 'license_id' );
 
17639
 
17640
- if ( is_object( $this->_site ) &&
17641
- FS_Plugin_License::is_valid_id( $license_id ) &&
17642
- $license_id == $this->_site->license_id
17643
- ) {
17644
- // License is already activated.
17645
- return;
17646
- }
17647
 
17648
- $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
17649
- $this->_get_license_by_id( $license_id ) :
17650
- $this->_get_available_premium_license();
 
17651
 
17652
  if ( ! is_object( $premium_license ) ) {
17653
  return;
@@ -17696,7 +20274,7 @@
17696
  }
17697
 
17698
  $api = $this->get_api_site_scope();
17699
- $license = $api->call( "/licenses/{$premium_license->id}.json", 'put', $api_request_params );
17700
 
17701
  if ( ! $this->is_api_result_entity( $license ) ) {
17702
  if ( ! $background ) {
@@ -17730,6 +20308,18 @@
17730
 
17731
  $this->_store_account();
17732
 
 
 
 
 
 
 
 
 
 
 
 
 
17733
  if ( ! $background ) {
17734
  $this->_admin_notices->add_sticky(
17735
  $this->get_text_inline( 'Your license was successfully activated.', 'license-activated-message' ) .
@@ -17810,7 +20400,11 @@
17810
 
17811
  if ( $show_notice ) {
17812
  $this->_admin_notices->add(
17813
- sprintf( $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ), $this->get_plan_title() ),
 
 
 
 
17814
  $this->get_text_inline( 'O.K', 'ok' )
17815
  );
17816
  }
@@ -18132,6 +20726,8 @@
18132
 
18133
  if ( $this->has_secret_key() ) {
18134
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
 
 
18135
  }
18136
 
18137
  return $endpoint;
@@ -18288,9 +20884,16 @@
18288
  function _get_invoice_api_url( $payment_id = false ) {
18289
  $this->_logger->entrance();
18290
 
18291
- return $this->get_api_user_scope()->get_signed_url(
18292
  "/payments/{$payment_id}/invoice.pdf"
18293
  );
 
 
 
 
 
 
 
18294
  }
18295
 
18296
  /**
@@ -18336,7 +20939,7 @@
18336
  $this->get_parent_instance() :
18337
  $this;
18338
 
18339
- return $fs->get_account_url( 'download_latest', $params );
18340
  }
18341
 
18342
  #endregion Download Plugin ------------------------------------------------------------------
@@ -18414,7 +21017,7 @@
18414
 
18415
  $api = $this->get_api_site_or_plugin_scope();
18416
 
18417
- $path = $this->add_show_pending( '/addons.json?enriched=true' );
18418
 
18419
  /**
18420
  * @since 1.2.1
@@ -18425,7 +21028,9 @@
18425
  if ( ! $flush && $api->is_cached( $path ) ) {
18426
  $addons = self::get_all_addons();
18427
 
18428
- return $addons[ $this->_plugin->id ];
 
 
18429
  }
18430
 
18431
  $result = $api->get( $path, $flush );
@@ -18606,6 +21211,39 @@
18606
  return true;
18607
  }
18608
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18609
  /**
18610
  * Handle user name update.
18611
  *
@@ -18661,7 +21299,7 @@
18661
  if ( ! isset( $result->error ) ) {
18662
  $this->_admin_notices->add( sprintf(
18663
  $this->get_text_inline( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'verification-email-sent-message' ),
18664
- sprintf( '<a href="mailto:%1s">%2s</a>', esc_url( $this->_user->email ), $this->_user->email )
18665
  ) );
18666
  } else {
18667
  // handle different error cases.
@@ -18719,14 +21357,16 @@
18719
  * @return string
18720
  */
18721
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
18722
- if ( $this->is_free_wp_org_theme() &&
18723
  ( fs_request_has( 'pending_activation' ) ||
18724
  // For cases when the first time path is set, even though it's a WP.org theme.
18725
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
18726
  ) {
18727
  $first_time_path = '';
18728
  } else {
18729
- $first_time_path = $this->_menu->get_first_time_path();
 
 
18730
  }
18731
 
18732
  if ( $this->_is_network_active &&
@@ -18772,8 +21412,9 @@
18772
  // Alias.
18773
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
18774
 
18775
- $is_network_action = $this->is_network_level_action();
18776
- $blog_id = $this->is_network_level_site_specific_action();
 
18777
 
18778
  if ( is_numeric( $blog_id ) ) {
18779
  $this->switch_to_blog( $blog_id );
@@ -18785,7 +21426,7 @@
18785
  case 'opt_in':
18786
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
18787
 
18788
- if ( $plugin_id == $this->get_id() ) {
18789
  if ( $is_network_action && ! empty( $blog_id ) ) {
18790
  if ( ! $this->is_registered() ) {
18791
  $this->install_with_user(
@@ -18808,7 +21449,7 @@
18808
  case 'toggle_tracking':
18809
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
18810
 
18811
- if ( $plugin_id == $this->get_id() ) {
18812
  if ( $is_network_action && ! empty( $blog_id ) ) {
18813
  if ( $this->is_registered() ) {
18814
  if ( $this->is_tracking_prohibited() ) {
@@ -18843,8 +21484,20 @@
18843
  case 'delete_account':
18844
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
18845
 
18846
- if ( $plugin_id == $this->get_id() ) {
18847
- if ( $is_network_action && empty( $blog_id ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
18848
  $this->delete_network_account_event();
18849
  } else {
18850
  $this->delete_account_event();
@@ -18860,7 +21513,12 @@
18860
  } else {
18861
  if ( $this->is_addon_activated( $plugin_id ) ) {
18862
  $fs_addon = self::get_instance_by_id( $plugin_id );
18863
- $fs_addon->delete_account_event();
 
 
 
 
 
18864
 
18865
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
18866
  }
@@ -19371,7 +22029,8 @@
19371
  $user->id,
19372
  $user->public_key,
19373
  ! $this->is_live(),
19374
- $user->secret_key
 
19375
  );
19376
  }
19377
 
@@ -19399,7 +22058,8 @@
19399
  $user->id,
19400
  $user->public_key,
19401
  ! $this->is_live(),
19402
- $user->secret_key
 
19403
  );
19404
 
19405
  return $this->_user_api;
@@ -19424,7 +22084,8 @@
19424
  $this->_site->id,
19425
  $this->_site->public_key,
19426
  ! $this->is_live(),
19427
- $this->_site->secret_key
 
19428
  );
19429
  }
19430
 
@@ -19448,13 +22109,35 @@
19448
  'plugin',
19449
  $this->_plugin->id,
19450
  $this->_plugin->public_key,
19451
- ! $this->is_live()
 
 
19452
  );
19453
  }
19454
 
19455
  return $this->_plugin_api;
19456
  }
19457
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19458
  /**
19459
  * Get site API scope object (fallback to public plugin scope when not registered).
19460
  *
@@ -19488,6 +22171,10 @@
19488
  $plans = array( $plans );
19489
  }
19490
 
 
 
 
 
19491
  $this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans );
19492
  }
19493
 
@@ -19784,7 +22471,7 @@
19784
  function _show_theme_activation_optin_dialog() {
19785
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
19786
 
19787
- add_action( 'admin_footer-themes.php', array( &$this, '_add_fs_theme_activation_dialog' ) );
19788
  }
19789
 
19790
  /**
@@ -19792,6 +22479,12 @@
19792
  * @since 1.2.2
19793
  */
19794
  function _add_fs_theme_activation_dialog() {
 
 
 
 
 
 
19795
  $vars = array( 'id' => $this->_module_id );
19796
  fs_require_once_template( 'connect.php', $vars );
19797
  }
@@ -19865,7 +22558,33 @@
19865
  function _add_upgrade_action_link() {
19866
  $this->_logger->entrance();
19867
 
19868
- if ( ! $this->is_paying() && $this->has_paid_plan() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19869
  $this->add_plugin_action_link(
19870
  $this->get_text_inline( 'Upgrade', 'upgrade' ),
19871
  $this->get_upgrade_url(),
@@ -19875,7 +22594,11 @@
19875
  );
19876
  }
19877
 
19878
- if ( $this->has_addons() ) {
 
 
 
 
19879
  $this->add_plugin_action_link(
19880
  $this->get_text_inline( 'Add-Ons', 'add-ons' ),
19881
  $this->_get_admin_page_url( 'addons' ),
@@ -19926,7 +22649,7 @@
19926
  }
19927
 
19928
  /**
19929
- * Adds "Opt in" or "Opt out" link to the main "Plugins" page link actions collection.
19930
  *
19931
  * @author Leo Fajardo (@leorw)
19932
  * @since 1.2.1.5
@@ -19939,14 +22662,34 @@
19939
  $this->_logger->entrance();
19940
 
19941
  /**
19942
- * If the activation has been delegated to site admins, no tracking-related actions for now.
19943
- *
19944
- * @author Leo Fajardo (@leorw)
19945
  */
19946
- if ( $this->_is_network_active && $this->is_network_delegated_connection() ) {
 
 
 
 
 
 
19947
  return;
19948
  }
19949
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19950
  if ( fs_request_is_action_secure( $this->get_unique_affix() . '_reconnect' ) ) {
19951
  if ( ! $this->is_registered() && $this->is_anonymous() ) {
19952
  $this->connect_again();
@@ -19962,14 +22705,16 @@
19962
  return;
19963
  }
19964
 
19965
- if ( ! $this->is_enable_anonymous() ) {
19966
- // Don't allow to opt-out if anonymous mode is disabled.
19967
- return;
19968
- }
 
19969
 
19970
- if ( ! $this->is_free_plan() ) {
19971
- // Don't allow to opt-out if running in paid plan.
19972
- return;
 
19973
  }
19974
 
19975
  if ( $this->add_ajax_action( 'stop_tracking', array( &$this, '_stop_tracking_callback' ) ) ) {
@@ -19980,7 +22725,12 @@
19980
  return;
19981
  }
19982
 
19983
- $url = '#';
 
 
 
 
 
19984
 
19985
  if ( $this->is_registered() ) {
19986
  if ( $this->is_tracking_allowed() ) {
@@ -19988,9 +22738,10 @@
19988
  } else {
19989
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
19990
  }
19991
-
19992
- add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
19993
- } else {
 
19994
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
19995
 
19996
  $params = ! $this->is_anonymous() ?
@@ -20003,7 +22754,9 @@
20003
  $url = $this->get_activation_url( $params );
20004
  }
20005
 
20006
- if ( $this->is_plugin() && self::is_plugins_page() ) {
 
 
20007
  $this->add_plugin_action_link(
20008
  $link_text_id,
20009
  $url,
@@ -20026,7 +22779,9 @@
20026
  $url = false;
20027
 
20028
  if ( ! $this->is_addon() || ! $this->has_free_plan() ) {
20029
- $first_time_path = $this->_menu->get_first_time_path();
 
 
20030
 
20031
  if ( $this->is_activation_mode() ) {
20032
  $url = $this->get_activation_url();
@@ -20214,8 +22969,8 @@
20214
  $premium_plugin_basename = $this->premium_plugin_basename();
20215
 
20216
  return sprintf(
20217
- /* translators: %1s: Product title; %2s: Plan title */
20218
- $this->get_text_inline( ' The paid version of %1s is already installed. Please activate it to start benefiting the %2s features. %3s', 'activate-premium-version' ),
20219
  sprintf( '<em>%s</em>', esc_html( $this->get_plugin_title() ) ),
20220
  $plan_title,
20221
  sprintf(
@@ -20245,7 +23000,7 @@
20245
  ) ),
20246
  $deactivation_step,
20247
  $this->get_text_inline( 'Upload and activate the downloaded version', 'upload-and-activate' ),
20248
- '//bit.ly/upload-wp-' . $this->_module_type . 's',
20249
  $this->get_text_inline( 'How to upload and activate?', 'howto-upload-activate' )
20250
  );
20251
  }
@@ -20690,7 +23445,7 @@
20690
  function _tabs_capture() {
20691
  $this->_logger->entrance();
20692
 
20693
- if ( ! $this->is_theme_settings_page() ||
20694
  ! $this->is_matching_url( $this->main_menu_url() )
20695
  ) {
20696
  return;
@@ -20745,7 +23500,7 @@
20745
  function _store_tabs_styles() {
20746
  $this->_logger->entrance();
20747
 
20748
- if ( ! $this->is_theme_settings_page() ||
20749
  ! $this->is_matching_url( $this->main_menu_url() )
20750
  ) {
20751
  return;
@@ -20819,18 +23574,23 @@
20819
  return false;
20820
  }
20821
 
20822
- if ( ! $this->is_theme() ) {
20823
  // Only add tabs to themes for now.
20824
  return false;
20825
  }
20826
 
20827
- if ( ! $this->has_paid_plan() && ! $this->has_addons() ) {
20828
  // Only add tabs to monetizing themes.
20829
  return false;
20830
  }
20831
 
20832
- if ( ! $this->is_theme_settings_page() ) {
20833
- // Only add tabs if browsing one of the theme's setting pages.
 
 
 
 
 
20834
  return false;
20835
  }
20836
 
@@ -21228,7 +23988,9 @@
21228
  'plugin',
21229
  $user_plugin->id,
21230
  $user_plugin->public_key,
21231
- ! $user_plugin->is_live
 
 
21232
  );
21233
 
21234
  $addons_result = $plugin_api->get( '/addons.json?enriched=true', true );
@@ -21318,7 +24080,7 @@
21318
  '%s %s %s',
21319
  $thank_you,
21320
  $already_opted_in,
21321
- sprintf($this->get_text_inline( 'Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard 🙂', 'due-to-gdpr-compliance-requirements' ), '<a href="https://eugdpr.org/" target="_blank" rel="noopener noreferrer">', '</a>') .
21322
  '<br><br>' .
21323
  '<b>' . $this->get_text_inline( "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:", 'contact-for-updates' ) . '</b>' .
21324
  $actions .
@@ -21515,8 +24277,8 @@
21515
  }
21516
 
21517
  $modules = array_merge(
21518
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
21519
- array_values( self::$_accounts->get_option( 'themes', array() ) )
21520
  );
21521
 
21522
  foreach ( $modules as $module ) {
@@ -21621,10 +24383,45 @@
21621
  *
21622
  * @author Vova Feldman (@svovaf)
21623
  */
21624
- self::shoot_ajax_success( array( 'is_marketing_allowed' => null ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21625
  }
21626
 
21627
- self::shoot_ajax_success( array( 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed ) );
21628
  }
21629
 
21630
  /**
@@ -21660,8 +24457,8 @@
21660
  }
21661
 
21662
  $modules = array_merge(
21663
- array_values( self::$_accounts->get_option( 'plugins', array() ) ),
21664
- array_values( self::$_accounts->get_option( 'themes', array() ) )
21665
  );
21666
 
21667
  foreach ( $modules as $key => $module ) {
164
  */
165
  private $_has_addons;
166
 
167
+ /**
168
+ * @since 2.4.5
169
+ * @var string Navigation type: 'menu' or 'tabs'.
170
+ */
171
+ private $_navigation;
172
+
173
+ const NAVIGATION_MENU = 'menu';
174
+ const NAVIGATION_TABS = 'tabs';
175
+
176
  /**
177
  * @since 1.1.6
178
  * @var string[]bool.
343
  */
344
  private $_dynamically_added_top_level_page_hook_name = '';
345
 
346
+ /**
347
+ * @author Leo Fajardo (@leorw)
348
+ * @since 2.3.1
349
+ *
350
+ * @var bool
351
+ */
352
+ private $is_whitelabeled;
353
+
354
  #region Uninstall Reasons IDs
355
 
356
  const REASON_NO_LONGER_NEEDED = 1;
416
  $this->_is_multisite_integrated &&
417
  // Themes are always network activated, but the ACTUAL activation is per site.
418
  $this->is_plugin() &&
419
+ (
420
+ is_plugin_active_for_network( $this->_plugin_basename ) ||
421
+ // Plugin network level activation or uninstall.
422
+ ( fs_is_network_admin() && is_plugin_inactive( $this->_plugin_basename ) )
423
+ )
424
  );
425
 
426
  $this->_storage->set_network_active(
428
  $this->is_delegated_connection()
429
  );
430
 
431
+ if ( ! isset( $this->_storage->is_network_activated ) ) {
432
+ $this->_storage->is_network_activated = $this->_is_network_active;
433
+ }
434
+
435
+ if ( $this->_storage->is_network_activated != $this->_is_network_active ) {
436
+ // Update last activation level.
437
+ $this->_storage->is_network_activated = $this->_is_network_active;
438
+
439
+ $this->maybe_adjust_storage();
440
+ }
441
+
442
  #region Migration
443
 
444
  if ( is_multisite() ) {
501
  );
502
 
503
  if ( 'true' === fs_request_get( 'fs_clear_api_cache' ) ||
504
+ fs_request_is_action( 'restart_freemius' )
505
  ) {
506
  FS_Api::clear_cache();
507
  $this->_cache->clear();
508
  }
509
 
510
+ $this->register_constructor_hooks();
511
 
512
  /**
513
  * Starting from version 2.0.0, `FS_Site` entities no longer have the `plan` property and have `plan_id`
523
  $this->_version_updates_handler();
524
  }
525
 
526
+ /**
527
+ * @author Leo Fajardo (@leorw)
528
+ * @since 2.3.0
529
+ */
530
+ private function maybe_adjust_storage() {
531
+ $install_timestamp = null;
532
+ $prev_is_premium = null;
533
+
534
+ $options_to_update = array();
535
+
536
+ $is_network_admin = fs_is_network_admin();
537
+
538
+ $network_install_timestamp = $this->_storage->get( 'install_timestamp', null, true );
539
+
540
+ if ( ! $is_network_admin ) {
541
+ if ( is_null( $network_install_timestamp ) ) {
542
+ // Plugin was not network-activated before.
543
+ return;
544
+ }
545
+
546
+ if ( is_null( $this->_storage->get( 'install_timestamp', null, false ) ) ) {
547
+ // Set the `install_timestamp` only if it's not yet set.
548
+ $install_timestamp = $network_install_timestamp;
549
+ }
550
+
551
+ $prev_is_premium = $this->_storage->get( 'prev_is_premium', null, true );
552
+ } else {
553
+ $current_wp_user = self::_get_current_wp_user();
554
+ $current_fs_user = self::_get_user_by_email( $current_wp_user->user_email );
555
+ $network_user_info = array();
556
+
557
+ $skips_count = 0;
558
+
559
+ $sites = self::get_sites();
560
+ $sites_count = count( $sites );
561
+
562
+ $blog_id_2_install_map = array();
563
+
564
+ $is_first_non_ignored_blog = true;
565
+
566
+ foreach ( $sites as $site ) {
567
+ $blog_id = self::get_site_blog_id( $site );
568
+
569
+ $blog_install_timestamp = $this->_storage->get( 'install_timestamp', null, $blog_id );
570
+
571
+ if ( is_null( $blog_install_timestamp ) ) {
572
+ // Plugin has not been installed on this blog.
573
+ continue;
574
+ }
575
+
576
+ $is_earlier_install = (
577
+ ! is_null( $install_timestamp ) &&
578
+ $blog_install_timestamp < $install_timestamp
579
+ );
580
+
581
+ $install = $this->get_install_by_blog_id( $blog_id );
582
+
583
+ $update_network_user_info = false;
584
+
585
+ if ( ! is_object( $install ) ) {
586
+ if ( ! $this->_storage->get( 'is_anonymous', false, $blog_id ) ) {
587
+ // The opt-in decision (whether to skip or opt in) is yet to be made.
588
+ continue;
589
+ }
590
+
591
+ $skips_count ++;
592
+ } else {
593
+ $blog_id_2_install_map[ $blog_id ] = $install;
594
+
595
+ if ( empty( $network_user_info ) ) {
596
+ // Set the network user info for the 1st time. Choose any user information whether or not it is for the current WP user.
597
+ $update_network_user_info = true;
598
+ }
599
+
600
+ if ( ! $update_network_user_info &&
601
+ is_object( $current_fs_user ) &&
602
+ $network_user_info['user_id'] != $current_fs_user->id &&
603
+ $install->user_id == $current_fs_user->id
604
+ ) {
605
+ // If an install that is owned by the current WP user is found, use its user information instead.
606
+ $update_network_user_info = true;
607
+ }
608
+
609
+ if ( ! $update_network_user_info &&
610
+ $is_earlier_install &&
611
+ ( ! is_object( $current_fs_user ) || $current_fs_user->id == $install->user_id )
612
+ ) {
613
+ // Update to the earliest install info if there's no install found so far that is owned by the current WP user; OR only if the found install is owned by the current WP user.
614
+ $update_network_user_info = true;
615
+ }
616
+ }
617
+
618
+ if ( $update_network_user_info ) {
619
+ $network_user_info = array(
620
+ 'user_id' => $install->user_id,
621
+ 'blog_id' => $blog_id
622
+ );
623
+ }
624
+
625
+ $site_prev_is_premium = $this->_storage->get( 'prev_is_premium', null, $blog_id );
626
+
627
+ if ( $is_first_non_ignored_blog ) {
628
+ $prev_is_premium = $site_prev_is_premium;
629
+
630
+ if ( is_null( $network_install_timestamp ) ) {
631
+ $install_timestamp = $blog_install_timestamp;
632
+ }
633
+
634
+ $is_first_non_ignored_blog = false;
635
+
636
+ continue;
637
+ }
638
+
639
+ if ( ! is_null( $prev_is_premium ) && $prev_is_premium !== $site_prev_is_premium ) {
640
+ // If a different `$site_prev_is_premium` value is found, do not include the option in the collection of options to update.
641
+ $prev_is_premium = null;
642
+ }
643
+
644
+ if ( $is_earlier_install ) {
645
+ // If an earlier install timestamp is found.
646
+ $install_timestamp = $blog_install_timestamp;
647
+ }
648
+ }
649
+
650
+ $installs_count = count( $blog_id_2_install_map );
651
+
652
+ if ( $sites_count === ( $installs_count + $skips_count ) ) {
653
+ if ( ! empty( $network_user_info ) ) {
654
+ $options_to_update['network_user_id'] = $network_user_info['user_id'];
655
+ $options_to_update['network_install_blog_id'] = $network_user_info['blog_id'];
656
+
657
+ foreach ( $blog_id_2_install_map as $blog_id => $install ) {
658
+ if ( $install->user_id == $network_user_info['user_id'] ) {
659
+ continue;
660
+ }
661
+
662
+ $this->_storage->store( 'is_delegated_connection', true, $blog_id );
663
+ }
664
+ }
665
+
666
+ if ( $sites_count === $skips_count ) {
667
+ /**
668
+ * Assume network-level skipping as the intended action if all actions identified were only
669
+ * skipping of the connection (i.e., no opt-ins and delegated connections so far).
670
+ */
671
+ $options_to_update['is_anonymous_ms'] = true;
672
+ } else if ( $sites_count === $installs_count ) {
673
+ /**
674
+ * Assume network-level opt-in as the intended action if all actions identified were only opt-ins
675
+ * (i.e., no delegation and skipping of the connections so far).
676
+ */
677
+ $options_to_update['is_network_connected'] = true;
678
+ }
679
+ }
680
+ }
681
+
682
+ if ( ! is_null( $install_timestamp ) ) {
683
+ $options_to_update['install_timestamp'] = $install_timestamp;
684
+ }
685
+
686
+ if ( ! is_null( $prev_is_premium ) ) {
687
+ $options_to_update['prev_is_premium'] = $prev_is_premium;
688
+ }
689
+
690
+ if ( ! empty( $options_to_update ) ) {
691
+ $this->adjust_storage( $options_to_update, $is_network_admin );
692
+ }
693
+ }
694
+
695
+ /**
696
+ * @author Leo Fajardo (@leorw)
697
+ * @since 2.3.0
698
+ *
699
+ * @param array $options
700
+ * @param bool $is_network_admin
701
+ */
702
+ private function adjust_storage( $options, $is_network_admin ) {
703
+ foreach ( $options as $name => $value ) {
704
+ $this->_storage->store( $name, $value, $is_network_admin ? true : null );
705
+ }
706
+ }
707
+
708
  /**
709
  * Checks whether this module has a settings menu.
710
  *
719
  $this->_menu->has_menu();
720
  }
721
 
722
+ /**
723
+ * If `true` the opt-in should be shown as a modal dialog box on the themes.php page. WordPress.org themes guidelines prohibit from redirecting the user from the themes.php page after activating a theme.
724
+ *
725
+ * @author Vova Feldman (@svovaf)
726
+ * @since 2.4.5
727
+ *
728
+ * @return bool
729
+ */
730
+ function show_opt_in_on_themes_page() {
731
+ if ( ! $this->is_free_wp_org_theme() ) {
732
+ return false;
733
+ }
734
+
735
+ if ( ! $this->has_settings_menu() ) {
736
+ return true;
737
+ }
738
+
739
+ return $this->show_settings_with_tabs();
740
+ }
741
+
742
+ /**
743
+ * If `true` the opt-in should be shown on the product's main setting page.
744
+ *
745
+ * @author Vova Feldman (@svovaf)
746
+ * @since 2.4.5
747
+ *
748
+ * @return bool
749
+ *
750
+ * @uses show_opt_in_on_themes_page();
751
+ */
752
+ function show_opt_in_on_setting_page() {
753
+ return ! $this->show_opt_in_on_themes_page();
754
+ }
755
+
756
+ /**
757
+ * If `true` the settings should be shown using tabs.
758
+ *
759
+ * @author Vova Feldman (@svovaf)
760
+ * @since 2.4.5
761
+ *
762
+ * @return bool
763
+ */
764
+ function show_settings_with_tabs() {
765
+ return ( self::NAVIGATION_TABS === $this->_navigation );
766
+ }
767
+
768
  /**
769
  * Check if the context module is free wp.org theme.
770
  *
797
  * @since 1.2.2.7 Even if the menu item was specified to be hidden, when it is the context page, then show the submenu item so the user will have the right context page.
798
  *
799
  * @param string $slug
800
+ * @param bool $is_tabs_visibility_check This is used to decide if the associated tab should be shown or hidden.
 
801
  *
802
  * @return bool
803
  */
804
+ function is_submenu_item_visible( $slug, $is_tabs_visibility_check = false ) {
805
  if ( $this->is_admin_page( $slug ) ) {
806
  /**
807
  * It is the current context page, so show the submenu item
816
  return false;
817
  }
818
 
819
+ if ( ! $is_tabs_visibility_check && $this->show_settings_with_tabs() ) {
820
  /**
821
  * wp.org themes are limited to a single submenu item, and
822
  * sub-submenu items are most likely not allowed (never verified).
1042
  }
1043
 
1044
  if ( isset( $this->_storage->subscription ) && is_object( $this->_storage->subscription ) ) {
1045
+ $this->_storage->subscriptions = array( fs_get_entity( $this->_storage->subscription, FS_Subscription::get_class_name() ) );
1046
  }
1047
  }
1048
 
1515
  * @author Vova Feldman (@svovaf)
1516
  * @since 1.0.9
1517
  */
1518
+ private function register_constructor_hooks() {
1519
  $this->_logger->entrance();
1520
 
1521
  if ( is_admin() ) {
1522
+ add_action( 'admin_init', array( &$this, '_hook_action_links_and_register_account_hooks' ) );
1523
 
1524
  if ( $this->is_plugin() ) {
1525
  if ( self::is_plugin_install_page() && true !== fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) {
1532
  add_filter( 'site_transient_update_plugins', array( 'Freemius', '_remove_fs_updates_from_plugin_install_page' ), 10, 2 );
1533
  } else if ( self::is_plugins_page() || self::is_updates_page() ) {
1534
  /**
1535
+ * On the "Plugins" and "Updates" admin pages, if there are premium or non–org-compliant plugins, modify their details dialog URLs (add a Freemius-specific param) so that the SDK can determine if the plugin information dialog should show information from Freemius.
 
 
1536
  *
1537
  * @author Leo Fajardo (@leorw)
1538
  * @since 2.2.3
1560
  } else {
1561
  add_action( 'after_switch_theme', array( &$this, '_activate_theme_event_hook' ), 10, 2 );
1562
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1563
  add_action( 'admin_footer', array( &$this, '_style_premium_theme' ) );
1564
  }
1565
 
1579
  *
1580
  * @author Vova Feldman (@svovaf)
1581
  */
1582
+ if ( $this->is_plugin() &&
1583
+ $this->is_activation_mode( false ) &&
1584
+ 0 == did_action( 'plugins_loaded' )
1585
+ ) {
1586
  add_action( 'plugins_loaded', array( &$this, '_plugins_loaded' ) );
1587
  } else {
1588
  // If was activated before, then it was already loaded before.
1638
 
1639
  add_action( 'admin_init', array( &$this, '_add_license_activation' ) );
1640
  add_action( 'admin_init', array( &$this, '_add_premium_version_upgrade_selection' ) );
1641
+ add_action( 'admin_init', array( &$this, '_add_beta_mode_update_handler' ) );
1642
+ add_action( 'admin_init', array( &$this, '_add_user_change_option' ) );
1643
 
1644
  $this->add_ajax_action( 'update_billing', array( &$this, '_update_billing_ajax_action' ) );
1645
  $this->add_ajax_action( 'start_trial', array( &$this, '_start_trial_ajax_action' ) );
1646
+ $this->add_ajax_action( 'set_data_debug_mode', array( &$this, '_set_data_debug_mode' ) );
1647
 
1648
  if ( $this->_is_network_active && fs_is_network_admin() ) {
1649
  $this->add_ajax_action( 'network_activate', array( &$this, '_network_activate_ajax_action' ) );
1685
  }
1686
  }
1687
 
1688
+ /**
1689
+ * Register the required hooks right after the settings parse is completed.
1690
+ *
1691
+ * @author Vova Feldman (@svovaf)
1692
+ * @since 2.3.1
1693
+ */
1694
+ private function register_after_settings_parse_hooks() {
1695
+ if ( is_admin() &&
1696
+ $this->is_theme() &&
1697
+ $this->is_premium() &&
1698
+ ! $this->has_active_valid_license()
1699
+ ) {
1700
+ $this->add_ajax_action(
1701
+ 'delete_theme_update_data',
1702
+ array( &$this, '_delete_theme_update_data_action' )
1703
+ );
1704
+ }
1705
+
1706
+ if ( $this->show_settings_with_tabs() ) {
1707
+ /**
1708
+ * Include the required hooks to capture the theme settings' page tabs
1709
+ * and cache them.
1710
+ *
1711
+ * @author Vova Feldman (@svovaf)
1712
+ * @since 1.2.2.7
1713
+ */
1714
+ if ( ! $this->_cache->has_valid( 'tabs' ) ) {
1715
+ add_action( 'admin_footer', array( &$this, '_tabs_capture' ) );
1716
+ // Add license activation AJAX callback.
1717
+ $this->add_ajax_action( 'store_tabs', array( &$this, '_store_tabs_ajax_action' ) );
1718
+
1719
+ add_action( 'admin_enqueue_scripts', array( &$this, '_store_tabs_styles' ), 9999999 );
1720
+ }
1721
+
1722
+ add_action(
1723
+ 'admin_footer',
1724
+ array( &$this, '_add_freemius_tabs' ),
1725
+ /**
1726
+ * The tabs JS code must be executed after the tabs capture logic (_tabs_capture()).
1727
+ * That's why the priority is 11 while the tabs capture logic is added
1728
+ * with priority 10.
1729
+ *
1730
+ * @author Vova Feldman (@svovaf)
1731
+ */
1732
+ 11
1733
+ );
1734
+ }
1735
+
1736
+ if ( ! self::is_ajax() ) {
1737
+ if ( ! $this->is_addon() || $this->is_only_premium() ) {
1738
+ add_action(
1739
+ ( $this->_is_network_active && fs_is_network_admin() ? 'network_' : '' ) . 'admin_menu',
1740
+ array( &$this, '_prepare_admin_menu' ),
1741
+ WP_FS__LOWEST_PRIORITY
1742
+ );
1743
+ }
1744
+ }
1745
+ }
1746
+
1747
  /**
1748
  * Makes Freemius-related updates unavailable on the "Add Plugins" admin page (/plugin-install.php) so that
1749
  * they won't interfere with the .org plugins' functionalities on that page (e.g. updating of a .org plugin).
1759
  static function _remove_fs_updates_from_plugin_install_page( $updates, $transient = null ) {
1760
  if ( is_object( $updates ) && isset( $updates->response ) ) {
1761
  foreach ( $updates->response as $file => $plugin ) {
1762
+ if ( isset( $plugin->package ) && false !== strpos( $plugin->package, 'api.freemius' ) ) {
1763
  unset( $updates->response[ $file ] );
1764
  }
1765
  }
1822
  <?php
1823
  }
1824
 
1825
+ /**
1826
+ * @author Leo Fajardo (@leorw)
1827
+ * @since 2.3.0
1828
+ */
1829
+ static function _maybe_add_beta_label_styles() {
1830
+ $has_any_beta_version = false;
1831
+
1832
+ foreach ( self::$_instances as $instance ) {
1833
+ if ( $instance->is_beta() ) {
1834
+ $has_any_beta_version = true;
1835
+ break;
1836
+ }
1837
+ }
1838
+
1839
+ if ( $has_any_beta_version ) {
1840
+ fs_enqueue_local_style( 'fs_plugins', '/admin/plugins.css' );
1841
+ }
1842
+ }
1843
+
1844
+ /**
1845
+ * @author Leo Fajardo (@leorw)
1846
+ * @since 2.3.0
1847
+ */
1848
+ static function _maybe_add_beta_label_to_plugins_and_handle_confirmation() {
1849
+ $beta_data = array();
1850
+
1851
+ foreach ( self::$_instances as $instance ) {
1852
+ if ( ! $instance->is_premium() ) {
1853
+ continue;
1854
+ }
1855
+
1856
+ /**
1857
+ * If there's an available beta version update, a confirmation message will be shown when the
1858
+ * "Update now" link on the "Plugins" or "Themes" page is clicked.
1859
+ */
1860
+ $has_beta_update = $instance->has_beta_update();
1861
+
1862
+ $is_beta = (
1863
+ // The "Beta" label is added separately for themes.
1864
+ $instance->is_plugin() &&
1865
+ $instance->is_beta()
1866
+ );
1867
+
1868
+ if ( ! $is_beta && ! $has_beta_update ) {
1869
+ continue;
1870
+ }
1871
+
1872
+ $beta_data[ $instance->get_plugin_basename() ] = array( 'is_installed_version_beta' => $is_beta );
1873
+
1874
+ if ( ! $has_beta_update ) {
1875
+ continue;
1876
+ }
1877
+
1878
+ $beta_data[ $instance->get_plugin_basename() ]['beta_version_update_confirmation_message'] = sprintf(
1879
+ '%s %s',
1880
+ sprintf(
1881
+ fs_esc_attr_inline(
1882
+ 'An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned.',
1883
+ 'beta-version-update-caution',
1884
+ $instance->get_slug()
1885
+ ),
1886
+ $instance->get_plugin_title()
1887
+ ),
1888
+ fs_esc_attr_inline( 'Would you like to proceed with the update?', 'update-confirmation', $instance->get_slug() )
1889
+ );
1890
+ }
1891
+
1892
+ if ( empty( $beta_data ) ) {
1893
+ return;
1894
+ }
1895
+ ?>
1896
+ <script type="text/javascript">
1897
+ ( function( $ ) {
1898
+ var betaData = <?php echo json_encode( $beta_data ) ?>;
1899
+
1900
+ for ( var pluginBasename in betaData ) {
1901
+ if ( ! betaData.hasOwnProperty( pluginBasename ) ) {
1902
+ continue;
1903
+ }
1904
+
1905
+ if ( ! betaData[ pluginBasename ].is_installed_version_beta ) {
1906
+ continue;
1907
+ }
1908
+
1909
+ var $parentContainer = $( '.wp-list-table.plugins tr[data-plugin="' + pluginBasename + '"]' );
1910
+ if ( 0 === $parentContainer.length ) {
1911
+ continue;
1912
+ }
1913
+
1914
+ $parentContainer.find( '.plugin-title > strong:first-child').append(
1915
+ '<span class="fs-tag fs-info"><?php fs_esc_js_echo_inline( 'Beta', 'beta' ) ?></span>'
1916
+ );
1917
+ }
1918
+
1919
+ setTimeout( function() {
1920
+ // Wait a little bit before adding the event handler, otherwise, it will be overridden by the core WP logic.
1921
+ $( '.plugins .update-message .update-link, .themes .theme .update-message' ).on( 'click', function() {
1922
+ var $parentContainer = $( this ).parents( 'tr:first' );
1923
+ pluginBasename = ( 0 !== $parentContainer.length ) ?
1924
+ $parentContainer.data( 'plugin' ) :
1925
+ $( this ).parents( '.theme:first' ).data( 'slug' );
1926
+
1927
+ if (
1928
+ betaData[ pluginBasename ] &&
1929
+ betaData[ pluginBasename ].beta_version_update_confirmation_message &&
1930
+ ! confirm( betaData[ pluginBasename ].beta_version_update_confirmation_message )
1931
+ ) {
1932
+ return false;
1933
+ }
1934
+ } );
1935
+ }, 20 );
1936
+ } )( jQuery );
1937
+ </script>
1938
+ <?php
1939
+ }
1940
+
1941
  /**
1942
  * Keeping the uninstall hook registered for free or premium plugin version may result to a fatal error that
1943
  * could happen when a user tries to uninstall either version while one of them is still active. Uninstalling a
2006
  * @since 2.0.0
2007
  */
2008
  function _hook_action_links_and_register_account_hooks() {
2009
+ $this->_add_tracking_links();
2010
 
2011
  if ( self::is_plugins_page() && $this->is_plugin() ) {
2012
  $this->hook_plugin_action_links();
2063
  // Try to load the cached value of the file path.
2064
  if ( isset( $this->_storage->plugin_main_file ) ) {
2065
  $plugin_main_file = $this->_storage->plugin_main_file;
2066
+ if ( ! empty( $plugin_main_file->path ) ) {
2067
  $absolute_path = $this->get_absolute_path( $plugin_main_file->path );
2068
  if ( file_exists( $absolute_path ) ) {
2069
  return $absolute_path;
2084
  if ( ! $is_init ) {
2085
  // Fetch prev path cache.
2086
  if ( isset( $this->_storage->plugin_main_file ) &&
2087
+ ! empty( $this->_storage->plugin_main_file->prev_path )
2088
  ) {
2089
  $absolute_path = $this->get_absolute_path( $this->_storage->plugin_main_file->prev_path );
2090
  if ( file_exists( $absolute_path ) ) {
2188
  $store_option = true;
2189
  }
2190
 
2191
+ if ( empty( $id_slug_type_path_map[ $module_id ]['path'] ) ||
2192
  /**
2193
  * This verification is for cases when suddenly the same module
2194
  * is installed but with a different folder name.
2252
  $caller_map = array();
2253
  $module_type = WP_FS__MODULE_TYPE_PLUGIN;
2254
  $themes_dir = fs_normalize_path( get_theme_root( get_stylesheet() ) );
2255
+ $plugin_dir_to_skip = false;
2256
 
2257
  for ( $i = 1, $bt = debug_backtrace(), $len = count( $bt ); $i < $len; $i ++ ) {
2258
  if ( empty( $bt[ $i ]['file'] ) ) {
2278
  'activate_plugin'
2279
  ) )
2280
  ) {
2281
+ if ( 'activate_plugin' === $bt[ $i ]['function'] ) {
2282
+ /**
2283
+ * Store the directory of the activator plugin so that any other file that starts with it
2284
+ * cannot be mistakenly chosen as a candidate caller file.
2285
+ *
2286
+ * @author Leo Fajardo
2287
+ *
2288
+ * @since 2.3.0
2289
+ */
2290
+ $caller_file_path = fs_normalize_path( $bt[ $i ]['file'] );
2291
+
2292
+ foreach ( $all_plugins_paths as $plugin_path ) {
2293
+ $plugin_dir = fs_normalize_path( dirname( $plugin_path ) . '/' );
2294
+ if ( false !== strpos( $caller_file_path, $plugin_dir ) ) {
2295
+ $plugin_dir_to_skip = $plugin_dir;
2296
+
2297
+ break;
2298
+ }
2299
+ }
2300
+ }
2301
+
2302
+ // Ignore call stack hooks and files inclusion.
2303
+ continue;
2304
+ }
2305
+
2306
  $caller_file_path = fs_normalize_path( $bt[ $i ]['file'] );
2307
 
2308
+ if ( ! empty( $plugin_dir_to_skip ) ) {
2309
+ /**
2310
+ * Skip if it's an activator plugin file to avoid mistakenly choosing it as a candidate caller file.
2311
+ *
2312
+ * @author Leo Fajardo
2313
+ *
2314
+ * @since 2.3.0
2315
+ */
2316
+ if ( 0 === strpos( $caller_file_path, $plugin_dir_to_skip ) ) {
2317
+ continue;
2318
+ }
2319
+ }
2320
+
2321
  if ( 'functions.php' === basename( $caller_file_path ) ) {
2322
  /**
2323
  * 1. Assumes that theme's starting execution file is functions.php.
2348
 
2349
  if ( ! isset( $caller_map[ $caller_file_hash ] ) ) {
2350
  foreach ( $all_plugins_paths as $plugin_path ) {
2351
+ if ( empty( $plugin_path ) ) {
2352
+ continue;
2353
+ }
2354
+
2355
  if ( false !== strpos( $caller_file_path, fs_normalize_path( dirname( $plugin_path ) . '/' ) ) ) {
2356
  $caller_map[ $caller_file_hash ] = fs_normalize_path( $plugin_path );
2357
  break;
2381
  *
2382
  * @author Vova Feldman (@svovaf)
2383
  * @author Leo Fajardo (@leorw)
2384
+ *
2385
  * @since 1.1.2
2386
  */
2387
  function _add_deactivation_feedback_dialog_box() {
2388
+ $subscription_cancellation_dialog_box_template_params = $this->apply_filters( 'show_deactivation_subscription_cancellation', true ) ?
2389
+ $this->_get_subscription_cancellation_dialog_box_template_params() :
2390
+ array();
 
 
 
 
 
 
2391
 
2392
+ /**
2393
+ * @since 2.3.0 Developers can optionally hide the deactivation feedback form using the 'show_deactivation_feedback_form' filter.
2394
+ */
2395
+ $show_deactivation_feedback_form = true;
2396
+ if ( $this->has_filter( 'show_deactivation_feedback_form' ) ) {
2397
+ $show_deactivation_feedback_form = $this->apply_filters( 'show_deactivation_feedback_form', true );
2398
+ } else if ( $this->is_addon() ) {
2399
+ /**
2400
+ * If the add-on's 'show_deactivation_feedback_form' is not set, try to inherit the value from the parent.
2401
+ */
2402
+ $show_deactivation_feedback_form = $this->get_parent_instance()->apply_filters( 'show_deactivation_feedback_form', true );
2403
+ }
2404
 
2405
+ $uninstall_confirmation_message = $this->apply_filters( 'uninstall_confirmation_message', '' );
 
2406
 
2407
+ if (
2408
+ empty( $subscription_cancellation_dialog_box_template_params ) &&
2409
+ ! $show_deactivation_feedback_form &&
2410
+ empty( $uninstall_confirmation_message )
2411
+ ) {
2412
+ return;
2413
  }
2414
 
2415
+ $vars = array( 'id' => $this->_module_id );
2416
 
2417
+ if ( $show_deactivation_feedback_form ) {
2418
+ /* Check the type of user:
2419
+ * 1. Long-term (long-term)
2420
+ * 2. Non-registered and non-anonymous short-term (non-registered-and-non-anonymous-short-term).
2421
+ * 3. Short-term (short-term)
2422
+ */
2423
+ $is_long_term_user = true;
2424
+
2425
+ // Check if the site is at least 2 days old.
2426
+ $time_installed = $this->_storage->install_timestamp;
2427
+
2428
+ // Difference in seconds.
2429
+ $date_diff = time() - $time_installed;
2430
+
2431
+ // Convert seconds to days.
2432
+ $date_diff_days = floor( $date_diff / ( 60 * 60 * 24 ) );
2433
+
2434
+ if ( $date_diff_days < 2 ) {
2435
+ $is_long_term_user = false;
2436
+ }
2437
+
2438
+ $is_long_term_user = $this->apply_filters( 'is_long_term_user', $is_long_term_user );
2439
+
2440
+ if ( $is_long_term_user ) {
2441
+ $user_type = 'long-term';
2442
  } else {
2443
+ if ( ! $this->is_registered() && ! $this->is_anonymous() ) {
2444
+ $user_type = 'non-registered-and-non-anonymous-short-term';
2445
+ } else {
2446
+ $user_type = 'short-term';
2447
+ }
2448
  }
 
2449
 
2450
+ $uninstall_reasons = $this->_get_uninstall_reasons( $user_type );
2451
 
2452
+ $vars['reasons'] = $uninstall_reasons;
2453
+ }
2454
+
2455
+ $vars['subscription_cancellation_dialog_box_template_params'] = &$subscription_cancellation_dialog_box_template_params;
2456
+ $vars['show_deactivation_feedback_form'] = $show_deactivation_feedback_form;
2457
+ $vars['uninstall_confirmation_message'] = $uninstall_confirmation_message;
2458
 
2459
  /**
2460
+ * Load the HTML template for the deactivation feedback dialog box.
2461
+ *
2462
  * @todo Deactivation form core functions should be loaded only once! Otherwise, when there are multiple Freemius powered plugins the same code is loaded multiple times. The only thing that should be loaded differently is the various deactivation reasons object based on the state of the plugin.
2463
  */
2464
  fs_require_template( 'forms/deactivation/form.php', $vars );
2965
  function is_site_activation_mode( $and_on = true ) {
2966
  return (
2967
  ( $this->is_on() || ! $and_on ) &&
 
2968
  (
2969
+ ( $this->is_premium() && true === $this->_storage->require_license_activation ) ||
2970
+ (
2971
+ ( ! $this->is_registered() ||
2972
+ ( $this->is_only_premium() && ! $this->has_features_enabled_license() ) ) &&
2973
+ ( ! $this->is_enable_anonymous() ||
2974
+ ( ! $this->is_anonymous() && ! $this->is_pending_activation() ) )
2975
+ )
2976
  )
2977
  );
2978
  }
3030
  * @return bool
3031
  */
3032
  function is_activation_page() {
3033
+ if ( $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
3034
  return true;
3035
  }
3036
 
3104
  $active_basenames = get_option( 'active_plugins' );
3105
  }
3106
 
3107
+ if ( ! is_array( $active_basenames ) ) {
3108
+ $active_basenames = array();
3109
+ }
3110
+
3111
  if ( is_multisite() ) {
3112
  $network_active_basenames = get_site_option( 'active_sitewide_plugins' );
3113
 
3114
  if ( is_array( $network_active_basenames ) && ! empty( $network_active_basenames ) ) {
3115
+ $active_basenames = array_merge( $active_basenames, array_keys( $network_active_basenames ) );
3116
  }
3117
  }
3118
 
3119
  return $active_basenames;
3120
  }
3121
 
3122
+ /**
3123
+ * @author Leo Fajardo (@leorw)
3124
+ * @since 2.3.0
3125
+ *
3126
+ * @param int $blog_id
3127
+ *
3128
+ * @return array
3129
+ */
3130
+ static function get_active_plugins_directories_map( $blog_id = 0 ) {
3131
+ $active_basenames = self::get_active_plugins_basenames( $blog_id );
3132
+
3133
+ $map = array();
3134
+
3135
+ foreach ( $active_basenames as $active_basename ) {
3136
+ $active_basename = fs_normalize_path( $active_basename );
3137
+
3138
+ if ( false === strpos( $active_basename, '/' ) ) {
3139
+ continue;
3140
+ }
3141
+
3142
+ $map[ dirname( $active_basename ) ] = true;
3143
+ }
3144
+
3145
+ return $map;
3146
+ }
3147
+
3148
  /**
3149
  * Get collection of all active plugins. Including network activated plugins.
3150
  *
3392
  add_action( 'admin_footer', array( 'Freemius', '_enrich_ajax_url' ) );
3393
  add_action( 'admin_footer', array( 'Freemius', '_open_support_forum_in_new_page' ) );
3394
 
3395
+ if ( self::is_plugins_page() || self::is_themes_page() ) {
3396
+ add_action( 'admin_print_footer_scripts', array( 'Freemius', '_maybe_add_beta_label_styles' ), 9 );
3397
+
3398
+ /**
3399
+ * Specifically use this hook so that the JS event handlers will work properly on the "Themes"
3400
+ * page.
3401
+ *
3402
+ * @author Leo Fajardo (@leorw)
3403
+ * @since 2.3.0
3404
+ */
3405
+ add_action( 'admin_footer-' . self::get_current_page(), array( 'Freemius', '_maybe_add_beta_label_to_plugins_and_handle_confirmation') );
3406
+ }
3407
 
3408
  self::$_statics_loaded = true;
3409
  }
4000
  $key = fs_strip_url_protocol( get_site_url( $blog_id ) );
4001
 
4002
  $secure_auth = SECURE_AUTH_KEY;
4003
+ if ( empty( $secure_auth ) ||
4004
+ false !== strpos( $secure_auth, ' ' ) ||
4005
+ 'put your unique phrase here' === $secure_auth
4006
+ ) {
4007
  // Protect against default auth key.
4008
  $secure_auth = md5( microtime() );
4009
  }
4732
 
4733
  $this->parse_settings( $plugin_info );
4734
 
4735
+ $this->register_after_settings_parse_hooks();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4736
 
4737
  if ( $this->should_stop_execution() ) {
4738
  return;
4885
 
4886
  return;
4887
  } else {
4888
+ $is_network_admin = fs_is_network_admin();
4889
+
4890
+ if (
4891
+ $this->_parent->is_registered() &&
4892
+ ! $this->is_registered() &&
4893
+ $this->has_free_plan() &&
4894
+ /**
4895
+ * If not registered for add-on and the following conditions for the add-on are met, activate add-on account.
4896
+ * * Network active and in network admin - network activate add-on account.
4897
+ * * Network active and not in network admin - activate add-on account for the current blog.
4898
+ * * Not network active and not in network admin - activate add-on account for the current blog.
4899
+ *
4900
+ * If not registered for add-on, not network active, and in network admin, do not handle the add-on activation.
4901
+ *
4902
+ * @author Leo Fajardo (@leorw)
4903
+ * @since 2.3.0
4904
+ */
4905
+ ( $this->is_network_active() || ! $is_network_admin )
4906
+ ) {
4907
  // If parent plugin activated, automatically install add-on for the user.
4908
+ $this->_activate_addon_account(
4909
+ $this->_parent,
4910
+ ( $this->is_network_active() && $is_network_admin ) ?
4911
+ true :
4912
+ get_current_blog_id()
4913
+ );
4914
  } else if ( ! $this->_parent->is_registered() && $this->is_registered() ) {
4915
  // If add-on activated and parent not, automatically install parent for the user.
4916
  $this->activate_parent_account( $this->_parent );
5016
  private function should_use_freemius_updater_and_dialog() {
5017
  return (
5018
  /**
5019
+ * Allow updater and dialog when the `fs_allow_updater_and_dialog` URL query param exists and has `true`
5020
+ * value, or when the current page is not the "Add Plugins" page (/plugin-install.php) and the `action`
5021
+ * URL query param doesn't exist or its value is not `install-plugin` so that there will be no conflicts
5022
+ * with the .org plugins' functionalities (e.g. installation from the "Add Plugins" page and viewing
5023
+ * plugin details from .org).
5024
  */
5025
+ ( true === fs_request_get_bool( 'fs_allow_updater_and_dialog' ) ) ||
5026
+ (
5027
+ ! self::is_plugin_install_page() &&
5028
+ // Disallow updater and dialog when installing a plugin, otherwise .org "add-on" plugins will be affected.
5029
+ ( 'install-plugin' !== fs_request_get( 'action' ) )
5030
+ )
5031
  );
5032
  }
5033
 
5408
  }
5409
  }
5410
 
5411
+ /**
5412
+ * @author Vova Feldman (@svovaf)
5413
+ * @since 2.3.2
5414
+ *
5415
+ * @return bool
5416
+ */
5417
+ function is_extensions_tracking_allowed() {
5418
+ return (true === $this->_storage->get( 'is_extensions_tracking_allowed', true ) );
5419
+ }
5420
+
5421
+ /**
5422
+ * @author Vova Feldman (@svovaf)
5423
+ * @since 2.3.2
5424
+ */
5425
+ function _update_tracking_permission_callback() {
5426
+ $this->_logger->entrance();
5427
+
5428
+ $this->check_ajax_referer( 'update_tracking_permission' );
5429
+
5430
+ $is_enabled = fs_request_get_bool( 'is_enabled', null );
5431
+
5432
+ if ( ! is_bool( $is_enabled ) ) {
5433
+ self::shoot_ajax_failure();
5434
+ }
5435
+
5436
+ $permission = fs_request_get( 'permission' );
5437
+
5438
+ switch ( $permission ) {
5439
+ case 'extensions':
5440
+ $this->update_extensions_tracking_flag( $is_enabled );
5441
+ break;
5442
+ default:
5443
+ $permission = 'no_match';
5444
+ }
5445
+
5446
+ if ( 'no_match' === $permission ) {
5447
+ self::shoot_ajax_failure();
5448
+ }
5449
+
5450
+ self::shoot_ajax_success( array(
5451
+ 'permissions' => array(
5452
+ $permission => $is_enabled,
5453
+ )
5454
+ ) );
5455
+ }
5456
+
5457
+ /**
5458
+ * @author Leo Fajardo (@leorw)
5459
+ * @since 2.3.2
5460
+ *
5461
+ * @param bool $is_enabled
5462
+ */
5463
+ private function update_extensions_tracking_flag( $is_enabled ) {
5464
+ $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
5465
+ }
5466
+
5467
  /**
5468
  * Parse plugin's settings (as defined by the plugin dev).
5469
  *
5539
  'premium_suffix' => $premium_suffix,
5540
  'is_live' => $this->get_bool_option( $plugin_info, 'is_live', true ),
5541
  'affiliate_moderation' => $this->get_option( $plugin_info, 'has_affiliation' ),
5542
+ 'bundle_id' => $this->get_option( $plugin_info, 'bundle_id', null ),
5543
+ 'bundle_public_key' => $this->get_option( $plugin_info, 'bundle_public_key', null ),
5544
  ) );
5545
 
5546
  if ( $plugin->is_updated() ) {
5550
  // Set the secret key after storing the plugin, we don't want to store the key in the storage.
5551
  $this->_plugin->secret_key = $secret_key;
5552
 
5553
+ /**
5554
+ * If the product is network integrated and activated and the current view is in the network level Admin dashboard, if the product's network-level menu located differently from the sub-site level, then use the network menu details (when set).
5555
+ *
5556
+ * @author Vova Feldman
5557
+ * @since 2.4.5
5558
+ */
5559
+ if ( $this->is_network_active() && fs_is_network_admin() ) {
5560
+ if ( isset( $plugin_info['menu_network'] ) &&
5561
+ is_array( $plugin_info['menu_network'] ) &&
5562
+ ! empty( $plugin_info['menu_network'] )
5563
+ ) {
5564
+ $plugin_info['menu'] = $plugin_info['menu_network'];
5565
+ }
5566
+ }
5567
+
5568
  if ( ! isset( $plugin_info['menu'] ) ) {
5569
  $plugin_info['menu'] = array();
5570
 
5612
 
5613
  $this->_is_trial_require_payment = $this->get_bool_option( $plugin_info['trial'], 'is_require_payment', false );
5614
  }
5615
+
5616
+ $this->_navigation = $this->get_option(
5617
+ $plugin_info,
5618
+ 'navigation',
5619
+ $this->is_free_wp_org_theme() ?
5620
+ self::NAVIGATION_TABS :
5621
+ self::NAVIGATION_MENU
5622
+ );
5623
  }
5624
 
5625
  /**
5972
  * @return Freemius[]
5973
  */
5974
  function get_installed_addons() {
5975
+ if ( $this->is_addon() ) {
5976
+ // Add-on cannot have add-ons.
5977
+ return array();
5978
+ }
5979
+
5980
  $installed_addons = array();
5981
+
5982
  foreach ( self::$_instances as $instance ) {
5983
+ if ( $instance->is_addon_of( $this->_plugin->id ) ) {
5984
+ $installed_addons[] = $instance;
 
 
5985
  }
5986
  }
5987
 
6031
  * @return bool
6032
  */
6033
  function is_addon() {
6034
+ return (
6035
+ isset( $this->_plugin->parent_plugin_id ) &&
6036
+ is_numeric( $this->_plugin->parent_plugin_id )
6037
+ );
6038
+ }
6039
+
6040
+ /**
6041
+ * @author Vova Feldman (@svovaf)
6042
+ * @since 2.3.2
6043
+ *
6044
+ * @param number $parent_product_id
6045
+ *
6046
+ * @return bool
6047
+ */
6048
+ function is_addon_of( $parent_product_id ) {
6049
+ return (
6050
+ $this->is_addon() &&
6051
+ $parent_product_id == $this->_plugin->parent_plugin_id
6052
+ );
6053
  }
6054
 
6055
  /**
6709
  }
6710
 
6711
  if ( is_multisite() ) {
6712
+ $this->switch_to_blog( $current_blog_id, fs_is_network_admin() ? $this->get_network_install() : null );
6713
 
6714
  $this->do_action( "after_{$name}_cron_multisite" );
6715
  }
6789
  */
6790
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6791
  if ( $this->is_registered() ) {
6792
+ $this->sync_user_beta_mode();
6793
+
6794
  if ( $this->has_paid_plan() ) {
6795
  // Initiate background plan sync.
6796
  $this->_sync_license( true, false, $current_blog_id );
6806
  } else {
6807
  $this->sync_install();
6808
  }
6809
+
6810
+ $this->maybe_sync_install_user();
6811
  }
6812
  }
6813
  }
7020
  } else {
7021
  $this->sync_install( array(), true );
7022
  }
7023
+
7024
+ $this->maybe_sync_install_user();
7025
  }
7026
  }
7027
 
7116
 
7117
  $this->_add_upgrade_action_link();
7118
 
7119
+ if ( ! ( ! $this->_is_network_active && fs_is_network_admin() ) &&
 
7120
  (
7121
  ( true === $this->_storage->require_license_activation ) ||
7122
  // Not registered nor anonymous.
7126
  )
7127
  ) {
7128
  if ( ! $this->is_pending_activation() ) {
7129
+ if ( ! $this->_menu->is_activation_page( $this->show_opt_in_on_themes_page() ) ) {
7130
  /**
7131
  * If a user visits any other admin page before activating the premium-only theme with a valid
7132
  * license, reactivate the previous theme.
7134
  * @author Leo Fajardo (@leorw)
7135
  * @since 1.2.2
7136
  */
7137
+ if ( $this->is_theme() &&
7138
+ ! $this->has_settings_menu() &&
7139
+ ! isset( $_REQUEST['fs_action'] ) &&
7140
+ $this->can_activate_previous_theme()
7141
  ) {
7142
  if ( $this->is_only_premium() ) {
7143
  $this->activate_previous_theme();
7193
  }
7194
  }
7195
 
7196
+ if ( $this->show_opt_in_on_themes_page() &&
7197
+ $this->is_activation_page()
7198
  ) {
7199
  $this->_show_theme_activation_optin_dialog();
7200
  }
7452
  foreach ( $plans_ids_to_keep as $plan_id ) {
7453
  $plan = self::_get_plan_by_id( $plan_id );
7454
  if ( is_object( $plan ) ) {
7455
+ $plans_to_keep[] = self::_encrypt_entity( $plan );
7456
  }
7457
  }
7458
  }
7621
  // Clear API cache on activation.
7622
  FS_Api::clear_cache();
7623
 
7624
+ $is_premium_version_activation = $this->is_plugin() ?
7625
+ ( current_filter() !== ( 'activate_' . $this->_free_plugin_basename ) ) :
7626
+ $this->is_premium();
7627
 
7628
  $this->_logger->info( 'Activating ' . ( $is_premium_version_activation ? 'premium' : 'free' ) . ' plugin version.' );
7629
 
7630
+ if ( $this->is_plugin() ) {
7631
+ // This logic is relevant only to plugins since both the free and premium versions of a plugin can be active at the same time.
7632
+ // 1. If running in the activation of the FREE module, get the basename of the PREMIUM.
7633
+ // 2. If running in the activation of the PREMIUM module, get the basename of the FREE.
7634
+ $other_version_basename = $is_premium_version_activation ?
7635
+ $this->_free_plugin_basename :
7636
+ $this->premium_plugin_basename();
7637
+
7638
+ if ( ! $this->_is_network_active ) {
7639
+ /**
7640
+ * Themes are always network activated, but the ACTUAL activation is per site.
7641
+ *
7642
+ * During the activation, the plugin isn't yet active, therefore,
7643
+ * _is_network_active will be set to false even if it's a network level
7644
+ * activation. So we need to fix that by looking at the is_network_admin() value.
7645
+ *
7646
+ * @author Vova Feldman
7647
+ */
7648
+ $this->_is_network_active = (
7649
+ $this->_is_multisite_integrated &&
7650
+ fs_is_network_admin()
7651
+ );
7652
+ }
7653
 
 
7654
  /**
7655
+ * If the other module version is active, deactivate it.
 
 
7656
  *
7657
+ * is_plugin_active() checks if the plugin is active on the site or the network level and
7658
+ * deactivate_plugins() deactivates the plugin whether it's activated on the site or network level.
7659
+ *
7660
+ * @author Leo Fajardo (@leorw)
7661
+ * @since 1.2.2
7662
  */
7663
+ if ( is_plugin_active( $other_version_basename ) ) {
7664
+ deactivate_plugins( $other_version_basename );
7665
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7666
  }
7667
 
7668
  if ( $this->is_registered() ) {
7712
  }
7713
  }
7714
 
7715
+ $is_trial_or_has_features_enabled_license = ( $this->is_trial() || $this->has_features_enabled_license() );
7716
+
7717
+ if ( $this->is_addon() && ! $is_trial_or_has_features_enabled_license ) {
7718
+ /**
7719
+ * When activating an add-on, try to also activate a license.
7720
+ *
7721
+ * @author Leo Fajardo (@leorw)
7722
+ * @since 2.3.0
7723
+ */
7724
+ if ( ! $this->_is_network_active ) {
7725
+ $this->maybe_activate_addon_license();
7726
+ } else {
7727
+ $this->maybe_network_activate_addon_license();
7728
+ }
7729
+
7730
+ /**
7731
+ * Avoid redirecting to the license activation screen after automatically activating an add-on license.
7732
+ *
7733
+ * @author Leo Fajardo (@leorw)
7734
+ * @since 2.3.0
7735
+ */
7736
+ $is_trial_or_has_features_enabled_license = ( $this->is_trial() || $this->has_features_enabled_license() );
7737
+
7738
+ if ( $is_trial_or_has_features_enabled_license && true === $this->_storage->require_license_activation ) {
7739
+ $this->_storage->require_license_activation = false;
7740
+ }
7741
+ }
7742
+
7743
  if (
7744
  $is_premium_version_activation &&
7745
  (
7746
  ( ! $this->is_registered() && $this->is_anonymous() ) ||
7747
  (
7748
  $this->is_registered() &&
7749
+ ! $is_trial_or_has_features_enabled_license
 
7750
  )
7751
  )
7752
  ) {
7789
  }
7790
 
7791
  /**
7792
+ * @author Leo Fajardo (@leorw)
7793
+ * @since 2.3.0
 
 
 
 
7794
  */
7795
+ private function maybe_activate_addon_license() {
7796
+ $parent_fs = $this->get_parent_instance();
7797
 
7798
+ if (
7799
+ ! is_object( $parent_fs ) ||
7800
+ ( ! $parent_fs->is_registered() && ! $parent_fs->is_network_registered() )
7801
+ ) {
7802
+ // Try to activate a license only if the parent plugin is active and has a valid `install`.
7803
  return;
7804
  }
7805
 
7806
+ $license = $this->get_addon_active_parent_license();
7807
+ if ( ! is_object( $license ) ) {
7808
+ return;
7809
+ }
7810
 
7811
+ if ( ! $this->is_registered() ) {
7812
+ // Opt in with a license key.
7813
+ $this->opt_in(
7814
+ $parent_fs->get_current_or_network_user()->email,
7815
+ false,
7816
+ false,
7817
+ $license->secret_key
7818
+ );
7819
+ } else {
7820
+ // Activate the license.
7821
+ $install = $this->get_api_site_scope()->call(
7822
+ '/',
7823
+ 'put',
7824
+ array( 'license_key' => $this->apply_filters( 'license_key', $license->secret_key ) )
7825
+ );
7826
 
7827
+ if ( ! FS_Api::is_api_error( $install ) ) {
7828
+ $this->_sync_addon_license( $this->get_id(), true );
7829
+ }
7830
+ }
7831
+ }
7832
 
 
 
7833
 
7834
+ /**
7835
+ * @author Leo Fajardo (@leorw)
7836
+ * @since 2.3.0
7837
+ *
7838
+ * @param FS_Plugin_License $license
7839
+ */
7840
+ private function maybe_network_activate_addon_license( $license = null ) {
7841
+ $parent_fs = $this->get_parent_instance();
7842
+ if ( ! is_object( $parent_fs ) || ( ! $parent_fs->is_registered() && ! $parent_fs->is_network_registered() ) ) {
7843
+ // Try to activate a license only if the parent plugin is active and has a valid `install`.
7844
+ return;
7845
+ }
7846
+
7847
+ $license = ( ! is_null( $license ) ) ?
7848
+ $license :
7849
+ $this->get_addon_active_parent_license();
7850
+
7851
+ if ( ! is_object( $license ) ) {
7852
+ return;
7853
+ }
7854
+
7855
+ if ( ! $this->is_network_registered() ) {
7856
+ $sites = $this->get_sites_for_network_level_optin();
7857
+
7858
+ if ( count( $sites ) > $license->left() ) {
7859
+ // If the add-on is network active, try to activate the license only if it can be activated on all sites.
7860
+ return;
7861
+ }
7862
+
7863
+ // Opt in with a license key.
7864
+ $this->opt_in(
7865
+ $parent_fs->get_user()->email,
7866
+ false,
7867
+ false,
7868
+ $license->secret_key,
7869
+ false,
7870
+ false,
7871
+ false,
7872
+ null,
7873
+ $sites
7874
+ );
7875
+ } else {
7876
+ $blog_2_install_map = array();
7877
+ $site_ids = array();
7878
+
7879
+ $all_sites = Freemius::get_sites();
7880
+
7881
+ foreach ( $all_sites as $site ) {
7882
+ $blog_id = Freemius::get_site_blog_id( $site );
7883
+ $install = $this->get_install_by_blog_id( $blog_id );
7884
+
7885
+ if ( is_object( $install ) && FS_Plugin_License::is_valid_id( $install->license_id ) ) {
7886
+ // Skip license activation for installs that are already associated with a license.
7887
+ continue;
7888
+ }
7889
+
7890
+ if ( is_object( $install ) ) {
7891
+ $blog_2_install_map[ $blog_id ] = $install;
7892
+ } else {
7893
+ $site_ids[] = $blog_id;
7894
+ }
7895
+ }
7896
+
7897
+ if ( ( count( $blog_2_install_map ) + count( $site_ids ) ) > $license->left() ) {
7898
+ return;
7899
+ }
7900
+
7901
+ $user = $this->get_current_or_network_user();
7902
+
7903
+ if ( ! empty( $blog_2_install_map ) ) {
7904
+ $result = $this->activate_license_on_many_installs( $user, $license->secret_key, $blog_2_install_map );
7905
+
7906
+ if ( true !== $result ) {
7907
+ return;
7908
+ }
7909
+ }
7910
+
7911
+ if ( ! empty( $site_ids ) ) {
7912
+ $this->activate_license_on_many_sites( $user, $license->secret_key, $site_ids );
7913
+ }
7914
+ }
7915
+ }
7916
+
7917
+ /**
7918
+ * @author Leo Fajardo (@leorw)
7919
+ * @since 2.3.0
7920
+ *
7921
+ * @return FS_Plugin_License
7922
+ */
7923
+ private function get_addon_active_parent_license() {
7924
+ $parent_licenses_endpoint = "/plugins/{$this->get_id()}/parent_licenses.json?filter=activatable";
7925
+ $parent_instance = $this->get_parent_instance();
7926
+
7927
+ $foreign_licenses = $parent_instance->get_foreign_licenses_info(
7928
+ self::get_all_licenses( $this->get_parent_id() )
7929
+ );
7930
+
7931
+ if ( ! empty ( $foreign_licenses ) ) {
7932
+ $foreign_licenses = array(
7933
+ // Prefix with `+` to tell the server to include foreign licenses in the licenses collection.
7934
+ 'ids' => ( urlencode( '+' ) . implode( ',', $foreign_licenses['ids'] ) ),
7935
+ 'license_keys' => implode( ',', array_map( 'urlencode', $foreign_licenses['license_keys'] ) )
7936
+ );
7937
+
7938
+ $parent_licenses_endpoint = add_query_arg( $foreign_licenses, $parent_licenses_endpoint );
7939
+ }
7940
+
7941
+ $result = $parent_instance->get_current_or_network_user_api_scope()->get( $parent_licenses_endpoint, true );
7942
+
7943
+ if (
7944
+ ! $this->is_api_result_object( $result, 'licenses' ) ||
7945
+ ! is_array( $result->licenses ) ||
7946
+ empty( $result->licenses )
7947
+ ) {
7948
+ return null;
7949
+ }
7950
+
7951
+ $license = new FS_Plugin_License( $result->licenses[ 0 ] );
7952
+
7953
+ return $license;
7954
+ }
7955
+
7956
+ /**
7957
+ * @author Leo Fajardo (@leorw)
7958
+ * @since 2.3.0
7959
+ *
7960
+ * @return array
7961
+ */
7962
+ function get_sites_for_network_level_optin() {
7963
+ $sites = array();
7964
+ $all_sites = self::get_sites();
7965
+
7966
+ foreach ( $all_sites as $site ) {
7967
+ $blog_id = self::get_site_blog_id( $site );
7968
+
7969
+ if ( ! $this->is_site_delegated_connection( $blog_id ) &&
7970
+ ! $this->is_installed_on_site( $blog_id )
7971
+ ) {
7972
+ $sites[] = $this->get_site_info( $site );
7973
+ }
7974
+ }
7975
+
7976
+ return $sites;
7977
+ }
7978
+
7979
+ /**
7980
+ * Delete account.
7981
+ *
7982
+ * @author Vova Feldman (@svovaf)
7983
+ * @since 1.0.3
7984
+ *
7985
+ * @param bool $check_user Enforce checking if user have plugins activation privileges.
7986
+ */
7987
+ function delete_account_event( $check_user = true ) {
7988
+ $this->_logger->entrance( 'slug = ' . $this->_slug );
7989
+
7990
+ if ( $check_user && ! $this->is_user_admin() ) {
7991
+ return;
7992
+ }
7993
+
7994
+ $this->do_action( 'before_account_delete' );
7995
+
7996
+ // Clear all admin notices.
7997
+ $this->_admin_notices->clear_all_sticky( false );
7998
+
7999
+ $this->_delete_site( false );
8000
+
8001
+ $delete_network_common_data = true;
8002
+
8003
+ if ( $this->_is_network_active ) {
8004
+ $installs = $this->get_blog_install_map();
8005
+
8006
+ // Don't delete common network data unless no other installs left.
8007
+ $delete_network_common_data = empty( $installs );
8008
  }
8009
 
8010
  if ( $delete_network_common_data ) {
8033
 
8034
  // Clear all storage data.
8035
  $this->_storage->clear_all( true, array(
8036
+ 'is_delegated_connection',
8037
  'connectivity_test',
8038
  'is_on',
8039
  ), false );
8089
  foreach ( $sites as $site ) {
8090
  $blog_id = self::get_site_blog_id( $site );
8091
 
8092
+ if ( $this->is_site_delegated_connection( $blog_id ) ) {
8093
+ continue;
8094
+ }
8095
+
8096
  $install_id = $this->_delete_site( true, $blog_id );
8097
 
8098
  // Clear all storage data.
8393
  get_current_blog_id() == $network_or_blog_id ||
8394
  ( true === $network_or_blog_id && fs_is_network_admin() )
8395
  ) {
8396
+ $this->_is_anonymous = null;
8397
  }
8398
  }
8399
 
8857
  * @author Vova Feldman (@svovaf)
8858
  * @since 1.1.2
8859
  *
8860
+ * @param string[] $override
8861
+ * @param bool $include_plugins Since 1.1.8 by default include plugin changes.
8862
+ * @param bool $include_themes Since 1.1.8 by default include plugin changes.
8863
+ * @param bool $include_blog_data Since 2.3.0 by default include the current blog's data (language, charset, title, and URL).
8864
  *
8865
  * @return array
8866
  */
8867
  private function get_install_data_for_api(
8868
  array $override,
8869
  $include_plugins = true,
8870
+ $include_themes = true,
8871
+ $include_blog_data = true
8872
  ) {
8873
+ if ( $this->is_extensions_tracking_allowed() ) {
8874
+ if ( ! defined( 'WP_FS__TRACK_PLUGINS' ) || false !== WP_FS__TRACK_PLUGINS ) {
8875
+ /**
8876
+ * @since 1.1.8 Also send plugin updates.
8877
+ */
8878
+ if ( $include_plugins && ! isset( $override['plugins'] ) ) {
8879
+ $plugins = $this->get_plugins_data_for_api();
8880
+ if ( ! empty( $plugins ) ) {
8881
+ $override['plugins'] = $plugins;
8882
+ }
8883
  }
8884
  }
 
8885
 
8886
+ if ( ! defined( 'WP_FS__TRACK_THEMES' ) || false !== WP_FS__TRACK_THEMES ) {
8887
+ /**
8888
+ * @since 1.1.8 Also send themes updates.
8889
+ */
8890
+ if ( $include_themes && ! isset( $override['themes'] ) ) {
8891
+ $themes = $this->get_themes_data_for_api();
8892
+ if ( ! empty( $themes ) ) {
8893
+ $override['themes'] = $themes;
8894
+ }
8895
  }
8896
  }
8897
  }
8898
 
8899
  $versions = $this->get_versions();
8900
 
8901
+ $blog_data = $include_blog_data ?
8902
+ array(
8903
+ 'language' => get_bloginfo( 'language' ),
8904
+ 'charset' => get_bloginfo( 'charset' ),
8905
+ 'title' => get_bloginfo( 'name' ),
8906
+ 'url' => get_site_url(),
8907
+ ) :
8908
+ array();
8909
+
8910
+ return array_merge( $versions, $blog_data, array(
8911
  'version' => $this->get_plugin_version(),
8912
  'is_premium' => $this->is_premium(),
 
 
 
 
8913
  // Special params.
8914
  'is_active' => true,
8915
  'is_disconnected' => $this->is_tracking_prohibited(),
9247
  }
9248
  }
9249
 
9250
+ /**
9251
+ * Syncs the install owner's data if needed (i.e., if the install owner is different from the loaded user).
9252
+ *
9253
+ * @author Leo Fajardo (@leorw)
9254
+ * @since 2.3.2
9255
+ */
9256
+ private function maybe_sync_install_user() {
9257
+ if ( $this->_user->id == $this->_site->user_id ) {
9258
+ return;
9259
+ }
9260
+
9261
+ // Fetch user data and store if found.
9262
+ $this->sync_user_by_current_install();
9263
+ }
9264
+
9265
  /**
9266
  * Update install only if changed.
9267
  *
9545
  $fs = self::get_instance_by_file( $plugin_file );
9546
 
9547
  if ( is_object( $fs ) ) {
9548
+ $fs->remove_sdk_reference();
9549
+
9550
  self::require_plugin_essentials();
9551
 
9552
  if ( is_plugin_active( $fs->_free_plugin_basename ) ||
9598
  * @author Vova Feldman (@svovaf)
9599
  * @since 1.0.1
9600
  *
9601
+ * @param bool $reparse_plugin_metadata
9602
+ *
9603
  * @return array
9604
  */
9605
+ function get_plugin_data( $reparse_plugin_metadata = false ) {
9606
+ if ( ! isset( $this->_plugin_data ) || $reparse_plugin_metadata ) {
9607
  self::require_plugin_essentials();
9608
 
9609
  if ( $this->is_plugin() ) {
9696
  return $this->_plugin->id;
9697
  }
9698
 
9699
+ /**
9700
+ * @author Leo Fajardo (@leorw)
9701
+ * @since 2.2.4
9702
+ *
9703
+ * @return number|null Bundle ID.
9704
+ */
9705
+ function get_bundle_id() {
9706
+ return ( isset( $this->_plugin->bundle_id ) && FS_Plugin::is_valid_id( $this->_plugin->bundle_id ) ) ?
9707
+ $this->_plugin->bundle_id :
9708
+ null;
9709
+ }
9710
+
9711
+ /**
9712
+ * @author Vova Feldman (@svovaf)
9713
+ * @since 2.3.1
9714
+ *
9715
+ * @return string|null Bundle public key.
9716
+ */
9717
+ function get_bundle_public_key() {
9718
+ return isset( $this->_plugin->bundle_public_key ) ?
9719
+ $this->_plugin->bundle_public_key :
9720
+ null;
9721
+ }
9722
+
9723
  /**
9724
  * @author Vova Feldman (@svovaf)
9725
  * @since 1.2.1.5
9742
  $this->_plugin->id;
9743
  }
9744
 
9745
+ /**
9746
+ * @author Vova Feldman (@svovaf)
9747
+ * @since 2.3.1
9748
+ *
9749
+ * @return string
9750
+ */
9751
+ function get_usage_tracking_terms_url() {
9752
+ return $this->apply_filters(
9753
+ 'usage_tracking_terms_url',
9754
+ "https://freemius.com/wordpress/usage-tracking/{$this->_plugin->id}/{$this->_slug}/"
9755
+ );
9756
+ }
9757
+
9758
+ /**
9759
+ * @author Vova Feldman (@svovaf)
9760
+ * @since 2.3.1
9761
+ *
9762
+ * @return string
9763
+ */
9764
+ function get_eula_url() {
9765
+ return $this->apply_filters(
9766
+ 'eula_url',
9767
+ "https://freemius.com/terms/{$this->_plugin->id}/{$this->_slug}/"
9768
+ );
9769
+ }
9770
+
9771
  /**
9772
  * @author Vova Feldman (@svovaf)
9773
  * @since 1.0.1
9867
  * @author Vova Feldman (@svovaf)
9868
  * @since 1.0.0
9869
  *
9870
+ * @param bool $reparse_plugin_metadata
9871
+ *
9872
  * @return string
9873
  */
9874
+ function get_plugin_version( $reparse_plugin_metadata = false ) {
9875
  $this->_logger->entrance();
9876
 
9877
+ $plugin_data = $this->get_plugin_data( $reparse_plugin_metadata );
9878
 
9879
  $this->_logger->departure( 'Version = ' . $plugin_data['Version'] );
9880
 
9999
  * @return array[number]FS_User
10000
  */
10001
  static function get_all_users() {
10002
+ $users = self::maybe_get_entities_account_option( 'users', array() );
10003
 
10004
  if ( ! is_array( $users ) ) {
10005
  $users = array();
10043
  $option_name = $module_type . '_' . $option_name;
10044
  }
10045
 
10046
+ return self::maybe_get_entities_account_option( $option_name, array(), $network_level_or_blog_id );
10047
  }
10048
 
10049
  /**
10091
  self::$_accounts->set_option( $option_name, $option_value, $store, $network_level_or_blog_id );
10092
  }
10093
 
10094
+ /**
10095
+ * This method can also return non-entity or non-entities collection option like the `user_id_license_ids_map` option.
10096
+ *
10097
+ * @author Leo Fajardo (@leorw)
10098
+ * @since 2.3.1
10099
+ *
10100
+ * @param string $option_name
10101
+ * @param mixed $default
10102
+ * @param null|bool|int $network_level_or_blog_id When an integer, use the given blog storage. When `true` use the multisite storage (if there's a network). When `false`, use the current context blog storage. When `null`, the decision which storage to use (MS vs. Current S) will be handled internally and determined based on the $option (based on self::$_SITE_LEVEL_PARAMS).
10103
+ *
10104
+ * @return mixed|FS_Plugin[]|FS_User[]|FS_Site[]|FS_Plugin_License[]|FS_Plugin_Plan[]|FS_Plugin_Tag[]
10105
+ */
10106
+ private static function maybe_get_entities_account_option( $option_name, $default = null, $network_level_or_blog_id = null ) {
10107
+ $option = self::$_accounts->get_option( $option_name, $default, $network_level_or_blog_id );
10108
+
10109
+ $class_name = '';
10110
+
10111
+ switch ( $option_name ) {
10112
+ case 'plugins':
10113
+ case 'themes':
10114
+ case 'addons':
10115
+ $class_name = FS_Plugin::get_class_name();
10116
+ break;
10117
+ case 'users':
10118
+ $class_name = FS_User::get_class_name();
10119
+ break;
10120
+ case 'sites':
10121
+ $class_name = FS_Site::get_class_name();
10122
+ break;
10123
+ case 'licenses':
10124
+ case 'all_licenses':
10125
+ $class_name = FS_Plugin_License::get_class_name();
10126
+ break;
10127
+ case 'plans':
10128
+ $class_name = FS_Plugin_Plan::get_class_name();
10129
+ break;
10130
+ case 'updates':
10131
+ $class_name = FS_Plugin_Tag::get_class_name();
10132
+ break;
10133
+ }
10134
+
10135
+ if ( empty( $class_name ) ) {
10136
+ return $option;
10137
+ }
10138
+
10139
+ return fs_get_entities( $option, $class_name );
10140
+ }
10141
+
10142
  /**
10143
  * @author Vova Feldman (@svovaf)
10144
  * @since 1.0.6
10322
  * @return FS_Plugin_Tag[]
10323
  */
10324
  private static function get_all_updates() {
10325
+ $updates = self::maybe_get_entities_account_option( 'updates', array() );
10326
 
10327
  if ( ! is_array( $updates ) ) {
10328
  $updates = array();
10338
  * @return array<number,FS_Plugin[]>|false
10339
  */
10340
  private static function get_all_addons() {
10341
+ $addons = self::maybe_get_entities_account_option( 'addons', array() );
10342
 
10343
  if ( ! is_array( $addons ) ) {
10344
  $addons = array();
10351
  * @author Vova Feldman (@svovaf)
10352
  * @since 1.0.6
10353
  *
10354
+ * @return number[]|false
10355
  */
10356
  private static function get_all_account_addons() {
10357
  $addons = self::$_accounts->get_option( 'account_addons', array() );
10452
  * @author Vova Feldman (@svovaf)
10453
  * @since 1.0.6
10454
  *
10455
+ * @return number[]|false
10456
  */
10457
  function get_account_addons() {
10458
  $this->_logger->entrance();
10540
  }
10541
 
10542
  /**
10543
+ * @var array<number,object[]> {
10544
+ * @key number Add-on ID.
10545
+ * @val object[] The add-on's plans and prices object.
10546
+ * }
 
 
10547
  */
10548
+ private $plans_and_pricing_by_addon_id;
 
 
 
10549
 
10550
+ /**
10551
+ * @author Leo Fajardo (@leorw)
10552
+ * @since 2.3.0
10553
+ *
10554
+ * @return array<number,object[]> {
10555
+ * @key number Add-on ID.
10556
+ * @val object[] The add-on's plans and prices object.
10557
+ * }
10558
+ */
10559
+ function _get_addons_plans_and_pricing_map_by_id() {
10560
+ if ( ! isset( $this->plans_and_pricing_by_addon_id ) ) {
10561
+ $result = $this->get_api_plugin_scope()->get( $this->add_show_pending( "/addons/pricing.json?type=visible" ) );
10562
 
10563
+ $plans_and_pricing_by_addon_id = array();
10564
+ if ( $this->is_api_result_object( $result, 'addons' ) ) {
10565
+ foreach ( $result->addons as $addon ) {
10566
+ $plans_and_pricing_by_addon_id[ $addon->id ] = $addon->plans;
 
 
 
10567
  }
10568
  }
10569
+
10570
+ $this->plans_and_pricing_by_addon_id = $plans_and_pricing_by_addon_id;
10571
  }
10572
 
10573
+ return $this->plans_and_pricing_by_addon_id;
10574
  }
10575
 
10576
  /**
10577
+ * @author Leo Fajardo (@leorw)
10578
+ * @since 2.3.0
 
 
10579
  *
10580
+ * @param number $addon_id
10581
+ * @param bool $is_installed
10582
  *
10583
+ * @return array
10584
  */
10585
+ function _get_addon_info( $addon_id, $is_installed ) {
10586
+ $addon = $this->get_addon( $addon_id );
10587
+
10588
+ if ( ! is_object( $addon ) ) {
10589
+ // Unexpected call.
10590
+ return array();
10591
+ }
10592
+
10593
+ $slug = $addon->slug;
10594
+
10595
+ $addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $slug );
10596
+
10597
+ if ( ! fs_is_network_admin() ) {
10598
+ // Get blog-level activated installations.
10599
+ $sites = self::maybe_get_entities_account_option( 'sites', array() );
10600
+ } else {
10601
+ $sites = null;
10602
+
10603
+ if ( $this->is_addon_activated( $addon_id ) &&
10604
+ $this->get_addon_instance( $addon_id )->is_network_active()
10605
+ ) {
10606
+ if ( FS_Site::is_valid_id( $addon_storage->network_install_blog_id ) ) {
10607
+ // Get network-level activated installations.
10608
+ $sites = self::maybe_get_entities_account_option(
10609
+ 'sites',
10610
+ array(),
10611
+ $addon_storage->network_install_blog_id
10612
+ );
10613
+ }
10614
+ }
10615
+ }
10616
+
10617
+ $addon_info = array(
10618
+ 'is_connected' => false,
10619
+ 'slug' => $slug,
10620
+ 'title' => $addon->title,
10621
+ 'is_whitelabeled' => $addon_storage->is_whitelabeled
10622
+ );
10623
+
10624
+ if ( ! $is_installed ) {
10625
+ $plans_and_pricing_by_addon_id = $this->_get_addons_plans_and_pricing_map_by_id();
10626
+
10627
+ if ( isset( $plans_and_pricing_by_addon_id[ $addon_id ] ) ) {
10628
+ $has_paid_plan = false;
10629
+ $plans = $plans_and_pricing_by_addon_id[ $addon_id ];
10630
+
10631
+ if ( is_array( $plans ) && count( $plans ) > 0 ) {
10632
+ foreach ( $plans as $plan ) {
10633
+ if ( isset( $plan->pricing ) &&
10634
+ is_array( $plan->pricing ) &&
10635
+ count( $plan->pricing ) > 0
10636
+ ) {
10637
+ $has_paid_plan = true;
10638
+ break;
10639
+ }
10640
+ }
10641
+ }
10642
+
10643
+ $addon_info['has_paid_plan'] = $has_paid_plan;
10644
+ }
10645
+ }
10646
+
10647
+ if ( ! is_array( $sites ) || ! isset( $sites[ $slug ] ) ) {
10648
+ return $addon_info;
10649
+ }
10650
+
10651
+ $site = $sites[ $slug ];
10652
+
10653
+ $addon_info['is_connected'] = (
10654
+ ( $addon->parent_plugin_id == $this->get_id() ) &&
10655
+ is_object( $site ) &&
10656
+ FS_Site::is_valid_id( $site->id ) &&
10657
+ FS_User::is_valid_id( $site->user_id ) &&
10658
+ FS_Plugin_Plan::is_valid_id( $site->plan_id )
10659
+ );
10660
+
10661
+ if ( $addon_info['is_connected'] && $is_installed ) {
10662
+ return $addon_info;
10663
+ }
10664
+
10665
+ $addon_info['site'] = $site;
10666
+
10667
+ $plugins_data = self::maybe_get_entities_account_option( WP_FS__MODULE_TYPE_PLUGIN . 's', array() );
10668
+ if ( isset( $plugins_data[ $slug ] ) ) {
10669
+ $plugin_data = $plugins_data[ $slug ];
10670
+
10671
+ $addon_info['version'] = $plugin_data->version;
10672
+ }
10673
+
10674
+ $all_plans = self::maybe_get_entities_account_option( 'plans', array() );
10675
+ if ( isset( $all_plans[ $slug ] ) ) {
10676
+ $plans = $all_plans[ $slug ];
10677
+
10678
+ foreach ( $plans as $plan ) {
10679
+ if ( $site->plan_id == Freemius::_decrypt( $plan->id ) ) {
10680
+ $addon_info['plan_name'] = Freemius::_decrypt( $plan->name );
10681
+ $addon_info['plan_title'] = Freemius::_decrypt( $plan->title );
10682
+ break;
10683
+ }
10684
+ }
10685
+ }
10686
+
10687
+ $licenses = self::maybe_get_entities_account_option( 'all_licenses', array() );
10688
+ if ( is_array( $licenses ) && isset( $licenses[ $addon_id ] ) ) {
10689
+ foreach ( $licenses[ $addon_id ] as $license ) {
10690
+ if ( $license->id == $site->license_id ) {
10691
+ $addon_info['license'] = $license;
10692
+ break;
10693
+ }
10694
+ }
10695
+ }
10696
+
10697
+ if ( isset( $addon_info['license'] ) ) {
10698
+ if ( isset( $addon_storage->subscriptions ) &&
10699
+ ! empty( $addon_storage->subscriptions )
10700
+ ) {
10701
+ $addon_subscriptions = fs_get_entities( $addon_storage->subscriptions, FS_Subscription::get_class_name() );
10702
+
10703
+ foreach ( $addon_subscriptions as $subscription ) {
10704
+ if ( $subscription->license_id == $site->license_id ) {
10705
+ $addon_info['subscription'] = $subscription;
10706
+ break;
10707
+ }
10708
+ }
10709
+ }
10710
+ }
10711
+
10712
+ return $addon_info;
10713
+ }
10714
+
10715
+ /**
10716
+ * @author Vova Feldman (@svovaf)
10717
+ * @since 2.0.0
10718
+ *
10719
+ * @param number $user_id
10720
+ *
10721
+ * @return FS_User
10722
+ */
10723
+ static function _get_user_by_id( $user_id ) {
10724
+ self::$_static_logger->entrance( "user_id = {$user_id}" );
10725
+
10726
+ $users = self::get_all_users();
10727
+
10728
+ if ( is_array( $users ) ) {
10729
+ if ( isset( $users[ $user_id ] ) &&
10730
+ $users[ $user_id ] instanceof FS_User &&
10731
+ $user_id == $users[ $user_id ]->id
10732
+ ) {
10733
+ return $users[ $user_id ];
10734
+ }
10735
+
10736
+ // If user wasn't found by the key, iterate over all the users collection.
10737
+ foreach ( $users as $user ) {
10738
+ /**
10739
+ * @var FS_User $user
10740
+ */
10741
+ if ( $user_id == $user->id ) {
10742
+ return $user;
10743
+ }
10744
+ }
10745
+ }
10746
+
10747
+ return null;
10748
+ }
10749
+
10750
+ /**
10751
+ * Checks if a Freemius user_id is associated with a super-admin.
10752
+ *
10753
+ * @author Vova Feldman (@svovaf)
10754
+ * @since 2.0.0
10755
+ *
10756
+ * @param number $user_id
10757
+ *
10758
+ * @return bool
10759
+ */
10760
+ private static function is_super_admin( $user_id ) {
10761
+ $is_super_admin = false;
10762
 
10763
  $user = self::_get_user_by_id( $user_id );
10764
 
10791
  function is_premium() {
10792
  /**
10793
  * `$this->_plugin` will be `false` when `is_activation_mode` calls this method directly from the
10794
+ * `register_constructor_hooks` method.
10795
  *
10796
  * @author Leo Fajardo (@leorw)
10797
  * @since 2.2.3
10888
  return false;
10889
  }
10890
 
10891
+ if ( ! $this->has_active_valid_license() ) {
10892
+ return false;
10893
+ }
10894
+
10895
+ if ( $this->_site->trial_plan_id != $this->_license->plan_id ) {
10896
+ return false;
10897
+ }
10898
+
10899
+ /**
10900
+ * @var FS_Subscription $subscription
10901
+ */
10902
+ $subscription = $this->_get_subscription( $this->_license->id );
10903
+
10904
+ return ( is_object( $subscription ) && $subscription->is_active() );
10905
  }
10906
 
10907
  /**
11036
  * @author Vova Feldman (@svovaf)
11037
  * @since 1.1.7.3
11038
  *
11039
+ * @param bool $including_foreign
11040
+ *
11041
  * @return bool
11042
  */
11043
+ function has_any_license( $including_foreign = true ) {
11044
+ if ( ! is_array( $this->_licenses ) || 0 === count( $this->_licenses ) ) {
11045
+ return false;
11046
+ }
11047
+
11048
+ if ( $including_foreign ) {
11049
+ return true;
11050
+ }
11051
+
11052
+ foreach ( $this->_licenses as $license ) {
11053
+ if ( $this->_user->id == $license->user_id ) {
11054
+ return true;
11055
+ }
11056
+ }
11057
+
11058
+ return false;
11059
  }
11060
 
11061
  /**
11201
 
11202
  if ( $license instanceof FS_Plugin_License ) {
11203
  $this->_licenses[] = $license;
11204
+
11205
+ $this->set_license( $license );
11206
+
11207
  $this->_store_licenses();
11208
 
11209
  return $license;
11221
  * @return number[]
11222
  */
11223
  private function get_plans_ids_associated_with_installs() {
11224
+ if ( ! is_multisite() ) {
11225
  if ( ! is_object( $this->_site ) ||
11226
  ! FS_Plugin_Plan::is_valid_id( $this->_site->plan_id )
11227
  ) {
11356
  $all_licenses = $this->get_user_licenses( $this->_user->id );
11357
  }
11358
 
11359
+ $foreign_licenses = $this->get_foreign_licenses_info( $all_licenses, $site_license_id );
 
 
 
11360
 
11361
  $all_licenses_map = array();
11362
  foreach ( $all_licenses as $license ) {
11363
  $all_licenses_map[ $license->id ] = true;
 
 
 
 
 
 
 
 
 
 
11364
  }
11365
 
11366
  $licenses = $this->_fetch_licenses( false, $site_license_id, $foreign_licenses, $blog_id );
11428
 
11429
  // Update current license.
11430
  if ( is_object( $this->_license ) ) {
11431
+ $license = $this->_get_license_by_id( $this->_license->id );
11432
+
11433
+ if ( is_object( $license ) ) {
11434
+ /**
11435
+ * `$license` can be `false` in case a user change action has just been completed and this method
11436
+ * has synced the `$this->_licenses` collection for the new user. In this case, the
11437
+ * `$this->_licenses` collection may have only the newly activated license that is associated with
11438
+ * the new user. `set_license` will eventually be called in the same request by the logic that
11439
+ * follows outside this method which will detect that the install's license has been updated, and
11440
+ * then `_update_site_license` will be called which in turn will call `set_license`.
11441
+ *
11442
+ * @author Leo Fajardo (@leorw)
11443
+ * @since 2.3.2
11444
+ */
11445
+ $this->set_license( $license );
11446
+ }
11447
  }
11448
 
11449
  return $this->_licenses;
11783
  return true;
11784
  }
11785
 
11786
+ /**
11787
+ * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11788
+ *
11789
+ * @author Vova Feldman (@svovaf)
11790
+ * @since 2.3.1
11791
+ *
11792
+ * @param \FS_User $user
11793
+ * @param string $license_key
11794
+ *
11795
+ * @return true|mixed True if successful, otherwise, the API result.
11796
+ */
11797
+ private function activate_license_on_site( FS_User $user, $license_key ) {
11798
+ return $this->activate_license_on_many_sites( $user, $license_key );
11799
+ }
11800
+
11801
  /**
11802
  * Activate a given license on a collection of blogs/sites that are not yet opted-in.
11803
  *
11813
  private function activate_license_on_many_sites(
11814
  FS_User $user,
11815
  $license_key,
11816
+ array $site_ids = array()
11817
  ) {
11818
  $sites = array();
11819
  foreach ( $site_ids as $site_id ) {
11837
  }
11838
 
11839
  $installs = array();
 
 
 
11840
 
11841
+ if ( $this->is_api_result_entity( $result ) ) {
11842
+ $install = new FS_Site( $result );
11843
 
11844
+ $this->_user = $user;
11845
 
11846
+ $this->_store_site( true, null, $install );
 
 
11847
 
11848
+ $this->_site = $install;
11849
+
11850
+ $this->reset_anonymous_mode();
11851
+ } else {
11852
+ foreach ( $result->installs as $install ) {
11853
+ $installs[] = new FS_Site( $install );
11854
+ }
11855
+
11856
+ // Map site addresses to their blog IDs.
11857
+ $address_to_blog_map = $this->get_address_to_blog_map();
11858
+
11859
+ $first_blog_id = null;
11860
+
11861
+ foreach ( $installs as $install ) {
11862
+ $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
11863
+ $blog_id = $address_to_blog_map[ $address ];
11864
 
11865
+ $this->_store_site( true, $blog_id, $install );
11866
+
11867
+ $this->reset_anonymous_mode( $blog_id );
11868
 
11869
+ if ( is_null( $first_blog_id ) ) {
11870
+ $first_blog_id = $blog_id;
11871
+ }
11872
  }
 
11873
 
11874
+ if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
11875
+ $this->_storage->network_install_blog_id = $first_blog_id;
11876
+ }
11877
  }
11878
 
11879
  return true;
11892
  function _update_site_license( $new_license ) {
11893
  $this->_logger->entrance();
11894
 
11895
+ /**
11896
+ * In case this call will be removed in the future, the `_sync_licenses()` method needs to be updated
11897
+ * accordingly so that it will also handle the case when an ownership change is done via license
11898
+ * activation.
11899
+ *
11900
+ * @author Leo Fajardo (@leorw)
11901
+ * @since 2.3.2
11902
+ */
11903
+ $this->set_license( $new_license );
11904
 
11905
  if ( ! is_object( $new_license ) ) {
11906
  $this->_site->license_id = null;
11936
  }
11937
 
11938
  /**
 
 
11939
  * @author Vova Feldman (@svovaf)
11940
+ * @since 2.3.1
11941
  *
11942
+ * @param \FS_Plugin_License $license
11943
+ */
11944
+ private function set_license( FS_Plugin_License $license = null ) {
11945
+ $this->_license = $license;
11946
+
11947
+ $this->maybe_update_whitelabel_flag( $license );
11948
+ }
11949
+
11950
+ /**
11951
+ * @author Leo Fajardo (@leorw)
11952
+ * @since 2.3.1
11953
  *
11954
+ * @param FS_Plugin_License $license
11955
  */
11956
+ private function maybe_update_whitelabel_flag( $license ) {
11957
+ $is_whitelabeled = isset( $this->_storage->is_whitelabeled ) ?
11958
+ $this->_storage->is_whitelabeled :
11959
+ false;
11960
 
11961
+ if ( is_object( $license ) ) {
11962
+ $license_user = self::_get_user_by_id( $license->user_id );
11963
 
11964
+ if ( ! is_object( $license_user ) ) {
11965
+ // If foreign license, do not update the `is_whitelabeled` flag.
11966
+ return;
11967
+ }
11968
 
11969
+ if ( $this->is_addon() ) {
11970
+ /**
11971
+ * Store the last license data to the parent's storage since it's needed only when showing the
11972
+ * "Start Debug" dialog which is triggered from the "Account" page. This way, there's no need to
11973
+ * iterate over the add-ons just to get the last license data.
11974
+ */
11975
+ $this->get_parent_instance()->store_last_activated_license_data( $license, $license_user );
11976
+ } else {
11977
+ $this->store_last_activated_license_data( $license );
11978
+ }
11979
+
11980
+ if ( $license->is_whitelabeled ) {
11981
+ // Activated a developer license, data should be hidden.
11982
+ $is_whitelabeled = true;
11983
+ } else if ( $this->is_registered() && $this->_user->id == $license->user_id ) {
11984
+ // The account owner activated a regular license key, no need to hide the data.
11985
+ $is_whitelabeled = false;
11986
+ }
11987
  }
11988
 
11989
+ $this->_storage->is_whitelabeled = $is_whitelabeled;
11990
+
11991
+ // Reset the whitelabeled status after update.
11992
+ $this->is_whitelabeled = null;
11993
+ if ( $this->is_addon() ) {
11994
+ $parent_fs = $this->get_parent_instance();
11995
+
11996
+ if ( is_object( $parent_fs ) ) {
11997
+ $parent_fs->is_whitelabeled = null;
11998
+ }
11999
+ }
12000
  }
12001
 
12002
  /**
12003
+ * @author Leo Fajardo (@leorw)
12004
+ * @since 2.3.1
12005
  *
12006
+ * @param FS_Plugin_License $license
12007
+ * @param FS_User $license_user
12008
  */
12009
+ private function store_last_activated_license_data( FS_Plugin_License $license, $license_user = null ) {
12010
+ if ( ! is_object( $license_user ) ) {
12011
+ $this->_storage->last_license_key = md5( $license->secret_key );
12012
+ $this->_storage->last_license_user_id = null;
12013
+ } else {
12014
+ $this->_storage->last_license_user_key = md5( $license_user->secret_key );
12015
+ $this->_storage->last_license_user_id = $license_user->id;
12016
+ }
12017
+ }
12018
+
12019
+ /**
12020
+ * @author Leo Fajardo (@leorw)
12021
+ * @since 2.3.1
12022
+ *
12023
+ * @param bool $ignore_data_debug_mode
12024
+ *
12025
+ * @return bool
12026
+ */
12027
+ function is_whitelabeled_by_flag( $ignore_data_debug_mode = false ) {
12028
+ if ( true !== $this->_storage->is_whitelabeled ) {
12029
+ return false;
12030
+ } else if ( $ignore_data_debug_mode ) {
12031
+ return true;
12032
+ }
12033
+
12034
+ $fs = $this->is_addon() ?
12035
+ $this->get_parent_instance() :
12036
+ $this;
12037
+
12038
+ return ! $fs->is_data_debug_mode();
12039
+ }
12040
+
12041
+ /**
12042
+ * @author Leo Fajardo (@leorw)
12043
+ * @since 2.3.1
12044
+ *
12045
+ * @return number
12046
+ */
12047
+ function get_last_license_user_id() {
12048
+ return ( FS_User::is_valid_id( $this->_storage->last_license_user_id ) ) ?
12049
+ $this->_storage->last_license_user_id :
12050
+ null;
12051
+ }
12052
+
12053
+ /**
12054
+ * @author Leo Fajardo (@leorw)
12055
+ * @since 2.3.1
12056
+ *
12057
+ * @param int $blog_id
12058
+ * @param bool $ignore_data_debug_mode
12059
+ *
12060
+ * @return bool
12061
+ */
12062
+ function is_whitelabeled( $ignore_data_debug_mode = false, $blog_id = null ) {
12063
+ if ( ! is_null( $blog_id ) ) {
12064
+ $this->switch_to_blog( $blog_id );
12065
+ }
12066
+
12067
+ if ( ! is_null( $this->is_whitelabeled ) ) {
12068
+ $is_whitelabeled = $this->is_whitelabeled;
12069
+ } else {
12070
+ $is_whitelabeled = false;
12071
+
12072
+ $is_whitelabeled_flag = $this->is_whitelabeled_by_flag( true );
12073
+
12074
+ if ( ! $this->has_addons() ) {
12075
+ $is_whitelabeled = $is_whitelabeled_flag;
12076
+ } else if ( $is_whitelabeled_flag ) {
12077
+ $is_whitelabeled = true;
12078
+ } else {
12079
+ $addon_ids = $this->get_updated_account_addons();
12080
+ $installed_addons = $this->get_installed_addons();
12081
+ foreach ( $installed_addons as $fs_addon ) {
12082
+ $addon_ids[] = $fs_addon->get_id();
12083
+ }
12084
+
12085
+ if ( ! empty( $addon_ids ) ) {
12086
+ $addon_ids = array_unique( $addon_ids );
12087
+
12088
+ $is_network_level = (
12089
+ fs_is_network_admin() &&
12090
+ $this->is_network_active()
12091
+ );
12092
+
12093
+ foreach ( $addon_ids as $addon_id ) {
12094
+ $addon = $this->get_addon( $addon_id );
12095
+
12096
+ if ( ! is_object( $addon ) ) {
12097
+ continue;
12098
+ }
12099
+
12100
+ $addon_storage = FS_Storage::instance( WP_FS__MODULE_TYPE_PLUGIN, $addon->slug );
12101
+ $fs_addon = $this->is_addon_activated( $addon_id ) ?
12102
+ self::get_addon_instance( $addon_id ) :
12103
+ null;
12104
+
12105
+ $was_addon_network_activated = false;
12106
+
12107
+ if ( is_object( $fs_addon ) ) {
12108
+ $was_addon_network_activated = $fs_addon->is_network_active();
12109
+ } else if ( $is_network_level ) {
12110
+ $was_addon_network_activated = $addon_storage->get( 'was_plugin_loaded', false, true );
12111
+ }
12112
+
12113
+ $network_delegated_connection = (
12114
+ $was_addon_network_activated &&
12115
+ $addon_storage->get( 'is_delegated_connection', false, true )
12116
+ );
12117
+
12118
+ if (
12119
+ $is_network_level &&
12120
+ ( ! $was_addon_network_activated || $network_delegated_connection )
12121
+ ) {
12122
+ $sites = self::get_sites();
12123
+
12124
+ /**
12125
+ * If in network admin area and the add-on was not network-activated or network-activated
12126
+ * and network-delegated, find any add-on whose is_whitelabeled flag is true.
12127
+ */
12128
+ foreach ( $sites as $site ) {
12129
+ $site_info = $this->get_site_info( $site );
12130
+
12131
+ if ( $addon_storage->get( 'is_whitelabeled', false, $site_info['blog_id'] ) ) {
12132
+ $is_whitelabeled = true;
12133
+ break;
12134
+ }
12135
+ }
12136
+
12137
+ if ( $is_whitelabeled ) {
12138
+ break;
12139
+ }
12140
+ } else {
12141
+ /**
12142
+ * This will be executed when any of the following is met:
12143
+ * 1. Add-on was network-activated, not network-delegated, and in network admin area.
12144
+ * 2. Add-on was network-activated, network-delegated, and in site admin area.
12145
+ * 3. Add-on was not network-activated and in site admin area.
12146
+ */
12147
+ if ( true === $addon_storage->is_whitelabeled ) {
12148
+ $is_whitelabeled = true;
12149
+ break;
12150
+ }
12151
+ }
12152
+ }
12153
+ }
12154
+ }
12155
+
12156
+ $this->is_whitelabeled = $is_whitelabeled;
12157
+
12158
+ if ( ! $is_whitelabeled || ! $this->is_data_debug_mode() ) {
12159
+ $this->_admin_notices->remove_sticky( 'data_debug_mode_enabled' );
12160
+ }
12161
+
12162
+ if ( ! is_null( $blog_id ) ) {
12163
+ $this->restore_current_blog();
12164
+ }
12165
+ }
12166
+
12167
+ return (
12168
+ $is_whitelabeled &&
12169
+ ( $ignore_data_debug_mode || ! $this->is_data_debug_mode() )
12170
+ );
12171
+ }
12172
+
12173
+ /**
12174
+ * Sync site's subscription.
12175
+ *
12176
+ * @author Vova Feldman (@svovaf)
12177
+ * @since 1.0.9
12178
+ *
12179
+ * @param FS_Plugin_License|null $license
12180
+ *
12181
+ * @return bool|\FS_Subscription
12182
+ */
12183
+ private function _sync_site_subscription( $license ) {
12184
+ if ( ! is_object( $license ) ) {
12185
+ $this->delete_unused_subscriptions();
12186
+
12187
+ return false;
12188
+ }
12189
+
12190
+ // Load subscription details if not lifetime.
12191
+ $subscription = $license->is_lifetime() ?
12192
+ false :
12193
+ $this->_fetch_site_license_subscription();
12194
+
12195
+ if ( is_object( $subscription ) && ! isset( $subscription->error ) ) {
12196
+ $this->store_subscription( $subscription );
12197
+ } else {
12198
+ $this->delete_unused_subscriptions();
12199
+ }
12200
+
12201
+ return $subscription;
12202
+ }
12203
+
12204
+ /**
12205
+ * @author Vova Feldman (@svovaf)
12206
+ * @since 1.0.6
12207
+ *
12208
+ * @return bool|\FS_Plugin_License
12209
+ */
12210
+ function _get_license() {
12211
  if ( ! fs_is_network_admin() || is_object( $this->_license ) ) {
12212
  return $this->_license;
12213
  }
12227
  return null;
12228
  }
12229
 
12230
+ foreach ( fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() ) as $subscription ) {
12231
  if ( $subscription->license_id == $license_id ) {
12232
  return $subscription;
12233
  }
12253
  return;
12254
  }
12255
 
12256
+ $subscriptions = fs_get_entities( $this->_storage->subscriptions, FS_Subscription::get_class_name() );
12257
 
12258
  $updated_subscription = false;
12259
  foreach ( $subscriptions as $key => $existing_subscription ) {
12348
  }
12349
 
12350
  $current_plan_order = - 1;
12351
+ $required_plan_order = PHP_INT_MAX;
12352
  for ( $i = 0, $len = count( $this->_plans ); $i < $len; $i ++ ) {
12353
  if ( $plan === $this->_plans[ $i ]->name ) {
12354
  $required_plan_order = $i;
12366
  * @author Vova Feldman (@svovaf)
12367
  * @since 1.2.1.7
12368
  *
12369
+ * @param bool $double_check In some cases developers prefer to release their paid offering as premium-only, even though there is a free version. For those cases, looking at the 'is_premium_only' value isn't enough because the result will return false even when the product has only signle paid plan.
12370
+ *
12371
  * @return bool
12372
  */
12373
+ function is_single_plan( $double_check = false ) {
12374
  $this->_logger->entrance();
12375
 
12376
  if ( ! $this->is_registered() ||
12380
  return true;
12381
  }
12382
 
12383
+ $has_free_plan = $this->has_free_plan();
12384
+
12385
+ if ( ! $has_free_plan && $double_check ) {
12386
+ foreach ( $this->_plans as $plan ) {
12387
+ if ( $plan->is_free() ) {
12388
+ $has_free_plan = true;
12389
+ break;
12390
+ }
12391
+ }
12392
+ }
12393
+
12394
+ return ( 1 === ( count( $this->_plans ) - ( $has_free_plan ? 1 : 0 ) ) );
12395
  }
12396
 
12397
  /**
12505
  fs_require_template( 'forms/resend-key.php', $vars );
12506
  }
12507
 
12508
+ /**
12509
+ * Returns a collection of IDs of installs that are associated with the context product and its add-ons, and activated with foreign licenses.
12510
+ *
12511
+ * @author Leo Fajardo (@leorw)
12512
+ * @since 2.3.2
12513
+ *
12514
+ * @return number[]
12515
+ */
12516
+ function get_installs_ids_with_foreign_licenses() {
12517
+ $installs = array();
12518
+
12519
+ if (
12520
+ is_object( $this->_license ) &&
12521
+ $this->_site->user_id != $this->_license->user_id
12522
+ ) {
12523
+ $installs[] = $this->_site->id;
12524
+ }
12525
+
12526
+ /**
12527
+ * Also try to get foreign licenses for the context product's add-ons.
12528
+ */
12529
+ $installs_by_slug_map = $this->get_parent_and_addons_installs_info();
12530
+
12531
+ foreach ( $installs_by_slug_map as $slug => $install_info ) {
12532
+ if ( $slug == $this->get_slug() ) {
12533
+ continue;
12534
+ }
12535
+
12536
+ $install = $install_info['install'];
12537
+ $license = $install_info['license'];
12538
+
12539
+ if (
12540
+ is_object( $license ) &&
12541
+ $install->user_id != $license->user_id
12542
+ ) {
12543
+ $installs[] = $install->id;
12544
+ }
12545
+ }
12546
+
12547
+ return $installs;
12548
+ }
12549
+
12550
+ /**
12551
+ * Displays the "Change User" dialog box when the user clicks on the "Change User" button on the "Account" page.
12552
+ *
12553
+ * @author Leo Fajardo (@leorw)
12554
+ * @since 2.3.2
12555
+ *
12556
+ * @param number[] $install_ids
12557
+ */
12558
+ function _add_user_change_dialog_box( $install_ids ) {
12559
+ $vars = array(
12560
+ 'id' => $this->_module_id,
12561
+ 'license_owners' => $this->fetch_installs_licenses_owners_data( $install_ids )
12562
+ );
12563
+
12564
+ fs_require_template( 'forms/user-change.php', $vars );
12565
+ }
12566
+
12567
+ /**
12568
+ * @author Leo Fajardo (@leorw)
12569
+ * @since 2.3.1
12570
+ */
12571
+ function _add_data_debug_mode_dialog_box() {
12572
+ $vars = array(
12573
+ 'id' => $this->_module_id,
12574
+ );
12575
+
12576
+ fs_require_template( 'forms/data-debug-mode.php', $vars );
12577
+ }
12578
+
12579
  /**
12580
  * Displays a subscription cancellation dialog box when the user clicks on the "Deactivate License"
12581
  * link on the "Account" page or deactivates a plugin and there's an active subscription that is
12586
  * @since 2.2.1
12587
  *
12588
  * @param bool $is_license_deactivation
12589
+ *
12590
+ * @return array
12591
  */
12592
+ function _get_subscription_cancellation_dialog_box_template_params( $is_license_deactivation = false ) {
12593
  if ( fs_is_network_admin() ) {
12594
  // Subscription cancellation dialog box is currently not supported for multisite networks.
12595
+ return array();
12596
+ }
12597
+
12598
+ if ( $this->is_whitelabeled() ) {
12599
+ return array();
12600
  }
12601
 
12602
  $license = $this->_get_license();
12611
  $license->is_lifetime() ||
12612
  ( ! $license->is_single_site() && $license->activated > 1 )
12613
  ) {
12614
+ return array();
12615
  }
12616
 
12617
  /**
12619
  */
12620
  $subscription = $this->_get_subscription( $license->id );
12621
  if ( ! is_object( $subscription ) || ! $subscription->is_active() ) {
12622
+ return array();
12623
  }
12624
 
12625
+ return array(
12626
  'id' => $this->_module_id,
12627
  'license' => $license,
12628
  'has_trial' => $this->is_paid_trial(),
12629
  'is_license_deactivation' => $is_license_deactivation,
12630
  );
12631
+ }
12632
+
12633
+ /**
12634
+ * @author Leo Fajardo (@leorw)
12635
+ * @since 2.0.2
12636
+ */
12637
+ function _add_premium_version_upgrade_selection_dialog_box() {
12638
+ $modules_update = get_site_transient( $this->is_theme() ? 'update_themes' : 'update_plugins' );
12639
+ if ( ! isset( $modules_update->response[ $this->_plugin_basename ] ) ) {
12640
+ return;
12641
+ }
12642
+
12643
+ $vars = array(
12644
+ 'id' => $this->_module_id,
12645
+ 'new_version' => is_object( $modules_update->response[ $this->_plugin_basename ] ) ?
12646
+ $modules_update->response[ $this->_plugin_basename ]->new_version :
12647
+ $modules_update->response[ $this->_plugin_basename ]['new_version']
12648
+ );
12649
+
12650
+ fs_require_template( 'forms/premium-versions-upgrade-metadata.php', $vars );
12651
+ fs_require_once_template( 'forms/premium-versions-upgrade-handler.php', $vars );
12652
+ }
12653
+
12654
+ /**
12655
+ * Displays the opt-out dialog box when the user clicks on the "Opt Out" link on the "Plugins"
12656
+ * page.
12657
+ *
12658
+ * @author Leo Fajardo (@leorw)
12659
+ * @since 1.2.1.5
12660
+ */
12661
+ function _add_optout_dialog() {
12662
+ if ( $this->is_theme() ) {
12663
+ $vars = null;
12664
+ fs_require_once_template( '/js/jquery.content-change.php', $vars );
12665
+ }
12666
+
12667
+ $vars = array( 'id' => $this->_module_id );
12668
+ fs_require_template( 'forms/optout.php', $vars );
12669
+ }
12670
+
12671
+ /**
12672
+ * Prepare page to include all required UI and logic for the license activation dialog.
12673
+ *
12674
+ * @author Vova Feldman (@svovaf)
12675
+ * @since 1.2.0
12676
+ */
12677
+ function _add_license_activation() {
12678
+ if ( ! $this->is_user_admin() ) {
12679
+ // Only admins can activate a license.
12680
+ return;
12681
+ }
12682
+
12683
+ if ( ! $this->has_paid_plan() ) {
12684
+ // Module doesn't have any paid plans.
12685
+ return;
12686
+ }
12687
+
12688
+ if (
12689
+ $this->has_premium_version() &&
12690
+ ! $this->is_premium() &&
12691
+ /**
12692
+ * Also handle the case when an upgrade was made using the free version.
12693
+ *
12694
+ * @author Leo Fajardo (@leorw)
12695
+ * @since 2.3.2
12696
+ */
12697
+ ! is_object( $this->_get_license() )
12698
+ ) {
12699
+ // Only add license activation logic to the premium version, or in case of a serviceware plugin, also in the free version.
12700
+ return;
12701
+ }
12702
+
12703
+ // Add license activation link and AJAX request handler.
12704
+ if ( self::is_plugins_page() ) {
12705
+ $is_network_admin = fs_is_network_admin();
12706
+
12707
+ if (
12708
+ ( $is_network_admin && $this->is_network_active() && ! $this->is_network_delegated_connection() ) ||
12709
+ ( ! $is_network_admin && ( ! $this->is_network_active() || $this->is_delegated_connection() ) )
12710
+ ) {
12711
+ /**
12712
+ * @since 1.2.0 Add license action link only on plugins page.
12713
+ */
12714
+ $this->_add_license_action_link();
12715
+ }
12716
+ }
12717
+
12718
+ // Add license activation AJAX callback.
12719
+ $this->add_ajax_action( 'activate_license', array( &$this, '_activate_license_ajax_action' ) );
12720
+
12721
+ // Add resend license AJAX callback.
12722
+ $this->add_ajax_action( 'resend_license_key', array( &$this, '_resend_license_key_ajax_action' ) );
12723
+ }
12724
+
12725
+ /**
12726
+ * Prepares page to include all required UI and logic for the "Change User" dialog.
12727
+ *
12728
+ * @author Leo Fajardo (@leorw)
12729
+ * @since 2.3.2
12730
+ */
12731
+ function _add_user_change_option() {
12732
+ if ( ! $this->should_handle_user_change() ) {
12733
+ return;
12734
+ }
12735
+
12736
+ if ( empty( $this->get_installs_ids_with_foreign_licenses() ) ) {
12737
+ // Handle user change only when the parent product or one of its add-ons is activated with a foreign license.
12738
+ return;
12739
+ }
12740
+
12741
+ // Add user change AJAX handler.
12742
+ $this->add_ajax_action( 'change_user', array( &$this, '_user_change_ajax_action' ) );
12743
+ }
12744
+
12745
+ /**
12746
+ * @author Leo Fajardo (@leorw)
12747
+ * @since 2.3.2
12748
+ */
12749
+ function should_handle_user_change() {
12750
+ if ( ! $this->is_user_admin() ) {
12751
+ // Only admins can change user.
12752
+ return false;
12753
+ }
12754
+
12755
+ if ( $this->is_addon() ) {
12756
+ return false;
12757
+ }
12758
+
12759
+ if ( ! $this->is_registered() ) {
12760
+ return false;
12761
+ }
12762
+
12763
+ if (
12764
+ $this->is_network_active() &&
12765
+ ( fs_is_network_admin() || ! $this->is_site_delegated_connection() )
12766
+ ) {
12767
+ // Handle only on site-level "Account" section for now.
12768
+ return false;
12769
+ }
12770
+
12771
+ return true;
12772
+ }
12773
+
12774
+ /**
12775
+ * @author Leo Fajardo (@leorw)
12776
+ * @since 2.0.2
12777
+ */
12778
+ function _add_premium_version_upgrade_selection() {
12779
+ if ( ! $this->is_user_admin() ) {
12780
+ return;
12781
+ }
12782
+
12783
+ if ( ! $this->is_premium() || $this->has_any_active_valid_license() ) {
12784
+ // This is relevant only to the free versions and premium versions without an active license.
12785
+ return;
12786
+ }
12787
+
12788
+ if ( self::is_updates_page() || ( $this->is_plugin() && self::is_plugins_page() ) ) {
12789
+ $this->_add_premium_version_upgrade_selection_action();
12790
+ }
12791
+ }
12792
+
12793
+ /**
12794
+ * @author Leo Fajardo (@leorw)
12795
+ * @since 2.3.0
12796
+ */
12797
+ function _add_beta_mode_update_handler() {
12798
+ if ( ! $this->is_user_admin() ) {
12799
+ return;
12800
+ }
12801
+
12802
+ if ( ! $this->is_premium() ) {
12803
+ return;
12804
+ }
12805
+
12806
+ $this->add_ajax_action( 'set_beta_mode', array( &$this, '_set_beta_mode_ajax_handler' ) );
12807
+ }
12808
+
12809
+ /**
12810
+ * @author Leo Fajardo (@leorw)
12811
+ * @since 2.3.0
12812
+ */
12813
+ function _set_beta_mode_ajax_handler() {
12814
+ $this->_logger->entrance();
12815
+
12816
+ $this->check_ajax_referer( 'set_beta_mode' );
12817
+
12818
+ if ( ! $this->is_user_admin() ) {
12819
+ // Only for admins.
12820
+ self::shoot_ajax_failure();
12821
+ }
12822
+
12823
+ $is_beta = trim( fs_request_get( 'is_beta', '', 'post' ) );
12824
+
12825
+ if ( empty( $is_beta ) || ! in_array( $is_beta, array( 'true', 'false' ) ) ) {
12826
+ self::shoot_ajax_failure();
12827
+ }
12828
+
12829
+ $user = $this->get_api_user_scope()->call(
12830
+ '',
12831
+ 'put',
12832
+ array(
12833
+ 'plugin_id' => $this->get_id(),
12834
+ 'is_beta' => ( 'true' == $is_beta ),
12835
+ 'fields' => 'is_beta'
12836
+ )
12837
+ );
12838
+
12839
+ if ( ! $this->is_api_result_entity( $user ) ) {
12840
+ self::shoot_ajax_failure(
12841
+ FS_Api::is_api_error_object( $user ) ?
12842
+ $user->error->message :
12843
+ fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
12844
+ );
12845
+ }
12846
+
12847
+ $this->_user->is_beta = $user->is_beta;
12848
+ $this->_store_user();
12849
 
12850
+ self::shoot_ajax_response( array( 'success' => true ) );
12851
  }
12852
 
12853
  /**
12854
+ * License activation WP AJAX handler.
12855
+ *
12856
  * @author Leo Fajardo (@leorw)
12857
+ * @since 1.1.9
12858
+ *
12859
+ * @uses Freemius::activate_license()
12860
  */
12861
+ function _activate_license_ajax_action() {
12862
+ $this->_logger->entrance();
12863
+
12864
+ $this->check_ajax_referer( 'activate_license' );
12865
+
12866
+ $license_key = trim( fs_request_get( 'license_key' ) );
12867
+
12868
+ if ( empty( $license_key ) ) {
12869
+ exit;
12870
  }
12871
 
12872
+ $result = $this->activate_license(
12873
+ $license_key,
12874
+ fs_is_network_admin() ?
12875
+ fs_request_get( 'sites', array(), 'post' ) :
12876
+ array(),
12877
+ fs_request_get_bool( 'is_marketing_allowed', null ),
12878
+ fs_request_get( 'blog_id', null ),
12879
+ fs_request_get( 'module_id', null, 'post' ),
12880
+ fs_request_get( 'user_id', null ),
12881
+ fs_request_get_bool( 'is_extensions_tracking_allowed', true )
12882
  );
12883
 
12884
+ echo json_encode( $result );
12885
+
12886
+ exit;
12887
  }
12888
 
12889
  /**
12890
+ * User change WP AJAX handler.
 
12891
  *
12892
  * @author Leo Fajardo (@leorw)
12893
+ * @since 2.3.2
12894
  */
12895
+ function _user_change_ajax_action() {
12896
+ $this->_logger->entrance();
 
 
 
12897
 
12898
+ $this->check_ajax_referer( 'change_user' );
 
 
12899
 
12900
+ $new_email_address = trim( fs_request_get( 'email_address', '' ) );
12901
+ $new_user_id = fs_request_get( 'user_id' );
 
 
 
 
 
 
 
 
 
12902
 
12903
+ if ( empty( $new_email_address ) && ! FS_User::is_valid_id( $new_user_id ) ) {
12904
+ self::shoot_ajax_failure( fs_text_inline( 'Invalid new user ID or email address.', 'invalid-new-user-id-or-email', $this->get_slug() ) );
 
12905
  }
12906
 
12907
+ $params = array();
12908
+
12909
+ if ( ! empty( $new_email_address ) ) {
12910
+ $params['user_email'] = $new_email_address;
12911
+ } else {
12912
+ $params['user_id'] = $new_user_id;
12913
  }
12914
 
12915
+ $installs_info_by_slug_map = $this->get_parent_and_addons_installs_info();
12916
+ $install_ids = array();
12917
+
12918
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
12919
+ $install_ids[ $slug ] = $install_info['install']->id;
 
12920
  }
12921
+
12922
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
12923
 
12924
+ $install = $this->get_api_site_scope()->call( $this->add_show_pending( '/' ), 'put', $params );
 
12925
 
12926
+ if ( FS_Api::is_api_error( $install ) ) {
12927
+ $error = '';
12928
+
12929
+ if ( is_object( $install ) ) {
12930
+ switch ( $install->error->code ) {
12931
+ case 'user_exist':
12932
+ $error = (
12933
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...' .
12934
+ $this->get_text_inline( 'Sorry, we could not complete the email update. Another user with the same email is already registered.', 'user-exist-message' ) . ' ' .
12935
+ sprintf( $this->get_text_inline( 'If you would like to give up the ownership of the %s\'s account to %s click the Change Ownership button.', 'user-exist-message_ownership' ), $this->_module_type, '<b>' . $new_email_address . '</b>' ) .
12936
+ sprintf(
12937
+ '<a style="line-height: 40px;" href="%s"><button class="button button-primary">%s &nbsp;&#10140;</button></a>',
12938
+ $this->get_account_url( 'change_owner', array(
12939
+ 'state' => 'init',
12940
+ 'candidate_email' => $new_email_address
12941
+ ) ),
12942
+ $this->get_text_inline( 'Change Ownership', 'change-ownership' )
12943
+ )
12944
+ );
12945
+ break;
12946
+ }
12947
+ }
12948
+
12949
+ if ( empty( $error ) ) {
12950
+ $error = FS_Api::is_api_error_object( $install ) ?
12951
+ $install->error->message :
12952
+ var_export( $install->error, true );
12953
+ }
12954
+
12955
+ self::shoot_ajax_failure( $error );
12956
+ } else {
12957
+ if (
12958
+ // If successful ownership change.
12959
+ $this->get_user()->id != $install->user_id ||
12960
+ ! empty( $new_email_address )
12961
+ ) {
12962
+ $this->complete_ownership_change_by_license( $install->user_id, $install_ids );
12963
+ }
12964
+ }
12965
+
12966
+ self::shoot_ajax_success();
12967
  }
12968
 
12969
  /**
12970
+ * A helper method to activate migrated licenses. If the product is network activated and integrated, the method will network activate the license.
12971
+ *
12972
+ * @author Vova Feldman (@svovaf)
12973
+ * @since 2.3.0
12974
+ *
12975
+ * @param string $license_key
12976
+ * @param null|bool $is_marketing_allowed
12977
+ * @param null|number $plugin_id
12978
+ *
12979
+ * @return array {
12980
+ * @var bool $success
12981
+ * @var string $error
12982
+ * @var string $next_page
12983
+ * }
12984
+ *
12985
+ * @uses Freemius::activate_license()
12986
  */
12987
+ function activate_migrated_license(
12988
+ $license_key,
12989
+ $is_marketing_allowed = null,
12990
+ $plugin_id = null
12991
+ ) {
12992
+ $this->_logger->entrance();
12993
 
12994
+ $result = $this->activate_license(
12995
+ $license_key,
12996
+ $this->is_network_active() ?
12997
+ $this->get_sites_for_network_level_optin() :
12998
+ array(),
12999
+ $is_marketing_allowed,
13000
+ null,
13001
+ $plugin_id
13002
+ );
13003
 
13004
+ // No need to show the sticky after license activation notice after migrating a license.
13005
+ $this->_admin_notices->remove_sticky( 'plan_upgraded' );
13006
+
13007
+ return $result;
13008
  }
13009
 
13010
  /**
13011
+ * The implementation of this method was previously in `_activate_license_ajax_action()`.
13012
  *
13013
+ * @author Vova Feldman (@svovaf)
13014
+ * @since 2.2.4
13015
  * @since 2.0.0 When a super-admin that hasn't connected before is network activating a license and excluding some of the sites for the license activation, go over the unselected sites in the network and if a site is not connected, skipped, nor delegated, if it's a freemium product then just skip the connection for the site, if it's a premium only product, delegate the connection and license activation to the site admin (Vova Feldman @svovaf).
13016
+ * @param string $license_key
13017
+ * @param array $sites
13018
+ * @param null|bool $is_marketing_allowed
13019
+ * @param null|int $blog_id
13020
+ * @param null|number $plugin_id
13021
+ * @param null|number $license_owner_id
13022
+ *
13023
+ * @return array {
13024
+ * @var bool $success
13025
+ * @var string $error
13026
+ * @var string $next_page
13027
+ * }
13028
  */
13029
+ private function activate_license(
13030
+ $license_key,
13031
+ $sites = array(),
13032
+ $is_marketing_allowed = null,
13033
+ $blog_id = null,
13034
+ $plugin_id = null,
13035
+ $license_owner_id = null,
13036
+ $is_extensions_tracking_allowed = true
13037
+ ) {
13038
  $this->_logger->entrance();
 
 
13039
 
13040
+ $license_key = trim( $license_key );
13041
 
13042
+ if ( ! fs_is_network_admin() ) {
13043
+ // If the license activation is executed outside the context of a network admin, ignore the sites collection.
13044
+ $sites = array();
13045
  }
13046
 
13047
+ $fs = ( empty($plugin_id) || $plugin_id == $this->_module_id ) ?
 
13048
  $this :
13049
  $this->get_addon_instance( $plugin_id );
13050
 
13051
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
13052
+
13053
  $error = false;
13054
  $next_page = false;
13055
 
 
 
 
 
 
13056
  $has_valid_blog_id = is_numeric( $blog_id );
13057
 
13058
+ $user = null;
13059
+
13060
+ if ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) {
13061
+ /**
13062
+ * When activating an add-on's license and the parent is opted-in, activate the license with the parent's opted-in user context.
13063
+ *
13064
+ * @author Vova Feldman (@svovaf)
13065
+ */
13066
+ $user = $fs->get_parent_instance()->get_current_or_network_user();
13067
+ } else if ( $fs->is_registered() ) {
13068
+ $user = $fs->get_current_or_network_user();
13069
+ }
13070
+
13071
+ if ( is_object( $user ) ) {
13072
  if ( fs_is_network_admin() && ! $has_valid_blog_id ) {
13073
  // If no specific blog ID was provided, activate the license for all sites in the network.
13074
  $blog_2_install_map = array();
13079
  continue;
13080
  }
13081
 
13082
+ $install = $fs->get_install_by_blog_id( $site['blog_id'] );
13083
 
13084
  if ( is_object( $install ) ) {
13085
  $blog_2_install_map[ $site['blog_id'] ] = $install;
13088
  }
13089
  }
13090
 
 
 
13091
  if ( ! empty( $blog_2_install_map ) ) {
13092
+ $result = $fs->activate_license_on_many_installs( $user, $license_key, $blog_2_install_map );
13093
 
13094
  if ( true !== $result ) {
13095
  $error = FS_Api::is_api_error_object( $result ) ?
13099
  }
13100
 
13101
  if ( empty( $error ) && ! empty( $site_ids ) ) {
13102
+ $result = $fs->activate_license_on_many_sites( $user, $license_key, $site_ids );
13103
 
13104
  if ( true !== $result ) {
13105
  $error = FS_Api::is_api_error_object( $result ) ?
13115
  *
13116
  * @author Leo Fajardo (@leorw)
13117
  */
13118
+ $fs->switch_to_blog( $blog_id );
13119
  }
13120
 
13121
+ if ( $fs->is_registered() ) {
13122
+ $params = array(
13123
+ 'license_key' => $fs->apply_filters( 'license_key', $license_key )
13124
+ );
13125
 
13126
+ $install_ids = array();
 
 
13127
 
13128
+ $change_owner = FS_User::is_valid_id( $license_owner_id );
13129
 
13130
+ if ( $change_owner ) {
13131
+ $params['user_id'] = $license_owner_id;
13132
+
13133
+ $installs_info_by_slug_map = $fs->get_parent_and_addons_installs_info();
13134
+
13135
+ foreach ( $installs_info_by_slug_map as $slug => $install_info ) {
13136
+ $install_ids[ $slug ] = $install_info['install']->id;
13137
+ }
13138
+
13139
+ $params['install_ids'] = implode( ',', array_values( $install_ids ) );
13140
+ }
13141
+
13142
+ $api = $fs->get_api_site_scope();
13143
+
13144
+ $install = $api->call( $fs->add_show_pending( '/' ), 'put', $params );
13145
+
13146
+ if ( FS_Api::is_api_error( $install ) ) {
13147
+ $error = FS_Api::is_api_error_object( $install ) ?
13148
+ $install->error->message :
13149
+ var_export( $install->error, true );
13150
+ } else {
13151
+ $fs->reconnect_locally( $has_valid_blog_id );
13152
+
13153
+ if (
13154
+ $change_owner &&
13155
+ // If successful ownership change.
13156
+ $fs->get_user()->id != $install->user_id
13157
+ ) {
13158
+ $fs->complete_ownership_change_by_license( $install->user_id, $install_ids );
13159
+ }
13160
+ }
13161
+ } else /* ( $fs->is_addon() && $fs->get_parent_instance()->is_registered() ) */ {
13162
+ $result = $fs->activate_license_on_site( $user, $license_key );
13163
+
13164
+ if ( true !== $result ) {
13165
+ $error = FS_Api::is_api_error_object( $result ) ?
13166
+ $result->error->message :
13167
+ var_export( $result, true );
13168
+ }
13169
  }
13170
  }
13171
 
13172
  if ( empty( $error ) ) {
13173
+ $fs->network_upgrade_mode_completed();
13174
 
13175
  $fs->_sync_license( true, $has_valid_blog_id );
13176
 
13177
+ $this->maybe_sync_install_user();
13178
+
13179
  $next_page = $fs->is_addon() ?
13180
  $fs->get_parent_instance()->get_account_url() :
13181
  $fs->get_account_url();
13189
  false,
13190
  false,
13191
  false,
13192
+ $is_marketing_allowed,
13193
  $sites
13194
  );
13195
 
13224
  continue;
13225
  }
13226
 
13227
+ if ( $fs->is_installed_on_site( $blog_id ) ) {
13228
  // Site was already connected before.
13229
  continue;
13230
  }
13231
 
13232
+ if ( $fs->is_site_delegated_connection( $blog_id ) ) {
13233
  // Site's connection was delegated.
13234
  continue;
13235
  }
13236
 
13237
+ if ( $fs->is_anonymous_site( $blog_id ) ) {
13238
  // Site connection was already skipped.
13239
  continue;
13240
  }
13243
  }
13244
 
13245
  if ( ! empty( $pending_sites ) ) {
13246
+ if ( $fs->is_freemium() && $fs->is_enable_anonymous() ) {
13247
+ $fs->skip_connection( $pending_sites );
13248
  } else {
13249
+ $fs->delegate_connection( $pending_sites );
13250
  }
13251
  }
13252
  }
13253
  }
13254
  }
13255
 
13256
+ if ( false === $error && true === $fs->_storage->require_license_activation ) {
13257
+ $fs->_storage->require_license_activation = false;
13258
  }
13259
 
13260
  $result = array(
13262
  );
13263
 
13264
  if ( false !== $error ) {
13265
+ $result['error'] = $fs->apply_filters( 'opt_in_error_message', $error );
13266
  } else {
13267
+ if ( $fs->is_addon() || $fs->has_addons() ) {
13268
+ /**
13269
+ * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
13270
+ * an updated valid user licenses collection will be fetched from the server which is used to also
13271
+ * update the account add-ons (add-ons the user has licenses for).
13272
+ *
13273
+ * @author Leo Fajardo (@leorw)
13274
+ * @since 2.2.4
13275
+ */
13276
+ $fs->purge_valid_user_licenses_cache();
13277
+ }
13278
+
13279
  $result['next_page'] = $next_page;
13280
  }
13281
 
13282
+ return $result;
13283
+ }
13284
 
13285
+ /**
13286
+ * @author Leo Fajardo (@leorw)
13287
+ * @since 2.3.2
13288
+ *
13289
+ * @return array {
13290
+ * @key string Product slug.
13291
+ * @value array {
13292
+ * @property FS_Site $site
13293
+ * @property FS_Plugin_License $license
13294
+ * }
13295
+ * }
13296
+ */
13297
+ private function get_parent_and_addons_installs_info() {
13298
+ $fs = $this->is_addon() ?
13299
+ $this->get_parent_instance() :
13300
+ $this;
13301
+
13302
+ $installed_addons_ids = array();
13303
+
13304
+ $installed_addons_instances = $fs->get_installed_addons();
13305
+ foreach ( $installed_addons_instances as $instance ) {
13306
+ $installed_addons_ids[] = $instance->get_id();
13307
+ }
13308
+
13309
+ $addons_ids = array_unique( array_merge(
13310
+ $installed_addons_ids,
13311
+ $fs->get_updated_account_addons()
13312
+ ) );
13313
+
13314
+ // Add parent product info.
13315
+ $installs_info_by_slug_map = array(
13316
+ $fs->get_slug() => array(
13317
+ 'install' => $fs->get_site(),
13318
+ 'license' => $fs->_get_license()
13319
+ )
13320
+ );
13321
+
13322
+ foreach ( $addons_ids as $addon_id ) {
13323
+ $is_installed = isset( $installed_addons_ids_map[ $addon_id ] );
13324
+
13325
+ $addon_info = $fs->_get_addon_info( $addon_id, $is_installed );
13326
+
13327
+ if ( ! $addon_info['is_connected'] ) {
13328
+ // Add-on is not associated with an install entity.
13329
+ continue;
13330
+ }
13331
+
13332
+ $installs_info_by_slug_map[ $addon_info['slug'] ] = array(
13333
+ 'install' => $addon_info['site'],
13334
+ 'license' => isset( $addon_info['license'] ) ?
13335
+ $addon_info['license'] :
13336
+ null
13337
+ );
13338
+ }
13339
+
13340
+ return $installs_info_by_slug_map;
13341
  }
13342
 
13343
  /**
13372
  $total_sites_to_delegate = count( $sites_by_action['delegate'] );
13373
 
13374
  $next_page = '';
13375
+
13376
+ $has_any_install = fs_request_get_bool( 'has_any_install' );
13377
+
13378
  if ( $total_sites === $total_sites_to_delegate &&
13379
+ ! $this->is_network_upgrade_mode() &&
13380
+ ! $has_any_install
13381
  ) {
13382
  $this->delegate_connection();
13383
  } else {
13389
  $this->skip_connection( $sites_by_action['skip'] );
13390
  }
13391
 
13392
+ if ( empty( $sites_by_action['allow'] ) ) {
13393
+ if ( $has_any_install ) {
13394
+ $first_install = $fs->find_first_install();
13395
+
13396
+ if ( ! is_null( $first_install ) ) {
13397
+ $fs->_site = $first_install['install'];
13398
+ $fs->_storage->network_install_blog_id = $first_install['blog_id'];
13399
+
13400
+ $fs->_user = self::_get_user_by_id( $fs->_site->user_id );
13401
+ $fs->_storage->network_user_id = $fs->_user->id;
13402
+ }
13403
+ }
13404
+ } else {
13405
  if ( ! $fs->is_registered() || ! $this->_is_network_active ) {
13406
  $next_page = $fs->opt_in(
13407
  false,
13988
  $params['trial'] = 'true';
13989
  }
13990
 
13991
+ $url = $this->is_addon() ?
13992
+ $this->_parent->addon_url( $this->_slug ) :
13993
+ $this->_get_admin_page_url( 'pricing', $params );
13994
 
13995
+ return $this->apply_filters( 'pricing_url', $url );
13996
  }
13997
 
13998
  /**
14001
  * @author Vova Feldman (@svovaf)
14002
  * @since 1.0.6
14003
  *
14004
+ * @param string $billing_cycle Billing cycle
14005
+ * @param bool $is_trial
14006
+ * @param array $extra (optional) Extra parameters, override other query params.
14007
+ * @param bool|null $network
14008
  *
14009
  * @return string
14010
  */
14011
  function checkout_url(
14012
  $billing_cycle = WP_FS__PERIOD_ANNUALLY,
14013
  $is_trial = false,
14014
+ $extra = array(),
14015
+ $network = null
14016
  ) {
14017
  $this->_logger->entrance();
14018
 
14030
  */
14031
  $params = array_merge( $params, $extra );
14032
 
14033
+ return $this->_get_admin_page_url( 'pricing', $params, $network );
14034
  }
14035
 
14036
  /**
14039
  * @author Vova Feldman (@svovaf)
14040
  * @since 1.1.7
14041
  *
14042
+ * @param number $addon_id
14043
+ * @param number $pricing_id
14044
+ * @param string $billing_cycle
14045
+ * @param bool $is_trial
14046
+ * @param bool|null $network
14047
  *
14048
  * @return string
14049
  */
14051
  $addon_id,
14052
  $pricing_id,
14053
  $billing_cycle = WP_FS__PERIOD_ANNUALLY,
14054
+ $is_trial = false,
14055
+ $network = null
14056
  ) {
14057
  return $this->checkout_url( $billing_cycle, $is_trial, array(
14058
  'plugin_id' => $addon_id,
14059
  'pricing_id' => $pricing_id,
14060
+ ), $network );
14061
  }
14062
 
14063
  #endregion
14366
  $page_param = $this->_menu->get_slug( $page );
14367
 
14368
  if ( empty( $page ) &&
 
14369
  // Show the opt-in as an overlay for free wp.org themes or themes without any settings page.
14370
+ $this->show_opt_in_on_themes_page()
14371
  ) {
14372
  $params[ $this->get_unique_affix() . '_show_optin' ] = 'true';
14373
 
14596
  * @return array Active & public sites collection.
14597
  */
14598
  static function get_sites() {
14599
+ if ( ! is_multisite() ) {
14600
+ return array();
14601
+ }
14602
+
14603
  /**
14604
  * For consistency with get_blog_list() which only return active public sites.
14605
  *
14771
  * 'blog_id' => string The associated blog ID.
14772
  * }
14773
  */
14774
+ function find_first_install() {
14775
  $sites = self::get_sites();
14776
 
14777
  foreach ( $sites as $site ) {
14797
  *
14798
  * @param int $blog_id
14799
  * @param FS_Site $install
14800
+ *
14801
+ * @return bool Since 2.3.1 returns if a switch was made.
14802
  */
14803
  function switch_to_blog( $blog_id, FS_Site $install = null ) {
14804
  if ( $blog_id == $this->_context_is_network_or_blog_id ) {
14805
+ return false;
14806
  }
14807
 
14808
  switch_to_blog( $blog_id );
14816
  $install :
14817
  $this->get_install_by_blog_id( $blog_id );
14818
 
14819
+ $this->_user = false;
14820
+ $this->_licenses = false;
14821
+ $this->_license = null;
14822
+ $this->is_whitelabeled = null;
14823
 
14824
  if ( is_object( $this->_site ) ) {
14825
  // Try to fetch user from install.
14864
 
14865
  unset( $this->_site_api );
14866
  unset( $this->_user_api );
14867
+
14868
+ return false;
14869
  }
14870
 
14871
  /**
15298
  }
15299
 
15300
  /**
15301
+ * Check if currently in a specified admin page.
15302
+ *
15303
+ * @author Vova Feldman (@svovaf)
15304
+ * @since 1.2.2.7
15305
+ *
15306
+ * @param string $page
15307
+ *
15308
+ * @return bool
15309
+ */
15310
+ function is_admin_page( $page ) {
15311
+ return ( $this->_menu->get_slug( $page ) === fs_request_get( 'page', '', 'get' ) );
15312
+ }
15313
+
15314
+ /**
15315
+ * Check if currently in the product's main admin page.
15316
  *
15317
  * @author Vova Feldman (@svovaf)
15318
+ * @since 2.3.1
 
 
15319
  *
15320
  * @return bool
15321
  */
15322
+ function is_main_admin_page() {
15323
+ return $this->is_admin_page( '' );
15324
  }
15325
 
15326
  /**
15343
  * @since 1.2.2.7
15344
  *
15345
  * @return bool
15346
+ *
15347
+ * @deprecated Please use is_product_settings_page() instead;
15348
  */
15349
  function is_theme_settings_page() {
15350
+ return $this->is_product_settings_page();
15351
+ }
15352
+
15353
+ /**
15354
+ * Check if currently on the product's main setting page or on any of the Freemius added pages (via tabs).
15355
+ *
15356
+ * @author Vova Feldman (@svovaf)
15357
+ * @since 1.2.2.7
15358
+ *
15359
+ * @return bool
15360
+ */
15361
+ function is_product_settings_page() {
15362
  return fs_starts_with(
15363
  fs_request_get( 'page', '', 'get' ),
15364
  $this->_menu->get_slug()
15478
  ) );
15479
  }
15480
 
15481
+ /**
15482
+ * Add-ons URL.
15483
+ *
15484
+ * @author Vova Feldman (@svovaf)
15485
+ * @since 2.4.5
15486
+ *
15487
+ * @return string
15488
+ */
15489
+ function get_addons_url() {
15490
+ return $this->_get_admin_page_url( 'addons' );
15491
+ }
15492
+
15493
  /* Logger
15494
  ------------------------------------------------------------------------------------------------------------------*/
15495
  /**
15715
  $this->get_install_by_blog_id();
15716
 
15717
  if ( fs_is_network_admin() &&
15718
+ $this->is_network_active() &&
15719
+ ! is_object( $site ) &&
15720
+ FS_Site::is_valid_id( $this->_storage->network_install_blog_id )
15721
  ) {
15722
  $first_install = $this->find_first_install();
15723
 
15778
  /**
15779
  * This is a special fault tolerance mechanism to handle a scenario that the user data is missing.
15780
  */
15781
+ $user = $this->sync_user_by_current_install();
15782
  }
15783
 
15784
  $this->_user = ( $user instanceof FS_User ) ?
15818
  * @author Vova Feldman (@svovaf)
15819
  * @since 2.0.0
15820
  *
15821
+ * @param number|null $site_user_id
15822
+ *
15823
  * @return \FS_User|mixed
15824
  */
15825
+ private function sync_user_by_current_install( $site_user_id = null ) {
15826
+ $site_user_id = FS_Site::is_valid_id( $site_user_id ) ?
15827
+ $site_user_id :
15828
+ $this->_site->user_id;
15829
+
15830
  $api = $this->get_api_site_scope();
15831
 
15832
  $uid = $this->get_anonymous_id();
15833
+ $request_path = "/users/{$site_user_id}.json?uid={$uid}";
15834
 
15835
  $result = $api->get( $request_path, false, WP_FS__TIME_10_MIN_IN_SEC );
15836
 
15902
  return $versions;
15903
  }
15904
 
15905
+ /**
15906
+ * @author Leo Fajardo (@leorw)
15907
+ * @since 2.3.0
15908
+ *
15909
+ * @return bool
15910
+ */
15911
+ function has_beta_update() {
15912
+ return (
15913
+ ! empty( $this->_storage->beta_data ) &&
15914
+ ( true === $this->_storage->beta_data['is_beta'] ) &&
15915
+ version_compare( $this->_storage->beta_data['version'], $this->get_plugin_version(), '>' )
15916
+ );
15917
+ }
15918
+
15919
+ /**
15920
+ * @author Leo Fajardo (@leorw)
15921
+ * @since 2.3.0
15922
+ *
15923
+ * @return bool
15924
+ */
15925
+ function is_beta() {
15926
+ return (
15927
+ ! empty( $this->_storage->beta_data ) &&
15928
+ ( true === $this->_storage->beta_data['is_beta'] ) &&
15929
+ ( $this->get_plugin_version() === $this->_storage->beta_data['version'] )
15930
+ );
15931
+ }
15932
+
15933
+ /**
15934
+ * @author Leo Fajardo (@leorw)
15935
+ * @since 2.3.0
15936
+ */
15937
+ private function sync_user_beta_mode() {
15938
+ $user = $this->get_api_user_scope()->get( '/?plugin_id=' . $this->get_id() . '&fields=is_beta' );
15939
+
15940
+ if ( $this->is_api_result_entity( $user ) ) {
15941
+ $this->_user->is_beta = $user->is_beta;
15942
+ $this->_store_user();
15943
+ }
15944
+ }
15945
+
15946
  /**
15947
  * @author Vova Feldman (@svovaf)
15948
  * @since 1.1.7.4
15986
  'is_uninstalled' => false,
15987
  ) );
15988
 
15989
+ if ( $this->is_addon() ) {
15990
+ $parent_fs = $this->get_parent_instance();
 
15991
 
15992
+ $params['parent_plugin_slug'] = $parent_fs->_slug;
15993
+ $params['parent_plugin_id'] = $parent_fs->get_id();
15994
+ }
15995
 
15996
+ if ( true === $network_level_or_blog_id ) {
15997
+ if ( ! isset( $override_with['sites'] ) ) {
15998
+ $params['sites'] = $this->get_sites_for_network_level_optin();
 
 
 
 
 
15999
  }
16000
  } else {
16001
  $site = is_numeric( $network_level_or_blog_id ) ?
16088
  if ( ! $is_uninstall ) {
16089
  $fs_user = Freemius::_get_user_by_email( $email );
16090
  if ( is_object( $fs_user ) && ! $this->is_pending_activation() ) {
16091
+ return $this->install_with_user(
16092
+ $fs_user,
16093
  false,
16094
  $trial_plan_id,
16095
+ true,
16096
+ true,
16097
  $sites
16098
  );
16099
  }
16260
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16261
  $decoded->is_marketing_allowed :
16262
  null ),
16263
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16264
+ $decoded->is_extensions_tracking_allowed :
16265
+ null ),
16266
  $decoded->install_id,
16267
  $decoded->install_public_key,
16268
  $decoded->install_secret_key,
16276
  ( isset( $decoded->is_marketing_allowed ) && ! is_null( $decoded->is_marketing_allowed ) ?
16277
  $decoded->is_marketing_allowed :
16278
  null ),
16279
+ ( isset( $decoded->is_extensions_tracking_allowed ) && ! is_null( $decoded->is_extensions_tracking_allowed ) ?
16280
+ $decoded->is_extensions_tracking_allowed :
16281
+ null ),
16282
  $decoded->installs,
16283
  false
16284
  );
16364
  // If Freemius was OFF before, turn it on.
16365
  $this->turn_on();
16366
 
16367
+ $this->handle_account_connection(
16368
+ $installs,
16369
+ ( ! $this->_is_network_active || ! $is_network_level_opt_in )
16370
+ );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16371
 
16372
  if ( is_numeric( $first_install->license_id ) ) {
16373
+ $this->set_license( $this->_get_license_by_id( $first_install->license_id ) );
16374
  }
16375
 
16376
  $this->_admin_notices->remove_sticky( 'connect_account' );
16505
  fs_request_get( 'user_public_key' ),
16506
  fs_request_get( 'user_secret_key' ),
16507
  fs_request_get_bool( 'is_marketing_allowed', null ),
16508
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
16509
  $pending_sites_info['blog_ids'],
16510
  $pending_sites_info['license_key'],
16511
  $pending_sites_info['trial_plan_id']
16516
  fs_request_get( 'user_public_key' ),
16517
  fs_request_get( 'user_secret_key' ),
16518
  fs_request_get_bool( 'is_marketing_allowed', null ),
16519
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null ),
16520
  fs_request_get( 'install_id' ),
16521
  fs_request_get( 'install_public_key' ),
16522
  fs_request_get( 'install_secret_key' ),
16572
  * @param string $user_public_key
16573
  * @param string $user_secret_key
16574
  * @param bool|null $is_marketing_allowed
16575
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16576
  * @param number $install_id
16577
  * @param string $install_public_key
16578
  * @param string $install_secret_key
16579
  * @param bool $redirect
16580
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
16581
  *
16582
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
16583
  */
16586
  $user_public_key,
16587
  $user_secret_key,
16588
  $is_marketing_allowed,
16589
+ $is_extensions_tracking_allowed,
16590
  $install_id,
16591
  $install_public_key,
16592
  $install_secret_key,
16628
  $this->disable_opt_in_notice_and_lock_user();
16629
  }
16630
 
16631
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16632
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16633
+ }
16634
+
16635
  return $this->setup_account(
16636
  $this->_user,
16637
  $this->_site,
16650
  * @param string $user_public_key
16651
  * @param string $user_secret_key
16652
  * @param bool|null $is_marketing_allowed
16653
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16654
  * @param array $site_ids
16655
  * @param bool $license_key
16656
  * @param bool $trial_plan_id
16663
  $user_public_key,
16664
  $user_secret_key,
16665
  $is_marketing_allowed,
16666
+ $is_extensions_tracking_allowed,
16667
  $site_ids,
16668
  $license_key = false,
16669
  $trial_plan_id = false,
16675
  $this->disable_opt_in_notice_and_lock_user();
16676
  }
16677
 
16678
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16679
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16680
+ }
16681
+
16682
  $sites = array();
16683
  foreach ( $site_ids as $site_id ) {
16684
  $sites[] = $this->get_site_info( array( 'blog_id' => $site_id ) );
16697
  * @param string $user_public_key
16698
  * @param string $user_secret_key
16699
  * @param bool|null $is_marketing_allowed
16700
+ * @param bool|null $is_extensions_tracking_allowed Since 2.3.2
16701
  * @param object[] $installs
16702
  * @param bool $redirect
16703
+ * @param bool $auto_install Since 1.2.1.7 If `true` and setting up an account with a valid license, will redirect (or return a URL) to the account page with a special parameter to trigger the auto installation processes.
 
 
16704
  *
16705
  * @return string If redirect is `false`, returns the next page the user should be redirected to.
16706
  */
16709
  $user_public_key,
16710
  $user_secret_key,
16711
  $is_marketing_allowed,
16712
+ $is_extensions_tracking_allowed,
16713
  array $installs,
16714
  $redirect = true,
16715
  $auto_install = false
16720
  $this->disable_opt_in_notice_and_lock_user();
16721
  }
16722
 
16723
+ if ( ! is_null( $is_extensions_tracking_allowed ) ) {
16724
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
16725
+ }
16726
+
16727
  $install_ids = array();
16728
 
16729
  foreach ( $installs as $install ) {
16833
  */
16834
  $license_key = fs_request_get( 'license_secret_key' );
16835
 
16836
+ $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', true ) );
16837
+
16838
  $this->install_with_current_user( $license_key );
16839
  }
16840
  }
16879
  *
16880
  * @return \FS_Site|object|string If redirect is `false`, returns the next page the user should be redirected to, or the API error object if failed to install. If $setup_account is set to `false`, return the newly created install.
16881
  */
16882
+ function install_with_user(
16883
  FS_User $user,
16884
  $license_key = false,
16885
  $trial_plan_id = false,
16968
 
16969
  if ( ! empty( $license_key ) ) {
16970
  $extra_install_params['license_key'] = $this->apply_filters( 'license_key', $license_key );
16971
+
16972
+ if ( $silent ) {
16973
+ $extra_install_params['ignore_license_owner'] = true;
16974
+ }
16975
  } else if ( FS_Plugin_Plan::is_valid_id( $trial_plan_id ) ) {
16976
  $extra_install_params['trial_plan_id'] = $trial_plan_id;
16977
  }
16993
  ! $this->is_api_result_object( $result, 'installs' )
16994
  ) {
16995
  if ( ! empty( $args['license_key'] ) ) {
16996
+ // Pass the fully entered license key to the failure handler.
16997
  $args['license_key'] = $license_key;
16998
  }
16999
 
17028
  return $result;
17029
  }
17030
 
17031
+ /**
17032
+ * Tries to activate add-on account based on parent plugin info.
17033
+ *
17034
+ * @author Vova Feldman (@svovaf)
17035
+ * @since 1.0.6
17036
+ *
17037
+ * @param Freemius $parent_fs
17038
+ * @param bool|int|null $network_level_or_blog_id True for network level opt-in and integer for opt-in for specified blog in the network.
17039
+ */
17040
+ private function _activate_addon_account( Freemius $parent_fs, $network_level_or_blog_id = null ) {
17041
+ if ( $this->is_registered() ) {
17042
+ // Already activated.
17043
+ return;
17044
+ }
17045
+
17046
+ /**
17047
+ * Do not override the `uid` if network-level opt-in since the call to `get_sites_for_network_level_optin()`
17048
+ * already returns the data for the current blog.
17049
+ *
17050
+ * @author Leo Fajardo (@leorw)
17051
+ * @since 2.3.0
17052
+ */
17053
+ $uid_param_to_override = ( true === $network_level_or_blog_id ) ?
17054
+ array() :
17055
+ array( 'uid' => $this->get_anonymous_id() );
17056
+
17057
+ $params = $this->get_install_data_for_api(
17058
+ $uid_param_to_override,
17059
+ false,
17060
+ false,
17061
+ /**
17062
+ * Do not include the data for the current blog if network-level opt-in since the call to `get_sites_for_network_level_optin`
17063
+ * already includes the data for it.
17064
+ *
17065
+ * @author Leo Fajardo (@leorw)
17066
+ * @since 2.3.0
17067
+ */
17068
+ ( true !== $network_level_or_blog_id )
17069
+ );
17070
+
17071
+ if ( true === $network_level_or_blog_id ) {
17072
+ $params['sites'] = $this->get_sites_for_network_level_optin();
17073
+
17074
+ if ( empty( $params['sites'] ) ) {
17075
+ return;
17076
+ }
17077
+ }
17078
+
17079
+ // Activate add-on with parent plugin credentials.
17080
+ $result = $parent_fs->get_api_site_scope()->call(
17081
+ "/addons/{$this->_plugin->id}/installs.json",
17082
+ 'post',
17083
+ $params
17084
+ );
17085
+
17086
+ if ( ! $this->is_api_result_object( $result, 'installs' ) ) {
17087
+ $error_message = FS_Api::is_api_error_object( $result ) ?
17088
+ $result->error->message :
17089
+ $this->get_text_inline( 'An unknown error has occurred.', 'unknown-error' );
17090
+
17091
+ $this->_admin_notices->add(
17092
+ sprintf( $this->get_text_inline( 'Couldn\'t activate %s.', 'could-not-activate-x' ), $this->get_plugin_name() ) . ' ' .
17093
+ $this->get_text_inline( 'Please contact us with the following message:', 'contact-us-with-error-message' ) . ' ' . '<b>' . $error_message . '</b>',
17094
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
17095
+ 'error'
17096
+ );
17097
+
17098
+ return;
17099
+ }
17100
+
17101
+ $addon_installs = $result->installs;
17102
+ foreach ( $addon_installs as $key => $addon_install ) {
17103
+ $addon_installs[ $key ] = new FS_Site( $addon_install );
17104
+ }
17105
+
17106
+ $first_install = $addon_installs[0];
17107
+
17108
+ // Get user information based on parent's plugin.
17109
+ $user = $parent_fs->get_user();
17110
+
17111
+ // First of all, set site and user info - otherwise we won't
17112
+ // be able to invoke API calls.
17113
+ $this->_site = $first_install;
17114
+ $this->_user = $user;
17115
+
17116
+ // Sync add-on plans.
17117
+ $this->_sync_plans();
17118
+
17119
+ $this->handle_account_connection( $addon_installs, ! fs_is_network_admin() );
17120
+
17121
+ // Get site's current plan.
17122
+ //$this->_site->plan = $this->_get_plan_by_id( $this->_site->plan->id );
17123
+
17124
+ // Sync licenses.
17125
+ $this->_sync_licenses();
17126
+
17127
+ if ( ! fs_is_network_admin() ) {
17128
+ // Try to activate premium license.
17129
+ $this->_activate_license( true );
17130
+ } else {
17131
+ $license_id = fs_request_get( 'license_id' );
17132
+
17133
+ if ( is_object( $this->_site ) &&
17134
+ FS_Plugin_License::is_valid_id( $license_id ) &&
17135
+ $license_id == $this->_site->license_id
17136
+ ) {
17137
+ // License is already activated.
17138
+ return;
17139
+ }
17140
+
17141
+ $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
17142
+ $this->_get_license_by_id( $license_id ) :
17143
+ $this->_get_available_premium_license();
17144
+
17145
+ if ( is_object( $premium_license ) ) {
17146
+ $this->maybe_network_activate_addon_license( $premium_license );
17147
+ }
17148
+ }
17149
+ }
17150
+
17151
+ /**
17152
+ * @author Leo Fajardo (@leorw)
17153
+ * @since 2.3.0
17154
+ *
17155
+ * @param FS_Site[] $installs
17156
+ * @param bool $is_site_level
17157
+ */
17158
+ private function handle_account_connection( $installs, $is_site_level ) {
17159
+ $first_install = $installs[0];
17160
+
17161
+ if ( $is_site_level ) {
17162
+ $this->_set_account( $this->_user, $first_install );
17163
+
17164
+ $this->do_action( 'after_account_connection', $this->_user, $first_install );
17165
+ } else {
17166
+ $this->_store_user();
17167
+
17168
+ // Map site addresses to their blog IDs.
17169
+ $address_to_blog_map = $this->get_address_to_blog_map();
17170
+
17171
+ $first_blog_id = null;
17172
+ $blog_2_install_map = array();
17173
+ foreach ( $installs as $install ) {
17174
+ $address = trailingslashit( fs_strip_url_protocol( $install->url ) );
17175
+ $blog_id = $address_to_blog_map[ $address ];
17176
+
17177
+ $this->_store_site( true, $blog_id, $install );
17178
+
17179
+ if ( is_null( $first_blog_id ) ) {
17180
+ $first_blog_id = $blog_id;
17181
+ }
17182
+
17183
+ $blog_2_install_map[ $blog_id ] = $install;
17184
+ }
17185
+
17186
+ if ( ! FS_User::is_valid_id( $this->_storage->network_user_id ) ||
17187
+ ! is_object( self::_get_user_by_id( $this->_storage->network_user_id ) )
17188
+ ) {
17189
+ // Store network user.
17190
+ $this->_storage->network_user_id = $this->_user->id;
17191
+ }
17192
+
17193
+ if ( ! FS_Site::is_valid_id( $this->_storage->network_install_blog_id ) ) {
17194
+ $this->_storage->network_install_blog_id = $first_blog_id;
17195
+ }
17196
 
17197
+ if ( count( $installs ) === count( $address_to_blog_map ) ) {
17198
+ // Super admin opted in for all sites in the network.
17199
+ $this->_storage->is_network_connected = true;
17200
+ }
 
 
 
 
17201
 
17202
+ $this->_store_licenses( false );
 
 
 
 
 
 
17203
 
17204
+ self::$_accounts->store();
 
17205
 
17206
+ // Don't sync the installs data on network upgrade
17207
+ if ( ! $this->network_upgrade_mode_completed() ) {
17208
+ $this->send_installs_update();
17209
+ }
17210
 
17211
+ // Switch install context back to the first install.
17212
+ $this->_site = $first_install;
 
 
17213
 
17214
+ $current_blog = get_current_blog_id();
 
17215
 
17216
+ foreach ( $blog_2_install_map as $blog_id => $install ) {
17217
+ $this->switch_to_blog( $blog_id );
17218
 
17219
+ $this->do_action( 'after_account_connection', $this->_user, $install );
17220
+ }
17221
 
17222
+ $this->switch_to_blog( $current_blog );
 
17223
 
17224
+ $this->do_action( 'after_network_account_connection', $this->_user, $blog_2_install_map );
17225
+ }
17226
  }
17227
 
17228
  /**
17339
  ! $this->is_registered()
17340
  );
17341
 
17342
+ $should_hide_site_admin_settings = $this->apply_filters( 'should_hide_site_admin_settings_on_network_activation_mode', $should_hide_site_admin_settings );
17343
+
17344
  if ( ( ! $this->has_api_connectivity() && ! $this->is_enable_anonymous() ) ||
17345
  $should_hide_site_admin_settings
17346
  ) {
17370
  */
17371
  private function add_menu_action() {
17372
  if ( $this->is_activation_mode() ) {
17373
+ if ( $this->show_opt_in_on_setting_page() ) {
17374
  $this->override_plugin_menu_with_activation();
17375
  } else {
17376
  /**
17392
  }
17393
  } else if (
17394
  fs_request_is_action( 'sync_user' ) &&
17395
+ ( ! $this->has_settings_menu() || $this->show_opt_in_on_themes_page() )
17396
  ) {
17397
  $this->_handle_account_user_sync();
17398
  }
17547
  }
17548
 
17549
  if ( ! $this->_menu->has_menu() || $this->_menu->is_top_level() ) {
17550
+
17551
+ if ( $this->_menu->has_menu() ||
17552
+ ! $this->is_addon() ||
17553
+ $this->is_activation_mode()
17554
+ ) {
17555
+ $this->_dynamically_added_top_level_page_hook_name = $this->_menu->add_page_and_update(
17556
+ $this->get_plugin_name(),
17557
+ $this->get_plugin_name(),
17558
+ 'manage_options',
17559
+ $this->_menu->has_menu() ? $this->_menu->get_slug() : $this->_slug
17560
+ );
17561
+ }
17562
  } else {
17563
  $this->_menu->add_subpage_and_update(
17564
  $this->_menu->get_parent_slug(),
17640
  // Didn't ask to hide the pricing page.
17641
  $this->is_page_visible( 'pricing' ) &&
17642
  // Don't have a valid active license or has more than one plan.
17643
+ ( ! $this->is_paying() || ! $this->is_single_plan( true ) )
17644
  );
17645
  }
17646
 
17647
+ /**
17648
+ * @author Leo Fajardo (@leorw)
17649
+ * @since 2.3.0
17650
+ *
17651
+ * @param bool $is_activation_mode
17652
+ *
17653
+ * @return bool
17654
+ */
17655
+ private function should_add_submenu_or_action_links( $is_activation_mode ) {
17656
+ if ( $this->is_addon() ) {
17657
+ // No submenu items or action links for add-ons.
17658
+ return false;
17659
+ }
17660
+
17661
+ if ( $this->show_opt_in_on_themes_page() ) {
17662
+ if ( ! fs_is_network_admin() ) {
17663
+ // Also add action links or submenu items when running in a free .org theme so the tabs will be visible.
17664
+ return true;
17665
+ }
17666
+ } else if ( $is_activation_mode ) {
17667
+ // Don't show submenu-items/tabs in activation mode, unless it's a wp.org theme.
17668
+ return false;
17669
+ }
17670
+
17671
+ if ( fs_is_network_admin() ) {
17672
+ /**
17673
+ * Add submenu items or action links to network level when plugin was network activated and the super
17674
+ * admin did NOT delegate the connection of all sites to site admins.
17675
+ */
17676
+ return (
17677
+ $this->_is_network_active &&
17678
+ ( WP_FS__SHOW_NETWORK_EVEN_WHEN_DELEGATED ||
17679
+ ! $this->is_network_delegated_connection() )
17680
+ );
17681
+ }
17682
+
17683
+ return ( ! $this->_is_network_active || $this->is_delegated_connection() );
17684
+ }
17685
+
17686
  /**
17687
  * Add default Freemius menu items.
17688
  *
17695
 
17696
  $is_activation_mode = $this->is_activation_mode();
17697
 
17698
+ $add_submenu_items = $this->should_add_submenu_or_action_links( $is_activation_mode );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17699
 
17700
  if ( $add_submenu_items ) {
17701
  if ( $this->has_affiliate_program() ) {
17744
  }
17745
 
17746
  if ( $add_submenu_items ) {
17747
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
17748
+ // Add contact page.
17749
+ $this->add_submenu_item(
17750
+ $this->get_text_inline( 'Contact Us', 'contact-us' ),
17751
+ array( &$this, '_contact_page_render' ),
17752
+ $this->get_plugin_name() . ' &ndash; ' . $this->get_text_inline( 'Contact Us', 'contact-us' ),
17753
+ 'manage_options',
17754
+ 'contact',
17755
+ 'Freemius::_clean_admin_content_section',
17756
+ WP_FS__DEFAULT_PRIORITY,
17757
+ $this->is_submenu_item_visible( 'contact' )
17758
+ );
17759
+ }
17760
 
17761
  if ( $this->has_addons() ) {
17762
  $this->add_submenu_item(
17775
  if ( $add_submenu_items ||
17776
  ( $is_activation_mode && $this->is_only_premium() && $this->is_admin_page( 'pricing' ) )
17777
  ) {
17778
+ if (! WP_FS__DEMO_MODE && ! $this->is_whitelabeled() ) {
17779
  $show_pricing = (
17780
  $this->is_submenu_item_visible( 'pricing' ) &&
17781
  $this->is_pricing_page_visible()
18140
 
18141
  #endregion ------------------------------------------------------------------
18142
 
18143
+ #--------------------------------------------------------------------------------
18144
+ #region Admin Notices
18145
+ #--------------------------------------------------------------------------------
18146
+
18147
+ /**
18148
+ * @author Vova Feldman (@svovaf)
18149
+ * @since 2.3.1
18150
+ *
18151
+ * @param string|string[] $ids
18152
+ * @param int|null $network_level_or_blog_id
18153
+ *
18154
+ * @uses FS_Admin_Notices::remove_sticky()
18155
+ */
18156
+ function remove_sticky( $ids, $network_level_or_blog_id = null ) {
18157
+ $this->_admin_notices->remove_sticky( $ids, $network_level_or_blog_id );
18158
+ }
18159
+
18160
+ #endregion
18161
 
18162
  #--------------------------------------------------------------------------------
18163
  #region Actions / Hooks / Filters
18534
  private function _store_site( $store = true, $network_level_or_blog_id = null, FS_Site $site = null ) {
18535
  $this->_logger->entrance();
18536
 
18537
+ if ( is_null( $site ) ) {
18538
+ $site = $this->_site;
18539
+ }
18540
+
18541
+ if ( !isset( $site ) || !is_object($site) || empty( $site->id ) ) {
18542
  $this->_logger->error( "Empty install ID, can't store site." );
18543
 
18544
  return;
18545
  }
18546
 
18547
+ $site_clone = clone $site;
 
18548
 
18549
  $sites = self::get_all_sites( $this->_module_type, $network_level_or_blog_id );
18550
 
18551
+ if ( is_object( $this->_user ) && $this->_user->id != $site->user_id ) {
18552
+ $this->sync_user_by_current_install( $site->user_id );
18553
 
18554
+ $prev_stored_user_id = $this->_storage->get( 'prev_user_id', false, $network_level_or_blog_id );
18555
+
18556
+ if ( empty( $prev_stored_user_id ) &&
18557
+ is_object($this->_user) && $this->_user->id != $site->user_id
18558
+ ) {
18559
+ /**
18560
+ * Store the current user ID as the previous user ID so that the previous user can be used
18561
+ * as the install's owner while the new owner's details are not yet available.
18562
+ *
18563
+ * This will be executed only in the `replica` site. For example, there are 2 sites, namely `original`
18564
+ * and `replica`, then an ownership change was initiated and completed in the `original`, the `replica`
18565
+ * will be using the previous user until it is updated again (e.g.: until the next clone of `original`
18566
+ * into `replica`.
18567
+ *
18568
+ * @author Leo Fajardo (@leorw)
18569
+ */
18570
+ $this->_storage->store( 'prev_user_id', $sites[ $this->_slug ]->user_id, $network_level_or_blog_id );
18571
+ }
18572
  }
18573
 
18574
+ $sites[ $this->_slug ] = $site_clone;
18575
 
18576
  $this->set_account_option( 'sites', $sites, $store, $network_level_or_blog_id );
18577
  }
18749
  return false;
18750
  }
18751
 
18752
+ unset( $all_addons[ $this->_plugin->id ] );
18753
+
18754
+ self::$_accounts->set_option( 'account_addons', $all_addons, $store );
18755
+
18756
+ return true;
18757
+ }
18758
+
18759
+ /**
18760
+ * Update account add-ons list.
18761
+ *
18762
+ * @author Vova Feldman (@svovaf)
18763
+ * @since 1.0.6
18764
+ *
18765
+ * @param FS_Plugin[] $addons
18766
+ * @param bool $store Flush to Database if true.
18767
+ */
18768
+ private function _store_account_addons( $addons, $store = true ) {
18769
+ $this->_logger->entrance();
18770
+
18771
+ $all_addons = self::get_all_account_addons();
18772
+ $all_addons[ $this->_plugin->id ] = $addons;
18773
+ self::$_accounts->set_option( 'account_addons', $all_addons, $store );
18774
+ }
18775
+
18776
+ /**
18777
+ * Purges the cache for the valid user licenses API call so that when the `Account` or `Add-Ons` page is loaded,
18778
+ * the valid user licenses will be fetched again and the account add-ons may be updated.
18779
+ *
18780
+ * @author Leo Fajardo (@leorw)
18781
+ * @since 2.2.4
18782
+ */
18783
+ private function purge_valid_user_licenses_cache() {
18784
+ if ( ! $this->is_registered() ) {
18785
+ return;
18786
+ }
18787
+
18788
+ $this->get_api_user_scope()->purge_cache( $this->get_valid_user_licenses_endpoint() );
18789
+ }
18790
+
18791
+ /**
18792
+ * @author Leo Fajardo (@leorw)
18793
+ * @since 2.3.0
18794
+ *
18795
+ * @param array $all_licenses
18796
+ * @param number|null $site_license_id
18797
+ * @param bool $include_parent_licenses
18798
+ *
18799
+ * @return array
18800
+ */
18801
+ private function get_foreign_licenses_info( $all_licenses, $site_license_id = null, $include_parent_licenses = false ) {
18802
+ $foreign_licenses = array(
18803
+ 'ids' => array(),
18804
+ 'license_keys' => array()
18805
+ );
18806
+
18807
+ $parent_license_ids_map = array();
18808
+
18809
+ foreach ( $all_licenses as $license ) {
18810
+ if ( $license->user_id == $this->_user->id || $license->id == $site_license_id ) {
18811
+ continue;
18812
+ }
18813
+
18814
+ $foreign_licenses['ids'][] = $license->id;
18815
+ $foreign_licenses['license_keys'][] = $license->secret_key;
18816
+
18817
+ if (
18818
+ $include_parent_licenses &&
18819
+ is_object( $this->_license ) &&
18820
+ FS_Plugin_License::is_valid_id( $this->_license->parent_license_id ) &&
18821
+ ! isset( $parent_license_ids_map[ $this->_license->parent_license_id ] )
18822
+ ) {
18823
+ /**
18824
+ * Include the parent license's info only if it has not been included before since child licenses
18825
+ * can have the same parent license.
18826
+ */
18827
+ $foreign_licenses['ids'][] = $this->_license->parent_license_id;
18828
+ $foreign_licenses['license_keys'][] = $license->secret_key;
18829
+
18830
+ $parent_license_ids_map[ $this->_license->parent_license_id ] = true;
18831
+ }
18832
+ }
18833
+
18834
+ if ( empty( $foreign_licenses['ids'] ) ) {
18835
+ $foreign_licenses = array();
18836
+ }
18837
+
18838
+ return $foreign_licenses;
18839
+ }
18840
+
18841
+ /**
18842
+ * @author Leo Fajardo (@leorw)
18843
+ * @since 2.3.0
18844
+ *
18845
+ * @return string
18846
+ */
18847
+ private function get_valid_user_licenses_endpoint() {
18848
+ $user_licenses_endpoint = '/licenses.json?type=active' .
18849
+ ( FS_Plugin::is_valid_id( $this->get_bundle_id() ) ? '&is_enriched=true' : '' );
18850
+
18851
+ $foreign_licenses = $this->get_foreign_licenses_info( self::get_all_licenses( $this->_module_id ), null, true );
18852
+
18853
+ if ( ! empty ( $foreign_licenses ) ) {
18854
+ $foreign_licenses = array(
18855
+ // Prefix with `+` to tell the server to include foreign licenses in the licenses collection.
18856
+ 'ids' => ( urlencode( '+' ) . implode( ',', $foreign_licenses['ids'] ) ),
18857
+ 'license_keys' => implode( ',', array_map( 'urlencode', $foreign_licenses['license_keys'] ) )
18858
+ );
18859
+
18860
+ $user_licenses_endpoint = add_query_arg( $foreign_licenses, $user_licenses_endpoint );
18861
+ }
18862
+
18863
+ return $user_licenses_endpoint;
18864
+ }
18865
+
18866
+ /**
18867
+ * Fetches active licenses that are enriched with product type if there's a context `bundle_id` and bundle
18868
+ * licenses enriched with product IDs if there are any. From the licenses, the `get_updated_account_addons`
18869
+ * method filters out non–add-on product IDs and stores the add-on IDs.
18870
+ *
18871
+ * @author Leo Fajardo (@leorw)
18872
+ * @since 2.2.4
18873
+ *
18874
+ * @return stdClass[] array
18875
+ */
18876
+ private function fetch_valid_user_licenses() {
18877
+ $this->_logger->entrance();
18878
+
18879
+ $result = $this->get_api_user_scope()->get( $this->get_valid_user_licenses_endpoint() );
18880
+
18881
+ if ( ! $this->is_api_result_object( $result, 'licenses' ) ||
18882
+ ! is_array( $result->licenses )
18883
+ ) {
18884
+ return array();
18885
+ }
18886
+
18887
+ return $result->licenses;
18888
+ }
18889
+
18890
+ /**
18891
+ * @author Leo Fajardo (@leorw)
18892
+ * @since 2.2.4
18893
+ *
18894
+ * @return number[] Account add-on IDs.
18895
+ */
18896
+ function get_updated_account_addons() {
18897
+ $addons = $this->get_addons();
18898
+ if ( empty( $addons ) ) {
18899
+ return array();
18900
+ }
18901
+
18902
+ $account_addons = $this->get_account_addons();
18903
+ if ( ! is_array( $account_addons ) ) {
18904
+ $account_addons = array();
18905
+ }
18906
+
18907
+ $user_licenses = $this->is_registered() ?
18908
+ $this->fetch_valid_user_licenses() :
18909
+ array();
18910
+
18911
+ if ( empty( $user_licenses ) ) {
18912
+ return $account_addons;
18913
+ }
18914
+
18915
+ $addon_ids = array();
18916
+ foreach ( $addons as $addon ) {
18917
+ $addon_ids[] = $addon->id;
18918
+ }
18919
 
18920
+ $license_product_ids = array();
18921
 
18922
+ foreach ( $user_licenses as $license ) {
18923
+ if ( isset( $license->plugin_type ) && 'bundle' === $license->plugin_type ) {
18924
+ $license_product_ids = array_merge( $license_product_ids, $license->products );
18925
+ } else {
18926
+ $license_product_ids[] = $license->plugin_id;
18927
+ }
18928
+ }
18929
 
18930
+ // Filter out non–add-on IDs.
18931
+ $new_account_addons = array_intersect( $addon_ids, $license_product_ids );
18932
+ if ( count( $new_account_addons ) !== count( $account_addons ) ) {
18933
+ $this->_store_account_addons( array_unique( $new_account_addons ) );
18934
+ }
 
 
 
 
 
 
18935
 
18936
+ return $new_account_addons;
 
 
18937
  }
18938
 
18939
  /**
19030
  $api = $this->get_api_site_scope();
19031
 
19032
  if ( ! is_numeric( $license_id ) ) {
19033
+ $license_id = FS_Plugin_License::is_valid_id( $this->_license->parent_license_id ) ?
19034
+ $this->_license->parent_license_id :
19035
+ $this->_license->id;
19036
  }
19037
 
19038
  $result = $api->get( "/licenses/{$license_id}/subscriptions.json", true );
19139
  $plugin_id = $this->_plugin->id;
19140
  }
19141
 
19142
+ $user_licenses_endpoint = "/plugins/{$plugin_id}/licenses.json?is_enriched=true";
19143
  if ( ! empty ( $foreign_licenses ) ) {
19144
  $foreign_licenses = array(
19145
  // Prefix with `+` to tell the server to include foreign licenses in the licenses collection.
19188
 
19189
  if ( is_numeric( $site_license_id ) ) {
19190
  // Try to retrieve a foreign license that is linked to the install.
19191
+ $api_result = $api->call( '/licenses.json?is_enriched=true' );
19192
 
19193
  if ( $this->is_api_result_object( $api_result, 'licenses' ) &&
19194
  is_array( $api_result->licenses )
19201
  } else {
19202
  $api_errors[] = $api_result;
19203
  }
19204
+ } else if (
19205
+ is_object( $this->_license ) &&
19206
+ /**
19207
+ * Sync only if the license belongs to the context plugin. `$plugin_id` can be an add-on ID while
19208
+ * the FS instance that does the syncing is the parent FS instance.
19209
+ *
19210
+ * @author Leo Fajardo (@leorw)
19211
+ * @since 2.3.0
19212
+ */
19213
+ $this->_license->plugin_id == $plugin_id
19214
+ ) {
19215
  $is_license_in_result = false;
19216
  if ( ! empty( $result ) ) {
19217
  foreach ( $result as $license ) {
19225
  if ( ! $is_license_in_result ) {
19226
  // Fetch foreign license by ID and license key.
19227
  $license = $api->get( "/licenses/{$this->_license->id}.json?license_key=" .
19228
+ urlencode( $this->_license->secret_key ) . '&is_enriched=true' );
19229
 
19230
  if ( $this->is_api_result_entity( $license ) ) {
19231
  $result[] = new FS_Plugin_License( $license );
19294
  $plugin_id = $this->_plugin->id;
19295
  }
19296
 
19297
+ $include_bundles = (
19298
+ is_object( $this->_plugin ) &&
19299
+ FS_Plugin::is_valid_id( $this->_plugin->bundle_id )
19300
+ );
19301
+
19302
+ $result = $api->get(
19303
+ "/plugins/{$plugin_id}/payments.json?include_addons=true" . ($include_bundles ? '&include_bundles=true' : ''),
19304
+ $flush
19305
+ );
19306
 
19307
  if ( ! isset( $result->error ) ) {
19308
  for ( $i = 0, $len = count( $result->payments ); $i < $len; $i ++ ) {
19372
  return false;
19373
  }
19374
 
19375
+ $plugin_version = $this->get_plugin_version();
19376
+
19377
  // Check if version is actually newer.
19378
  $has_new_version =
19379
  // If it's an non-installed add-on then always return latest.
19380
  ( $this->_is_addon_id( $plugin_id ) && ! $this->is_addon_activated( $plugin_id ) ) ||
19381
  // Compare versions.
19382
+ version_compare( $plugin_version, $latest_tag->version, '<' );
19383
 
19384
  $this->_logger->departure( $has_new_version ? 'Found newer plugin version ' . $latest_tag->version : 'No new version' );
19385
 
19386
+ $is_latest_version_beta = ( 'beta' === $latest_tag->release_mode );
19387
+
19388
+ $this->_storage->beta_data = array(
19389
+ 'is_beta' => $is_latest_version_beta,
19390
+ 'version' => $latest_tag->version
19391
+ );
19392
+
19393
  return $has_new_version ? $latest_tag : false;
19394
  }
19395
 
19443
  return self::is_active_valid_license( $this->_license );
19444
  }
19445
 
19446
+ /**
19447
+ * @author Leo Fajardo (@leorw)
19448
+ * @since 2.3.1
19449
+ */
19450
+ function is_data_debug_mode() {
19451
+ if ( is_null( $this->is_whitelabeled ) || ! $this->is_whitelabeled ) {
19452
+ return false;
19453
+ }
19454
+
19455
+ $fs = $this->is_addon() ?
19456
+ $this->get_parent_instance() :
19457
+ $this;
19458
+
19459
+ if ( $fs->is_network_active() && fs_is_network_admin() ) {
19460
+ $is_developer_license_debug_mode = get_site_transient( "fs_{$this->get_id()}_data_debug_mode" );
19461
+ } else {
19462
+ $is_developer_license_debug_mode = get_transient( "fs_{$this->get_id()}_data_debug_mode" );
19463
+ }
19464
+
19465
+ return ( 'true' === $is_developer_license_debug_mode );
19466
+ }
19467
+
19468
+ /**
19469
+ * @author Leo Fajardo (@leorw)
19470
+ * @since 2.3.1
19471
+ */
19472
+ function _set_data_debug_mode() {
19473
+ if ( ! $this->is_whitelabeled( true ) ) {
19474
+ return;
19475
+ }
19476
+
19477
+ $license_or_user_key = fs_request_get( 'license_or_user_key' );
19478
+
19479
+ $transient_value = ( ! empty( $license_or_user_key ) ) ?
19480
+ 'true' :
19481
+ 'false';
19482
+
19483
+ if ( 'true' === $transient_value ) {
19484
+ $stored_key = $this->_storage->get( ! FS_User::is_valid_id( $this->_storage->last_license_user_id ) ?
19485
+ 'last_license_key' :
19486
+ 'last_license_user_key'
19487
+ );
19488
+
19489
+ if ( md5( $license_or_user_key ) !== $stored_key ) {
19490
+ $this->shoot_ajax_failure( sprintf(
19491
+ '%s... %s',
19492
+ $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ),
19493
+ $this->get_text_inline(
19494
+ 'seems like the key you entered doesn\'t match our records.',
19495
+ 'developer-or-license-not-found'
19496
+ )
19497
+ ) );
19498
+ }
19499
+ }
19500
+
19501
+ if ( $this->is_network_active() && fs_is_network_admin() ) {
19502
+ set_site_transient(
19503
+ "fs_{$this->get_id()}_data_debug_mode",
19504
+ $transient_value,
19505
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
19506
+ );
19507
+ } else {
19508
+ set_transient(
19509
+ "fs_{$this->get_id()}_data_debug_mode",
19510
+ $transient_value,
19511
+ WP_FS__TIME_24_HOURS_IN_SEC / 24
19512
+ );
19513
+ }
19514
+
19515
+ if ( 'true' === $transient_value ) {
19516
+ $this->_admin_notices->add_sticky(
19517
+ $this->get_text_inline(
19518
+ 'Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the "Stop Debug" link.',
19519
+ 'data_debug_mode_enabled'
19520
+ ),
19521
+ 'data_debug_mode_enabled'
19522
+ );
19523
+ }
19524
+
19525
+ $this->shoot_ajax_success();
19526
+ }
19527
+
19528
  /**
19529
  * Check if a given license is active & valid (not expired).
19530
  *
19682
  if ( $this->is_addon_activated( $addon_id ) ) {
19683
  // If already installed, use add-on sync.
19684
  $fs_addon = self::get_instance_by_id( $addon_id );
 
19685
 
19686
+ if (
19687
+ // Add-on is network activated and network integrated.
19688
+ $fs_addon->is_network_active() ||
19689
+ // Background sync cron.
19690
+ self::is_cron() ||
19691
+ // Add-on is not network activated or not network integrated.
19692
+ ! fs_is_network_admin()
19693
+ ) {
19694
+ $fs_addon->_sync_license( $background );
19695
+
19696
+ return;
19697
+ }
19698
  }
19699
 
19700
  // Validate add-on exists.
19823
  if ( ! self::$_global_admin_notices->has_sticky( 'api_blocked' ) ) {
19824
  self::$_global_admin_notices->add(
19825
  sprintf(
19826
+ $this->get_text_inline( 'Your server is blocking the access to Freemius\' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s', 'server-blocking-access' ),
19827
  $this->get_plugin_name(),
19828
+ '<b>' . implode( ', ', $this->apply_filters( 'api_domains', array(
19829
+ 'api.freemius.com',
19830
+ 'wp.freemius.com'
19831
+ ) ) ) . '</b>'
19832
  ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
19833
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
19834
  'error',
19839
  } else {
19840
  // Authentication params are broken.
19841
  $this->_admin_notices->add(
19842
+ $this->get_text_inline( 'It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again.', 'wrong-authentication-param-message' ) . '<br> ' . $this->get_text_inline( 'Error received from the server:', 'server-error-message' ) . var_export( $result->error, true ),
19843
  $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...',
19844
  'error'
19845
  );
19991
  $this->_store_licenses();
19992
 
19993
  $plan_change = $is_free ?
19994
+ ( $this->is_only_premium() ? 'activated' : 'upgraded' ) :
19995
  ( is_object( $new_license ) ?
19996
  'changed' :
19997
  'downgraded' );
20006
  $this->get_network_install_blog_id()
20007
  );
20008
  } else {
20009
+ if ( ! is_object( $this->_license ) ) {
20010
+ $this->maybe_update_whitelabel_flag(
20011
+ FS_Plugin_License::is_valid_id( $site->license_id ) ?
20012
+ $this->get_license_by_id( $site->license_id ) :
20013
+ null
20014
+ );
20015
+ } else {
20016
+ $this->maybe_update_whitelabel_flag( $this->_license );
20017
+
20018
+ if ( $this->_license->is_expired() ) {
20019
+ if ( ! $this->has_features_enabled_license() ) {
20020
+ $this->_deactivate_license();
20021
+ $plan_change = 'downgraded';
20022
+ } else {
20023
+ $last_time_expired_license_notice_was_shown = $this->_storage->get( 'expired_license_notice_shown', 0 );
20024
+
20025
+ if ( time() - ( 14 * WP_FS__TIME_24_HOURS_IN_SEC ) >= $last_time_expired_license_notice_was_shown ) {
20026
+ /**
20027
+ * Show the expired license notice every 14 days.
20028
+ *
20029
+ * @author Leo Fajardo (@leorw)
20030
+ * @since 2.3.1
20031
+ */
20032
+ $plan_change = 'expired';
20033
+ }
20034
+ }
20035
  }
20036
  }
20037
 
20039
  $this->_sync_site_subscription( $this->_license );
20040
  }
20041
  }
20042
+
20043
+ if ( $this->is_addon() || $this->has_addons() ) {
20044
+ /**
20045
+ * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
20046
+ * an updated valid user licenses collection will be fetched from the server which is used to also
20047
+ * update the account add-ons (add-ons the user has licenses for).
20048
+ *
20049
+ * @author Leo Fajardo (@leorw)
20050
+ * @since 2.2.4
20051
+ */
20052
+ $this->purge_valid_user_licenses_cache();
20053
+ }
20054
  }
20055
 
20056
  $hmm_text = $this->get_text_x_inline( 'Hmm', 'something somebody says when they are thinking about what you have just said.', 'hmm' ) . '...';
20057
 
20058
+ if ( $this->apply_filters( 'has_paid_plan_account', $this->has_paid_plan() ) ) {
20059
  switch ( $plan_change ) {
20060
  case 'none':
20061
  if ( ! $background && is_admin() ) {
20084
  }
20085
  break;
20086
  case 'upgraded':
20087
+ case 'activated':
20088
  $this->_admin_notices->add_sticky(
20089
+ ( 'activated' === $plan_change ) ?
20090
+ $this->get_text_inline( 'Your plan was successfully activated.', 'plan-activated-message' ) :
20091
+ $this->get_text_inline( 'Your plan was successfully upgraded.', 'plan-upgraded-message' ) .
20092
+ $this->get_complete_upgrade_instructions(),
20093
  'plan_upgraded',
20094
  $this->get_text_x_inline( 'Yee-haw', 'interjection expressing joy or exuberance', 'yee-haw' ) . '!'
20095
  );
20148
  'license_expired',
20149
  $hmm_text
20150
  );
20151
+
20152
+ $this->_storage->expired_license_notice_shown = WP_FS__SCRIPT_START_TIME;
20153
+
20154
  $this->_admin_notices->remove_sticky( 'plan_upgraded' );
20155
  break;
20156
  case 'trial_started':
20205
  * @author Vova Feldman (@svovaf)
20206
  * @since 1.0.5
20207
  *
20208
+ * @param bool $background
20209
+ * @param FS_Plugin_License|null $premium_license
20210
  */
20211
+ protected function _activate_license( $background = false, $premium_license = null ) {
20212
  $this->_logger->entrance();
20213
 
20214
+ if ( is_null( $premium_license ) ) {
20215
+ $license_id = fs_request_get( 'license_id' );
20216
 
20217
+ if ( is_object( $this->_site ) &&
20218
+ FS_Plugin_License::is_valid_id( $license_id ) &&
20219
+ $license_id == $this->_site->license_id
20220
+ ) {
20221
+ // License is already activated.
20222
+ return;
20223
+ }
20224
 
20225
+ $premium_license = FS_Plugin_License::is_valid_id( $license_id ) ?
20226
+ $this->_get_license_by_id( $license_id ) :
20227
+ $this->_get_available_premium_license();
20228
+ }
20229
 
20230
  if ( ! is_object( $premium_license ) ) {
20231
  return;
20274
  }
20275
 
20276
  $api = $this->get_api_site_scope();
20277
+ $license = $api->call( "/licenses/{$premium_license->id}.json?is_enriched=true", 'put', $api_request_params );
20278
 
20279
  if ( ! $this->is_api_result_entity( $license ) ) {
20280
  if ( ! $background ) {
20308
 
20309
  $this->_store_account();
20310
 
20311
+ if ( $this->is_addon() || $this->has_addons() ) {
20312
+ /**
20313
+ * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
20314
+ * an updated valid user licenses collection will be fetched from the server which is used to also
20315
+ * update the account add-ons (add-ons the user has licenses for).
20316
+ *
20317
+ * @author Leo Fajardo (@leorw)
20318
+ * @since 2.2.4
20319
+ */
20320
+ $this->purge_valid_user_licenses_cache();
20321
+ }
20322
+
20323
  if ( ! $background ) {
20324
  $this->_admin_notices->add_sticky(
20325
  $this->get_text_inline( 'Your license was successfully activated.', 'license-activated-message' ) .
20400
 
20401
  if ( $show_notice ) {
20402
  $this->_admin_notices->add(
20403
+ sprintf( $this->is_only_premium() ?
20404
+ $this->get_text_inline( 'Your %s license was successfully deactivated.', 'license-deactivation-message_premium-only' ) :
20405
+ $this->get_text_inline( 'Your license was successfully deactivated, you are back to the %s plan.', 'license-deactivation-message' ),
20406
+ $this->get_plan_title()
20407
+ ),
20408
  $this->get_text_inline( 'O.K', 'ok' )
20409
  );
20410
  }
20726
 
20727
  if ( $this->has_secret_key() ) {
20728
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
20729
+ } else if ( $this->is_registered() && $this->_user->is_beta() ) {
20730
+ $endpoint = add_query_arg( 'type', 'beta', $endpoint );
20731
  }
20732
 
20733
  return $endpoint;
20884
  function _get_invoice_api_url( $payment_id = false ) {
20885
  $this->_logger->entrance();
20886
 
20887
+ $url = $this->get_api_user_scope()->get_signed_url(
20888
  "/payments/{$payment_id}/invoice.pdf"
20889
  );
20890
+
20891
+ if ( ! fs_starts_with( $url, 'https://' ) ) {
20892
+ // Always use HTTPS for invoices.
20893
+ $url = 'https' . substr( $url, 4 );
20894
+ }
20895
+
20896
+ return $url;
20897
  }
20898
 
20899
  /**
20939
  $this->get_parent_instance() :
20940
  $this;
20941
 
20942
+ return $this->apply_filters( 'download_latest_url', $fs->get_account_url( 'download_latest', $params ) );
20943
  }
20944
 
20945
  #endregion Download Plugin ------------------------------------------------------------------
21017
 
21018
  $api = $this->get_api_site_or_plugin_scope();
21019
 
21020
+ $path = $this->add_show_pending( '/addons.json?enriched=true&count=50' );
21021
 
21022
  /**
21023
  * @since 1.2.1
21028
  if ( ! $flush && $api->is_cached( $path ) ) {
21029
  $addons = self::get_all_addons();
21030
 
21031
+ return isset( $addons[ $this->_plugin->id ] ) ?
21032
+ $addons[ $this->_plugin->id ] :
21033
+ array();
21034
  }
21035
 
21036
  $result = $api->get( $path, $flush );
21211
  return true;
21212
  }
21213
 
21214
+ /**
21215
+ * Completes ownership change by license.
21216
+ *
21217
+ * @author Leo Fajardo (@leorw)
21218
+ * @since 2.3.2
21219
+ *
21220
+ * @param number $user_id
21221
+ * @param array[string]number $install_ids_by_slug_map
21222
+ *
21223
+ */
21224
+ private function complete_ownership_change_by_license( $user_id, $install_ids_by_slug_map ) {
21225
+ $this->_logger->entrance();
21226
+
21227
+ $this->sync_user_by_current_install( $user_id );
21228
+
21229
+ $result = $this->get_api_user_scope( true )->get(
21230
+ "/installs.json?install_ids=" . implode( ',', $install_ids_by_slug_map )
21231
+ );
21232
+
21233
+ if ( $this->is_api_result_object( $result, 'installs' ) ) {
21234
+ $sites = self::get_all_sites( $this->get_module_type() );
21235
+ $install_ids_by_slug_map = array_flip( $install_ids_by_slug_map );
21236
+
21237
+ foreach ( $result->installs as $install ) {
21238
+ $site = new FS_Site( $install );
21239
+
21240
+ $sites[ $install_ids_by_slug_map[ $site->id ] ] = clone $site;
21241
+ }
21242
+
21243
+ $this->set_account_option( 'sites', $sites, true );
21244
+ }
21245
+ }
21246
+
21247
  /**
21248
  * Handle user name update.
21249
  *
21299
  if ( ! isset( $result->error ) ) {
21300
  $this->_admin_notices->add( sprintf(
21301
  $this->get_text_inline( 'Verification mail was just sent to %s. If you can\'t find it after 5 min, please check your spam box.', 'verification-email-sent-message' ),
21302
+ sprintf( '<a href="mailto:%1$s">%2$s</a>', esc_url( $this->_user->email ), $this->_user->email )
21303
  ) );
21304
  } else {
21305
  // handle different error cases.
21357
  * @return string
21358
  */
21359
  function get_after_activation_url( $filter, $params = array(), $network = null ) {
21360
+ if ( $this->show_opt_in_on_themes_page() &&
21361
  ( fs_request_has( 'pending_activation' ) ||
21362
  // For cases when the first time path is set, even though it's a WP.org theme.
21363
  fs_request_get_bool( $this->get_unique_affix() . '_show_optin' ) )
21364
  ) {
21365
  $first_time_path = '';
21366
  } else {
21367
+ $first_time_path = $this->_menu->get_first_time_path(
21368
+ fs_is_network_admin() && $this->_is_network_active
21369
+ );
21370
  }
21371
 
21372
  if ( $this->_is_network_active &&
21412
  // Alias.
21413
  $oops_text = $this->get_text_x_inline( 'Oops', 'exclamation', 'oops' ) . '...';
21414
 
21415
+ $is_network_action = $this->is_network_level_action();
21416
+ $blog_id = $this->is_network_level_site_specific_action();
21417
+ $is_parent_plugin_action = ( $plugin_id == $this->get_id() );
21418
 
21419
  if ( is_numeric( $blog_id ) ) {
21420
  $this->switch_to_blog( $blog_id );
21426
  case 'opt_in':
21427
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21428
 
21429
+ if ( $is_parent_plugin_action ) {
21430
  if ( $is_network_action && ! empty( $blog_id ) ) {
21431
  if ( ! $this->is_registered() ) {
21432
  $this->install_with_user(
21449
  case 'toggle_tracking':
21450
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21451
 
21452
+ if ( $is_parent_plugin_action ) {
21453
  if ( $is_network_action && ! empty( $blog_id ) ) {
21454
  if ( $this->is_registered() ) {
21455
  if ( $this->is_tracking_prohibited() ) {
21484
  case 'delete_account':
21485
  check_admin_referer( trim( "{$action}:{$blog_id}:{$install_id}", ':' ) );
21486
 
21487
+ $is_network_deletion = $is_network_action && empty( $blog_id );
21488
+
21489
+ if ( $is_parent_plugin_action ) {
21490
+ // Delete add-on installs if have any.
21491
+ $installed_addons = $this->get_installed_addons();
21492
+ foreach ( $installed_addons as $fs_addon ) {
21493
+ if ( $is_network_deletion ) {
21494
+ $fs_addon->delete_network_account_event();
21495
+ } else {
21496
+ $fs_addon->delete_account_event();
21497
+ }
21498
+ }
21499
+
21500
+ if ( $is_network_deletion ) {
21501
  $this->delete_network_account_event();
21502
  } else {
21503
  $this->delete_account_event();
21513
  } else {
21514
  if ( $this->is_addon_activated( $plugin_id ) ) {
21515
  $fs_addon = self::get_instance_by_id( $plugin_id );
21516
+
21517
+ if ( $is_network_deletion ) {
21518
+ $fs_addon->delete_network_account_event();
21519
+ } else {
21520
+ $fs_addon->delete_account_event();
21521
+ }
21522
 
21523
  fs_redirect( $this->_get_admin_page_url( 'account' ) );
21524
  }
22029
  $user->id,
22030
  $user->public_key,
22031
  ! $this->is_live(),
22032
+ $user->secret_key,
22033
+ $this->get_sdk_version()
22034
  );
22035
  }
22036
 
22058
  $user->id,
22059
  $user->public_key,
22060
  ! $this->is_live(),
22061
+ $user->secret_key,
22062
+ $this->get_sdk_version()
22063
  );
22064
 
22065
  return $this->_user_api;
22084
  $this->_site->id,
22085
  $this->_site->public_key,
22086
  ! $this->is_live(),
22087
+ $this->_site->secret_key,
22088
+ $this->get_sdk_version()
22089
  );
22090
  }
22091
 
22109
  'plugin',
22110
  $this->_plugin->id,
22111
  $this->_plugin->public_key,
22112
+ ! $this->is_live(),
22113
+ false,
22114
+ $this->get_sdk_version()
22115
  );
22116
  }
22117
 
22118
  return $this->_plugin_api;
22119
  }
22120
 
22121
+ /**
22122
+ * Get bundle public API scope.
22123
+ *
22124
+ * @author Vova Feldman (@svovaf)
22125
+ * @since 2.3.1
22126
+ *
22127
+ * @return FS_Api
22128
+ */
22129
+ function get_api_bundle_scope() {
22130
+ return FS_Api::instance(
22131
+ $this->get_bundle_id(),
22132
+ 'plugin',
22133
+ $this->get_bundle_id(),
22134
+ $this->get_bundle_public_key(),
22135
+ ! $this->is_live(),
22136
+ false,
22137
+ $this->get_sdk_version()
22138
+ );
22139
+ }
22140
+
22141
  /**
22142
  * Get site API scope object (fallback to public plugin scope when not registered).
22143
  *
22171
  $plans = array( $plans );
22172
  }
22173
 
22174
+ if ( ! $this->is_array_instanceof( $plans, 'FS_Plugin_Plan' ) ) {
22175
+ $plans = array();
22176
+ }
22177
+
22178
  $this->_storage->has_trial_plan = FS_Plan_Manager::instance()->has_trial_plan( $plans );
22179
  }
22180
 
22471
  function _show_theme_activation_optin_dialog() {
22472
  fs_enqueue_local_style( 'fs_connect', '/admin/connect.css' );
22473
 
22474
+ add_action( 'admin_footer', array( &$this, '_add_fs_theme_activation_dialog' ) );
22475
  }
22476
 
22477
  /**
22479
  * @since 1.2.2
22480
  */
22481
  function _add_fs_theme_activation_dialog() {
22482
+ global $pagenow;
22483
+
22484
+ if ( 'themes.php' !== $pagenow ) {
22485
+ return;
22486
+ }
22487
+
22488
  $vars = array( 'id' => $this->_module_id );
22489
  fs_require_once_template( 'connect.php', $vars );
22490
  }
22558
  function _add_upgrade_action_link() {
22559
  $this->_logger->entrance();
22560
 
22561
+ $is_activation_mode = $this->is_activation_mode();
22562
+
22563
+ $add_action_links = $this->should_add_submenu_or_action_links( $is_activation_mode );
22564
+
22565
+ /**
22566
+ * The following logic is based on the logic in `add_submenu_items()` method that decides when the "Upgrade"
22567
+ * and "Add-Ons" menus should be added.
22568
+ *
22569
+ * @author Leo Fajardo (@leorw)
22570
+ * @since 2.3.0
22571
+ */
22572
+ $add_upgrade_link = (
22573
+ $add_action_links ||
22574
+ ( $is_activation_mode && $this->is_only_premium() )
22575
+ ) && ! WP_FS__DEMO_MODE && ( ! $this->is_whitelabeled() );
22576
+
22577
+ $add_addons_link = ( $add_action_links && $this->has_addons() );
22578
+
22579
+ if ( ! $add_upgrade_link && ! $add_addons_link ) {
22580
+ return;
22581
+ }
22582
+
22583
+ if (
22584
+ $add_upgrade_link &&
22585
+ $this->is_pricing_page_visible() &&
22586
+ $this->is_submenu_item_visible( 'pricing' )
22587
+ ) {
22588
  $this->add_plugin_action_link(
22589
  $this->get_text_inline( 'Upgrade', 'upgrade' ),
22590
  $this->get_upgrade_url(),
22594
  );
22595
  }
22596
 
22597
+ if (
22598
+ $add_addons_link &&
22599
+ $this->has_addons() &&
22600
+ $this->is_submenu_item_visible( 'addons' )
22601
+ ) {
22602
  $this->add_plugin_action_link(
22603
  $this->get_text_inline( 'Add-Ons', 'add-ons' ),
22604
  $this->_get_admin_page_url( 'addons' ),
22649
  }
22650
 
22651
  /**
22652
+ * Adds "Opt In" or "Opt Out" link to the main "Plugins" page link actions collection.
22653
  *
22654
  * @author Leo Fajardo (@leorw)
22655
  * @since 1.2.1.5
22662
  $this->_logger->entrance();
22663
 
22664
  /**
22665
+ * @author Vova Feldman (@svovaf)
22666
+ * @since 2.3.2 Allow opting out from usage-tracking for paid products too by giving the appropriate warning letting the user know the automatic updates mechanism cannot function without an ongoing connection to the licensing and updates engine.
 
22667
  */
22668
+ /*if ( $this->is_premium() ) {
22669
+ // Don't add opt-in/out for premium code base.
22670
+ return;
22671
+ }*/
22672
+
22673
+ if ( $this->is_only_premium() && $this->is_free_plan() ) {
22674
+ // Don't add tracking links for premium-only products that were opted-in by relation (add-on or a parent product) before activating any license.
22675
  return;
22676
  }
22677
 
22678
+ if ( fs_is_network_admin() ) {
22679
+ if ( ! $this->_is_network_active ) {
22680
+ // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
22681
+ return;
22682
+ } else if ( $this->is_network_delegated_connection() ) {
22683
+ // Don't add tracking links when browsing the network WP Admin and the activation has been delegated to site admins.
22684
+ return;
22685
+ }
22686
+ } else {
22687
+ if ( $this->_is_network_active && ! $this->is_delegated_connection() ) {
22688
+ // Don't add tracking links when browsing the sub-site WP Admin, the plugin is network active, and the connection was not delegated.
22689
+ return;
22690
+ }
22691
+ }
22692
+
22693
  if ( fs_request_is_action_secure( $this->get_unique_affix() . '_reconnect' ) ) {
22694
  if ( ! $this->is_registered() && $this->is_anonymous() ) {
22695
  $this->connect_again();
22705
  return;
22706
  }
22707
 
22708
+ if ( $this->is_registered() && $this->is_tracking_allowed() ) {
22709
+ if ( ! $this->is_enable_anonymous() ) {
22710
+ // If opted in and tracking is allowed, don't allow to opt out if anonymous mode is disabled.
22711
+ return;
22712
+ }
22713
 
22714
+ if ( ! $this->is_free_plan() ) {
22715
+ // Don't allow to opt out if running in paid plan.
22716
+ return;
22717
+ }
22718
  }
22719
 
22720
  if ( $this->add_ajax_action( 'stop_tracking', array( &$this, '_stop_tracking_callback' ) ) ) {
22725
  return;
22726
  }
22727
 
22728
+ if ( $this->add_ajax_action( 'update_tracking_permission', array( &$this, '_update_tracking_permission_callback' ) ) ) {
22729
+ return;
22730
+ }
22731
+
22732
+ $link_text_id = '';
22733
+ $url = '#';
22734
 
22735
  if ( $this->is_registered() ) {
22736
  if ( $this->is_tracking_allowed() ) {
22738
  } else {
22739
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
22740
  }
22741
+ } else if ( $this->is_anonymous() || $this->is_activation_mode() ) {
22742
+ /**
22743
+ * Show opt-in link only if skipped or in activation mode.
22744
+ */
22745
  $link_text_id = $this->get_text_inline( 'Opt In', 'opt-in' );
22746
 
22747
  $params = ! $this->is_anonymous() ?
22754
  $url = $this->get_activation_url( $params );
22755
  }
22756
 
22757
+ add_action( 'admin_footer', array( &$this, '_add_optout_dialog' ) );
22758
+
22759
+ if ( ! empty( $link_text_id ) && $this->is_plugin() && self::is_plugins_page() ) {
22760
  $this->add_plugin_action_link(
22761
  $link_text_id,
22762
  $url,
22779
  $url = false;
22780
 
22781
  if ( ! $this->is_addon() || ! $this->has_free_plan() ) {
22782
+ $first_time_path = $this->_menu->get_first_time_path(
22783
+ fs_is_network_admin() && $this->_is_network_active
22784
+ );
22785
 
22786
  if ( $this->is_activation_mode() ) {
22787
  $url = $this->get_activation_url();
22969
  $premium_plugin_basename = $this->premium_plugin_basename();
22970
 
22971
  return sprintf(
22972
+ /* translators: %1$s: Product title; %2$s: Plan title */
22973
+ $this->get_text_inline( ' The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s', 'activate-premium-version' ),
22974
  sprintf( '<em>%s</em>', esc_html( $this->get_plugin_title() ) ),
22975
  $plan_title,
22976
  sprintf(
23000
  ) ),
23001
  $deactivation_step,
23002
  $this->get_text_inline( 'Upload and activate the downloaded version', 'upload-and-activate' ),
23003
+ $this->apply_filters( 'upload_and_install_video_url', '//bit.ly/upload-wp-' . $this->_module_type . 's' ),
23004
  $this->get_text_inline( 'How to upload and activate?', 'howto-upload-activate' )
23005
  );
23006
  }
23445
  function _tabs_capture() {
23446
  $this->_logger->entrance();
23447
 
23448
+ if ( ! $this->is_product_settings_page() ||
23449
  ! $this->is_matching_url( $this->main_menu_url() )
23450
  ) {
23451
  return;
23500
  function _store_tabs_styles() {
23501
  $this->_logger->entrance();
23502
 
23503
+ if ( ! $this->is_product_settings_page() ||
23504
  ! $this->is_matching_url( $this->main_menu_url() )
23505
  ) {
23506
  return;
23574
  return false;
23575
  }
23576
 
23577
+ if ( self::NAVIGATION_TABS !== $this->_navigation ) {
23578
  // Only add tabs to themes for now.
23579
  return false;
23580
  }
23581
 
23582
+ if ( $this->is_theme() && ! $this->has_paid_plan() && ! $this->has_addons() ) {
23583
  // Only add tabs to monetizing themes.
23584
  return false;
23585
  }
23586
 
23587
+ if ( ! $this->is_product_settings_page() ) {
23588
+ // Only add tabs if browsing one of the product's setting pages.
23589
+ return false;
23590
+ }
23591
+
23592
+ if ( $this->is_activation_mode() && $this->is_activation_page() ) {
23593
+ // Don't include tabs in the activation page.
23594
  return false;
23595
  }
23596
 
23988
  'plugin',
23989
  $user_plugin->id,
23990
  $user_plugin->public_key,
23991
+ ! $user_plugin->is_live,
23992
+ false,
23993
+ $this->get_sdk_version()
23994
  );
23995
 
23996
  $addons_result = $plugin_api->get( '/addons.json?enriched=true', true );
24080
  '%s %s %s',
24081
  $thank_you,
24082
  $already_opted_in,
24083
+ sprintf( $this->get_text_inline( 'Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)', 'due-to-gdpr-compliance-requirements' ), '<a href="https://eugdpr.org/" target="_blank" rel="noopener noreferrer">', '</a>' ) .
24084
  '<br><br>' .
24085
  '<b>' . $this->get_text_inline( "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:", 'contact-for-updates' ) . '</b>' .
24086
  $actions .
24277
  }
24278
 
24279
  $modules = array_merge(
24280
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
24281
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
24282
  );
24283
 
24284
  foreach ( $modules as $module ) {
24383
  *
24384
  * @author Vova Feldman (@svovaf)
24385
  */
24386
+ self::shoot_ajax_success( array(
24387
+ 'is_marketing_allowed' => null,
24388
+ 'license_owner_id' => null
24389
+ ) );
24390
+ }
24391
+
24392
+ self::shoot_ajax_success( array(
24393
+ 'is_marketing_allowed' => $user_plugins[0]->is_marketing_allowed,
24394
+ 'license_owner_id' => ( isset( $user_plugins[0]->license_owner_id ) ? $user_plugins[0]->license_owner_id : null )
24395
+ ) );
24396
+ }
24397
+
24398
+ /**
24399
+ * @author Leo Fajardo (@leorw)
24400
+ * @since 2.3.2
24401
+ *
24402
+ * @param number[] $install_ids
24403
+ *
24404
+ * @return array {
24405
+ * An array of objects containing the installs' licenses owners data.
24406
+ *
24407
+ * @property number $id User ID.
24408
+ * @property string $email User email (can be masked email).
24409
+ * }
24410
+ */
24411
+ private function fetch_installs_licenses_owners_data( $install_ids ) {
24412
+ $this->_logger->entrance();
24413
+
24414
+ $response = $this->get_api_user_scope()->get(
24415
+ '/licenses_owners.json?install_ids=' . implode( ',', $install_ids )
24416
+ );
24417
+
24418
+ $license_owners = null;
24419
+
24420
+ if ( $this->is_api_result_object( $response, 'owners' ) ) {
24421
+ $license_owners = $response->owners;
24422
  }
24423
 
24424
+ return $license_owners;
24425
  }
24426
 
24427
  /**
24457
  }
24458
 
24459
  $modules = array_merge(
24460
+ array_values( self::maybe_get_entities_account_option( 'plugins', array() ) ),
24461
+ array_values( self::maybe_get_entities_account_option( 'themes', array() ) )
24462
  );
24463
 
24464
  foreach ( $modules as $key => $module ) {
freemius/includes/class-fs-api.php CHANGED
@@ -56,23 +56,40 @@
56
  */
57
  private $_logger;
58
 
59
- /**
 
 
 
 
 
 
 
 
60
  * @param string $slug
61
  * @param string $scope 'app', 'developer', 'user' or 'install'.
62
  * @param number $id Element's id.
63
  * @param string $public_key Public key.
64
  * @param bool $is_sandbox
65
  * @param bool|string $secret_key Element's secret key.
 
66
  *
67
  * @return FS_Api
68
  */
69
- static function instance( $slug, $scope, $id, $public_key, $is_sandbox, $secret_key = false ) {
 
 
 
 
 
 
 
 
70
  $identifier = md5( $slug . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
71
 
72
  if ( ! isset( self::$_instances[ $identifier ] ) ) {
73
  self::_init();
74
 
75
- self::$_instances[ $identifier ] = new FS_Api( $slug, $scope, $id, $public_key, $secret_key, $is_sandbox );
76
  }
77
 
78
  return self::$_instances[ $identifier ];
@@ -105,12 +122,22 @@
105
  * @param string $public_key Public key.
106
  * @param bool|string $secret_key Element's secret key.
107
  * @param bool $is_sandbox
 
108
  */
109
- private function __construct( $slug, $scope, $id, $public_key, $secret_key, $is_sandbox ) {
 
 
 
 
 
 
 
 
110
  $this->_api = new Freemius_Api_WordPress( $scope, $id, $public_key, $secret_key, $is_sandbox );
111
 
112
- $this->_slug = $slug;
113
- $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_api', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
 
114
  }
115
 
116
  /**
@@ -154,39 +181,51 @@
154
  * @return array|mixed|string|void
155
  */
156
  private function _call( $path, $method = 'GET', $params = array(), $retry = false ) {
157
- $this->_logger->entrance( $method . ':' . $path );
158
-
159
- if ( self::is_temporary_down() ) {
160
- $result = $this->get_temporary_unavailable_error();
161
- } else {
162
- $result = $this->_api->Api( $path, $method, $params );
163
-
164
- if ( null !== $result &&
165
- isset( $result->error ) &&
166
- isset( $result->error->code ) &&
167
- 'request_expired' === $result->error->code
168
- ) {
169
- if ( ! $retry ) {
170
- $diff = isset( $result->error->timestamp ) ?
171
- ( time() - strtotime( $result->error->timestamp ) ) :
172
- false;
173
-
174
- // Try to sync clock diff.
175
- if ( false !== $this->_sync_clock_diff( $diff ) ) {
176
- // Retry call with new synced clock.
177
- return $this->_call( $path, $method, $params, true );
178
- }
179
- }
180
- }
181
- }
 
 
 
 
 
 
 
 
 
 
 
 
182
 
183
- if ( $this->_logger->is_on() && self::is_api_error( $result ) ) {
184
- // Log API errors.
185
- $this->_logger->api_error( $result );
186
- }
187
 
188
- return $result;
189
- }
190
 
191
  /**
192
  * Override API call to wrap it in servers' clock sync method.
@@ -253,7 +292,7 @@
253
  * If the response code is 404, cache the result for half of the `$expiration`.
254
  *
255
  * @author Leo Fajardo (@leorw)
256
- * @since 2.2.3.1
257
  */
258
  $expiration /= 2;
259
  } else {
56
  */
57
  private $_logger;
58
 
59
+ /**
60
+ * @author Leo Fajardo (@leorw)
61
+ * @since 2.3.0
62
+ *
63
+ * @var string
64
+ */
65
+ private $_sdk_version;
66
+
67
+ /**
68
  * @param string $slug
69
  * @param string $scope 'app', 'developer', 'user' or 'install'.
70
  * @param number $id Element's id.
71
  * @param string $public_key Public key.
72
  * @param bool $is_sandbox
73
  * @param bool|string $secret_key Element's secret key.
74
+ * @param null|string $sdk_version
75
  *
76
  * @return FS_Api
77
  */
78
+ static function instance(
79
+ $slug,
80
+ $scope,
81
+ $id,
82
+ $public_key,
83
+ $is_sandbox,
84
+ $secret_key = false,
85
+ $sdk_version = null
86
+ ) {
87
  $identifier = md5( $slug . $scope . $id . $public_key . ( is_string( $secret_key ) ? $secret_key : '' ) . json_encode( $is_sandbox ) );
88
 
89
  if ( ! isset( self::$_instances[ $identifier ] ) ) {
90
  self::_init();
91
 
92
+ self::$_instances[ $identifier ] = new FS_Api( $slug, $scope, $id, $public_key, $secret_key, $is_sandbox, $sdk_version );
93
  }
94
 
95
  return self::$_instances[ $identifier ];
122
  * @param string $public_key Public key.
123
  * @param bool|string $secret_key Element's secret key.
124
  * @param bool $is_sandbox
125
+ * @param null|string $sdk_version
126
  */
127
+ private function __construct(
128
+ $slug,
129
+ $scope,
130
+ $id,
131
+ $public_key,
132
+ $secret_key,
133
+ $is_sandbox,
134
+ $sdk_version
135
+ ) {
136
  $this->_api = new Freemius_Api_WordPress( $scope, $id, $public_key, $secret_key, $is_sandbox );
137
 
138
+ $this->_slug = $slug;
139
+ $this->_sdk_version = $sdk_version;
140
+ $this->_logger = FS_Logger::get_logger( WP_FS__SLUG . '_' . $slug . '_api', WP_FS__DEBUG_SDK, WP_FS__ECHO_DEBUG_SDK );
141
  }
142
 
143
  /**
181
  * @return array|mixed|string|void
182
  */
183
  private function _call( $path, $method = 'GET', $params = array(), $retry = false ) {
184
+ $this->_logger->entrance( $method . ':' . $path );
185
+
186
+ if ( self::is_temporary_down() ) {
187
+ $result = $this->get_temporary_unavailable_error();
188
+ } else {
189
+ /**
190
+ * @since 2.3.0 Include the SDK version with all API requests that going through the API manager. IMPORTANT: Only pass the SDK version if the caller didn't include it yet.
191
+ */
192
+ if ( ! empty( $this->_sdk_version ) ) {
193
+ if ( false === strpos( $path, 'sdk_version=' ) &&
194
+ ! isset( $params['sdk_version'] )
195
+ ) {
196
+ // Always add the sdk_version param in the querystring. DO NOT INCLUDE IT IN THE BODY PARAMS, OTHERWISE, IT MAY LEAD TO AN UNEXPECTED PARAMS PARSING IN CASES WHERE THE $params IS A REGULAR NON-ASSOCIATIVE ARRAY.
197
+ $path = add_query_arg( 'sdk_version', $this->_sdk_version, $path );
198
+ }
199
+ }
200
+
201
+ $result = $this->_api->Api( $path, $method, $params );
202
+
203
+ if ( null !== $result &&
204
+ isset( $result->error ) &&
205
+ isset( $result->error->code ) &&
206
+ 'request_expired' === $result->error->code
207
+ ) {
208
+ if ( ! $retry ) {
209
+ $diff = isset( $result->error->timestamp ) ?
210
+ ( time() - strtotime( $result->error->timestamp ) ) :
211
+ false;
212
+
213
+ // Try to sync clock diff.
214
+ if ( false !== $this->_sync_clock_diff( $diff ) ) {
215
+ // Retry call with new synced clock.
216
+ return $this->_call( $path, $method, $params, true );
217
+ }
218
+ }
219
+ }
220
+ }
221
 
222
+ if ( $this->_logger->is_on() && self::is_api_error( $result ) ) {
223
+ // Log API errors.
224
+ $this->_logger->api_error( $result );
225
+ }
226
 
227
+ return $result;
228
+ }
229
 
230
  /**
231
  * Override API call to wrap it in servers' clock sync method.
292
  * If the response code is 404, cache the result for half of the `$expiration`.
293
  *
294
  * @author Leo Fajardo (@leorw)
295
+ * @since 2.2.4
296
  */
297
  $expiration /= 2;
298
  } else {
freemius/includes/class-fs-plugin-updater.php CHANGED
@@ -102,7 +102,9 @@
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
- add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
 
 
106
 
107
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
108
  add_filter( 'http_request_host_is_external', array(
@@ -164,32 +166,71 @@
164
 
165
  $contents = ob_get_clean();
166
 
167
- /**
168
- * Replace the plugin information dialog's "Install Update Now" button's text and URL. If there's a license,
169
- * the text will be "Renew license" and will link to the checkout page with the license's billing cycle
170
- * and quota. If there's no license, the text will be "Buy license" and will link to the pricing page.
171
- */
172
- $contents = preg_replace(
173
- '/(.+\<a.+)(id="plugin_update_from_iframe")(.+href=")([^\s]+)(".+\>)(.+)(\<\/a.+)/is',
174
- is_object( $license ) ?
175
- sprintf(
176
- '$1$3%s$5%s$7',
177
- $this->_fs->checkout_url(
178
- is_object( $subscription ) ?
179
- ( 1 == $subscription->billing_cycle ? WP_FS__PERIOD_MONTHLY : WP_FS__PERIOD_ANNUALLY ) :
180
- WP_FS__PERIOD_LIFETIME,
181
- false,
182
- array( 'licenses' => $license->quota )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  ),
184
- fs_text_inline( 'Renew license', 'renew-license', $this->_fs->get_slug() )
185
- ) :
186
- sprintf(
187
- '$1$3%s$5%s$7',
188
- $this->_fs->pricing_url(),
189
- fs_text_inline( 'Buy license', 'buy-license', $this->_fs->get_slug() )
190
- ),
191
- $contents
192
- );
 
 
 
 
 
 
 
 
 
 
 
 
193
 
194
  echo $contents;
195
  }
@@ -199,6 +240,12 @@
199
  * @since 2.0.0
200
  */
201
  private function add_transient_filters() {
 
 
 
 
 
 
202
  add_filter( 'pre_set_site_transient_update_plugins', array(
203
  &$this,
204
  'pre_set_site_transient_update_plugins_filter'
@@ -257,7 +304,40 @@
257
 
258
  $r = $current->response[ $file ];
259
 
260
- if ( ! $this->_fs->has_any_active_valid_license() ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
261
  /**
262
  * Turn the "new version" text into a link that opens the plugin information dialog when clicked and
263
  * make the "View version x details" text link to the checkout page instead of opening the plugin
@@ -267,6 +347,8 @@
267
  * There is a new version of Awesome Plugin available. <a href="...>View version x.y.z details</a> or <a href="...>update now</a>.
268
  * Output:
269
  * There is a <a href="...>new version</a> of Awesome Plugin available. <a href="...>Buy a license now</a> to access version x.y.z security & feature updates, and support.
 
 
270
  *
271
  * @author Leo Fajardo (@leorw)
272
  */
@@ -279,7 +361,9 @@
279
  sprintf(
280
  '<a href="$4"%s>%s</a>',
281
  '$5',
282
- fs_text_inline( 'new version', 'new-version', $this->_fs->get_slug() )
 
 
283
  ),
284
  $this->_fs->get_plugin_title()
285
  ) .
@@ -299,7 +383,7 @@
299
  $slug = $this->_fs->get_slug();
300
 
301
  $upgrade_notice_html = sprintf(
302
- '<p class="notice fs-upgrade-notice fs-slug-%1s fs-type-%2s" data-slug="%1s" data-type="%2s"><strong>%3s</strong> %4s</p>',
303
  $slug,
304
  $this->_fs->get_module_type(),
305
  fs_text_inline( 'Important Upgrade Notice:', 'upgrade_notice', $slug ),
@@ -411,18 +495,40 @@
411
  return $transient_data;
412
  }
413
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
414
  if ( ! isset( $this->_update_details ) ) {
415
  // Get plugin's newest update.
416
  $new_version = $this->_fs->get_update(
417
  false,
418
  fs_request_get_bool( 'force-check' ),
419
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
420
- $this->_fs->get_plugin_version()
421
  );
422
 
423
  $this->_update_details = false;
424
 
425
- if ( is_object( $new_version ) ) {
426
  $this->_logger->log( 'Found newer plugin version ' . $new_version->version );
427
 
428
  /**
@@ -437,10 +543,22 @@
437
  }
438
 
439
  if ( is_object( $this->_update_details ) ) {
 
 
 
 
440
  // Add plugin to transient data.
441
- $transient_data->response[ $this->_fs->get_plugin_basename() ] = $this->_fs->is_plugin() ?
442
  $this->_update_details :
443
  (array) $this->_update_details;
 
 
 
 
 
 
 
 
444
  }
445
 
446
  $slug = $this->_fs->get_slug();
@@ -532,6 +650,25 @@
532
  return $update;
533
  }
534
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  /**
536
  * Update the updates transient with the module's update information.
537
  *
@@ -550,6 +687,10 @@
550
  function set_update_data( FS_Plugin_Tag $new_version ) {
551
  $this->_logger->entrance();
552
 
 
 
 
 
553
  $transient_key = "update_{$this->_fs->get_module_type()}s";
554
 
555
  $transient_data = get_site_transient( $transient_key );
@@ -834,8 +975,9 @@
834
  return $data;
835
  }
836
 
837
- $addon = false;
838
- $is_addon = false;
 
839
 
840
  if ( $this->_fs->get_slug() !== $args->slug ) {
841
  $addon = $this->_fs->get_addon_by_slug( $args->slug );
@@ -844,6 +986,20 @@
844
  return $data;
845
  }
846
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
847
  $is_addon = true;
848
  }
849
 
@@ -874,7 +1030,9 @@ if ( !isset($info->error) ) {
874
  }*/
875
  }
876
 
877
- $plugin_version = $this->_fs->get_plugin_version();
 
 
878
 
879
  // Get plugin's newest update.
880
  $new_version = $this->get_latest_download_details( $is_addon ? $addon->id : false, $plugin_version );
@@ -1002,8 +1160,8 @@ if ( !isset($info->error) ) {
1002
 
1003
  $active_plugins_basenames = get_option( 'active_plugins' );
1004
 
1005
- for ( $i = 0, $len = count( $active_plugins_basenames ); $i < $len; $i ++ ) {
1006
- if ( $basename === $active_plugins_basenames[ $i ] ) {
1007
  // Get filename including extension.
1008
  $filename = basename( $basename );
1009
 
@@ -1015,7 +1173,7 @@ if ( !isset($info->error) ) {
1015
  // Verify that the expected correct path exists.
1016
  if ( file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $new_basename ) ) ) {
1017
  // Override active plugin name.
1018
- $active_plugins_basenames[ $i ] = $new_basename;
1019
  update_option( 'active_plugins', $active_plugins_basenames );
1020
  }
1021
 
102
  'edit_and_echo_plugin_update_row'
103
  ), 11, 2 );
104
 
105
+ if ( ! $this->_fs->has_any_active_valid_license() ) {
106
+ add_action( 'admin_head', array( &$this, 'catch_plugin_information_dialog_contents' ) );
107
+ }
108
 
109
  if ( ! WP_FS__IS_PRODUCTION_MODE ) {
110
  add_filter( 'http_request_host_is_external', array(
166
 
167
  $contents = ob_get_clean();
168
 
169
+ $update_button_id_attribute_pos = strpos( $contents, 'id="plugin_update_from_iframe"' );
170
+
171
+ if ( false !== $update_button_id_attribute_pos ) {
172
+ $update_button_start_pos = strrpos(
173
+ substr( $contents, 0, $update_button_id_attribute_pos ),
174
+ '<a'
175
+ );
176
+
177
+ $update_button_end_pos = ( strpos( $contents, '</a>', $update_button_id_attribute_pos ) + strlen( '</a>' ) );
178
+
179
+ /**
180
+ * The part of the contents without the update button.
181
+ *
182
+ * @author Leo Fajardo (@leorw)
183
+ * @since 2.2.5
184
+ */
185
+ $modified_contents = substr( $contents, 0, $update_button_start_pos );
186
+
187
+ $update_button = substr( $contents, $update_button_start_pos, ( $update_button_end_pos - $update_button_start_pos ) );
188
+
189
+ /**
190
+ * Replace the plugin information dialog's "Install Update Now" button's text and URL. If there's a license,
191
+ * the text will be "Renew license" and will link to the checkout page with the license's billing cycle
192
+ * and quota. If there's no license, the text will be "Buy license" and will link to the pricing page.
193
+ */
194
+ $update_button = preg_replace(
195
+ '/(\<a.+)(id="plugin_update_from_iframe")(.+href=")([^\s]+)(".*\>)(.+)(\<\/a>)/is',
196
+ is_object( $license ) ?
197
+ sprintf(
198
+ '$1$3%s$5%s$7',
199
+ $this->_fs->checkout_url(
200
+ is_object( $subscription ) ?
201
+ ( 1 == $subscription->billing_cycle ? WP_FS__PERIOD_MONTHLY : WP_FS__PERIOD_ANNUALLY ) :
202
+ WP_FS__PERIOD_LIFETIME,
203
+ false,
204
+ array( 'licenses' => $license->quota )
205
+ ),
206
+ fs_text_inline( 'Renew license', 'renew-license', $this->_fs->get_slug() )
207
+ ) :
208
+ sprintf(
209
+ '$1$3%s$5%s$7',
210
+ $this->_fs->pricing_url(),
211
+ fs_text_inline( 'Buy license', 'buy-license', $this->_fs->get_slug() )
212
  ),
213
+ $update_button
214
+ );
215
+
216
+ /**
217
+ * Append the modified button.
218
+ *
219
+ * @author Leo Fajardo (@leorw)
220
+ * @since 2.2.5
221
+ */
222
+ $modified_contents .= $update_button;
223
+
224
+ /**
225
+ * Append the remaining part of the contents after the update button.
226
+ *
227
+ * @author Leo Fajardo (@leorw)
228
+ * @since 2.2.5
229
+ */
230
+ $modified_contents .= substr( $contents, $update_button_end_pos );
231
+
232
+ $contents = $modified_contents;
233
+ }
234
 
235
  echo $contents;
236
  }
240
  * @since 2.0.0
241
  */
242
  private function add_transient_filters() {
243
+ if ( $this->_fs->is_premium() && ! $this->_fs->is_tracking_allowed() ) {
244
+ $this->_logger->log( 'Opted out sites cannot receive automatic software updates.' );
245
+
246
+ return;
247
+ }
248
+
249
  add_filter( 'pre_set_site_transient_update_plugins', array(
250
  &$this,
251
  'pre_set_site_transient_update_plugins_filter'
304
 
305
  $r = $current->response[ $file ];
306
 
307
+ $has_beta_update = $this->_fs->has_beta_update();
308
+
309
+ if ( $this->_fs->has_any_active_valid_license() ) {
310
+ if ( $has_beta_update ) {
311
+ /**
312
+ * Turn the "new version" text into "new Beta version".
313
+ *
314
+ * Sample input:
315
+ * There is a new version of Awesome Plugin available. <a href="...>View version x.y.z details</a> or <a href="...>update now</a>.
316
+ * Output:
317
+ * There is a new Beta version of Awesome Plugin available. <a href="...>View version x.y.z details</a> or <a href="...>update now</a>.
318
+ *
319
+ * @author Leo Fajardo (@leorw)
320
+ * @since 2.3.0
321
+ */
322
+ $plugin_update_row = preg_replace(
323
+ '/(\<div.+>)(.+)(\<a.+href="([^\s]+)"([^\<]+)\>.+\<a.+)(\<\/div\>)/is',
324
+ (
325
+ '$1' .
326
+ sprintf(
327
+ fs_text_inline( 'There is a %s of %s available.', 'new-version-available', $this->_fs->get_slug() ),
328
+ $has_beta_update ?
329
+ fs_text_inline( 'new Beta version', 'new-beta-version', $this->_fs->get_slug() ) :
330
+ fs_text_inline( 'new version', 'new-version', $this->_fs->get_slug() ),
331
+ $this->_fs->get_plugin_title()
332
+ ) .
333
+ ' ' .
334
+ '$3' .
335
+ '$6'
336
+ ),
337
+ $plugin_update_row
338
+ );
339
+ }
340
+ } else {
341
  /**
342
  * Turn the "new version" text into a link that opens the plugin information dialog when clicked and
343
  * make the "View version x details" text link to the checkout page instead of opening the plugin
347
  * There is a new version of Awesome Plugin available. <a href="...>View version x.y.z details</a> or <a href="...>update now</a>.
348
  * Output:
349
  * There is a <a href="...>new version</a> of Awesome Plugin available. <a href="...>Buy a license now</a> to access version x.y.z security & feature updates, and support.
350
+ * OR
351
+ * There is a <a href="...>new Beta version</a> of Awesome Plugin available. <a href="...>Buy a license now</a> to access version x.y.z security & feature updates, and support.
352
  *
353
  * @author Leo Fajardo (@leorw)
354
  */
361
  sprintf(
362
  '<a href="$4"%s>%s</a>',
363
  '$5',
364
+ $has_beta_update ?
365
+ fs_text_inline( 'new Beta version', 'new-beta-version', $this->_fs->get_slug() ) :
366
+ fs_text_inline( 'new version', 'new-version', $this->_fs->get_slug() )
367
  ),
368
  $this->_fs->get_plugin_title()
369
  ) .
383
  $slug = $this->_fs->get_slug();
384
 
385
  $upgrade_notice_html = sprintf(
386
+ '<p class="notice fs-upgrade-notice fs-slug-%1$s fs-type-%2$s" data-slug="%1$s" data-type="%2$s"><strong>%3$s</strong> %4$s</p>',
387
  $slug,
388
  $this->_fs->get_module_type(),
389
  fs_text_inline( 'Important Upgrade Notice:', 'upgrade_notice', $slug ),
495
  return $transient_data;
496
  }
497
 
498
+ global $wp_current_filter;
499
+
500
+ $current_plugin_version = $this->_fs->get_plugin_version();
501
+
502
+ if ( ! empty( $wp_current_filter ) && 'upgrader_process_complete' === $wp_current_filter[0] ) {
503
+ if (
504
+ is_null( $this->_update_details ) ||
505
+ ( is_object( $this->_update_details ) && $this->_update_details->new_version !== $current_plugin_version )
506
+ ) {
507
+ /**
508
+ * After an update, clear the stored update details and reparse the plugin's main file in order to get
509
+ * the updated version's information and prevent the previous update information from showing up on the
510
+ * updates page.
511
+ *
512
+ * @author Leo Fajardo (@leorw)
513
+ * @since 2.3.1
514
+ */
515
+ $this->_update_details = null;
516
+ $current_plugin_version = $this->_fs->get_plugin_version( true );
517
+ }
518
+ }
519
+
520
  if ( ! isset( $this->_update_details ) ) {
521
  // Get plugin's newest update.
522
  $new_version = $this->_fs->get_update(
523
  false,
524
  fs_request_get_bool( 'force-check' ),
525
  WP_FS__TIME_24_HOURS_IN_SEC / 24,
526
+ $current_plugin_version
527
  );
528
 
529
  $this->_update_details = false;
530
 
531
+ if ( is_object( $new_version ) && $this->is_new_version_premium( $new_version ) ) {
532
  $this->_logger->log( 'Found newer plugin version ' . $new_version->version );
533
 
534
  /**
543
  }
544
 
545
  if ( is_object( $this->_update_details ) ) {
546
+ if ( ! isset( $transient_data->response ) ) {
547
+ $transient_data->response = array();
548
+ }
549
+
550
  // Add plugin to transient data.
551
+ $transient_data->response[ $this->_fs->premium_plugin_basename() ] = $this->_fs->is_plugin() ?
552
  $this->_update_details :
553
  (array) $this->_update_details;
554
+ } else if ( isset( $transient_data->response ) ) {
555
+ /**
556
+ * Ensure that there's no update data for the plugin to prevent upgrading the premium version to the latest free version.
557
+ *
558
+ * @author Leo Fajardo (@leorw)
559
+ * @since 2.3.0
560
+ */
561
+ unset( $transient_data->response[ $this->_fs->premium_plugin_basename() ] );
562
  }
563
 
564
  $slug = $this->_fs->get_slug();
650
  return $update;
651
  }
652
 
653
+ /**
654
+ * @author Leo Fajardo (@leorw)
655
+ * @since 2.3.0
656
+ *
657
+ * @param FS_Plugin_Tag $new_version
658
+ *
659
+ * @return bool
660
+ */
661
+ private function is_new_version_premium( FS_Plugin_Tag $new_version ) {
662
+ $query_str = parse_url( $new_version->url, PHP_URL_QUERY );
663
+ if ( empty( $query_str ) ) {
664
+ return false;
665
+ }
666
+
667
+ parse_str( $query_str, $params );
668
+
669
+ return ( isset( $params['is_premium'] ) && 'true' == $params['is_premium'] );
670
+ }
671
+
672
  /**
673
  * Update the updates transient with the module's update information.
674
  *
687
  function set_update_data( FS_Plugin_Tag $new_version ) {
688
  $this->_logger->entrance();
689
 
690
+ if ( ! $this->is_new_version_premium( $new_version ) ) {
691
+ return;
692
+ }
693
+
694
  $transient_key = "update_{$this->_fs->get_module_type()}s";
695
 
696
  $transient_data = get_site_transient( $transient_key );
975
  return $data;
976
  }
977
 
978
+ $addon = false;
979
+ $is_addon = false;
980
+ $addon_version = false;
981
 
982
  if ( $this->_fs->get_slug() !== $args->slug ) {
983
  $addon = $this->_fs->get_addon_by_slug( $args->slug );
986
  return $data;
987
  }
988
 
989
+ if ( $this->_fs->is_addon_activated( $addon->id ) ) {
990
+ $addon_version = $this->_fs->get_addon_instance( $addon->id )->get_plugin_version();
991
+ } else if ( $this->_fs->is_addon_installed( $addon->id ) ) {
992
+ $addon_plugin_data = get_plugin_data(
993
+ ( WP_PLUGIN_DIR . '/' . $this->_fs->get_addon_basename( $addon->id ) ),
994
+ false,
995
+ false
996
+ );
997
+
998
+ if ( ! empty( $addon_plugin_data ) ) {
999
+ $addon_version = $addon_plugin_data['Version'];
1000
+ }
1001
+ }
1002
+
1003
  $is_addon = true;
1004
  }
1005
 
1030
  }*/
1031
  }
1032
 
1033
+ $plugin_version = $is_addon ?
1034
+ $addon_version :
1035
+ $this->_fs->get_plugin_version();
1036
 
1037
  // Get plugin's newest update.
1038
  $new_version = $this->get_latest_download_details( $is_addon ? $addon->id : false, $plugin_version );
1160
 
1161
  $active_plugins_basenames = get_option( 'active_plugins' );
1162
 
1163
+ foreach ( $active_plugins_basenames as $key => $active_plugin_basename ) {
1164
+ if ( $basename === $active_plugin_basename ) {
1165
  // Get filename including extension.
1166
  $filename = basename( $basename );
1167
 
1173
  // Verify that the expected correct path exists.
1174
  if ( file_exists( fs_normalize_path( WP_PLUGIN_DIR . '/' . $new_basename ) ) ) {
1175
  // Override active plugin name.
1176
+ $active_plugins_basenames[ $key ] = $new_basename;
1177
  update_option( 'active_plugins', $active_plugins_basenames );
1178
  }
1179
 
freemius/includes/class-fs-storage.php CHANGED
@@ -336,55 +336,62 @@
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
- 'affiliate_application_data' => 0,
340
- 'connectivity_test' => 0,
341
- 'handle_gdpr_admin_notice' => 0,
342
- 'has_trial_plan' => 0,
343
- 'install_sync_timestamp' => 0,
344
- 'install_sync_cron' => 0,
345
- 'is_anonymous_ms' => 0,
346
- 'is_on' => 0,
347
- 'is_plugin_new_install' => 0,
348
- 'network_install_blog_id' => 0,
349
- 'pending_sites_info' => 0,
350
- 'plugin_last_version' => 0,
351
- 'plugin_main_file' => 0,
352
- 'plugin_version' => 0,
353
- 'sdk_downgrade_mode' => 0,
354
- 'sdk_last_version' => 0,
355
- 'sdk_upgrade_mode' => 0,
356
- 'sdk_version' => 0,
357
- 'sticky_optin_added_ms' => 0,
358
- 'subscriptions' => 0,
359
- 'sync_timestamp' => 0,
360
- 'sync_cron' => 0,
361
- 'was_plugin_loaded' => 0,
362
- 'network_user_id' => 0,
363
- 'plugin_upgrade_mode' => 0,
364
- 'plugin_downgrade_mode' => 0,
365
- 'is_network_connected' => 0,
 
 
366
  /**
367
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
368
  * supports network level integration, when the connection decision wasn't made for all of the
369
  * sites in the network.
370
  */
371
- 'is_network_activation' => 0,
372
 
373
  // When network activated, then network level.
374
- 'install_timestamp' => 1,
375
- 'prev_is_premium' => 1,
376
- 'require_license_activation' => 1,
377
 
378
  // If not network activated OR delegated, then site level.
379
- 'activation_timestamp' => 2,
380
- 'prev_user_id' => 2,
381
- 'sticky_optin_added' => 2,
382
- 'uninstall_reason' => 2,
383
- 'is_pending_activation' => 2,
384
- 'pending_license_key' => 2,
 
 
 
 
 
385
 
386
  // Site level options.
387
- 'is_anonymous' => 3,
388
  );
389
  }
390
 
336
  private static function load_network_options_map() {
337
  self::$_NETWORK_OPTIONS_MAP = array(
338
  // Network level options.
339
+ 'affiliate_application_data' => 0,
340
+ 'beta_data' => 0,
341
+ 'connectivity_test' => 0,
342
+ 'handle_gdpr_admin_notice' => 0,
343
+ 'has_trial_plan' => 0,
344
+ 'install_sync_timestamp' => 0,
345
+ 'install_sync_cron' => 0,
346
+ 'is_anonymous_ms' => 0,
347
+ 'is_network_activated' => 0,
348
+ 'is_on' => 0,
349
+ 'is_plugin_new_install' => 0,
350
+ 'network_install_blog_id' => 0,
351
+ 'pending_sites_info' => 0,
352
+ 'plugin_last_version' => 0,
353
+ 'plugin_main_file' => 0,
354
+ 'plugin_version' => 0,
355
+ 'sdk_downgrade_mode' => 0,
356
+ 'sdk_last_version' => 0,
357
+ 'sdk_upgrade_mode' => 0,
358
+ 'sdk_version' => 0,
359
+ 'sticky_optin_added_ms' => 0,
360
+ 'subscriptions' => 0,
361
+ 'sync_timestamp' => 0,
362
+ 'sync_cron' => 0,
363
+ 'was_plugin_loaded' => 0,
364
+ 'network_user_id' => 0,
365
+ 'plugin_upgrade_mode' => 0,
366
+ 'plugin_downgrade_mode' => 0,
367
+ 'is_network_connected' => 0,
368
  /**
369
  * Special flag that is used when a super-admin upgrades to the new version of the SDK that
370
  * supports network level integration, when the connection decision wasn't made for all of the
371
  * sites in the network.
372
  */
373
+ 'is_network_activation' => 0,
374
 
375
  // When network activated, then network level.
376
+ 'install_timestamp' => 1,
377
+ 'prev_is_premium' => 1,
378
+ 'require_license_activation' => 1,
379
 
380
  // If not network activated OR delegated, then site level.
381
+ 'activation_timestamp' => 2,
382
+ 'expired_license_notice_shown' => 2,
383
+ 'is_whitelabeled' => 2,
384
+ 'last_license_key' => 2,
385
+ 'last_license_user_id' => 2,
386
+ 'prev_user_id' => 2,
387
+ 'sticky_optin_added' => 2,
388
+ 'uninstall_reason' => 2,
389
+ 'is_pending_activation' => 2,
390
+ 'pending_license_key' => 2,
391
+ 'is_extensions_tracking_allowed' => 2,
392
 
393
  // Site level options.
394
+ 'is_anonymous' => 3,
395
  );
396
  }
397
 
freemius/includes/customizer/class-fs-customizer-upsell-control.php CHANGED
@@ -58,8 +58,12 @@
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
 
 
 
 
61
  // Load features.
62
- $pricing = $this->fs->get_api_plugin_scope()->get( $this->fs->add_show_pending( "pricing.json" ) );
63
 
64
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
65
  // Add support features.
58
  $this->fs->get_trial_url() :
59
  $this->fs->get_upgrade_url();
60
 
61
+ $api = FS_Plugin::is_valid_id( $this->fs->get_bundle_id() ) ?
62
+ $this->fs->get_api_bundle_scope() :
63
+ $this->fs->get_api_plugin_scope();
64
+
65
  // Load features.
66
+ $pricing = $api->get( $this->fs->add_show_pending( "pricing.json" ) );
67
 
68
  if ( $this->fs->is_api_result_object( $pricing, 'plans' ) ) {
69
  // Add support features.
freemius/includes/entities/class-fs-entity.php CHANGED
@@ -146,4 +146,14 @@
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
 
 
 
 
 
 
 
 
 
 
149
  }
146
  static function is_valid_id($id){
147
  return is_numeric($id);
148
  }
149
+
150
+ /**
151
+ * @author Leo Fajardo (@leorw)
152
+ * @since 2.3.1
153
+ *
154
+ * @return string
155
+ */
156
+ public static function get_class_name() {
157
+ return get_called_class();
158
+ }
159
  }
freemius/includes/entities/class-fs-payment.php CHANGED
@@ -42,6 +42,13 @@
42
  * @var float
43
  */
44
  public $gross;
 
 
 
 
 
 
 
45
  /**
46
  * @var number
47
  */
@@ -75,6 +82,10 @@
75
 
76
  #endregion Properties
77
 
 
 
 
 
78
  /**
79
  * @param object|bool $payment
80
  */
@@ -107,4 +118,51 @@
107
  function is_migrated() {
108
  return ( 0 != $this->source );
109
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
42
  * @var float
43
  */
44
  public $gross;
45
+ /**
46
+ * @author Leo Fajardo (@leorw)
47
+ * @since 2.3.0
48
+ *
49
+ * @var string One of the following: `usd`, `gbp`, `eur`.
50
+ */
51
+ public $currency;
52
  /**
53
  * @var number
54
  */
82
 
83
  #endregion Properties
84
 
85
+ const CURRENCY_USD = 'usd';
86
+ const CURRENCY_GBP = 'gbp';
87
+ const CURRENCY_EUR = 'eur';
88
+
89
  /**
90
  * @param object|bool $payment
91
  */
118
  function is_migrated() {
119
  return ( 0 != $this->source );
120
  }
121
+
122
+ /**
123
+ * Returns the gross in this format:
124
+ * `{symbol}{amount | 2 decimal digits} {currency | uppercase}`
125
+ *
126
+ * Examples: £9.99 GBP, -£9.99 GBP.
127
+ *
128
+ * @author Leo Fajardo (@leorw)
129
+ * @since 2.3.0
130
+ *
131
+ * @return string
132
+ */
133
+ function formatted_gross()
134
+ {
135
+ return (
136
+ ( $this->gross < 0 ? '-' : '' ) .
137
+ $this->get_symbol() .
138
+ number_format( abs( $this->gross ), 2, '.', ',' ) . ' ' .
139
+ strtoupper( $this->currency )
140
+ );
141
+ }
142
+
143
+ /**
144
+ * A map between supported currencies with their symbols.
145
+ *
146
+ * @var array<string,string>
147
+ */
148
+ static $CURRENCY_2_SYMBOL;
149
+
150
+ /**
151
+ * @author Leo Fajardo (@leorw)
152
+ * @since 2.3.0
153
+ *
154
+ * @return string
155
+ */
156
+ private function get_symbol() {
157
+ if ( ! isset( self::$CURRENCY_2_SYMBOL ) ) {
158
+ // Lazy load.
159
+ self::$CURRENCY_2_SYMBOL = array(
160
+ self::CURRENCY_USD => '$',
161
+ self::CURRENCY_GBP => '£',
162
+ self::CURRENCY_EUR => '€',
163
+ );
164
+ }
165
+
166
+ return self::$CURRENCY_2_SYMBOL[ $this->currency ];
167
+ }
168
  }
freemius/includes/entities/class-fs-plugin-license.php CHANGED
@@ -29,6 +29,27 @@
29
  * @var number
30
  */
31
  public $plan_id;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  /**
33
  * @var number
34
  */
@@ -53,6 +74,10 @@
53
  * @var string
54
  */
55
  public $secret_key;
 
 
 
 
56
  /**
57
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
58
  * license.
@@ -95,7 +120,7 @@
95
  * @return int
96
  */
97
  function left() {
98
- if ( ! $this->is_active() || $this->is_expired() ) {
99
  return 0;
100
  }
101
 
@@ -266,4 +291,33 @@
266
  function total_activations() {
267
  return ( $this->activated + $this->activated_local );
268
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
  }
29
  * @var number
30
  */
31
  public $plan_id;
32
+ /**
33
+ * @author Leo Fajardo (@leorw)
34
+ * @since 2.3.0
35
+ *
36
+ * @var string
37
+ */
38
+ public $parent_plan_name;
39
+ /**
40
+ * @author Leo Fajardo (@leorw)
41
+ * @since 2.3.0
42
+ *
43
+ * @var string
44
+ */
45
+ public $parent_plan_title;
46
+ /**
47
+ * @author Leo Fajardo (@leorw)
48
+ * @since 2.3.0
49
+ *
50
+ * @var number
51
+ */
52
+ public $parent_license_id;
53
  /**
54
  * @var number
55
  */
74
  * @var string
75
  */
76
  public $secret_key;
77
+ /**
78
+ * @var bool
79
+ */
80
+ public $is_whitelabeled;
81
  /**
82
  * @var bool $is_free_localhost Defaults to true. If true, allow unlimited localhost installs with the same
83
  * license.
120
  * @return int
121
  */
122
  function left() {
123
+ if ( ! $this->is_features_enabled() ) {
124
  return 0;
125
  }
126
 
291
  function total_activations() {
292
  return ( $this->activated + $this->activated_local );
293
  }
294
+
295
+ /**
296
+ * @author Vova Feldman (@svovaf)
297
+ * @since 2.3.1
298
+ *
299
+ * @return string
300
+ */
301
+ function get_html_escaped_masked_secret_key() {
302
+ return self::mask_secret_key_for_html( $this->secret_key );
303
+ }
304
+
305
+ /**
306
+ * @author Vova Feldman (@svovaf)
307
+ * @since 2.3.1
308
+ *
309
+ * @param string $secret_key
310
+ *
311
+ * @return string
312
+ */
313
+ static function mask_secret_key_for_html( $secret_key ) {
314
+ return (
315
+ // Initial 6 chars - sk_ABC
316
+ htmlspecialchars( substr( $secret_key, 0, 6 ) ) .
317
+ // Masking
318
+ str_pad( '', ( strlen( $secret_key ) - 9 ) * 6, '&bull;' ) .
319
+ // Last 3 chars.
320
+ htmlspecialchars( substr( $secret_key, - 3 ) )
321
+ );
322
+ }
323
  }
freemius/includes/entities/class-fs-plugin-tag.php CHANGED
@@ -36,9 +36,9 @@
36
  */
37
  public $has_premium;
38
  /**
39
- * @var bool
40
  */
41
- public $is_released;
42
 
43
  function __construct( $tag = false ) {
44
  parent::__construct( $tag );
@@ -47,4 +47,14 @@
47
  static function get_type() {
48
  return 'tag';
49
  }
 
 
 
 
 
 
 
 
 
 
50
  }
36
  */
37
  public $has_premium;
38
  /**
39
+ * @var string One of the following: `pending`, `beta`, `unreleased`.
40
  */
41
+ public $release_mode;
42
 
43
  function __construct( $tag = false ) {
44
  parent::__construct( $tag );
47
  static function get_type() {
48
  return 'tag';
49
  }
50
+
51
+ /**
52
+ * @author Leo Fajardo (@leorw)
53
+ * @since 2.3.0
54
+ *
55
+ * @return bool
56
+ */
57
+ function is_beta() {
58
+ return ( 'beta' === $this->release_mode );
59
+ }
60
  }
freemius/includes/entities/class-fs-plugin.php CHANGED
@@ -49,6 +49,13 @@
49
  * @var bool Set to true if the free version of the module is hosted on WordPress.org. Defaults to true.
50
  */
51
  public $is_wp_org_compliant = true;
 
 
 
 
 
 
 
52
 
53
  #region Install Specific Properties
54
 
@@ -87,6 +94,16 @@
87
  * @var bool
88
  */
89
  public $is_live;
 
 
 
 
 
 
 
 
 
 
90
 
91
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
92
 
49
  * @var bool Set to true if the free version of the module is hosted on WordPress.org. Defaults to true.
50
  */
51
  public $is_wp_org_compliant = true;
52
+ /**
53
+ * @author Leo Fajardo (@leorw)
54
+ * @since 2.2.5
55
+ *
56
+ * @var int
57
+ */
58
+ public $premium_releases_count;
59
 
60
  #region Install Specific Properties
61
 
94
  * @var bool
95
  */
96
  public $is_live;
97
+ /**
98
+ * @since 2.2.3
99
+ * @var null|number
100
+ */
101
+ public $bundle_id;
102
+ /**
103
+ * @since 2.3.1
104
+ * @var null|string
105
+ */
106
+ public $bundle_public_key;
107
 
108
  const AFFILIATE_MODERATION_CUSTOMERS = 'customers';
109
 
freemius/includes/entities/class-fs-pricing.php CHANGED
@@ -34,6 +34,13 @@
34
  * @var null|float
35
  */
36
  public $lifetime_price;
 
 
 
 
 
 
 
37
 
38
  #endregion Properties
39
 
@@ -138,4 +145,13 @@
138
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
139
  }
140
 
 
 
 
 
 
 
 
 
 
141
  }
34
  * @var null|float
35
  */
36
  public $lifetime_price;
37
+ /**
38
+ * @author Leo Fajardo (@leorw)
39
+ * @since 2.3.1
40
+ *
41
+ * @var string One of the following: `usd`, `gbp`, `eur`.
42
+ */
43
+ public $currency;
44
 
45
  #endregion Properties
46
 
145
  return ( $this->monthly_price * 12 - $this->annual_price ) * ( $this->is_unlimited() ? 1 : $this->licenses );
146
  }
147
 
148
+ /**
149
+ * @author Leo Fajardo (@leorw)
150
+ * @since 2.3.1
151
+ *
152
+ * @return bool
153
+ */
154
+ function is_usd() {
155
+ return ( 'usd' === $this->currency );
156
+ }
157
  }
freemius/includes/entities/class-fs-site.php CHANGED
@@ -170,13 +170,16 @@
170
  fs_starts_with( $subdomain, 'staging' ) ||
171
  // WPEngine staging.
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
 
173
  // Pantheon
174
- ( fs_ends_with($subdomain, 'pantheonsite.io') &&
175
- (fs_starts_with($subdomain, 'test-') || fs_starts_with($subdomain, 'dev-'))) ||
176
  // Cloudways
177
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
178
  // Kinsta
179
- (fs_ends_with($subdomain, '.kinsta.com') && fs_starts_with($subdomain, 'staging-'))
 
 
180
  );
181
  }
182
 
170
  fs_starts_with( $subdomain, 'staging' ) ||
171
  // WPEngine staging.
172
  fs_ends_with( $subdomain, '.staging.wpengine.com' ) ||
173
+ fs_ends_with( $subdomain, '.dev.wpengine.com' ) ||
174
  // Pantheon
175
+ ( fs_ends_with( $subdomain, 'pantheonsite.io' ) &&
176
+ ( fs_starts_with( $subdomain, 'test-' ) || fs_starts_with( $subdomain, 'dev-' ) ) ) ||
177
  // Cloudways
178
  fs_ends_with( $subdomain, '.cloudwaysapps.com' ) ||
179
  // Kinsta
180
+ ( fs_starts_with( $subdomain, 'staging-' ) && ( fs_ends_with( $subdomain, '.kinsta.com' ) || fs_ends_with( $subdomain, '.kinsta.cloud' ) ) ) ||
181
+ // DesktopServer
182
+ fs_ends_with( $subdomain, '.dev.cc' )
183
  );
184
  }
185
 
freemius/includes/entities/class-fs-subscription.php CHANGED
@@ -1,125 +1,147 @@
1
  <?php
2
- /**
3
- * @package Freemius
4
- * @copyright Copyright (c) 2015, Freemius, Inc.
5
- * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
- * @since 1.0.9
7
- */
8
 
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit;
11
- }
12
 
13
- class FS_Subscription extends FS_Entity {
14
 
15
- #region Properties
16
 
17
- /**
18
- * @var number
19
- */
20
- public $user_id;
21
- /**
22
- * @var number
23
- */
24
- public $install_id;
25
- /**
26
- * @var number
27
- */
28
- public $plan_id;
29
- /**
30
- * @var number
31
- */
32
- public $license_id;
33
- /**
34
- * @var float
35
- */
36
- public $total_gross;
37
- /**
38
- * @var float
39
- */
40
- public $amount_per_cycle;
41
- /**
42
- * @var int # of months
43
- */
44
- public $billing_cycle;
45
- /**
46
- * @var float
47
- */
48
- public $outstanding_balance;
49
- /**
50
- * @var int
51
- */
52
- public $failed_payments;
53
- /**
54
- * @var string
55
- */
56
- public $gateway;
57
- /**
58
- * @var string
59
- */
60
- public $external_id;
61
- /**
62
- * @var string|null
63
- */
64
- public $trial_ends;
65
- /**
66
- * @var string|null Datetime of the next payment, or null if cancelled
67
- */
68
- public $next_payment;
69
- /**
70
- * @var string|null
71
- */
72
- public $vat_id;
73
- /**
74
- * @var string Two characters country code
75
- */
76
- public $country_code;
 
 
 
 
 
 
77
 
78
- #endregion Properties
79
 
80
- /**
81
- * @param object|bool $subscription
82
- */
83
- function __construct( $subscription = false ) {
84
- parent::__construct( $subscription );
85
- }
86
 
87
- static function get_type() {
88
- return 'subscription';
89
- }
90
 
91
- /**
92
- * Check if subscription is active.
93
- *
94
- * @author Vova Feldman (@svovaf)
95
- * @since 1.0.9
96
- *
97
- * @return bool
98
- */
99
- function is_active() {
100
- return ! empty( $this->next_payment ) &&
101
- ( strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME );
102
- }
103
 
104
- /**
105
- * Subscription considered to be new without any payments
106
- * if the next payment should be made within less than 24 hours
107
- * from the subscription creation.
108
- *
109
- * @author Vova Feldman (@svovaf)
110
- * @since 1.0.9
111
- *
112
- * @return bool
113
- */
114
- function is_first_payment_pending() {
115
- return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
116
- }
117
 
118
- /**
119
- * @author Vova Feldman (@svovaf)
120
- * @since 1.1.7
121
- */
122
- function has_trial() {
123
- return ! is_null( $this->trial_ends );
124
- }
125
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <?php
2
+ /**
3
+ * @package Freemius
4
+ * @copyright Copyright (c) 2015, Freemius, Inc.
5
+ * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6
+ * @since 1.0.9
7
+ */
8
 
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
 
13
+ class FS_Subscription extends FS_Entity {
14
 
15
+ #region Properties
16
 
17
+ /**
18
+ * @var number
19
+ */
20
+ public $user_id;
21
+ /**
22
+ * @var number
23
+ */
24
+ public $install_id;
25
+ /**
26
+ * @var number
27
+ */
28
+ public $plan_id;
29
+ /**
30
+ * @var number
31
+ */
32
+ public $license_id;
33
+ /**
34
+ * @var float
35
+ */
36
+ public $total_gross;
37
+ /**
38
+ * @var float
39
+ */
40
+ public $amount_per_cycle;
41
+ /**
42
+ * @var int # of months
43
+ */
44
+ public $billing_cycle;
45
+ /**
46
+ * @var float
47
+ */
48
+ public $outstanding_balance;
49
+ /**
50
+ * @var int
51
+ */
52
+ public $failed_payments;
53
+ /**
54
+ * @var string
55
+ */
56
+ public $gateway;
57
+ /**
58
+ * @var string
59
+ */
60
+ public $external_id;
61
+ /**
62
+ * @var string|null
63
+ */
64
+ public $trial_ends;
65
+ /**
66
+ * @var string|null Datetime of the next payment, or null if cancelled.
67
+ */
68
+ public $next_payment;
69
+ /**
70
+ * @since 2.3.1
71
+ *
72
+ * @var string|null Datetime of the cancellation.
73
+ */
74
+ public $canceled_at;
75
+ /**
76
+ * @var string|null
77
+ */
78
+ public $vat_id;
79
+ /**
80
+ * @var string Two characters country code
81
+ */
82
+ public $country_code;
83
 
84
+ #endregion Properties
85
 
86
+ /**
87
+ * @param object|bool $subscription
88
+ */
89
+ function __construct( $subscription = false ) {
90
+ parent::__construct( $subscription );
91
+ }
92
 
93
+ static function get_type() {
94
+ return 'subscription';
95
+ }
96
 
97
+ /**
98
+ * Check if subscription is active.
99
+ *
100
+ * @author Vova Feldman (@svovaf)
101
+ * @since 1.0.9
102
+ *
103
+ * @return bool
104
+ */
105
+ function is_active() {
106
+ if ( $this->is_canceled() ) {
107
+ return false;
108
+ }
109
 
110
+ return (
111
+ ! empty( $this->next_payment ) &&
112
+ strtotime( $this->next_payment ) > WP_FS__SCRIPT_START_TIME
113
+ );
114
+ }
 
 
 
 
 
 
 
 
115
 
116
+ /**
117
+ * @author Vova Feldman (@svovaf)
118
+ * @since 2.3.1
119
+ *
120
+ * @return bool
121
+ */
122
+ function is_canceled() {
123
+ return ! is_null( $this->canceled_at );
124
+ }
125
+
126
+ /**
127
+ * Subscription considered to be new without any payments
128
+ * if the next payment should be made within less than 24 hours
129
+ * from the subscription creation.
130
+ *
131
+ * @author Vova Feldman (@svovaf)
132
+ * @since 1.0.9
133
+ *
134
+ * @return bool
135
+ */
136
+ function is_first_payment_pending() {
137
+ return ( WP_FS__TIME_24_HOURS_IN_SEC >= strtotime( $this->next_payment ) - strtotime( $this->created ) );
138
+ }
139
+
140
+ /**
141
+ * @author Vova Feldman (@svovaf)
142
+ * @since 1.1.7
143
+ */
144
+ function has_trial() {
145
+ return ! is_null( $this->trial_ends );
146
+ }
147
+ }
freemius/includes/entities/class-fs-user.php CHANGED
@@ -31,6 +31,13 @@
31
  */
32
  public $is_verified;
33
  /**
 
 
 
 
 
 
 
34
  * @var string|null
35
  */
36
  public $customer_id;
@@ -56,6 +63,16 @@
56
  return ( isset( $this->is_verified ) && true === $this->is_verified );
57
  }
58
 
 
 
 
 
 
 
 
 
 
 
59
  static function get_type() {
60
  return 'user';
61
  }
31
  */
32
  public $is_verified;
33
  /**
34
+ * @author Leo Fajardo (@leorw)
35
+ * @since 2.3.0
36
+ *
37
+ * @var bool
38
+ */
39
+ public $is_beta;
40
+ /**
41
  * @var string|null
42
  */
43
  public $customer_id;
63
  return ( isset( $this->is_verified ) && true === $this->is_verified );
64
  }
65
 
66
+ /**
67
+ * @author Leo Fajardo (@leorw)
68
+ * @since 2.3.0
69
+ *
70
+ * @return bool
71
+ */
72
+ function is_beta() {
73
+ return ( isset( $this->is_beta ) && true === $this->is_beta );
74
+ }
75
+
76
  static function get_type() {
77
  return 'user';
78
  }
freemius/includes/fs-core-functions.php CHANGED
@@ -63,62 +63,70 @@
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
- /**
67
- * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
68
- * is inside a plugin's folder or a theme's folder.
69
- *
70
- * Examples:
71
- * 1. "themes" folder
72
- * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
73
- * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
- *
75
- * 2. "plugins" folder
76
- * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
77
- * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
- *
79
- * @author Leo Fajardo (@leorw)
80
- * @since 1.2.2
81
- *
82
- * @param string $asset_abs_path Asset's absolute path.
83
- *
84
- * @return string Asset's URL.
85
- */
86
- function fs_asset_url( $asset_abs_path ) {
87
- $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
88
- $asset_abs_path = fs_normalize_path( $asset_abs_path );
89
-
90
- if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
91
- // Handle both theme and plugin assets located in the standard directories.
92
- $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
93
- $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
94
- } else {
95
- $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
96
- if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
97
- // Try to handle plugin assets that may be located in a non-standard plugins directory.
98
- $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
99
- $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
100
  } else {
101
- // Try to handle theme assets that may be located in a non-standard themes directory.
102
- $active_theme_stylesheet = get_stylesheet();
103
- $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
104
- $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
105
- $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
 
 
 
 
 
 
 
106
  }
107
- }
108
 
109
- return $asset_url;
 
110
  }
111
 
112
- function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
113
- wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
 
 
114
  }
115
 
116
- function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
117
- wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
 
 
118
  }
119
 
120
- function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
121
- return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
 
 
122
  }
123
 
124
  #--------------------------------------------------------------------------------
@@ -127,6 +135,9 @@
127
 
128
  if ( ! function_exists( 'fs_request_get' ) ) {
129
  /**
 
 
 
130
  * @param string $key
131
  * @param mixed $def
132
  * @param string|bool $type Since 1.2.1.7 - when set to 'get' will look for the value passed via querystring, when
@@ -140,6 +151,10 @@
140
  $type = strtolower( $type );
141
  }
142
 
 
 
 
 
143
  switch ( $type ) {
144
  case 'post':
145
  $value = isset( $_POST[ $key ] ) ? $_POST[ $key ] : $def;
@@ -163,17 +178,39 @@
163
  }
164
 
165
  if ( ! function_exists( 'fs_request_get_bool' ) ) {
 
 
 
 
 
 
 
 
 
 
166
  function fs_request_get_bool( $key, $def = false ) {
167
- if ( ! isset( $_REQUEST[ $key ] ) ) {
 
 
168
  return $def;
169
  }
170
 
171
- if ( 1 == $_REQUEST[ $key ] || 'true' === strtolower( $_REQUEST[ $key ] ) ) {
172
- return true;
173
- }
 
 
 
 
 
 
 
174
 
175
- if ( 0 == $_REQUEST[ $key ] || 'false' === strtolower( $_REQUEST[ $key ] ) ) {
176
- return false;
 
 
 
177
  }
178
 
179
  return $def;
@@ -286,138 +323,191 @@
286
 
287
  /* Core UI.
288
  --------------------------------------------------------------------------------------------*/
289
- /**
290
- * @param number $module_id
291
- * @param string $page
292
- * @param string $action
293
- * @param string $title
294
- * @param string $button_class
295
- * @param array $params
296
- * @param bool $is_primary
297
- * @param bool $is_small
298
- * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
299
- * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
300
- * @param string $method Since 1.1.7
301
- *
302
- * @uses fs_ui_get_action_button()
303
- */
304
- function fs_ui_action_button(
305
- $module_id,
306
- $page,
307
- $action,
308
- $title,
309
- $button_class = '',
310
- $params = array(),
311
- $is_primary = true,
312
- $is_small = false,
313
- $icon_class = false,
314
- $confirmation = false,
315
- $method = 'GET'
316
- ) {
317
- echo fs_ui_get_action_button(
318
  $module_id,
319
  $page,
320
  $action,
321
  $title,
322
- $button_class,
323
- $params,
324
- $is_primary,
325
- $is_small,
326
- $icon_class,
327
- $confirmation,
328
- $method
329
- );
330
- }
331
-
332
- /**
333
- * @author Vova Feldman (@svovaf)
334
- * @since 1.1.7
335
- *
336
- * @param number $module_id
337
- * @param string $page
338
- * @param string $action
339
- * @param string $title
340
- * @param string $button_class
341
- * @param array $params
342
- * @param bool $is_primary
343
- * @param bool $is_small
344
- * @param string|bool $icon_class Optional class for an icon.
345
- * @param string|bool $confirmation Optional confirmation message before submit.
346
- * @param string $method
347
- *
348
- * @return string
349
- */
350
- function fs_ui_get_action_button(
351
- $module_id,
352
- $page,
353
- $action,
354
- $title,
355
- $button_class = '',
356
- $params = array(),
357
- $is_primary = true,
358
- $is_small = false,
359
- $icon_class = false,
360
- $confirmation = false,
361
- $method = 'GET'
362
- ) {
363
- // Prepend icon (if set).
364
- $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
365
-
366
- if ( is_string( $confirmation ) ) {
367
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
368
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
369
- $method,
370
  $action,
371
- wp_nonce_field( $action, '_wpnonce', true, false ),
372
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
 
 
 
 
373
  $confirmation,
374
- $title
375
- );
376
- } else if ( 'GET' !== strtoupper( $method ) ) {
377
- return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
378
- freemius( $module_id )->_get_admin_page_url( $page, $params ),
379
- $method,
380
- $action,
381
- wp_nonce_field( $action, '_wpnonce', true, false ),
382
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
383
- $title
384
- );
385
- } else {
386
- return sprintf( '<a href="%s" class="%s">%s</a></form>',
387
- wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
388
- 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
389
- $title
390
  );
391
  }
392
  }
393
 
394
- function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
395
- ?><a class=""
396
- href="<?php echo wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ) ?>"><?php echo $title ?></a><?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  /* Scripts and styles including.
64
  --------------------------------------------------------------------------------------------*/
65
 
66
+ if ( ! function_exists( 'fs_asset_url' ) ) {
67
+ /**
68
+ * Generates an absolute URL to the given path. This function ensures that the URL will be correct whether the asset
69
+ * is inside a plugin's folder or a theme's folder.
70
+ *
71
+ * Examples:
72
+ * 1. "themes" folder
73
+ * Path: C:/xampp/htdocs/fswp/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
74
+ * URL: http://fswp:8080/wp-content/themes/twentytwelve/freemius/assets/css/admin/common.css
75
+ *
76
+ * 2. "plugins" folder
77
+ * Path: C:/xampp/htdocs/fswp/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
78
+ * URL: http://fswp:8080/wp-content/plugins/rating-widget-premium/freemius/assets/css/admin/common.css
79
+ *
80
+ * @author Leo Fajardo (@leorw)
81
+ * @since 1.2.2
82
+ *
83
+ * @param string $asset_abs_path Asset's absolute path.
84
+ *
85
+ * @return string Asset's URL.
86
+ */
87
+ function fs_asset_url( $asset_abs_path ) {
88
+ $wp_content_dir = fs_normalize_path( WP_CONTENT_DIR );
89
+ $asset_abs_path = fs_normalize_path( $asset_abs_path );
90
+
91
+ if ( 0 === strpos( $asset_abs_path, $wp_content_dir ) ) {
92
+ // Handle both theme and plugin assets located in the standard directories.
93
+ $asset_rel_path = str_replace( $wp_content_dir, '', $asset_abs_path );
94
+ $asset_url = content_url( fs_normalize_path( $asset_rel_path ) );
 
 
 
 
 
95
  } else {
96
+ $wp_plugins_dir = fs_normalize_path( WP_PLUGIN_DIR );
97
+ if ( 0 === strpos( $asset_abs_path, $wp_plugins_dir ) ) {
98
+ // Try to handle plugin assets that may be located in a non-standard plugins directory.
99
+ $asset_rel_path = str_replace( $wp_plugins_dir, '', $asset_abs_path );
100
+ $asset_url = plugins_url( fs_normalize_path( $asset_rel_path ) );
101
+ } else {
102
+ // Try to handle theme assets that may be located in a non-standard themes directory.
103
+ $active_theme_stylesheet = get_stylesheet();
104
+ $wp_themes_dir = fs_normalize_path( trailingslashit( get_theme_root( $active_theme_stylesheet ) ) );
105
+ $asset_rel_path = str_replace( $wp_themes_dir, '', fs_normalize_path( $asset_abs_path ) );
106
+ $asset_url = trailingslashit( get_theme_root_uri( $active_theme_stylesheet ) ) . fs_normalize_path( $asset_rel_path );
107
+ }
108
  }
 
109
 
110
+ return $asset_url;
111
+ }
112
  }
113
 
114
+ if ( ! function_exists( 'fs_enqueue_local_style' ) ) {
115
+ function fs_enqueue_local_style( $handle, $path, $deps = array(), $ver = false, $media = 'all' ) {
116
+ wp_enqueue_style( $handle, fs_asset_url( WP_FS__DIR_CSS . '/' . trim( $path, '/' ) ), $deps, $ver, $media );
117
+ }
118
  }
119
 
120
+ if ( ! function_exists( 'fs_enqueue_local_script' ) ) {
121
+ function fs_enqueue_local_script( $handle, $path, $deps = array(), $ver = false, $in_footer = 'all' ) {
122
+ wp_enqueue_script( $handle, fs_asset_url( WP_FS__DIR_JS . '/' . trim( $path, '/' ) ), $deps, $ver, $in_footer );
123
+ }
124
  }
125
 
126
+ if ( ! function_exists( 'fs_img_url' ) ) {
127
+ function fs_img_url( $path, $img_dir = WP_FS__DIR_IMG ) {
128
+ return ( fs_asset_url( $img_dir . '/' . trim( $path, '/' ) ) );
129
+ }
130
  }
131
 
132
  #--------------------------------------------------------------------------------
135
 
136
  if ( ! function_exists( 'fs_request_get' ) ) {
137
  /**
138
+ * A helper method to fetch GET/POST user input with an optional default value when the input is not set.
139
+ * @author Vova Feldman (@svovaf)
140
+ *
141
  * @param string $key
142
  * @param mixed $def
143
  * @param string|bool $type Since 1.2.1.7 - when set to 'get' will look for the value passed via querystring, when
151
  $type = strtolower( $type );
152
  }
153
 
154
+ /**
155
+ * Note to WordPress.org Reviewers:
156
+ * This is a helper method to fetch GET/POST user input with an optional default value when the input is not set. The actual sanitization is done in the scope of the function's usage.
157
+ */
158
  switch ( $type ) {
159
  case 'post':
160
  $value = isset( $_POST[ $key ] ) ? $_POST[ $key ] : $def;
178
  }
179
 
180
  if ( ! function_exists( 'fs_request_get_bool' ) ) {
181
+ /**
182
+ * A helper method to fetch GET/POST user boolean input with an optional default value when the input is not set.
183
+ *
184
+ * @author Vova Feldman (@svovaf)
185
+ *
186
+ * @param string $key
187
+ * @param bool $def
188
+ *
189
+ * @return bool|mixed
190
+ */
191
  function fs_request_get_bool( $key, $def = false ) {
192
+ $val = fs_request_get( $key, null );
193
+
194
+ if ( is_null( $val ) ) {
195
  return $def;
196
  }
197
 
198
+ if ( is_bool( $val ) ) {
199
+ return $val;
200
+ } else if ( is_numeric( $val ) ) {
201
+ if ( 1 == $val ) {
202
+ return true;
203
+ } else if ( 0 == $val ) {
204
+ return false;
205
+ }
206
+ } else if ( is_string( $val ) ) {
207
+ $val = strtolower( $val );
208
 
209
+ if ( 'true' === $val ) {
210
+ return true;
211
+ } else if ( 'false' === $val ) {
212
+ return false;
213
+ }
214
  }
215
 
216
  return $def;
323
 
324
  /* Core UI.
325
  --------------------------------------------------------------------------------------------*/
326
+ if ( ! function_exists( 'fs_ui_action_button' ) ) {
327
+ /**
328
+ * @param number $module_id
329
+ * @param string $page
330
+ * @param string $action
331
+ * @param string $title
332
+ * @param string $button_class
333
+ * @param array $params
334
+ * @param bool $is_primary
335
+ * @param bool $is_small
336
+ * @param string|bool $icon_class Optional class for an icon (since 1.1.7).
337
+ * @param string|bool $confirmation Optional confirmation message before submit (since 1.1.7).
338
+ * @param string $method Since 1.1.7
339
+ *
340
+ * @uses fs_ui_get_action_button()
341
+ */
342
+ function fs_ui_action_button(
 
 
 
 
 
 
 
 
 
 
 
 
343
  $module_id,
344
  $page,
345
  $action,
346
  $title,
347
+ $button_class = '',
348
+ $params = array(),
349
+ $is_primary = true,
350
+ $is_small = false,
351
+ $icon_class = false,
352
+ $confirmation = false,
353
+ $method = 'GET'
354
+ ) {
355
+ echo fs_ui_get_action_button(
356
+ $module_id,
357
+ $page,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
358
  $action,
359
+ $title,
360
+ $button_class,
361
+ $params,
362
+ $is_primary,
363
+ $is_small,
364
+ $icon_class,
365
  $confirmation,
366
+ $method
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
  );
368
  }
369
  }
370
 
371
+ if ( ! function_exists( 'fs_ui_get_action_button' ) ) {
372
+ /**
373
+ * @author Vova Feldman (@svovaf)
374
+ * @since 1.1.7
375
+ *
376
+ * @param number $module_id
377
+ * @param string $page
378
+ * @param string $action
379
+ * @param string $title
380
+ * @param string $button_class
381
+ * @param array $params
382
+ * @param bool $is_primary
383
+ * @param bool $is_small
384
+ * @param string|bool $icon_class Optional class for an icon.
385
+ * @param string|bool $confirmation Optional confirmation message before submit.
386
+ * @param string $method
387
+ *
388
+ * @return string
389
+ */
390
+ function fs_ui_get_action_button(
391
+ $module_id,
392
+ $page,
393
+ $action,
394
+ $title,
395
+ $button_class = '',
396
+ $params = array(),
397
+ $is_primary = true,
398
+ $is_small = false,
399
+ $icon_class = false,
400
+ $confirmation = false,
401
+ $method = 'GET'
402
+ ) {
403
+ // Prepend icon (if set).
404
+ $title = ( is_string( $icon_class ) ? '<i class="' . $icon_class . '"></i> ' : '' ) . $title;
405
+
406
+ if ( is_string( $confirmation ) ) {
407
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="if (confirm(\'%s\')) this.parentNode.submit(); return false;">%s</a></form>',
408
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
409
+ $method,
410
+ $action,
411
+ wp_nonce_field( $action, '_wpnonce', true, false ),
412
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
413
+ $confirmation,
414
+ $title
415
+ );
416
+ } else if ( 'GET' !== strtoupper( $method ) ) {
417
+ return sprintf( '<form action="%s" method="%s"><input type="hidden" name="fs_action" value="%s">%s<a href="#" class="%s" onclick="this.parentNode.submit(); return false;">%s</a></form>',
418
+ freemius( $module_id )->_get_admin_page_url( $page, $params ),
419
+ $method,
420
+ $action,
421
+ wp_nonce_field( $action, '_wpnonce', true, false ),
422
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
423
+ $title
424
+ );
425
+ } else {
426
+ return sprintf( '<a href="%s" class="%s">%s</a></form>',
427
+ wp_nonce_url( freemius( $module_id )->_get_admin_page_url( $page, array_merge( $params, array( 'fs_action' => $action ) ) ), $action ),
428
+ 'button' . ( ! empty( $button_class ) ? ' ' . $button_class : '' ) . ( $is_primary ? ' button-primary' : '' ) . ( $is_small ? ' button-small' : '' ),
429
+ $title
430
+ );
431
+ }
432
+ }
433
+
434
+ function fs_ui_action_link( $module_id, $page, $action, $title, $params = array() ) {
435
+ ?><a class=""
436
+ href="<?php echo wp_nonce_url( freemiu