YITH WooCommerce Ajax Search - Version 1.22.1

Version Description

  • Released on 4 August 2022 =
  • Fix: Layout style
Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Ajax Search
Version 1.22.1
Comparing to
See all releases

Code changes from version 1.22.0 to 1.22.1

Files changed (75) hide show
  1. assets/css/yith_wcas_ajax_search.css +8 -0
  2. init.php +2 -2
  3. languages/yith-woocommerce-ajax-search.pot +2 -2
  4. plugin-fw/assets/css/scss/yith-plugin-ui.scss +8 -0
  5. plugin-fw/assets/css/scss/yith-plugin-ui/_animations.scss +92 -0
  6. plugin-fw/assets/css/scss/yith-plugin-ui/_components.scss +12 -0
  7. plugin-fw/assets/css/scss/yith-plugin-ui/_head_comment.scss +6 -0
  8. plugin-fw/assets/css/scss/yith-plugin-ui/_tables.scss +56 -0
  9. plugin-fw/assets/css/scss/yith-plugin-ui/_taxonomy.scss +52 -0
  10. plugin-fw/assets/css/scss/yith-plugin-ui/_variables.scss +121 -0
  11. plugin-fw/assets/css/scss/yith-plugin-ui/_wp-pages.scss +88 -0
  12. plugin-fw/assets/css/scss/yith-plugin-ui/components/_action-button.scss +80 -0
  13. plugin-fw/assets/css/scss/yith-plugin-ui/components/_boxed-row.scss +14 -0
  14. plugin-fw/assets/css/scss/yith-plugin-ui/components/_buttons.scss +224 -0
  15. plugin-fw/assets/css/scss/yith-plugin-ui/components/_confirm.scss +41 -0
  16. plugin-fw/assets/css/scss/yith-plugin-ui/components/_list-table-blank-state.scss +25 -0
  17. plugin-fw/assets/css/scss/yith-plugin-ui/components/_modal.scss +128 -0
  18. plugin-fw/assets/css/scss/yith-plugin-ui/components/_tabs.scss +51 -0
  19. plugin-fw/assets/css/scss/yith-plugin-ui/components/_tip-tip.scss +80 -0
  20. plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_buttons.scss +124 -0
  21. plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_tables.scss +159 -0
  22. plugin-fw/assets/css/yith-bh-onboarding.css +170 -0
  23. plugin-fw/assets/images/bh-onboarding/check.svg +16 -0
  24. plugin-fw/assets/js/yit-plugin-panel.min.js +1 -1
  25. plugin-fw/assets/js/yith-bh-onboarding.js +65 -0
  26. plugin-fw/assets/js/yith-bh-onboarding.min.js +1 -0
  27. plugin-fw/includes/builders/gutenberg/src/common/actions-to-jquery-events.js +32 -0
  28. plugin-fw/includes/builders/gutenberg/src/common/ajaxFetch.js +42 -0
  29. plugin-fw/includes/builders/gutenberg/src/common/checkForDeps.js +46 -0
  30. plugin-fw/includes/builders/gutenberg/src/common/generateShortcode.js +42 -0
  31. plugin-fw/includes/builders/gutenberg/src/common/icons.js +12 -0
  32. plugin-fw/includes/builders/gutenberg/src/common/index.js +4 -0
  33. plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/index.js +96 -0
  34. plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/style.scss +9 -0
  35. plugin-fw/includes/builders/gutenberg/src/components/color-picker-control/index.js +53 -0
  36. plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/index.js +56 -0
  37. plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/multiple-select.js +186 -0
  38. plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/style.scss +135 -0
  39. plugin-fw/includes/builders/gutenberg/src/components/shortcode/index.js +152 -0
  40. plugin-fw/includes/builders/gutenberg/src/components/shortcode/style.scss +64 -0
  41. plugin-fw/includes/builders/gutenberg/src/edit.js +234 -0
  42. plugin-fw/includes/builders/gutenberg/src/index.js +53 -0
  43. plugin-fw/includes/class-yit-assets.php +10 -0
  44. plugin-fw/includes/class-yit-plugin-panel-woocommerce.php +11 -5
  45. plugin-fw/includes/class-yith-bh-onboarding.php +110 -0
  46. plugin-fw/init.php +2 -2
  47. plugin-fw/languages/yith-plugin-fw-el.mo +0 -0
  48. plugin-fw/languages/yith-plugin-fw-el.po +58 -43
  49. plugin-fw/languages/yith-plugin-fw-es_ES.mo +0 -0
  50. plugin-fw/languages/yith-plugin-fw-es_ES.po +61 -44
  51. plugin-fw/languages/yith-plugin-fw-it_IT.mo +0 -0
  52. plugin-fw/languages/yith-plugin-fw-it_IT.po +61 -44
  53. plugin-fw/languages/yith-plugin-fw-nl_NL.mo +0 -0
  54. plugin-fw/languages/yith-plugin-fw-nl_NL.po +59 -43
  55. plugin-fw/languages/yith-plugin-fw-ru_RU.mo +0 -0
  56. plugin-fw/languages/yith-plugin-fw-ru_RU.po +59 -43
  57. plugin-fw/languages/yith-plugin-fw-zh_CN.mo +0 -0
  58. plugin-fw/languages/yith-plugin-fw-zh_CN.po +61 -44
  59. plugin-fw/languages/yith-plugin-fw.pot +58 -43
  60. plugin-fw/templates/bh-onboarding/onboarding-tabs.php +75 -0
  61. plugin-fw/tests/bootstrap.php +167 -0
  62. plugin-fw/tests/framework/fixtures/panel-all-options.php +240 -0
  63. plugin-fw/tests/framework/helpers/class-yith-plugin-fw-panels-helper.php +83 -0
  64. plugin-fw/tests/framework/plugin-options/wc-panel-options.php +43 -0
  65. plugin-fw/tests/unit-tests/class-yith-plugin-fw-tests-plugin-panel-wc.php +49 -0
  66. plugin-fw/tools/local-env/docker/phpunit/Dockerfile +12 -0
  67. plugin-fw/tools/local-env/install-wp-tests.sh +154 -0
  68. plugin-fw/tools/local-env/mysql-init.sql +7 -0
  69. plugin-fw/tools/local-env/phpunit-config.ini +6 -0
  70. plugin-fw/tools/local-env/scripts/docker.js +6 -0
  71. plugin-fw/tools/local-env/scripts/install.js +15 -0
  72. plugin-fw/tools/local-env/scripts/start.js +7 -0
  73. plugin-fw/tools/local-env/yith-plugin-fw-loader.php +50 -0
  74. plugin-fw/yit-plugin.php +1 -0
  75. readme.txt +4 -1
assets/css/yith_wcas_ajax_search.css CHANGED
@@ -30,3 +30,11 @@
30
  .autocomplete-suggestion:hover {
31
  background-color: #efefef;
32
  }
 
 
 
 
 
 
 
 
30
  .autocomplete-suggestion:hover {
31
  background-color: #efefef;
32
  }
33
+
34
+ form#yith-ajaxsearchform > div {
35
+ display: flex;
36
+ flex: auto;
37
+ flex-wrap: nowrap;
38
+ max-width: 100%;
39
+ gap: 10px;
40
+ }
init.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: YITH WooCommerce Ajax Search
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
  * Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
- * Version: 1.22.0
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-ajax-search
@@ -75,7 +75,7 @@ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
75
  if ( defined( 'YITH_WCAS_VERSION' ) ) {
76
  return;
77
  } else {
78
- define( 'YITH_WCAS_VERSION', '1.22.0' );
79
  }
80
 
81
  if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
3
  * Plugin Name: YITH WooCommerce Ajax Search
4
  * Plugin URI: https://yithemes.com/themes/plugins/yith-woocommerce-ajax-search/
5
  * Description: <code><strong>YITH WooCommerce Ajax Search</strong></code> is the plugin that allows you to search for a specific product by inserting a few characters. Thanks to <strong>Ajax Search</strong>, users can quickly find the contents they are interested in without wasting time among site pages. <a href="https://yithemes.com/" target="_blank">Get more plugins for your e-commerce shop on <strong>YITH</strong></a>.
6
+ * Version: 1.22.1
7
  * Author: YITH
8
  * Author URI: https://yithemes.com/
9
  * Text Domain: yith-woocommerce-ajax-search
75
  if ( defined( 'YITH_WCAS_VERSION' ) ) {
76
  return;
77
  } else {
78
+ define( 'YITH_WCAS_VERSION', '1.22.1' );
79
  }
80
 
81
  if ( ! defined( 'YITH_WCAS_FREE_INIT' ) ) {
languages/yith-woocommerce-ajax-search.pot CHANGED
@@ -2,10 +2,10 @@
2
  # This file is distributed under the same license as the YITH WooCommerce Ajax Search package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: YITH WooCommerce Ajax Search 1.22.0\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/yith-woocommerce-ajax-search\n"
8
- "POT-Creation-Date: 2022-07-27 15:52:41+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
2
  # This file is distributed under the same license as the YITH WooCommerce Ajax Search package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: YITH WooCommerce Ajax Search 1.22.1\n"
6
  "Report-Msgid-Bugs-To: "
7
  "https://wordpress.org/support/plugin/yith-woocommerce-ajax-search\n"
8
+ "POT-Creation-Date: 2022-08-04 09:34:23+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
plugin-fw/assets/css/scss/yith-plugin-ui.scss ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ @import "yith-plugin-ui/head_comment";
2
+
3
+ @import "yith-plugin-ui/variables";
4
+ @import "yith-plugin-ui/wp-pages";
5
+ @import "yith-plugin-ui/taxonomy";
6
+ @import "yith-plugin-ui/components";
7
+ @import "yith-plugin-ui/tables";
8
+ @import "yith-plugin-ui/animations";
plugin-fw/assets/css/scss/yith-plugin-ui/_animations.scss ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH Animations
3
+ */
4
+
5
+ .yith-plugin-fw-animate__appear-from-bottom{
6
+ animation: yith-plugin-fw-appear-from-bottom .3s forwards;
7
+ }
8
+
9
+ .yith-plugin-fw-animate__appear-from-top{
10
+ animation: yith-plugin-fw-appear-from-top .3s forwards;
11
+ }
12
+
13
+ .yith-plugin-fw-animate__fade-in{
14
+ animation: yith-plugin-fw-fade-in .3s forwards;
15
+ }
16
+
17
+
18
+ @-webkit-keyframes yith-plugin-fw-appear-from-top {
19
+ from {
20
+ opacity: 0;
21
+ transform: translateY(-30%);
22
+ -webkit-transform: translateY(-30%);
23
+ }
24
+
25
+ to {
26
+ opacity: 1;
27
+ transform: translateY(0);
28
+ -webkit-transform: translateY(0);
29
+ }
30
+ }
31
+
32
+ @keyframes yith-plugin-fw-appear-from-top {
33
+ from {
34
+ opacity: 0;
35
+ transform: translateY(-30%);
36
+ -webkit-transform: translateY(-30%);
37
+ }
38
+
39
+ to {
40
+ opacity: 1;
41
+ transform: translateY(0);
42
+ -webkit-transform: translateY(0);
43
+ }
44
+ }
45
+
46
+ @-webkit-keyframes yith-plugin-fw-appear-from-bottom {
47
+ from {
48
+ opacity: 0;
49
+ transform: translateY(+30%);
50
+ -webkit-transform: translateY(+30%);
51
+ }
52
+
53
+ to {
54
+ opacity: 1;
55
+ transform: translateY(0);
56
+ -webkit-transform: translateY(0);
57
+ }
58
+ }
59
+
60
+ @keyframes yith-plugin-fw-appear-from-bottom {
61
+ from {
62
+ opacity: 0;
63
+ transform: translateY(+30%);
64
+ -webkit-transform: translateY(+30%);
65
+ }
66
+
67
+ to {
68
+ opacity: 1;
69
+ transform: translateY(0);
70
+ -webkit-transform: translateY(0);
71
+ }
72
+ }
73
+
74
+ @-webkit-keyframes yith-plugin-fw-fade-in {
75
+ from {
76
+ opacity: 0;
77
+ }
78
+
79
+ to {
80
+ opacity: 1;
81
+ }
82
+ }
83
+
84
+ @keyframes yith-plugin-fw-fade-in {
85
+ from {
86
+ opacity: 0;
87
+ }
88
+
89
+ to {
90
+ opacity: 1;
91
+ }
92
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/_components.scss ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH Plugin UI - Components
3
+ */
4
+
5
+ @import "components/action-button";
6
+ @import "components/buttons";
7
+ @import "components/boxed-row";
8
+ @import "components/confirm";
9
+ @import "components/list-table-blank-state";
10
+ @import "components/modal";
11
+ @import "components/tip-tip";
12
+ @import "components/tabs";
plugin-fw/assets/css/scss/yith-plugin-ui/_head_comment.scss ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /**
2
+ * YITH Plugin UI style
3
+ *
4
+ * IMPORTANT: This file is automatically generated through SCSS files.
5
+ * Please don't edit it manually!
6
+ */
plugin-fw/assets/css/scss/yith-plugin-ui/_tables.scss ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH Plugin UI - Post Type Style
3
+ */
4
+
5
+ @import "mixins/tables";
6
+
7
+ table.yith-plugin-fw__classic-table {
8
+ @include classic-table;
9
+
10
+ &.wp-list-table{
11
+ @include wp-table-commons;
12
+ }
13
+ }
14
+
15
+ table.yith-plugin-fw__boxed-table {
16
+ @include boxed-table;
17
+
18
+ &.wp-list-table{
19
+ @include wp-table-commons;
20
+ }
21
+ }
22
+
23
+ // WP List Tables
24
+ .yith-plugin-ui--classic-wp-list-style, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--classic-wp-list-style {
25
+
26
+ table.wp-list-table {
27
+ @include classic-table;
28
+
29
+ @include wp-table-commons;
30
+ }
31
+
32
+ .tablenav.bottom {
33
+ display: none;
34
+
35
+ .yith-plugin-fw__list-table-blank-state {
36
+ display: flex;
37
+ }
38
+ }
39
+ }
40
+
41
+ .yith-plugin-ui--boxed-wp-list-style, .yith-plugin-ui #plugin-fw-wc .yith-plugin-ui--boxed-wp-list-style {
42
+
43
+ table.wp-list-table {
44
+ @include boxed-table;
45
+
46
+ @include wp-table-commons;
47
+ }
48
+
49
+ .tablenav.bottom {
50
+ display: none;
51
+
52
+ .yith-plugin-fw__list-table-blank-state {
53
+ display: flex;
54
+ }
55
+ }
56
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/_taxonomy.scss ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH Plugin UI - Taxonomy Style
3
+ */
4
+
5
+ .yith-plugin-ui.yith-plugin-ui--taxonomy-type, .yith-plugin-ui--taxonomy-type {
6
+
7
+ // List
8
+
9
+ #col-container {
10
+ display: flex;
11
+ }
12
+
13
+ #col-left {
14
+ padding: 20px;
15
+ background: #f1f1f1;
16
+ border-radius: 8px;
17
+ box-sizing: border-box;
18
+ margin-right: 15px;
19
+ }
20
+
21
+ #col-right {
22
+ flex: 1;
23
+ }
24
+
25
+ h2 {
26
+ border: none;
27
+ padding: 0;
28
+ font-size: 14px;
29
+ background: transparent;
30
+ }
31
+
32
+ // Edit Tax
33
+ .wrap h1 {
34
+ color: #2a8db0;
35
+ font-size: 16px;
36
+ font-weight: 600;
37
+ }
38
+ }
39
+
40
+ @media screen and (max-width: 782px) {
41
+ .yith-plugin-ui.yith-plugin-ui--taxonomy-type {
42
+ #col-container {
43
+ display: block;
44
+ }
45
+
46
+ #col-left, #col-right {
47
+ float: none;
48
+ width: 100%;
49
+ }
50
+ }
51
+ }
52
+
plugin-fw/assets/css/scss/yith-plugin-ui/_variables.scss ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH CSS Variables
3
+ */
4
+
5
+ $content_bg: #ffffff; // Content Background.
6
+ $content_text: #3c434a; // Content Text.
7
+
8
+ $primary: #00799f; // Primary color, for buttons
9
+ $primary_hover: #0094c4; // Primary hover color, for buttons
10
+ $primary_focus: #bddce6; // Primary focus color, for buttons
11
+ $primary_text: #ffffff; // Text on primary color bg
12
+
13
+ $delete: #c41d04; // color for delete buttons
14
+ $delete_hover: lighten($delete, 5%); // color for delete buttons - hover
15
+ $delete_text: #ffffff; // Text on delete buttons
16
+ $delete_focus: #f0d2cd; // Delete focus color, for buttons
17
+
18
+ // Outline is used to stylize Secondary buttons.
19
+ $outline_text: #0087b3; // outline button - text color
20
+ $outline_border: #0094c4; // outline button - border color
21
+ $outline_bg: rgba(255, 255, 255, 0); // outline button - background color
22
+ $outline_bg_hover: rgba(157, 198, 205, .2); // outline button - background color on hover
23
+ $outline_border_hover: #007ba3; // outline button - border color on hover
24
+ $outline_focus: #dfeef2; // Outline focus color, for buttons
25
+
26
+ $delete_outline_text: $delete; // Delete-outline button - text color
27
+ $delete_outline_border: $delete; // Delete-outline button - border color
28
+ $delete_outline_bg: rgba(205, 157, 157, 0); // Delete-outline button - background color
29
+ $delete_outline_bg_hover: rgba(232, 184, 184, 0.15); // Delete-outline button - background color on hover
30
+ $delete_outline_border_hover: #db2b11; // Delete-outline button - border color on hover
31
+ $delete_outline_focus: #ffe9e7; // Delete-outline focus color, for buttons
32
+
33
+ $update: #94aa09; // Update button - background
34
+ $update_hover: darken($update, 5%); // Update button - hover
35
+ $update_text: #ffffff; // Text on update button background
36
+ $update_focus: #e7eccc; // Text on update button background
37
+
38
+ $accent: #98aa36;
39
+
40
+ $light_bg: #f5fafc;
41
+ $light_border_color: #d7e3e7;
42
+ $light_shadow: rgba(145, 191, 227, 0.11);
43
+ $light_accent: #0073aa;
44
+
45
+ $success: #98aa36;
46
+ $success_light: lighten($success, 30%);
47
+ $success_lighter: lighten($success, 43%);
48
+ $success_lightest: lighten($success, 50%);
49
+
50
+
51
+ $table_row_highlight: #f0f6fb;
52
+ $table_row_striped: #f6f7f7;
53
+ $table_border_light: #eff0f0;
54
+
55
+ $field_border_color: #d8d8d8;
56
+ $field_border_weight: 1px;
57
+ $field_border: $field_border_weight solid $field_border_color;
58
+
59
+ $link: #0079b0; // Link Color.
60
+
61
+ // Extra variables: these will be not converted to CSS Variables
62
+ $wp_menu_size: 160px;
63
+ $wp_menu_folded_size: 36px;
64
+ $wp_menu_mobile_size: 190px;
65
+ $wp_top_bar_size: 32px;
66
+ $wp_top_bar_mobile_size: 46px;
67
+
68
+ // export vars as CSS vars
69
+ :root {
70
+ --yith-content-bg: #{$content_bg};
71
+ --yith-content-text: #{$content_text};
72
+ --yith-primary: #{$primary};
73
+ --yith-primary-hover: #{$primary_hover};
74
+ --yith-primary-focus: #{$primary_focus};
75
+ --yith-primary-text: #{$primary_text};
76
+
77
+ --yith-delete: #{$delete};
78
+ --yith-delete-hover: #{$delete_hover};
79
+ --yith-delete-text: #{$delete_text};
80
+ --yith-delete-focus: #{$delete_focus};
81
+
82
+ --yith-update: #{$update};
83
+ --yith-update-hover: #{$update_hover};
84
+ --yith-update-text: #{$update_text};
85
+ --yith-update-focus: #{$update_focus};
86
+
87
+ --yith-outline-text: #{$outline_text};
88
+ --yith-outline-border: #{$outline_border};
89
+ --yith-outline-bg: #{$outline_bg};
90
+ --yith-outline-bg-hover: #{$outline_bg_hover};
91
+ --yith-outline-border-hover: #{$outline_border_hover};
92
+ --yith-outline-focus: #{$outline_focus};
93
+
94
+ --yith-delete-outline-text: #{$delete_outline_text};
95
+ --yith-delete-outline-border: #{$delete_outline_border};
96
+ --yith-delete-outline-bg: #{$delete_outline_bg};
97
+ --yith-delete-outline-bg-hover: #{$delete_outline_bg_hover};
98
+ --yith-delete-outline-border-hover: #{$delete_outline_border_hover};
99
+ --yith-delete-outline-focus: #{$delete_outline_focus};
100
+
101
+ --yith-accent: #{$accent};
102
+
103
+ --yith-light-bg: #{$light_bg};
104
+ --yith-light-border-color: #{$light_border_color};
105
+ --yith-light-shadow: #{$light_shadow};
106
+ --yith-light-accent: #{$light_accent};
107
+
108
+ --yith-success: #{$success};
109
+ --yith-success-light: #{$success_light};
110
+ --yith-success-lighter: #{$success_lighter};
111
+ --yith-success-lightest: #{$success_lightest};
112
+
113
+ --yith-table-row-highlight: #{$table_row_highlight};
114
+ --yith-table-row-striped: #{$table_row_striped};
115
+ --yith-table-border-light: #{$table_border_light};
116
+
117
+ --yith-field-border-color: #{$field_border_color};
118
+ --yith-field-border-weight: #{$field_border_color};
119
+ --yith-field-border: #{$field_border};
120
+ --yith-link: #{$link};
121
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/_wp-pages.scss ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * YITH Plugin UI - WP Pages
3
+ */
4
+
5
+ .yith-plugin-fw-wp-page-wrapper {
6
+
7
+ .yith-plugin-fw__back-to-wp-list__wrapper {
8
+ margin: -5px 0 15px;
9
+
10
+ .yith-plugin-fw__back-to-wp-list {
11
+ text-decoration: none;
12
+ font-weight: 600;
13
+ text-transform: uppercase;
14
+ color: var(--yith-link);
15
+ vertical-align: middle;
16
+
17
+ &:before {
18
+ content: "\e901";
19
+ font-family: yith-icon;
20
+ margin-right: 5px;
21
+ font-size: .8em;
22
+ vertical-align: middle;
23
+ }
24
+ }
25
+ }
26
+
27
+ .wrap div#message.updated {
28
+ display: none;
29
+ padding: 15px 40px 15px 45px;
30
+ margin: 15px 0 20px;
31
+ border-radius: 5px;
32
+ background: var(--yith-success-lightest);
33
+ border: 1px solid var(--yith-success-light);
34
+ font-weight: 600;
35
+ font-size: 14px;
36
+ text-align: left;
37
+ color: var(--yith-content-text);
38
+ box-shadow: 1px 1px 2px var(--yith-success-lighter);
39
+
40
+
41
+ &:before {
42
+ font-family: yith-icon;
43
+ content: "\e921";
44
+ position: absolute;
45
+ top: 50%;
46
+ left: 13px;
47
+ font-size: 21px;
48
+ font-weight: 400;
49
+ transform: translateY(-50%);
50
+ color: var(--yith-success);
51
+ }
52
+
53
+ p {
54
+ padding: 0;
55
+ margin: 0;
56
+ }
57
+
58
+ .notice-dismiss {
59
+ position: absolute;
60
+ top: 50%;
61
+ right: 10px;
62
+ transform: translateY(-50%);
63
+ border-radius: 50%;
64
+ color: var(--yith-success);
65
+ padding: 7px;
66
+ background: transparent;
67
+ box-shadow: 0 0 0 5px rgba(0, 0, 0, 0);
68
+ transition: all .3s ease-in-out;
69
+
70
+ &:before {
71
+ font-family: yith-icon;
72
+ content: "\e906";
73
+ font-weight: 600;
74
+ font-size: 12px;
75
+ color: inherit;
76
+ }
77
+
78
+ &:hover {
79
+ box-shadow: 0 0 0 0 var(--yith-success-lighter);
80
+ background: var(--yith-success-lighter);
81
+ }
82
+
83
+ &:hover:before, &:active:before, &:focus:before {
84
+ color: inherit;
85
+ }
86
+ }
87
+ }
88
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_action-button.scss ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .yith-plugin-ui .yith-plugin-fw__action-button, .yith-plugin-fw__action-button {
2
+ height: 35px;
3
+ width: 35px;
4
+ background-color: var(--yith-content-bg);
5
+ display: inline-block;
6
+ border: 0;
7
+ border-radius: 50%;
8
+ transition: .3s;
9
+ cursor: pointer;
10
+ box-shadow: 0 2px 7px rgba(170, 198, 222, .5);
11
+ outline: none;
12
+ position: relative;
13
+ margin: 0 5px 5px 0;
14
+ vertical-align: middle;
15
+
16
+ .yith-plugin-fw__action-button__link {
17
+ height: 100%;
18
+ width: 100%;
19
+ display: inline-block;
20
+ }
21
+
22
+ .yith-plugin-fw__action-button__icon {
23
+ position: absolute;
24
+ color: var(--yith-link);
25
+ font-size: 17px;
26
+ top: 50%;
27
+ left: 50%;
28
+ transform: translateX(-50%) translateY(-50%);
29
+ }
30
+
31
+ &.yith-plugin-fw__action-button--trash-action .yith-plugin-fw__action-button__icon,
32
+ &.yith-plugin-fw__action-button--delete-action .yith-plugin-fw__action-button__icon {
33
+ color: #a10000;
34
+ }
35
+
36
+ .yith-plugin-fw__action-button__menu {
37
+ position: absolute;
38
+ display: none;
39
+ flex-direction: column;
40
+ width: max-content;
41
+ right: 0;
42
+ margin: 5px 0 0 0;
43
+ padding: 8px 0;
44
+ background: var(--yith-content-bg);
45
+ border-radius: 5px;
46
+ box-shadow: 0 2px 7px rgba(170, 198, 222, .5);
47
+ z-index: 10;
48
+ animation: yith-plugin-fw-appear-from-top .3s forwards;
49
+ }
50
+
51
+ .yith-plugin-fw__action-button__menu__item {
52
+ margin: 0;
53
+ display: block;
54
+ padding: 7px 25px;
55
+ color: var(--yith-content-text);
56
+ cursor: pointer;
57
+ text-decoration: none;
58
+ text-align: right;
59
+
60
+ &:hover {
61
+ color: var(--yith-link);
62
+ }
63
+ }
64
+
65
+ &.yith-plugin-fw__action-button--has-menu {
66
+ .yith-plugin-fw__action-button__icon {
67
+ color: var(--yith-content-text);
68
+ }
69
+
70
+ &.yith-plugin-fw__action-button--opened {
71
+ .yith-plugin-fw__action-button__icon {
72
+ color: var(--yith-link);
73
+ }
74
+
75
+ .yith-plugin-fw__action-button__menu {
76
+ display: flex;
77
+ }
78
+ }
79
+ }
80
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_boxed-row.scss ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ .yith-plugin-fw__boxed-row, .yith-plugin-fw__boxed-row--hover-highlight {
3
+ background: var(--yith-content-bg);
4
+ border-radius: 5px;
5
+ box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
6
+ transition: background-color .2s ease-in-out;
7
+ padding: 25px;
8
+ margin-bottom: 25px;
9
+ margin-top: 25px;
10
+ }
11
+
12
+ .yith-plugin-fw__boxed-row--hover-highlight:hover {
13
+ background: var(--yith-table-row-highlight);
14
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_buttons.scss ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "../mixins/buttons";
2
+
3
+ .yith-plugin-ui, .wp-core-ui .yith-plugin-ui {
4
+
5
+ // WordPress Buttons.
6
+ .button-primary, .button-secondary {
7
+ border-radius : 3px;
8
+ text-transform : none;
9
+ box-shadow : none;
10
+ border : 1px solid;
11
+ font-weight : 600;
12
+ padding : 0 12px;
13
+ outline : none;
14
+ height : auto;
15
+ transition : all ease 0.3s;
16
+ text-shadow : none;
17
+ display : inline-block;
18
+ text-decoration : none;
19
+ cursor : pointer;
20
+ white-space : nowrap;
21
+
22
+ &:focus {
23
+ outline : none;
24
+ box-shadow : none;
25
+ }
26
+
27
+ &.button-small {
28
+ padding : 0 8px;
29
+ }
30
+ }
31
+
32
+ .button-secondary {
33
+ @include button-secondary;
34
+ }
35
+
36
+ .button-primary {
37
+ @include button-primary;
38
+ }
39
+
40
+ .button.action,
41
+ #doaction,
42
+ #doaction2,
43
+ #post-query-submit,
44
+ #posts-filter #delete_all,
45
+ #search-submit,
46
+ .button.filter-button {
47
+ @include button;
48
+ @include button-secondary;
49
+ height : auto;
50
+ line-height : 33px;
51
+ border-radius : 8px;
52
+ padding : 0 15px;
53
+ font-weight : 600;
54
+ }
55
+
56
+ #posts-filter #delete_all {
57
+ @include button-delete-outline;
58
+ }
59
+
60
+ .tablenav .tablenav-pages .button,
61
+ .tablenav .tablenav-pages .tablenav-pages-navspan {
62
+ @include button-secondary;
63
+ }
64
+
65
+ @media screen and (max-width : 782px) {
66
+ .tablenav .tablenav-pages .button, .tablenav .tablenav-pages .tablenav-pages-navspan {
67
+ min-width : 44px;
68
+ padding : 12px 8px;
69
+ font-size : 18px;
70
+ line-height : 1;
71
+ }
72
+ }
73
+
74
+ // YITH Buttons.
75
+ .yith-plugin-fw__button, [class^="yith-plugin-fw__button--"], [class*=" yith-plugin-fw__button--"],
76
+ .yith-add-button, .yith-edit-button, .yith-update-button, .yith-remove-button, .yith-plugin-fw-upload-button, .yith-save-button, .yith-plugin-fw-select-all, .yith-plugin-fw-deselect-all, .yith-plugin-fw-upload-button-reset // Old buttons.
77
+ {
78
+ @include button;
79
+ }
80
+
81
+ .yith-plugin-fw__button--primary {
82
+ @include button-primary;
83
+ }
84
+
85
+ .yith-plugin-fw__button--secondary {
86
+ @include button-secondary;
87
+ }
88
+
89
+ .yith-plugin-fw__button--delete {
90
+ @include button-delete;
91
+ }
92
+
93
+ .yith-plugin-fw__button--add, .yith-add-button {
94
+ @include button-primary;
95
+
96
+ @include button-with-icon("\f115");
97
+
98
+ &:before {
99
+ display : inline-block;
100
+ margin : 0 10px 0 -5px;
101
+ font-size : .95em;
102
+ transition : transform .2s, margin .2s, font-size .2s;
103
+ transition-timing-function : ease-in-out;
104
+ }
105
+
106
+ &.closed {
107
+ @include button-secondary;
108
+
109
+ &:before {
110
+ font-size : 1.15em;
111
+ margin : 0 8px 0 -5px;
112
+ transform : rotate(-45deg);
113
+ }
114
+ }
115
+ }
116
+
117
+ .yith-plugin-fw__button--close {
118
+ @include button-secondary;
119
+
120
+ @include button-with-icon("\f117");
121
+ }
122
+
123
+ .yith-plugin-fw__button--edit, .yith-edit-button {
124
+ @include button-secondary;
125
+
126
+ @include button-with-icon("\e907");
127
+ }
128
+
129
+ .yith-plugin-fw__button--update, .yith-update-button {
130
+ @include button-update;
131
+
132
+ @include button-with-icon("\e90b");
133
+ }
134
+
135
+ .yith-plugin-fw__button--trash, .yith-remove-button {
136
+ @include button-delete;
137
+
138
+ @include button-with-icon("\e90d");
139
+ }
140
+
141
+ .yith-plugin-fw__button--upload, .yith-plugin-fw-upload-button {
142
+ @include button-primary;
143
+
144
+ @include button-with-icon("\e90c");
145
+ }
146
+
147
+ // Old buttons.
148
+ .yith-save-button {
149
+ @include button-primary;
150
+ }
151
+
152
+ .yith-plugin-fw-select-all,
153
+ .yith-plugin-fw-deselect-all,
154
+ .yith-plugin-fw-upload-button-reset {
155
+ @include button-secondary;
156
+ }
157
+
158
+ // with icons.
159
+ .button-secondary span.yith-icon {
160
+ margin-left : 0;
161
+ margin-right : 10px;
162
+ line-height : normal;
163
+
164
+ &:before {
165
+ color : inherit;
166
+ font-size : 15px;
167
+ font-weight : 400;
168
+ }
169
+ }
170
+
171
+ // With icon
172
+ .yith-plugin-fw__button--with-icon {
173
+ position : relative;
174
+ padding-left : 30px;
175
+
176
+ i {
177
+ position : absolute;
178
+ top : 50%;
179
+ left : 10px;
180
+ transform : translateY(-50%);
181
+ font-size : 1em;
182
+ font-weight : 400;
183
+ }
184
+ }
185
+
186
+
187
+ // Button Sizes
188
+ .yith-plugin-fw__button--xl, .button-xl {
189
+ padding : 0 20px;
190
+ font-size : 14px;
191
+ line-height : 38px;
192
+
193
+ &::before {
194
+ margin : 0 10px 0 -5px;
195
+ }
196
+
197
+ &.yith-plugin-fw__button--with-icon {
198
+ padding-left : 40px;
199
+
200
+ i {
201
+ left : 14px;
202
+ }
203
+ }
204
+ }
205
+
206
+ .yith-plugin-fw__button--xxl {
207
+ padding : 0 28px;
208
+ font-size : 16px;
209
+ line-height : 45px;
210
+
211
+ &::before {
212
+ margin : 0 15px 0 -10px;
213
+ }
214
+
215
+ &.yith-plugin-fw__button--with-icon {
216
+ padding-left : 45px;
217
+
218
+ i {
219
+ left : 15px;
220
+ }
221
+ }
222
+ }
223
+ }
224
+
plugin-fw/assets/css/scss/yith-plugin-ui/components/_confirm.scss ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "../mixins/buttons";
2
+
3
+ .yith-plugin-fw__confirm__wrap {
4
+
5
+ .yith-plugin-fw__confirm__message {
6
+ margin-bottom: 20px;
7
+ }
8
+
9
+ .yith-plugin-fw__confirm__footer {
10
+ text-align: right;
11
+ }
12
+
13
+
14
+ .yith-plugin-fw__confirm__button {
15
+ height: auto;
16
+ line-height: 33px;
17
+ border-radius: 4px;
18
+ padding: 0 20px;
19
+ font-weight: 600;
20
+ cursor: pointer;
21
+ display: inline-block;
22
+ margin-right: 10px;
23
+ white-space: nowrap;
24
+
25
+ &:last-child {
26
+ margin-right: 0;
27
+ }
28
+
29
+ &.yith-plugin-fw__confirm__button--cancel {
30
+ @include button-secondary;
31
+ }
32
+
33
+ &.yith-plugin-fw__confirm__button--confirm {
34
+ @include button-primary;
35
+ }
36
+
37
+ &.yith-plugin-fw__confirm__button--delete {
38
+ @include button-delete;
39
+ }
40
+ }
41
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_list-table-blank-state.scss ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .yith-plugin-fw__list-table-blank-state {
2
+ padding: 30px 30px 0;
3
+ text-align: center;
4
+ display: flex;
5
+ flex-direction: column;
6
+
7
+ & > * {
8
+ margin-bottom: 30px;
9
+ }
10
+
11
+ img.yith-plugin-fw__list-table-blank-state__icon {
12
+ width: 100px;
13
+ margin: 0 auto 30px;
14
+ }
15
+
16
+ i.yith-plugin-fw__list-table-blank-state__icon {
17
+ font-size: 65px;
18
+ margin: 0 auto 30px;
19
+ }
20
+
21
+ .yith-plugin-fw__list-table-blank-state__message {
22
+ font-size: 1.4em;
23
+ line-height: 1.5;
24
+ }
25
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_modal.scss ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .yith-plugin-fw__modal__wrap {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ position: fixed;
6
+ top: 0;
7
+ left: 0;
8
+ width: 100%;
9
+ height: 100%;
10
+ z-index: 999999;
11
+ background: rgba(34, 59, 80, 0.7);
12
+ animation: yith-plugin-fw-fade-in .3s forwards;
13
+ box-sizing: border-box;
14
+
15
+ .yith-plugin-fw__modal__main {
16
+ position: relative;
17
+ background: #fff;
18
+ border-radius: 10px;
19
+ box-shadow: 1px 3px 16px rgba(0, 22, 59, .4);
20
+ animation: yith-plugin-fw-appear-from-top .3s forwards;
21
+ overflow: hidden;
22
+ max-width: calc(100% - 20px);
23
+ max-height: calc(100% - 20px);
24
+ display: flex;
25
+ flex-direction: column;
26
+ }
27
+
28
+ .yith-plugin-fw__modal__close {
29
+ position: absolute;
30
+ top: 0;
31
+ right: 0;
32
+ padding: 8px;
33
+ font-size: 14px;
34
+ font-weight: 600;
35
+ color: #aaa;
36
+ cursor: pointer;
37
+
38
+ &:hover {
39
+ color: #444;
40
+ }
41
+ }
42
+
43
+ .yith-plugin-fw__modal__title {
44
+ padding: 20px 25px;
45
+ font-size: 1.5em;
46
+ font-weight: 600;
47
+ line-height: 1.5em;
48
+ color: var(--yith-primary);
49
+ }
50
+
51
+ .yith-plugin-fw__modal__content {
52
+ padding: 0 25px 25px;
53
+ }
54
+
55
+ .yith-plugin-fw__modal__footer {
56
+ padding: 25px;
57
+ background: #f7f7f7;
58
+ }
59
+
60
+ &.yith-plugin-fw__modal__wrap--scroll-content {
61
+ .yith-plugin-fw__modal__content {
62
+ overflow-y: auto;
63
+ }
64
+ }
65
+ }
66
+
67
+ .yith-plugin-fw__modal--opened {
68
+ overflow: hidden;
69
+ }
70
+
71
+ // Allow seeing WP Menu.
72
+
73
+ .yith-plugin-fw__modal--allow-wp-menu {
74
+ .yith-plugin-fw__modal__wrap {
75
+ z-index: 99;
76
+ padding-left: $wp_menu_size;
77
+ padding-top: $wp_top_bar_size;
78
+ }
79
+
80
+ #adminmenuback {
81
+ z-index: 100;
82
+ }
83
+ }
84
+
85
+ @media only screen and (max-width: 960px) {
86
+ .folded {
87
+ .yith-plugin-fw__modal__wrap {
88
+ padding-left: $wp_menu_folded_size;
89
+ }
90
+ }
91
+
92
+ .auto-fold {
93
+ .yith-plugin-fw__modal--allow-wp-menu {
94
+ .yith-plugin-fw__modal__wrap {
95
+ padding-left: $wp_menu_folded_size;
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ @media screen and (max-width: 782px) {
102
+ .auto-fold {
103
+ .yith-plugin-fw__modal--allow-wp-menu {
104
+ .yith-plugin-fw__modal__wrap {
105
+ z-index: 999999;
106
+ width: 100%;
107
+ height: 100%;
108
+ padding-left: 0;
109
+ padding-top: 0;
110
+ }
111
+ }
112
+
113
+ .yith-plugin-fw__modal--allow-wp-menu-in-mobile {
114
+ .yith-plugin-fw__modal__wrap {
115
+ z-index: 99;
116
+ padding-top: $wp_top_bar_mobile_size;
117
+ }
118
+
119
+ &.wp-responsive-open {
120
+ .yith-plugin-fw__modal__wrap {
121
+ padding-left: $wp_menu_mobile_size;
122
+ }
123
+ }
124
+ }
125
+
126
+
127
+ }
128
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_tabs.scss ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .yith-plugin-ui .yith-plugin-fw__tabs {
2
+ background : transparent;
3
+ padding : 0;
4
+ margin : 0;
5
+ display : flex;
6
+ align-items : center;
7
+ border-bottom : 1px solid var(--yith-light-border-color);
8
+ flex-wrap : wrap;
9
+
10
+ .yith-plugin-fw__tab {
11
+ border : 0;
12
+ margin : 0;
13
+ display : block;
14
+ }
15
+
16
+ .yith-plugin-fw__tab__handler, a.yith-plugin-fw__tab__handler {
17
+ background : var(--yith-content-bg);
18
+ border : 0;
19
+ border-bottom : 3px solid transparent;
20
+ padding : 17px 20px 15px;
21
+ font-weight : 600;
22
+ color : inherit;
23
+ text-decoration : none;
24
+ display : block;
25
+ transition : all .2s ease-in-out;
26
+ opacity : .55;
27
+
28
+ &:hover {
29
+ opacity : 1;
30
+ background : var(--yith-light-bg);
31
+ color : var(--yith-light-accent);
32
+ }
33
+ }
34
+
35
+ .yith-plugin-fw__tab.yith-plugin-fw__tab--active .yith-plugin-fw__tab__handler,
36
+ .yith-plugin-fw__tab__handler.yith-plugin-fw__tab__handler--enabled {
37
+ opacity : 1;
38
+ color : var(--yith-light-accent);
39
+ border-color : var(--yith-light-accent);
40
+ }
41
+ }
42
+
43
+ .yith-plugin-ui .yith-plugin-fw__tab-panel {
44
+ padding : 20px;
45
+
46
+ &.yith-plugin-fw__tab-panel--outlined {
47
+ border-width : 0 1px 1px 1px;
48
+ border-style : solid;
49
+ border-color : var(--yith-light-border-color);
50
+ }
51
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/components/_tip-tip.scss ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import "../mixins/buttons";
2
+
3
+ #tiptip_holder {
4
+ display: none;
5
+ pointer-events: none; /* Fix tip flashing when hover the edge */
6
+ z-index: 8675309;
7
+ position: absolute;
8
+ top: 0;
9
+
10
+ /*rtl:ignore*/
11
+ left: 0;
12
+
13
+
14
+ &.tip_top {
15
+ padding-bottom: 5px;
16
+
17
+ #tiptip_arrow_inner {
18
+ margin-top: -7px;
19
+ margin-left: -6px;
20
+ border-top-color: #333;
21
+ }
22
+ }
23
+
24
+ &.tip_bottom {
25
+ padding-top: 5px;
26
+
27
+ #tiptip_arrow_inner {
28
+ margin-top: -5px;
29
+ margin-left: -6px;
30
+ border-bottom-color: #333;
31
+ }
32
+ }
33
+
34
+ &.tip_right {
35
+ padding-left: 5px;
36
+
37
+ #tiptip_arrow_inner {
38
+ margin-top: -6px;
39
+ margin-left: -5px;
40
+ border-right-color: #333;
41
+ }
42
+ }
43
+
44
+ &.tip_left {
45
+ padding-right: 5px;
46
+
47
+ #tiptip_arrow_inner {
48
+ margin-top: -6px;
49
+ margin-left: -7px;
50
+ border-left-color: #333;
51
+ }
52
+ }
53
+
54
+
55
+ #tiptip_content {
56
+ color: #fff;
57
+ font-size: 0.8em;
58
+ max-width: 150px;
59
+ background: #333;
60
+ text-align: center;
61
+ border-radius: 3px;
62
+ padding: 0.618em 1em;
63
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
64
+
65
+ code {
66
+ padding: 1px;
67
+ background: #888;
68
+ }
69
+ }
70
+
71
+ #tiptip_arrow,
72
+ #tiptip_arrow_inner {
73
+ position: absolute;
74
+ border-color: transparent;
75
+ border-style: solid;
76
+ border-width: 6px;
77
+ height: 0;
78
+ width: 0;
79
+ }
80
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_buttons.scss ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @mixin button {
2
+ display: inline-block;
3
+ height: auto;
4
+ line-height: 30px;
5
+ border-radius: 4px;
6
+ padding: 0 17px;
7
+ font-weight: 600;
8
+ cursor: pointer;
9
+ transition: all .3s ease-in-out;
10
+ text-decoration: none;
11
+ white-space: nowrap;
12
+
13
+ &:focus {
14
+ outline: none;
15
+ box-shadow: none;
16
+ }
17
+ }
18
+
19
+ @mixin button-primary {
20
+ background: var(--yith-primary);
21
+ color: var(--yith-primary-text);
22
+ border: 1px solid var(--yith-primary);
23
+
24
+ &:focus {
25
+ background: var(--yith-primary);
26
+ color: var(--yith-primary-text);
27
+ border: 1px solid var(--yith-primary);
28
+ box-shadow: 0 0 0 3px var(--yith-primary-focus);
29
+ }
30
+
31
+ &:hover, &:active {
32
+ background: var(--yith-primary-hover);
33
+ color: var(--yith-primary-text);
34
+ border: 1px solid var(--yith-primary-hover);
35
+ }
36
+ }
37
+
38
+ @mixin button-secondary {
39
+ background: var(--yith-outline-bg);
40
+ border: 1px solid var(--yith-outline-border);
41
+ color: var(--yith-outline-text);
42
+
43
+ &:focus {
44
+ background: var(--yith-outline-bg);
45
+ border: 1px solid var(--yith-outline-border);
46
+ color: var(--yith-outline-text);
47
+ box-shadow: 0 0 0 3px var(--yith-outline-focus);
48
+ }
49
+
50
+ &:hover, &:active {
51
+ background: var(--yith-outline-bg-hover);
52
+ border-color: var(--yith-outline-border-hover);
53
+ color: var(--yith-outline-text);
54
+ }
55
+ }
56
+
57
+ @mixin button-update {
58
+ background: var(--yith-update);
59
+ color: var(--yith-update-text);
60
+ border: 1px solid var(--yith-update);
61
+
62
+ &:focus {
63
+ background: var(--yith-update);
64
+ color: var(--yith-update-text);
65
+ border: 1px solid var(--yith-update);
66
+ box-shadow: 0 0 0 3px var(--yith-update-focus);
67
+ }
68
+
69
+ &:hover, &:active {
70
+ background: var(--yith-update-hover);
71
+ color: var(--yith-update-text);
72
+ border: 1px solid var(--yith-update-hover);
73
+ }
74
+ }
75
+
76
+ @mixin button-delete {
77
+ background: var(--yith-delete);
78
+ color: var(--yith-delete-text);
79
+ border: 1px solid var(--yith-delete);
80
+
81
+ &:focus {
82
+ background: var(--yith-delete);
83
+ color: var(--yith-delete-text);
84
+ border: 1px solid var(--yith-delete);
85
+ box-shadow: 0 0 0 3px var(--yith-delete-focus);
86
+ }
87
+
88
+ &:hover, &:active {
89
+ background: var(--yith-delete-hover);
90
+ color: var(--yith-delete-text);
91
+ border: 1px solid var(--yith-delete-hover);
92
+ }
93
+ }
94
+
95
+ @mixin button-delete-outline {
96
+ background: var(--yith-delete-outline-bg);
97
+ border: 1px solid var(--yith-delete-outline-border);
98
+ color: var(--yith-delete-outline-text);
99
+
100
+ &:focus {
101
+ background: var(--yith-delete-outline-bg);
102
+ border: 1px solid var(--yith-delete-outline-border);
103
+ color: var(--yith-delete-outline-text);
104
+ box-shadow: 0 0 0 3px var(--yith-delete-outline-focus);
105
+ }
106
+
107
+ &:hover, &:active {
108
+ background: var(--yith-delete-outline-bg-hover);
109
+ border-color: var(--yith-delete-outline-border-hover);
110
+ color: var(--yith-delete-outline-text);
111
+ }
112
+ }
113
+
114
+ @mixin button-with-icon($icon) {
115
+
116
+ &:before {
117
+ font-family: yith-icon;
118
+ content: $icon;
119
+ margin: 0 8px 0 -5px;
120
+ font-size: 1.15em;
121
+ font-weight: 400;
122
+ vertical-align: top;
123
+ }
124
+ }
plugin-fw/assets/css/scss/yith-plugin-ui/mixins/_tables.scss ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @mixin table-action-buttons {
2
+
3
+ thead th.column-actions, tfoot th.column-actions {
4
+ visibility: hidden;
5
+ }
6
+
7
+ th.column-actions, td.column-actions {
8
+ text-align: right;
9
+ }
10
+
11
+ .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
12
+ opacity: 0;
13
+ transition: .3s;
14
+ }
15
+
16
+ tbody tr:hover .yith-plugin-fw__action-button:not(.yith-plugin-fw__action-button--visible) {
17
+ opacity: 1;
18
+ }
19
+ }
20
+
21
+ @mixin wp-table-commons {
22
+
23
+ tfoot {
24
+ display: none;
25
+ }
26
+
27
+ .check-column {
28
+ width: 2em;
29
+ }
30
+
31
+ th.sortable a, th.sorted a {
32
+ padding: 0 8px 0 0;
33
+ color: inherit;
34
+
35
+ &:hover {
36
+ color: var(--yith-link);
37
+ }
38
+ }
39
+
40
+ .sorting-indicator {
41
+ visibility: visible;
42
+
43
+ &:before {
44
+ font-family: yith-icon;
45
+ content: "\f116";
46
+ color: inherit;
47
+ font-size: 10px;
48
+ top: 0;
49
+ left: 0;
50
+ }
51
+ }
52
+
53
+ th.sorted.asc .sorting-indicator:before,
54
+ th.desc:hover span.sorting-indicator:before,
55
+ th.desc a:focus span.sorting-indicator:before {
56
+ content: "\f113";
57
+ font-weight: 600;
58
+ }
59
+
60
+ th.sorted.desc .sorting-indicator:before,
61
+ th.asc:hover span.sorting-indicator:before,
62
+ th.asc a:focus span.sorting-indicator:before {
63
+ content: "\f110";
64
+ font-weight: 600;
65
+ }
66
+ @include table-action-buttons;
67
+ }
68
+
69
+ @mixin classic-table {
70
+ border: 2px solid var(--yith-table-border-light);
71
+ background: var(--yith-content-bg);
72
+ box-shadow: none;
73
+ border-spacing: 0;
74
+
75
+ th, thead td, tfoot td {
76
+ text-align: left;
77
+ line-height: 1.3em;
78
+ font-size: 14px;
79
+ }
80
+
81
+ thead th, thead td {
82
+ border-bottom: 0;
83
+ }
84
+
85
+ tfoot th, tfoot td {
86
+ border-top: 0;
87
+ }
88
+
89
+ tbody tr th, tbody tr td {
90
+ vertical-align: middle;
91
+ padding: 15px;
92
+ }
93
+
94
+ tbody tr:hover {
95
+ background: var(--yith-table-row-highlight);
96
+ }
97
+
98
+ thead td, thead th, tfoot td, tfoot th {
99
+ padding: 15px;
100
+ font-weight: 600;
101
+ }
102
+
103
+ tbody > :nth-child(odd) {
104
+ background-color: var(--yith-table-row-striped);
105
+ }
106
+ }
107
+
108
+
109
+ @mixin boxed-table {
110
+ border: 0;
111
+ border-spacing: 0 20px;
112
+ box-shadow: none;
113
+ background: transparent;
114
+
115
+ th, thead td, tfoot td {
116
+ text-align: left;
117
+ line-height: 1.3em;
118
+ font-size: 14px;
119
+ }
120
+
121
+ thead th, thead td {
122
+ border-bottom: 0;
123
+ padding: 0 0 0 25px;
124
+ font-weight: 600;
125
+ }
126
+
127
+ tbody tr {
128
+ background: var(--yith-content-bg);
129
+ border-radius: 5px;
130
+ box-shadow: 0 0 0 1px var(--yith-light-border-color), 0 3px 11px 6px var(--yith-light-shadow);
131
+ transition: background-color .2s ease-in-out;
132
+ }
133
+
134
+ tbody tr th, tbody tr td {
135
+ background: transparent;
136
+ vertical-align: middle;
137
+ padding: 25px 0 25px 25px;
138
+ }
139
+
140
+ tbody tr td:last-child {
141
+ padding-right: 25px;
142
+ }
143
+
144
+ tbody tr th:first-child,
145
+ tbody tr td:first-child {
146
+ border-radius: 5px 0 0 5px;
147
+ }
148
+
149
+ tbody tr th:last-child,
150
+ tbody tr td:last-child {
151
+ padding-right: 25px;
152
+ border-radius: 0 5px 5px 0;
153
+ }
154
+
155
+
156
+ tbody tr:hover {
157
+ background: var(--yith-table-row-highlight);
158
+ }
159
+ }
plugin-fw/assets/css/yith-bh-onboarding.css ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* === YITH BH Onboarding Modal Style === */
2
+ #nfd-ecommerce {
3
+ overflow-x: hidden;
4
+ }
5
+
6
+ #yith-bh-onboarding {
7
+ max-width: 800px;
8
+ margin: 20px auto;
9
+ padding: 30px 20px;
10
+ background-color: #fff;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ #yith-bh-onboarding header {
15
+ display: flex;
16
+ align-items: flex-end;
17
+ margin-bottom: 40px;
18
+ }
19
+ #yith-bh-onboarding header .logo{
20
+ margin-bottom: 10px;
21
+ }
22
+ #yith-bh-onboarding .yith-bh-onboarding-plugin-description {
23
+ flex: 1;
24
+ }
25
+
26
+ #yith-bh-onboarding header div .claim {
27
+ color: #2C5DB4;
28
+ width: 100%;
29
+ font-weight: 600;
30
+ font-size: 15px;
31
+ }
32
+
33
+ #yith-bh-onboarding header div .plugin-description {
34
+ width: 100%;
35
+ text-align: right;
36
+ font-size: 10px;
37
+ }
38
+
39
+ #yith-bh-onboarding table {
40
+ margin-bottom: 20px !important;
41
+ }
42
+
43
+ #yith-bh-onboarding .submit-area {
44
+ padding: 0 30px 30px;
45
+ text-align: right;
46
+ }
47
+
48
+ #yith-bh-onboarding .submit-area button {
49
+ padding: 3px 50px;
50
+ background-color: #2C5DB4;
51
+ }
52
+
53
+ #yith-bh-onboarding .yith-bh-onboarding-tabs.yith-plugin-ui {
54
+ border: 1px solid #ccc;
55
+ border-radius: 10px;
56
+ }
57
+
58
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav {
59
+ display: flex;
60
+ align-items: baseline;
61
+ justify-content: center;
62
+ margin-top: 0;
63
+ overflow: hidden;
64
+ }
65
+
66
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav li {
67
+ width: 50%;
68
+ background-color: #536E8B;
69
+ color: #fff;
70
+ padding: 13px;
71
+ text-align: center;
72
+ cursor: pointer;
73
+ font-weight: 600;
74
+ }
75
+
76
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav li:first-child {
77
+ border-top-left-radius: 10px;
78
+ }
79
+
80
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav li:last-child {
81
+ border-top-right-radius: 10px;
82
+ }
83
+
84
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav li a {
85
+ text-decoration: none;
86
+ }
87
+
88
+ #yith-bh-onboarding ul.yith-bh-onboarding-tabs__nav li.selected {
89
+ background-color: #fff;
90
+ color: #2C5DB4;
91
+ }
92
+
93
+ #yith-bh-onboarding .yith-bh-onboarding-tabs__content .yith-bh-onboarding-tabs__tab {
94
+ display: none;
95
+ }
96
+
97
+ #yith-bh-onboarding .yith-bh-onboarding-tabs__content p.yith-bh-onboarding-tab-description {
98
+ padding: 9px 20px;
99
+ }
100
+
101
+ #yith-bh-onboarding .yith-bh-onboarding-tabs__content .form-table {
102
+ border: 0 !important;
103
+ }
104
+
105
+ #yith-bh-onboarding ul.yith-bh-onboarding-connect-list {
106
+ width: 70%;
107
+ margin: 0 auto 60px;
108
+ }
109
+
110
+ #yith-bh-onboarding ul.yith-bh-onboarding-connect-list li {
111
+ padding-left: 35px;
112
+ margin: 0 auto 40px;
113
+ position: relative;
114
+ }
115
+
116
+ #yith-bh-onboarding ul.yith-bh-onboarding-connect-list li h3 {
117
+ font-size: 13px;
118
+ font-weight: bold;
119
+ margin-bottom: 20px;
120
+ }
121
+
122
+ #yith-bh-onboarding ul.yith-bh-onboarding-connect-list li:before {
123
+ content: "";
124
+ width: 35px;
125
+ height: 35px;
126
+ display: block;
127
+ position: absolute;
128
+ left: -35px;
129
+ top: -5px;
130
+ background: url("../images/bh-onboarding/check.svg") no-repeat center center;
131
+ }
132
+
133
+ #yith-bh-onboarding ul.yith-bh-onboarding-connect-list p {
134
+ font-size: 13px;
135
+ line-height: 1.6em;
136
+ }
137
+
138
+ #yith-bh-onboarding .yith-bh-onboarding-connect-cta {
139
+ width: calc(70% + 70px);
140
+ margin: 20px auto;
141
+ border-radius: 10px;
142
+ background-color: #f6f6f6;
143
+ padding: 30px 0 45px;
144
+ text-align: center;
145
+ }
146
+
147
+ #yith-bh-onboarding .yith-bh-onboarding-connect-cta p {
148
+ font-size: 16px;
149
+ margin-bottom: 30px;
150
+ }
151
+
152
+ #yith-bh-onboarding .yith-bh-onboarding-connect-cta a {
153
+ text-decoration: none;
154
+ font-size: 13px;
155
+ color: white;
156
+ background-color: #2C5DB4;
157
+ padding: 10px 30px;
158
+ border-radius: 5px;
159
+ }
160
+
161
+ @media screen and (max-width: 782px){
162
+
163
+ #yith-bh-onboarding header {
164
+ display: block;
165
+ }
166
+ #yith-bh-onboarding header div .plugin-description{
167
+ text-align: left;
168
+ margin-top: 20px;
169
+ }
170
+ }
plugin-fw/assets/images/bh-onboarding/check.svg ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg width="100%" height="100%" viewBox="0 0 35 35" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
4
+ <g transform="matrix(2.0825,0,0,3.04444,-3.82583,-18.2777)">
5
+ <ellipse cx="10.24" cy="11.752" rx="8.403" ry="5.748" style="fill:rgb(226,235,252);"/>
6
+ </g>
7
+ <g transform="matrix(0.805374,0,0,0.805374,7.56329,9.79297)">
8
+ <g id="Plugin-onboarding---Step-2">
9
+ <g id="Group">
10
+ <g id="check-verde--1-" serif:id="check-verde-(1)">
11
+ <path id="Path" d="M4.705,4.608L10.178,9.985L20.163,0L24.676,4.449L10.146,19.139L0,9.249L4.705,4.608Z" style="fill:rgb(115,161,239);fill-rule:nonzero;"/>
12
+ </g>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </svg>
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(e){function t(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var t=e(this);if(!t.closest(".metaboxes-tab").length){t.addClass("deps-initialized");var a="#"+t.data("dep-target"),i="#"+t.data("dep-id"),n=t.data("dep-value"),o=t.data("dep-type");e(i).on("change",function(){!function(t,a,i,n){var o=!0;if("string"==typeof a){":radio"===a.substr(0,6)&&(a+=":checked");var r=e(a),d=r.attr("type"),s=r.val();switch(d){case"checkbox":s=r.is(":checked")?"yes":"no";break;case"radio":s=r.find('input[type="radio"]').filter(":checked").val()}i=i.split(",");for(var c=0;c<i.length;c++){if(s==i[c]){o=!0;break}o=!1}}var l=e(t),h=e(t+"-container").closest("tr");h.length<1&&(h=l.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var u,g=n.split("-");for(u in g){var f=g[u];if(o)switch(f){case"disable":h.removeClass("yith-disabled"),l.attr("disabled",!1);break;case"hide":case"hideNow":h.show();break;case"hideme":l.show();break;case"fadeOut":h.show();break;case"fadeInOut":case"fadeIn":default:h.show(500)}else switch(f){case"disable":h.addClass("yith-disabled"),l.attr("disabled",!0);break;case"hide":case"hideNow":h.hide();break;case"hideme":l.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":default:h.hide()}}}(a,i,n.toString(),o)}).trigger("change")}})}t(),e(document).on("yith-add-box-button-toggle",t),e(".rm_connectedlist").each(function(){var t=e(this).find("ul"),a=e(this).find(":hidden");t.sortable({connectWith:t,update:function(i,n){var o={};t.each(function(){var t={};e(this).children().each(function(){t[e(this).data("option")]=e(this).text()}),o[e(this).data("list")]=t}),a.val(JSON.stringify(o).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var t=e("#"+e(this).data("textarea")).data("codemirrorInstance"),a="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";a+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",a+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",a+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",a+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",a+="ga('send', 'pageview');\n",t.replaceRange(a,t.getCursor("start"),t.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var a=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");i.addClass("inline"),a.length&&a.prepend(i),function(){var t=e(".yith-nav-sub-tab.nav-tab-active"),a=e(".yith-plugin-fw-wp-page__sub-tab-wrap");if(t.length&&!a.length){var i=e(".yith-plugin-fw-wp-page-wrapper");if(i.length||(i=e("#wpbody-content > .yith-plugin-ui")),i){var n=i.find(".yit-admin-panel-content-wrap");n.length?n.addClass("has-subnav"):i.find(".wrap").wrap('<div class="yith-plugin-fw-wp-page__sub-tab-wrap"></div>')}}}(),function(){var t=e("#yith-plugin-fw-float-save-button"),a=e("#plugin-fw-wc"),i=document.querySelector("#main-save-button");function n(){var e,a;e=i.getBoundingClientRect(),a={width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight},e.top>=0&&e.left>=0&&e.top<=a.height&&e.left<=a.width?t.removeClass("visible"):t.addClass("visible")}t.length>0&&a.length>0&&(n(),document.addEventListener("scroll",n,{passive:!0}),e(document).on("click","#yith-plugin-fw-float-save-button",function(i){i.preventDefault(),"tinyMCE"in window&&"triggerSave"in window.tinyMCE&&window.tinyMCE.triggerSave(),e(".codemirror.codemirror--initialized").each(function(){var t=e(this).data("codemirrorInstance")||!1;t&&"codemirror"in t&&t.codemirror.save()}),t.block({message:null,overlayCSS:{background:"transparent",opacity:.6}}),e.post(document.location.href,a.serialize()).done(function(a){t.unblock().addClass("green").fadeOut(300).html('<i class="yith-icon yith-icon-check"></i>'+t.data("saved-label")).fadeIn(300).delay(2500).queue(function(a){t.fadeOut(500,function(){e(this).removeClass("green"),e(this).html('<i class="yith-icon yith-icon-save"></i>'+e(this).data("default-label")).fadeIn(500)}),a()}),window.onbeforeunload=null,e(document).trigger("yith-plugin-fw-float-save-button-after-saving",[a])})}))}()});
1
+ jQuery(function(e){function t(){e("[data-dep-target]:not( .deps-initialized )").each(function(){var t=e(this);if(!t.closest(".metaboxes-tab").length){t.addClass("deps-initialized");var a="#"+t.data("dep-target"),i="#"+t.data("dep-id"),n=t.data("dep-value"),r=t.data("dep-type");e(i).on("change",function(){!function(t,a,i,n){var r=!0;if("string"==typeof a){":radio"===a.substr(0,6)&&(a+=":checked");var d=e(a),o=d.attr("type"),s=d.val();switch(o){case"checkbox":s=d.is(":checked")?"yes":"no";break;case"radio":s=d.find('input[type="radio"]').filter(":checked").val()}i=i.split(",");for(var c=0;c<i.length;c++){if(s==i[c]){r=!0;break}r=!1}}var l=e(t),h=e(t+"-container").closest("tr");h.length<1&&(h=l.closest(".yith-plugin-fw-panel-wc-row, .yith-toggle-content-row"));var u,g=n.split("-");for(u in g){var f=g[u];if(r)switch(f){case"disable":h.removeClass("yith-disabled"),l.attr("disabled",!1);break;case"hide":case"hideNow":h.show();break;case"hideme":l.show();break;case"fadeOut":h.show();break;case"fadeInOut":case"fadeIn":default:h.show(500)}else switch(f){case"disable":h.addClass("yith-disabled"),l.attr("disabled",!0);break;case"hide":case"hideNow":h.hide();break;case"hideme":l.hide();break;case"fadeInOut":case"fadeOut":h.hide(500);break;case"fadeIn":default:h.hide()}}}(a,i,n.toString(),r)}).trigger("change")}})}t(),e(document).on("yith-add-box-button-toggle",t),e(".rm_connectedlist").each(function(){var t=e(this).find("ul"),a=e(this).find(":hidden");t.sortable({connectWith:t,update:function(i,n){var r={};t.each(function(){var t={};e(this).children().each(function(){t[e(this).data("option")]=e(this).text()}),r[e(this).data("list")]=t}),a.val(JSON.stringify(r).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}),e(function(){e(".google-analytic-generate").click(function(){var t=e("#"+e(this).data("textarea")).data("codemirrorInstance"),a="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";a+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",a+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",a+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",a+="ga('create', '"+e("#"+e(this).data("input")).val()+"', '"+e(this).data("basename")+"');\n",a+="ga('send', 'pageview');\n",t.replaceRange(a,t.getCursor("start"),t.getCursor("end"))})}),e(".yith-plugin-fw-panel .woo-nav-tab-wrapper").removeClass("woo-nav-tab-wrapper").addClass("yith-nav-tab-wrapper");var a=e(".wrap.yith-plugin-ui").first(),i=e("div.updated, div.error, div.notice");i.addClass("inline"),a.length&&a.prepend(i),function(){var t=e(".yith-nav-sub-tab.nav-tab-active"),a=e(".yith-plugin-fw-wp-page__sub-tab-wrap");if(t.length&&!a.length){var i=e(".yith-plugin-fw-wp-page-wrapper");if(i.length||(i=e("#wpbody-content > .yith-plugin-ui")),i){var n=i.find(".yit-admin-panel-content-wrap");n.length?n.addClass("has-subnav"):i.find(".wrap").wrap('<div class="yith-plugin-fw-wp-page__sub-tab-wrap"></div>')}}}(),function(){var t=e("#yith-plugin-fw-float-save-button"),a=e("#plugin-fw-wc"),i=document.querySelector("#main-save-button");function n(){var e,a;e=i.getBoundingClientRect(),a={width:window.innerWidth||document.documentElement.clientWidth,height:window.innerHeight||document.documentElement.clientHeight},e.top>=0&&e.left>=0&&e.top<=a.height&&e.left<=a.width?t.removeClass("visible"):t.addClass("visible")}t.length>0&&a.length>0&&(n(),document.addEventListener("scroll",n,{passive:!0}),e(document).on("click","#yith-plugin-fw-float-save-button",function(i){i.preventDefault(),"tinyMCE"in window&&"triggerSave"in window.tinyMCE&&window.tinyMCE.triggerSave(),e(".codemirror.codemirror--initialized").each(function(){var t=e(this).data("codemirrorInstance")||!1;t&&"codemirror"in t&&t.codemirror.save()}),t.block({message:null,overlayCSS:{background:"transparent",opacity:.6}}),e.post(document.location.href,a.serialize()).done(function(a){t.unblock().addClass("green").fadeOut(300).html(t.data("saved-label")).fadeIn(300).delay(2500).queue(function(a){t.fadeOut(500,function(){e(this).removeClass("green"),e(this).html(e(this).data("default-label")).fadeIn(500)}),a()}),window.onbeforeunload=null,e(document).trigger("yith-plugin-fw-float-save-button-after-saving",[a])})}))}()});
plugin-fw/assets/js/yith-bh-onboarding.js ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function($) {
2
+
3
+ var init = function() {
4
+ var currentTab = $('.yith-bh-onboarding-tabs__nav li.selected').data('tab');
5
+ $('#' + currentTab).fadeIn();
6
+ };
7
+
8
+ var block = function(element) {
9
+ var blockArgs = {
10
+ message: '',
11
+ overlayCSS: {
12
+ backgroundColor: '#FFFFFF',
13
+ opacity: 0.8,
14
+ cursor: 'wait',
15
+ },
16
+ };
17
+ element.block(blockArgs);
18
+ };
19
+
20
+ var unblock = function(element) {
21
+ element.unblock();
22
+ };
23
+
24
+ $(document).on('click', '.yith-bh-onboarding-tabs__nav li', function(e) {
25
+ var $t = $(this);
26
+ //nav
27
+ $('.yith-bh-onboarding-tabs__nav li').removeClass('selected');
28
+ $t.addClass('selected');
29
+ //tab content
30
+ $('.yith-bh-onboarding-tabs__tab').hide();
31
+ $('#' + $t.data('tab')).fadeIn();
32
+ });
33
+
34
+ $(document).on('submit', 'form', function(e) {
35
+ e.preventDefault();
36
+ var form = $(this);
37
+
38
+ if (true ===
39
+ $(document).triggerHandler('yith_onboarding_form_submit_validation')) {
40
+ $(document).trigger('yith_onboarding_validate_form_submit', [form]);
41
+ return false;
42
+ }
43
+ block($('.yith-bh-onboarding-tabs__content'));
44
+ $.ajax(
45
+ {
46
+ type: 'POST',
47
+ data: form.serialize(),
48
+ url: yith_bh_onboarding.ajax_url,
49
+ success: function(response) {
50
+ if (response.success) {
51
+ var button = parent.document.querySelector(
52
+ '.components-modal__frame button');
53
+ button.click();
54
+ }
55
+ },
56
+ complete: function() {
57
+ unblock($('.yith-bh-onboarding-tabs__content'));
58
+ },
59
+ },
60
+ );
61
+
62
+ });
63
+ init();
64
+
65
+ })(jQuery);
plugin-fw/assets/js/yith-bh-onboarding.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t){var a;t(document).on("click",".yith-bh-onboarding-tabs__nav li",function(a){var n=t(this);t(".yith-bh-onboarding-tabs__nav li").removeClass("selected"),n.addClass("selected"),t(".yith-bh-onboarding-tabs__tab").hide(),t("#"+n.data("tab")).fadeIn()}),t(document).on("submit","form",function(a){a.preventDefault();var n=t(this);if(!0===t(document).triggerHandler("yith_onboarding_form_submit_validation"))return t(document).trigger("yith_onboarding_validate_form_submit",[n]),!1;t(".yith-bh-onboarding-tabs__content").block({message:"",overlayCSS:{backgroundColor:"#FFFFFF",opacity:.8,cursor:"wait"}}),t.ajax({type:"POST",data:n.serialize(),url:yith_bh_onboarding.ajax_url,success:function(t){t.success&&parent.document.querySelector(".components-modal__frame button").click()},complete:function(){t(".yith-bh-onboarding-tabs__content").unblock()}})}),a=t(".yith-bh-onboarding-tabs__nav li.selected").data("tab"),t("#"+a).fadeIn()}(jQuery);
plugin-fw/includes/builders/gutenberg/src/common/actions-to-jquery-events.js ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Actions to jQuery events
3
+ */
4
+
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { addAction } from '@wordpress/hooks';
9
+
10
+ const actions = [
11
+ { key: 'yith_plugin_fw_gutenberg_before_do_shortcode', delay: 0 },
12
+ { key: 'yith_plugin_fw_gutenberg_success_do_shortcode', delay: 200 },
13
+ { key: 'yith_plugin_fw_gutenberg_after_do_shortcode', delay: 200 }
14
+ ];
15
+
16
+ for ( const action of actions ) {
17
+ addAction(
18
+ action.key,
19
+ 'yith-plugin-fw/jquery-events',
20
+ ( ...params ) => {
21
+ if ( 'jQuery' in window ) {
22
+ if ( action.delay ) {
23
+ setTimeout( () => {
24
+ jQuery( document ).trigger( action.key, Object.values( params ) );
25
+ }, action.delay );
26
+ } else {
27
+ jQuery( document ).trigger( action.key, Object.values( params ) );
28
+ }
29
+ }
30
+ }
31
+ );
32
+ }
plugin-fw/includes/builders/gutenberg/src/common/ajaxFetch.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Ajax Fetch
3
+ */
4
+
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { addQueryArgs } from '@wordpress/url';
9
+
10
+ /**
11
+ * Check status of ajax call
12
+ * @param response
13
+ * @returns {*}
14
+ */
15
+ function ajaxCheckStatus( response ) {
16
+ if ( response.status >= 200 && response.status < 300 ) {
17
+ return response;
18
+ }
19
+
20
+ throw response;
21
+ }
22
+
23
+ /**
24
+ * Parse the response of the ajax call
25
+ * @param response
26
+ * @returns {*}
27
+ */
28
+ function parseResponse( response ) {
29
+ return response.json ? response.json() : response.text();
30
+ }
31
+
32
+ /**
33
+ * Fetch using WordPress Ajax
34
+ *
35
+ * @param {object} data The data to use in the ajax call.
36
+ * @param {string} url The ajax URL.
37
+ * @returns {Promise<Response>}
38
+ */
39
+ export const ajaxFetch = ( data, url = yithGutenberg.ajaxurl ) => {
40
+ url = addQueryArgs( url, data );
41
+ return fetch( url ).then( ajaxCheckStatus ).then( parseResponse );
42
+ };
plugin-fw/includes/builders/gutenberg/src/common/checkForDeps.js ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Check for dependencies
3
+ *
4
+ * @param {object} attributeArgs Attribute arguments.
5
+ * @param {object} attributes The attributes.
6
+ * @returns {boolean}
7
+ */
8
+
9
+ import _ from 'lodash';
10
+
11
+ const checkForSingleDep = ( attributes, dep, controlType ) => {
12
+ let show = true;
13
+
14
+ if ( dep && dep.id && 'value' in dep ) {
15
+ let depValue = dep.value;
16
+ if ( ['toggle', 'checkbox'].includes( controlType ) ) {
17
+ depValue = true === depValue || 'yes' === depValue || 1 === depValue;
18
+ }
19
+ depValue = _.isArray( depValue ) ? depValue : [depValue];
20
+
21
+ show = typeof attributes[ dep.id ] !== 'undefined' && depValue.includes( attributes[ dep.id ] );
22
+ }
23
+
24
+ return show;
25
+ };
26
+
27
+ export const checkForDeps = ( attributeArgs, attributes ) => {
28
+ const { controlType } = attributeArgs;
29
+ let show = true;
30
+
31
+ if ( attributeArgs.deps ) {
32
+ if ( _.isArray( attributeArgs.deps ) ) {
33
+ for ( let i in attributeArgs.deps ) {
34
+ const singleDep = attributeArgs.deps[ i ];
35
+ show = checkForSingleDep( attributes, singleDep, controlType );
36
+ if ( !show ) {
37
+ break;
38
+ }
39
+ }
40
+ } else {
41
+ show = checkForSingleDep( attributes, attributeArgs.deps, controlType );
42
+ }
43
+ }
44
+
45
+ return show;
46
+ };
plugin-fw/includes/builders/gutenberg/src/common/generateShortcode.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { checkForDeps } from './checkForDeps';
5
+
6
+ /**
7
+ * Generate the shortcode
8
+ *
9
+ * @param {object} blockArgs The block arguments.
10
+ * @param {object} attributes The attributes
11
+ * @returns {string}
12
+ */
13
+ export const generateShortcode = ( blockArgs, attributes ) => {
14
+ let theShortcode = '';
15
+ let callback = false;
16
+
17
+ if ( typeof blockArgs.callback !== 'undefined' ) {
18
+ if ( jQuery && blockArgs.callback in jQuery.fn ) {
19
+ callback = jQuery.fn[ blockArgs.callback ];
20
+ } else if ( blockArgs.callback in window ) {
21
+ callback = window[ blockArgs.callback ];
22
+ }
23
+ }
24
+
25
+ if ( typeof callback === 'function' ) {
26
+ theShortcode = callback( attributes, blockArgs );
27
+ } else {
28
+ const shortcodeAttrs = blockArgs.attributes ? Object.entries( blockArgs.attributes ).map( ( [attributeName, attributeArgs] ) => {
29
+ const show = checkForDeps( attributeArgs, attributes );
30
+ const value = attributes[ attributeName ];
31
+
32
+ if ( show && typeof value !== 'undefined' ) {
33
+ const shortcodeValue = !!attributeArgs.remove_quotes ? value : `"${value}"`;
34
+ return attributeName + '=' + shortcodeValue;
35
+ }
36
+ } ) : [];
37
+
38
+ const shortcodeAttrsText = shortcodeAttrs.length ? ( ' ' + shortcodeAttrs.join( ' ' ) ) : '';
39
+ theShortcode = `[${blockArgs.shortcode_name}${shortcodeAttrsText}]`;
40
+ }
41
+ return theShortcode;
42
+ };
plugin-fw/includes/builders/gutenberg/src/common/icons.js ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * SVG Icons
3
+ */
4
+
5
+ /**
6
+ * The YITH Logo Icon
7
+ * @type {JSX.Element}
8
+ */
9
+ export const yith_icon = <svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" width="22" height="22" role="img" aria-hidden="true" focusable="false">
10
+ <path width="22" height="22"
11
+ d="M 18.24 7.628 C 17.291 8.284 16.076 8.971 14.587 9.688 C 15.344 7.186 15.765 4.851 15.849 2.684 C 15.912 0.939 15.133 0.045 13.514 0.003 C 11.558 -0.06 10.275 1.033 9.665 3.284 C 10.007 3.137 10.359 3.063 10.723 3.063 C 11.021 3.063 11.267 3.184 11.459 3.426 C 11.651 3.668 11.736 3.947 11.715 4.262 C 11.695 5.082 11.276 5.961 10.46 6.896 C 9.644 7.833 8.918 8.3 8.282 8.3 C 7.837 8.3 7.625 7.922 7.646 7.165 C 7.667 6.765 7.804 5.955 8.056 4.735 C 8.287 3.579 8.403 2.801 8.403 2.401 C 8.403 1.707 8.224 1.144 7.867 0.713 C 7.509 0.282 6.994 0.098 6.321 0.161 C 5.858 0.203 5.175 0.624 4.27 1.422 C 3.596 2.035 2.923 2.644 2.25 3.254 L 2.976 4.106 C 3.564 3.664 3.922 3.443 4.048 3.443 C 4.448 3.443 4.637 3.717 4.617 4.263 C 4.617 4.306 4.427 4.968 4.049 6.251 C 3.671 7.534 3.471 8.491 3.449 9.122 C 3.407 9.985 3.565 10.647 3.924 11.109 C 4.367 11.677 5.106 11.919 6.142 11.835 C 7.366 11.751 8.591 11.298 9.816 10.479 C 10.323 10.142 10.808 9.753 11.273 9.311 C 11.105 10.153 10.905 10.868 10.673 11.457 C 8.402 12.487 6.762 13.37 5.752 14.107 C 4.321 15.137 3.554 16.241 3.449 17.419 C 3.259 19.459 4.29 20.479 6.541 20.479 C 8.055 20.479 9.517 19.554 10.926 17.703 C 12.125 16.126 13.166 14.022 14.049 11.394 C 15.578 10.635 16.87 9.892 17.928 9.164 C 17.894 9.409 18.319 7.308 18.24 7.628 Z M 7.393 16.095 C 7.056 16.095 6.898 15.947 6.919 15.653 C 6.961 15.106 7.908 14.38 9.759 13.476 C 8.791 15.221 8.002 16.095 7.393 16.095 Z"/>
12
+ </svg>;
plugin-fw/includes/builders/gutenberg/src/common/index.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ export * from './ajaxFetch';
2
+ export * from './icons';
3
+ export * from './generateShortcode';
4
+ export * from './checkForDeps';
plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/index.js ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Color Palette Component
3
+ */
4
+
5
+ /**
6
+ * External dependencies
7
+ */
8
+ import React from 'react';
9
+
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+ import { BaseControl, ColorIndicator, ColorPalette } from '@wordpress/components';
14
+ import { useSetting } from '@wordpress/block-editor';
15
+ import { useInstanceId } from '@wordpress/compose';
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+ import './style.scss';
21
+
22
+ /**
23
+ * Visual Label Element
24
+ *
25
+ * @param {string} label The label.
26
+ * @param {string} colorValue The color.
27
+ * @returns {JSX.Element}
28
+ * @constructor
29
+ */
30
+ function VisualLabel( {
31
+ label,
32
+ colorValue
33
+ } ) {
34
+
35
+ return (
36
+ <>
37
+ {label}
38
+ {!!colorValue && (
39
+ <ColorIndicator colorValue={colorValue}/>
40
+ )}
41
+ </>
42
+ );
43
+ }
44
+
45
+ /**
46
+ * Color Palette Control
47
+ *
48
+ * @param {string} className The CSS class name.
49
+ * @param {string} label The label.
50
+ * @param {function} onChange The function callback fired on value change.
51
+ * @param {string} value The initial value.
52
+ * @param {string} help The help message.
53
+ * @param {array} palette Array of palette colors.
54
+ * @param {bool} clearable Set true to allow clear.
55
+ * @returns {JSX.Element}
56
+ * @constructor
57
+ */
58
+ export default function ColorPaletteControl( {
59
+ className,
60
+ label,
61
+ onChange,
62
+ value,
63
+ help,
64
+ palette,
65
+ clearable
66
+ } ) {
67
+
68
+ palette = !!palette ? palette : useSetting( 'color.palette' );
69
+
70
+ const instanceId = useInstanceId( ColorPaletteControl );
71
+ const id = `inspector-yith-color-palette-control-${instanceId}`;
72
+
73
+ return (
74
+ <BaseControl
75
+ id={id}
76
+ className={`block-editor-yith-color-palette-control ${className}`}
77
+ help={help}
78
+ >
79
+ <fieldset>
80
+ <legend>
81
+ <div className="block-editor-yith-color-palette-control__color-indicator">
82
+ <BaseControl.VisualLabel>
83
+ <VisualLabel colorValue={value} label={label}/>
84
+ </BaseControl.VisualLabel>
85
+ </div>
86
+ </legend>
87
+
88
+ <ColorPalette
89
+ value={value}
90
+ onChange={onChange}
91
+ colors={palette}
92
+ clearable={clearable}
93
+ />
94
+ </fieldset>
95
+ </BaseControl> );
96
+ }
plugin-fw/includes/builders/gutenberg/src/components/color-palette-control/style.scss ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ .block-editor-yith-color-palette-control {
2
+ .block-editor-yith-color-palette-control__color-indicator {
3
+ margin-bottom: 12px;
4
+ }
5
+
6
+ .component-color-indicator{
7
+ vertical-align: text-bottom;
8
+ }
9
+ }
plugin-fw/includes/builders/gutenberg/src/components/color-picker-control/index.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Color Picker Component
3
+ */
4
+
5
+ /**
6
+ * External dependencies
7
+ */
8
+ import React from 'react';
9
+
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+ import { BaseControl, ColorPicker } from '@wordpress/components';
14
+ import { useInstanceId } from '@wordpress/compose';
15
+
16
+ /**
17
+ * Color Picker Control
18
+ *
19
+ * @param {string} className The CSS class name.
20
+ * @param {string} label The label.
21
+ * @param {function} onChange The function callback fired on value change.
22
+ * @param {string} value The initial value.
23
+ * @param {string} help The help message.
24
+ * @param {bool} disableAlpha Set true to disable the alpha
25
+ * @returns {ColorPickerControl}
26
+ * @constructor
27
+ */
28
+ export default function ColorPickerControl( {
29
+ className,
30
+ label,
31
+ onChange,
32
+ value,
33
+ help,
34
+ disableAlpha,
35
+ } ) {
36
+
37
+ const instanceId = useInstanceId( ColorPickerControl );
38
+ const id = `inspector-yith-color-picker-control-${instanceId}`;
39
+
40
+ return (
41
+ <BaseControl
42
+ id={id}
43
+ label={label}
44
+ className={`block-editor-yith-color-control ${className}`}
45
+ help={help}
46
+ >
47
+ <ColorPicker
48
+ color={value}
49
+ disableAlpha={disableAlpha}
50
+ onChangeComplete={onChange}
51
+ />
52
+ </BaseControl> );
53
+ }
plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/index.js ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import React from 'react';
5
+
6
+ /**
7
+ * WordPress dependencies
8
+ */
9
+ import { BaseControl } from '@wordpress/components';
10
+ import { useInstanceId } from '@wordpress/compose';
11
+ import MultipleSelect from './multiple-select';
12
+
13
+ import './style.scss';
14
+
15
+ /**
16
+ * Color Picker Control
17
+ *
18
+ * @param {string} className The CSS class name.
19
+ * @param {string} label The label.
20
+ * @param {function} onChange The function callback fired on value change.
21
+ * @param {string} value The initial value.
22
+ * @param {string} help The help message.
23
+ * @param {bool} disableAlpha Set true to disable the alpha
24
+ * @returns {MultipleSelectControl}
25
+ * @constructor
26
+ */
27
+ export default function MultipleSelectControl(
28
+ {
29
+ className,
30
+ label,
31
+ onChange,
32
+ value,
33
+ help,
34
+ options,
35
+ messages
36
+ }
37
+ ) {
38
+
39
+ const instanceId = useInstanceId( MultipleSelectControl );
40
+ const id = `inspector-yith-multiple-select-control-${instanceId}`;
41
+
42
+ return <BaseControl
43
+ id={id}
44
+ label={label}
45
+ className={`block-editor-yith-multiple-select-control ${className}`}
46
+ help={help}
47
+ >
48
+ <MultipleSelect
49
+ id={id}
50
+ value={value}
51
+ options={options}
52
+ onChange={onChange}
53
+ messages={messages}
54
+ />
55
+ </BaseControl>
56
+ }
plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/multiple-select.js ADDED
@@ -0,0 +1,186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import classNames from 'classnames';
2
+ import noop from 'lodash';
3
+ import PropTypes from 'prop-types';
4
+ import { useState, useEffect, useRef, useMemo } from 'react';
5
+
6
+ import { __, sprintf } from '@wordpress/i18n';
7
+ import { useInstanceId } from '@wordpress/compose';
8
+ import { Popover } from '@wordpress/components';
9
+
10
+ import MultipleSelectControl from './index';
11
+
12
+ const defaultMessages = {
13
+ noItems : __( 'No items found.', 'yith-plugin-fw' ),
14
+ noResults: __( 'No results for "%s"', 'yith-plugin-fw' ),
15
+ search : __( 'Search for items...', 'yith-plugin-fw' )
16
+ };
17
+
18
+ function useUniqueId( idProp ) {
19
+ const instanceId = useInstanceId( MultipleSelectControl );
20
+ const id = `inspector-yith-multiple-select-control-${instanceId}`;
21
+
22
+ return idProp || id;
23
+ }
24
+
25
+ export default function MultipleSelect( { id: idProp, value, options, onChange, messages: messagesProp } ) {
26
+ const [search, setSearch] = useState( '' );
27
+ const [showSuggesions, setShowSuggestions] = useState( false );
28
+ const [width, setWidth] = useState( 248 );
29
+ const messages = { ...defaultMessages, ...messagesProp };
30
+ const wrapperRef = useRef();
31
+ const inputRef = useRef();
32
+ const inputContainerRef = useRef();
33
+ const popoverRef = useRef();
34
+ const suggestionsRef = useRef();
35
+
36
+ const classes = classNames(
37
+ 'yith-fw-components__multiple-select'
38
+ );
39
+
40
+ const allowedValues = useMemo( () => options.map( _ => _.value ), [options] );
41
+ const validValues = useMemo( () => value.filter( _ => allowedValues.includes( _ ) ), [value, allowedValues] );
42
+ const filteredOptions = useMemo( () => options.filter( ( _ ) => _.label.toLowerCase().indexOf( search.toLowerCase() ) >= 0 ), [options, search] );
43
+ const selected = useMemo( () => options.filter( ( _ ) => validValues.includes( _.value ) ), [options, validValues] );
44
+
45
+ const addItem = itemValue => {
46
+ onChange( [...validValues, itemValue] );
47
+ setSearch( '' );
48
+ };
49
+ const removeItem = ( itemValue ) => {
50
+ const newSelected = [...validValues].filter( _ => _ !== itemValue );
51
+ onChange( newSelected );
52
+ };
53
+ const focusInput = () => !!inputRef.current && inputRef.current.focus();
54
+
55
+ const handleClickOutside = e => {
56
+ const isWrapperClick = wrapperRef?.current && wrapperRef.current.contains( e.target );
57
+ const isPopoverClick = popoverRef?.current && popoverRef.current.contains( e.target );
58
+ if ( !isWrapperClick && !isPopoverClick ) {
59
+ setShowSuggestions( false );
60
+ }
61
+ };
62
+
63
+ const handleInputContainerClick = e => {
64
+ const isInputContainerClick = inputContainerRef?.current && inputContainerRef.current === e.target;
65
+ if ( isInputContainerClick ) {
66
+ focusInput();
67
+ }
68
+ };
69
+
70
+ useEffect( () => {
71
+ document.addEventListener( 'mousedown', handleClickOutside );
72
+ return () => document.removeEventListener( 'mousedown', handleClickOutside );
73
+ } );
74
+
75
+ useEffect( () => {
76
+ const refresh = () => {
77
+ if ( !wrapperRef.current ) {
78
+ return;
79
+ }
80
+
81
+ const width = wrapperRef.current.getBoundingClientRect()?.width;
82
+ setWidth( width );
83
+ };
84
+
85
+ refresh();
86
+ }, [] );
87
+
88
+ return <div className={classes} ref={wrapperRef}>
89
+ <div className="yith-fw-components__multiple-select__input-container" ref={inputContainerRef} onClick={handleInputContainerClick}>
90
+ {selected.map( item => {
91
+ return <span key={item.value} className="yith-fw-components__multiple-select__item">
92
+ <span className="yith-fw-components__multiple-select__item__label">{item.label}</span>
93
+ <i
94
+ className="yith-fw-components__multiple-select__item__remove yith-icon-close-alt"
95
+ onClick={() => {
96
+ removeItem( item.value );
97
+ setShowSuggestions( false );
98
+ }}
99
+ />
100
+ </span>
101
+ } )}
102
+ <input
103
+ className="yith-fw-components__multiple-select__input"
104
+ id={useUniqueId( idProp )}
105
+ ref={inputRef}
106
+ type="text"
107
+ autoComplete="off"
108
+ placeholder={messages.search}
109
+ onFocus={() => setShowSuggestions( true )}
110
+ value={search}
111
+ onChange={( e ) => setSearch( e.target.value )}
112
+ />
113
+ </div>
114
+ {showSuggesions && <Popover
115
+ className="yith-fw-components__multiple-select__popover"
116
+ position="bottom"
117
+ offset={20}
118
+ anchorRef={wrapperRef?.current ?? undefined}
119
+ anchorRect={wrapperRef?.current && wrapperRef?.current.getBoundingClientRect()}
120
+ focusOnMount={false}
121
+ ref={popoverRef}
122
+ >
123
+ <div
124
+ className={classNames( 'yith-fw-components__multiple-select__suggestions', !filteredOptions.length && 'no-results' )}
125
+ ref={suggestionsRef}
126
+ style={{ width }}
127
+ >
128
+ {!!options.length && !!filteredOptions.length ?
129
+ (
130
+ filteredOptions.map(
131
+ item => {
132
+ const isSelected = validValues.includes( item.value );
133
+
134
+ return <div
135
+ key={item.value}
136
+ className={classNames( 'yith-fw-components__multiple-select__suggestion', isSelected && 'selected' )}
137
+ onClick={() => {
138
+ if ( !isSelected ) {
139
+ addItem( item.value );
140
+ focusInput();
141
+ }
142
+ }}
143
+ >
144
+ <div className="yith-fw-components__multiple-select__suggestion__label">{item.label}</div>
145
+ {isSelected && <i
146
+ className="yith-fw-components__multiple-select__suggestion__remove yith-icon yith-icon-close-alt"
147
+ onClick={() => {
148
+ removeItem( item.value );
149
+ focusInput();
150
+ }}/>}
151
+ </div>
152
+ }
153
+ )
154
+ ) :
155
+ <div className="yith-fw-components__multiple-select__suggestions__message">
156
+ {!options.length || !search ? messages.noItems : sprintf( messages.noResults, search )}
157
+ </div>
158
+ }
159
+ </div>
160
+ </Popover>}
161
+ </div>
162
+ }
163
+
164
+ MultipleSelect.propTypes = {
165
+ id : PropTypes.string,
166
+ className: PropTypes.string,
167
+ value : PropTypes.array,
168
+ options : PropTypes.arrayOf(
169
+ PropTypes.shape(
170
+ {
171
+ label: PropTypes.string,
172
+ value: PropTypes.oneOfType( [PropTypes.string, PropTypes.number] )
173
+ }
174
+ )
175
+ ),
176
+ onChange : PropTypes.func
177
+
178
+ };
179
+
180
+ MultipleSelect.defaultProps = {
181
+ id : '',
182
+ value : [],
183
+ className: '',
184
+ options : [],
185
+ onChange : noop
186
+ };
plugin-fw/includes/builders/gutenberg/src/components/multiple-select-control/style.scss ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .yith-fw-components__multiple-select {
2
+ .yith-fw-components__multiple-select__input-container {
3
+ border-radius : 2px;
4
+ border : 1px solid #757575;
5
+ padding : 5px;
6
+
7
+ .yith-fw-components__multiple-select__input {
8
+ border : 0;
9
+ min-height : 24px;
10
+ width : 100%;
11
+ background : inherit;
12
+ color : #1e1e1e;
13
+ box-shadow : none;
14
+
15
+ &::placeholder {
16
+ opacity : .6;
17
+ color : inherit;
18
+ }
19
+ }
20
+ }
21
+
22
+ .yith-fw-components__multiple-select__item {
23
+ border-radius : 3px;
24
+ background : #f1f1f1;
25
+ display : inline-block;
26
+ padding : 4px 25px 4px 10px;
27
+ margin : 0 5px 5px 0;
28
+ max-width : 100%;
29
+ align-items : center;
30
+ position : relative;
31
+
32
+ .yith-fw-components__multiple-select__item__label {
33
+
34
+ }
35
+
36
+ .yith-fw-components__multiple-select__item__remove {
37
+ font-size : 14px;
38
+ cursor : pointer;
39
+ position : absolute;
40
+ top : 50%;
41
+ right : 3px;
42
+ transform : translateY(-50%);
43
+ padding : 5px;
44
+ width : auto;
45
+ height : auto;
46
+
47
+ &:hover {
48
+ color : #c50c0c;
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ .yith-fw-components__multiple-select__popover {
55
+ .components-popover__content {
56
+ border : 0;
57
+ overflow : visible;
58
+ }
59
+
60
+ .yith-fw-components__multiple-select__suggestions {
61
+ display : flex;
62
+ flex-direction : column;
63
+ overflow : hidden;
64
+ overflow-y : auto;
65
+ padding-top : 5px;
66
+ max-height : 200px;
67
+ border-radius : 5px;
68
+ box-shadow : rgb(0 0 0 / 20%) 0px 5px 5px -3px, rgb(0 0 0 / 14%) 0px 8px 10px 1px, rgb(0 0 0 / 12%) 0px 3px 14px 2px;
69
+
70
+ &.no-results {
71
+ padding-top : 0;
72
+ }
73
+
74
+ .yith-fw-components__multiple-select__suggestions__message {
75
+ padding : 8px 15px;
76
+ line-height : 1.5em;
77
+ overflow-wrap : break-word;
78
+ }
79
+
80
+ .yith-fw-components__multiple-select__suggestion {
81
+ padding : 8px 15px;
82
+ min-height : 40px;
83
+ cursor : pointer;
84
+ line-height : 1.5em;
85
+ display : flex;
86
+ align-items : center;
87
+ justify-content : space-between;
88
+
89
+ &.selected {
90
+ background : rgba(25, 118, 210, 0.08);
91
+ }
92
+
93
+ &:hover {
94
+ background : rgba(0, 0, 0, 0.04);
95
+ }
96
+
97
+ &.selected:hover {
98
+ background : rgba(25, 118, 210, 0.12);
99
+ }
100
+ }
101
+
102
+ .yith-fw-components__multiple-select__suggestion__remove {
103
+ font-size : 13px;
104
+ font-weight : 600;
105
+ padding : 5px;
106
+ height : 23px;
107
+ width : 23px;
108
+ background : rgba(0, 0, 0, 0);
109
+ box-shadow : 0 0 0 10px rgba(0, 0, 0, 0);
110
+ border-radius : 50%;
111
+ transition : all .3s ease-in-out;
112
+
113
+ &:hover {
114
+ color : #c50c0c;
115
+ background : rgba(0, 0, 0, .06);
116
+ box-shadow : 0 0 0 3px rgba(0, 0, 0, .06);
117
+ }
118
+ }
119
+ }
120
+
121
+ ::-webkit-scrollbar-track {
122
+ -webkit-box-shadow : none;
123
+ background-color : transparent;
124
+ }
125
+
126
+ ::-webkit-scrollbar {
127
+ width : 10px;
128
+ background-color : rgba(94, 88, 154, 0.04);
129
+ }
130
+
131
+ ::-webkit-scrollbar-thumb {
132
+ background-color : #b1b4bf;
133
+ border-radius : 10px;
134
+ }
135
+ }
plugin-fw/includes/builders/gutenberg/src/components/shortcode/index.js ADDED
@@ -0,0 +1,152 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Shortcode Component
3
+ */
4
+
5
+ /**
6
+ * External dependencies
7
+ */
8
+ import React, { Component } from 'react';
9
+ import { isEqual } from 'lodash';
10
+
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+ import { RawHTML } from '@wordpress/element';
15
+ import { Spinner } from '@wordpress/components';
16
+ import { doAction, addAction } from '@wordpress/hooks';
17
+
18
+ /**
19
+ * Internal dependencies
20
+ */
21
+ import { ajaxFetch, generateShortcode, yith_icon } from '../../common';
22
+ import md5 from 'md5';
23
+ import './style.scss';
24
+
25
+ const BEFORE_DO_SHORTCODE_ACTION = 'yith_plugin_fw_gutenberg_before_do_shortcode';
26
+ const SUCCESS_DO_SHORTCODE_ACTION = 'yith_plugin_fw_gutenberg_success_do_shortcode';
27
+ const AFTER_DO_SHORTCODE_ACTION = 'yith_plugin_fw_gutenberg_after_do_shortcode';
28
+
29
+ /**
30
+ * Shortcode Component
31
+ */
32
+ export class Shortcode extends Component {
33
+ constructor() {
34
+ super( ...arguments );
35
+
36
+ this.state = {
37
+ html : '',
38
+ shortcode : '',
39
+ shortcodeHash: '',
40
+ ajaxUpdated : false,
41
+ ajaxSuccess : false,
42
+ ajaxResponse : false,
43
+ loading : false,
44
+ firstLoading : true
45
+ };
46
+
47
+ this.ajaxTimeout = false;
48
+ }
49
+
50
+ componentDidMount() {
51
+ this.updateShortcode();
52
+ }
53
+
54
+ componentDidUpdate( prevProps, prevState, snapshot ) {
55
+ const { shortcode, shortcodeHash, ajaxSuccess, ajaxResponse, ajaxUpdated } = this.state;
56
+
57
+ if ( !isEqual( prevProps, this.props ) ) {
58
+ this.updateShortcode();
59
+ }
60
+
61
+
62
+ if ( this.props.blockArgs.do_shortcode && ajaxUpdated ) {
63
+
64
+ if ( ajaxSuccess ) {
65
+ doAction( SUCCESS_DO_SHORTCODE_ACTION, shortcode, shortcodeHash, ajaxResponse );
66
+ }
67
+
68
+ doAction( AFTER_DO_SHORTCODE_ACTION, shortcode, shortcodeHash, ajaxResponse );
69
+
70
+ this.setState( { ajaxUpdated: false } );
71
+ }
72
+ }
73
+
74
+ updateShortcode() {
75
+ const { attributes, blockArgs } = this.props;
76
+
77
+ this.setState( { loading: true, ajaxSuccess: false, ajaxResponse: false } );
78
+
79
+ const shortcode = generateShortcode( blockArgs, attributes );
80
+ const shortcodeHash = md5( shortcode );
81
+
82
+ if ( blockArgs.do_shortcode ) {
83
+ !!this.ajaxTimeout && clearTimeout( this.ajaxTimeout );
84
+
85
+ doAction( BEFORE_DO_SHORTCODE_ACTION, shortcode, shortcodeHash );
86
+
87
+ this.ajaxTimeout = setTimeout( () => {
88
+ const ajaxData = {
89
+ action : 'yith_plugin_fw_gutenberg_do_shortcode',
90
+ shortcode: shortcode
91
+ };
92
+
93
+ ajaxFetch( ajaxData ).then( response => {
94
+ this.setState( { loading: false, firstLoading: false, html: response.html, shortcode, shortcodeHash, ajaxSuccess: true, ajaxUpdated: true, ajaxResponse: response } );
95
+ } )
96
+ .catch( error => {
97
+ console.log( { error } );
98
+ } );
99
+ }, 300 );
100
+ } else {
101
+ this.setState( { loading: false, firstLoading: false, html: shortcode, shortcode, shortcodeHash } );
102
+ }
103
+ }
104
+
105
+ render() {
106
+ const { html, loading, firstLoading, shortcode, shortcodeHash } = this.state;
107
+ const { blockArgs } = this.props;
108
+ const { do_shortcode, title, empty_message } = blockArgs;
109
+
110
+ const mainClass = 'block-editor-yith-plugin-fw-shortcode-block';
111
+
112
+ let wrapperClasses = [mainClass];
113
+ let type = do_shortcode ? 'html' : 'shortcode';
114
+ let htmlToShow = html;
115
+ let message = '';
116
+
117
+ if ( firstLoading && loading ) {
118
+ type = 'first-loading';
119
+ } else if ( do_shortcode && !html ) {
120
+ type = 'empty-html';
121
+ htmlToShow = shortcode;
122
+ if ( !loading && empty_message ) {
123
+ message = empty_message;
124
+ }
125
+ }
126
+
127
+ const showTitle = ['first-loading', 'empty-html', 'shortcode'].includes( type );
128
+ const showContent = !['first-loading', 'empty-html'].includes( type );
129
+ const showMessage = !!message;
130
+
131
+ wrapperClasses.push( `${mainClass}--${type}` );
132
+ wrapperClasses.push( showMessage ? `${mainClass}--has-message` : `${mainClass}--no-message` );
133
+ wrapperClasses.push( `yith_block_${shortcodeHash}` );
134
+
135
+ return (
136
+ <>
137
+ <div className={wrapperClasses.join( ' ' )}>
138
+ {!!loading ? <div className={`${mainClass}__spinner-wrap`}><Spinner/></div> : ''}
139
+ {showTitle &&
140
+ <div className={`${mainClass}__title components-placeholder__label`}>{yith_icon}{title}</div>
141
+ }
142
+ {showMessage &&
143
+ <RawHTML className={`${mainClass}__message`}>{message}</RawHTML>
144
+ }
145
+ {showContent &&
146
+ <RawHTML className={`${mainClass}__content`}>{htmlToShow}</RawHTML>
147
+ }
148
+ </div>
149
+ </>
150
+ )
151
+ }
152
+ }
plugin-fw/includes/builders/gutenberg/src/components/shortcode/style.scss ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ %bordered-block {
2
+ padding: 1em 1em 1.2em;
3
+ border: 1px solid #1e1e1e;
4
+ border-radius: 4px;
5
+ }
6
+
7
+ %shortcode-box {
8
+ font-family: Menlo, Consolas, monaco, monospace;
9
+ color: #1e1e1e;
10
+ font-size: 13px;
11
+ padding: 0.8em 1em;
12
+ border: 1px solid #ddd;
13
+ border-radius: 4px;
14
+ }
15
+
16
+ .block-editor-yith-plugin-fw-shortcode-block {
17
+ position: relative;
18
+ min-height: 30px;
19
+
20
+ .block-editor-yith-plugin-fw-shortcode-block__spinner-wrap {
21
+ position: absolute;
22
+ top: 50%;
23
+ left: 50%;
24
+ transform: translateX(-50%) translateY(-50%);
25
+ }
26
+
27
+ &.block-editor-yith-plugin-fw-shortcode-block--first-loading{
28
+ @extend %bordered-block;
29
+
30
+ .block-editor-yith-plugin-fw-shortcode-block__title {
31
+ margin-bottom: 0;
32
+ }
33
+ }
34
+
35
+ &.block-editor-yith-plugin-fw-shortcode-block--shortcode {
36
+
37
+ @extend %bordered-block;
38
+
39
+ .block-editor-yith-plugin-fw-shortcode-block__content {
40
+ @extend %shortcode-box;
41
+ }
42
+ }
43
+
44
+ &.block-editor-yith-plugin-fw-shortcode-block--empty-html {
45
+
46
+ @extend %bordered-block;
47
+
48
+ &.block-editor-yith-plugin-fw-shortcode-block--no-message {
49
+ .block-editor-yith-plugin-fw-shortcode-block__title {
50
+ margin-bottom: 0;
51
+ }
52
+ }
53
+
54
+ .block-editor-yith-plugin-fw-shortcode-block__message {
55
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
56
+ font-style: italic;
57
+ font-size: 13px;
58
+ }
59
+
60
+ .block-editor-yith-plugin-fw-shortcode-block__content {
61
+ display: none;
62
+ }
63
+ }
64
+ }
plugin-fw/includes/builders/gutenberg/src/edit.js ADDED
@@ -0,0 +1,234 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Handle YITH Gutenberg Blocks Edit
3
+ *
4
+ * @var {Object} yithGutenbergBlocks The Gutenberg blocks object.
5
+ */
6
+
7
+ /**
8
+ * External dependencies
9
+ */
10
+ import React from 'react';
11
+
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+ import {
16
+ PanelBody,
17
+ ToggleControl,
18
+ SelectControl,
19
+ TextControl,
20
+ TextareaControl,
21
+ CheckboxControl,
22
+ RangeControl,
23
+ RadioControl
24
+ } from '@wordpress/components';
25
+ import { InspectorControls } from '@wordpress/block-editor';
26
+
27
+ /**
28
+ * Internal dependencies
29
+ */
30
+ import { Shortcode } from './components/shortcode';
31
+ import { checkForDeps } from './common';
32
+ import ColorPickerControl from './components/color-picker-control';
33
+ import ColorPaletteControl from './components/color-palette-control';
34
+ import MultipleSelectControl from './components/multiple-select-control';
35
+ import classNames from 'classnames';
36
+
37
+ /**
38
+ * Retrieve an help message from arguments.
39
+ *
40
+ * @param {Object} args The arguments.
41
+ * @param {bool} value The value.
42
+ * @returns {string}
43
+ */
44
+ const getHelpMessage = ( args, value ) => {
45
+ let helpMessage = '';
46
+ if ( args.helps && args.helps.checked && args.helps.unchecked ) {
47
+ helpMessage = !!value ? args.helps.checked : args.helps.unchecked;
48
+ } else if ( args.help ) {
49
+ helpMessage = args.help;
50
+ }
51
+ return helpMessage;
52
+ };
53
+
54
+ const ComponentControl = ( { attributeName, attributeArgs, attributes, onChange, blockName } ) => {
55
+ const { controlType, label, wrapper_class } = attributeArgs;
56
+ const value = attributes[ attributeName ];
57
+ const helpMessage = getHelpMessage( attributeArgs, value );
58
+ const show = checkForDeps( attributeArgs, attributes );
59
+ const wrapperClass = classNames(
60
+ `${blockName}__${attributeName}-field-wrapper`,
61
+ wrapper_class
62
+ );
63
+
64
+ let componentControl = false;
65
+ if ( show ) {
66
+ switch ( controlType ) {
67
+ case 'select':
68
+ if ( !attributeArgs.multiple ) {
69
+ componentControl = <SelectControl
70
+ className={wrapperClass}
71
+ value={value}
72
+ label={label}
73
+ options={attributeArgs?.options ?? []}
74
+ help={helpMessage}
75
+ onChange={onChange}
76
+ />;
77
+ } else {
78
+ componentControl = <MultipleSelectControl
79
+ className={wrapperClass}
80
+ value={value}
81
+ label={label}
82
+ options={attributeArgs?.options ?? []}
83
+ help={helpMessage}
84
+ onChange={onChange}
85
+ messages={attributeArgs?.messages ?? {}}
86
+ />;
87
+ }
88
+ break;
89
+
90
+ case 'text':
91
+ componentControl = <TextControl
92
+ className={wrapperClass}
93
+ key={attributeName}
94
+ value={value}
95
+ label={label}
96
+ help={helpMessage}
97
+ onChange={onChange}
98
+ />;
99
+ break;
100
+
101
+ case 'textarea':
102
+ componentControl = <TextareaControl
103
+ className={wrapperClass}
104
+ key={attributeName}
105
+ value={value}
106
+ label={label}
107
+ help={helpMessage}
108
+ onChange={onChange}
109
+ />;
110
+ break;
111
+
112
+ case 'toggle':
113
+ componentControl = <ToggleControl
114
+ className={wrapperClass}
115
+ key={attributeName}
116
+ label={label}
117
+ help={helpMessage}
118
+ checked={value}
119
+ onChange={onChange}
120
+ />;
121
+ break;
122
+
123
+ case 'checkbox':
124
+ componentControl = <CheckboxControl
125
+ className={wrapperClass}
126
+ key={attributeName}
127
+ label={label}
128
+ help={helpMessage}
129
+ checked={value}
130
+ onChange={onChange}
131
+ />;
132
+ break;
133
+
134
+ case 'number':
135
+ case 'range':
136
+ componentControl = <RangeControl
137
+ className={wrapperClass}
138
+ key={attributeName}
139
+ value={value}
140
+ label={label}
141
+ help={helpMessage}
142
+ min={attributeArgs?.min}
143
+ max={attributeArgs?.max}
144
+ onChange={onChange}
145
+ />;
146
+ break;
147
+
148
+ case 'color':
149
+ case 'colorpicker':
150
+ componentControl = <ColorPickerControl
151
+ className={wrapperClass}
152
+ key={attributeName}
153
+ label={label}
154
+ help={helpMessage}
155
+ value={value}
156
+ disableAlpha={attributeArgs?.disableAlpha ?? false}
157
+ onChange={onChange}/>;
158
+ break;
159
+
160
+ case 'color-palette':
161
+ componentControl = <ColorPaletteControl
162
+ className={wrapperClass}
163
+ key={attributeName}
164
+ label={label}
165
+ help={helpMessage}
166
+ value={value}
167
+ clearable={attributeArgs?.clearable ?? false}
168
+ onChange={onChange}/>;
169
+ break;
170
+
171
+ case 'radio':
172
+ componentControl = <RadioControl
173
+ key={attributeName}
174
+ label={label}
175
+ options={attributeArgs?.options ?? []}
176
+ selected={value}
177
+ help={helpMessage}
178
+ onChange={onChange}
179
+ />;
180
+ break;
181
+ default:
182
+ componentControl = false;
183
+ }
184
+ }
185
+ return componentControl;
186
+ }
187
+
188
+ /**
189
+ * Create edit function.
190
+ *
191
+ * @param {string} blockName The block name.
192
+ * @param {Object} blockArgs The block arguments.
193
+ * @returns {function({attributes?: *, className: *, setAttributes: *})}
194
+ */
195
+ export const createEditFunction = ( blockName, blockArgs ) => {
196
+ return function ( { attributes, className, setAttributes } ) {
197
+
198
+ const onChangeHandler = ( updatedValue, attributeName, controlType ) => {
199
+ if ( ['colorpicker', 'color'].includes( controlType ) ) {
200
+ if ( 'rgb' in updatedValue && 'hex' in updatedValue ) {
201
+ const { r, g, b, a } = updatedValue.rgb;
202
+ updatedValue = a < 1 ? `rgba(${r}, ${g}, ${b}, ${a})` : updatedValue.hex;
203
+ } else {
204
+ updatedValue = updatedValue.color.getAlpha() < 1 ? updatedValue.color.toRgbString() : updatedValue.color.toHexString();
205
+ }
206
+ }
207
+
208
+ setAttributes( { [ attributeName ]: updatedValue } );
209
+ }
210
+
211
+ return (
212
+ <>
213
+ {!!blockArgs.attributes &&
214
+ <InspectorControls>
215
+ <PanelBody>
216
+ {Object.entries( blockArgs.attributes ).map( ( [attributeName, attributeArgs] ) => {
217
+ const { controlType } = attributeArgs;
218
+ return <ComponentControl
219
+ key={attributeName}
220
+ attributeArgs={attributeArgs}
221
+ attributeName={attributeName}
222
+ attributes={attributes}
223
+ blockName={blockName}
224
+ onChange={_ => onChangeHandler( _, attributeName, controlType )}
225
+ />
226
+ } )}
227
+ </PanelBody>
228
+ </InspectorControls>
229
+ }
230
+ <Shortcode attributes={attributes} blockArgs={blockArgs}/>
231
+ </>
232
+ );
233
+ }
234
+ }
plugin-fw/includes/builders/gutenberg/src/index.js ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Handle YITH Gutenberg Blocks
3
+ *
4
+ * @var {Object} yithGutenbergBlocks The Gutenberg blocks object.
5
+ */
6
+
7
+ /**
8
+ * External dependencies
9
+ */
10
+ import React from 'react';
11
+ import md5 from 'md5';
12
+
13
+ /**
14
+ * WordPress dependencies
15
+ */
16
+ import { registerBlockType } from '@wordpress/blocks';
17
+ import { RawHTML } from '@wordpress/element';
18
+
19
+ /**
20
+ * Internal dependencies
21
+ */
22
+ import { yith_icon, generateShortcode } from './common';
23
+ import { createEditFunction } from './edit';
24
+ import './common/actions-to-jquery-events';
25
+
26
+ for ( const [blockName, blockArgs] of Object.entries( yithGutenbergBlocks ) ) {
27
+ registerBlockType( 'yith/' + blockName, {
28
+ title : blockArgs.title,
29
+ description: blockArgs.description,
30
+ category : blockArgs.category,
31
+ attributes : blockArgs.attributes,
32
+ icon : typeof blockArgs.icon !== 'undefined' ? blockArgs.icon : yith_icon,
33
+ keywords : blockArgs.keywords,
34
+ edit : createEditFunction( blockName, blockArgs ),
35
+ save : ( { attributes } ) => {
36
+ return generateShortcode( blockArgs, attributes );
37
+ },
38
+ deprecated : [
39
+ {
40
+ attributes: blockArgs.attributes,
41
+ save : ( { attributes } ) => {
42
+ const shortcode = generateShortcode( blockArgs, attributes );
43
+ const blockHash = md5( shortcode );
44
+ const shortcodeSpan = '<span class="yith_block_' + blockHash + '">' + shortcode + '</span>';
45
+
46
+ return (
47
+ <RawHTML>{shortcodeSpan}</RawHTML>
48
+ )
49
+ }
50
+ }
51
+ ]
52
+ } );
53
+ }
plugin-fw/includes/class-yit-assets.php CHANGED
@@ -80,6 +80,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
80
  wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
81
  wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
82
  wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
 
83
 
84
  // Register styles.
85
  wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
@@ -89,6 +90,7 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
89
  wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
90
  wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
91
  wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
 
92
 
93
  $wc_version_suffix = '';
94
  if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
@@ -153,6 +155,14 @@ if ( ! class_exists( 'YIT_Assets' ) ) {
153
  )
154
  );
155
 
 
 
 
 
 
 
 
 
156
  // Localize color-picker to avoid issues with WordPress 5.5.
157
  if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
158
  wp_localize_script(
80
  wp_register_script( 'colorbox', YIT_CORE_PLUGIN_URL . '/assets/js/jquery.colorbox' . $suffix . '.js', array( 'jquery' ), '1.6.3', true );
81
  wp_register_script( 'yith_how_to', YIT_CORE_PLUGIN_URL . '/assets/js/how-to' . $suffix . '.js', array( 'jquery' ), $this->version, true );
82
  wp_register_script( 'yith-plugin-fw-wp-pages', YIT_CORE_PLUGIN_URL . '/assets/js/wp-pages' . $suffix . '.js', array( 'jquery' ), $this->version, false );
83
+ wp_register_script( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/js/yith-bh-onboarding' . $suffix . '.js', array( 'jquery', 'yit-plugin-panel', 'yith-plugin-fw-fields', 'jquery-blockui' ), $this->version, true );
84
 
85
  // Register styles.
86
  wp_register_style( 'yith-plugin-ui', YIT_CORE_PLUGIN_URL . '/assets/css/yith-plugin-ui.css', array( 'yith-plugin-fw-icon-font' ), $this->version );
90
  wp_register_style( 'yit-upgrade-to-pro', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrade-to-pro.css', array( 'colorbox' ), $this->version );
91
  wp_register_style( 'yit-plugin-metaboxes', YIT_CORE_PLUGIN_URL . '/assets/css/metaboxes.css', array( 'yith-plugin-ui' ), $this->version );
92
  wp_register_style( 'yith-plugin-fw-fields', YIT_CORE_PLUGIN_URL . '/assets/css/yith-fields.css', array( 'yith-plugin-ui' ), $this->version );
93
+ wp_register_style( 'yith-bh-onboarding', YIT_CORE_PLUGIN_URL . '/assets/css/yith-bh-onboarding.css', array( 'yith-plugin-ui', 'yith-plugin-fw-fields' ), $this->version );
94
 
95
  $wc_version_suffix = '';
96
  if ( function_exists( 'WC' ) || ! empty( $woocommerce ) ) {
155
  )
156
  );
157
 
158
+ wp_localize_script(
159
+ 'yith-bh-onboarding',
160
+ 'yith_bh_onboarding',
161
+ array(
162
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
163
+ )
164
+ );
165
+
166
  // Localize color-picker to avoid issues with WordPress 5.5.
167
  if ( version_compare( $wp_version, '5.5-RC', '>=' ) ) {
168
  wp_localize_script(
plugin-fw/includes/class-yit-plugin-panel-woocommerce.php CHANGED
@@ -374,6 +374,12 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
374
  $default[ $colorpicker['id'] ] = isset( $colorpicker['default'] ) ? $colorpicker['default'] : '';
375
  }
376
  update_option( $option['id'], $default );
 
 
 
 
 
 
377
  } elseif ( isset( $option['default'] ) ) {
378
  update_option( $option['id'], $option['default'] );
379
  }
@@ -494,8 +500,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
494
  * @param string $admin_body_classes The body classes.
495
  *
496
  * @return string Filtered body classes
497
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
498
  * @since 2.0
 
499
  */
500
  public static function admin_body_class( $admin_body_classes ) {
501
  global $pagenow;
@@ -518,8 +524,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
518
  * @param string $raw_value Raw option value.
519
  *
520
  * @return mixed Filtered return value
521
- * @author Antonio La Rocca <antonio.larocca@yithemes.com>
522
  * @since 2.0
 
523
  */
524
  public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
525
  if ( ! version_compare( WC()->version, '2.4.0', '>=' ) || ! isset( $option['type'] ) || in_array( $option['type'], self::$wc_type, true ) || 'yith-field' === $option['type'] ) {
@@ -548,8 +554,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
548
  * @param mixed $raw_value Raw option value.
549
  *
550
  * @return mixed Filtered return value
551
- * @author Leanza Francesco <leanzafrancesco@gmail.com>
552
  * @since 3.0.0
 
553
  */
554
  public static function sanitize_option( $value, $option, $raw_value ) {
555
  if ( isset( $option['type'] ) && 'yith-field' === $option['type'] ) {
@@ -731,8 +737,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
731
  * @param string $raw_value Raw option value.
732
  *
733
  * @return mixed Filtered return value
734
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
735
  * @since 3.0.0
 
736
  */
737
  public static function sanitize_onoff_value( $value, $option, $raw_value ) {
738
  if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
@@ -752,8 +758,8 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
752
  * @param array $yit_options Original options array.
753
  *
754
  * @return mixed|array New options array
755
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
756
  * @since 3.0.0
 
757
  */
758
  public function check_for_save_single_option( $yit_options ) {
759
  foreach ( $yit_options as $key => $options_list ) {
374
  $default[ $colorpicker['id'] ] = isset( $colorpicker['default'] ) ? $colorpicker['default'] : '';
375
  }
376
  update_option( $option['id'], $default );
377
+ } elseif ( isset( $option['yith-type'] ) && 'inline-fields' === $option['yith-type'] && ! empty( $option['fields'] ) ) {
378
+ $default = array();
379
+ foreach ( $option['fields'] as $field_id => $field ) {
380
+ $default[ $field_id ] = isset( $field['default'] ) ? $field['default'] : '';
381
+ }
382
+ update_option( $option['id'], $default );
383
  } elseif ( isset( $option['default'] ) ) {
384
  update_option( $option['id'], $option['default'] );
385
  }
500
  * @param string $admin_body_classes The body classes.
501
  *
502
  * @return string Filtered body classes
 
503
  * @since 2.0
504
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
505
  */
506
  public static function admin_body_class( $admin_body_classes ) {
507
  global $pagenow;
524
  * @param string $raw_value Raw option value.
525
  *
526
  * @return mixed Filtered return value
 
527
  * @since 2.0
528
+ * @author Antonio La Rocca <antonio.larocca@yithemes.com>
529
  */
530
  public function maybe_unserialize_panel_data( $value, $option, $raw_value ) {
531
  if ( ! version_compare( WC()->version, '2.4.0', '>=' ) || ! isset( $option['type'] ) || in_array( $option['type'], self::$wc_type, true ) || 'yith-field' === $option['type'] ) {
554
  * @param mixed $raw_value Raw option value.
555
  *
556
  * @return mixed Filtered return value
 
557
  * @since 3.0.0
558
+ * @author Leanza Francesco <leanzafrancesco@gmail.com>
559
  */
560
  public static function sanitize_option( $value, $option, $raw_value ) {
561
  if ( isset( $option['type'] ) && 'yith-field' === $option['type'] ) {
737
  * @param string $raw_value Raw option value.
738
  *
739
  * @return mixed Filtered return value
 
740
  * @since 3.0.0
741
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
742
  */
743
  public static function sanitize_onoff_value( $value, $option, $raw_value ) {
744
  if ( isset( $option['type'] ) && in_array( $option['type'], array( 'checkbox', 'onoff' ), true ) ) {
758
  * @param array $yit_options Original options array.
759
  *
760
  * @return mixed|array New options array
 
761
  * @since 3.0.0
762
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
763
  */
764
  public function check_for_save_single_option( $yit_options ) {
765
  foreach ( $yit_options as $key => $options_list ) {
plugin-fw/includes/class-yith-bh-onboarding.php ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * YITH BH Onboarding Class
4
+ *
5
+ * @class YITH_BH_Onboarding
6
+ * @package YITH\PluginFramework\Classes
7
+ */
8
+
9
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
10
+
11
+ if ( ! class_exists( 'YITH_BH_Onboarding' ) ) {
12
+ /**
13
+ * Main Class
14
+ */
15
+ class YITH_BH_Onboarding {
16
+ /**
17
+ * The single instance of the class.
18
+ *
19
+ * @var self
20
+ */
21
+ protected static $instance = null;
22
+
23
+ /**
24
+ * Get class instance.
25
+ *
26
+ * @return self
27
+ */
28
+ public static function get_instance() {
29
+ return ! is_null( static::$instance ) ? static::$instance : static::$instance = new static();
30
+ }
31
+
32
+ /**
33
+ * Constructor
34
+ */
35
+ protected function __construct() {
36
+ add_action( 'yith_bh_onboarding', array( $this, 'show_onboarding_content' ), 10, 1 );
37
+ add_action( 'wp_ajax_yith_bh_onboarding', array( $this, 'save_options' ) );
38
+ }
39
+
40
+ /**
41
+ * Show onboarding content
42
+ *
43
+ * @param string $slug Slug of current plugin modal.
44
+ */
45
+ public function show_onboarding_content( $slug ) {
46
+
47
+ $options = apply_filters( 'yith_bh_onboarding_' . $slug, array() );
48
+
49
+ if ( empty( $options ) || ! isset( $options['tabs'], $options['slug'] ) ) {
50
+ return;
51
+ }
52
+
53
+ define( 'DOING_YITH_BH_ONBOARDING', true );
54
+
55
+ if ( ! wp_script_is( 'yith-plugin-fw-fields', 'registered' ) || ! wp_style_is( 'yith-plugin-fw-fields', 'registered' ) ) {
56
+ YIT_Assets::instance()->register_styles_and_scripts();
57
+ }
58
+
59
+ if ( isset( $options['enqueue_script'] ) ) {
60
+ foreach ( $options['enqueue_script'] as $handle ) {
61
+ wp_enqueue_script( $handle );
62
+ }
63
+ }
64
+
65
+ if ( isset( $options['enqueue_style'] ) ) {
66
+ foreach ( $options['enqueue_style'] as $handle ) {
67
+ wp_enqueue_style( $handle );
68
+ }
69
+ }
70
+
71
+ wp_enqueue_script( 'yith-bh-onboarding' );
72
+ wp_enqueue_style( 'yith-bh-onboarding' );
73
+
74
+ include YIT_CORE_PLUGIN_TEMPLATE_PATH . '/bh-onboarding/onboarding-tabs.php';
75
+ }
76
+
77
+ /**
78
+ * Save options
79
+ *
80
+ * @return void
81
+ */
82
+ public function save_options() {
83
+ check_ajax_referer( 'yith-bh-onboarding-save-options' );
84
+ if ( ! isset( $_REQUEST['yith-plugin'], $_REQUEST['tab'] ) ) {
85
+ wp_send_json_error( __( 'It is not possible save the options', 'yith-plugin-fw' ) );
86
+ }
87
+
88
+ $slug = sanitize_text_field( wp_unslash( $_REQUEST['yith-plugin'] ) );
89
+ $posted = $_REQUEST;
90
+ // the options are filtered by each plugin.
91
+ $options = apply_filters( 'yith_bh_onboarding_' . $slug, array() );
92
+ $tab = $posted['tab'];
93
+
94
+ if ( apply_filters( 'yith_bh_onboarding_save_options_' . $slug, isset( $options['tabs'][ $tab ]['options'] ), $posted ) ) {
95
+ foreach ( $options['tabs'][ $tab ]['options'] as $single_option ) {
96
+ if ( isset( $posted[ $single_option['id'] ] ) ) {
97
+ $value = $posted[ $single_option['id'] ] ?? false;
98
+ $value = YIT_Plugin_Panel_WooCommerce::sanitize_option( $value, $single_option, $value );
99
+ $value = apply_filters( 'yith_bh_onboarding_save_option_value', $value, $single_option, $slug );
100
+ update_option( $single_option['id'], $value );
101
+ }
102
+ }
103
+ }
104
+
105
+ wp_send_json_success();
106
+ }
107
+ }
108
+ }
109
+
110
+ YITH_BH_Onboarding::get_instance();
plugin-fw/init.php CHANGED
@@ -1,13 +1,13 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 3.9.12
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
- * @version 3.9.11
11
  * @package YITH\PluginFramework
12
  */
13
 
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 3.9.13
5
  * Author: YITH
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
8
  *
9
  * @author YITH
10
+ * @version 3.9.13
11
  * @package YITH\PluginFramework
12
  */
13
 
plugin-fw/languages/yith-plugin-fw-el.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-el.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
@@ -13,56 +13,56 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr ""
19
 
20
- #: includes/class-yit-assets.php:145
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
 
24
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "Όχι"
29
 
30
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr ""
34
 
35
- #: includes/class-yit-assets.php:149
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr ""
38
 
39
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr ""
44
 
45
- #: includes/class-yit-assets.php:162
46
  msgid "Clear"
47
  msgstr "Καθαρισμός"
48
 
49
- #: includes/class-yit-assets.php:163
50
  msgid "Clear color"
51
  msgstr "Καθαρισμός χρώματος"
52
 
53
- #: includes/class-yit-assets.php:164
54
  msgid "Default"
55
  msgstr "Προεπιλεγμένο"
56
 
57
- #: includes/class-yit-assets.php:165
58
  msgid "Select default color"
59
  msgstr "Επιλογή προεπιλεγμένου χρώματος"
60
 
61
- #: includes/class-yit-assets.php:166
62
  msgid "Select Color"
63
  msgstr "Επιλογή Χρώματος"
64
 
65
- #: includes/class-yit-assets.php:167
66
  msgid "Color value"
67
  msgstr "Αξία χρώματος"
68
 
@@ -113,62 +113,62 @@ msgstr "Είστε σίγουρος;"
113
  msgid "Reset to default"
114
  msgstr "Επαναφορά σε προεπιλεγμένο"
115
 
116
- #: includes/class-yit-plugin-panel.php:1072
117
  msgid ""
118
  "The element you have entered already exists. Please, enter another name."
119
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
120
 
121
- #: includes/class-yit-plugin-panel.php:1073
122
  msgid "Settings saved"
123
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
124
 
125
- #: includes/class-yit-plugin-panel.php:1074
126
  msgid "Settings reset"
127
  msgstr "Επαναφορά ρυθμίσεων"
128
 
129
- #: includes/class-yit-plugin-panel.php:1075
130
  msgid "Element deleted correctly."
131
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
132
 
133
- #: includes/class-yit-plugin-panel.php:1076
134
- #: includes/class-yit-plugin-panel.php:1077
135
  msgid "Element updated correctly."
136
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
137
 
138
- #: includes/class-yit-plugin-panel.php:1078
139
  msgid "Database imported correctly."
140
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
141
 
142
- #: includes/class-yit-plugin-panel.php:1079
143
  msgid "An error has occurred during import. Please try again."
144
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
145
 
146
- #: includes/class-yit-plugin-panel.php:1080
147
  msgid "The added file is not valid."
148
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
149
 
150
- #: includes/class-yit-plugin-panel.php:1081
151
  msgid "Sorry, import is disabled."
152
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
153
 
154
- #: includes/class-yit-plugin-panel.php:1082
155
  msgid "Sorting successful."
156
  msgstr "Διαλογή επιτυχής."
157
 
158
- #: includes/class-yit-plugin-panel.php:1571
159
  msgid "We need your support"
160
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
161
 
162
- #: includes/class-yit-plugin-panel.php:1572
163
  msgid "to keep updating and improving the plugin. Please,"
164
  msgstr ""
165
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
166
 
167
- #: includes/class-yit-plugin-panel.php:1574
168
  msgid "help us by leaving a good review"
169
  msgstr ""
170
 
171
- #: includes/class-yit-plugin-panel.php:1575
172
  msgid ":) Thanks!"
173
  msgstr ":) Ευχαριστώ!"
174
 
@@ -200,6 +200,10 @@ msgid ""
200
  "previous location to YITH menu."
201
  msgstr ""
202
 
 
 
 
 
203
  #: includes/class-yith-dashboard.php:35
204
  msgid "YITH Latest Updates"
205
  msgstr "Τελευταίες Αναβαθμίσεις YITH"
@@ -401,6 +405,10 @@ msgstr ""
401
  "εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον "
402
  "διακομιστή μας."
403
 
 
 
 
 
404
  #: templates/fields/ajax-customers.php:41
405
  msgid "Search for a customer..."
406
  msgstr ""
@@ -678,12 +686,12 @@ msgstr ""
678
  msgid "Further actions"
679
  msgstr ""
680
 
681
- #: yit-plugin.php:232
682
  msgid "License"
683
  msgstr "Άδεια χρήσης προϊόντος"
684
 
685
  #. translators: 1. Plugin(s) name(s).
686
- #: yit-plugin.php:271
687
  msgid ""
688
  "%s was deactivated as you're running an higher tier version of the same "
689
  "plugin."
@@ -708,22 +716,22 @@ msgctxt "[gutenberg]: Category Name"
708
  msgid "YITH"
709
  msgstr "YITH"
710
 
711
- #: includes/class-yit-assets.php:132
712
  msgctxt "Button text"
713
  msgid "Confirm"
714
  msgstr ""
715
 
716
- #: includes/class-yit-assets.php:133
717
  msgctxt "Button text"
718
  msgid "Cancel"
719
  msgstr ""
720
 
721
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
722
  msgctxt "Trash confirmation action"
723
  msgid "Yes, move to trash"
724
  msgstr ""
725
 
726
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
727
  #: yit-functions.php:2154
728
  msgctxt "Delete confirmation action"
729
  msgid "Yes, delete"
@@ -949,7 +957,7 @@ msgstr ""
949
 
950
  #: templates/panel/help-tab.php:220
951
  msgctxt "Help tab documentation"
952
- msgid "to learn from basics how it works"
953
  msgstr ""
954
 
955
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
@@ -964,7 +972,9 @@ msgstr ""
964
 
965
  #: templates/panel/help-tab.php:238
966
  msgctxt "Help tab support"
967
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
968
  msgstr ""
969
 
970
  #: templates/panel/help-tab.php:241
@@ -988,17 +998,22 @@ msgid "Plugin premium features images"
988
  msgstr ""
989
 
990
  #. translators: alt attribute of main image tag.
991
- #: templates/panel/premium-tab.php:51
992
  msgctxt "Premium Tab"
993
  msgid "And so much more!"
994
  msgstr ""
995
 
996
  #: templates/panel/premium-tab.php:53
997
  msgctxt "Premium Tab"
 
 
 
 
 
998
  msgid "Check the free vs premium features >"
999
  msgstr ""
1000
 
1001
- #: templates/panel/premium-tab.php:58
1002
  msgctxt "Premium Tab"
1003
  msgid "Get the premium version"
1004
  msgstr ""
@@ -1058,27 +1073,27 @@ msgctxt "Term action"
1058
  msgid "Delete"
1059
  msgstr ""
1060
 
1061
- #: yit-plugin.php:84
1062
  msgctxt "Plugin Row Meta"
1063
  msgid "Live Demo"
1064
  msgstr "Live Demo"
1065
 
1066
- #: yit-plugin.php:88
1067
  msgctxt "Plugin Row Meta"
1068
  msgid "Documentation"
1069
  msgstr "Εγχειρίδιο χρήσης"
1070
 
1071
- #: yit-plugin.php:92
1072
  msgctxt "Plugin Row Meta"
1073
  msgid "Support"
1074
  msgstr "Υποστήριξη"
1075
 
1076
- #: yit-plugin.php:96
1077
  msgctxt "Plugin Row Meta"
1078
  msgid "Premium version"
1079
  msgstr "Premium έκδοση"
1080
 
1081
- #: yit-plugin.php:228
1082
  msgctxt "Action links"
1083
  msgid "Settings"
1084
  msgstr "Ρυθμίσεις"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2021-02-11 18:07:46+0000\n"
9
  "Language: el_GR\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr ""
19
 
20
+ #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
 
24
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "Όχι"
29
 
30
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr ""
34
 
35
+ #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr ""
38
 
39
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr ""
44
 
45
+ #: includes/class-yit-assets.php:172
46
  msgid "Clear"
47
  msgstr "Καθαρισμός"
48
 
49
+ #: includes/class-yit-assets.php:173
50
  msgid "Clear color"
51
  msgstr "Καθαρισμός χρώματος"
52
 
53
+ #: includes/class-yit-assets.php:174
54
  msgid "Default"
55
  msgstr "Προεπιλεγμένο"
56
 
57
+ #: includes/class-yit-assets.php:175
58
  msgid "Select default color"
59
  msgstr "Επιλογή προεπιλεγμένου χρώματος"
60
 
61
+ #: includes/class-yit-assets.php:176
62
  msgid "Select Color"
63
  msgstr "Επιλογή Χρώματος"
64
 
65
+ #: includes/class-yit-assets.php:177
66
  msgid "Color value"
67
  msgstr "Αξία χρώματος"
68
 
113
  msgid "Reset to default"
114
  msgstr "Επαναφορά σε προεπιλεγμένο"
115
 
116
+ #: includes/class-yit-plugin-panel.php:1074
117
  msgid ""
118
  "The element you have entered already exists. Please, enter another name."
119
  msgstr "Το στοιχείο που εισάγατε υπάρχει ήδη. Παρακαλώ, εισάγετε άλλο όνομα."
120
 
121
+ #: includes/class-yit-plugin-panel.php:1075
122
  msgid "Settings saved"
123
  msgstr "Ρυθμίσεις αποθηκεύτηκαν"
124
 
125
+ #: includes/class-yit-plugin-panel.php:1076
126
  msgid "Settings reset"
127
  msgstr "Επαναφορά ρυθμίσεων"
128
 
129
+ #: includes/class-yit-plugin-panel.php:1077
130
  msgid "Element deleted correctly."
131
  msgstr "Το στοιχείο διαγράφηκε επιτυχώς."
132
 
133
+ #: includes/class-yit-plugin-panel.php:1078
134
+ #: includes/class-yit-plugin-panel.php:1079
135
  msgid "Element updated correctly."
136
  msgstr "Το στοιχείο αναβαθμίστηκε επιτυχώς."
137
 
138
+ #: includes/class-yit-plugin-panel.php:1080
139
  msgid "Database imported correctly."
140
  msgstr "Επιτυχής εισαγωγή βάσης δεδομένων."
141
 
142
+ #: includes/class-yit-plugin-panel.php:1081
143
  msgid "An error has occurred during import. Please try again."
144
  msgstr "Παρουσιάστηκε σφάλμα κατά την εισαγωγή. Παρακαλώ προσπαθήστε ξανά."
145
 
146
+ #: includes/class-yit-plugin-panel.php:1082
147
  msgid "The added file is not valid."
148
  msgstr "Το προστιθέμενο αρχείο δεν είναι έγκυρο."
149
 
150
+ #: includes/class-yit-plugin-panel.php:1083
151
  msgid "Sorry, import is disabled."
152
  msgstr "Συγνώμη, η εισαγωγή είναι απενεργοποιημένη."
153
 
154
+ #: includes/class-yit-plugin-panel.php:1084
155
  msgid "Sorting successful."
156
  msgstr "Διαλογή επιτυχής."
157
 
158
+ #: includes/class-yit-plugin-panel.php:1573
159
  msgid "We need your support"
160
  msgstr "Χρειαζόμαστε την υποστήριξή σας"
161
 
162
+ #: includes/class-yit-plugin-panel.php:1574
163
  msgid "to keep updating and improving the plugin. Please,"
164
  msgstr ""
165
  "για να διατηρήσετε την ενημέρωση και τη βελτίωση του πρόσθετου. Παρακαλώ,"
166
 
167
+ #: includes/class-yit-plugin-panel.php:1576
168
  msgid "help us by leaving a good review"
169
  msgstr ""
170
 
171
+ #: includes/class-yit-plugin-panel.php:1577
172
  msgid ":) Thanks!"
173
  msgstr ":) Ευχαριστώ!"
174
 
200
  "previous location to YITH menu."
201
  msgstr ""
202
 
203
+ #: includes/class-yith-bh-onboarding.php:85
204
+ msgid "It is not possible save the options"
205
+ msgstr ""
206
+
207
  #: includes/class-yith-dashboard.php:35
208
  msgid "YITH Latest Updates"
209
  msgstr "Τελευταίες Αναβαθμίσεις YITH"
405
  "εγκατασταθεί λόγω προβλήματος σύνδεσης ανάμεσα στον ιστότοπο σας και τον "
406
  "διακομιστή μας."
407
 
408
+ #: templates/bh-onboarding/onboarding-tabs.php:63
409
+ msgid "Save"
410
+ msgstr ""
411
+
412
  #: templates/fields/ajax-customers.php:41
413
  msgid "Search for a customer..."
414
  msgstr ""
686
  msgid "Further actions"
687
  msgstr ""
688
 
689
+ #: yit-plugin.php:233
690
  msgid "License"
691
  msgstr "Άδεια χρήσης προϊόντος"
692
 
693
  #. translators: 1. Plugin(s) name(s).
694
+ #: yit-plugin.php:272
695
  msgid ""
696
  "%s was deactivated as you're running an higher tier version of the same "
697
  "plugin."
716
  msgid "YITH"
717
  msgstr "YITH"
718
 
719
+ #: includes/class-yit-assets.php:134
720
  msgctxt "Button text"
721
  msgid "Confirm"
722
  msgstr ""
723
 
724
+ #: includes/class-yit-assets.php:135
725
  msgctxt "Button text"
726
  msgid "Cancel"
727
  msgstr ""
728
 
729
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
730
  msgctxt "Trash confirmation action"
731
  msgid "Yes, move to trash"
732
  msgstr ""
733
 
734
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
735
  #: yit-functions.php:2154
736
  msgctxt "Delete confirmation action"
737
  msgid "Yes, delete"
957
 
958
  #: templates/panel/help-tab.php:220
959
  msgctxt "Help tab documentation"
960
+ msgid "to learn how it works from the basics."
961
  msgstr ""
962
 
963
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
972
 
973
  #: templates/panel/help-tab.php:238
974
  msgctxt "Help tab support"
975
+ msgid ""
976
+ "Call or chat 24/7 with our support agents, or let our experts build your "
977
+ "site."
978
  msgstr ""
979
 
980
  #: templates/panel/help-tab.php:241
998
  msgstr ""
999
 
1000
  #. translators: alt attribute of main image tag.
1001
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
1002
  msgctxt "Premium Tab"
1003
  msgid "And so much more!"
1004
  msgstr ""
1005
 
1006
  #: templates/panel/premium-tab.php:53
1007
  msgctxt "Premium Tab"
1008
+ msgid "Check the premium features >"
1009
+ msgstr ""
1010
+
1011
+ #: templates/panel/premium-tab.php:60
1012
+ msgctxt "Premium Tab"
1013
  msgid "Check the free vs premium features >"
1014
  msgstr ""
1015
 
1016
+ #: templates/panel/premium-tab.php:65
1017
  msgctxt "Premium Tab"
1018
  msgid "Get the premium version"
1019
  msgstr ""
1073
  msgid "Delete"
1074
  msgstr ""
1075
 
1076
+ #: yit-plugin.php:85
1077
  msgctxt "Plugin Row Meta"
1078
  msgid "Live Demo"
1079
  msgstr "Live Demo"
1080
 
1081
+ #: yit-plugin.php:89
1082
  msgctxt "Plugin Row Meta"
1083
  msgid "Documentation"
1084
  msgstr "Εγχειρίδιο χρήσης"
1085
 
1086
+ #: yit-plugin.php:93
1087
  msgctxt "Plugin Row Meta"
1088
  msgid "Support"
1089
  msgstr "Υποστήριξη"
1090
 
1091
+ #: yit-plugin.php:97
1092
  msgctxt "Plugin Row Meta"
1093
  msgid "Premium version"
1094
  msgstr "Premium έκδοση"
1095
 
1096
+ #: yit-plugin.php:229
1097
  msgctxt "Action links"
1098
  msgid "Settings"
1099
  msgstr "Ρυθμίσεις"
plugin-fw/languages/yith-plugin-fw-es_ES.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-es_ES.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2022-07-06 06:44:36+0000\n"
9
  "Language: es\n"
10
  "MIME-Version: 1.0\n"
@@ -13,57 +13,57 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Confirmar el traslado a la papelera"
19
 
20
- #: includes/class-yit-assets.php:145
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
  "¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
24
 
25
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
26
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
27
  #: yit-functions.php:2008 yit-functions.php:2026
28
  msgid "No"
29
  msgstr "No"
30
 
31
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Confirmar el borrado"
35
 
36
- #: includes/class-yit-assets.php:149
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
39
 
40
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
41
  #: yit-functions.php:2100
42
  msgid ""
43
  "This action cannot be undone and you will not be able to recover this data."
44
  msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
45
 
46
- #: includes/class-yit-assets.php:162
47
  msgid "Clear"
48
  msgstr "Borrar"
49
 
50
- #: includes/class-yit-assets.php:163
51
  msgid "Clear color"
52
  msgstr "Borrar color"
53
 
54
- #: includes/class-yit-assets.php:164
55
  msgid "Default"
56
  msgstr "Predeterminado"
57
 
58
- #: includes/class-yit-assets.php:165
59
  msgid "Select default color"
60
  msgstr "Seleccionar color predeterminado"
61
 
62
- #: includes/class-yit-assets.php:166
63
  msgid "Select Color"
64
  msgstr "Seleccionar color"
65
 
66
- #: includes/class-yit-assets.php:167
67
  msgid "Color value"
68
  msgstr "Valor del color"
69
 
@@ -114,63 +114,63 @@ msgstr "¿Estás seguro?"
114
  msgid "Reset to default"
115
  msgstr "Restablecer valores predeterminados"
116
 
117
- #: includes/class-yit-plugin-panel.php:1072
118
  msgid ""
119
  "The element you have entered already exists. Please, enter another name."
120
  msgstr ""
121
  "El elemento que has introducido ya existe. Por favor, introduce otro nombre."
122
 
123
- #: includes/class-yit-plugin-panel.php:1073
124
  msgid "Settings saved"
125
  msgstr "Ajustes guardados"
126
 
127
- #: includes/class-yit-plugin-panel.php:1074
128
  msgid "Settings reset"
129
  msgstr "Restablecer ajustes"
130
 
131
- #: includes/class-yit-plugin-panel.php:1075
132
  msgid "Element deleted correctly."
133
  msgstr "Elemento eliminado correctamente."
134
 
135
- #: includes/class-yit-plugin-panel.php:1076
136
- #: includes/class-yit-plugin-panel.php:1077
137
  msgid "Element updated correctly."
138
  msgstr "Elemento actualizado correctamente."
139
 
140
- #: includes/class-yit-plugin-panel.php:1078
141
  msgid "Database imported correctly."
142
  msgstr "Base de datos importada correctamente."
143
 
144
- #: includes/class-yit-plugin-panel.php:1079
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr ""
147
  "Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
148
 
149
- #: includes/class-yit-plugin-panel.php:1080
150
  msgid "The added file is not valid."
151
  msgstr "El archivo añadido no es válido."
152
 
153
- #: includes/class-yit-plugin-panel.php:1081
154
  msgid "Sorry, import is disabled."
155
  msgstr "Lo siento, la importación está desactivada."
156
 
157
- #: includes/class-yit-plugin-panel.php:1082
158
  msgid "Sorting successful."
159
  msgstr "Clasificación realizada con éxito"
160
 
161
- #: includes/class-yit-plugin-panel.php:1571
162
  msgid "We need your support"
163
  msgstr "Necesitamos tu apoyo"
164
 
165
- #: includes/class-yit-plugin-panel.php:1572
166
  msgid "to keep updating and improving the plugin. Please,"
167
  msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
168
 
169
- #: includes/class-yit-plugin-panel.php:1574
170
  msgid "help us by leaving a good review"
171
  msgstr "ayúdanos dejando una buena valoración"
172
 
173
- #: includes/class-yit-plugin-panel.php:1575
174
  msgid ":) Thanks!"
175
  msgstr ":) ¡Gracias!"
176
 
@@ -211,6 +211,10 @@ msgstr ""
211
  "WooCommerce Ajax Search, etc.) serán movidos de la ubicación previa a la "
212
  "pestaña de YITH plugins."
213
 
 
 
 
 
214
  #: includes/class-yith-dashboard.php:35
215
  msgid "YITH Latest Updates"
216
  msgstr "Últimas actualizaciones de YITH"
@@ -410,6 +414,10 @@ msgstr ""
410
  "La comprobación del sistema no ha podido determinar qué versión de %1$s está "
411
  "instalada debido a un error entre tu sitio y nuestro servidor."
412
 
 
 
 
 
413
  #: templates/fields/ajax-customers.php:41
414
  msgid "Search for a customer..."
415
  msgstr "Buscar un cliente..."
@@ -686,12 +694,12 @@ msgstr "¿Estás seguro de que quieres borrar \"%s\"?"
686
  msgid "Further actions"
687
  msgstr "Otras acciones"
688
 
689
- #: yit-plugin.php:232
690
  msgid "License"
691
  msgstr "Licencia"
692
 
693
  #. translators: 1. Plugin(s) name(s).
694
- #: yit-plugin.php:271
695
  msgid ""
696
  "%s was deactivated as you're running an higher tier version of the same "
697
  "plugin."
@@ -720,22 +728,22 @@ msgctxt "[gutenberg]: Category Name"
720
  msgid "YITH"
721
  msgstr "YITH"
722
 
723
- #: includes/class-yit-assets.php:132
724
  msgctxt "Button text"
725
  msgid "Confirm"
726
  msgstr "Confirmar"
727
 
728
- #: includes/class-yit-assets.php:133
729
  msgctxt "Button text"
730
  msgid "Cancel"
731
  msgstr "Cancelar"
732
 
733
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
734
  msgctxt "Trash confirmation action"
735
  msgid "Yes, move to trash"
736
  msgstr "Sí, mover a la papelera"
737
 
738
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
739
  #: yit-functions.php:2154
740
  msgctxt "Delete confirmation action"
741
  msgid "Yes, delete"
@@ -967,9 +975,10 @@ msgid "Read the plugin documentation"
967
  msgstr "Lee la documentación"
968
 
969
  #: templates/panel/help-tab.php:220
 
970
  msgctxt "Help tab documentation"
971
- msgid "to learn from basics how it works"
972
- msgstr ""
973
 
974
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
975
  #, fuzzy
@@ -984,7 +993,9 @@ msgstr ""
984
 
985
  #: templates/panel/help-tab.php:238
986
  msgctxt "Help tab support"
987
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
988
  msgstr ""
989
 
990
  #: templates/panel/help-tab.php:241
@@ -1009,17 +1020,23 @@ msgid "Plugin premium features images"
1009
  msgstr "Imágenes de la versión premium"
1010
 
1011
  #. translators: alt attribute of main image tag.
1012
- #: templates/panel/premium-tab.php:51
1013
  msgctxt "Premium Tab"
1014
  msgid "And so much more!"
1015
  msgstr "¡Y mucho más!"
1016
 
1017
  #: templates/panel/premium-tab.php:53
 
 
 
 
 
 
1018
  msgctxt "Premium Tab"
1019
  msgid "Check the free vs premium features >"
1020
  msgstr "Comprueba las características gratuitas frente a las premium >"
1021
 
1022
- #: templates/panel/premium-tab.php:58
1023
  msgctxt "Premium Tab"
1024
  msgid "Get the premium version"
1025
  msgstr "Obtén la versión Premium"
@@ -1079,27 +1096,27 @@ msgctxt "Term action"
1079
  msgid "Delete"
1080
  msgstr "Borrar"
1081
 
1082
- #: yit-plugin.php:84
1083
  msgctxt "Plugin Row Meta"
1084
  msgid "Live Demo"
1085
  msgstr "Demostración en vivo"
1086
 
1087
- #: yit-plugin.php:88
1088
  msgctxt "Plugin Row Meta"
1089
  msgid "Documentation"
1090
  msgstr "Documentación"
1091
 
1092
- #: yit-plugin.php:92
1093
  msgctxt "Plugin Row Meta"
1094
  msgid "Support"
1095
  msgstr "Soporte"
1096
 
1097
- #: yit-plugin.php:96
1098
  msgctxt "Plugin Row Meta"
1099
  msgid "Premium version"
1100
  msgstr "Versión premium"
1101
 
1102
- #: yit-plugin.php:228
1103
  msgctxt "Action links"
1104
  msgid "Settings"
1105
  msgstr "Ajustes"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2022-07-06 06:44:36+0000\n"
9
  "Language: es\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Confirmar el traslado a la papelera"
19
 
20
+ #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
  "¿Estás seguro de que quieres mover a la papelera los elementos seleccionados?"
24
 
25
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
26
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
27
  #: yit-functions.php:2008 yit-functions.php:2026
28
  msgid "No"
29
  msgstr "No"
30
 
31
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Confirmar el borrado"
35
 
36
+ #: includes/class-yit-assets.php:151
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "¿Estás seguro de que quieres borrar los elementos seleccionados?"
39
 
40
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
41
  #: yit-functions.php:2100
42
  msgid ""
43
  "This action cannot be undone and you will not be able to recover this data."
44
  msgstr "Esta acción no se puede revertir y no podrá recuperar estos datos."
45
 
46
+ #: includes/class-yit-assets.php:172
47
  msgid "Clear"
48
  msgstr "Borrar"
49
 
50
+ #: includes/class-yit-assets.php:173
51
  msgid "Clear color"
52
  msgstr "Borrar color"
53
 
54
+ #: includes/class-yit-assets.php:174
55
  msgid "Default"
56
  msgstr "Predeterminado"
57
 
58
+ #: includes/class-yit-assets.php:175
59
  msgid "Select default color"
60
  msgstr "Seleccionar color predeterminado"
61
 
62
+ #: includes/class-yit-assets.php:176
63
  msgid "Select Color"
64
  msgstr "Seleccionar color"
65
 
66
+ #: includes/class-yit-assets.php:177
67
  msgid "Color value"
68
  msgstr "Valor del color"
69
 
114
  msgid "Reset to default"
115
  msgstr "Restablecer valores predeterminados"
116
 
117
+ #: includes/class-yit-plugin-panel.php:1074
118
  msgid ""
119
  "The element you have entered already exists. Please, enter another name."
120
  msgstr ""
121
  "El elemento que has introducido ya existe. Por favor, introduce otro nombre."
122
 
123
+ #: includes/class-yit-plugin-panel.php:1075
124
  msgid "Settings saved"
125
  msgstr "Ajustes guardados"
126
 
127
+ #: includes/class-yit-plugin-panel.php:1076
128
  msgid "Settings reset"
129
  msgstr "Restablecer ajustes"
130
 
131
+ #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element deleted correctly."
133
  msgstr "Elemento eliminado correctamente."
134
 
135
+ #: includes/class-yit-plugin-panel.php:1078
136
+ #: includes/class-yit-plugin-panel.php:1079
137
  msgid "Element updated correctly."
138
  msgstr "Elemento actualizado correctamente."
139
 
140
+ #: includes/class-yit-plugin-panel.php:1080
141
  msgid "Database imported correctly."
142
  msgstr "Base de datos importada correctamente."
143
 
144
+ #: includes/class-yit-plugin-panel.php:1081
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr ""
147
  "Ha ocurrido un error durante la importación. Por favor, inténtalo de nuevo."
148
 
149
+ #: includes/class-yit-plugin-panel.php:1082
150
  msgid "The added file is not valid."
151
  msgstr "El archivo añadido no es válido."
152
 
153
+ #: includes/class-yit-plugin-panel.php:1083
154
  msgid "Sorry, import is disabled."
155
  msgstr "Lo siento, la importación está desactivada."
156
 
157
+ #: includes/class-yit-plugin-panel.php:1084
158
  msgid "Sorting successful."
159
  msgstr "Clasificación realizada con éxito"
160
 
161
+ #: includes/class-yit-plugin-panel.php:1573
162
  msgid "We need your support"
163
  msgstr "Necesitamos tu apoyo"
164
 
165
+ #: includes/class-yit-plugin-panel.php:1574
166
  msgid "to keep updating and improving the plugin. Please,"
167
  msgstr "para que podamos seguir actualizando y mejorando el plugin. Por favor,"
168
 
169
+ #: includes/class-yit-plugin-panel.php:1576
170
  msgid "help us by leaving a good review"
171
  msgstr "ayúdanos dejando una buena valoración"
172
 
173
+ #: includes/class-yit-plugin-panel.php:1577
174
  msgid ":) Thanks!"
175
  msgstr ":) ¡Gracias!"
176
 
211
  "WooCommerce Ajax Search, etc.) serán movidos de la ubicación previa a la "
212
  "pestaña de YITH plugins."
213
 
214
+ #: includes/class-yith-bh-onboarding.php:85
215
+ msgid "It is not possible save the options"
216
+ msgstr ""
217
+
218
  #: includes/class-yith-dashboard.php:35
219
  msgid "YITH Latest Updates"
220
  msgstr "Últimas actualizaciones de YITH"
414
  "La comprobación del sistema no ha podido determinar qué versión de %1$s está "
415
  "instalada debido a un error entre tu sitio y nuestro servidor."
416
 
417
+ #: templates/bh-onboarding/onboarding-tabs.php:63
418
+ msgid "Save"
419
+ msgstr ""
420
+
421
  #: templates/fields/ajax-customers.php:41
422
  msgid "Search for a customer..."
423
  msgstr "Buscar un cliente..."
694
  msgid "Further actions"
695
  msgstr "Otras acciones"
696
 
697
+ #: yit-plugin.php:233
698
  msgid "License"
699
  msgstr "Licencia"
700
 
701
  #. translators: 1. Plugin(s) name(s).
702
+ #: yit-plugin.php:272
703
  msgid ""
704
  "%s was deactivated as you're running an higher tier version of the same "
705
  "plugin."
728
  msgid "YITH"
729
  msgstr "YITH"
730
 
731
+ #: includes/class-yit-assets.php:134
732
  msgctxt "Button text"
733
  msgid "Confirm"
734
  msgstr "Confirmar"
735
 
736
+ #: includes/class-yit-assets.php:135
737
  msgctxt "Button text"
738
  msgid "Cancel"
739
  msgstr "Cancelar"
740
 
741
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
742
  msgctxt "Trash confirmation action"
743
  msgid "Yes, move to trash"
744
  msgstr "Sí, mover a la papelera"
745
 
746
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
747
  #: yit-functions.php:2154
748
  msgctxt "Delete confirmation action"
749
  msgid "Yes, delete"
975
  msgstr "Lee la documentación"
976
 
977
  #: templates/panel/help-tab.php:220
978
+ #, fuzzy
979
  msgctxt "Help tab documentation"
980
+ msgid "to learn how it works from the basics."
981
+ msgstr "para aprender cómo funciona el plugin desde lo más básico."
982
 
983
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
984
  #, fuzzy
993
 
994
  #: templates/panel/help-tab.php:238
995
  msgctxt "Help tab support"
996
+ msgid ""
997
+ "Call or chat 24/7 with our support agents, or let our experts build your "
998
+ "site."
999
  msgstr ""
1000
 
1001
  #: templates/panel/help-tab.php:241
1020
  msgstr "Imágenes de la versión premium"
1021
 
1022
  #. translators: alt attribute of main image tag.
1023
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
1024
  msgctxt "Premium Tab"
1025
  msgid "And so much more!"
1026
  msgstr "¡Y mucho más!"
1027
 
1028
  #: templates/panel/premium-tab.php:53
1029
+ #, fuzzy
1030
+ msgctxt "Premium Tab"
1031
+ msgid "Check the premium features >"
1032
+ msgstr "Comprueba las características gratuitas frente a las premium >"
1033
+
1034
+ #: templates/panel/premium-tab.php:60
1035
  msgctxt "Premium Tab"
1036
  msgid "Check the free vs premium features >"
1037
  msgstr "Comprueba las características gratuitas frente a las premium >"
1038
 
1039
+ #: templates/panel/premium-tab.php:65
1040
  msgctxt "Premium Tab"
1041
  msgid "Get the premium version"
1042
  msgstr "Obtén la versión Premium"
1096
  msgid "Delete"
1097
  msgstr "Borrar"
1098
 
1099
+ #: yit-plugin.php:85
1100
  msgctxt "Plugin Row Meta"
1101
  msgid "Live Demo"
1102
  msgstr "Demostración en vivo"
1103
 
1104
+ #: yit-plugin.php:89
1105
  msgctxt "Plugin Row Meta"
1106
  msgid "Documentation"
1107
  msgstr "Documentación"
1108
 
1109
+ #: yit-plugin.php:93
1110
  msgctxt "Plugin Row Meta"
1111
  msgid "Support"
1112
  msgstr "Soporte"
1113
 
1114
+ #: yit-plugin.php:97
1115
  msgctxt "Plugin Row Meta"
1116
  msgid "Premium version"
1117
  msgstr "Versión premium"
1118
 
1119
+ #: yit-plugin.php:229
1120
  msgctxt "Action links"
1121
  msgid "Settings"
1122
  msgstr "Ajustes"
plugin-fw/languages/yith-plugin-fw-it_IT.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-it_IT.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2022-07-06 07:17:32+0000\n"
9
  "Language: it\n"
10
  "MIME-Version: 1.0\n"
@@ -13,30 +13,30 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Conferma eliminazione"
19
 
20
- #: includes/class-yit-assets.php:145
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"
23
 
24
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "No"
29
 
30
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "Conferma eliminazione"
34
 
35
- #: includes/class-yit-assets.php:149
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr "Se sicuro di voler eliminare gli elementi selezionati?"
38
 
39
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
@@ -44,27 +44,27 @@ msgstr ""
44
  "Quest'azione non può essere annullata e non sarà possibile recuperare questi "
45
  "dati."
46
 
47
- #: includes/class-yit-assets.php:162
48
  msgid "Clear"
49
  msgstr "Rimuovi"
50
 
51
- #: includes/class-yit-assets.php:163
52
  msgid "Clear color"
53
  msgstr "Rimuovi colore"
54
 
55
- #: includes/class-yit-assets.php:164
56
  msgid "Default"
57
  msgstr "Predefinito"
58
 
59
- #: includes/class-yit-assets.php:165
60
  msgid "Select default color"
61
  msgstr "Seleziona il colore predefinito"
62
 
63
- #: includes/class-yit-assets.php:166
64
  msgid "Select Color"
65
  msgstr "Seleziona il colore"
66
 
67
- #: includes/class-yit-assets.php:167
68
  msgid "Color value"
69
  msgstr "Valore del colore"
70
 
@@ -114,61 +114,61 @@ msgstr "Sei sicuro?"
114
  msgid "Reset to default"
115
  msgstr "Ripristina configurazione predefinita"
116
 
117
- #: includes/class-yit-plugin-panel.php:1072
118
  msgid ""
119
  "The element you have entered already exists. Please, enter another name."
120
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
121
 
122
- #: includes/class-yit-plugin-panel.php:1073
123
  msgid "Settings saved"
124
  msgstr "Impostazioni salvate"
125
 
126
- #: includes/class-yit-plugin-panel.php:1074
127
  msgid "Settings reset"
128
  msgstr "Impostazioni azzerate"
129
 
130
- #: includes/class-yit-plugin-panel.php:1075
131
  msgid "Element deleted correctly."
132
  msgstr "Elemento rimosso correttamente."
133
 
134
- #: includes/class-yit-plugin-panel.php:1076
135
- #: includes/class-yit-plugin-panel.php:1077
136
  msgid "Element updated correctly."
137
  msgstr "Elemento aggiornato correttamente."
138
 
139
- #: includes/class-yit-plugin-panel.php:1078
140
  msgid "Database imported correctly."
141
  msgstr "Database importato correttamente."
142
 
143
- #: includes/class-yit-plugin-panel.php:1079
144
  msgid "An error has occurred during import. Please try again."
145
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
146
 
147
- #: includes/class-yit-plugin-panel.php:1080
148
  msgid "The added file is not valid."
149
  msgstr "Il file aggiunto non è valido."
150
 
151
- #: includes/class-yit-plugin-panel.php:1081
152
  msgid "Sorry, import is disabled."
153
  msgstr "Ci dispiace, l'importazione è disabilitata."
154
 
155
- #: includes/class-yit-plugin-panel.php:1082
156
  msgid "Sorting successful."
157
  msgstr "Ordinamento effettuato con successo."
158
 
159
- #: includes/class-yit-plugin-panel.php:1571
160
  msgid "We need your support"
161
  msgstr "Abbiamo bisogno del tuo sostegno"
162
 
163
- #: includes/class-yit-plugin-panel.php:1572
164
  msgid "to keep updating and improving the plugin. Please,"
165
  msgstr "per poter continuare ad aggiornare e migliorare il plugin."
166
 
167
- #: includes/class-yit-plugin-panel.php:1574
168
  msgid "help us by leaving a good review"
169
  msgstr "Puoi darci una mano lasciando una recensione positiva"
170
 
171
- #: includes/class-yit-plugin-panel.php:1575
172
  msgid ":) Thanks!"
173
  msgstr ":) Grazie!"
174
 
@@ -208,6 +208,10 @@ msgstr ""
208
  "(come per YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) "
209
  "saranno spostate dalla posizione precedente al menù YITH."
210
 
 
 
 
 
211
  #: includes/class-yith-dashboard.php:35
212
  msgid "YITH Latest Updates"
213
  msgstr "Ultimi aggiornamenti da YITH"
@@ -408,6 +412,10 @@ msgstr ""
408
  "Non ci è stato possibile determinare quale versione di %1$s è installata a "
409
  "causa di un problema di connessione fra il tuo sito e il nostro server."
410
 
 
 
 
 
411
  #: templates/fields/ajax-customers.php:41
412
  msgid "Search for a customer..."
413
  msgstr "Cerca un cliente..."
@@ -686,12 +694,12 @@ msgstr "Sei sicuro di voler eliminare \"%s\"?"
686
  msgid "Further actions"
687
  msgstr "Altre azioni"
688
 
689
- #: yit-plugin.php:232
690
  msgid "License"
691
  msgstr "Chiave di licenza"
692
 
693
  #. translators: 1. Plugin(s) name(s).
694
- #: yit-plugin.php:271
695
  msgid ""
696
  "%s was deactivated as you're running an higher tier version of the same "
697
  "plugin."
@@ -720,22 +728,22 @@ msgctxt "[gutenberg]: Category Name"
720
  msgid "YITH"
721
  msgstr "YITH"
722
 
723
- #: includes/class-yit-assets.php:132
724
  msgctxt "Button text"
725
  msgid "Confirm"
726
  msgstr "Conferma"
727
 
728
- #: includes/class-yit-assets.php:133
729
  msgctxt "Button text"
730
  msgid "Cancel"
731
  msgstr "Annulla"
732
 
733
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
734
  msgctxt "Trash confirmation action"
735
  msgid "Yes, move to trash"
736
  msgstr "Sì, sposta nel cestino"
737
 
738
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
739
  #: yit-functions.php:2154
740
  msgctxt "Delete confirmation action"
741
  msgid "Yes, delete"
@@ -968,9 +976,10 @@ msgid "Read the plugin documentation"
968
  msgstr "Consulta la documentazione"
969
 
970
  #: templates/panel/help-tab.php:220
 
971
  msgctxt "Help tab documentation"
972
- msgid "to learn from basics how it works"
973
- msgstr ""
974
 
975
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
976
  #, fuzzy
@@ -985,7 +994,9 @@ msgstr ""
985
 
986
  #: templates/panel/help-tab.php:238
987
  msgctxt "Help tab support"
988
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
989
  msgstr ""
990
 
991
  #: templates/panel/help-tab.php:241
@@ -1010,17 +1021,23 @@ msgid "Plugin premium features images"
1010
  msgstr "Immagini funzionalità premium"
1011
 
1012
  #. translators: alt attribute of main image tag.
1013
- #: templates/panel/premium-tab.php:51
1014
  msgctxt "Premium Tab"
1015
  msgid "And so much more!"
1016
  msgstr "E molto altro!"
1017
 
1018
  #: templates/panel/premium-tab.php:53
 
 
 
 
 
 
1019
  msgctxt "Premium Tab"
1020
  msgid "Check the free vs premium features >"
1021
  msgstr "Confronta le funzionalità gratuite e premium >"
1022
 
1023
- #: templates/panel/premium-tab.php:58
1024
  msgctxt "Premium Tab"
1025
  msgid "Get the premium version"
1026
  msgstr "Ottieni la versione premium"
@@ -1080,27 +1097,27 @@ msgctxt "Term action"
1080
  msgid "Delete"
1081
  msgstr "Elimina"
1082
 
1083
- #: yit-plugin.php:84
1084
  msgctxt "Plugin Row Meta"
1085
  msgid "Live Demo"
1086
  msgstr "Live Demo"
1087
 
1088
- #: yit-plugin.php:88
1089
  msgctxt "Plugin Row Meta"
1090
  msgid "Documentation"
1091
  msgstr "Documentazione"
1092
 
1093
- #: yit-plugin.php:92
1094
  msgctxt "Plugin Row Meta"
1095
  msgid "Support"
1096
  msgstr "Assistenza"
1097
 
1098
- #: yit-plugin.php:96
1099
  msgctxt "Plugin Row Meta"
1100
  msgid "Premium version"
1101
  msgstr "Versione premium"
1102
 
1103
- #: yit-plugin.php:228
1104
  msgctxt "Action links"
1105
  msgid "Settings"
1106
  msgstr "Impostazioni"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2022-07-06 07:17:32+0000\n"
9
  "Language: it\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Conferma eliminazione"
19
 
20
+ #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr "Se sicuro di voler spostare nel cestino gli elementi selezionati?"
23
 
24
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "No"
29
 
30
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "Conferma eliminazione"
34
 
35
+ #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr "Se sicuro di voler eliminare gli elementi selezionati?"
38
 
39
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
44
  "Quest'azione non può essere annullata e non sarà possibile recuperare questi "
45
  "dati."
46
 
47
+ #: includes/class-yit-assets.php:172
48
  msgid "Clear"
49
  msgstr "Rimuovi"
50
 
51
+ #: includes/class-yit-assets.php:173
52
  msgid "Clear color"
53
  msgstr "Rimuovi colore"
54
 
55
+ #: includes/class-yit-assets.php:174
56
  msgid "Default"
57
  msgstr "Predefinito"
58
 
59
+ #: includes/class-yit-assets.php:175
60
  msgid "Select default color"
61
  msgstr "Seleziona il colore predefinito"
62
 
63
+ #: includes/class-yit-assets.php:176
64
  msgid "Select Color"
65
  msgstr "Seleziona il colore"
66
 
67
+ #: includes/class-yit-assets.php:177
68
  msgid "Color value"
69
  msgstr "Valore del colore"
70
 
114
  msgid "Reset to default"
115
  msgstr "Ripristina configurazione predefinita"
116
 
117
+ #: includes/class-yit-plugin-panel.php:1074
118
  msgid ""
119
  "The element you have entered already exists. Please, enter another name."
120
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
121
 
122
+ #: includes/class-yit-plugin-panel.php:1075
123
  msgid "Settings saved"
124
  msgstr "Impostazioni salvate"
125
 
126
+ #: includes/class-yit-plugin-panel.php:1076
127
  msgid "Settings reset"
128
  msgstr "Impostazioni azzerate"
129
 
130
+ #: includes/class-yit-plugin-panel.php:1077
131
  msgid "Element deleted correctly."
132
  msgstr "Elemento rimosso correttamente."
133
 
134
+ #: includes/class-yit-plugin-panel.php:1078
135
+ #: includes/class-yit-plugin-panel.php:1079
136
  msgid "Element updated correctly."
137
  msgstr "Elemento aggiornato correttamente."
138
 
139
+ #: includes/class-yit-plugin-panel.php:1080
140
  msgid "Database imported correctly."
141
  msgstr "Database importato correttamente."
142
 
143
+ #: includes/class-yit-plugin-panel.php:1081
144
  msgid "An error has occurred during import. Please try again."
145
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
146
 
147
+ #: includes/class-yit-plugin-panel.php:1082
148
  msgid "The added file is not valid."
149
  msgstr "Il file aggiunto non è valido."
150
 
151
+ #: includes/class-yit-plugin-panel.php:1083
152
  msgid "Sorry, import is disabled."
153
  msgstr "Ci dispiace, l'importazione è disabilitata."
154
 
155
+ #: includes/class-yit-plugin-panel.php:1084
156
  msgid "Sorting successful."
157
  msgstr "Ordinamento effettuato con successo."
158
 
159
+ #: includes/class-yit-plugin-panel.php:1573
160
  msgid "We need your support"
161
  msgstr "Abbiamo bisogno del tuo sostegno"
162
 
163
+ #: includes/class-yit-plugin-panel.php:1574
164
  msgid "to keep updating and improving the plugin. Please,"
165
  msgstr "per poter continuare ad aggiornare e migliorare il plugin."
166
 
167
+ #: includes/class-yit-plugin-panel.php:1576
168
  msgid "help us by leaving a good review"
169
  msgstr "Puoi darci una mano lasciando una recensione positiva"
170
 
171
+ #: includes/class-yit-plugin-panel.php:1577
172
  msgid ":) Thanks!"
173
  msgstr ":) Grazie!"
174
 
208
  "(come per YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, etc.) "
209
  "saranno spostate dalla posizione precedente al menù YITH."
210
 
211
+ #: includes/class-yith-bh-onboarding.php:85
212
+ msgid "It is not possible save the options"
213
+ msgstr ""
214
+
215
  #: includes/class-yith-dashboard.php:35
216
  msgid "YITH Latest Updates"
217
  msgstr "Ultimi aggiornamenti da YITH"
412
  "Non ci è stato possibile determinare quale versione di %1$s è installata a "
413
  "causa di un problema di connessione fra il tuo sito e il nostro server."
414
 
415
+ #: templates/bh-onboarding/onboarding-tabs.php:63
416
+ msgid "Save"
417
+ msgstr ""
418
+
419
  #: templates/fields/ajax-customers.php:41
420
  msgid "Search for a customer..."
421
  msgstr "Cerca un cliente..."
694
  msgid "Further actions"
695
  msgstr "Altre azioni"
696
 
697
+ #: yit-plugin.php:233
698
  msgid "License"
699
  msgstr "Chiave di licenza"
700
 
701
  #. translators: 1. Plugin(s) name(s).
702
+ #: yit-plugin.php:272
703
  msgid ""
704
  "%s was deactivated as you're running an higher tier version of the same "
705
  "plugin."
728
  msgid "YITH"
729
  msgstr "YITH"
730
 
731
+ #: includes/class-yit-assets.php:134
732
  msgctxt "Button text"
733
  msgid "Confirm"
734
  msgstr "Conferma"
735
 
736
+ #: includes/class-yit-assets.php:135
737
  msgctxt "Button text"
738
  msgid "Cancel"
739
  msgstr "Annulla"
740
 
741
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
742
  msgctxt "Trash confirmation action"
743
  msgid "Yes, move to trash"
744
  msgstr "Sì, sposta nel cestino"
745
 
746
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
747
  #: yit-functions.php:2154
748
  msgctxt "Delete confirmation action"
749
  msgid "Yes, delete"
976
  msgstr "Consulta la documentazione"
977
 
978
  #: templates/panel/help-tab.php:220
979
+ #, fuzzy
980
  msgctxt "Help tab documentation"
981
+ msgid "to learn how it works from the basics."
982
+ msgstr "per scoprire dalle basi come funziona il plugin."
983
 
984
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
985
  #, fuzzy
994
 
995
  #: templates/panel/help-tab.php:238
996
  msgctxt "Help tab support"
997
+ msgid ""
998
+ "Call or chat 24/7 with our support agents, or let our experts build your "
999
+ "site."
1000
  msgstr ""
1001
 
1002
  #: templates/panel/help-tab.php:241
1021
  msgstr "Immagini funzionalità premium"
1022
 
1023
  #. translators: alt attribute of main image tag.
1024
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
1025
  msgctxt "Premium Tab"
1026
  msgid "And so much more!"
1027
  msgstr "E molto altro!"
1028
 
1029
  #: templates/panel/premium-tab.php:53
1030
+ #, fuzzy
1031
+ msgctxt "Premium Tab"
1032
+ msgid "Check the premium features >"
1033
+ msgstr "Confronta le funzionalità gratuite e premium >"
1034
+
1035
+ #: templates/panel/premium-tab.php:60
1036
  msgctxt "Premium Tab"
1037
  msgid "Check the free vs premium features >"
1038
  msgstr "Confronta le funzionalità gratuite e premium >"
1039
 
1040
+ #: templates/panel/premium-tab.php:65
1041
  msgctxt "Premium Tab"
1042
  msgid "Get the premium version"
1043
  msgstr "Ottieni la versione premium"
1097
  msgid "Delete"
1098
  msgstr "Elimina"
1099
 
1100
+ #: yit-plugin.php:85
1101
  msgctxt "Plugin Row Meta"
1102
  msgid "Live Demo"
1103
  msgstr "Live Demo"
1104
 
1105
+ #: yit-plugin.php:89
1106
  msgctxt "Plugin Row Meta"
1107
  msgid "Documentation"
1108
  msgstr "Documentazione"
1109
 
1110
+ #: yit-plugin.php:93
1111
  msgctxt "Plugin Row Meta"
1112
  msgid "Support"
1113
  msgstr "Assistenza"
1114
 
1115
+ #: yit-plugin.php:97
1116
  msgctxt "Plugin Row Meta"
1117
  msgid "Premium version"
1118
  msgstr "Versione premium"
1119
 
1120
+ #: yit-plugin.php:229
1121
  msgctxt "Action links"
1122
  msgid "Settings"
1123
  msgstr "Impostazioni"
plugin-fw/languages/yith-plugin-fw-nl_NL.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-nl_NL.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2021-12-13 12:45:02+0000\n"
9
  "Language: nl\n"
10
  "MIME-Version: 1.0\n"
@@ -13,32 +13,32 @@ msgstr ""
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Verplaatsen naar prullenbak bevestigen"
19
 
20
- #: includes/class-yit-assets.php:145
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
  "Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
24
  "verplaatsen?"
25
 
26
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
27
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
28
  #: yit-functions.php:2008 yit-functions.php:2026
29
  msgid "No"
30
  msgstr "Nee"
31
 
32
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
33
  #: yit-functions.php:2152
34
  msgid "Confirm delete"
35
  msgstr "Verwijderen bevestigen"
36
 
37
- #: includes/class-yit-assets.php:149
38
  msgid "Are you sure you want to delete the selected items?"
39
  msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
40
 
41
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
42
  #: yit-functions.php:2100
43
  msgid ""
44
  "This action cannot be undone and you will not be able to recover this data."
@@ -46,27 +46,27 @@ msgstr ""
46
  "Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
47
  "kunnen herstellen."
48
 
49
- #: includes/class-yit-assets.php:162
50
  msgid "Clear"
51
  msgstr "Wissen"
52
 
53
- #: includes/class-yit-assets.php:163
54
  msgid "Clear color"
55
  msgstr "Kleur wissen"
56
 
57
- #: includes/class-yit-assets.php:164
58
  msgid "Default"
59
  msgstr "Standaard"
60
 
61
- #: includes/class-yit-assets.php:165
62
  msgid "Select default color"
63
  msgstr "Standaardkleur selecteren"
64
 
65
- #: includes/class-yit-assets.php:166
66
  msgid "Select Color"
67
  msgstr "Kleur selecteren"
68
 
69
- #: includes/class-yit-assets.php:167
70
  msgid "Color value"
71
  msgstr "Kleurwaarde"
72
 
@@ -116,61 +116,61 @@ msgstr "Weet je het zeker?"
116
  msgid "Reset to default"
117
  msgstr "Resetten naar standaard"
118
 
119
- #: includes/class-yit-plugin-panel.php:1072
120
  msgid ""
121
  "The element you have entered already exists. Please, enter another name."
122
  msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
123
 
124
- #: includes/class-yit-plugin-panel.php:1073
125
  msgid "Settings saved"
126
  msgstr "Instellingen opgeslagen"
127
 
128
- #: includes/class-yit-plugin-panel.php:1074
129
  msgid "Settings reset"
130
  msgstr "Instellingen resetten"
131
 
132
- #: includes/class-yit-plugin-panel.php:1075
133
  msgid "Element deleted correctly."
134
  msgstr "Element juist verwijderd."
135
 
136
- #: includes/class-yit-plugin-panel.php:1076
137
- #: includes/class-yit-plugin-panel.php:1077
138
  msgid "Element updated correctly."
139
  msgstr "Element juist geüpdatet."
140
 
141
- #: includes/class-yit-plugin-panel.php:1078
142
  msgid "Database imported correctly."
143
  msgstr "Database juist geïmporteerd."
144
 
145
- #: includes/class-yit-plugin-panel.php:1079
146
  msgid "An error has occurred during import. Please try again."
147
  msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
148
 
149
- #: includes/class-yit-plugin-panel.php:1080
150
  msgid "The added file is not valid."
151
  msgstr "Het toegevoegde bestand is niet geldig."
152
 
153
- #: includes/class-yit-plugin-panel.php:1081
154
  msgid "Sorry, import is disabled."
155
  msgstr "Sorry, importeren is uitgeschakeld."
156
 
157
- #: includes/class-yit-plugin-panel.php:1082
158
  msgid "Sorting successful."
159
  msgstr "Succesvol gesorteerd."
160
 
161
- #: includes/class-yit-plugin-panel.php:1571
162
  msgid "We need your support"
163
  msgstr "We hebben je hulp nodig"
164
 
165
- #: includes/class-yit-plugin-panel.php:1572
166
  msgid "to keep updating and improving the plugin. Please,"
167
  msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
168
 
169
- #: includes/class-yit-plugin-panel.php:1574
170
  msgid "help us by leaving a good review"
171
  msgstr "help ons door een goede beoordeling achter te laten"
172
 
173
- #: includes/class-yit-plugin-panel.php:1575
174
  msgid ":) Thanks!"
175
  msgstr ":) Bedankt!"
176
 
@@ -210,6 +210,10 @@ msgstr ""
210
  "(zoals voor YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, enz.) "
211
  "verplaatst van de vorige locatie naar het YITH menu."
212
 
 
 
 
 
213
  #: includes/class-yith-dashboard.php:35
214
  msgid "YITH Latest Updates"
215
  msgstr "YITH laatste updates"
@@ -409,6 +413,10 @@ msgstr ""
409
  "De systeemcontrole kan niet bepalen welke versie van %1$s is geïnstalleerd "
410
  "vanwege een verbindingsprobleem tussen je site en onze server."
411
 
 
 
 
 
412
  #: templates/fields/ajax-customers.php:41
413
  msgid "Search for a customer..."
414
  msgstr ""
@@ -686,12 +694,12 @@ msgstr "Weet je zeker dat je \"%s\" wilt verwijderen?"
686
  msgid "Further actions"
687
  msgstr "Verdere acties"
688
 
689
- #: yit-plugin.php:232
690
  msgid "License"
691
  msgstr "Licentie"
692
 
693
  #. translators: 1. Plugin(s) name(s).
694
- #: yit-plugin.php:271
695
  msgid ""
696
  "%s was deactivated as you're running an higher tier version of the same "
697
  "plugin."
@@ -716,22 +724,22 @@ msgctxt "[gutenberg]: Category Name"
716
  msgid "YITH"
717
  msgstr "YITH"
718
 
719
- #: includes/class-yit-assets.php:132
720
  msgctxt "Button text"
721
  msgid "Confirm"
722
  msgstr "Bevestigen"
723
 
724
- #: includes/class-yit-assets.php:133
725
  msgctxt "Button text"
726
  msgid "Cancel"
727
  msgstr "Annuleren"
728
 
729
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
730
  msgctxt "Trash confirmation action"
731
  msgid "Yes, move to trash"
732
  msgstr "Ja, verplaatsen naar prullenbak"
733
 
734
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
735
  #: yit-functions.php:2154
736
  msgctxt "Delete confirmation action"
737
  msgid "Yes, delete"
@@ -959,7 +967,7 @@ msgstr "Lees de documentatie"
959
 
960
  #: templates/panel/help-tab.php:220
961
  msgctxt "Help tab documentation"
962
- msgid "to learn from basics how it works"
963
  msgstr ""
964
 
965
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
@@ -975,7 +983,9 @@ msgstr ""
975
 
976
  #: templates/panel/help-tab.php:238
977
  msgctxt "Help tab support"
978
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
979
  msgstr ""
980
 
981
  #: templates/panel/help-tab.php:241
@@ -1000,17 +1010,23 @@ msgid "Plugin premium features images"
1000
  msgstr "Plugin premium opties afbeeldingen"
1001
 
1002
  #. translators: alt attribute of main image tag.
1003
- #: templates/panel/premium-tab.php:51
1004
  msgctxt "Premium Tab"
1005
  msgid "And so much more!"
1006
  msgstr "En zo veel meer!"
1007
 
1008
  #: templates/panel/premium-tab.php:53
 
 
 
 
 
 
1009
  msgctxt "Premium Tab"
1010
  msgid "Check the free vs premium features >"
1011
  msgstr "Bekijk de gratis vs premium opties >"
1012
 
1013
- #: templates/panel/premium-tab.php:58
1014
  msgctxt "Premium Tab"
1015
  msgid "Get the premium version"
1016
  msgstr "Krijg de premium versie"
@@ -1070,27 +1086,27 @@ msgctxt "Term action"
1070
  msgid "Delete"
1071
  msgstr "Verwijderen"
1072
 
1073
- #: yit-plugin.php:84
1074
  msgctxt "Plugin Row Meta"
1075
  msgid "Live Demo"
1076
  msgstr "Live Demo"
1077
 
1078
- #: yit-plugin.php:88
1079
  msgctxt "Plugin Row Meta"
1080
  msgid "Documentation"
1081
  msgstr "Documentatie"
1082
 
1083
- #: yit-plugin.php:92
1084
  msgctxt "Plugin Row Meta"
1085
  msgid "Support"
1086
  msgstr "Ondersteuning"
1087
 
1088
- #: yit-plugin.php:96
1089
  msgctxt "Plugin Row Meta"
1090
  msgid "Premium version"
1091
  msgstr "Premium versie"
1092
 
1093
- #: yit-plugin.php:228
1094
  msgctxt "Action links"
1095
  msgid "Settings"
1096
  msgstr "Instellingen"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2021-12-13 12:45:02+0000\n"
9
  "Language: nl\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "Verplaatsen naar prullenbak bevestigen"
19
 
20
+ #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr ""
23
  "Weet je zeker dat je het geselecteerde item naar de prullenbak wilt "
24
  "verplaatsen?"
25
 
26
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
27
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
28
  #: yit-functions.php:2008 yit-functions.php:2026
29
  msgid "No"
30
  msgstr "Nee"
31
 
32
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
33
  #: yit-functions.php:2152
34
  msgid "Confirm delete"
35
  msgstr "Verwijderen bevestigen"
36
 
37
+ #: includes/class-yit-assets.php:151
38
  msgid "Are you sure you want to delete the selected items?"
39
  msgstr "Weet je zeker dat je de geselecteerde items wilt verwijderen?"
40
 
41
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
42
  #: yit-functions.php:2100
43
  msgid ""
44
  "This action cannot be undone and you will not be able to recover this data."
46
  "Deze actie kan niet ongedaan gemaakt worden en je zult deze gegevens niet "
47
  "kunnen herstellen."
48
 
49
+ #: includes/class-yit-assets.php:172
50
  msgid "Clear"
51
  msgstr "Wissen"
52
 
53
+ #: includes/class-yit-assets.php:173
54
  msgid "Clear color"
55
  msgstr "Kleur wissen"
56
 
57
+ #: includes/class-yit-assets.php:174
58
  msgid "Default"
59
  msgstr "Standaard"
60
 
61
+ #: includes/class-yit-assets.php:175
62
  msgid "Select default color"
63
  msgstr "Standaardkleur selecteren"
64
 
65
+ #: includes/class-yit-assets.php:176
66
  msgid "Select Color"
67
  msgstr "Kleur selecteren"
68
 
69
+ #: includes/class-yit-assets.php:177
70
  msgid "Color value"
71
  msgstr "Kleurwaarde"
72
 
116
  msgid "Reset to default"
117
  msgstr "Resetten naar standaard"
118
 
119
+ #: includes/class-yit-plugin-panel.php:1074
120
  msgid ""
121
  "The element you have entered already exists. Please, enter another name."
122
  msgstr "Het element dat je hebt ingevoerd bestaat al. Voer een andere naam in."
123
 
124
+ #: includes/class-yit-plugin-panel.php:1075
125
  msgid "Settings saved"
126
  msgstr "Instellingen opgeslagen"
127
 
128
+ #: includes/class-yit-plugin-panel.php:1076
129
  msgid "Settings reset"
130
  msgstr "Instellingen resetten"
131
 
132
+ #: includes/class-yit-plugin-panel.php:1077
133
  msgid "Element deleted correctly."
134
  msgstr "Element juist verwijderd."
135
 
136
+ #: includes/class-yit-plugin-panel.php:1078
137
+ #: includes/class-yit-plugin-panel.php:1079
138
  msgid "Element updated correctly."
139
  msgstr "Element juist geüpdatet."
140
 
141
+ #: includes/class-yit-plugin-panel.php:1080
142
  msgid "Database imported correctly."
143
  msgstr "Database juist geïmporteerd."
144
 
145
+ #: includes/class-yit-plugin-panel.php:1081
146
  msgid "An error has occurred during import. Please try again."
147
  msgstr "Er is een fout opgetreden tijdens importeren. Probeer opnieuw."
148
 
149
+ #: includes/class-yit-plugin-panel.php:1082
150
  msgid "The added file is not valid."
151
  msgstr "Het toegevoegde bestand is niet geldig."
152
 
153
+ #: includes/class-yit-plugin-panel.php:1083
154
  msgid "Sorry, import is disabled."
155
  msgstr "Sorry, importeren is uitgeschakeld."
156
 
157
+ #: includes/class-yit-plugin-panel.php:1084
158
  msgid "Sorting successful."
159
  msgstr "Succesvol gesorteerd."
160
 
161
+ #: includes/class-yit-plugin-panel.php:1573
162
  msgid "We need your support"
163
  msgstr "We hebben je hulp nodig"
164
 
165
+ #: includes/class-yit-plugin-panel.php:1574
166
  msgid "to keep updating and improving the plugin. Please,"
167
  msgstr "om de plugin te blijven bijwerken en verbeteren. A.u.b.,"
168
 
169
+ #: includes/class-yit-plugin-panel.php:1576
170
  msgid "help us by leaving a good review"
171
  msgstr "help ons door een goede beoordeling achter te laten"
172
 
173
+ #: includes/class-yit-plugin-panel.php:1577
174
  msgid ":) Thanks!"
175
  msgstr ":) Bedankt!"
176
 
210
  "(zoals voor YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search, enz.) "
211
  "verplaatst van de vorige locatie naar het YITH menu."
212
 
213
+ #: includes/class-yith-bh-onboarding.php:85
214
+ msgid "It is not possible save the options"
215
+ msgstr ""
216
+
217
  #: includes/class-yith-dashboard.php:35
218
  msgid "YITH Latest Updates"
219
  msgstr "YITH laatste updates"
413
  "De systeemcontrole kan niet bepalen welke versie van %1$s is geïnstalleerd "
414
  "vanwege een verbindingsprobleem tussen je site en onze server."
415
 
416
+ #: templates/bh-onboarding/onboarding-tabs.php:63
417
+ msgid "Save"
418
+ msgstr ""
419
+
420
  #: templates/fields/ajax-customers.php:41
421
  msgid "Search for a customer..."
422
  msgstr ""
694
  msgid "Further actions"
695
  msgstr "Verdere acties"
696
 
697
+ #: yit-plugin.php:233
698
  msgid "License"
699
  msgstr "Licentie"
700
 
701
  #. translators: 1. Plugin(s) name(s).
702
+ #: yit-plugin.php:272
703
  msgid ""
704
  "%s was deactivated as you're running an higher tier version of the same "
705
  "plugin."
724
  msgid "YITH"
725
  msgstr "YITH"
726
 
727
+ #: includes/class-yit-assets.php:134
728
  msgctxt "Button text"
729
  msgid "Confirm"
730
  msgstr "Bevestigen"
731
 
732
+ #: includes/class-yit-assets.php:135
733
  msgctxt "Button text"
734
  msgid "Cancel"
735
  msgstr "Annuleren"
736
 
737
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
738
  msgctxt "Trash confirmation action"
739
  msgid "Yes, move to trash"
740
  msgstr "Ja, verplaatsen naar prullenbak"
741
 
742
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
743
  #: yit-functions.php:2154
744
  msgctxt "Delete confirmation action"
745
  msgid "Yes, delete"
967
 
968
  #: templates/panel/help-tab.php:220
969
  msgctxt "Help tab documentation"
970
+ msgid "to learn how it works from the basics."
971
  msgstr ""
972
 
973
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
983
 
984
  #: templates/panel/help-tab.php:238
985
  msgctxt "Help tab support"
986
+ msgid ""
987
+ "Call or chat 24/7 with our support agents, or let our experts build your "
988
+ "site."
989
  msgstr ""
990
 
991
  #: templates/panel/help-tab.php:241
1010
  msgstr "Plugin premium opties afbeeldingen"
1011
 
1012
  #. translators: alt attribute of main image tag.
1013
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
1014
  msgctxt "Premium Tab"
1015
  msgid "And so much more!"
1016
  msgstr "En zo veel meer!"
1017
 
1018
  #: templates/panel/premium-tab.php:53
1019
+ #, fuzzy
1020
+ msgctxt "Premium Tab"
1021
+ msgid "Check the premium features >"
1022
+ msgstr "Bekijk de gratis vs premium opties >"
1023
+
1024
+ #: templates/panel/premium-tab.php:60
1025
  msgctxt "Premium Tab"
1026
  msgid "Check the free vs premium features >"
1027
  msgstr "Bekijk de gratis vs premium opties >"
1028
 
1029
+ #: templates/panel/premium-tab.php:65
1030
  msgctxt "Premium Tab"
1031
  msgid "Get the premium version"
1032
  msgstr "Krijg de premium versie"
1086
  msgid "Delete"
1087
  msgstr "Verwijderen"
1088
 
1089
+ #: yit-plugin.php:85
1090
  msgctxt "Plugin Row Meta"
1091
  msgid "Live Demo"
1092
  msgstr "Live Demo"
1093
 
1094
+ #: yit-plugin.php:89
1095
  msgctxt "Plugin Row Meta"
1096
  msgid "Documentation"
1097
  msgstr "Documentatie"
1098
 
1099
+ #: yit-plugin.php:93
1100
  msgctxt "Plugin Row Meta"
1101
  msgid "Support"
1102
  msgstr "Ondersteuning"
1103
 
1104
+ #: yit-plugin.php:97
1105
  msgctxt "Plugin Row Meta"
1106
  msgid "Premium version"
1107
  msgstr "Premium versie"
1108
 
1109
+ #: yit-plugin.php:229
1110
  msgctxt "Action links"
1111
  msgid "Settings"
1112
  msgstr "Instellingen"
plugin-fw/languages/yith-plugin-fw-ru_RU.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-ru_RU.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2022-04-05 17:22:32+0000\n"
9
  "Language: ru\n"
10
  "MIME-Version: 1.0\n"
@@ -14,56 +14,56 @@ msgstr ""
14
  "10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
15
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
16
 
17
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
18
  msgid "Confirm trash"
19
  msgstr "Подтвердить корзину"
20
 
21
- #: includes/class-yit-assets.php:145
22
  msgid "Are you sure you want to trash the selected items?"
23
  msgstr "Вы уверены, что хотите переместить в корзину выбранные элементы?"
24
 
25
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
26
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
27
  #: yit-functions.php:2008 yit-functions.php:2026
28
  msgid "No"
29
  msgstr "Нет"
30
 
31
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Подтвердите удаление"
35
 
36
- #: includes/class-yit-assets.php:149
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "Вы уверены, что хотите удалить выбранные элементы?"
39
 
40
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
41
  #: yit-functions.php:2100
42
  msgid ""
43
  "This action cannot be undone and you will not be able to recover this data."
44
  msgstr "Это действие нельзя отменить, и вы не сможете восстановить эти данные."
45
 
46
- #: includes/class-yit-assets.php:162
47
  msgid "Clear"
48
  msgstr "Очистить"
49
 
50
- #: includes/class-yit-assets.php:163
51
  msgid "Clear color"
52
  msgstr "Очистить цвет"
53
 
54
- #: includes/class-yit-assets.php:164
55
  msgid "Default"
56
  msgstr "По умолчанию"
57
 
58
- #: includes/class-yit-assets.php:165
59
  msgid "Select default color"
60
  msgstr "Выберите цвет по умолчанию"
61
 
62
- #: includes/class-yit-assets.php:166
63
  msgid "Select Color"
64
  msgstr "Выберите цвет"
65
 
66
- #: includes/class-yit-assets.php:167
67
  msgid "Color value"
68
  msgstr "Цвет значения"
69
 
@@ -115,61 +115,61 @@ msgstr "Вы уверены?"
115
  msgid "Reset to default"
116
  msgstr "Сброс до заводских настроек"
117
 
118
- #: includes/class-yit-plugin-panel.php:1072
119
  msgid ""
120
  "The element you have entered already exists. Please, enter another name."
121
  msgstr "Введенный вами элемент уже существует. Пожалуйста, введите другое имя."
122
 
123
- #: includes/class-yit-plugin-panel.php:1073
124
  msgid "Settings saved"
125
  msgstr "Настройки сохранены"
126
 
127
- #: includes/class-yit-plugin-panel.php:1074
128
  msgid "Settings reset"
129
  msgstr "Сбросить настройки"
130
 
131
- #: includes/class-yit-plugin-panel.php:1075
132
  msgid "Element deleted correctly."
133
  msgstr "Элемент удален правильно."
134
 
135
- #: includes/class-yit-plugin-panel.php:1076
136
- #: includes/class-yit-plugin-panel.php:1077
137
  msgid "Element updated correctly."
138
  msgstr "Элемент обновлен правильно."
139
 
140
- #: includes/class-yit-plugin-panel.php:1078
141
  msgid "Database imported correctly."
142
  msgstr "База данных импортирована правильно."
143
 
144
- #: includes/class-yit-plugin-panel.php:1079
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr "Во время импорта произошла ошибка. Пожалуйста, попробуйте еще раз."
147
 
148
- #: includes/class-yit-plugin-panel.php:1080
149
  msgid "The added file is not valid."
150
  msgstr "Добавленный файл недействителен."
151
 
152
- #: includes/class-yit-plugin-panel.php:1081
153
  msgid "Sorry, import is disabled."
154
  msgstr "Извините, импорт отключен."
155
 
156
- #: includes/class-yit-plugin-panel.php:1082
157
  msgid "Sorting successful."
158
  msgstr "Сортировка выполнена успешно."
159
 
160
- #: includes/class-yit-plugin-panel.php:1571
161
  msgid "We need your support"
162
  msgstr "Нам нужна ваша поддержка"
163
 
164
- #: includes/class-yit-plugin-panel.php:1572
165
  msgid "to keep updating and improving the plugin. Please,"
166
  msgstr "чтобы продолжать обновлять и улучшать плагин. Пожалуйста,"
167
 
168
- #: includes/class-yit-plugin-panel.php:1574
169
  msgid "help us by leaving a good review"
170
  msgstr "помогите нам, оставив хороший отзыв"
171
 
172
- #: includes/class-yit-plugin-panel.php:1575
173
  msgid ":) Thanks!"
174
  msgstr ":) Благодарим!"
175
 
@@ -208,6 +208,10 @@ msgstr ""
208
  "как для YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search и т.д.) "
209
  "будут перемещены из предыдущего места в меню YITH."
210
 
 
 
 
 
211
  #: includes/class-yith-dashboard.php:35
212
  msgid "YITH Latest Updates"
213
  msgstr "Последние обновления YITH"
@@ -408,6 +412,10 @@ msgstr ""
408
  "Системная проверка не может определить, какая версия %1$s установлена, из-за "
409
  "проблемы с соединением между вашим сайтом и нашим сервером."
410
 
 
 
 
 
411
  #: templates/fields/ajax-customers.php:41
412
  msgid "Search for a customer..."
413
  msgstr ""
@@ -685,12 +693,12 @@ msgstr "Вы уверены, что хотите удалить \"%s\"?"
685
  msgid "Further actions"
686
  msgstr "Дальнейшие действия"
687
 
688
- #: yit-plugin.php:232
689
  msgid "License"
690
  msgstr "Лицензия"
691
 
692
  #. translators: 1. Plugin(s) name(s).
693
- #: yit-plugin.php:271
694
  msgid ""
695
  "%s was deactivated as you're running an higher tier version of the same "
696
  "plugin."
@@ -716,22 +724,22 @@ msgctxt "[gutenberg]: Category Name"
716
  msgid "YITH"
717
  msgstr "YITH"
718
 
719
- #: includes/class-yit-assets.php:132
720
  msgctxt "Button text"
721
  msgid "Confirm"
722
  msgstr "Подтвердить"
723
 
724
- #: includes/class-yit-assets.php:133
725
  msgctxt "Button text"
726
  msgid "Cancel"
727
  msgstr "Отмена"
728
 
729
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
730
  msgctxt "Trash confirmation action"
731
  msgid "Yes, move to trash"
732
  msgstr "Да, удалить в корзину"
733
 
734
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
735
  #: yit-functions.php:2154
736
  msgctxt "Delete confirmation action"
737
  msgid "Yes, delete"
@@ -965,7 +973,7 @@ msgstr "Прочтите документацию"
965
 
966
  #: templates/panel/help-tab.php:220
967
  msgctxt "Help tab documentation"
968
- msgid "to learn from basics how it works"
969
  msgstr ""
970
 
971
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
@@ -981,7 +989,9 @@ msgstr ""
981
 
982
  #: templates/panel/help-tab.php:238
983
  msgctxt "Help tab support"
984
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
985
  msgstr ""
986
 
987
  #: templates/panel/help-tab.php:241
@@ -1006,17 +1016,23 @@ msgid "Plugin premium features images"
1006
  msgstr "Изображения премиум-функций плагина"
1007
 
1008
  #. translators: alt attribute of main image tag.
1009
- #: templates/panel/premium-tab.php:51
1010
  msgctxt "Premium Tab"
1011
  msgid "And so much more!"
1012
  msgstr "И многое другое!"
1013
 
1014
  #: templates/panel/premium-tab.php:53
 
 
 
 
 
 
1015
  msgctxt "Premium Tab"
1016
  msgid "Check the free vs premium features >"
1017
  msgstr "Проверьте бесплатные и премиум функции >"
1018
 
1019
- #: templates/panel/premium-tab.php:58
1020
  msgctxt "Premium Tab"
1021
  msgid "Get the premium version"
1022
  msgstr "Получите премиум-версию"
@@ -1076,27 +1092,27 @@ msgctxt "Term action"
1076
  msgid "Delete"
1077
  msgstr "Удалить"
1078
 
1079
- #: yit-plugin.php:84
1080
  msgctxt "Plugin Row Meta"
1081
  msgid "Live Demo"
1082
  msgstr "Живая Демонстрация"
1083
 
1084
- #: yit-plugin.php:88
1085
  msgctxt "Plugin Row Meta"
1086
  msgid "Documentation"
1087
  msgstr "Документация"
1088
 
1089
- #: yit-plugin.php:92
1090
  msgctxt "Plugin Row Meta"
1091
  msgid "Support"
1092
  msgstr "Поддержка"
1093
 
1094
- #: yit-plugin.php:96
1095
  msgctxt "Plugin Row Meta"
1096
  msgid "Premium version"
1097
  msgstr "Премиум версия"
1098
 
1099
- #: yit-plugin.php:228
1100
  msgctxt "Action links"
1101
  msgid "Settings"
1102
  msgstr "Настройки"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2022-04-05 17:22:32+0000\n"
9
  "Language: ru\n"
10
  "MIME-Version: 1.0\n"
14
  "10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2);\n"
15
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
16
 
17
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
18
  msgid "Confirm trash"
19
  msgstr "Подтвердить корзину"
20
 
21
+ #: includes/class-yit-assets.php:147
22
  msgid "Are you sure you want to trash the selected items?"
23
  msgstr "Вы уверены, что хотите переместить в корзину выбранные элементы?"
24
 
25
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
26
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
27
  #: yit-functions.php:2008 yit-functions.php:2026
28
  msgid "No"
29
  msgstr "Нет"
30
 
31
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
32
  #: yit-functions.php:2152
33
  msgid "Confirm delete"
34
  msgstr "Подтвердите удаление"
35
 
36
+ #: includes/class-yit-assets.php:151
37
  msgid "Are you sure you want to delete the selected items?"
38
  msgstr "Вы уверены, что хотите удалить выбранные элементы?"
39
 
40
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
41
  #: yit-functions.php:2100
42
  msgid ""
43
  "This action cannot be undone and you will not be able to recover this data."
44
  msgstr "Это действие нельзя отменить, и вы не сможете восстановить эти данные."
45
 
46
+ #: includes/class-yit-assets.php:172
47
  msgid "Clear"
48
  msgstr "Очистить"
49
 
50
+ #: includes/class-yit-assets.php:173
51
  msgid "Clear color"
52
  msgstr "Очистить цвет"
53
 
54
+ #: includes/class-yit-assets.php:174
55
  msgid "Default"
56
  msgstr "По умолчанию"
57
 
58
+ #: includes/class-yit-assets.php:175
59
  msgid "Select default color"
60
  msgstr "Выберите цвет по умолчанию"
61
 
62
+ #: includes/class-yit-assets.php:176
63
  msgid "Select Color"
64
  msgstr "Выберите цвет"
65
 
66
+ #: includes/class-yit-assets.php:177
67
  msgid "Color value"
68
  msgstr "Цвет значения"
69
 
115
  msgid "Reset to default"
116
  msgstr "Сброс до заводских настроек"
117
 
118
+ #: includes/class-yit-plugin-panel.php:1074
119
  msgid ""
120
  "The element you have entered already exists. Please, enter another name."
121
  msgstr "Введенный вами элемент уже существует. Пожалуйста, введите другое имя."
122
 
123
+ #: includes/class-yit-plugin-panel.php:1075
124
  msgid "Settings saved"
125
  msgstr "Настройки сохранены"
126
 
127
+ #: includes/class-yit-plugin-panel.php:1076
128
  msgid "Settings reset"
129
  msgstr "Сбросить настройки"
130
 
131
+ #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element deleted correctly."
133
  msgstr "Элемент удален правильно."
134
 
135
+ #: includes/class-yit-plugin-panel.php:1078
136
+ #: includes/class-yit-plugin-panel.php:1079
137
  msgid "Element updated correctly."
138
  msgstr "Элемент обновлен правильно."
139
 
140
+ #: includes/class-yit-plugin-panel.php:1080
141
  msgid "Database imported correctly."
142
  msgstr "База данных импортирована правильно."
143
 
144
+ #: includes/class-yit-plugin-panel.php:1081
145
  msgid "An error has occurred during import. Please try again."
146
  msgstr "Во время импорта произошла ошибка. Пожалуйста, попробуйте еще раз."
147
 
148
+ #: includes/class-yit-plugin-panel.php:1082
149
  msgid "The added file is not valid."
150
  msgstr "Добавленный файл недействителен."
151
 
152
+ #: includes/class-yit-plugin-panel.php:1083
153
  msgid "Sorry, import is disabled."
154
  msgstr "Извините, импорт отключен."
155
 
156
+ #: includes/class-yit-plugin-panel.php:1084
157
  msgid "Sorting successful."
158
  msgstr "Сортировка выполнена успешно."
159
 
160
+ #: includes/class-yit-plugin-panel.php:1573
161
  msgid "We need your support"
162
  msgstr "Нам нужна ваша поддержка"
163
 
164
+ #: includes/class-yit-plugin-panel.php:1574
165
  msgid "to keep updating and improving the plugin. Please,"
166
  msgstr "чтобы продолжать обновлять и улучшать плагин. Пожалуйста,"
167
 
168
+ #: includes/class-yit-plugin-panel.php:1576
169
  msgid "help us by leaving a good review"
170
  msgstr "помогите нам, оставив хороший отзыв"
171
 
172
+ #: includes/class-yit-plugin-panel.php:1577
173
  msgid ":) Thanks!"
174
  msgstr ":) Благодарим!"
175
 
208
  "как для YITH WooCommerce Wishlist, YITH WooCommerce Ajax Search и т.д.) "
209
  "будут перемещены из предыдущего места в меню YITH."
210
 
211
+ #: includes/class-yith-bh-onboarding.php:85
212
+ msgid "It is not possible save the options"
213
+ msgstr ""
214
+
215
  #: includes/class-yith-dashboard.php:35
216
  msgid "YITH Latest Updates"
217
  msgstr "Последние обновления YITH"
412
  "Системная проверка не может определить, какая версия %1$s установлена, из-за "
413
  "проблемы с соединением между вашим сайтом и нашим сервером."
414
 
415
+ #: templates/bh-onboarding/onboarding-tabs.php:63
416
+ msgid "Save"
417
+ msgstr ""
418
+
419
  #: templates/fields/ajax-customers.php:41
420
  msgid "Search for a customer..."
421
  msgstr ""
693
  msgid "Further actions"
694
  msgstr "Дальнейшие действия"
695
 
696
+ #: yit-plugin.php:233
697
  msgid "License"
698
  msgstr "Лицензия"
699
 
700
  #. translators: 1. Plugin(s) name(s).
701
+ #: yit-plugin.php:272
702
  msgid ""
703
  "%s was deactivated as you're running an higher tier version of the same "
704
  "plugin."
724
  msgid "YITH"
725
  msgstr "YITH"
726
 
727
+ #: includes/class-yit-assets.php:134
728
  msgctxt "Button text"
729
  msgid "Confirm"
730
  msgstr "Подтвердить"
731
 
732
+ #: includes/class-yit-assets.php:135
733
  msgctxt "Button text"
734
  msgid "Cancel"
735
  msgstr "Отмена"
736
 
737
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
738
  msgctxt "Trash confirmation action"
739
  msgid "Yes, move to trash"
740
  msgstr "Да, удалить в корзину"
741
 
742
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
743
  #: yit-functions.php:2154
744
  msgctxt "Delete confirmation action"
745
  msgid "Yes, delete"
973
 
974
  #: templates/panel/help-tab.php:220
975
  msgctxt "Help tab documentation"
976
+ msgid "to learn how it works from the basics."
977
  msgstr ""
978
 
979
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
989
 
990
  #: templates/panel/help-tab.php:238
991
  msgctxt "Help tab support"
992
+ msgid ""
993
+ "Call or chat 24/7 with our support agents, or let our experts build your "
994
+ "site."
995
  msgstr ""
996
 
997
  #: templates/panel/help-tab.php:241
1016
  msgstr "Изображения премиум-функций плагина"
1017
 
1018
  #. translators: alt attribute of main image tag.
1019
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
1020
  msgctxt "Premium Tab"
1021
  msgid "And so much more!"
1022
  msgstr "И многое другое!"
1023
 
1024
  #: templates/panel/premium-tab.php:53
1025
+ #, fuzzy
1026
+ msgctxt "Premium Tab"
1027
+ msgid "Check the premium features >"
1028
+ msgstr "Проверьте бесплатные и премиум функции >"
1029
+
1030
+ #: templates/panel/premium-tab.php:60
1031
  msgctxt "Premium Tab"
1032
  msgid "Check the free vs premium features >"
1033
  msgstr "Проверьте бесплатные и премиум функции >"
1034
 
1035
+ #: templates/panel/premium-tab.php:65
1036
  msgctxt "Premium Tab"
1037
  msgid "Get the premium version"
1038
  msgstr "Получите премиум-версию"
1092
  msgid "Delete"
1093
  msgstr "Удалить"
1094
 
1095
+ #: yit-plugin.php:85
1096
  msgctxt "Plugin Row Meta"
1097
  msgid "Live Demo"
1098
  msgstr "Живая Демонстрация"
1099
 
1100
+ #: yit-plugin.php:89
1101
  msgctxt "Plugin Row Meta"
1102
  msgid "Documentation"
1103
  msgstr "Документация"
1104
 
1105
+ #: yit-plugin.php:93
1106
  msgctxt "Plugin Row Meta"
1107
  msgid "Support"
1108
  msgstr "Поддержка"
1109
 
1110
+ #: yit-plugin.php:97
1111
  msgctxt "Plugin Row Meta"
1112
  msgid "Premium version"
1113
  msgstr "Премиум версия"
1114
 
1115
+ #: yit-plugin.php:229
1116
  msgctxt "Action links"
1117
  msgid "Settings"
1118
  msgstr "Настройки"
plugin-fw/languages/yith-plugin-fw-zh_CN.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-zh_CN.po CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "PO-Revision-Date: 2022-06-29 13:12:18+0000\n"
9
  "Language: zh\n"
10
  "MIME-Version: 1.0\n"
@@ -13,56 +13,56 @@ msgstr ""
13
  "Plural-Forms: nplurals=1; plural=0;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "確認丟棄"
19
 
20
- #: includes/class-yit-assets.php:145
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr "你確定要將所選的項目移至垃圾桶嗎?"
23
 
24
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "不"
29
 
30
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "確認刪除"
34
 
35
- #: includes/class-yit-assets.php:149
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr "你確定要刪除所選的項目嗎?"
38
 
39
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr "此操作無法撤消,您將無法恢復此數據。"
44
 
45
- #: includes/class-yit-assets.php:162
46
  msgid "Clear"
47
  msgstr "清除"
48
 
49
- #: includes/class-yit-assets.php:163
50
  msgid "Clear color"
51
  msgstr "清除顏色"
52
 
53
- #: includes/class-yit-assets.php:164
54
  msgid "Default"
55
  msgstr "預設"
56
 
57
- #: includes/class-yit-assets.php:165
58
  msgid "Select default color"
59
  msgstr "選擇預設顏色"
60
 
61
- #: includes/class-yit-assets.php:166
62
  msgid "Select Color"
63
  msgstr "選擇顏色"
64
 
65
- #: includes/class-yit-assets.php:167
66
  msgid "Color value"
67
  msgstr "顏色數值"
68
 
@@ -110,61 +110,61 @@ msgstr "你確定嗎?"
110
  msgid "Reset to default"
111
  msgstr "重置為預設值"
112
 
113
- #: includes/class-yit-plugin-panel.php:1072
114
  msgid ""
115
  "The element you have entered already exists. Please, enter another name."
116
  msgstr "你輸入的這個元素已經存在,請輸入另一個名稱"
117
 
118
- #: includes/class-yit-plugin-panel.php:1073
119
  msgid "Settings saved"
120
  msgstr "設定已經儲存"
121
 
122
- #: includes/class-yit-plugin-panel.php:1074
123
  msgid "Settings reset"
124
  msgstr "重置設定"
125
 
126
- #: includes/class-yit-plugin-panel.php:1075
127
  msgid "Element deleted correctly."
128
  msgstr "元素已被確實刪除"
129
 
130
- #: includes/class-yit-plugin-panel.php:1076
131
- #: includes/class-yit-plugin-panel.php:1077
132
  msgid "Element updated correctly."
133
  msgstr "元素已正確更新。"
134
 
135
- #: includes/class-yit-plugin-panel.php:1078
136
  msgid "Database imported correctly."
137
  msgstr "資料庫已被正確匯入"
138
 
139
- #: includes/class-yit-plugin-panel.php:1079
140
  msgid "An error has occurred during import. Please try again."
141
  msgstr "匯入過程中發生一個錯誤,請再試一次"
142
 
143
- #: includes/class-yit-plugin-panel.php:1080
144
  msgid "The added file is not valid."
145
  msgstr "添加的檔案無效"
146
 
147
- #: includes/class-yit-plugin-panel.php:1081
148
  msgid "Sorry, import is disabled."
149
  msgstr "抱歉,匯入功能被關閉"
150
 
151
- #: includes/class-yit-plugin-panel.php:1082
152
  msgid "Sorting successful."
153
  msgstr "已順利排序"
154
 
155
- #: includes/class-yit-plugin-panel.php:1571
156
  msgid "We need your support"
157
  msgstr "我們需要你的支援"
158
 
159
- #: includes/class-yit-plugin-panel.php:1572
160
  msgid "to keep updating and improving the plugin. Please,"
161
  msgstr "請不斷保持更新與改進外掛"
162
 
163
- #: includes/class-yit-plugin-panel.php:1574
164
  msgid "help us by leaving a good review"
165
  msgstr "留下好的評論幫助我們更進步"
166
 
167
- #: includes/class-yit-plugin-panel.php:1575
168
  msgid ":) Thanks!"
169
  msgstr ":) 謝謝!"
170
 
@@ -202,6 +202,10 @@ msgstr ""
202
  "WooCommerce Wishlist、YITH WooCommerce Ajax 搜尋等)將從之前的位置移動到 "
203
  "YITH 選單。"
204
 
 
 
 
 
205
  #: includes/class-yith-dashboard.php:35
206
  msgid "YITH Latest Updates"
207
  msgstr "YITH 最新更新"
@@ -392,6 +396,10 @@ msgstr ""
392
  "由於您的網站和我們的伺服器之間的連接問題,系統檢查無法確定安裝了哪個 %1$s 版"
393
  "本。"
394
 
 
 
 
 
395
  #: templates/fields/ajax-customers.php:41
396
  msgid "Search for a customer..."
397
  msgstr "搜尋顧客..."
@@ -667,12 +675,12 @@ msgstr "您確定要刪除 \"%s\" 嗎?"
667
  msgid "Further actions"
668
  msgstr "進一步動作"
669
 
670
- #: yit-plugin.php:232
671
  msgid "License"
672
  msgstr "授權"
673
 
674
  #. translators: 1. Plugin(s) name(s).
675
- #: yit-plugin.php:271
676
  msgid ""
677
  "%s was deactivated as you're running an higher tier version of the same "
678
  "plugin."
@@ -696,22 +704,22 @@ msgctxt "[gutenberg]: Category Name"
696
  msgid "YITH"
697
  msgstr "YITH"
698
 
699
- #: includes/class-yit-assets.php:132
700
  msgctxt "Button text"
701
  msgid "Confirm"
702
  msgstr "確認"
703
 
704
- #: includes/class-yit-assets.php:133
705
  msgctxt "Button text"
706
  msgid "Cancel"
707
  msgstr "取消"
708
 
709
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
710
  msgctxt "Trash confirmation action"
711
  msgid "Yes, move to trash"
712
  msgstr "是的,將它移至垃圾桶"
713
 
714
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
715
  #: yit-functions.php:2154
716
  msgctxt "Delete confirmation action"
717
  msgid "Yes, delete"
@@ -936,9 +944,10 @@ msgid "Read the plugin documentation"
936
  msgstr "閱讀說明文件"
937
 
938
  #: templates/panel/help-tab.php:220
 
939
  msgctxt "Help tab documentation"
940
- msgid "to learn from basics how it works"
941
- msgstr ""
942
 
943
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
944
  #, fuzzy
@@ -953,7 +962,9 @@ msgstr ""
953
 
954
  #: templates/panel/help-tab.php:238
955
  msgctxt "Help tab support"
956
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
957
  msgstr ""
958
 
959
  #: templates/panel/help-tab.php:241
@@ -978,17 +989,23 @@ msgid "Plugin premium features images"
978
  msgstr "高級版外掛特色圖片"
979
 
980
  #. translators: alt attribute of main image tag.
981
- #: templates/panel/premium-tab.php:51
982
  msgctxt "Premium Tab"
983
  msgid "And so much more!"
984
  msgstr "還有更多!"
985
 
986
  #: templates/panel/premium-tab.php:53
 
 
 
 
 
 
987
  msgctxt "Premium Tab"
988
  msgid "Check the free vs premium features >"
989
  msgstr "查看免費板與高級版的特色比較"
990
 
991
- #: templates/panel/premium-tab.php:58
992
  msgctxt "Premium Tab"
993
  msgid "Get the premium version"
994
  msgstr "取得高級版本"
@@ -1048,27 +1065,27 @@ msgctxt "Term action"
1048
  msgid "Delete"
1049
  msgstr "刪除"
1050
 
1051
- #: yit-plugin.php:84
1052
  msgctxt "Plugin Row Meta"
1053
  msgid "Live Demo"
1054
  msgstr "即時演示"
1055
 
1056
- #: yit-plugin.php:88
1057
  msgctxt "Plugin Row Meta"
1058
  msgid "Documentation"
1059
  msgstr "說明文件"
1060
 
1061
- #: yit-plugin.php:92
1062
  msgctxt "Plugin Row Meta"
1063
  msgid "Support"
1064
  msgstr "支援"
1065
 
1066
- #: yit-plugin.php:96
1067
  msgctxt "Plugin Row Meta"
1068
  msgid "Premium version"
1069
  msgstr "高級版本"
1070
 
1071
- #: yit-plugin.php:228
1072
  msgctxt "Action links"
1073
  msgid "Settings"
1074
  msgstr "設定"
4
  msgstr ""
5
  "Project-Id-Version: YITH Framework\n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "PO-Revision-Date: 2022-06-29 13:12:18+0000\n"
9
  "Language: zh\n"
10
  "MIME-Version: 1.0\n"
13
  "Plural-Forms: nplurals=1; plural=0;\n"
14
  "X-Generator: GlotPress/3.0.0-alpha.2\n"
15
 
16
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
17
  msgid "Confirm trash"
18
  msgstr "確認丟棄"
19
 
20
+ #: includes/class-yit-assets.php:147
21
  msgid "Are you sure you want to trash the selected items?"
22
  msgstr "你確定要將所選的項目移至垃圾桶嗎?"
23
 
24
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
25
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
26
  #: yit-functions.php:2008 yit-functions.php:2026
27
  msgid "No"
28
  msgstr "不"
29
 
30
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
31
  #: yit-functions.php:2152
32
  msgid "Confirm delete"
33
  msgstr "確認刪除"
34
 
35
+ #: includes/class-yit-assets.php:151
36
  msgid "Are you sure you want to delete the selected items?"
37
  msgstr "你確定要刪除所選的項目嗎?"
38
 
39
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
40
  #: yit-functions.php:2100
41
  msgid ""
42
  "This action cannot be undone and you will not be able to recover this data."
43
  msgstr "此操作無法撤消,您將無法恢復此數據。"
44
 
45
+ #: includes/class-yit-assets.php:172
46
  msgid "Clear"
47
  msgstr "清除"
48
 
49
+ #: includes/class-yit-assets.php:173
50
  msgid "Clear color"
51
  msgstr "清除顏色"
52
 
53
+ #: includes/class-yit-assets.php:174
54
  msgid "Default"
55
  msgstr "預設"
56
 
57
+ #: includes/class-yit-assets.php:175
58
  msgid "Select default color"
59
  msgstr "選擇預設顏色"
60
 
61
+ #: includes/class-yit-assets.php:176
62
  msgid "Select Color"
63
  msgstr "選擇顏色"
64
 
65
+ #: includes/class-yit-assets.php:177
66
  msgid "Color value"
67
  msgstr "顏色數值"
68
 
110
  msgid "Reset to default"
111
  msgstr "重置為預設值"
112
 
113
+ #: includes/class-yit-plugin-panel.php:1074
114
  msgid ""
115
  "The element you have entered already exists. Please, enter another name."
116
  msgstr "你輸入的這個元素已經存在,請輸入另一個名稱"
117
 
118
+ #: includes/class-yit-plugin-panel.php:1075
119
  msgid "Settings saved"
120
  msgstr "設定已經儲存"
121
 
122
+ #: includes/class-yit-plugin-panel.php:1076
123
  msgid "Settings reset"
124
  msgstr "重置設定"
125
 
126
+ #: includes/class-yit-plugin-panel.php:1077
127
  msgid "Element deleted correctly."
128
  msgstr "元素已被確實刪除"
129
 
130
+ #: includes/class-yit-plugin-panel.php:1078
131
+ #: includes/class-yit-plugin-panel.php:1079
132
  msgid "Element updated correctly."
133
  msgstr "元素已正確更新。"
134
 
135
+ #: includes/class-yit-plugin-panel.php:1080
136
  msgid "Database imported correctly."
137
  msgstr "資料庫已被正確匯入"
138
 
139
+ #: includes/class-yit-plugin-panel.php:1081
140
  msgid "An error has occurred during import. Please try again."
141
  msgstr "匯入過程中發生一個錯誤,請再試一次"
142
 
143
+ #: includes/class-yit-plugin-panel.php:1082
144
  msgid "The added file is not valid."
145
  msgstr "添加的檔案無效"
146
 
147
+ #: includes/class-yit-plugin-panel.php:1083
148
  msgid "Sorry, import is disabled."
149
  msgstr "抱歉,匯入功能被關閉"
150
 
151
+ #: includes/class-yit-plugin-panel.php:1084
152
  msgid "Sorting successful."
153
  msgstr "已順利排序"
154
 
155
+ #: includes/class-yit-plugin-panel.php:1573
156
  msgid "We need your support"
157
  msgstr "我們需要你的支援"
158
 
159
+ #: includes/class-yit-plugin-panel.php:1574
160
  msgid "to keep updating and improving the plugin. Please,"
161
  msgstr "請不斷保持更新與改進外掛"
162
 
163
+ #: includes/class-yit-plugin-panel.php:1576
164
  msgid "help us by leaving a good review"
165
  msgstr "留下好的評論幫助我們更進步"
166
 
167
+ #: includes/class-yit-plugin-panel.php:1577
168
  msgid ":) Thanks!"
169
  msgstr ":) 謝謝!"
170
 
202
  "WooCommerce Wishlist、YITH WooCommerce Ajax 搜尋等)將從之前的位置移動到 "
203
  "YITH 選單。"
204
 
205
+ #: includes/class-yith-bh-onboarding.php:85
206
+ msgid "It is not possible save the options"
207
+ msgstr ""
208
+
209
  #: includes/class-yith-dashboard.php:35
210
  msgid "YITH Latest Updates"
211
  msgstr "YITH 最新更新"
396
  "由於您的網站和我們的伺服器之間的連接問題,系統檢查無法確定安裝了哪個 %1$s 版"
397
  "本。"
398
 
399
+ #: templates/bh-onboarding/onboarding-tabs.php:63
400
+ msgid "Save"
401
+ msgstr ""
402
+
403
  #: templates/fields/ajax-customers.php:41
404
  msgid "Search for a customer..."
405
  msgstr "搜尋顧客..."
675
  msgid "Further actions"
676
  msgstr "進一步動作"
677
 
678
+ #: yit-plugin.php:233
679
  msgid "License"
680
  msgstr "授權"
681
 
682
  #. translators: 1. Plugin(s) name(s).
683
+ #: yit-plugin.php:272
684
  msgid ""
685
  "%s was deactivated as you're running an higher tier version of the same "
686
  "plugin."
704
  msgid "YITH"
705
  msgstr "YITH"
706
 
707
+ #: includes/class-yit-assets.php:134
708
  msgctxt "Button text"
709
  msgid "Confirm"
710
  msgstr "確認"
711
 
712
+ #: includes/class-yit-assets.php:135
713
  msgctxt "Button text"
714
  msgid "Cancel"
715
  msgstr "取消"
716
 
717
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
718
  msgctxt "Trash confirmation action"
719
  msgid "Yes, move to trash"
720
  msgstr "是的,將它移至垃圾桶"
721
 
722
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
723
  #: yit-functions.php:2154
724
  msgctxt "Delete confirmation action"
725
  msgid "Yes, delete"
944
  msgstr "閱讀說明文件"
945
 
946
  #: templates/panel/help-tab.php:220
947
+ #, fuzzy
948
  msgctxt "Help tab documentation"
949
+ msgid "to learn how it works from the basics."
950
+ msgstr "了解外掛的基礎工作原理"
951
 
952
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
953
  #, fuzzy
962
 
963
  #: templates/panel/help-tab.php:238
964
  msgctxt "Help tab support"
965
+ msgid ""
966
+ "Call or chat 24/7 with our support agents, or let our experts build your "
967
+ "site."
968
  msgstr ""
969
 
970
  #: templates/panel/help-tab.php:241
989
  msgstr "高級版外掛特色圖片"
990
 
991
  #. translators: alt attribute of main image tag.
992
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
993
  msgctxt "Premium Tab"
994
  msgid "And so much more!"
995
  msgstr "還有更多!"
996
 
997
  #: templates/panel/premium-tab.php:53
998
+ #, fuzzy
999
+ msgctxt "Premium Tab"
1000
+ msgid "Check the premium features >"
1001
+ msgstr "查看免費板與高級版的特色比較"
1002
+
1003
+ #: templates/panel/premium-tab.php:60
1004
  msgctxt "Premium Tab"
1005
  msgid "Check the free vs premium features >"
1006
  msgstr "查看免費板與高級版的特色比較"
1007
 
1008
+ #: templates/panel/premium-tab.php:65
1009
  msgctxt "Premium Tab"
1010
  msgid "Get the premium version"
1011
  msgstr "取得高級版本"
1065
  msgid "Delete"
1066
  msgstr "刪除"
1067
 
1068
+ #: yit-plugin.php:85
1069
  msgctxt "Plugin Row Meta"
1070
  msgid "Live Demo"
1071
  msgstr "即時演示"
1072
 
1073
+ #: yit-plugin.php:89
1074
  msgctxt "Plugin Row Meta"
1075
  msgid "Documentation"
1076
  msgstr "說明文件"
1077
 
1078
+ #: yit-plugin.php:93
1079
  msgctxt "Plugin Row Meta"
1080
  msgid "Support"
1081
  msgstr "支援"
1082
 
1083
+ #: yit-plugin.php:97
1084
  msgctxt "Plugin Row Meta"
1085
  msgid "Premium version"
1086
  msgstr "高級版本"
1087
 
1088
+ #: yit-plugin.php:229
1089
  msgctxt "Action links"
1090
  msgid "Settings"
1091
  msgstr "設定"
plugin-fw/languages/yith-plugin-fw.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2022-07-18 06:07:56+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -24,55 +24,55 @@ msgstr ""
24
  "X-Textdomain-Support: yes\n"
25
  "X-Generator: grunt-wp-i18n 1.0.3\n"
26
 
27
- #: includes/class-yit-assets.php:144 yit-functions.php:2006
28
  msgid "Confirm trash"
29
  msgstr ""
30
 
31
- #: includes/class-yit-assets.php:145
32
  msgid "Are you sure you want to trash the selected items?"
33
  msgstr ""
34
 
35
- #: includes/class-yit-assets.php:147 includes/class-yit-assets.php:151
36
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
37
  #: yit-functions.php:2008 yit-functions.php:2026
38
  msgid "No"
39
  msgstr ""
40
 
41
- #: includes/class-yit-assets.php:148 yit-functions.php:2024
42
  #: yit-functions.php:2152
43
  msgid "Confirm delete"
44
  msgstr ""
45
 
46
- #: includes/class-yit-assets.php:149
47
  msgid "Are you sure you want to delete the selected items?"
48
  msgstr ""
49
 
50
- #: includes/class-yit-assets.php:149 yit-functions.php:1940
51
  #: yit-functions.php:2100
52
  msgid "This action cannot be undone and you will not be able to recover this data."
53
  msgstr ""
54
 
55
- #: includes/class-yit-assets.php:162
56
  msgid "Clear"
57
  msgstr ""
58
 
59
- #: includes/class-yit-assets.php:163
60
  msgid "Clear color"
61
  msgstr ""
62
 
63
- #: includes/class-yit-assets.php:164
64
  msgid "Default"
65
  msgstr ""
66
 
67
- #: includes/class-yit-assets.php:165
68
  msgid "Select default color"
69
  msgstr ""
70
 
71
- #: includes/class-yit-assets.php:166
72
  msgid "Select Color"
73
  msgstr ""
74
 
75
- #: includes/class-yit-assets.php:167
76
  msgid "Color value"
77
  msgstr ""
78
 
@@ -119,60 +119,60 @@ msgstr ""
119
  msgid "Reset to default"
120
  msgstr ""
121
 
122
- #: includes/class-yit-plugin-panel.php:1072
123
  msgid "The element you have entered already exists. Please, enter another name."
124
  msgstr ""
125
 
126
- #: includes/class-yit-plugin-panel.php:1073
127
  msgid "Settings saved"
128
  msgstr ""
129
 
130
- #: includes/class-yit-plugin-panel.php:1074
131
  msgid "Settings reset"
132
  msgstr ""
133
 
134
- #: includes/class-yit-plugin-panel.php:1075
135
  msgid "Element deleted correctly."
136
  msgstr ""
137
 
138
- #: includes/class-yit-plugin-panel.php:1076
139
- #: includes/class-yit-plugin-panel.php:1077
140
  msgid "Element updated correctly."
141
  msgstr ""
142
 
143
- #: includes/class-yit-plugin-panel.php:1078
144
  msgid "Database imported correctly."
145
  msgstr ""
146
 
147
- #: includes/class-yit-plugin-panel.php:1079
148
  msgid "An error has occurred during import. Please try again."
149
  msgstr ""
150
 
151
- #: includes/class-yit-plugin-panel.php:1080
152
  msgid "The added file is not valid."
153
  msgstr ""
154
 
155
- #: includes/class-yit-plugin-panel.php:1081
156
  msgid "Sorry, import is disabled."
157
  msgstr ""
158
 
159
- #: includes/class-yit-plugin-panel.php:1082
160
  msgid "Sorting successful."
161
  msgstr ""
162
 
163
- #: includes/class-yit-plugin-panel.php:1571
164
  msgid "We need your support"
165
  msgstr ""
166
 
167
- #: includes/class-yit-plugin-panel.php:1572
168
  msgid "to keep updating and improving the plugin. Please,"
169
  msgstr ""
170
 
171
- #: includes/class-yit-plugin-panel.php:1574
172
  msgid "help us by leaving a good review"
173
  msgstr ""
174
 
175
- #: includes/class-yit-plugin-panel.php:1575
176
  msgid ":) Thanks!"
177
  msgstr ""
178
 
@@ -204,6 +204,10 @@ msgid ""
204
  "from previous location to YITH menu."
205
  msgstr ""
206
 
 
 
 
 
207
  #: includes/class-yith-dashboard.php:35
208
  msgid "YITH Latest Updates"
209
  msgstr ""
@@ -389,6 +393,10 @@ msgid ""
389
  "connection issue between your site and our server."
390
  msgstr ""
391
 
 
 
 
 
392
  #: templates/fields/ajax-customers.php:41
393
  msgid "Search for a customer..."
394
  msgstr ""
@@ -663,11 +671,11 @@ msgstr ""
663
  msgid "Further actions"
664
  msgstr ""
665
 
666
- #: yit-plugin.php:232
667
  msgid "License"
668
  msgstr ""
669
 
670
- #: yit-plugin.php:271
671
  #. translators: 1. Plugin(s) name(s).
672
  msgid ""
673
  "%s was deactivated as you're running an higher tier version of the same "
@@ -693,22 +701,22 @@ msgctxt "[gutenberg]: Category Name"
693
  msgid "YITH"
694
  msgstr ""
695
 
696
- #: includes/class-yit-assets.php:132
697
  msgctxt "Button text"
698
  msgid "Confirm"
699
  msgstr ""
700
 
701
- #: includes/class-yit-assets.php:133
702
  msgctxt "Button text"
703
  msgid "Cancel"
704
  msgstr ""
705
 
706
- #: includes/class-yit-assets.php:146 yit-functions.php:2009
707
  msgctxt "Trash confirmation action"
708
  msgid "Yes, move to trash"
709
  msgstr ""
710
 
711
- #: includes/class-yit-assets.php:150 yit-functions.php:2027
712
  #: yit-functions.php:2154
713
  msgctxt "Delete confirmation action"
714
  msgid "Yes, delete"
@@ -925,7 +933,7 @@ msgstr ""
925
 
926
  #: templates/panel/help-tab.php:220
927
  msgctxt "Help tab documentation"
928
- msgid "to learn from basics how it works"
929
  msgstr ""
930
 
931
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
@@ -940,7 +948,9 @@ msgstr ""
940
 
941
  #: templates/panel/help-tab.php:238
942
  msgctxt "Help tab support"
943
- msgid "Call or chat 24/7 for support or let our expert to make your site"
 
 
944
  msgstr ""
945
 
946
  #: templates/panel/help-tab.php:241
@@ -963,7 +973,7 @@ msgctxt "Premium Tab"
963
  msgid "Plugin premium features images"
964
  msgstr ""
965
 
966
- #: templates/panel/premium-tab.php:51
967
  #. translators: alt attribute of main image tag.
968
  msgctxt "Premium Tab"
969
  msgid "And so much more!"
@@ -971,10 +981,15 @@ msgstr ""
971
 
972
  #: templates/panel/premium-tab.php:53
973
  msgctxt "Premium Tab"
 
 
 
 
 
974
  msgid "Check the free vs premium features >"
975
  msgstr ""
976
 
977
- #: templates/panel/premium-tab.php:58
978
  msgctxt "Premium Tab"
979
  msgid "Get the premium version"
980
  msgstr ""
@@ -1034,27 +1049,27 @@ msgctxt "Term action"
1034
  msgid "Delete"
1035
  msgstr ""
1036
 
1037
- #: yit-plugin.php:84
1038
  msgctxt "Plugin Row Meta"
1039
  msgid "Live Demo"
1040
  msgstr ""
1041
 
1042
- #: yit-plugin.php:88
1043
  msgctxt "Plugin Row Meta"
1044
  msgid "Documentation"
1045
  msgstr ""
1046
 
1047
- #: yit-plugin.php:92
1048
  msgctxt "Plugin Row Meta"
1049
  msgid "Support"
1050
  msgstr ""
1051
 
1052
- #: yit-plugin.php:96
1053
  msgctxt "Plugin Row Meta"
1054
  msgid "Premium version"
1055
  msgstr ""
1056
 
1057
- #: yit-plugin.php:228
1058
  msgctxt "Action links"
1059
  msgid "Settings"
1060
  msgstr ""
4
  msgstr ""
5
  "Project-Id-Version: \n"
6
  "Report-Msgid-Bugs-To: YITH <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2022-08-02 12:02:23+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
24
  "X-Textdomain-Support: yes\n"
25
  "X-Generator: grunt-wp-i18n 1.0.3\n"
26
 
27
+ #: includes/class-yit-assets.php:146 yit-functions.php:2006
28
  msgid "Confirm trash"
29
  msgstr ""
30
 
31
+ #: includes/class-yit-assets.php:147
32
  msgid "Are you sure you want to trash the selected items?"
33
  msgstr ""
34
 
35
+ #: includes/class-yit-assets.php:149 includes/class-yit-assets.php:153
36
  #: templates/sysinfo/tabs/main.php:42 templates/sysinfo/tabs/main.php:50
37
  #: yit-functions.php:2008 yit-functions.php:2026
38
  msgid "No"
39
  msgstr ""
40
 
41
+ #: includes/class-yit-assets.php:150 yit-functions.php:2024
42
  #: yit-functions.php:2152
43
  msgid "Confirm delete"
44
  msgstr ""
45
 
46
+ #: includes/class-yit-assets.php:151
47
  msgid "Are you sure you want to delete the selected items?"
48
  msgstr ""
49
 
50
+ #: includes/class-yit-assets.php:151 yit-functions.php:1940
51
  #: yit-functions.php:2100
52
  msgid "This action cannot be undone and you will not be able to recover this data."
53
  msgstr ""
54
 
55
+ #: includes/class-yit-assets.php:172
56
  msgid "Clear"
57
  msgstr ""
58
 
59
+ #: includes/class-yit-assets.php:173
60
  msgid "Clear color"
61
  msgstr ""
62
 
63
+ #: includes/class-yit-assets.php:174
64
  msgid "Default"
65
  msgstr ""
66
 
67
+ #: includes/class-yit-assets.php:175
68
  msgid "Select default color"
69
  msgstr ""
70
 
71
+ #: includes/class-yit-assets.php:176
72
  msgid "Select Color"
73
  msgstr ""
74
 
75
+ #: includes/class-yit-assets.php:177
76
  msgid "Color value"
77
  msgstr ""
78
 
119
  msgid "Reset to default"
120
  msgstr ""
121
 
122
+ #: includes/class-yit-plugin-panel.php:1074
123
  msgid "The element you have entered already exists. Please, enter another name."
124
  msgstr ""
125
 
126
+ #: includes/class-yit-plugin-panel.php:1075
127
  msgid "Settings saved"
128
  msgstr ""
129
 
130
+ #: includes/class-yit-plugin-panel.php:1076
131
  msgid "Settings reset"
132
  msgstr ""
133
 
134
+ #: includes/class-yit-plugin-panel.php:1077
135
  msgid "Element deleted correctly."
136
  msgstr ""
137
 
138
+ #: includes/class-yit-plugin-panel.php:1078
139
+ #: includes/class-yit-plugin-panel.php:1079
140
  msgid "Element updated correctly."
141
  msgstr ""
142
 
143
+ #: includes/class-yit-plugin-panel.php:1080
144
  msgid "Database imported correctly."
145
  msgstr ""
146
 
147
+ #: includes/class-yit-plugin-panel.php:1081
148
  msgid "An error has occurred during import. Please try again."
149
  msgstr ""
150
 
151
+ #: includes/class-yit-plugin-panel.php:1082
152
  msgid "The added file is not valid."
153
  msgstr ""
154
 
155
+ #: includes/class-yit-plugin-panel.php:1083
156
  msgid "Sorry, import is disabled."
157
  msgstr ""
158
 
159
+ #: includes/class-yit-plugin-panel.php:1084
160
  msgid "Sorting successful."
161
  msgstr ""
162
 
163
+ #: includes/class-yit-plugin-panel.php:1573
164
  msgid "We need your support"
165
  msgstr ""
166
 
167
+ #: includes/class-yit-plugin-panel.php:1574
168
  msgid "to keep updating and improving the plugin. Please,"
169
  msgstr ""
170
 
171
+ #: includes/class-yit-plugin-panel.php:1576
172
  msgid "help us by leaving a good review"
173
  msgstr ""
174
 
175
+ #: includes/class-yit-plugin-panel.php:1577
176
  msgid ":) Thanks!"
177
  msgstr ""
178
 
204
  "from previous location to YITH menu."
205
  msgstr ""
206
 
207
+ #: includes/class-yith-bh-onboarding.php:85
208
+ msgid "It is not possible save the options"
209
+ msgstr ""
210
+
211
  #: includes/class-yith-dashboard.php:35
212
  msgid "YITH Latest Updates"
213
  msgstr ""
393
  "connection issue between your site and our server."
394
  msgstr ""
395
 
396
+ #: templates/bh-onboarding/onboarding-tabs.php:63
397
+ msgid "Save"
398
+ msgstr ""
399
+
400
  #: templates/fields/ajax-customers.php:41
401
  msgid "Search for a customer..."
402
  msgstr ""
671
  msgid "Further actions"
672
  msgstr ""
673
 
674
+ #: yit-plugin.php:233
675
  msgid "License"
676
  msgstr ""
677
 
678
+ #: yit-plugin.php:272
679
  #. translators: 1. Plugin(s) name(s).
680
  msgid ""
681
  "%s was deactivated as you're running an higher tier version of the same "
701
  msgid "YITH"
702
  msgstr ""
703
 
704
+ #: includes/class-yit-assets.php:134
705
  msgctxt "Button text"
706
  msgid "Confirm"
707
  msgstr ""
708
 
709
+ #: includes/class-yit-assets.php:135
710
  msgctxt "Button text"
711
  msgid "Cancel"
712
  msgstr ""
713
 
714
+ #: includes/class-yit-assets.php:148 yit-functions.php:2009
715
  msgctxt "Trash confirmation action"
716
  msgid "Yes, move to trash"
717
  msgstr ""
718
 
719
+ #: includes/class-yit-assets.php:152 yit-functions.php:2027
720
  #: yit-functions.php:2154
721
  msgctxt "Delete confirmation action"
722
  msgid "Yes, delete"
933
 
934
  #: templates/panel/help-tab.php:220
935
  msgctxt "Help tab documentation"
936
+ msgid "to learn how it works from the basics."
937
  msgstr ""
938
 
939
  #: templates/panel/help-tab.php:231 templates/panel/help-tab.php:233
948
 
949
  #: templates/panel/help-tab.php:238
950
  msgctxt "Help tab support"
951
+ msgid ""
952
+ "Call or chat 24/7 with our support agents, or let our experts build your "
953
+ "site."
954
  msgstr ""
955
 
956
  #: templates/panel/help-tab.php:241
973
  msgid "Plugin premium features images"
974
  msgstr ""
975
 
976
+ #: templates/panel/premium-tab.php:51 templates/panel/premium-tab.php:58
977
  #. translators: alt attribute of main image tag.
978
  msgctxt "Premium Tab"
979
  msgid "And so much more!"
981
 
982
  #: templates/panel/premium-tab.php:53
983
  msgctxt "Premium Tab"
984
+ msgid "Check the premium features >"
985
+ msgstr ""
986
+
987
+ #: templates/panel/premium-tab.php:60
988
+ msgctxt "Premium Tab"
989
  msgid "Check the free vs premium features >"
990
  msgstr ""
991
 
992
+ #: templates/panel/premium-tab.php:65
993
  msgctxt "Premium Tab"
994
  msgid "Get the premium version"
995
  msgstr ""
1049
  msgid "Delete"
1050
  msgstr ""
1051
 
1052
+ #: yit-plugin.php:85
1053
  msgctxt "Plugin Row Meta"
1054
  msgid "Live Demo"
1055
  msgstr ""
1056
 
1057
+ #: yit-plugin.php:89
1058
  msgctxt "Plugin Row Meta"
1059
  msgid "Documentation"
1060
  msgstr ""
1061
 
1062
+ #: yit-plugin.php:93
1063
  msgctxt "Plugin Row Meta"
1064
  msgid "Support"
1065
  msgstr ""
1066
 
1067
+ #: yit-plugin.php:97
1068
  msgctxt "Plugin Row Meta"
1069
  msgid "Premium version"
1070
  msgstr ""
1071
 
1072
+ #: yit-plugin.php:229
1073
  msgctxt "Action links"
1074
  msgid "Settings"
1075
  msgstr ""
plugin-fw/templates/bh-onboarding/onboarding-tabs.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * The Template for displaying the BH Onboarding tabs.
4
+ *
5
+ * @var array $options The premium tab options array.
6
+ *
7
+ * @package YITH\PluginFramework\Templates
8
+ * @author Emanuela Castorina <emanuela.castorina@yithemes.com>
9
+ * @since 3.9.11
10
+ */
11
+
12
+ defined( 'ABSPATH' ) || exit; // Exit if accessed directly.
13
+ $tabs = $options['tabs'];
14
+ ?>
15
+ <div class="woocommerce yith-plugin-fw-panel" id="yith-bh-onboarding">
16
+ <header>
17
+ <div class="yith-bh-onboarding-logo">
18
+ <?php if ( isset( $options['logo'] ) ) : ?>
19
+ <div class="logo">
20
+ <img src="<?php echo esc_url( $options['logo'] ); ?>" width="150"/>
21
+ </div>
22
+ <?php endif; ?>
23
+ <?php if ( isset( $options['claim'] ) ) : ?>
24
+ <div class="claim"><?php echo esc_html( $options['claim'] ); ?></div>
25
+ <?php endif; ?>
26
+ </div>
27
+ <div class="yith-bh-onboarding-plugin-description">
28
+ <?php if ( isset( $options['plugin-description'] ) ) : ?>
29
+ <div class="plugin-description"><?php echo wp_kses_post( $options['plugin-description'] ); ?></div>
30
+ <?php endif; ?>
31
+ </div>
32
+ </header>
33
+ <div class="yith-bh-onboarding-tabs yith-plugin-ui">
34
+ <ul class="yith-bh-onboarding-tabs__nav">
35
+ <?php
36
+ $c = 0;
37
+ foreach ( $tabs as $key => $tab ) :
38
+ ?>
39
+ <li class="yith-bh-onboarding-tabs__nav__link <?php echo ! ( $c ++ ) ? 'selected' : ''; ?>" data-tab="<?php esc_attr_e( $key ); ?>"><?php echo esc_html( $tab['title'] ); ?></li>
40
+ <?php
41
+ endforeach;
42
+ ?>
43
+ </ul>
44
+ <div class="yith-bh-onboarding-tabs__content yith-plugin-fw yit-admin-panel-container">
45
+ <?php foreach ( $tabs as $key => $tab ) : ?>
46
+ <?php if ( isset( $tab['options'] ) ) : ?>
47
+ <div class="yith-bh-onboarding-tabs__tab" id="<?php echo esc_attr( $key ); ?>">
48
+ <p class="yith-bh-onboarding-tab-description"><?php echo wp_kses_post( $tab['description'] ); ?></p>
49
+ <form class="yith-bh-onboarding-tabs__form" id="plugin-fw-wc">
50
+ <table class="form-table">
51
+ <?php
52
+ foreach ( $tab['options'] as $name => $option ) {
53
+ YIT_Plugin_Panel_WooCommerce::add_yith_field( $option );
54
+ }
55
+ ?>
56
+ </table>
57
+ <?php if ( isset( $tab['show_save_button'] ) && $tab['show_save_button'] ) : ?>
58
+ <input type="hidden" name="yith-plugin" value="<?php echo esc_attr( $options['slug'] ); ?>">
59
+ <input type="hidden" name="action" value="yith_bh_onboarding">
60
+ <input type="hidden" name="tab" value="<?php echo esc_attr( $key ); ?>">
61
+ <?php wp_nonce_field( 'yith-bh-onboarding-save-options' ); ?>
62
+ <div class="submit-area">
63
+ <button id="yith-bh-save-button" class="button button-primary"><?php echo esc_html__( 'Save', 'yith-plugin-fw' ); ?></button>
64
+ </div>
65
+ <?php endif; ?>
66
+ </form>
67
+ </div>
68
+ <?php
69
+ endif;
70
+ endforeach;
71
+
72
+ ?>
73
+ </div>
74
+
75
+ </div>
plugin-fw/tests/bootstrap.php ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2
+ /**
3
+ * PHPUnit bootstrap file.
4
+ *
5
+ * @package YITH Plugin Framework
6
+ */
7
+
8
+ /**
9
+ * YITH_Plugin_FW_Unit_Tests_Bootstrap class
10
+ */
11
+ class YITH_Plugin_FW_Unit_Tests_Bootstrap {
12
+ /**
13
+ * Instance of the class
14
+ *
15
+ * @var YITH_Plugin_FW_Unit_Tests_Bootstrap
16
+ */
17
+ protected static $instance = null;
18
+
19
+ /**
20
+ * Directory where wordpress-tests-lib is installed.
21
+ *
22
+ * @var string
23
+ */
24
+ public $wp_tests_dir;
25
+
26
+ /**
27
+ * Testing directory
28
+ *
29
+ * @var string
30
+ */
31
+ public $tests_dir;
32
+
33
+ /**
34
+ * The plugin directory.
35
+ *
36
+ * @var string
37
+ */
38
+ public $plugin_dir;
39
+
40
+ /**
41
+ * WooCommerce directory.
42
+ *
43
+ * @var string
44
+ */
45
+ public $woocommerce_dir;
46
+
47
+ /**
48
+ * Singleton implementation
49
+ *
50
+ * @return YITH_Plugin_FW_Unit_Tests_Bootstrap
51
+ */
52
+ public static function instance() {
53
+ return ! is_null( self::$instance ) ? self::$instance : self::$instance = new self();
54
+ }
55
+
56
+ /**
57
+ * Setup the unit testing environment.
58
+ */
59
+ protected function __construct() {
60
+
61
+ ini_set( 'display_errors', 'on' );
62
+ error_reporting( E_ALL );
63
+
64
+ // Ensure server variable is set for WP email functions.
65
+ if ( ! isset( $_SERVER['SERVER_NAME'] ) ) {
66
+ $_SERVER['SERVER_NAME'] = 'localhost';
67
+ }
68
+
69
+ $this->tests_dir = dirname( __FILE__ );
70
+ $this->plugin_dir = dirname( $this->tests_dir, 2 );
71
+ $this->woocommerce_dir = dirname( $this->plugin_dir ) . '/woocommerce';
72
+ $this->wp_tests_dir = getenv( 'WP_TESTS_DIR' ) ? getenv( 'WP_TESTS_DIR' ) : ( rtrim( sys_get_temp_dir(), '/\\' ) . '/wordpress-tests-lib' );
73
+
74
+ define( 'YITH_PLUGIN_FRAMEWORK_TESTS_DIR', $this->tests_dir );
75
+
76
+ if ( ! file_exists( $this->wp_tests_dir . '/includes/functions.php' ) ) {
77
+ $this->message( "Could not find {$this->wp_tests_dir}/includes/functions.php, have you run [npm run env:install] ?" );
78
+ exit( 1 );
79
+ }
80
+
81
+ require_once $this->wp_tests_dir . '/includes/functions.php';
82
+
83
+ // load plugins.
84
+ tests_add_filter( 'muplugins_loaded', array( $this, 'load_plugins' ) );
85
+ tests_add_filter( 'setup_theme', array( $this, 'install_wc' ) );
86
+ tests_add_filter( 'setup_theme', array( $this, 'show_info' ), 20 );
87
+
88
+ // load the WP testing environment.
89
+ require_once $this->wp_tests_dir . '/includes/bootstrap.php';
90
+
91
+ // load testing framework.
92
+ $this->includes();
93
+ }
94
+
95
+ /**
96
+ * Load plugins
97
+ *
98
+ * @return void
99
+ */
100
+ public function load_plugins() {
101
+ require_once $this->woocommerce_dir . '/woocommerce.php';
102
+ require_once $this->plugin_dir . '/yith-plugin-fw-loader.php';
103
+ }
104
+
105
+ /**
106
+ * Install WooCommerce
107
+ *
108
+ * @return void
109
+ */
110
+ public function install_wc() {
111
+ // Clean existing install first.
112
+ define( 'WP_UNINSTALL_PLUGIN', true );
113
+ define( 'WC_REMOVE_ALL_DATA', true );
114
+ include $this->woocommerce_dir . '/uninstall.php';
115
+
116
+ WC_Install::install();
117
+
118
+ // Reload capabilities after install, see https://core.trac.wordpress.org/ticket/28374.
119
+ if ( version_compare( $GLOBALS['wp_version'], '4.7', '<' ) ) {
120
+ $GLOBALS['wp_roles']->reinit();
121
+ } else {
122
+ $GLOBALS['wp_roles'] = null;
123
+ wp_roles();
124
+ }
125
+
126
+ $this->message( 'Installing WooCommerce...' );
127
+ }
128
+
129
+ /**
130
+ * Include files
131
+ *
132
+ * @return void
133
+ */
134
+ public function includes() {
135
+ $helpers_dir = YITH_PLUGIN_FRAMEWORK_TESTS_DIR . '/framework/helpers';
136
+
137
+ require_once $helpers_dir . '/class-yith-plugin-fw-panels-helper.php';
138
+ }
139
+
140
+ /**
141
+ * Print a message
142
+ *
143
+ * @param string $message The message to be shown.
144
+ * @return void
145
+ */
146
+ public function message( $message ) {
147
+ echo $message . PHP_EOL; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
148
+ }
149
+
150
+ /**
151
+ * Show installation information
152
+ *
153
+ * @return void
154
+ */
155
+ public function show_info() {
156
+ $this->message( '' );
157
+ $this->message( 'I N S T A L L A T I O N I N F O :' );
158
+ $this->message( '> WP Version: ' . get_bloginfo( 'version', 'display' ) );
159
+ $this->message( '> WC Version: ' . get_plugin_data( $this->woocommerce_dir . '/woocommerce.php' )['Version'] );
160
+ $this->message( '> Plugin Dir: ' . $this->plugin_dir );
161
+ $this->message( '> ABSPATH: ' . ( defined( 'ABSPATH' ) ? ABSPATH : 'not defined!' ) );
162
+ $this->message( '' );
163
+ }
164
+
165
+ }
166
+
167
+ YITH_Plugin_FW_Unit_Tests_Bootstrap::instance();
plugin-fw/tests/framework/fixtures/panel-all-options.php ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Options for YITH Plugin Panel WooCommerce
4
+ *
5
+ * @package YITH Plugin Framework
6
+ */
7
+
8
+ return array(
9
+ 'ajax-customers' => array(
10
+ 'type' => 'ajax-customers',
11
+ 'value' => 1,
12
+ 'php_unit_expected' => 1,
13
+ ),
14
+
15
+ 'ajax-customers-multiple' => array(
16
+ 'type' => 'ajax-customers',
17
+ 'multiple' => true,
18
+ 'value' => array( 1, 2, 3 ),
19
+ 'php_unit_expected' => array( 1, 2, 3 ),
20
+ ),
21
+
22
+ 'ajax-posts' => array(
23
+ 'type' => 'ajax-posts',
24
+ 'value' => 1,
25
+ 'php_unit_expected' => 1,
26
+ ),
27
+
28
+ 'ajax-posts-multiple' => array(
29
+ 'type' => 'ajax-posts',
30
+ 'multiple' => true,
31
+ 'value' => array( 1, 2, 3 ),
32
+ 'php_unit_expected' => array( 1, 2, 3 ),
33
+ ),
34
+
35
+ 'ajax-products' => array(
36
+ 'type' => 'ajax-products',
37
+ 'value' => 1,
38
+ 'php_unit_expected' => 1,
39
+ ),
40
+
41
+ 'ajax-products-multiple' => array(
42
+ 'type' => 'ajax-products',
43
+ 'multiple' => true,
44
+ 'value' => array( 1, 2, 3 ),
45
+ 'php_unit_expected' => array( 1, 2, 3 ),
46
+ ),
47
+
48
+ 'ajax-terms' => array(
49
+ 'type' => 'ajax-terms',
50
+ 'value' => 1,
51
+ 'php_unit_expected' => 1,
52
+ ),
53
+
54
+ 'ajax-terms-multiple' => array(
55
+ 'type' => 'ajax-terms',
56
+ 'multiple' => true,
57
+ 'value' => array( 1, 2, 3 ),
58
+ 'php_unit_expected' => array( 1, 2, 3 ),
59
+ ),
60
+
61
+ 'checkbox' => array(
62
+ 'type' => 'checkbox',
63
+ 'value' => 1,
64
+ 'php_unit_expected' => 'yes',
65
+ ),
66
+
67
+ 'checkbox-off' => array(
68
+ 'type' => 'checkbox',
69
+ 'value' => 0,
70
+ 'php_unit_expected' => 'no',
71
+ ),
72
+
73
+ 'checkbox-array' => array(
74
+ 'type' => 'checkbox-array',
75
+ 'value' => array( 'one', 'two', 'three' ),
76
+ 'php_unit_expected' => array( 'one', 'two', 'three' ),
77
+ ),
78
+
79
+ 'colorpicker' => array(
80
+ 'type' => 'colorpicker',
81
+ 'value' => '#123456',
82
+ 'php_unit_expected' => '#123456',
83
+ ),
84
+
85
+ 'country-select' => array(
86
+ 'type' => 'country-select',
87
+ 'value' => 'US:NY',
88
+ 'php_unit_expected' => 'US:NY',
89
+ ),
90
+
91
+ 'date-format' => array(
92
+ 'type' => 'date-format',
93
+ 'value' => 'Y-m-d',
94
+ 'php_unit_expected' => 'Y-m-d',
95
+ ),
96
+
97
+ 'datepicker' => array(
98
+ 'type' => 'datepicker',
99
+ 'value' => '2020-12-25',
100
+ 'php_unit_expected' => '2020-12-25',
101
+ ),
102
+
103
+ 'dimensions' => array(
104
+ 'type' => 'dimensions',
105
+ 'value' => array(
106
+ 'unit' => 'px',
107
+ 'dimensions' => array(
108
+ 'top' => 10,
109
+ 'right' => 20,
110
+ 'bottom' => 10,
111
+ 'left' => 20,
112
+ ),
113
+ 'linked' => 'yes',
114
+ ),
115
+ 'php_unit_expected' => array(
116
+ 'unit' => 'px',
117
+ 'dimensions' => array(
118
+ 'top' => 10,
119
+ 'right' => 20,
120
+ 'bottom' => 10,
121
+ 'left' => 20,
122
+ ),
123
+ 'linked' => 'yes',
124
+ ),
125
+ ),
126
+
127
+ 'hidden' => array(
128
+ 'type' => 'hidden',
129
+ 'value' => 'This is a dummy test!',
130
+ 'php_unit_expected' => 'This is a dummy test!',
131
+ ),
132
+
133
+ 'icons' => array(
134
+ 'type' => 'icons',
135
+ 'value' => 'FontAwesome:music',
136
+ 'php_unit_expected' => 'FontAwesome:music',
137
+ ),
138
+
139
+ 'image-gallery' => array(
140
+ 'type' => 'image-gallery',
141
+ 'value' => '1,2,3',
142
+ 'php_unit_expected' => '1,2,3',
143
+ ),
144
+
145
+ 'multi-colorpicker' => array(
146
+ 'type' => 'multi-colorpicker',
147
+ 'value' => array( '#ffffff', '#000000' ),
148
+ 'php_unit_expected' => array( '#ffffff', '#000000' ),
149
+ ),
150
+
151
+ 'multi-select' => array(
152
+ 'type' => 'multi-select',
153
+ 'value' => array( 'one', 'two' ),
154
+ 'php_unit_expected' => array( 'one', 'two' ),
155
+ ),
156
+
157
+ 'number' => array(
158
+ 'type' => 'number',
159
+ 'value' => 10,
160
+ 'php_unit_expected' => 10,
161
+ ),
162
+
163
+ 'onoff' => array(
164
+ 'type' => 'onoff',
165
+ 'value' => 1,
166
+ 'php_unit_expected' => 'yes',
167
+ ),
168
+
169
+ 'onoff-off' => array(
170
+ 'type' => 'onoff',
171
+ 'value' => 0,
172
+ 'php_unit_expected' => 'no',
173
+ ),
174
+
175
+ 'password' => array(
176
+ 'type' => 'password',
177
+ 'value' => 'password',
178
+ 'php_unit_expected' => 'password',
179
+ ),
180
+
181
+ 'radio' => array(
182
+ 'type' => 'radio',
183
+ 'value' => 'one',
184
+ 'php_unit_expected' => 'one',
185
+ ),
186
+
187
+ 'select' => array(
188
+ 'type' => 'select',
189
+ 'value' => 'one',
190
+ 'php_unit_expected' => 'one',
191
+ ),
192
+
193
+ 'select-images' => array(
194
+ 'type' => 'select-images',
195
+ 'value' => 'one',
196
+ 'php_unit_expected' => 'one',
197
+ ),
198
+
199
+ 'slider' => array(
200
+ 'type' => 'slider',
201
+ 'value' => 50,
202
+ 'php_unit_expected' => 50,
203
+ ),
204
+
205
+ 'text' => array(
206
+ 'type' => 'text',
207
+ 'value' => 'This is a dummy test!',
208
+ 'php_unit_expected' => 'This is a dummy test!',
209
+ ),
210
+
211
+ 'text-array' => array(
212
+ 'type' => 'text-array',
213
+ 'value' => array('one', 'two', "Let's testing quotes and double quotes \""),
214
+ 'php_unit_expected' => array('one', 'two', "Let's testing quotes and double quotes \""),
215
+ ),
216
+
217
+ 'textarea' => array(
218
+ 'type' => 'textarea',
219
+ 'value' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
220
+ 'php_unit_expected' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
221
+ ),
222
+
223
+ 'textarea-codemirror' => array(
224
+ 'type' => 'textarea-codemirror',
225
+ 'value' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
226
+ 'php_unit_expected' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
227
+ ),
228
+
229
+ 'textarea-editor' => array(
230
+ 'type' => 'textarea-editor',
231
+ 'value' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
232
+ 'php_unit_expected' => "Let's testing quotes, double quotes \" and <h1>HTML tags</h1>",
233
+ ),
234
+
235
+ 'upload' => array(
236
+ 'type' => 'upload',
237
+ 'value' => 'http://example.com/image.jpg',
238
+ 'php_unit_expected' => 'http://example.com/image.jpg',
239
+ ),
240
+ );
plugin-fw/tests/framework/helpers/class-yith-plugin-fw-panels-helper.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Panels Helper
4
+ *
5
+ * @package YITH Plugin Framework
6
+ */
7
+
8
+ /**
9
+ * Plugin Panels Helper class.
10
+ */
11
+ class YITH_Plugin_FW_Panels_Helper {
12
+
13
+ /**
14
+ * The WooCommerce Panel page.
15
+ *
16
+ * @var string
17
+ */
18
+ public static $wc_panel_page = 'yith_plugin_fw_test_wc_panel';
19
+
20
+ /**
21
+ * Create WC Panel
22
+ *
23
+ * @return YIT_Plugin_Panel_WooCommerce
24
+ */
25
+ public static function create_wc_panel() {
26
+
27
+ $admin_tabs = array(
28
+ 'wc-panel' => 'WooCommerce Panel',
29
+ );
30
+
31
+ $args = array(
32
+ 'create_menu_page' => true,
33
+ 'parent_slug' => '',
34
+ 'page_title' => 'WooCommerce Panel',
35
+ 'menu_title' => 'WooCommerce Panel',
36
+ 'capability' => 'manage_options',
37
+ 'parent' => '',
38
+ 'parent_page' => 'yit_plugin_panel',
39
+ 'page' => self::$wc_panel_page,
40
+ 'admin-tabs' => $admin_tabs,
41
+ 'options-path' => YITH_PLUGIN_FRAMEWORK_TESTS_DIR . '/framework/plugin-options',
42
+ );
43
+
44
+ return new YIT_Plugin_Panel_WooCommerce( $args );
45
+ }
46
+
47
+ public static function init_vars_wc_panel_options_for_saving( $panel, $tab, $subtab = '' ) {
48
+
49
+ set_current_screen( 'yith-plugins_page_' . $panel->settings['page'] );
50
+ $_POST = array();
51
+ $_GET = array();
52
+
53
+ $_GET['page'] = $panel->settings['page'];
54
+ $_GET['tab'] = $tab;
55
+ $_GET['sub_tab'] = $subtab;
56
+ $_POST['yit_panel_wc_options_nonce'] = wp_create_nonce( 'yit_panel_wc_options_' . $panel->settings['page'] );
57
+
58
+ $prefix = $tab . '-';
59
+
60
+ $options = self::get_fixture( 'all-options' );
61
+ $new_options = array();
62
+
63
+ foreach ( $options as $key => $option ) {
64
+ $prefixed_key = $prefix . $key;
65
+ $value = $option['value'];
66
+ $_POST[ $prefixed_key ] = $value;
67
+
68
+ $new_options[ $prefixed_key ] = $option;
69
+ }
70
+
71
+ return $new_options;
72
+ }
73
+
74
+ /**
75
+ * Get a fixture
76
+ *
77
+ * @param string $fixture The fixture.
78
+ * @return array
79
+ */
80
+ public static function get_fixture( $fixture ) {
81
+ return include YITH_PLUGIN_FRAMEWORK_TESTS_DIR . '/framework/fixtures/panel-' . $fixture . '.php';
82
+ }
83
+ }
plugin-fw/tests/framework/plugin-options/wc-panel-options.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php // phpcs:disable WordPress.WP.GlobalVariablesOverride.Prohibited
2
+ /**
3
+ * Options for YITH Plugin Panel WooCommerce
4
+ *
5
+ * @package YITH Plugin Framework
6
+ */
7
+
8
+ $prefix = str_replace( '-options.php', '', basename( __FILE__ ) ) . '-';
9
+ $options = YITH_Plugin_FW_Panels_Helper::get_fixture( 'all-options' );
10
+ $fields = array();
11
+
12
+ $fields[ $prefix . 'general-options' ] = array(
13
+ 'title' => 'General',
14
+ 'type' => 'title',
15
+ 'id' => 'general-options',
16
+ );
17
+
18
+ foreach ( $options as $key => $values ) {
19
+ $type = $values['type'];
20
+ $prefixed_key = $prefix . $key;
21
+
22
+ $id_title = array(
23
+ 'id' => $prefixed_key,
24
+ 'title' => $prefixed_key,
25
+ );
26
+
27
+ $fields[ $prefixed_key ] = wp_parse_args( $values, $id_title );
28
+ $fields[ $prefixed_key ]['type'] = 'yith-field';
29
+ $fields[ $prefixed_key ]['yith-type'] = $type;
30
+ if ( isset( $fields[ $prefixed_key ]['value'] ) ) {
31
+ unset( $fields[ $prefixed_key ]['value'] );
32
+ }
33
+ }
34
+
35
+
36
+ $fields[ $prefix . 'general-options-end' ] = array(
37
+ 'type' => 'sectionend',
38
+ 'id' => 'general-options',
39
+ );
40
+
41
+ return array(
42
+ 'wc-panel' => $fields,
43
+ );
plugin-fw/tests/unit-tests/class-yith-plugin-fw-tests-plugin-panel-wc.php ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Test class for Plugin Panel WooCommerce
4
+ *
5
+ * @package YITH Plugin Framework
6
+ */
7
+
8
+ /**
9
+ * Class YITH_Plugin_FW_Tests_Plugin_Panel_WC
10
+ */
11
+ class YITH_Plugin_FW_Tests_Plugin_Panel_WC extends WP_UnitTestCase {
12
+
13
+ /**
14
+ * The panel.
15
+ *
16
+ * @var YIT_Plugin_Panel_WooCommerce
17
+ */
18
+ protected $panel;
19
+
20
+ /**
21
+ * Set Up
22
+ *
23
+ * @return void
24
+ */
25
+ public function setUp() {
26
+ $this->panel = YITH_Plugin_FW_Panels_Helper::create_wc_panel();
27
+
28
+ // Include admin functions to use woocommerce_update_options().
29
+ include_once WC_ABSPATH . '/includes/admin/wc-admin-functions.php';
30
+ }
31
+
32
+ /**
33
+ * Test simple tab with options.
34
+ */
35
+ public function test_simple_tab() {
36
+ $options = YITH_Plugin_FW_Panels_Helper::init_vars_wc_panel_options_for_saving( $this->panel, 'wc-panel' );
37
+
38
+ $this->panel->woocommerce_update_options();
39
+
40
+ foreach ( $options as $key => $option ) {
41
+ $value = get_option( $key );
42
+ $expected = $option['php_unit_expected'];
43
+ $message = sprintf( 'Test for %s [type: %s]', $key, $option['type'] );
44
+
45
+ $this->assertEquals( $expected, $value, $message );
46
+ }
47
+
48
+ }
49
+ }
plugin-fw/tools/local-env/docker/phpunit/Dockerfile ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM phpunit/phpunit:latest
2
+
3
+ RUN apk update && \
4
+ apk add --no-cache sqlite bash mariadb-client php7-mysqli subversion wget
5
+
6
+ RUN apk upgrade subversion
7
+
8
+ ENTRYPOINT []
9
+
10
+ WORKDIR /var/www/html/wp-content/plugins/yith-plugin-fw-loader/plugin-fw
11
+
12
+ CMD /bin/true
plugin-fw/tools/local-env/install-wp-tests.sh ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+
3
+ if [ $# -lt 3 ]; then
4
+ echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version] [skip-database-creation]"
5
+ exit 1
6
+ fi
7
+
8
+
9
+ echo "INSTALLING...";
10
+ DB_NAME=$1
11
+ DB_USER=$2
12
+ DB_PASS=$3
13
+ DB_HOST=${4-localhost}
14
+ WP_VERSION=${5-latest}
15
+ SKIP_DB_CREATE=${6-false}
16
+
17
+ TMPDIR=${TMPDIR-/tmp}
18
+ TMPDIR=$(echo $TMPDIR | sed -e "s/\/$//")
19
+ WP_TESTS_DIR=${WP_TESTS_DIR-$TMPDIR/wordpress-tests-lib}
20
+ WP_CORE_DIR=${WP_CORE_DIR-$TMPDIR/wordpress/}
21
+
22
+ download() {
23
+ if [ `which curl` ]; then
24
+ curl -s "$1" > "$2";
25
+ elif [ `which wget` ]; then
26
+ wget -nv -O "$2" "$1"
27
+ fi
28
+ }
29
+
30
+ if [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+$ ]]; then
31
+ WP_TESTS_TAG="branches/$WP_VERSION"
32
+ elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then
33
+ if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
34
+ # version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
35
+ WP_TESTS_TAG="tags/${WP_VERSION%??}"
36
+ else
37
+ WP_TESTS_TAG="tags/$WP_VERSION"
38
+ fi
39
+ elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
40
+ WP_TESTS_TAG="trunk"
41
+ else
42
+ # http serves a single offer, whereas https serves multiple. we only want one
43
+ download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json
44
+ grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json
45
+ LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//')
46
+ if [[ -z "$LATEST_VERSION" ]]; then
47
+ echo "Latest WordPress version could not be found"
48
+ exit 1
49
+ fi
50
+ WP_TESTS_TAG="tags/$LATEST_VERSION"
51
+ fi
52
+
53
+ set -ex
54
+
55
+ install_wp() {
56
+
57
+ if [ -d $WP_CORE_DIR ]; then
58
+ return;
59
+ fi
60
+
61
+ mkdir -p $WP_CORE_DIR
62
+
63
+ if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
64
+ mkdir -p $TMPDIR/wordpress-nightly
65
+ download https://wordpress.org/nightly-builds/wordpress-latest.zip $TMPDIR/wordpress-nightly/wordpress-nightly.zip
66
+ unzip -q $TMPDIR/wordpress-nightly/wordpress-nightly.zip -d $TMPDIR/wordpress-nightly/
67
+ mv $TMPDIR/wordpress-nightly/wordpress/* $WP_CORE_DIR
68
+ else
69
+ if [ $WP_VERSION == 'latest' ]; then
70
+ local ARCHIVE_NAME='latest'
71
+ elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+ ]]; then
72
+ # https serves multiple offers, whereas http serves single.
73
+ download https://api.wordpress.org/core/version-check/1.7/ $TMPDIR/wp-latest.json
74
+ if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
75
+ # version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
76
+ LATEST_VERSION=${WP_VERSION%??}
77
+ else
78
+ # otherwise, scan the releases and get the most up to date minor version of the major release
79
+ local VERSION_ESCAPED=`echo $WP_VERSION | sed 's/\./\\\\./g'`
80
+ LATEST_VERSION=$(grep -o '"version":"'$VERSION_ESCAPED'[^"]*' $TMPDIR/wp-latest.json | sed 's/"version":"//' | head -1)
81
+ fi
82
+ if [[ -z "$LATEST_VERSION" ]]; then
83
+ local ARCHIVE_NAME="wordpress-$WP_VERSION"
84
+ else
85
+ local ARCHIVE_NAME="wordpress-$LATEST_VERSION"
86
+ fi
87
+ else
88
+ local ARCHIVE_NAME="wordpress-$WP_VERSION"
89
+ fi
90
+ download https://wordpress.org/${ARCHIVE_NAME}.tar.gz $TMPDIR/wordpress.tar.gz
91
+ tar --strip-components=1 -zxmf $TMPDIR/wordpress.tar.gz -C $WP_CORE_DIR
92
+ fi
93
+
94
+ download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php
95
+ }
96
+
97
+ install_test_suite() {
98
+ # portable in-place argument for both GNU sed and Mac OSX sed
99
+ if [[ $(uname -s) == 'Darwin' ]]; then
100
+ local ioption='-i .bak'
101
+ else
102
+ local ioption='-i'
103
+ fi
104
+
105
+ # set up testing suite if it doesn't yet exist
106
+ if [ ! -d $WP_TESTS_DIR ]; then
107
+ # set up testing suite
108
+ mkdir -p $WP_TESTS_DIR
109
+ svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes
110
+ svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/data/ $WP_TESTS_DIR/data
111
+ fi
112
+
113
+ if [ ! -f wp-tests-config.php ]; then
114
+ download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
115
+ # remove all forward slashes in the end
116
+ WP_CORE_DIR=$(echo $WP_CORE_DIR | sed "s:/\+$::")
117
+ sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR/':" "$WP_TESTS_DIR"/wp-tests-config.php
118
+ sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php
119
+ sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php
120
+ sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php
121
+ sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php
122
+ fi
123
+
124
+ }
125
+
126
+ install_db() {
127
+
128
+ if [ ${SKIP_DB_CREATE} = "true" ]; then
129
+ return 0
130
+ fi
131
+
132
+ # parse DB_HOST for port or socket references
133
+ local PARTS=(${DB_HOST//\:/ })
134
+ local DB_HOSTNAME=${PARTS[0]};
135
+ local DB_SOCK_OR_PORT=${PARTS[1]};
136
+ local EXTRA=""
137
+
138
+ if ! [ -z $DB_HOSTNAME ] ; then
139
+ if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then
140
+ EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
141
+ elif ! [ -z $DB_SOCK_OR_PORT ] ; then
142
+ EXTRA=" --socket=$DB_SOCK_OR_PORT"
143
+ elif ! [ -z $DB_HOSTNAME ] ; then
144
+ EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
145
+ fi
146
+ fi
147
+
148
+ # create database
149
+ mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA;
150
+ }
151
+
152
+ install_wp
153
+ install_test_suite
154
+ install_db
plugin-fw/tools/local-env/mysql-init.sql ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /**
2
+ * MySQL server init.
3
+ *
4
+ * SQL queries in this file will be executed the first time the MySQL server is started.
5
+ */
6
+
7
+ CREATE DATABASE IF NOT EXISTS yith_plugin_fw_tests;
plugin-fw/tools/local-env/phpunit-config.ini ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ upload_max_filesize = 1G
2
+ post_max_size = 1G
3
+
4
+ opcache.enable = 1
5
+ opcache.enable_cli = 1
6
+ opache.file_cache = /tmp/php-opcache
plugin-fw/tools/local-env/scripts/docker.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ const dotenv = require( 'dotenv' );
2
+ const { execSync } = require( 'child_process' );
3
+ dotenv.config();
4
+
5
+ // Execute any docker-compose command passed to this script.
6
+ execSync( 'docker-compose ' + process.argv.slice( 2 ).join( ' ' ), { stdio: 'inherit' } );
plugin-fw/tools/local-env/scripts/install.js ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const dotenv = require( 'dotenv' );
2
+ const { execSync } = require( 'child_process' );
3
+
4
+ dotenv.config();
5
+
6
+ phpunitExec('/var/www/html/install-wp-tests.sh yith_plugin_fw_tests root password mysql latest true');
7
+
8
+ /**
9
+ * Runs commands in the Docker PHPUnit environment.
10
+ *
11
+ * @param {string} cmd The command to run.
12
+ */
13
+ function phpunitExec( cmd ) {
14
+ execSync( `docker-compose run --rm phpunit ${cmd}`, { stdio: 'inherit' } );
15
+ }
plugin-fw/tools/local-env/scripts/start.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ const dotenv = require( 'dotenv' );
2
+ const { execSync } = require( 'child_process' );
3
+
4
+ dotenv.config();
5
+
6
+ // Start the local-env containers.
7
+ execSync( 'docker-compose up -d', { stdio: 'inherit' } );
plugin-fw/tools/local-env/yith-plugin-fw-loader.php ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Plugin Name: YITH Plugin Framework Loader
4
+ * Plugin URI:
5
+ * Description: YITH Plugin Framework Loader
6
+ * Version: 1.0.0
7
+ * Author: YITH
8
+ * Author URI: http://yithemes.com/
9
+ * Text Domain: yith-plugin-framework-loader
10
+ * Domain Path: /languages/
11
+ *
12
+ * @author YITH
13
+ * @package YITH Plugin Framework Loader
14
+ * @version 1.0.0
15
+ */
16
+
17
+ if ( ! defined( 'ABSPATH' ) ) {
18
+ exit;
19
+ } // Exit if accessed directly
20
+
21
+ if ( ! function_exists( 'yith_plugin_registration_hook' ) ) {
22
+ require_once 'plugin-fw/yit-plugin-registration-hook.php';
23
+ }
24
+ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
25
+
26
+
27
+ add_action( 'plugins_loaded', 'yith_plugin_fw_loader_load_plugin_fw', 15 );
28
+
29
+ /**
30
+ * Plugin Framework Loader.
31
+ *
32
+ * @return void
33
+ */
34
+ function yith_plugin_fw_loader_load_plugin_fw() {
35
+
36
+ if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
37
+ global $plugin_fw_data;
38
+ if ( ! empty( $plugin_fw_data ) ) {
39
+ $plugin_fw_file = array_shift( $plugin_fw_data );
40
+ require_once $plugin_fw_file;
41
+ }
42
+ }
43
+
44
+ }
45
+
46
+ /* Plugin Framework Version Check */
47
+ if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) && file_exists( plugin_dir_path( __FILE__ ) . 'plugin-fw/init.php' ) ) {
48
+ require_once plugin_dir_path( __FILE__ ) . 'plugin-fw/init.php';
49
+ }
50
+ yit_maybe_plugin_fw_loader( plugin_dir_path( __FILE__ ) );
plugin-fw/yit-plugin.php CHANGED
@@ -37,6 +37,7 @@ require_once 'includes/privacy/class-yith-privacy.php';
37
  require_once 'includes/privacy/class-yith-privacy-plugin-abstract.php';
38
  require_once 'includes/class-yith-system-status.php';
39
  require_once 'includes/class-yith-post-type-admin.php';
 
40
 
41
  // Gutenberg Support.
42
  if ( class_exists( 'WP_Block_Type_Registry' ) ) {
37
  require_once 'includes/privacy/class-yith-privacy-plugin-abstract.php';
38
  require_once 'includes/class-yith-system-status.php';
39
  require_once 'includes/class-yith-post-type-admin.php';
40
+ require_once 'includes/class-yith-bh-onboarding.php';
41
 
42
  // Gutenberg Support.
43
  if ( class_exists( 'WP_Block_Type_Registry' ) ) {
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: yithemes
4
  Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
  Requires at least: 5.8
6
  Tested up to: 6.0
7
- Stable tag: 1.22.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -138,6 +138,9 @@ If you have created your own language pack for YITH WooCommerce Ajax Search, or
138
  2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
 
140
  == Changelog ==
 
 
 
141
  = 1.22.0 - Released on 27 July 2022 =
142
  * New: support for WooCommerce 6.8
143
  * Update: YITH plugin framework
4
  Tags: woocommerce search by sku, woocommerce search results, woocommerce search shortcode, woocommerce search page, woocommerce search form, woocommerce search filter, woocommerce search products, woocommerce search content, woocommerce search autocomplete, woocommerce advanced search, woocommerce search category, woocommerce search product attributes, woocommerce search by tag, woocommerce search by brand, woocommerce predictive, woocommerce live search, woocommerce single product search, woocommerce site search, woocommerce search tex, tajax, search, woocommerce, products, themes, yit, e-commerce, shop, yith, ajax search, instant search, premium, yithemes, autocomplete, autosuggest, better search, category search, custom search, highlight terms, Live Search, Predictive Search, product search, relevant search, search highlight, search product, suggest, typeahead, WooCommerce Plugin, woocommerce product search, woocommerce search, wordpress ecommerce
5
  Requires at least: 5.8
6
  Tested up to: 6.0
7
+ Stable tag: 1.22.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
138
  2. YITH WooCommerce Ajax Search in operation displaying WooCommerce search results
139
 
140
  == Changelog ==
141
+ = 1.22.1 - Released on 4 August 2022 =
142
+ * Fix: Layout style
143
+
144
  = 1.22.0 - Released on 27 July 2022 =
145
  * New: support for WooCommerce 6.8
146
  * Update: YITH plugin framework