Ajax Search for WooCommerce - Version 1.9.0

Version Description

Download this release

Release Info

Developer damian-gora
Plugin Icon 128x128 Ajax Search for WooCommerce
Version 1.9.0
Comparing to
See all releases

Code changes from version 1.8.2 to 1.9.0

Files changed (83) hide show
  1. ajax-search-for-woocommerce.php +34 -74
  2. assets/css/admin-style.css +66 -14
  3. assets/img/admin-icon.png +0 -0
  4. assets/img/admin-icon.svg +0 -19
  5. assets/img/close.png +0 -0
  6. assets/img/logo-128.png +0 -0
  7. assets/img/logo-30.png +0 -0
  8. assets/img/logo-for-review.jpg +0 -0
  9. assets/img/logo-for-review.png +0 -0
  10. assets/img/logo-nobg-50.png +0 -0
  11. assets/img/preloader.png +0 -0
  12. assets/js/search.js +41 -2
  13. assets/js/search.min.js +1 -1
  14. fs/lib/assets/css/admin/common.css +1 -1
  15. fs/lib/assets/css/admin/connect.css +1 -1
  16. fs/lib/includes/class-freemius.php +79 -41
  17. fs/lib/includes/class-fs-logger.php +2 -2
  18. fs/lib/includes/entities/class-fs-site.php +17 -0
  19. fs/lib/includes/entities/class-fs-user.php +0 -17
  20. fs/lib/languages/freemius-cs_CZ.mo +0 -0
  21. fs/lib/languages/freemius-da_DK.mo +0 -0
  22. fs/lib/languages/freemius-en.mo +0 -0
  23. fs/lib/languages/freemius-es_ES.mo +0 -0
  24. fs/lib/languages/freemius-fr_FR.mo +0 -0
  25. fs/lib/languages/freemius-he_IL.mo +0 -0
  26. fs/lib/languages/freemius-hu_HU.mo +0 -0
  27. fs/lib/languages/freemius-it_IT.mo +0 -0
  28. fs/lib/languages/freemius-ja.mo +0 -0
  29. fs/lib/languages/freemius-nl_NL.mo +0 -0
  30. fs/lib/languages/freemius-ru_RU.mo +0 -0
  31. fs/lib/languages/freemius-ta.mo +0 -0
  32. fs/lib/languages/freemius-zh_CN.mo +0 -0
  33. fs/lib/languages/freemius.pot +345 -313
  34. fs/lib/start.php +3 -3
  35. fs/lib/templates/account.php +5 -3
  36. fs/lib/templates/connect.php +49 -37
  37. fs/lib/templates/forms/license-activation.php +3 -1
  38. includes/Abstracts/ThemeIntegration.php +2 -3
  39. includes/Admin/AdminMenu.php +4 -4
  40. includes/Admin/Promo/FeedbackNotice.php +2 -2
  41. includes/Admin/Promo/Upgrade.php +8 -11
  42. includes/Admin/RegenerateImages.php +4 -4
  43. includes/Admin/SettingsAPI.php +4 -2
  44. includes/Admin/Troubleshooting.php +29 -2
  45. includes/EmbeddingViaMenu.php +6 -6
  46. includes/Engines/WordPressNative/Search.php +4 -0
  47. includes/Integrations/Plugins/FacetWP/FacetWP.php +1 -1
  48. includes/Integrations/Plugins/WooCommerce/WooCommerce.php +109 -0
  49. includes/Integrations/Plugins/WooCommerceAJAXFilters/WooCommerceAJAXFilters.php +52 -0
  50. includes/Integrations/Plugins/WooCommercePrivateStore/WooCommercePrivateStore.php +91 -0
  51. includes/Integrations/Plugins/XforWooCommerceFilter/XforWooCommerceFilter.php +3 -0
  52. includes/Integrations/Themes/Avada/Avada.php +5 -3
  53. includes/Integrations/Themes/BlockShop/BlockShop.php +2 -3
  54. includes/Integrations/Themes/Bridge/Bridge.php +2 -3
  55. includes/Integrations/Themes/DFDRonneby/DFDRonneby.php +5 -3
  56. includes/Integrations/Themes/Divi/Divi.php +2 -3
  57. includes/Integrations/Themes/Ekommart/Ekommart.php +2 -3
  58. includes/Integrations/Themes/Enfold/Enfold.php +2 -3
  59. includes/Integrations/Themes/Flatsome/Flatsome.php +2 -3
  60. includes/Integrations/Themes/Impreza/Impreza.php +1 -1
  61. includes/Integrations/Themes/Restoration/Restoration.php +3 -4
  62. includes/Integrations/Themes/Savoy/Savoy.php +2 -3
  63. includes/Integrations/Themes/ShopIsle/ShopIsle.php +2 -3
  64. includes/Integrations/Themes/Shopical/Shopical.php +2 -3
  65. includes/Integrations/Themes/Shopkeeper/Shopkeeper.php +2 -3
  66. includes/Integrations/Themes/Sober/Sober.php +2 -3
  67. includes/Integrations/Themes/Storefront/Storefront.php +2 -3
  68. includes/Integrations/Themes/The7/The7.php +2 -3
  69. includes/Integrations/Themes/TheGem/TheGem.php +1 -2
  70. includes/Integrations/Themes/Woodmart/Woodmart.php +3 -4
  71. includes/Multilingual.php +27 -7
  72. includes/Product.php +597 -548
  73. includes/Settings.php +38 -13
  74. includes/Shortcode.php +3 -3
  75. languages/ajax-search-for-woocommerce.pot +1105 -908
  76. partials/admin/embedding-in-theme.php +1 -1
  77. partials/admin/features.php +3 -3
  78. partials/admin/how-to-use.php +5 -5
  79. partials/admin/search-preview.php +1 -1
  80. partials/admin/settings.php +12 -11
  81. partials/search-form.php +3 -2
  82. readme.txt +65 -50
  83. widget.php +1 -1
ajax-search-for-woocommerce.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
 
3
  /**
4
- * Plugin Name: AJAX Search for WooCommerce
5
- * Plugin URI: https://ajaxsearch.pro?utm_source=wp-admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc
6
  * Description: The most popular WooCommerce product search. Gives your users a well-designed advanced AJAX search bar with live search suggestions.
7
- * Version: 1.8.2
8
  * Author: Damian Góra
9
- * Author URI: https://ajaxsearch.pro?utm_source=wp-admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc
10
  * Text Domain: ajax-search-for-woocommerce
11
  * Domain Path: /languages
12
  * WC requires at least: 3.3
13
- * WC tested up to: 5.0
14
  *
15
  */
16
  // Exit if accessed directly
@@ -67,6 +67,7 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
67
  $setup->init();
68
  self::$instance->settings = new \DgoraWcas\Settings();
69
  self::$instance->hooks();
 
70
  self::$instance->multilingual = new \DgoraWcas\Multilingual();
71
  self::$instance->nativeSearch = new \DgoraWcas\Engines\WordPressNative\Search();
72
  // @TODO Temporary always use native WordPress DetailsBox engine.
@@ -77,7 +78,6 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
77
  $embeddingViaMenu = new \DgoraWcas\EmbeddingViaMenu();
78
  $embeddingViaMenu->init();
79
  self::$instance->themeCompatibility = new \DgoraWcas\Integrations\Themes\ThemesCompatibility();
80
- new \DgoraWcas\Integrations\Plugins\PluginsCompatibility();
81
  self::$instance->brands = new \DgoraWcas\Integrations\Brands();
82
  self::$instance->brands->init();
83
  \DgoraWcas\Shortcode::register();
@@ -125,19 +125,15 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
125
  */
126
  private function checkRequirements()
127
  {
128
- if ( version_compare( PHP_VERSION, '5.5.0' ) < 0 ) {
129
-
130
- if ( version_compare( PHP_VERSION, '5.3.0' ) < 0 ) {
131
- add_action( 'admin_notices', array( $this, 'adminNoticeReqPhp53' ) );
132
- return false;
133
- } else {
134
- add_action( 'admin_notices', array( $this, 'adminNoticeReqPhp55' ) );
135
- }
136
 
 
 
 
137
  }
138
 
 
139
  if ( !class_exists( 'WooCommerce' ) || !class_exists( 'WC_AJAX' ) ) {
140
- add_action( 'admin_notices', array( $this, 'admin_notice_no_woocommerce' ) );
141
  return false;
142
  }
143
 
@@ -145,63 +141,26 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
145
  }
146
 
147
  /**
148
- * Notice: PHP version less than 5.3
149
- * @return void
150
- */
151
- public function adminNoticeReqPhp53()
152
- {
153
- ?>
154
- <div class="notice notice-error dgwt-wcas-notice">
155
- <p>
156
- <?php
157
- _e( '<b>AJAX Search for WooCommerce</b>: You need PHP version at least 5.3 to run this plugin. You are currently using PHP version ', 'ajax-search-for-woocommerce' );
158
- echo PHP_VERSION . '.' ;
159
- ?>
160
- </p>
161
- </div>
162
- <?php
163
- }
164
-
165
- /**
166
- * Notice: PHP version less than 5.5
167
  *
168
  * @return void
169
  */
170
- public function adminNoticeReqPhp55()
171
  {
172
  if ( defined( 'DISABLE_NAG_NOTICES' ) && DISABLE_NAG_NOTICES ) {
173
  return;
174
  }
175
- $screen = get_current_screen();
176
- if ( empty($screen->id) || $screen->id !== 'dashboard' && $screen->id !== 'plugins' ) {
177
- return;
178
- }
179
- if ( !empty($_GET['dgwt-wcas-php55-notice']) && $_GET['dgwt-wcas-php55-notice'] === 'dismiss' ) {
180
- set_transient( 'dgwt-wcas-php55-notice-dismiss', '1', 60 * 60 * 24 * 7 );
181
- }
182
-
183
- if ( !get_transient( 'dgwt-wcas-php55-notice-dismiss' ) ) {
184
- ?>
185
- <div class="notice notice-error dgwt-wcas-notice">
186
- <p>
187
- <?php
188
- printf( __( "<b>AJAX Search for WooCommerce</b>:<br /> Your PHP version <b><i>%s</i></b> will not longer supported in the next plugin releases.", 'ajax-search-for-woocommerce' ), PHP_VERSION );
189
- _e( ' You have to update your PHP version to least 5.5 (recommended 7.2 or greater).', 'ajax-search-for-woocommerce' );
190
- echo '<br />' ;
191
- _e( "If you cannot upgrade your PHP version yourself, you can send an email to your host.", 'ajax-search-for-woocommerce' );
192
- echo '<br /><br />' ;
193
- echo '<span style="font-weight:bold; color: #dc3232">' . __( 'If you do not upgrade the php version, the next plugin release will not work!', 'ajax-search-for-woocommerce' ) . '</span>' ;
194
- echo '<br />' ;
195
- echo '<br />' ;
196
- echo '<a href="' . esc_url( add_query_arg( array(
197
- 'dgwt-wcas-php55-notice' => 'dismiss',
198
- ), $_SERVER['REQUEST_URI'] ) ) . '">' . __( 'Remind me again in week.', 'ajax-search-for-woocommerce' ) . '</a>' ;
199
- ?>
200
- </p>
201
- </div>
202
- <?php
203
- }
204
-
205
  }
206
 
207
  /**
@@ -209,17 +168,17 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
209
  *
210
  * @return void
211
  */
212
- public function admin_notice_no_woocommerce()
213
  {
214
  ?>
215
- <div class="notice notice-error dgwt-wcas-notice">
216
- <p>
217
- <?php
218
- printf( __( '<b>AJAX Search for WooCommerce</b> is enabled but not effective. It requires %s in order to work.', 'ajax-search-for-woocommerce' ), '<a href="https://pl.wordpress.org/plugins/woocommerce/" target="_blank">WooCommerce</a>' );
219
  ?>
220
- </p>
221
- </div>
222
- <?php
223
  }
224
 
225
  /**
@@ -232,8 +191,9 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
232
  $v = get_file_data( __FILE__, array(
233
  'Version' => 'Version',
234
  ), 'plugin' );
 
 
235
  $this->define( 'DGWT_WCAS_VERSION', $v['Version'] );
236
- $this->define( 'DGWT_WCAS_NAME', 'AJAX Search for WooCommerce' );
237
  $this->define( 'DGWT_WCAS_FILE', __FILE__ );
238
  $this->define( 'DGWT_WCAS_DIR', plugin_dir_path( __FILE__ ) );
239
  $this->define( 'DGWT_WCAS_URL', plugin_dir_url( __FILE__ ) );
1
  <?php
2
 
3
  /**
4
+ * Plugin Name: FiboSearch - AJAX Search for WooCommerce
5
+ * Plugin URI: https://fibosearch.com?utm_source=wp-admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc
6
  * Description: The most popular WooCommerce product search. Gives your users a well-designed advanced AJAX search bar with live search suggestions.
7
+ * Version: 1.9.0
8
  * Author: Damian Góra
9
+ * Author URI: https://fibosearch.com?utm_source=wp-admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc
10
  * Text Domain: ajax-search-for-woocommerce
11
  * Domain Path: /languages
12
  * WC requires at least: 3.3
13
+ * WC tested up to: 5.1
14
  *
15
  */
16
  // Exit if accessed directly
67
  $setup->init();
68
  self::$instance->settings = new \DgoraWcas\Settings();
69
  self::$instance->hooks();
70
+ new \DgoraWcas\Integrations\Plugins\PluginsCompatibility();
71
  self::$instance->multilingual = new \DgoraWcas\Multilingual();
72
  self::$instance->nativeSearch = new \DgoraWcas\Engines\WordPressNative\Search();
73
  // @TODO Temporary always use native WordPress DetailsBox engine.
78
  $embeddingViaMenu = new \DgoraWcas\EmbeddingViaMenu();
79
  $embeddingViaMenu->init();
80
  self::$instance->themeCompatibility = new \DgoraWcas\Integrations\Themes\ThemesCompatibility();
 
81
  self::$instance->brands = new \DgoraWcas\Integrations\Brands();
82
  self::$instance->brands->init();
83
  \DgoraWcas\Shortcode::register();
125
  */
126
  private function checkRequirements()
127
  {
 
 
 
 
 
 
 
 
128
 
129
+ if ( version_compare( PHP_VERSION, '7.0' ) < 0 ) {
130
+ add_action( 'admin_notices', array( $this, 'adminNoticeReqPhp70' ) );
131
+ return false;
132
  }
133
 
134
+
135
  if ( !class_exists( 'WooCommerce' ) || !class_exists( 'WC_AJAX' ) ) {
136
+ add_action( 'admin_notices', array( $this, 'adminNoticeNoWoocommerce' ) );
137
  return false;
138
  }
139
 
141
  }
142
 
143
  /**
144
+ * Notice: Minimum required PHP version is 7.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  *
146
  * @return void
147
  */
148
+ public function adminNoticeReqPhp70()
149
  {
150
  if ( defined( 'DISABLE_NAG_NOTICES' ) && DISABLE_NAG_NOTICES ) {
151
  return;
152
  }
153
+ ?>
154
+ <div class="notice notice-error dgwt-wcas-notice">
155
+ <p>
156
+ <?php
157
+ printf( __( '%: You need PHP version at least 7.0 to run this plugin. You are currently using PHP version ', 'ajax-search-for-woocommerce' ), '<b>' . DGWT_WCAS_FULL_NAME . '</b>' );
158
+ echo PHP_VERSION . '.' ;
159
+ ?>
160
+ </p>
161
+ </div>
162
+ <?php
163
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  }
165
 
166
  /**
168
  *
169
  * @return void
170
  */
171
+ public function adminNoticeNoWoocommerce()
172
  {
173
  ?>
174
+ <div class="notice notice-error dgwt-wcas-notice">
175
+ <p>
176
+ <?php
177
+ printf( __( '%s is enabled but not effective. It requires %s in order to work.', 'ajax-search-for-woocommerce' ), '<b>' . DGWT_WCAS_FULL_NAME . '</b>', '<a href="https://wordpress.org/plugins/woocommerce/" target="_blank">WooCommerce</a>' );
178
  ?>
179
+ </p>
180
+ </div>
181
+ <?php
182
  }
183
 
184
  /**
191
  $v = get_file_data( __FILE__, array(
192
  'Version' => 'Version',
193
  ), 'plugin' );
194
+ $this->define( 'DGWT_WCAS_NAME', 'FiboSearch' );
195
+ $this->define( 'DGWT_WCAS_FULL_NAME', 'FiboSearch - AJAX Search for WooCommerce' );
196
  $this->define( 'DGWT_WCAS_VERSION', $v['Version'] );
 
197
  $this->define( 'DGWT_WCAS_FILE', __FILE__ );
198
  $this->define( 'DGWT_WCAS_DIR', plugin_dir_path( __FILE__ ) );
199
  $this->define( 'DGWT_WCAS_URL', plugin_dir_url( __FILE__ ) );
assets/css/admin-style.css CHANGED
@@ -153,13 +153,13 @@
153
  }
154
 
155
  .dgwt-wcas-settings__advanced {
156
- display: flex;
157
- flex-direction: row;
158
- align-items: center;
159
- margin-left: 20px;
160
- margin-top: 2px;
161
- cursor: pointer;
162
- transition: 0.2s;
163
  }
164
 
165
  .dgwt-wcas-settings__logo {
@@ -169,8 +169,58 @@
169
  }
170
 
171
  .dgwt-wcas-settings__title {
172
- line-height: 50px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
 
175
  .dgwt-wcas-opt-highlight:not(.dgwt-wcas-sgs-header) th label {
176
  box-shadow: 0 0 25px 5px rgb(255, 243, 205);
@@ -200,8 +250,8 @@
200
  .dgwt-wcas-settings .woocommerce-input-toggle {
201
  height: 12px;
202
  width: 24px;
203
- border: 2px solid #935687;
204
- background-color: #935687;
205
  display: inline-block;
206
  text-indent: -9999px;
207
  border-radius: 10em;
@@ -592,10 +642,12 @@
592
  }
593
 
594
  .dgwt-wcas-review-notice .dgwt-wcas-review-notice-logo {
595
- background: url('../img/logo-for-review.jpg') no-repeat;
596
  background-size: 68px;
597
  float: left;
598
  margin-top: 5px;
 
 
599
  font-size: 14px;
600
  height: 80px;
601
  text-align: center;
@@ -732,10 +784,10 @@
732
  .dgwt-wcas-pro-header__subtitle--text {
733
  position: absolute;
734
  left: 1px;
735
- top: 12px;
736
  font-size: 10px;
737
- letter-spacing: 2px;
738
- color: rgba(0, 0, 0, 0.4);
739
  }
740
 
741
  .dgwt-wcas-toggler, .dgwt-wcas-toggle {
153
  }
154
 
155
  .dgwt-wcas-settings__advanced {
156
+ display: flex;
157
+ flex-direction: row;
158
+ align-items: center;
159
+ margin-left: 40px;
160
+ margin-top: 6px;
161
+ cursor: pointer;
162
+ transition: 0.2s;
163
  }
164
 
165
  .dgwt-wcas-settings__logo {
169
  }
170
 
171
  .dgwt-wcas-settings__title {
172
+ line-height: 50px;
173
+ border-right: 1px solid #eaeaea;
174
+ padding-right: 45px;
175
+ }
176
+ .dgwt-wcas-settings__title-top {
177
+ display: flex;
178
+ justify-content: flex-start;
179
+ align-items: center;
180
+ }
181
+ .dgwt-wcas-settings-logo-wrapper{
182
+ display: flex;
183
+ align-items: center;
184
+ justify-content: flex-start;
185
+ position: relative;
186
+ }
187
+ .dgwt-wcas-settings-logo-pro {
188
+ display: none;
189
  }
190
+ .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo-pro {
191
+ display: block;
192
+ position: absolute;
193
+ right: 11px;
194
+ top: 1px;
195
+ color: #000;
196
+ text-transform: uppercase;
197
+ font-size: 10px;
198
+ font-weight: normal;
199
+ height: 17px;
200
+ line-height: 17px;
201
+ padding: 0px 5px;
202
+ }
203
+ .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo {
204
+ margin-right: 40px;
205
+ }
206
+
207
+ .dgwt-wcas-settings-logo {
208
+ max-height: 30px;
209
+ margin-right: 25px;
210
+ }
211
+
212
+ .dgwt-wcas-settings__title-core {
213
+ display: block;
214
+ line-height: 46px;
215
+ }
216
+
217
+ .dgwt-wcas-settings__title-sub {
218
+ font-size: 13px;
219
+ line-height: 13px;
220
+ display: block;
221
+ margin-top: -6px;
222
+ }
223
+
224
 
225
  .dgwt-wcas-opt-highlight:not(.dgwt-wcas-sgs-header) th label {
226
  box-shadow: 0 0 25px 5px rgb(255, 243, 205);
250
  .dgwt-wcas-settings .woocommerce-input-toggle {
251
  height: 12px;
252
  width: 24px;
253
+ border: 2px solid #7c3b7d;
254
+ background-color: #7c3b7d;
255
  display: inline-block;
256
  text-indent: -9999px;
257
  border-radius: 10em;
642
  }
643
 
644
  .dgwt-wcas-review-notice .dgwt-wcas-review-notice-logo {
645
+ background: url('../img/logo-for-review.png') no-repeat;
646
  background-size: 68px;
647
  float: left;
648
  margin-top: 5px;
649
+ margin-right: 15px;
650
+ margin-left: 12px;
651
  font-size: 14px;
652
  height: 80px;
653
  text-align: center;
784
  .dgwt-wcas-pro-header__subtitle--text {
785
  position: absolute;
786
  left: 1px;
787
+ top: 13px;
788
  font-size: 10px;
789
+ letter-spacing: 1px;
790
+ color: rgba(0, 0, 0, 0.6);
791
  }
792
 
793
  .dgwt-wcas-toggler, .dgwt-wcas-toggle {
assets/img/admin-icon.png DELETED
Binary file
assets/img/admin-icon.svg DELETED
@@ -1,19 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
- <svg
4
- version="1.1"
5
- class="dgwt-wcas-ico-magnifier"
6
- xmlns="http://www.w3.org/2000/svg"
7
- xmlns:xlink="http://www.w3.org/1999/xlink"
8
- x="0px"
9
- y="0px"
10
- fill="#FFFFFF"
11
- width="16px"
12
- height="16px"
13
- viewBox="0 0 51 51"
14
- xml:space="preserve">
15
-
16
- <path d="M51.539,49.356L37.247,35.065c3.273-3.74,5.272-8.623,5.272-13.983c0-11.742-9.518-21.26-21.26-21.26
17
- S0,9.339,0,21.082s9.518,21.26,21.26,21.26c5.361,0,10.244-1.999,13.983-5.272l14.292,14.292L51.539,49.356z M2.835,21.082
18
- c0-10.176,8.249-18.425,18.425-18.425s18.425,8.249,18.425,18.425S31.436,39.507,21.26,39.507S2.835,31.258,2.835,21.082z"/>
19
- </svg>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/img/close.png DELETED
Binary file
assets/img/logo-128.png CHANGED
Binary file
assets/img/logo-30.png ADDED
Binary file
assets/img/logo-for-review.jpg DELETED
Binary file
assets/img/logo-for-review.png ADDED
Binary file
assets/img/logo-nobg-50.png DELETED
Binary file
assets/img/preloader.png DELETED
Binary file
assets/js/search.js CHANGED
@@ -436,9 +436,13 @@
436
  });
437
 
438
  // Position preloader
439
- $(window).on('load', function () {
440
  that.positionPreloader();
441
- });
 
 
 
 
442
 
443
 
444
  that.el.on('keydown.autocomplete', function (e) {
@@ -2662,6 +2666,41 @@
2662
 
2663
  });
2664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2665
 
2666
  /*-----------------------------------------------------------------
2667
  /* Fix broken search bars by 3rd party plugins
436
  });
437
 
438
  // Position preloader
439
+ if (document.readyState === 'complete') {
440
  that.positionPreloader();
441
+ } else {
442
+ $(window).on('load', function () {
443
+ that.positionPreloader();
444
+ });
445
+ }
446
 
447
 
448
  that.el.on('keydown.autocomplete', function (e) {
2666
 
2667
  });
2668
 
2669
+ /*-----------------------------------------------------------------
2670
+ /* Fix broken search bars after click browser's back arrow.
2671
+ /* Not worked for some browsers especially Safari and FF
2672
+ /* Add dgwt-wcas-active class if wasn't added for some reason
2673
+ /*
2674
+ /*------------ -----------------------------------------------------*/
2675
+ $(window).on('load', function () {
2676
+ var i = 0;
2677
+ var interval = setInterval(function () {
2678
+
2679
+ var activeEl = document.activeElement;
2680
+
2681
+ if (
2682
+ typeof activeEl == 'object'
2683
+ && $(activeEl).length
2684
+ && $(activeEl).hasClass('dgwt-wcas-search-input')
2685
+ ) {
2686
+
2687
+ var $search = $(activeEl).closest('.dgwt-wcas-search-wrapp');
2688
+
2689
+ if ($search.length && !$search.hasClass('dgwt-wcas-active')) {
2690
+ $search.addClass('dgwt-wcas-active');
2691
+ clearInterval(interval);
2692
+ }
2693
+ }
2694
+
2695
+ // Stop after 5 seconds
2696
+ if (i > 10) {
2697
+ clearInterval(interval);
2698
+ }
2699
+
2700
+ i++;
2701
+
2702
+ }, 500);
2703
+ });
2704
 
2705
  /*-----------------------------------------------------------------
2706
  /* Fix broken search bars by 3rd party plugins
assets/js/search.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports&&"function"==typeof require?t(require("jquery")):t(jQuery)}(function(t){"use strict";var e={escapeRegExChars:function(t){return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(t){var e=document.createElement("div");return e.className=t,e.style.position="absolute",e.style.display="none",e.setAttribute("unselectable","on"),e},highlight:function(t,s){if(dgwt_wcas.is_premium){var i,o=s.split(/ /),a=!1;if(o)for(o=o.sort(function(t,e){return e.length-t.length}),i=0;i<o.length;i++)if(o[i]&&o[i].length>1){var n=o[i].replace(/[\^\@]/g,"");if(n.length>0){var r="("+e.escapeRegExChars(n.trim())+")";t=t.replace(new RegExp(r,"gi"),"^^$1@@"),a=!0}}a&&(t=(t=t.replace(/\^\^/g,"<strong>")).replace(/@@/g,"</strong>"))}else r="("+e.escapeRegExChars(s)+")",t=t.replace(new RegExp(r,"gi"),"<strong>$1</strong>");return t},debounce:function(t,e){var i,o=(new Date).getUTCMilliseconds();if(0===s.id.length)return s.id=o,void t();s.id=o,i=setTimeout(function(){o===s.id?(t(),s.id=""):clearTimeout(i)},e)},mouseHoverDebounce:function(e,s,i){var o;o=setTimeout(function(){t(s+":hover").length>0?e():clearTimeout(o)},i)},getActiveInstance:function(){var e,s=t(".dgwt-wcas-search-wrapp.dgwt-wcas-active");return s.length>0&&s.each(function(){var s=t(this).find(".dgwt-wcas-search-input");if("object"==typeof s.data("autocomplete"))return e=s.data("autocomplete"),!1}),e}},s={id:"",callback:null,ajaxSettings:null,object:null},i=t.noop;function o(e,s){this.element=e,this.el=t(e),this.suggestions=[],this.badQueries=[],this.selectedIndex=-1,this.currentValue=this.element.value,this.timeoutId=null,this.cachedResponse={},this.cachedDetails={},this.cachedPrices={},this.detailsRequestsSent=[],this.onChangeTimeout=null,this.onChange=null,this.isLocal=!1,this.suggestionsContainer=null,this.detailsContainer=null,this.autoAligmentprocess=null,this.noSuggestionsContainer=null,this.latestActivateSource="",this.actionTriggerSource="",this.options=t.extend(!0,{},o.defaults,s),this.classes={selected:"dgwt-wcas-suggestion-selected",suggestion:"dgwt-wcas-suggestion",suggestionsContainerOrientTop:"dgwt-wcas-suggestions-wrapp--top"},this.hint=null,this.hintValue="",this.selection=null,this.overlayMobileState="off",this.initialize(),this.setOptions(s)}o.utils=e,t.DgwtWcasAutocompleteSearch=o,o.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",containerDetailsWidth:"auto",showDetailsPanel:!1,showImage:!1,showPrice:!1,showSKU:!1,showDescription:!1,showSaleBadge:!1,showFeaturedBadge:!1,dynamicPrices:!1,saleBadgeText:"sale",featuredBadgeText:"featured",minChars:3,maxHeight:600,deferRequestBy:0,params:{},formatResult:function(t,s,i,o){return s?(i&&(t=e.highlight(t,s)),o.convertHtml?t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;sup/g,"<sup").replace(/&lt;\/sup/g,"</sup").replace(/sup&gt;/g,"sup>").replace(/&lt;(\/?(strong|b|br))&gt;/g,"<$1>"):t):t},delimiter:null,zIndex:999999999,type:"GET",noCache:!1,isRtl:!1,onSearchStart:i,onSearchComplete:i,onSearchError:i,preserveInput:!1,searchFormClass:"dgwt-wcas-search-wrapp",containerClass:"dgwt-wcas-suggestions-wrapp",containerDetailsClass:"dgwt-wcas-details-wrapp",searchInputClass:"dgwt-wcas-search-input",preloaderClass:"dgwt-wcas-preloader",closeTrigger:"dgwt-wcas-close",formClass:"dgwt-wcas-search-form",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,isPremium:!1,overlayMobile:!1,preventBadQueries:!0,lookupFilter:function(t,e,s){return-1!==t.value.toLowerCase().indexOf(s)},paramName:"query",transformResult:function(e){return"string"==typeof e?t.parseJSON(e):e},noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1,positionFixed:!1,debounceWaitMs:400,sendGAEvents:!0,enableGASiteSearchModule:!1,showProductVendor:!1},o.prototype={initialize:function(){var s=this;s.element.setAttribute("autocomplete","off"),s.createContainers(),s.registerEventsSearchBar(),s.registerEventsSuggestions(),s.registerEventsDetailsPanel(),s.registerIconHandler(),s.registerEventsFixedMenu(),s.fixPositionCapture=function(){s.adjustContainerWidth(),s.visible&&s.fixPosition()},t(window).on("resize.autocomplete",function(){var t=e.getActiveInstance();void 0!==t&&t.fixPositionCapture()}),s.initMobileMode(),s.hideAfterClickOutsideListener(),s.suggestionsContainer.addClass("js-dgwt-wcas-initialized"),s.detailsContainer&&s.detailsContainer.length>0&&s.detailsContainer.addClass("js-dgwt-wcas-initialized")},createContainers:function(e){var s=this.options;0==t("."+s.containerClass).length?(this.suggestionsContainer=t(o.utils.createNode(s.containerClass)),this.suggestionsContainer.appendTo(s.appendTo||"body"),this.suggestionsContainer.addClass("woocommerce"),!0===s.showImage&&this.suggestionsContainer.addClass("dgwt-wcas-has-img"),!0===s.showPrice&&this.suggestionsContainer.addClass("dgwt-wcas-has-price"),!0===s.showDescription&&this.suggestionsContainer.addClass("dgwt-wcas-has-desc"),!0===s.showSKU&&this.suggestionsContainer.addClass("dgwt-wcas-has-sku"),!0===s.showHeadings&&this.suggestionsContainer.addClass("dgwt-wcas-has-headings"),"auto"!==s.width&&this.suggestionsContainer.width(s.width)):this.suggestionsContainer=t("."+this.options.containerClass),this.canShowDetailsBox()&&(0==t("."+s.containerDetailsClass).length?(this.detailsContainer=t(o.utils.createNode(s.containerDetailsClass)),this.detailsContainer.appendTo(s.appendTo||"body"),this.detailsContainer.addClass("woocommerce")):this.detailsContainer=t("."+s.containerDetailsClass))},registerEventsSearchBar:function(){var s=this;t(document).on("click.autocomplete","."+s.options.closeTrigger,function(){var s=e.getActiveInstance();s.hide(),s.clear(!1),s.hideCloseButton(),t(this).closest("."+s.options.searchFormClass).find("."+s.options.searchInputClass).val("").focus()}),s.el.closest("."+s.options.formClass).on("submit.autocomplete",function(e){s.suggestions.length>0&&t.each(s.suggestions,function(t,i){if(void 0!==i.type&&"product_variation"==i.type)return s.select(t),e.preventDefault(),!1})}),t(window).on("load",function(){s.positionPreloader()}),s.el.on("keydown.autocomplete",function(t){s.onKeyPress(t)}),s.el.on("keyup.autocomplete",function(t){s.onKeyUp(t)}),s.el.on("blur.autocomplete",function(){s.onBlur()}),s.el.on("focus.autocomplete",function(){s.onFocus()}),s.el.on("change.autocomplete",function(t){s.onKeyUp(t)}),s.el.on("input.autocomplete",function(t){s.onKeyUp(t)})},registerEventsSuggestions:function(){var s="."+this.classes.suggestion;if(!this.getSuggestionsContainer().hasClass("js-dgwt-wcas-initialized")){t(document).on("mouseenter.autocomplete",s,function(){var s=e.getActiveInstance();if(void 0!==s){var i=t(this).data("index"),o='.dgwt-wcas-suggestion[data-index="'+i+'"]',a=s.canShowDetailsBox()?100:1;s.selectedIndex!=i&&e.mouseHoverDebounce(function(){s.selectedIndex!==i&&(s.latestActivateSource="mouse",s.getDetails(s.suggestions[i]),s.activate(i))},o,a)}});var i=!1;t(document).on("click.autocomplete",s,function(){if(!i){var s=e.getActiveInstance();s.actionTriggerSource="click",i=!0,s.select(t(this).data("index"))}}),t(document).on("mousedown.autocomplete",s,function(e){"number"==typeof e.which&&1===e.which&&t(e.target)[0].click()}),t(document).on("click.autocomplete","."+this.options.containerClass,function(){var t=e.getActiveInstance();clearTimeout(t.blurTimeoutId)})}},registerEventsDetailsPanel:function(){var s=this.getDetailsContainer();this.canShowDetailsBox()&&!s.hasClass("js-dgwt-wcas-initialized")&&(t(document).on("click.autocomplete","."+this.options.containerDetailsClass,function(){var t=e.getActiveInstance();clearTimeout(t.blurTimeoutId)}),t(document).on("change",'[name="js-dgwt-wcas-quantity"]',function(e){t(this).closest(".js-dgwt-wcas-pd-addtc").find("[data-quantity]").attr("data-quantity",t(this).val())}))},registerIconHandler:function(){var s=this,i=s.getFormWrapper(),o=i.find("."+s.options.formClass);i.on("click",".js-dgwt-wcas-search-icon-handler",function(t){var e=i.find("."+s.options.searchInputClass);if(i.hasClass("dgwt-wcas-layout-icon-open"))s.hide(),o.hide(!0),i.removeClass("dgwt-wcas-layout-icon-open");else{var a=i.find(".dgwt-wcas-search-icon-arrow");o.hide(),a.hide(),i.addClass("dgwt-wcas-layout-icon-open"),s.positionIconSearchMode(i),o.fadeIn(200,function(){a.show(),s.positionPreloader(i),e.focus()})}}),0==t(".js-dgwt-wcas-initialized").length&&t(".js-dgwt-wcas-search-icon-handler").length>0&&t(document).click(function(i){if(t(".dgwt-wcas-layout-icon-open").length){var o=t(i.target);if(!(o.closest("."+s.options.searchFormClass).length>0||o.closest("."+s.options.containerClass).length>0||o.closest("."+s.options.containerDetailsClass).length>0)){var a=e.getActiveInstance();if(void 0!==a){var n=a.getFormWrapper().find("."+s.options.formClass);n.hide(),a.hide(!0),n.css({left:"0"})}s.hideIconModeSearch()}}}),t(window).on("resize.autocomplete",function(){s.applyFlexibleMode()}),"complete"==document.readyState?s.applyFlexibleMode():t(window).on("load",function(){s.applyFlexibleMode()})},registerEventsFixedMenu:function(){var e=this;t(window).on("scroll",function(){e.suggestions.length>0&&e.elementOrParentIsFixed(e.getFormWrapper())&&(0===t(window).scrollTop()?[1,10,20,30,40,50,60,70,80,90,120,140,170,200,250,400,700,1e3,2e3].forEach(function(t){setTimeout(function(){e.fixHeight(),e.fixPositionCapture()},t)}):(e.fixHeight(),e.fixPositionCapture()))})},initMobileMode:function(){var t=this,e=t.getFormWrapper();e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&t.isMobileMode()&&(e.prepend('<div class="js-dgwt-wcas-enable-mobile-form dgwt-wcas-enable-mobile-form"></div>'),e.find(".js-dgwt-wcas-enable-mobile-form").on("click",function(e){t.enableOverlayMobile()}))},applyFlexibleMode:function(){var e=t(".js-dgwt-wcas-layout-icon-flexible");e.length&&(this.isMobileMode()?(e.addClass("js-dgwt-wcas-layout-icon"),e.addClass("dgwt-wcas-layout-icon")):(e.removeClass("js-dgwt-wcas-layout-icon"),e.removeClass("dgwt-wcas-layout-icon")),e.addClass("dgwt-wcas-layout-icon-flexible-loaded"))},onFocus:function(){t("."+this.options.searchFormClass).removeClass("dgwt-wcas-active"),this.getFormWrapper().addClass("dgwt-wcas-active"),this.fixPositionCapture(),this.el.val().length>=this.options.minChars&&this.onValueChange()},onBlur:function(){var e=this,s=e.options,i=e.el.val(),o=e.getQuery(i);e.isMobileMode()||(e.blurTimeoutId=setTimeout(function(){e.hide(),e.selection&&e.currentValue!==o&&(s.onInvalidateSelection||t.noop).call(e.element)},200))},abortAjax:function(){this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=null)},setOptions:function(e){var s=this,i=s.getSuggestionsContainer(),o=t.extend({},s.options,e);s.isLocal=Array.isArray(o.lookup),s.isLocal&&(o.lookup=s.verifySuggestionsFormat(o.lookup)),o.orientation=s.validateOrientation(o.orientation,"bottom"),i.css({"max-height":s.canShowDetailsBox()?"none":o.maxHeight+"px",width:o.width+"px","z-index":o.zIndex}),!0===o.showDetailsPanel&&s.getDetailsContainer().css({"z-index":o.zIndex-1}),o.onSearchComplete=function(){s.getFormWrapper().removeClass("dgwt-wcas-processing"),s.preloader("hide","form","dgwt-wcas-inner-preloader"),s.showCloseButton()},this.options=o},clearCache:function(){this.cachedResponse={},this.cachedDetails={},this.cachedPrices={},this.badQueries=[]},clear:function(t){t&&this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){this.disabled=!0,clearTimeout(this.onChangeTimeout),this.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var t=this.getFormOffset();this.getSuggestionsContainer().css(t),this.canShowDetailsBox()&&this.fixPositionDetailsBox()},fixPositionDetailsBox:function(){var e=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.getDetailsContainer(),o=this.getFormOffset(),a=o.left;if(0==i.length)return!1;var n=!0===this.options.isRtl?1:2,r=Math.round(o.left);if(o.left=r+Math.round(s.width()+n),i.css(o),e.width()>=550)return t("body").removeClass("dgwt-wcas-details-outside"),t("body").removeClass("dgwt-wcas-details-right"),t("body").removeClass("dgwt-wcas-details-left"),void(!0===this.options.isRtl&&(s.css("left",r+Math.round(i.width()+n)+"px"),i.css("left",a+"px")));var l=t(window).width(),c=i.width(),d=i.offset();t("body").addClass("dgwt-wcas-details-outside"),!0===this.options.isRtl&&(o.left=o.left+1);var g=!1,u=!1;l<d.left+c&&(g=!0,t("body").removeClass("dgwt-wcas-details-right"),t("body").addClass("dgwt-wcas-details-left"),i.css("left",Math.round(parseFloat(s.css("left").replace("px","")))-i.outerWidth()+"px")),(d=i.offset()).left<1&&(u=!0,t("body").removeClass("dgwt-wcas-details-left"),t("body").addClass("dgwt-wcas-details-right")),u&&g?(t("body").removeClass("dgwt-wcas-details-left"),t("body").removeClass("dgwt-wcas-details-right"),t("body").addClass("dgwt-wcas-details-notfit")):t("body").removeClass("dgwt-wcas-details-notfit")},fixHeight:function(){if(1!=this.options.showDetailsPanel)return!1;var t=this.getSuggestionsContainer(),e=this.getDetailsContainer();t.css("height","auto"),e.css("height","auto");var s=t.outerHeight(),i=e.outerHeight();return t.find(".dgwt-wcas-suggestion:last-child").removeClass("dgwt-wcas-suggestion-no-border-bottom"),!(s<=340&&i<=340||(t.find(".dgwt-wcas-suggestion:last-child").addClass("dgwt-wcas-suggestion-no-border-bottom"),i<s&&e.css("height",s+"px"),s<i&&t.css("height",i+"px"),1))},automaticAlignment:function(){var t=this,e=t.getFormWrapper().find(".dgwt-wcas-search-input"),s=t.getSuggestionsContainer(),i=t.getDetailsContainer();if(null==t.autoAligmentprocess){var o=[e.width(),s.height()];t.options.showDetailsPanel&&(o[2]=i.height()),t.autoAligmentprocess=setInterval(function(){var a=[e.width(),s.height()];t.options.showDetailsPanel&&(a[2]=i.height());for(var n=0;n<o.length;n++)if(o[n]!=a[n]){t.fixHeight(),t.fixPositionCapture(),o=a;break}t.options.showDetailsPanel&&i.find(".dgwt-wcas-details-inner").height()-i.height()>2&&t.fixHeight()},10)}},getFormOffset:function(){var e=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.options.orientation,o=e.outerHeight(),a=this.el.outerHeight(),n=this.el.offset(),r={top:n.top,left:n.left};if("auto"===i){var l=t(window).height(),c=t(window).scrollTop(),d=-c+n.top-o,g=c+l-(n.top+a+o);i=Math.max(d,g)===d?"top":"bottom"}if("top"===i){s[0].getBoundingClientRect().top;var u=e[0].getBoundingClientRect().top;s.css("height","auto"),u<s.height()&&s.height(u-10),r.top+=-s.outerHeight()}else r.top+=a;return r},getFormWrapper:function(){return this.el.closest("."+this.options.searchFormClass)},getSuggestionsContainer:function(){return t("."+this.options.containerClass)},getDetailsContainer:function(){return t("."+this.options.containerDetailsClass)},scrollDownSuggestions:function(){var t=this.getSuggestionsContainer();t[0].scrollTop=t[0].scrollHeight},isCursorAtEnd:function(){var t,e=this.el.val().length,s=this.element.selectionStart;return"number"==typeof s?s===e:!document.selection||((t=document.selection.createRange()).moveStart("character",-e),e===t.text.length)},onKeyPress:function(t){if(this.disabled||this.visible||40!==t.which||!this.currentValue){if(!this.disabled&&this.visible){switch(t.which){case 27:this.el.val(this.currentValue),this.hide();break;case 39:if(this.hint&&this.options.onHint&&this.isCursorAtEnd()){this.selectHint();break}return;case 9:if(this.hint&&this.options.onHint)return void this.selectHint();if(-1===this.selectedIndex)return void this.hide();if(this.select(this.selectedIndex),!1===this.options.tabDisabled)return;break;case 13:if(-1===this.selectedIndex)return void this.hide();this.actionTriggerSource="enter",this.select(this.selectedIndex);break;case 38:this.moveUp();break;case 40:this.moveDown();break;default:return}t.stopImmediatePropagation(),t.preventDefault()}}else this.suggest()},onKeyUp:function(t){var e=this;if(!e.disabled){switch(t.which){case 38:case 40:return}clearTimeout(e.onChangeTimeout),e.currentValue!==e.el.val()&&(e.findBestHint(),e.options.deferRequestBy>0?e.onChangeTimeout=setTimeout(function(){e.onValueChange()},e.options.deferRequestBy):e.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)this.ignoreValueChange=!1;else{var e=this.options,s=this.el.val(),i=this.getQuery(s);this.selection&&this.currentValue!==i&&(this.selection=null,(e.onInvalidateSelection||t.noop).call(this.element)),clearTimeout(this.onChangeTimeout),this.currentValue=s,this.selectedIndex=-1,e.triggerSelectOnValidInput&&this.isExactMatch(i)?this.select(0):i.length<e.minChars?(this.hideCloseButton(),this.hide()):this.getSuggestions(i)}},isExactMatch:function(t){var e=this.suggestions;return 1===e.length&&e[0].value.toLowerCase()===t.toLowerCase()},canShowDetailsBox:function(){return 1==this.options.showDetailsPanel&&!this.isMobileMode()},isMobileMode:function(){return t(window).width()<this.options.mobileBreakpoint},getQuery:function(e){var s,i=this.options.delimiter;return i?(s=e.split(i),t.trim(s[s.length-1])):e},getSuggestionsLocal:function(e){var s,i=this.options,o=e.toLowerCase(),a=i.lookupFilter,n=parseInt(i.lookupLimit,10);return s={suggestions:t.grep(i.lookup,function(t){return a(t,e,o)})},n&&s.suggestions.length>n&&(s.suggestions=s.suggestions.slice(0,n)),s},getSuggestions:function(i){var o,a,n,r,l=this,c=l.options,d=c.serviceUrl,g=l.getFormWrapper();c.params[c.paramName]=i,void 0!==dgwt_wcas.current_lang&&(c.params.l=dgwt_wcas.current_lang),c.params=l.applyCustomParams(c.params),l.preloader("show","form","dgwt-wcas-inner-preloader"),g.addClass("dgwt-wcas-processing"),!1!==c.onSearchStart.call(l.element,c.params)&&(a=c.ignoreParams?null:c.params,t.isFunction(c.lookup)?c.lookup(i,function(t){l.suggestions=t.suggestions,l.suggest(),l.selectFirstSuggestion(t.suggestions),c.onSearchComplete.call(l.element,i,t.suggestions)}):(l.isLocal?o=l.getSuggestionsLocal(i):(t.isFunction(d)&&(d=d.call(l.element,i)),n=d+"?"+t.param(a||{}),o=l.cachedResponse[n]),o&&Array.isArray(o.suggestions)?(l.suggestions=o.suggestions,l.suggest(),l.selectFirstSuggestion(o.suggestions),c.onSearchComplete.call(l.element,i,o.suggestions)):l.isBadQuery(i)?c.onSearchComplete.call(l.element,i,[]):(l.abortAjax(),r={url:d,data:a,type:c.type,dataType:c.dataType},t.extend(r,c.ajaxSettings),s.object=l,s.ajaxSettings=r,e.debounce(function(){var e=s.object,o=s.ajaxSettings;e.currentRequest=t.ajax(o).done(function(t){var s;e.currentRequest=null,void 0!==(s=e.options.transformResult(t,i)).suggestions&&(e.processResponse(s,i,n),e.selectFirstSuggestion(s.suggestions),1===s.suggestions.length&&void 0!==s.suggestions[0].type&&"no-results"===s.suggestions[0].type?e.gaEvent(i,"Autocomplete Search without results"):e.gaEvent(i,"Autocomplete Search with results")),e.fixPositionCapture(),e.options.onSearchComplete.call(e.element,i,s.suggestions),e.updatePrices()}).fail(function(t,s,o){e.options.onSearchError.call(e.element,i,t,s,o)})},c.debounceWaitMs))))},getDetails:function(e){var s=this;if(!s.canShowDetailsBox())return!1;if(null!=e&&void 0!==e.type&&("string"!=typeof e.more_products||"more_products"!==e.more_products)){s.fixHeight();var i,o=s.getDetailsContainer(),a=s.prepareSuggestionObjectID(e);if(null!=(i=s.cachedDetails[a]))o.html(i.html),s.fixHeight(),s.fixPositionCapture();else{var n={action:dgwt_wcas.action_result_details,items:[]};if(t.each(s.suggestions,function(t,e){if(void 0!==e.type&&"more_products"!=e.type&&"headline"!=e.type){var i={objectID:s.prepareSuggestionObjectID(e),value:null!=e.value?e.value:""};n.items.push(i)}}),o.html(""),s.preloader("show","details","",!0),-1!=t.inArray(a,s.detailsRequestsSent))return;s.detailsRequestsSent.push(a),t.ajax({data:n,type:"post",url:dgwt_wcas.ajax_details_endpoint,success:function(t){var e="string"==typeof t?jQuery.parseJSON(t):t;if(void 0!==e.items)for(var i=0;i<e.items.length;i++){var a=e.items[i].objectID;s.cachedDetails[a]={html:e.items[i].html},void 0!==e.items[i].price&&e.items[i].price.length>0&&(s.cachedPrices[a]=e.items[i].price),void 0!==e.items[i].imageSrc&&e.items[i].imageSrc.length>0&&((new Image).src=e.items[i].imageSrc)}s.preloader("hide","details","",!0);var n=s.prepareSuggestionObjectID(s.suggestions[s.selectedIndex]);null!=s.cachedDetails[n]?o.html(s.cachedDetails[n].html):o.html(""),s.fixPositionCapture(),s.fixHeight(),s.updatePrices(!0)},error:function(t,e){s.preloader("hide","details","",!0),o.html(t),s.fixPositionCapture(),s.fixHeight()}})}t(document).trigger("dgwtWcasDetailsPanelLoaded",s)}},updatePrices:function(e){var s,i,o=this,a=[];if(o.options.showPrice&&o.options.dynamicPrices&&0!=o.suggestions.length){for(s=0;s<o.suggestions.length;s++)if(void 0!==o.suggestions[s].type&&("product"==o.suggestions[s].type||"product_variation"==o.suggestions[s].type)){var n="product__"+o.suggestions[s].post_id;void 0!==o.cachedPrices[n]?o.updatePrice(s,o.cachedPrices[n]):(o.applyPreloaderForPrice(s),a.push(o.suggestions[s].post_id))}if(!e&&a.length>0){var r={action:void 0===dgwt_wcas.action_get_prices?"dgwt_wcas_get_prices":dgwt_wcas.action_get_prices,items:a};t.ajax({data:r,type:"post",url:dgwt_wcas.ajax_prices_endpoint,success:function(t){if(void 0!==t.success&&t.success&&t.data.length>0)for(s=0;s<t.data.length;s++){var e=t.data[s].id,a=t.data[s].price;if(o.suggestions.length>0)for(i=0;i<o.suggestions.length;i++)if(void 0!==o.suggestions[i].type&&("product"==o.suggestions[i].type||"product_variation"==o.suggestions[i].type)&&o.suggestions[i].post_id==e){var n="product__"+e;o.cachedPrices[n]=a,o.updatePrice(i,a)}}},error:function(t,e){}})}}},updatePrice:function(e,s){if(void 0!==this.suggestions[e]){this.suggestions[e].price=s;var i=t(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+e+'"] .dgwt-wcas-sp');i.length&&i.html(s)}},applyCustomParams:function(t){if("object"==typeof dgwt_wcas.custom_params){var e=dgwt_wcas.custom_params;for(var s in e)t[s]=e[s]}var i=this.el.data("custom-params");if("object"==typeof i)for(var s in i)t[s]=i[s];return t},applyPreloaderForPrice:function(e){if(void 0!==this.suggestions[e]){var s=t(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+e+'"] .dgwt-wcas-sp');s.length&&s.html('<div class="dgwt-wcas-preloader-price"><div class="dgwt-wcas-preloader-price-inner"> <div></div><div></div><div></div></div></div>')}},prepareSuggestionObjectID:function(t){var e="";return void 0!==t&&void 0!==t.type&&(null!=t.post_id&&(e=t.type+"__"+t.post_id,"product_variation"===t.type&&(e+="__"+t.variation_id),void 0!==t.post_type&&(e=t.type+"__"+t.post_id+"__"+t.post_type)),null!=t.term_id&&null!=t.taxonomy&&(e=t.type+"__"+t.term_id+"__"+t.taxonomy)),e},selectFirstSuggestion:function(e){var s=0,i=!1;this.canShowDetailsBox()&&("undefined"!=e&&e.length>0&&t.each(this.suggestions,function(t,e){if(void 0!==e.type&&"more_products"!=e.type&&"headline"!=e.type&&"no-results"!=e.type)return s=t,!1;void 0!==e.type&&"no-results"!==e.type||(i=!0)}),i||(this.latestActivateSource="system",this.getDetails(e[s]),this.activate(s)))},isBadQuery:function(t){if(!this.options.preventBadQueries)return!1;for(var e=this.badQueries,s=e.length;s--;)if(0===t.indexOf(e[s]))return!0;return!1},hide:function(e){this.getFormWrapper();var s=this.getSuggestionsContainer(),i=this.getDetailsContainer();t.isFunction(this.options.onHide)&&this.visible&&this.options.onHide.call(this.element,container),this.visible=!1,this.selectedIndex=-1,clearTimeout(this.onChangeTimeout),s.hide(),s.removeClass(this.classes.suggestionsContainerOrientTop),i.hide(),t("body").removeClass("dgwt-wcas-open"),t("body").removeClass("dgwt-wcas-block-scroll"),t("body").removeClass("dgwt-wcas-is-details"),t("body").removeClass("dgwt-wcas-full-width"),t("body").removeClass("dgwt-wcas-nores"),t("body").removeClass("dgwt-wcas-details-outside"),t("body").removeClass("dgwt-wcas-details-right"),t("body").removeClass("dgwt-wcas-details-left"),null!=this.autoAligmentprocess&&(clearInterval(this.autoAligmentprocess),this.autoAligmentprocess=null),"boolean"==typeof e&&e&&(this.hideCloseButton(),this.currentValue="",this.suggestions=[]),this.signalHint(null)},positionIconSearchMode:function(e){var s,i=e.find("."+this.options.formClass),o=i.width(),a=t(window).width(),n=e[0].getBoundingClientRect().left;i[0].getBoundingClientRect().left;var r=(n+10)/a;s=Math.floor(o*r*-1),i.css({left:s+"px"})},hideIconModeSearch:function(){var e=t(".dgwt-wcas-layout-icon-open");e.length>0&&e.removeClass("dgwt-wcas-layout-icon-open")},hideAfterClickOutsideListener:function(){var e=this;e.isMobileMode()||t(document).mouseup(function(s){if(e.visible){e.getSuggestionsContainer(),e.getDetailsContainer();var i=!(t(s.target).closest("."+e.options.searchFormClass).length>0||t(s.target).hasClass(e.options.searchFormClass)),o=!(t(s.target).closest("."+e.options.containerClass).length>0||t(s.target).hasClass(e.options.containerClass));if(e.canShowDetailsBox()){var a=!(t(s.target).closest("."+e.options.containerDetailsClass).length>0||t(s.target).hasClass(e.options.containerDetailsClass));i&&o&&a&&e.hide()}else i&&o&&e.hide()}})},suggest:function(){if(this.suggestions.length){var e,s=this,i=s.options,o=i.groupBy,a=i.formatResult,n=s.getQuery(s.currentValue),r=s.classes.suggestion,l=s.classes.selected,c=s.getSuggestionsContainer(),d=s.getDetailsContainer(),g=t(s.noSuggestionsContainer),u=i.beforeRender,h="";i.triggerSelectOnValidInput&&s.isExactMatch(n)?s.select(0):(t("body").removeClass("dgwt-wcas-nores"),t.each(s.suggestions,function(s,l){var c="",g=!1;if(o&&(h+=function(t,s){var i=l.data[o];return e===i?"":'<div class="autocomplete-group"><strong>'+(e=i)+"</strong></div>"}()),void 0===l.type||"product"!=l.type&&"product_variation"!=l.type){var u,p=r,w="dgwt-wcas-st",f="",m="",v="",C=!0;"product_cat"===l.taxonomy?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-cat",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.category+"</span>"),void 0!==l.breadcrumbs&&l.breadcrumbs&&(v=l.breadcrumbs+" &gt; "+l.value,m+='<span class="dgwt-wcas-st-breadcrumbs">'+dgwt_wcas.labels.in+" "+l.breadcrumbs+"</span>")):"product_tag"===l.taxonomy?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tag",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.tag+"</span>")):i.isPremium&&l.taxonomy===i.taxonomyBrands?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-brand",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.brand+"</span>")):i.isPremium&&"vendor"===l.type?(p+=" dgwt-wcas-suggestion-vendor dgwt-wcas-suggestion-vendor",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.vendor+"</span>")):i.isPremium&&"post"===l.type?(p+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-tp-post",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.post+"</span>")):i.isPremium&&"page"===l.type?(p+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-pt-page",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.page+"</span>")):"more_products"===l.type?(p+=" js-dgwt-wcas-suggestion-more dgwt-wcas-suggestion-more",w="dgwt-wcas-st-more",l.value=dgwt_wcas.labels.show_more+" ("+l.total+")",C=!1):i.showHeadings&&"headline"===l.type?(p+=" js-dgwt-wcas-suggestion-headline dgwt-wcas-suggestion-headline",void 0!==dgwt_wcas.labels[l.value+"_plu"]&&(l.value=dgwt_wcas.labels[l.value+"_plu"]),C=!1):(p+=" dgwt-wcas-suggestion-nores",l.value=dgwt_wcas.labels.no_results,C=!1,!0===i.showDetailsPanel&&d.html(""),t("body").addClass("dgwt-wcas-nores")),void 0!==l.image_src&&l.image_src&&(u=!0),v=v.length>0?' title="'+v+'"':"",h+='<div class="'+p+'" data-index="'+s+'">',u&&(h+='<span class="dgwt-wcas-si"><img src="'+l.image_src+'" /></span>',h+='<div class="dgwt-wcas-content-wrapp">'),h+="<span"+v+' class="'+w+'">',"vendor"===l.type?(h+='<span class="dgwt-wcas-st-title">'+f+a(l.value,n,C,i)+m+"</span>",l.shop_city&&(h+='<span class="dgwt-wcas-vendor-city"><span> - </span>'+a(l.shop_city,n,!0,i)+"</span>"),void 0!==l.desc&&l.desc&&(h+='<span class="dgwt-wcas-sd">'+a(l.desc,n,!0,i)+"</span>")):h+=f+a(l.value,n,C,i)+m,h+="</span>",h+=u?"</div>":"",h+="</div>"}else{!0===i.showImage&&void 0!==l.thumb_html&&(g=!0);var b="product_variation"===l.type?" dgwt-wcas-suggestion-product-var":"";if(c+=void 0!==l.post_id?'data-post-id="'+l.post_id+'" ':"",c+=void 0!==l.taxonomy?'data-taxonomy="'+l.taxonomy+'" ':"",c+=void 0!==l.term_id?'data-term-id="'+l.term_id+'" ':"",h+='<div class="'+r+" dgwt-wcas-suggestion-product"+b+'" data-index="'+s+'" '+c+">",g&&(h+='<span class="dgwt-wcas-si">'+l.thumb_html+"</span>"),h+=g?'<div class="dgwt-wcas-content-wrapp">':"",h+='<span class="dgwt-wcas-st">',h+='<span class="dgwt-wcas-st-title">'+a(l.value,n,!0,i)+"</span>",!0===i.showSKU&&void 0!==l.sku&&l.sku.length>0&&(h+='<span class="dgwt-wcas-sku">('+dgwt_wcas.labels.sku_label+" "+a(l.sku,n,!0,i)+")</span>"),!0===i.showDescription&&void 0!==l.desc&&l.desc&&(h+='<span class="dgwt-wcas-sd">'+a(l.desc,n,!0,i)+"</span>"),!0===i.showProductVendor&&void 0!==l.vendor&&l.vendor){var y='<span class="dgwt-wcas-product-vendor"><span class="dgwt-wcas-product-vendor-label">'+dgwt_wcas.labels.vendor_sold_by+" </span>"+l.vendor+"</span>";void 0!==l.vendor_url&&l.vendor_url?h+='<a href="'+l.vendor_url+'">'+y+"</a>":h+=y}h+="</span>",!0===i.showPrice&&void 0!==l.price&&(h+='<span class="dgwt-wcas-sp">'+l.price+"</span>"),!0===i.showFeaturedBadge&&!0===l.on_sale&&(h+='<span class="dgwt-wcas-badge dgwt-wcas-badge-os">'+i.saleBadgeText+"</span>"),!0===i.showFeaturedBadge&&!0===l.featured&&(h+='<span class="dgwt-wcas-badge dgwt-wcas-badge-f">'+i.featuredBadgeText+"</span>"),h+=g?"</div>":"",h+="</div>"}}),this.adjustContainerWidth(),g.detach(),c.html(h),t.isFunction(u)&&u.call(s.element,c,s.suggestions),c.show(),t("body").addClass("dgwt-wcas-open"),s.automaticAlignment(),!0===i.showDetailsPanel&&(t("body").addClass("dgwt-wcas-is-details"),d.show(),s.fixHeight()),i.autoSelectFirst&&(s.selectedIndex=0,c.scrollTop(0),c.children("."+r).first().addClass(l)),s.visible=!0,s.fixPositionCapture(),"top"===s.options.orientation&&(s.getSuggestionsContainer().addClass(s.classes.suggestionsContainerOrientTop),t("body").addClass("dgwt-wcas-block-scroll"),setTimeout(function(){s.scrollDownSuggestions()},300)),s.findBestHint())}else this.hide()},adjustContainerWidth:function(){var e,s=this.options,i=t("body"),o=this.getFormWrapper(),a=this.getSuggestionsContainer(),n=this.getDetailsContainer(),r=this.getFormOffset();if(o.length){var l=getComputedStyle(o[0]).width;if(l=Math.round(parseFloat(l.replace("px",""))),"auto"===s.width&&(e=this.el.outerWidth(),a.css("width",e+"px")),this.canShowDetailsBox()){if(o.width()>=550)return i.addClass("dgwt-wcas-full-width"),l%2==0?(a.css("width",Math.round(l/2)),n.css("width",Math.round(l/2))):(a.css("width",Math.floor(l/2)),n.css("width",Math.ceil(l/2))),i.removeClass("dgwt-wcas-details-left"),i.removeClass("dgwt-wcas-details-right"),void(!0===s.isRtl?n.css("left","0"):a.css("left",l/2+r.left+"px"));i.addClass("dgwt-wcas-details-right")}}},positionPreloader:function(e){var s="object"==typeof e?e.find(".dgwt-wcas-search-submit"):t(".dgwt-wcas-search-submit");s.length>0&&s.each(function(){var e=t(this).closest(".dgwt-wcas-search-wrapp").find(".dgwt-wcas-preloader");1==dgwt_wcas.is_rtl?e.css("left",6+t(this).outerWidth()+"px"):e.css("right",t(this).outerWidth()+"px")})},findBestHint:function(){var e=this.el.val().toLowerCase(),s=null;e&&(t.each(this.suggestions,function(t,i){var o=0===i.value.toLowerCase().indexOf(e);return o&&(s=i),!o}),this.signalHint(s))},signalHint:function(e){var s="";e&&(s=this.currentValue+e.value.substr(this.currentValue.length)),this.hintValue!==s&&(this.hintValue=s,this.hint=e,(this.options.onHint||t.noop)(s))},preloader:function(e,s,i,o){var a,n,r="dgwt-wcas-preloader-wrapp",l=null==i?r:r+" "+i;if("form"===s?n=this.getFormWrapper().find(".dgwt-wcas-preloader"):"details"===s&&(n=this.getDetailsContainer()),1==dgwt_wcas.show_preloader&&0!=n.length)if(!0===o)if("hide"!==e){if("show"===e){var c=this.options.isRtl?"-rtl":"";a='<div class="'+l+'"><img class="dgwt-wcas-placeholder-preloader" src="'+dgwt_wcas.img_url+"placeholder"+c+'.png" /></div>',n.html(a)}}else t(r).remove();else"hide"===e?(n.removeClass(i),n.html("")):(n.addClass(i),"string"==typeof dgwt_wcas.preloader_icon&&n.html(dgwt_wcas.preloader_icon))},verifySuggestionsFormat:function(e){return e.length&&"string"==typeof e[0]?t.map(e,function(t){return{value:t,data:null}}):e},validateOrientation:function(e,s){return e=t.trim(e||"").toLowerCase(),-1===t.inArray(e,["auto","bottom","top"])&&(e=s),e},processResponse:function(t,e,s){var i=this.options;t.suggestions=this.verifySuggestionsFormat(t.suggestions),i.noCache||(this.cachedResponse[s]=t,i.preventBadQueries&&!t.suggestions.length&&this.badQueries.push(e)),e===this.getQuery(this.currentValue)&&("top"===this.options.orientation&&t.suggestions.reverse(),this.suggestions=t.suggestions,this.suggest())},activate:function(e){var s,i=this.classes.selected,o=this.getSuggestionsContainer(),a=o.find("."+this.classes.suggestion);return o.find("."+i).removeClass(i),this.selectedIndex=e,-1!==this.selectedIndex&&a.length>this.selectedIndex?(s=a.get(this.selectedIndex),t(s).addClass(i),s):null},selectHint:function(){var e=t.inArray(this.hint,this.suggestions);this.select(e)},select:function(t){this.hide(),this.onSelect(t)},moveUp:function(){if(-1!==this.selectedIndex){if(this.latestActivateSource="key",0===this.selectedIndex)return this.getSuggestionsContainer().children("."+this.classes.suggestion).first().removeClass(this.classes.selected),this.selectedIndex=-1,this.ignoreValueChange=!1,this.el.val(this.currentValue),void this.findBestHint();this.adjustScroll(this.selectedIndex-1,"up")}},moveDown:function(){this.selectedIndex!==this.suggestions.length-1&&(this.latestActivateSource="key",this.adjustScroll(this.selectedIndex+1,"down"))},adjustScroll:function(e,s){if("headline"===this.suggestions[e].type&&(e="down"===s?e+1:e-1),void 0!==this.suggestions[e]){var i=this.activate(e);if(this.getDetails(this.suggestions[e]),"more_products"!==this.suggestions[e].type&&i&&!this.canShowDetailsBox()){var o,a,n,r=this.getSuggestionsContainer(),l=t(i).outerHeight();o=i.offsetTop,n=(a=r.scrollTop())+this.options.maxHeight-l,o<a?r.scrollTop(o):o>n&&r.scrollTop(o-this.options.maxHeight+l),this.options.preserveInput||(this.ignoreValueChange=!0),this.signalHint(null)}}},onSelect:function(e){var s=this.options.onSelect,i=this.suggestions[e];void 0===i.type||"more_products"!==i.type&&("enter"!==this.actionTriggerSource||"key"==this.latestActivateSource||"product_variation"==i.type)?(this.currentValue=this.getValue(i.value),this.currentValue===this.el.val()||this.options.preserveInput||this.el.val(this.currentValue),i.url.length>0&&(window.location.href=i.url),this.signalHint(null),this.suggestions=[],this.selection=i,t.isFunction(s)&&s.call(this.element,i)):this.el.closest("form").trigger("submit")},getValue:function(t){var e,s,i=this.options.delimiter;return i?1===(s=(e=this.currentValue).split(i)).length?t:e.substr(0,e.length-s[s.length-1].length)+t:t},dispose:function(){this.el.off(".autocomplete").removeData("autocomplete"),t(window).off("resize.autocomplete",this.fixPositionCapture),t("."+this.options.containerClass).remove(),t("."+this.options.containerDetailsClass).remove()},enableOverlayMobile:function(){var e=this;if("on"!==e.overlayMobileState){e.overlayMobileState="on";var s,i=e.getFormWrapper(),o=e.getSuggestionsContainer(),a="";t("html").addClass("dgwt-wcas-overlay-mobile-on"),a+='<div class="js-dgwt-wcas-overlay-mobile dgwt-wcas-overlay-mobile">',a+='<div class="dgwt-wcas-om-bar js-dgwt-wcas-om-bar">',a+='<button class="dgwt-wcas-om-return js-dgwt-wcas-om-return">',"string"==typeof dgwt_wcas.back_icon?a+=dgwt_wcas.back_icon:(a+='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" color="#FFF">',a+='<path fill="#FFF" d="M14 6.125H3.351l4.891-4.891L7 0 0 7l7 7 1.234-1.234L3.35 7.875H14z" fill-rule="evenodd"></path>',a+="</svg>"),a+="</button>",a+="</div>",a+="</div>",t(e.options.mobileOverlayWrapper).append(a),(s=t(".js-dgwt-wcas-overlay-mobile")).css("zIndex",99999999999),i.after('<span class="js-dgwt-wcas-om-hook"></span>'),i.appendTo(".js-dgwt-wcas-om-bar"),o.appendTo(".js-dgwt-wcas-om-bar"),i.addClass("dgwt-wcas-search-wrapp-mobile"),i.hasClass("dgwt-wcas-has-submit")&&(i.addClass("dgwt-wcas-has-submit-off"),i.removeClass("dgwt-wcas-has-submit")),i.find("."+e.options.searchInputClass).focus(),t(document).on("click",".js-dgwt-wcas-om-return",function(t){e.disableOverlayMobile(s)})}},disableOverlayMobile:function(e){var s=this,i=s.getSuggestionsContainer(),o=t(".js-dgwt-wcas-om-bar").find("."+s.options.searchFormClass);o.hasClass("dgwt-wcas-has-submit-off")&&(o.removeClass("dgwt-wcas-has-submit-off"),o.addClass("dgwt-wcas-has-submit")),o.removeClass("dgwt-wcas-search-wrapp-mobile"),t("html").removeClass("dgwt-wcas-overlay-mobile-on"),i.appendTo("body"),i.removeAttr("body-scroll-lock-ignore"),t(".js-dgwt-wcas-om-hook").after(o),t(".js-dgwt-wcas-overlay-mobile").remove(),t(".js-dgwt-wcas-om-hook").remove(),setTimeout(function(){o.find("."+s.options.searchInputClass).val("");var t=o.find(".dgwt-wcas-close");o.length>0&&t.removeClass("dgwt-wcas-close"),s.hide()},150),s.overlayMobileState="off"},showCloseButton:function(){var t=void 0!==dgwt_wcas.close_icon?dgwt_wcas.close_icon:"",e=this.getFormWrapper().find("."+this.options.preloaderClass);e.addClass(this.options.closeTrigger),e.html(t)},hideCloseButton:function(){var t=this.getFormWrapper().find("."+this.options.closeTrigger);t.length&&(t.removeClass(this.options.closeTrigger),t.html(""))},elementOrParentIsFixed:function(e){var s=e.add(e.parents()),i=!1;return s.each(function(){if("fixed"===t(this).css("position"))return i=!0,!1}),i},gaEvent:function(t,e){if(this.options.sendGAEvents)try{if("undefined"!=typeof gtag)gtag("event","autocomplete_search",{event_label:t,event_category:e});else if("undefined"!=typeof ga){var s=ga.getAll()[0];s&&s.send({hitType:"event",eventCategory:e,eventAction:"autocomplete_search",eventLabel:t})}}catch(t){}if(this.options.enableGASiteSearchModule)try{if("undefined"!=typeof gtag)gtag("event","page_view",{page_path:"/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"});else if("undefined"!=typeof ga){var i=ga.getAll()[0];i&&(i.set("page","/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"),i.send("pageview"))}}catch(t){}}},t.fn.dgwtWcasAutocomplete=function(e,s){return arguments.length?this.each(function(){var i=t(this),a=i.data("autocomplete");"string"==typeof e?a&&"function"==typeof a[e]&&a[e](s):(a&&a.dispose&&a.dispose(),a=new o(this,e),i.data("autocomplete",a))}):this.first().data("autocomplete")},t.fn.autocomplete||(t.fn.autocomplete=t.fn.dgwtWcasAutocomplete),function(){function e(){var e=t(".dgwt-wcas-search-input"),s=[];e.length>1&&e.each(function(){var e=t(this).attr("id");if(-1==t.inArray(e,s))s.push(e);else{var i=Math.random().toString(36).substring(2,6);i="dgwt-wcas-search-input-"+i,t(this).attr("id",i),t(this).closest("form").find("label").attr("for",i)}})}function s(){var e=t(".dgwt-wcas-search-input");e.length>0&&e.each(function(){"object"!=typeof t(this).data("autocomplete")&&t(this).dgwtWcasAutocomplete(window.dgwt_wcas.config)})}t(document).ready(function(){(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)&&t("html").addClass("dgwt-wcas-is-ios");var e=1==dgwt_wcas.show_details_box,s=dgwt_wcas.mobile_breakpoint;(jQuery(window).width()<s||"ontouchend"in document)&&(e=!1),window.dgwt_wcas.config={minChars:dgwt_wcas.min_chars,width:dgwt_wcas.sug_width,autoSelectFirst:!1,triggerSelectOnValidInput:!1,serviceUrl:dgwt_wcas.ajax_search_endpoint,paramName:"s",showDetailsPanel:e,showImage:1==dgwt_wcas.show_images,showPrice:1==dgwt_wcas.show_price,showDescription:1==dgwt_wcas.show_desc,showSKU:1==dgwt_wcas.show_sku,showSaleBadge:1==dgwt_wcas.show_sale_badge,showFeaturedBadge:1==dgwt_wcas.show_featured_badge,dynamicPrices:!(void 0===dgwt_wcas.dynamic_prices||!dgwt_wcas.dynamic_prices),saleBadgeText:dgwt_wcas.labels.sale_badge,featuredBadgeText:dgwt_wcas.labels.featured_badge,isRtl:1==dgwt_wcas.is_rtl,showHeadings:1==dgwt_wcas.show_headings,isPremium:1==dgwt_wcas.is_premium,taxonomyBrands:dgwt_wcas.taxonomy_brands,mobileBreakpoint:s,mobileOverlayWrapper:dgwt_wcas.mobile_overlay_wrapper,debounceWaitMs:dgwt_wcas.debounce_wait_ms,sendGAEvents:dgwt_wcas.send_ga_events,convertHtml:dgwt_wcas.convert_html,enableGASiteSearchModule:dgwt_wcas.enable_ga_site_search_module,showProductVendor:!(void 0===dgwt_wcas.show_product_vendor||!dgwt_wcas.show_product_vendor)},t(".dgwt-wcas-search-input").dgwtWcasAutocomplete(window.dgwt_wcas.config)}),t(document).ready(function(){setTimeout(function(){e(),s()},500)}),t(window).on("load",function(){setTimeout(function(){e(),s()},500),void 0!==window.elementorFrontend&&void 0!==window.elementorFrontend.documentsManager&&void 0!==window.elementorFrontend.documentsManager.documents&&t.each(elementorFrontend.documentsManager.documents,function(t,e){void 0!==e.getModal&&e.getModal&&e.getModal().on("show",function(){setTimeout(function(){s()},300)})})})}()});
1
+ !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports&&"function"==typeof require?t(require("jquery")):t(jQuery)}(function(t){"use strict";var e={escapeRegExChars:function(t){return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(t){var e=document.createElement("div");return e.className=t,e.style.position="absolute",e.style.display="none",e.setAttribute("unselectable","on"),e},highlight:function(t,s){if(dgwt_wcas.is_premium){var i,o=s.split(/ /),a=!1;if(o)for(o=o.sort(function(t,e){return e.length-t.length}),i=0;i<o.length;i++)if(o[i]&&o[i].length>1){var n=o[i].replace(/[\^\@]/g,"");if(n.length>0){var r="("+e.escapeRegExChars(n.trim())+")";t=t.replace(new RegExp(r,"gi"),"^^$1@@"),a=!0}}a&&(t=(t=t.replace(/\^\^/g,"<strong>")).replace(/@@/g,"</strong>"))}else r="("+e.escapeRegExChars(s)+")",t=t.replace(new RegExp(r,"gi"),"<strong>$1</strong>");return t},debounce:function(t,e){var i,o=(new Date).getUTCMilliseconds();if(0===s.id.length)return s.id=o,void t();s.id=o,i=setTimeout(function(){o===s.id?(t(),s.id=""):clearTimeout(i)},e)},mouseHoverDebounce:function(e,s,i){var o;o=setTimeout(function(){t(s+":hover").length>0?e():clearTimeout(o)},i)},getActiveInstance:function(){var e,s=t(".dgwt-wcas-search-wrapp.dgwt-wcas-active");return s.length>0&&s.each(function(){var s=t(this).find(".dgwt-wcas-search-input");if("object"==typeof s.data("autocomplete"))return e=s.data("autocomplete"),!1}),e}},s={id:"",callback:null,ajaxSettings:null,object:null},i=27,o=9,a=13,n=38,r=39,l=40,c=t.noop;function d(e,s){this.element=e,this.el=t(e),this.suggestions=[],this.badQueries=[],this.selectedIndex=-1,this.currentValue=this.element.value,this.timeoutId=null,this.cachedResponse={},this.cachedDetails={},this.cachedPrices={},this.detailsRequestsSent=[],this.onChangeTimeout=null,this.onChange=null,this.isLocal=!1,this.suggestionsContainer=null,this.detailsContainer=null,this.autoAligmentprocess=null,this.noSuggestionsContainer=null,this.latestActivateSource="",this.actionTriggerSource="",this.options=t.extend(!0,{},d.defaults,s),this.classes={selected:"dgwt-wcas-suggestion-selected",suggestion:"dgwt-wcas-suggestion",suggestionsContainerOrientTop:"dgwt-wcas-suggestions-wrapp--top"},this.hint=null,this.hintValue="",this.selection=null,this.overlayMobileState="off",this.initialize(),this.setOptions(s)}d.utils=e,t.DgwtWcasAutocompleteSearch=d,d.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,width:"auto",containerDetailsWidth:"auto",showDetailsPanel:!1,showImage:!1,showPrice:!1,showSKU:!1,showDescription:!1,showSaleBadge:!1,showFeaturedBadge:!1,dynamicPrices:!1,saleBadgeText:"sale",featuredBadgeText:"featured",minChars:3,maxHeight:600,deferRequestBy:0,params:{},formatResult:function(t,s,i,o){if(!s)return t;i&&(t=e.highlight(t,s));if(!o.convertHtml)return t;return t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/&lt;sup/g,"<sup").replace(/&lt;\/sup/g,"</sup").replace(/sup&gt;/g,"sup>").replace(/&lt;(\/?(strong|b|br))&gt;/g,"<$1>")},delimiter:null,zIndex:999999999,type:"GET",noCache:!1,isRtl:!1,onSearchStart:c,onSearchComplete:c,onSearchError:c,preserveInput:!1,searchFormClass:"dgwt-wcas-search-wrapp",containerClass:"dgwt-wcas-suggestions-wrapp",containerDetailsClass:"dgwt-wcas-details-wrapp",searchInputClass:"dgwt-wcas-search-input",preloaderClass:"dgwt-wcas-preloader",closeTrigger:"dgwt-wcas-close",formClass:"dgwt-wcas-search-form",tabDisabled:!1,dataType:"text",currentRequest:null,triggerSelectOnValidInput:!0,isPremium:!1,overlayMobile:!1,preventBadQueries:!0,lookupFilter:function(t,e,s){return-1!==t.value.toLowerCase().indexOf(s)},paramName:"query",transformResult:function(e){return"string"==typeof e?t.parseJSON(e):e},noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1,positionFixed:!1,debounceWaitMs:400,sendGAEvents:!0,enableGASiteSearchModule:!1,showProductVendor:!1},d.prototype={initialize:function(){var s=this;s.element.setAttribute("autocomplete","off"),s.createContainers(),s.registerEventsSearchBar(),s.registerEventsSuggestions(),s.registerEventsDetailsPanel(),s.registerIconHandler(),s.registerEventsFixedMenu(),s.fixPositionCapture=function(){s.adjustContainerWidth(),s.visible&&s.fixPosition()},t(window).on("resize.autocomplete",function(){var t=e.getActiveInstance();void 0!==t&&t.fixPositionCapture()}),s.initMobileMode(),s.hideAfterClickOutsideListener(),s.suggestionsContainer.addClass("js-dgwt-wcas-initialized"),s.detailsContainer&&s.detailsContainer.length>0&&s.detailsContainer.addClass("js-dgwt-wcas-initialized")},createContainers:function(e){var s=this.options;0==t("."+s.containerClass).length?(this.suggestionsContainer=t(d.utils.createNode(s.containerClass)),this.suggestionsContainer.appendTo(s.appendTo||"body"),this.suggestionsContainer.addClass("woocommerce"),!0===s.showImage&&this.suggestionsContainer.addClass("dgwt-wcas-has-img"),!0===s.showPrice&&this.suggestionsContainer.addClass("dgwt-wcas-has-price"),!0===s.showDescription&&this.suggestionsContainer.addClass("dgwt-wcas-has-desc"),!0===s.showSKU&&this.suggestionsContainer.addClass("dgwt-wcas-has-sku"),!0===s.showHeadings&&this.suggestionsContainer.addClass("dgwt-wcas-has-headings"),"auto"!==s.width&&this.suggestionsContainer.width(s.width)):this.suggestionsContainer=t("."+this.options.containerClass),this.canShowDetailsBox()&&(0==t("."+s.containerDetailsClass).length?(this.detailsContainer=t(d.utils.createNode(s.containerDetailsClass)),this.detailsContainer.appendTo(s.appendTo||"body"),this.detailsContainer.addClass("woocommerce")):this.detailsContainer=t("."+s.containerDetailsClass))},registerEventsSearchBar:function(){var s=this;t(document).on("click.autocomplete","."+s.options.closeTrigger,function(){var s=e.getActiveInstance();s.hide(),s.clear(!1),s.hideCloseButton(),t(this).closest("."+s.options.searchFormClass).find("."+s.options.searchInputClass).val("").focus()}),s.el.closest("."+s.options.formClass).on("submit.autocomplete",function(e){s.suggestions.length>0&&t.each(s.suggestions,function(t,i){if(void 0!==i.type&&"product_variation"==i.type)return s.select(t),e.preventDefault(),!1})}),"complete"===document.readyState?s.positionPreloader():t(window).on("load",function(){s.positionPreloader()}),s.el.on("keydown.autocomplete",function(t){s.onKeyPress(t)}),s.el.on("keyup.autocomplete",function(t){s.onKeyUp(t)}),s.el.on("blur.autocomplete",function(){s.onBlur()}),s.el.on("focus.autocomplete",function(){s.onFocus()}),s.el.on("change.autocomplete",function(t){s.onKeyUp(t)}),s.el.on("input.autocomplete",function(t){s.onKeyUp(t)})},registerEventsSuggestions:function(){var s="."+this.classes.suggestion;if(!this.getSuggestionsContainer().hasClass("js-dgwt-wcas-initialized")){t(document).on("mouseenter.autocomplete",s,function(){var s=e.getActiveInstance();if(void 0!==s){var i=t(this).data("index"),o='.dgwt-wcas-suggestion[data-index="'+i+'"]',a=s.canShowDetailsBox()?100:1;s.selectedIndex!=i&&e.mouseHoverDebounce(function(){s.selectedIndex!==i&&(s.latestActivateSource="mouse",s.getDetails(s.suggestions[i]),s.activate(i))},o,a)}});var i=!1;t(document).on("click.autocomplete",s,function(){if(!i){var s=e.getActiveInstance();s.actionTriggerSource="click",i=!0,s.select(t(this).data("index"))}}),t(document).on("mousedown.autocomplete",s,function(e){"number"==typeof e.which&&1===e.which&&t(e.target)[0].click()}),t(document).on("click.autocomplete","."+this.options.containerClass,function(){var t=e.getActiveInstance();clearTimeout(t.blurTimeoutId)})}},registerEventsDetailsPanel:function(){var s=this.getDetailsContainer();this.canShowDetailsBox()&&!s.hasClass("js-dgwt-wcas-initialized")&&(t(document).on("click.autocomplete","."+this.options.containerDetailsClass,function(){var t=e.getActiveInstance();clearTimeout(t.blurTimeoutId)}),t(document).on("change",'[name="js-dgwt-wcas-quantity"]',function(e){t(this).closest(".js-dgwt-wcas-pd-addtc").find("[data-quantity]").attr("data-quantity",t(this).val())}))},registerIconHandler:function(){var s=this,i=s.getFormWrapper(),o=i.find("."+s.options.formClass);i.on("click",".js-dgwt-wcas-search-icon-handler",function(t){var e=i.find("."+s.options.searchInputClass);if(i.hasClass("dgwt-wcas-layout-icon-open"))s.hide(),o.hide(!0),i.removeClass("dgwt-wcas-layout-icon-open");else{var a=i.find(".dgwt-wcas-search-icon-arrow");o.hide(),a.hide(),i.addClass("dgwt-wcas-layout-icon-open"),s.positionIconSearchMode(i),o.fadeIn(200,function(){a.show(),s.positionPreloader(i),e.focus()})}}),0==t(".js-dgwt-wcas-initialized").length&&t(".js-dgwt-wcas-search-icon-handler").length>0&&t(document).click(function(i){if(t(".dgwt-wcas-layout-icon-open").length){var o=t(i.target);if(!(o.closest("."+s.options.searchFormClass).length>0||o.closest("."+s.options.containerClass).length>0||o.closest("."+s.options.containerDetailsClass).length>0)){var a=e.getActiveInstance();if(void 0!==a){var n=a.getFormWrapper().find("."+s.options.formClass);n.hide(),a.hide(!0),n.css({left:"0"})}s.hideIconModeSearch()}}}),t(window).on("resize.autocomplete",function(){s.applyFlexibleMode()}),"complete"==document.readyState?s.applyFlexibleMode():t(window).on("load",function(){s.applyFlexibleMode()})},registerEventsFixedMenu:function(){var e=this;t(window).on("scroll",function(){if(e.suggestions.length>0&&e.elementOrParentIsFixed(e.getFormWrapper()))if(0===t(window).scrollTop()){[1,10,20,30,40,50,60,70,80,90,120,140,170,200,250,400,700,1e3,2e3].forEach(function(t){setTimeout(function(){e.fixHeight(),e.fixPositionCapture()},t)})}else e.fixHeight(),e.fixPositionCapture()})},initMobileMode:function(){var t=this,e=t.getFormWrapper();e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&t.isMobileMode()&&(e.prepend('<div class="js-dgwt-wcas-enable-mobile-form dgwt-wcas-enable-mobile-form"></div>'),e.find(".js-dgwt-wcas-enable-mobile-form").on("click",function(e){t.enableOverlayMobile()}))},applyFlexibleMode:function(){var e=t(".js-dgwt-wcas-layout-icon-flexible");e.length&&(this.isMobileMode()?(e.addClass("js-dgwt-wcas-layout-icon"),e.addClass("dgwt-wcas-layout-icon")):(e.removeClass("js-dgwt-wcas-layout-icon"),e.removeClass("dgwt-wcas-layout-icon")),e.addClass("dgwt-wcas-layout-icon-flexible-loaded"))},onFocus:function(){t("."+this.options.searchFormClass).removeClass("dgwt-wcas-active"),this.getFormWrapper().addClass("dgwt-wcas-active"),this.fixPositionCapture(),this.el.val().length>=this.options.minChars&&this.onValueChange()},onBlur:function(){var e=this,s=e.options,i=e.el.val(),o=e.getQuery(i);e.isMobileMode()||(e.blurTimeoutId=setTimeout(function(){e.hide(),e.selection&&e.currentValue!==o&&(s.onInvalidateSelection||t.noop).call(e.element)},200))},abortAjax:function(){this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=null)},setOptions:function(e){var s=this,i=s.getSuggestionsContainer(),o=t.extend({},s.options,e);(s.isLocal=Array.isArray(o.lookup),s.isLocal&&(o.lookup=s.verifySuggestionsFormat(o.lookup)),o.orientation=s.validateOrientation(o.orientation,"bottom"),i.css({"max-height":s.canShowDetailsBox()?"none":o.maxHeight+"px",width:o.width+"px","z-index":o.zIndex}),!0===o.showDetailsPanel)&&s.getDetailsContainer().css({"z-index":o.zIndex-1});o.onSearchComplete=function(){s.getFormWrapper().removeClass("dgwt-wcas-processing"),s.preloader("hide","form","dgwt-wcas-inner-preloader"),s.showCloseButton()},this.options=o},clearCache:function(){this.cachedResponse={},this.cachedDetails={},this.cachedPrices={},this.badQueries=[]},clear:function(t){t&&this.clearCache(),this.currentValue="",this.suggestions=[]},disable:function(){this.disabled=!0,clearTimeout(this.onChangeTimeout),this.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var t=this.getFormOffset();this.getSuggestionsContainer().css(t),this.canShowDetailsBox()&&this.fixPositionDetailsBox()},fixPositionDetailsBox:function(){var e=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.getDetailsContainer(),o=this.getFormOffset(),a=o.left;if(0==i.length)return!1;var n=!0===this.options.isRtl?1:2,r=Math.round(o.left);if(o.left=r+Math.round(s.width()+n),i.css(o),e.width()>=550)return t("body").removeClass("dgwt-wcas-details-outside"),t("body").removeClass("dgwt-wcas-details-right"),t("body").removeClass("dgwt-wcas-details-left"),void(!0===this.options.isRtl&&(s.css("left",r+Math.round(i.width()+n)+"px"),i.css("left",a+"px")));var l=t(window).width(),c=i.width(),d=i.offset();t("body").addClass("dgwt-wcas-details-outside"),!0===this.options.isRtl&&(o.left=o.left+1);var g=!1,u=!1;l<d.left+c&&(g=!0,t("body").removeClass("dgwt-wcas-details-right"),t("body").addClass("dgwt-wcas-details-left"),i.css("left",Math.round(parseFloat(s.css("left").replace("px","")))-i.outerWidth()+"px")),(d=i.offset()).left<1&&(u=!0,t("body").removeClass("dgwt-wcas-details-left"),t("body").addClass("dgwt-wcas-details-right")),u&&g?(t("body").removeClass("dgwt-wcas-details-left"),t("body").removeClass("dgwt-wcas-details-right"),t("body").addClass("dgwt-wcas-details-notfit")):t("body").removeClass("dgwt-wcas-details-notfit")},fixHeight:function(){if(1!=this.options.showDetailsPanel)return!1;var t=this.getSuggestionsContainer(),e=this.getDetailsContainer();t.css("height","auto"),e.css("height","auto");var s=t.outerHeight(),i=e.outerHeight();return t.find(".dgwt-wcas-suggestion:last-child").removeClass("dgwt-wcas-suggestion-no-border-bottom"),!(s<=340&&i<=340)&&(t.find(".dgwt-wcas-suggestion:last-child").addClass("dgwt-wcas-suggestion-no-border-bottom"),i<s&&e.css("height",s+"px"),s<i&&t.css("height",i+"px"),!1)},automaticAlignment:function(){var t=this,e=t.getFormWrapper().find(".dgwt-wcas-search-input"),s=t.getSuggestionsContainer(),i=t.getDetailsContainer();if(null==t.autoAligmentprocess){var o=[e.width(),s.height()];t.options.showDetailsPanel&&(o[2]=i.height()),t.autoAligmentprocess=setInterval(function(){var a=[e.width(),s.height()];t.options.showDetailsPanel&&(a[2]=i.height());for(var n=0;n<o.length;n++)if(o[n]!=a[n]){t.fixHeight(),t.fixPositionCapture(),o=a;break}t.options.showDetailsPanel&&(i.find(".dgwt-wcas-details-inner").height()-i.height()>2&&t.fixHeight())},10)}},getFormOffset:function(){var e=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.options.orientation,o=e.outerHeight(),a=this.el.outerHeight(),n=this.el.offset(),r={top:n.top,left:n.left};if("auto"===i){var l=t(window).height(),c=t(window).scrollTop(),d=-c+n.top-o,g=c+l-(n.top+a+o);i=Math.max(d,g)===d?"top":"bottom"}if("top"===i){s[0].getBoundingClientRect().top;var u=e[0].getBoundingClientRect().top;s.css("height","auto"),u<s.height()&&s.height(u-10),r.top+=-s.outerHeight()}else r.top+=a;return r},getFormWrapper:function(){return this.el.closest("."+this.options.searchFormClass)},getSuggestionsContainer:function(){return t("."+this.options.containerClass)},getDetailsContainer:function(){return t("."+this.options.containerDetailsClass)},scrollDownSuggestions:function(){var t=this.getSuggestionsContainer();t[0].scrollTop=t[0].scrollHeight},isCursorAtEnd:function(){var t,e=this.el.val().length,s=this.element.selectionStart;return"number"==typeof s?s===e:!document.selection||((t=document.selection.createRange()).moveStart("character",-e),e===t.text.length)},onKeyPress:function(t){if(this.disabled||this.visible||t.which!==l||!this.currentValue){if(!this.disabled&&this.visible){switch(t.which){case i:this.el.val(this.currentValue),this.hide();break;case r:if(this.hint&&this.options.onHint&&this.isCursorAtEnd()){this.selectHint();break}return;case o:if(this.hint&&this.options.onHint)return void this.selectHint();if(-1===this.selectedIndex)return void this.hide();if(this.select(this.selectedIndex),!1===this.options.tabDisabled)return;break;case a:if(-1===this.selectedIndex)return void this.hide();this.actionTriggerSource="enter",this.select(this.selectedIndex);break;case n:this.moveUp();break;case l:this.moveDown();break;default:return}t.stopImmediatePropagation(),t.preventDefault()}}else this.suggest()},onKeyUp:function(t){var e=this;if(!e.disabled){switch(t.which){case n:case l:return}clearTimeout(e.onChangeTimeout),e.currentValue!==e.el.val()&&(e.findBestHint(),e.options.deferRequestBy>0?e.onChangeTimeout=setTimeout(function(){e.onValueChange()},e.options.deferRequestBy):e.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)this.ignoreValueChange=!1;else{var e=this.options,s=this.el.val(),i=this.getQuery(s);this.selection&&this.currentValue!==i&&(this.selection=null,(e.onInvalidateSelection||t.noop).call(this.element)),clearTimeout(this.onChangeTimeout),this.currentValue=s,this.selectedIndex=-1,e.triggerSelectOnValidInput&&this.isExactMatch(i)?this.select(0):i.length<e.minChars?(this.hideCloseButton(),this.hide()):this.getSuggestions(i)}},isExactMatch:function(t){var e=this.suggestions;return 1===e.length&&e[0].value.toLowerCase()===t.toLowerCase()},canShowDetailsBox:function(){return 1==this.options.showDetailsPanel&&!this.isMobileMode()},isMobileMode:function(){return t(window).width()<this.options.mobileBreakpoint},getQuery:function(e){var s,i=this.options.delimiter;return i?(s=e.split(i),t.trim(s[s.length-1])):e},getSuggestionsLocal:function(e){var s,i=this.options,o=e.toLowerCase(),a=i.lookupFilter,n=parseInt(i.lookupLimit,10);return s={suggestions:t.grep(i.lookup,function(t){return a(t,e,o)})},n&&s.suggestions.length>n&&(s.suggestions=s.suggestions.slice(0,n)),s},getSuggestions:function(i){var o,a,n,r,l=this,c=l.options,d=c.serviceUrl,g=l.getFormWrapper();c.params[c.paramName]=i,void 0!==dgwt_wcas.current_lang&&(c.params.l=dgwt_wcas.current_lang),c.params=l.applyCustomParams(c.params),l.preloader("show","form","dgwt-wcas-inner-preloader"),g.addClass("dgwt-wcas-processing"),!1!==c.onSearchStart.call(l.element,c.params)&&(a=c.ignoreParams?null:c.params,t.isFunction(c.lookup)?c.lookup(i,function(t){l.suggestions=t.suggestions,l.suggest(),l.selectFirstSuggestion(t.suggestions),c.onSearchComplete.call(l.element,i,t.suggestions)}):(l.isLocal?o=l.getSuggestionsLocal(i):(t.isFunction(d)&&(d=d.call(l.element,i)),n=d+"?"+t.param(a||{}),o=l.cachedResponse[n]),o&&Array.isArray(o.suggestions)?(l.suggestions=o.suggestions,l.suggest(),l.selectFirstSuggestion(o.suggestions),c.onSearchComplete.call(l.element,i,o.suggestions)):l.isBadQuery(i)?c.onSearchComplete.call(l.element,i,[]):(l.abortAjax(),r={url:d,data:a,type:c.type,dataType:c.dataType},t.extend(r,c.ajaxSettings),s.object=l,s.ajaxSettings=r,e.debounce(function(){var e=s.object,o=s.ajaxSettings;e.currentRequest=t.ajax(o).done(function(t){var s;e.currentRequest=null,void 0!==(s=e.options.transformResult(t,i)).suggestions&&(e.processResponse(s,i,n),e.selectFirstSuggestion(s.suggestions),1===s.suggestions.length&&void 0!==s.suggestions[0].type&&"no-results"===s.suggestions[0].type?e.gaEvent(i,"Autocomplete Search without results"):e.gaEvent(i,"Autocomplete Search with results")),e.fixPositionCapture(),e.options.onSearchComplete.call(e.element,i,s.suggestions),e.updatePrices()}).fail(function(t,s,o){e.options.onSearchError.call(e.element,i,t,s,o)})},c.debounceWaitMs))))},getDetails:function(e){var s=this;if(!s.canShowDetailsBox())return!1;if(null!=e&&void 0!==e.type&&("string"!=typeof e.more_products||"more_products"!==e.more_products)){s.fixHeight();var i,o=s.getDetailsContainer(),a=s.prepareSuggestionObjectID(e);if(null!=(i=s.cachedDetails[a]))o.html(i.html),s.fixHeight(),s.fixPositionCapture();else{var n={action:dgwt_wcas.action_result_details,items:[]};if(t.each(s.suggestions,function(t,e){if(void 0!==e.type&&"more_products"!=e.type&&"headline"!=e.type){var i={objectID:s.prepareSuggestionObjectID(e),value:null!=e.value?e.value:""};n.items.push(i)}}),o.html(""),s.preloader("show","details","",!0),-1!=t.inArray(a,s.detailsRequestsSent))return;s.detailsRequestsSent.push(a),t.ajax({data:n,type:"post",url:dgwt_wcas.ajax_details_endpoint,success:function(t){var e="string"==typeof t?jQuery.parseJSON(t):t;if(void 0!==e.items)for(var i=0;i<e.items.length;i++){var a=e.items[i].objectID;if(s.cachedDetails[a]={html:e.items[i].html},void 0!==e.items[i].price&&e.items[i].price.length>0&&(s.cachedPrices[a]=e.items[i].price),void 0!==e.items[i].imageSrc&&e.items[i].imageSrc.length>0)(new Image).src=e.items[i].imageSrc}s.preloader("hide","details","",!0);var n=s.prepareSuggestionObjectID(s.suggestions[s.selectedIndex]);null!=s.cachedDetails[n]?o.html(s.cachedDetails[n].html):o.html(""),s.fixPositionCapture(),s.fixHeight(),s.updatePrices(!0)},error:function(t,e){s.preloader("hide","details","",!0),o.html(t),s.fixPositionCapture(),s.fixHeight()}})}t(document).trigger("dgwtWcasDetailsPanelLoaded",s)}},updatePrices:function(e){var s,i,o=this,a=[];if(o.options.showPrice&&o.options.dynamicPrices&&0!=o.suggestions.length){for(s=0;s<o.suggestions.length;s++)if(void 0!==o.suggestions[s].type&&("product"==o.suggestions[s].type||"product_variation"==o.suggestions[s].type)){var n="product__"+o.suggestions[s].post_id;void 0!==o.cachedPrices[n]?o.updatePrice(s,o.cachedPrices[n]):(o.applyPreloaderForPrice(s),a.push(o.suggestions[s].post_id))}if(!e&&a.length>0){var r={action:void 0===dgwt_wcas.action_get_prices?"dgwt_wcas_get_prices":dgwt_wcas.action_get_prices,items:a};t.ajax({data:r,type:"post",url:dgwt_wcas.ajax_prices_endpoint,success:function(t){if(void 0!==t.success&&t.success&&t.data.length>0)for(s=0;s<t.data.length;s++){var e=t.data[s].id,a=t.data[s].price;if(o.suggestions.length>0)for(i=0;i<o.suggestions.length;i++)if(void 0!==o.suggestions[i].type&&("product"==o.suggestions[i].type||"product_variation"==o.suggestions[i].type)&&o.suggestions[i].post_id==e){var n="product__"+e;o.cachedPrices[n]=a,o.updatePrice(i,a)}}},error:function(t,e){}})}}},updatePrice:function(e,s){if(void 0!==this.suggestions[e]){this.suggestions[e].price=s;var i=t(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+e+'"] .dgwt-wcas-sp');i.length&&i.html(s)}},applyCustomParams:function(t){if("object"==typeof dgwt_wcas.custom_params){var e=dgwt_wcas.custom_params;for(var s in e)t[s]=e[s]}var i=this.el.data("custom-params");if("object"==typeof i)for(var s in i)t[s]=i[s];return t},applyPreloaderForPrice:function(e){if(void 0!==this.suggestions[e]){var s=t(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+e+'"] .dgwt-wcas-sp');s.length&&s.html('<div class="dgwt-wcas-preloader-price"><div class="dgwt-wcas-preloader-price-inner"> <div></div><div></div><div></div></div></div>')}},prepareSuggestionObjectID:function(t){var e="";return void 0!==t&&void 0!==t.type&&(null!=t.post_id&&(e=t.type+"__"+t.post_id,"product_variation"===t.type&&(e+="__"+t.variation_id),void 0!==t.post_type&&(e=t.type+"__"+t.post_id+"__"+t.post_type)),null!=t.term_id&&null!=t.taxonomy&&(e=t.type+"__"+t.term_id+"__"+t.taxonomy)),e},selectFirstSuggestion:function(e){var s=0,i=!1;this.canShowDetailsBox()&&("undefined"!=e&&e.length>0&&t.each(this.suggestions,function(t,e){if(void 0!==e.type&&"more_products"!=e.type&&"headline"!=e.type&&"no-results"!=e.type)return s=t,!1;void 0!==e.type&&"no-results"!==e.type||(i=!0)}),i||(this.latestActivateSource="system",this.getDetails(e[s]),this.activate(s)))},isBadQuery:function(t){if(!this.options.preventBadQueries)return!1;for(var e=this.badQueries,s=e.length;s--;)if(0===t.indexOf(e[s]))return!0;return!1},hide:function(e){this.getFormWrapper();var s=this.getSuggestionsContainer(),i=this.getDetailsContainer();t.isFunction(this.options.onHide)&&this.visible&&this.options.onHide.call(this.element,container),this.visible=!1,this.selectedIndex=-1,clearTimeout(this.onChangeTimeout),s.hide(),s.removeClass(this.classes.suggestionsContainerOrientTop),i.hide(),t("body").removeClass("dgwt-wcas-open"),t("body").removeClass("dgwt-wcas-block-scroll"),t("body").removeClass("dgwt-wcas-is-details"),t("body").removeClass("dgwt-wcas-full-width"),t("body").removeClass("dgwt-wcas-nores"),t("body").removeClass("dgwt-wcas-details-outside"),t("body").removeClass("dgwt-wcas-details-right"),t("body").removeClass("dgwt-wcas-details-left"),null!=this.autoAligmentprocess&&(clearInterval(this.autoAligmentprocess),this.autoAligmentprocess=null),"boolean"==typeof e&&e&&(this.hideCloseButton(),this.currentValue="",this.suggestions=[]),this.signalHint(null)},positionIconSearchMode:function(e){var s,i=e.find("."+this.options.formClass),o=i.width(),a=t(window).width(),n=e[0].getBoundingClientRect().left;i[0].getBoundingClientRect().left;var r=(n+10)/a;s=Math.floor(o*r*-1),i.css({left:s+"px"})},hideIconModeSearch:function(){var e=t(".dgwt-wcas-layout-icon-open");e.length>0&&e.removeClass("dgwt-wcas-layout-icon-open")},hideAfterClickOutsideListener:function(){var e=this;e.isMobileMode()||t(document).mouseup(function(s){if(e.visible){e.getSuggestionsContainer(),e.getDetailsContainer();var i=!(t(s.target).closest("."+e.options.searchFormClass).length>0||t(s.target).hasClass(e.options.searchFormClass)),o=!(t(s.target).closest("."+e.options.containerClass).length>0||t(s.target).hasClass(e.options.containerClass));if(e.canShowDetailsBox()){var a=!(t(s.target).closest("."+e.options.containerDetailsClass).length>0||t(s.target).hasClass(e.options.containerDetailsClass));i&&o&&a&&e.hide()}else i&&o&&e.hide()}})},suggest:function(){if(this.suggestions.length){var e,s=this,i=s.options,o=i.groupBy,a=i.formatResult,n=s.getQuery(s.currentValue),r=s.classes.suggestion,l=s.classes.selected,c=s.getSuggestionsContainer(),d=s.getDetailsContainer(),g=t(s.noSuggestionsContainer),u=i.beforeRender,h="";i.triggerSelectOnValidInput&&s.isExactMatch(n)?s.select(0):(t("body").removeClass("dgwt-wcas-nores"),t.each(s.suggestions,function(s,l){var c="",g=!1;if(o&&(h+=function(t,s){var i=t.data[o];return e===i?"":'<div class="autocomplete-group"><strong>'+(e=i)+"</strong></div>"}(l,0)),void 0===l.type||"product"!=l.type&&"product_variation"!=l.type){var u,p=r,w="dgwt-wcas-st",f="",m="",v="",C=!0;"product_cat"===l.taxonomy?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-cat",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.category+"</span>"),void 0!==l.breadcrumbs&&l.breadcrumbs&&(v=l.breadcrumbs+" &gt; "+l.value,m+='<span class="dgwt-wcas-st-breadcrumbs">'+dgwt_wcas.labels.in+" "+l.breadcrumbs+"</span>")):"product_tag"===l.taxonomy?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tag",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.tag+"</span>")):i.isPremium&&l.taxonomy===i.taxonomyBrands?(p+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-brand",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.brand+"</span>")):i.isPremium&&"vendor"===l.type?(p+=" dgwt-wcas-suggestion-vendor dgwt-wcas-suggestion-vendor",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.vendor+"</span>")):i.isPremium&&"post"===l.type?(p+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-tp-post",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.post+"</span>")):i.isPremium&&"page"===l.type?(p+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-pt-page",i.showHeadings||(f+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.page+"</span>")):"more_products"===l.type?(p+=" js-dgwt-wcas-suggestion-more dgwt-wcas-suggestion-more",w="dgwt-wcas-st-more",l.value=dgwt_wcas.labels.show_more+" ("+l.total+")",C=!1):i.showHeadings&&"headline"===l.type?(p+=" js-dgwt-wcas-suggestion-headline dgwt-wcas-suggestion-headline",void 0!==dgwt_wcas.labels[l.value+"_plu"]&&(l.value=dgwt_wcas.labels[l.value+"_plu"]),C=!1):(p+=" dgwt-wcas-suggestion-nores",l.value=dgwt_wcas.labels.no_results,C=!1,!0===i.showDetailsPanel&&d.html(""),t("body").addClass("dgwt-wcas-nores")),void 0!==l.image_src&&l.image_src&&(u=!0),v=v.length>0?' title="'+v+'"':"",h+='<div class="'+p+'" data-index="'+s+'">',u&&(h+='<span class="dgwt-wcas-si"><img src="'+l.image_src+'" /></span>',h+='<div class="dgwt-wcas-content-wrapp">'),h+="<span"+v+' class="'+w+'">',"vendor"===l.type?(h+='<span class="dgwt-wcas-st-title">'+f+a(l.value,n,C,i)+m+"</span>",l.shop_city&&(h+='<span class="dgwt-wcas-vendor-city"><span> - </span>'+a(l.shop_city,n,!0,i)+"</span>"),void 0!==l.desc&&l.desc&&(h+='<span class="dgwt-wcas-sd">'+a(l.desc,n,!0,i)+"</span>")):h+=f+a(l.value,n,C,i)+m,h+="</span>",h+=u?"</div>":"",h+="</div>"}else{!0===i.showImage&&void 0!==l.thumb_html&&(g=!0);var b="product_variation"===l.type?" dgwt-wcas-suggestion-product-var":"";if(c+=void 0!==l.post_id?'data-post-id="'+l.post_id+'" ':"",c+=void 0!==l.taxonomy?'data-taxonomy="'+l.taxonomy+'" ':"",c+=void 0!==l.term_id?'data-term-id="'+l.term_id+'" ':"",h+='<div class="'+r+" dgwt-wcas-suggestion-product"+b+'" data-index="'+s+'" '+c+">",g&&(h+='<span class="dgwt-wcas-si">'+l.thumb_html+"</span>"),h+=g?'<div class="dgwt-wcas-content-wrapp">':"",h+='<span class="dgwt-wcas-st">',h+='<span class="dgwt-wcas-st-title">'+a(l.value,n,!0,i)+"</span>",!0===i.showSKU&&void 0!==l.sku&&l.sku.length>0&&(h+='<span class="dgwt-wcas-sku">('+dgwt_wcas.labels.sku_label+" "+a(l.sku,n,!0,i)+")</span>"),!0===i.showDescription&&void 0!==l.desc&&l.desc&&(h+='<span class="dgwt-wcas-sd">'+a(l.desc,n,!0,i)+"</span>"),!0===i.showProductVendor&&void 0!==l.vendor&&l.vendor){var y='<span class="dgwt-wcas-product-vendor"><span class="dgwt-wcas-product-vendor-label">'+dgwt_wcas.labels.vendor_sold_by+" </span>"+l.vendor+"</span>";void 0!==l.vendor_url&&l.vendor_url?h+='<a href="'+l.vendor_url+'">'+y+"</a>":h+=y}h+="</span>",!0===i.showPrice&&void 0!==l.price&&(h+='<span class="dgwt-wcas-sp">'+l.price+"</span>"),!0===i.showFeaturedBadge&&!0===l.on_sale&&(h+='<span class="dgwt-wcas-badge dgwt-wcas-badge-os">'+i.saleBadgeText+"</span>"),!0===i.showFeaturedBadge&&!0===l.featured&&(h+='<span class="dgwt-wcas-badge dgwt-wcas-badge-f">'+i.featuredBadgeText+"</span>"),h+=g?"</div>":"",h+="</div>"}}),this.adjustContainerWidth(),g.detach(),c.html(h),t.isFunction(u)&&u.call(s.element,c,s.suggestions),c.show(),t("body").addClass("dgwt-wcas-open"),s.automaticAlignment(),!0===i.showDetailsPanel&&(t("body").addClass("dgwt-wcas-is-details"),d.show(),s.fixHeight()),i.autoSelectFirst&&(s.selectedIndex=0,c.scrollTop(0),c.children("."+r).first().addClass(l)),s.visible=!0,s.fixPositionCapture(),"top"===s.options.orientation&&(s.getSuggestionsContainer().addClass(s.classes.suggestionsContainerOrientTop),t("body").addClass("dgwt-wcas-block-scroll"),setTimeout(function(){s.scrollDownSuggestions()},300)),s.findBestHint())}else this.hide()},adjustContainerWidth:function(){var e,s=this.options,i=t("body"),o=this.getFormWrapper(),a=this.getSuggestionsContainer(),n=this.getDetailsContainer(),r=this.getFormOffset();if(o.length){var l=getComputedStyle(o[0]).width;if(l=Math.round(parseFloat(l.replace("px",""))),"auto"===s.width&&(e=this.el.outerWidth(),a.css("width",e+"px")),this.canShowDetailsBox()){if(o.width()>=550)return i.addClass("dgwt-wcas-full-width"),l%2==0?(a.css("width",Math.round(l/2)),n.css("width",Math.round(l/2))):(a.css("width",Math.floor(l/2)),n.css("width",Math.ceil(l/2))),i.removeClass("dgwt-wcas-details-left"),i.removeClass("dgwt-wcas-details-right"),void(!0===s.isRtl?n.css("left","0"):a.css("left",l/2+r.left+"px"));i.addClass("dgwt-wcas-details-right")}}},positionPreloader:function(e){var s="object"==typeof e?e.find(".dgwt-wcas-search-submit"):t(".dgwt-wcas-search-submit");s.length>0&&s.each(function(){var e=t(this).closest(".dgwt-wcas-search-wrapp").find(".dgwt-wcas-preloader");1==dgwt_wcas.is_rtl?e.css("left",6+t(this).outerWidth()+"px"):e.css("right",t(this).outerWidth()+"px")})},findBestHint:function(){var e=this.el.val().toLowerCase(),s=null;e&&(t.each(this.suggestions,function(t,i){var o=0===i.value.toLowerCase().indexOf(e);return o&&(s=i),!o}),this.signalHint(s))},signalHint:function(e){var s="";e&&(s=this.currentValue+e.value.substr(this.currentValue.length)),this.hintValue!==s&&(this.hintValue=s,this.hint=e,(this.options.onHint||t.noop)(s))},preloader:function(e,s,i,o){var a,n,r="dgwt-wcas-preloader-wrapp",l=null==i?r:r+" "+i;if("form"===s?n=this.getFormWrapper().find(".dgwt-wcas-preloader"):"details"===s&&(n=this.getDetailsContainer()),1==dgwt_wcas.show_preloader&&0!=n.length)if(!0===o)if("hide"!==e){if("show"===e){var c=this.options.isRtl?"-rtl":"";a='<div class="'+l+'"><img class="dgwt-wcas-placeholder-preloader" src="'+dgwt_wcas.img_url+"placeholder"+c+'.png" /></div>',n.html(a)}}else t(r).remove();else"hide"===e?(n.removeClass(i),n.html("")):(n.addClass(i),"string"==typeof dgwt_wcas.preloader_icon&&n.html(dgwt_wcas.preloader_icon))},verifySuggestionsFormat:function(e){return e.length&&"string"==typeof e[0]?t.map(e,function(t){return{value:t,data:null}}):e},validateOrientation:function(e,s){return e=t.trim(e||"").toLowerCase(),-1===t.inArray(e,["auto","bottom","top"])&&(e=s),e},processResponse:function(t,e,s){var i=this.options;t.suggestions=this.verifySuggestionsFormat(t.suggestions),i.noCache||(this.cachedResponse[s]=t,i.preventBadQueries&&!t.suggestions.length&&this.badQueries.push(e)),e===this.getQuery(this.currentValue)&&("top"===this.options.orientation&&t.suggestions.reverse(),this.suggestions=t.suggestions,this.suggest())},activate:function(e){var s,i=this.classes.selected,o=this.getSuggestionsContainer(),a=o.find("."+this.classes.suggestion);return o.find("."+i).removeClass(i),this.selectedIndex=e,-1!==this.selectedIndex&&a.length>this.selectedIndex?(s=a.get(this.selectedIndex),t(s).addClass(i),s):null},selectHint:function(){var e=t.inArray(this.hint,this.suggestions);this.select(e)},select:function(t){this.hide(),this.onSelect(t)},moveUp:function(){if(-1!==this.selectedIndex){if(this.latestActivateSource="key",0===this.selectedIndex)return this.getSuggestionsContainer().children("."+this.classes.suggestion).first().removeClass(this.classes.selected),this.selectedIndex=-1,this.ignoreValueChange=!1,this.el.val(this.currentValue),void this.findBestHint();this.adjustScroll(this.selectedIndex-1,"up")}},moveDown:function(){this.selectedIndex!==this.suggestions.length-1&&(this.latestActivateSource="key",this.adjustScroll(this.selectedIndex+1,"down"))},adjustScroll:function(e,s){if("headline"===this.suggestions[e].type&&(e="down"===s?e+1:e-1),void 0!==this.suggestions[e]){var i=this.activate(e);if(this.getDetails(this.suggestions[e]),"more_products"!==this.suggestions[e].type&&i&&!this.canShowDetailsBox()){var o,a,n,r=this.getSuggestionsContainer(),l=t(i).outerHeight();o=i.offsetTop,n=(a=r.scrollTop())+this.options.maxHeight-l,o<a?r.scrollTop(o):o>n&&r.scrollTop(o-this.options.maxHeight+l),this.options.preserveInput||(this.ignoreValueChange=!0),this.signalHint(null)}}},onSelect:function(e){var s=this.options.onSelect,i=this.suggestions[e];void 0===i.type||"more_products"!==i.type&&("enter"!==this.actionTriggerSource||"key"==this.latestActivateSource||"product_variation"==i.type)?(this.currentValue=this.getValue(i.value),this.currentValue===this.el.val()||this.options.preserveInput||this.el.val(this.currentValue),i.url.length>0&&(window.location.href=i.url),this.signalHint(null),this.suggestions=[],this.selection=i,t.isFunction(s)&&s.call(this.element,i)):this.el.closest("form").trigger("submit")},getValue:function(t){var e,s,i=this.options.delimiter;return i?1===(s=(e=this.currentValue).split(i)).length?t:e.substr(0,e.length-s[s.length-1].length)+t:t},dispose:function(){this.el.off(".autocomplete").removeData("autocomplete"),t(window).off("resize.autocomplete",this.fixPositionCapture),t("."+this.options.containerClass).remove(),t("."+this.options.containerDetailsClass).remove()},enableOverlayMobile:function(){var e=this;if("on"!==e.overlayMobileState){e.overlayMobileState="on";var s,i=e.getFormWrapper(),o=e.getSuggestionsContainer(),a="";t("html").addClass("dgwt-wcas-overlay-mobile-on"),a+='<div class="js-dgwt-wcas-overlay-mobile dgwt-wcas-overlay-mobile">',a+='<div class="dgwt-wcas-om-bar js-dgwt-wcas-om-bar">',a+='<button class="dgwt-wcas-om-return js-dgwt-wcas-om-return">',"string"==typeof dgwt_wcas.back_icon?a+=dgwt_wcas.back_icon:(a+='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" color="#FFF">',a+='<path fill="#FFF" d="M14 6.125H3.351l4.891-4.891L7 0 0 7l7 7 1.234-1.234L3.35 7.875H14z" fill-rule="evenodd"></path>',a+="</svg>"),a+="</button>",a+="</div>",a+="</div>",t(e.options.mobileOverlayWrapper).append(a),(s=t(".js-dgwt-wcas-overlay-mobile")).css("zIndex",99999999999),i.after('<span class="js-dgwt-wcas-om-hook"></span>'),i.appendTo(".js-dgwt-wcas-om-bar"),o.appendTo(".js-dgwt-wcas-om-bar"),i.addClass("dgwt-wcas-search-wrapp-mobile"),i.hasClass("dgwt-wcas-has-submit")&&(i.addClass("dgwt-wcas-has-submit-off"),i.removeClass("dgwt-wcas-has-submit")),i.find("."+e.options.searchInputClass).focus(),t(document).on("click",".js-dgwt-wcas-om-return",function(t){e.disableOverlayMobile(s)})}},disableOverlayMobile:function(e){var s=this,i=s.getSuggestionsContainer(),o=t(".js-dgwt-wcas-om-bar").find("."+s.options.searchFormClass);o.hasClass("dgwt-wcas-has-submit-off")&&(o.removeClass("dgwt-wcas-has-submit-off"),o.addClass("dgwt-wcas-has-submit")),o.removeClass("dgwt-wcas-search-wrapp-mobile"),t("html").removeClass("dgwt-wcas-overlay-mobile-on"),i.appendTo("body"),i.removeAttr("body-scroll-lock-ignore"),t(".js-dgwt-wcas-om-hook").after(o),t(".js-dgwt-wcas-overlay-mobile").remove(),t(".js-dgwt-wcas-om-hook").remove(),setTimeout(function(){o.find("."+s.options.searchInputClass).val("");var t=o.find(".dgwt-wcas-close");o.length>0&&t.removeClass("dgwt-wcas-close"),s.hide()},150),s.overlayMobileState="off"},showCloseButton:function(){var t=void 0!==dgwt_wcas.close_icon?dgwt_wcas.close_icon:"",e=this.getFormWrapper().find("."+this.options.preloaderClass);e.addClass(this.options.closeTrigger),e.html(t)},hideCloseButton:function(){var t=this.getFormWrapper().find("."+this.options.closeTrigger);t.length&&(t.removeClass(this.options.closeTrigger),t.html(""))},elementOrParentIsFixed:function(e){var s=e.add(e.parents()),i=!1;return s.each(function(){if("fixed"===t(this).css("position"))return i=!0,!1}),i},gaEvent:function(t,e){if(this.options.sendGAEvents)try{if("undefined"!=typeof gtag)gtag("event","autocomplete_search",{event_label:t,event_category:e});else if("undefined"!=typeof ga){var s=ga.getAll()[0];s&&s.send({hitType:"event",eventCategory:e,eventAction:"autocomplete_search",eventLabel:t})}}catch(t){}if(this.options.enableGASiteSearchModule)try{if("undefined"!=typeof gtag)gtag("event","page_view",{page_path:"/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"});else if("undefined"!=typeof ga){var i=ga.getAll()[0];i&&(i.set("page","/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"),i.send("pageview"))}}catch(t){}}},t.fn.dgwtWcasAutocomplete=function(e,s){return arguments.length?this.each(function(){var i=t(this),o=i.data("autocomplete");"string"==typeof e?o&&"function"==typeof o[e]&&o[e](s):(o&&o.dispose&&o.dispose(),o=new d(this,e),i.data("autocomplete",o))}):this.first().data("autocomplete")},t.fn.autocomplete||(t.fn.autocomplete=t.fn.dgwtWcasAutocomplete),function(){function e(){var e=t(".dgwt-wcas-search-input"),s=[];e.length>1&&e.each(function(){var e=t(this).attr("id");if(-1==t.inArray(e,s))s.push(e);else{var i=Math.random().toString(36).substring(2,6);i="dgwt-wcas-search-input-"+i,t(this).attr("id",i),t(this).closest("form").find("label").attr("for",i)}})}function s(){var e=t(".dgwt-wcas-search-input");e.length>0&&e.each(function(){"object"!=typeof t(this).data("autocomplete")&&t(this).dgwtWcasAutocomplete(window.dgwt_wcas.config)})}t(document).ready(function(){(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)&&t("html").addClass("dgwt-wcas-is-ios");var e=1==dgwt_wcas.show_details_box,s=dgwt_wcas.mobile_breakpoint;(jQuery(window).width()<s||"ontouchend"in document)&&(e=!1),window.dgwt_wcas.config={minChars:dgwt_wcas.min_chars,width:dgwt_wcas.sug_width,autoSelectFirst:!1,triggerSelectOnValidInput:!1,serviceUrl:dgwt_wcas.ajax_search_endpoint,paramName:"s",showDetailsPanel:e,showImage:1==dgwt_wcas.show_images,showPrice:1==dgwt_wcas.show_price,showDescription:1==dgwt_wcas.show_desc,showSKU:1==dgwt_wcas.show_sku,showSaleBadge:1==dgwt_wcas.show_sale_badge,showFeaturedBadge:1==dgwt_wcas.show_featured_badge,dynamicPrices:!(void 0===dgwt_wcas.dynamic_prices||!dgwt_wcas.dynamic_prices),saleBadgeText:dgwt_wcas.labels.sale_badge,featuredBadgeText:dgwt_wcas.labels.featured_badge,isRtl:1==dgwt_wcas.is_rtl,showHeadings:1==dgwt_wcas.show_headings,isPremium:1==dgwt_wcas.is_premium,taxonomyBrands:dgwt_wcas.taxonomy_brands,mobileBreakpoint:s,mobileOverlayWrapper:dgwt_wcas.mobile_overlay_wrapper,debounceWaitMs:dgwt_wcas.debounce_wait_ms,sendGAEvents:dgwt_wcas.send_ga_events,convertHtml:dgwt_wcas.convert_html,enableGASiteSearchModule:dgwt_wcas.enable_ga_site_search_module,appendTo:void 0!==dgwt_wcas.suggestions_wrapper?dgwt_wcas.suggestions_wrapper:"body",showProductVendor:!(void 0===dgwt_wcas.show_product_vendor||!dgwt_wcas.show_product_vendor)},t(".dgwt-wcas-search-input").dgwtWcasAutocomplete(window.dgwt_wcas.config)}),t(window).on("load",function(){var e=0,s=setInterval(function(){var i=document.activeElement;if("object"==typeof i&&t(i).length&&t(i).hasClass("dgwt-wcas-search-input")){var o=t(i).closest(".dgwt-wcas-search-wrapp");o.length&&!o.hasClass("dgwt-wcas-active")&&(o.addClass("dgwt-wcas-active"),clearInterval(s))}e>10&&clearInterval(s),e++},500)}),t(document).ready(function(){setTimeout(function(){e(),s()},500)}),t(window).on("load",function(){setTimeout(function(){e(),s()},500),void 0!==window.elementorFrontend&&void 0!==window.elementorFrontend.documentsManager&&void 0!==window.elementorFrontend.documentsManager.documents&&t.each(elementorFrontend.documentsManager.documents,function(t,e){void 0!==e.getModal&&e.getModal&&e.getModal().on("show",function(){setTimeout(function(){s()},300)})})})}()});
fs/lib/assets/css/admin/common.css CHANGED
@@ -1,2 +1,2 @@
1
  .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
- .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 500px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
1
  .fs-badge{position:absolute;top:10px;right:0;background:#71ae00;color:white;text-transform:uppercase;padding:5px 10px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;font-weight:bold;border-right:0;-moz-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,0.3);box-shadow:0 2px 1px -1px rgba(0,0,0,0.3)}.theme-browser .theme .fs-premium-theme-badge-container{position:absolute;right:0;top:0}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge{position:relative;top:0;margin-top:10px;text-align:center}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-premium-theme-badge{font-size:1.1em}.theme-browser .theme .fs-premium-theme-badge-container .fs-badge.fs-beta-theme-badge{background:#00a0d2}.fs-switch{position:relative;display:inline-block;color:#ccc;text-shadow:0 1px 1px rgba(255,255,255,0.8);height:18px;padding:6px 6px 5px 6px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);background:#ececec;box-shadow:0 0 4px rgba(0,0,0,0.1),inset 0 1px 3px 0 rgba(0,0,0,0.1);cursor:pointer}.fs-switch span{display:inline-block;width:35px;text-transform:uppercase}.fs-switch .fs-toggle{position:absolute;top:1px;width:37px;height:25px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.3);border-radius:4px;background:#fff;background-color:#fff;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ececec), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #ececec, #fff);background-image:-moz-linear-gradient(top, #ececec, #fff);background-image:-ms-linear-gradient(top, #ececec, #fff);background-image:-o-linear-gradient(top, #ececec, #fff);background-image:linear-gradient(top, bottom, #ececec, #fff);box-shadow:inset 0 1px 0 0 rgba(255,255,255,0.5);z-index:999;-moz-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-o-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-ms-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);-webkit-transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1);transition:0.4s cubic-bezier(0.54, 1.6, 0.5, 1)}.fs-switch.fs-off .fs-toggle{left:2%}.fs-switch.fs-on .fs-toggle{left:54%}.fs-switch.fs-round{top:8px;padding:4px 25px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round .fs-toggle{top:0;width:24px;height:24px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px}.fs-switch.fs-round.fs-off .fs-toggle{left:-1px}.fs-switch.fs-round.fs-on{background:#0085ba}.fs-switch.fs-round.fs-on .fs-toggle{left:25px}.fs-switch.fs-small.fs-round{padding:1px 19px}.fs-switch.fs-small.fs-round .fs-toggle{top:0;width:18px;height:18px;-moz-border-radius:18px;-webkit-border-radius:18px;border-radius:18px}.fs-switch.fs-small.fs-round.fs-on .fs-toggle{left:19px}.fs-switch-feedback{margin-left:10px}.fs-switch-feedback.success{color:#71ae00}.rtl .fs-switch-feedback{margin-left:0;margin-right:10px}#fs_frame{line-height:0;font-size:0}.fs-full-size-wrapper{margin:40px 0 -65px -20px}@media (max-width: 600px){.fs-full-size-wrapper{margin:0 0 -65px -10px}}
2
+ .fs-notice{position:relative}.fs-notice.fs-has-title{margin-bottom:30px !important}.fs-notice.success{color:green}.fs-notice.promotion{border-color:#00a0d2 !important;background-color:#f2fcff !important}.fs-notice .fs-notice-body{margin:.5em 0;padding:2px}.fs-notice .fs-close{cursor:pointer;color:#aaa;float:right}.fs-notice .fs-close:hover{color:#666}.fs-notice .fs-close>*{margin-top:7px;display:inline-block}.fs-notice label.fs-plugin-title{background:rgba(0,0,0,0.3);color:#fff;padding:2px 10px;position:absolute;top:100%;bottom:auto;right:auto;-moz-border-radius:0 0 3px 3px;-webkit-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;left:10px;font-size:12px;font-weight:bold;cursor:auto}div.fs-notice.updated,div.fs-notice.success,div.fs-notice.promotion{display:block !important}.rtl .fs-notice .fs-close{float:left}.fs-secure-notice{position:fixed;top:32px;left:160px;right:0;background:#ebfdeb;padding:10px 20px;color:green;z-index:9999;-moz-box-shadow:0 2px 2px rgba(6,113,6,0.3);-webkit-box-shadow:0 2px 2px rgba(6,113,6,0.3);box-shadow:0 2px 2px rgba(6,113,6,0.3);opacity:0.95;filter:alpha(opacity=95)}.fs-secure-notice:hover{opacity:1;filter:alpha(opacity=100)}.fs-secure-notice a.fs-security-proof{color:green;text-decoration:none}@media screen and (max-width: 960px){.fs-secure-notice{left:36px}}@media screen and (max-width: 600px){.fs-secure-notice{display:none}}@media screen and (max-width: 1250px){#fs_promo_tab{display:none}}@media screen and (max-width: 782px){.fs-secure-notice{left:0;top:46px;text-align:center}}span.fs-submenu-item.fs-sub:before{content:'\21B3';padding:0 5px}.rtl span.fs-submenu-item.fs-sub:before{content:'\21B2'}.fs-submenu-item.pricing.upgrade-mode{color:greenyellow}.fs-submenu-item.pricing.trial-mode{color:#83e2ff}#adminmenu .update-plugins.fs-trial{background-color:#00b9eb}.fs-ajax-spinner{border:0;width:20px;height:20px;margin-right:5px;vertical-align:sub;display:inline-block;background:url("/wp-admin/images/wpspin_light-2x.gif");background-size:contain;margin-bottom:-2px}.wrap.fs-section h2{text-align:left}.plugins p.fs-upgrade-notice{border:0;background-color:#d54e21;padding:10px;color:#f9f9f9;margin-top:10px}
fs/lib/assets/css/admin/connect.css CHANGED
@@ -1 +1 @@
1
- #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions .fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:0;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}
1
+ #fs_connect{width:480px;-moz-box-shadow:0px 1px 2px rgba(0,0,0,0.3);-webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.3);box-shadow:0px 1px 2px rgba(0,0,0,0.3);margin:20px 0}@media screen and (max-width: 479px){#fs_connect{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;width:auto;margin:0 0 0 -10px}}#fs_connect .fs-content{background:#fff;padding:15px 20px}#fs_connect .fs-content .fs-error{background:snow;color:#d3135a;border:1px solid #d3135a;-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);text-align:center;padding:5px;margin-bottom:10px}#fs_connect .fs-content p{margin:0;padding:0;font-size:1.2em}#fs_connect .fs-license-key-container{position:relative;width:280px;margin:10px auto 0 auto}#fs_connect .fs-license-key-container input{width:100%}#fs_connect .fs-license-key-container .dashicons{position:absolute;top:5px;right:5px}#fs_connect.require-license-key .fs-sites-list-container td{cursor:pointer}#fs_connect #delegate_to_site_admins{margin-right:15px;float:right;height:26px;vertical-align:middle;line-height:37px;font-weight:bold;border-bottom:1px dashed;text-decoration:none}#fs_connect #delegate_to_site_admins.rtl{margin-left:15px;margin-right:0}#fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}#fs_connect .fs-actions .button{padding:0 10px 1px;line-height:35px;height:37px;font-size:16px;margin-bottom:0}#fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}#fs_connect .fs-actions .button.button-primary{padding-right:15px;padding-left:15px}#fs_connect .fs-actions .button.button-primary:after{content:' \279C'}#fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}#fs_connect .fs-actions .button.button-secondary{float:right}#fs_connect.fs-anonymous-disabled .fs-actions .button.button-primary{width:100%}#fs_connect .fs-permissions{padding:10px 20px;background:#FEFEFE;-moz-transition:background 0.5s ease;-o-transition:background 0.5s ease;-ms-transition:background 0.5s ease;-webkit-transition:background 0.5s ease;transition:background 0.5s ease}#fs_connect .fs-permissions .fs-license-sync-disclaimer{text-align:center;margin-top:0}#fs_connect .fs-permissions>.fs-trigger{font-size:0.9em;text-decoration:none;text-align:center;display:block}#fs_connect .fs-permissions ul{height:0;overflow:hidden;margin:0}#fs_connect .fs-permissions ul li{margin-bottom:12px}#fs_connect .fs-permissions ul li:last-child{margin-bottom:0}#fs_connect .fs-permissions ul li>i.dashicons{float:left;font-size:40px;width:40px;height:40px}#fs_connect .fs-permissions ul li .fs-switch{float:right}#fs_connect .fs-permissions ul li .fs-permission-description{margin-left:55px}#fs_connect .fs-permissions ul li .fs-permission-description span{font-weight:bold;text-transform:uppercase;color:#23282d}#fs_connect .fs-permissions ul li .fs-permission-description p{margin:2px 0 0 0}#fs_connect .fs-permissions.fs-open{background:#fff}#fs_connect .fs-permissions.fs-open ul{overflow:initial;height:auto;margin:20px 20px 10px 20px}@media screen and (max-width: 479px){#fs_connect .fs-permissions{background:#fff}#fs_connect .fs-permissions .fs-trigger{display:none}#fs_connect .fs-permissions ul{height:auto;margin:20px}}#fs_connect .fs-freemium-licensing{padding:8px;background:#777;color:#fff}#fs_connect .fs-freemium-licensing p{text-align:center;display:block;margin:0;padding:0}#fs_connect .fs-freemium-licensing a{color:#C2EEFF;text-decoration:underline}#fs_connect .fs-visual{padding:12px;line-height:0;background:#fafafa;height:80px;position:relative}#fs_connect .fs-visual .fs-site-icon{position:absolute;left:20px;top:10px}#fs_connect .fs-visual .fs-connect-logo{position:absolute;right:20px;top:10px}#fs_connect .fs-visual .fs-plugin-icon{position:absolute;top:10px;left:50%;margin-left:-40px}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-site-icon,#fs_connect .fs-visual img,#fs_connect .fs-visual object{width:80px;height:80px}#fs_connect .fs-visual .dashicons-wordpress{font-size:64px;background:#01749a;color:#fff;width:64px;height:64px;padding:8px}#fs_connect .fs-visual .dashicons-plus{position:absolute;top:50%;font-size:30px;margin-top:-10px;color:#bbb}#fs_connect .fs-visual .dashicons-plus.fs-first{left:28%}#fs_connect .fs-visual .dashicons-plus.fs-second{left:65%}#fs_connect .fs-visual .fs-plugin-icon,#fs_connect .fs-visual .fs-connect-logo,#fs_connect .fs-visual .fs-site-icon{border:1px solid #ccc;padding:1px;background:#fff}#fs_connect .fs-terms{text-align:center;font-size:0.85em;padding:5px;background:rgba(0,0,0,0.05)}#fs_connect .fs-terms,#fs_connect .fs-terms a{color:#999}#fs_connect .fs-terms a{text-decoration:none}.fs-multisite-options-container{margin-top:10px;border:1px solid #ccc;padding:5px}.fs-multisite-options-container a{text-decoration:none}.fs-multisite-options-container a:focus{box-shadow:none}.fs-multisite-options-container a.selected{font-weight:bold}.fs-multisite-options-container.fs-apply-on-all-sites{border:0 none;padding:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options{border-spacing:0}.fs-multisite-options-container.fs-apply-on-all-sites .fs-all-sites-options td:not(:first-child){display:none}.fs-multisite-options-container .fs-sites-list-container{display:none;overflow:auto}.fs-multisite-options-container .fs-sites-list-container table td{border-top:1px solid #ccc;padding:4px 2px}.fs-tooltip-trigger{position:relative}.fs-tooltip-trigger:not(a){cursor:help}.fs-tooltip-trigger .fs-tooltip{opacity:0;visibility:hidden;-moz-transition:opacity 0.3s ease-in-out;-o-transition:opacity 0.3s ease-in-out;-ms-transition:opacity 0.3s ease-in-out;-webkit-transition:opacity 0.3s ease-in-out;transition:opacity 0.3s ease-in-out;position:absolute;background:rgba(0,0,0,0.8);color:#fff !important;font-family:'arial', serif;font-size:12px;padding:10px;z-index:999999;bottom:100%;margin-bottom:5px;left:-17px;right:0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;-moz-box-shadow:1px 1px 1px rgba(0,0,0,0.2);-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.2);box-shadow:1px 1px 1px rgba(0,0,0,0.2);line-height:1.3em;font-weight:bold;text-align:left;text-transform:none !important}.rtl .fs-tooltip-trigger .fs-tooltip{text-align:right;left:auto;right:-17px}.fs-tooltip-trigger .fs-tooltip::after{content:' ';display:block;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:rgba(0,0,0,0.8) transparent transparent transparent;position:absolute;top:100%;left:21px}.rtl .fs-tooltip-trigger .fs-tooltip::after{right:21px;left:auto}.fs-tooltip-trigger:hover .fs-tooltip{visibility:visible;opacity:1}#fs_marketing_optin{display:none;margin-top:10px;border:1px solid #ccc;padding:10px;line-height:1.5em}#fs_marketing_optin .fs-message{display:block;margin-bottom:5px;font-size:1.05em;font-weight:600}#fs_marketing_optin.error{border:1px solid #d3135a;background:#fee}#fs_marketing_optin.error .fs-message{color:#d3135a}#fs_marketing_optin .fs-input-container{margin-top:5px}#fs_marketing_optin .fs-input-container label{margin-top:5px;display:block}#fs_marketing_optin .fs-input-container label input{float:left;margin:1px 0 0 0}#fs_marketing_optin .fs-input-container label:first-child{display:block;margin-bottom:2px}#fs_marketing_optin .fs-input-label{display:block;margin-left:20px}#fs_marketing_optin .fs-input-label .underlined{text-decoration:underline}.rtl #fs_marketing_optin .fs-input-container label input{float:right}.rtl #fs_marketing_optin .fs-input-label{margin-left:0;margin-right:20px}.rtl #fs_connect .fs-actions{padding:10px 20px;background:#C0C7CA}.rtl #fs_connect .fs-actions .button .dashicons{font-size:37px;margin-left:-8px;margin-right:12px}.rtl #fs_connect .fs-actions .button.button-primary:after{content:' \000bb'}.rtl #fs_connect .fs-actions .button.button-primary.fs-loading:after{content:''}.rtl #fs_connect .fs-actions .button.button-secondary{float:left}.rtl #fs_connect .fs-permissions ul li .fs-permission-description{margin-right:55px;margin-left:0}.rtl #fs_connect .fs-permissions ul li .fs-switch{float:left}.rtl #fs_connect .fs-permissions ul li i.dashicons{float:right}.rtl #fs_connect .fs-visual .fs-site-icon{right:20px;left:auto}.rtl #fs_connect .fs-visual .fs-connect-logo{right:auto;left:20px}#fs_theme_connect_wrapper{position:fixed;top:0;height:100%;width:100%;z-index:99990;background:rgba(0,0,0,0.75);text-align:center;overflow-y:auto}#fs_theme_connect_wrapper:before{content:"";display:inline-block;vertical-align:middle;height:100%}#fs_theme_connect_wrapper>button.close{color:white;cursor:pointer;height:40px;width:40px;position:absolute;right:0;border:0;background-color:transparent;top:32px}#fs_theme_connect_wrapper #fs_connect{top:0;text-align:left;display:inline-block;vertical-align:middle;margin-top:52px;margin-bottom:20px}#fs_theme_connect_wrapper #fs_connect .fs-terms{background:rgba(140,140,140,0.64)}#fs_theme_connect_wrapper #fs_connect .fs-terms,#fs_theme_connect_wrapper #fs_connect .fs-terms a{color:#c5c5c5}.wp-pointer-content #fs_connect{margin:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.fs-opt-in-pointer .wp-pointer-content{padding:0}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow{border-bottom-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-top .wp-pointer-arrow-inner{border-bottom-color:#fafafa}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow{border-top-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-bottom .wp-pointer-arrow-inner{border-top-color:#fafafa}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow{border-right-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-left .wp-pointer-arrow-inner{border-right-color:#fafafa}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow{border-left-color:#dfdfdf}.fs-opt-in-pointer.wp-pointer-right .wp-pointer-arrow-inner{border-left-color:#fafafa}#license_issues_link{display:block;text-align:center;font-size:0.9em;margin-top:10px}
fs/lib/includes/class-freemius.php CHANGED
@@ -384,6 +384,13 @@
384
  * @var boolean|null
385
  */
386
  private $_use_external_pricing = null;
 
 
 
 
 
 
 
387
 
388
  #endregion
389
 
@@ -5484,7 +5491,7 @@
5484
  function is_extensions_tracking_allowed() {
5485
  return ( true === $this->apply_filters(
5486
  'is_extensions_tracking_allowed',
5487
- $this->_storage->get( 'is_extensions_tracking_allowed', true )
5488
  ) );
5489
  }
5490
 
@@ -5528,10 +5535,12 @@
5528
  * @author Leo Fajardo (@leorw)
5529
  * @since 2.3.2
5530
  *
5531
- * @param bool $is_enabled
5532
  */
5533
- private function update_extensions_tracking_flag( $is_enabled ) {
5534
- $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
 
 
5535
  }
5536
 
5537
  /**
@@ -6860,8 +6869,6 @@
6860
  */
6861
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6862
  if ( $this->is_registered() ) {
6863
- $this->sync_user_beta_mode();
6864
-
6865
  if ( $this->has_paid_plan() ) {
6866
  // Initiate background plan sync.
6867
  $this->_sync_license( true, false, $current_blog_id );
@@ -7234,7 +7241,8 @@
7234
  }
7235
 
7236
  if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
7237
- if ( ! $this->_anonymous_mode ) {
 
7238
  // Show notice for new plugin installations.
7239
  $this->_admin_notices->add(
7240
  sprintf(
@@ -7285,6 +7293,10 @@
7285
  * @return bool
7286
  */
7287
  private function should_add_sticky_optin_notice() {
 
 
 
 
7288
  if ( fs_is_network_admin() ) {
7289
  if ( ! $this->_is_network_active ) {
7290
  return false;
@@ -13238,26 +13250,25 @@
13238
  self::shoot_ajax_failure();
13239
  }
13240
 
13241
- $user = $this->get_api_user_scope()->call(
13242
  '',
13243
  'put',
13244
  array(
13245
- 'plugin_id' => $this->get_id(),
13246
  'is_beta' => ( 'true' == $is_beta ),
13247
  'fields' => 'is_beta'
13248
  )
13249
  );
13250
 
13251
- if ( ! $this->is_api_result_entity( $user ) ) {
13252
  self::shoot_ajax_failure(
13253
- FS_Api::is_api_error_object( $user ) ?
13254
- $user->error->message :
13255
  fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
13256
  );
13257
  }
13258
 
13259
- $this->_user->is_beta = $user->is_beta;
13260
- $this->_store_user();
13261
 
13262
  self::shoot_ajax_response( array( 'success' => true ) );
13263
  }
@@ -13292,7 +13303,7 @@
13292
  fs_request_get( 'blog_id', null ),
13293
  fs_request_get( 'module_id', null, 'post' ),
13294
  fs_request_get( 'user_id', null ),
13295
- fs_request_get_bool( 'is_extensions_tracking_allowed', true )
13296
  );
13297
 
13298
  if (
@@ -13482,7 +13493,31 @@
13482
  * @return string
13483
  */
13484
  function get_pricing_js_path() {
13485
- return $this->apply_filters( 'freemius_pricing_js_path', WP_FS__DIR_INCLUDES . '/freemius-pricing/freemius-pricing.js' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13486
  }
13487
 
13488
  /**
@@ -13527,7 +13562,7 @@
13527
  $blog_id = null,
13528
  $plugin_id = null,
13529
  $license_owner_id = null,
13530
- $is_extensions_tracking_allowed = true
13531
  ) {
13532
  $this->_logger->entrance();
13533
 
@@ -16448,19 +16483,6 @@
16448
  );
16449
  }
16450
 
16451
- /**
16452
- * @author Leo Fajardo (@leorw)
16453
- * @since 2.3.0
16454
- */
16455
- private function sync_user_beta_mode() {
16456
- $user = $this->get_api_user_scope()->get( '/?plugin_id=' . $this->get_id() . '&fields=is_beta' );
16457
-
16458
- if ( $this->is_api_result_entity( $user ) ) {
16459
- $this->_user->is_beta = $user->is_beta;
16460
- $this->_store_user();
16461
- }
16462
- }
16463
-
16464
  /**
16465
  * @author Vova Feldman (@svovaf)
16466
  * @since 1.1.7.4
@@ -17148,9 +17170,7 @@
17148
  $this->disable_opt_in_notice_and_lock_user();
17149
  }
17150
 
17151
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17152
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17153
- }
17154
 
17155
  return $this->setup_account(
17156
  $this->_user,
@@ -17195,9 +17215,7 @@
17195
  $this->disable_opt_in_notice_and_lock_user();
17196
  }
17197
 
17198
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17199
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17200
- }
17201
 
17202
  $sites = array();
17203
  foreach ( $site_ids as $site_id ) {
@@ -17240,9 +17258,7 @@
17240
  $this->disable_opt_in_notice_and_lock_user();
17241
  }
17242
 
17243
- if ( ! is_null( $is_extensions_tracking_allowed ) ) {
17244
- $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
17245
- }
17246
 
17247
  $install_ids = array();
17248
 
@@ -17353,7 +17369,7 @@
17353
  */
17354
  $license_key = fs_request_get( 'license_secret_key' );
17355
 
17356
- $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', true ) );
17357
 
17358
  $this->install_with_current_user( $license_key );
17359
  }
@@ -20605,6 +20621,20 @@
20605
  }
20606
  }
20607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20608
  if ( $this->is_addon() || $this->has_addons() ) {
20609
  /**
20610
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
@@ -21298,7 +21328,7 @@
21298
 
21299
  if ( $this->has_secret_key() ) {
21300
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
21301
- } else if ( $this->is_registered() && $this->_user->is_beta() ) {
21302
  $endpoint = add_query_arg( 'type', 'beta', $endpoint );
21303
  }
21304
 
@@ -23396,6 +23426,14 @@
23396
  return;
23397
  }
23398
 
 
 
 
 
 
 
 
 
23399
  if ( fs_is_network_admin() ) {
23400
  if ( ! $this->_is_network_active ) {
23401
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
384
  * @var boolean|null
385
  */
386
  private $_use_external_pricing = null;
387
+ /**
388
+ * @author Leo Fajardo (@leorw)
389
+ * @since 2.4.2
390
+ *
391
+ * @var string|null
392
+ */
393
+ private $_pricing_js_path = null;
394
 
395
  #endregion
396
 
5491
  function is_extensions_tracking_allowed() {
5492
  return ( true === $this->apply_filters(
5493
  'is_extensions_tracking_allowed',
5494
+ $this->_storage->get( 'is_extensions_tracking_allowed', null )
5495
  ) );
5496
  }
5497
 
5535
  * @author Leo Fajardo (@leorw)
5536
  * @since 2.3.2
5537
  *
5538
+ * @param bool|null $is_enabled
5539
  */
5540
+ function update_extensions_tracking_flag( $is_enabled ) {
5541
+ if ( is_bool( $is_enabled ) ) {
5542
+ $this->_storage->store( 'is_extensions_tracking_allowed', $is_enabled );
5543
+ }
5544
  }
5545
 
5546
  /**
6869
  */
6870
  function _sync_cron_method( array $blog_ids, $current_blog_id = null ) {
6871
  if ( $this->is_registered() ) {
 
 
6872
  if ( $this->has_paid_plan() ) {
6873
  // Initiate background plan sync.
6874
  $this->_sync_license( true, false, $current_blog_id );
7241
  }
7242
 
7243
  if ( $this->is_plugin_new_install() || $this->is_only_premium() ) {
7244
+ if ( ! $this->_anonymous_mode &&
7245
+ ( ! $this->is_addon() || ! $this->_parent->is_anonymous() ) ) {
7246
  // Show notice for new plugin installations.
7247
  $this->_admin_notices->add(
7248
  sprintf(
7293
  * @return bool
7294
  */
7295
  private function should_add_sticky_optin_notice() {
7296
+ if ( $this->is_addon() && $this->_parent->is_anonymous() ) {
7297
+ return false;
7298
+ }
7299
+
7300
  if ( fs_is_network_admin() ) {
7301
  if ( ! $this->_is_network_active ) {
7302
  return false;
13250
  self::shoot_ajax_failure();
13251
  }
13252
 
13253
+ $site = $this->get_api_site_scope()->call(
13254
  '',
13255
  'put',
13256
  array(
 
13257
  'is_beta' => ( 'true' == $is_beta ),
13258
  'fields' => 'is_beta'
13259
  )
13260
  );
13261
 
13262
+ if ( ! $this->is_api_result_entity( $site ) ) {
13263
  self::shoot_ajax_failure(
13264
+ FS_Api::is_api_error_object( $site ) ?
13265
+ $site->error->message :
13266
  fs_text_inline( "An unknown error has occurred while trying to set the user's beta mode.", 'unknown-error-occurred', $this->get_slug() )
13267
  );
13268
  }
13269
 
13270
+ $this->_site->is_beta = $site->is_beta;
13271
+ $this->_store_site();
13272
 
13273
  self::shoot_ajax_response( array( 'success' => true ) );
13274
  }
13303
  fs_request_get( 'blog_id', null ),
13304
  fs_request_get( 'module_id', null, 'post' ),
13305
  fs_request_get( 'user_id', null ),
13306
+ fs_request_get_bool( 'is_extensions_tracking_allowed', null )
13307
  );
13308
 
13309
  if (
13493
  * @return string
13494
  */
13495
  function get_pricing_js_path() {
13496
+ if ( ! isset( $this->_pricing_js_path ) ) {
13497
+ $pricing_js_path = $this->apply_filters( 'freemius_pricing_js_path', '' );
13498
+
13499
+ if ( empty( $pricing_js_path ) ) {
13500
+ global $fs_active_plugins;
13501
+
13502
+ foreach ( $fs_active_plugins->plugins as $sdk_path => $data ) {
13503
+ if ( $data->plugin_path == $this->get_plugin_basename() ) {
13504
+ $plugin_or_theme_root_dir = ( $this->is_plugin() ? WP_PLUGIN_DIR : get_theme_root( get_stylesheet() ) );
13505
+
13506
+ $pricing_js_path = $plugin_or_theme_root_dir
13507
+ . '/'
13508
+ // The basename will be `plugins`, `themes`, or the basename of a custom plugins or themes directory.
13509
+ . str_replace( '../' . basename( $plugin_or_theme_root_dir ) . '/', '', $sdk_path )
13510
+ . '/includes/freemius-pricing/freemius-pricing.js';
13511
+
13512
+ break;
13513
+ }
13514
+ }
13515
+ }
13516
+
13517
+ $this->_pricing_js_path = $pricing_js_path;
13518
+ }
13519
+
13520
+ return $this->_pricing_js_path;
13521
  }
13522
 
13523
  /**
13562
  $blog_id = null,
13563
  $plugin_id = null,
13564
  $license_owner_id = null,
13565
+ $is_extensions_tracking_allowed = null
13566
  ) {
13567
  $this->_logger->entrance();
13568
 
16483
  );
16484
  }
16485
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16486
  /**
16487
  * @author Vova Feldman (@svovaf)
16488
  * @since 1.1.7.4
17170
  $this->disable_opt_in_notice_and_lock_user();
17171
  }
17172
 
17173
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17174
 
17175
  return $this->setup_account(
17176
  $this->_user,
17215
  $this->disable_opt_in_notice_and_lock_user();
17216
  }
17217
 
17218
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17219
 
17220
  $sites = array();
17221
  foreach ( $site_ids as $site_id ) {
17258
  $this->disable_opt_in_notice_and_lock_user();
17259
  }
17260
 
17261
+ $this->update_extensions_tracking_flag( $is_extensions_tracking_allowed );
 
 
17262
 
17263
  $install_ids = array();
17264
 
17369
  */
17370
  $license_key = fs_request_get( 'license_secret_key' );
17371
 
17372
+ $this->update_extensions_tracking_flag( fs_request_get_bool( 'is_extensions_tracking_allowed', null ) );
17373
 
17374
  $this->install_with_current_user( $license_key );
17375
  }
20621
  }
20622
  }
20623
 
20624
+ if ( ! $this->is_addon() &&
20625
+ $this->_site->is_beta() !== $site->is_beta
20626
+ ) {
20627
+ // Beta flag updated.
20628
+ $this->_site = $site;
20629
+
20630
+ $this->_store_site(
20631
+ true,
20632
+ $is_site_level_sync ?
20633
+ null :
20634
+ $this->get_network_install_blog_id()
20635
+ );
20636
+ }
20637
+
20638
  if ( $this->is_addon() || $this->has_addons() ) {
20639
  /**
20640
  * Purge the valid user licenses cache so that when the "Account" or the "Add-Ons" page is loaded,
21328
 
21329
  if ( $this->has_secret_key() ) {
21330
  $endpoint = add_query_arg( 'type', 'all', $endpoint );
21331
+ } else if ( is_object( $this->_site ) && $this->_site->is_beta() ) {
21332
  $endpoint = add_query_arg( 'type', 'beta', $endpoint );
21333
  }
21334
 
23426
  return;
23427
  }
23428
 
23429
+ if (
23430
+ $this->is_addon() &&
23431
+ ! $this->is_only_premium() &&
23432
+ $this->_parent->is_anonymous()
23433
+ ) {
23434
+ return;
23435
+ }
23436
+
23437
  if ( fs_is_network_admin() ) {
23438
  if ( ! $this->_is_network_active ) {
23439
  // Don't add tracking links when browsing the network WP Admin and the plugin is not network active.
fs/lib/includes/class-fs-logger.php CHANGED
@@ -142,7 +142,7 @@
142
  return $this->_file_start;
143
  }
144
 
145
- private function _log( &$message, $type = 'log', $wrapper ) {
146
  if ( ! $this->is_on() ) {
147
  return;
148
  }
@@ -688,4 +688,4 @@ KEY `type` (`type` ASC))" );
688
  }
689
 
690
  #endregion
691
- }
142
  return $this->_file_start;
143
  }
144
 
145
+ private function _log( &$message, $type, $wrapper = false ) {
146
  if ( ! $this->is_on() ) {
147
  return;
148
  }
688
  }
689
 
690
  #endregion
691
+ }
fs/lib/includes/entities/class-fs-site.php CHANGED
@@ -102,6 +102,14 @@
102
  * @var bool
103
  */
104
  public $is_uninstalled = false;
 
 
 
 
 
 
 
 
105
 
106
  /**
107
  * @param stdClass|bool $site
@@ -233,4 +241,13 @@
233
  function is_tracking_prohibited() {
234
  return ! $this->is_tracking_allowed();
235
  }
 
 
 
 
 
 
 
 
 
236
  }
102
  * @var bool
103
  */
104
  public $is_uninstalled = false;
105
+ /**
106
+ * @author Edgar Melkonyan
107
+ *
108
+ * @since 2.4.2
109
+ *
110
+ * @var bool
111
+ */
112
+ public $is_beta;
113
 
114
  /**
115
  * @param stdClass|bool $site
241
  function is_tracking_prohibited() {
242
  return ! $this->is_tracking_allowed();
243
  }
244
+
245
+ /**
246
+ * @author Edgar Melkonyan
247
+ *
248
+ * @return bool
249
+ */
250
+ function is_beta() {
251
+ return ( isset( $this->is_beta ) && true === $this->is_beta );
252
+ }
253
  }
fs/lib/includes/entities/class-fs-user.php CHANGED
@@ -31,13 +31,6 @@
31
  */
32
  public $is_verified;
33
  /**
34
- * @author Leo Fajardo (@leorw)
35
- * @since 2.3.0
36
- *
37
- * @var bool
38
- */
39
- public $is_beta;
40
- /**
41
  * @var string|null
42
  */
43
  public $customer_id;
@@ -63,16 +56,6 @@
63
  return ( isset( $this->is_verified ) && true === $this->is_verified );
64
  }
65
 
66
- /**
67
- * @author Leo Fajardo (@leorw)
68
- * @since 2.3.0
69
- *
70
- * @return bool
71
- */
72
- function is_beta() {
73
- return ( isset( $this->is_beta ) && true === $this->is_beta );
74
- }
75
-
76
  static function get_type() {
77
  return 'user';
78
  }
31
  */
32
  public $is_verified;
33
  /**
 
 
 
 
 
 
 
34
  * @var string|null
35
  */
36
  public $customer_id;
56
  return ( isset( $this->is_verified ) && true === $this->is_verified );
57
  }
58
 
 
 
 
 
 
 
 
 
 
 
59
  static function get_type() {
60
  return 'user';
61
  }
fs/lib/languages/freemius-cs_CZ.mo CHANGED
Binary file
fs/lib/languages/freemius-da_DK.mo CHANGED
Binary file
fs/lib/languages/freemius-en.mo CHANGED
Binary file
fs/lib/languages/freemius-es_ES.mo CHANGED
Binary file
fs/lib/languages/freemius-fr_FR.mo CHANGED
Binary file
fs/lib/languages/freemius-he_IL.mo CHANGED
Binary file
fs/lib/languages/freemius-hu_HU.mo CHANGED
Binary file
fs/lib/languages/freemius-it_IT.mo CHANGED
Binary file
fs/lib/languages/freemius-ja.mo CHANGED
Binary file
fs/lib/languages/freemius-nl_NL.mo CHANGED
Binary file
fs/lib/languages/freemius-ru_RU.mo CHANGED
Binary file
fs/lib/languages/freemius-ta.mo CHANGED
Binary file
fs/lib/languages/freemius-zh_CN.mo CHANGED
Binary file
fs/lib/languages/freemius.pot CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (C) 2020 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
@@ -16,795 +16,795 @@ msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
- #: includes/class-freemius.php:1912, templates/account.php:910
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
- #: includes/class-freemius.php:1919
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
- #: includes/class-freemius.php:2131
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
- #: includes/class-freemius.php:2133
32
  msgid "Error"
33
  msgstr ""
34
 
35
- #: includes/class-freemius.php:2533
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
- #: includes/class-freemius.php:2535
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
- #: includes/class-freemius.php:2541
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
- #: includes/class-freemius.php:2543
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
- #: includes/class-freemius.php:2544
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
- #: includes/class-freemius.php:2553, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
56
  msgid "Other"
57
  msgstr ""
58
 
59
- #: includes/class-freemius.php:2561
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
- #: includes/class-freemius.php:2568
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
- #: includes/class-freemius.php:2574
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
- #: includes/class-freemius.php:2581
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
- #: includes/class-freemius.php:2591
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
- #: includes/class-freemius.php:2593
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
- #: includes/class-freemius.php:2599
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
- #: includes/class-freemius.php:2620
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
- #: includes/class-freemius.php:2630
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
- #: includes/class-freemius.php:2638
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
- #: includes/class-freemius.php:2640
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
- #: includes/class-freemius.php:2644
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
- #: includes/class-freemius.php:2646
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
- #: includes/class-freemius.php:2650
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
- #: includes/class-freemius.php:2652
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
- #: includes/class-freemius.php:2656
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
- #: includes/class-freemius.php:2658
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
- #: includes/class-freemius.php:3513, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
- #: includes/class-freemius.php:4265
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
- #: includes/class-freemius.php:4267
136
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
137
  msgstr ""
138
 
139
- #: includes/class-freemius.php:4274
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
- #: includes/class-freemius.php:4379
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
- #: includes/class-freemius.php:4384
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
- #: includes/class-freemius.php:4429, includes/class-freemius.php:4923, includes/class-freemius.php:6182, includes/class-freemius.php:13357, includes/class-freemius.php:14075, includes/class-freemius.php:17526, includes/class-freemius.php:17631, includes/class-freemius.php:17806, includes/class-freemius.php:20040, includes/class-freemius.php:20398, includes/class-freemius.php:20408, includes/class-freemius.php:21079, includes/class-freemius.php:21985, includes/class-freemius.php:22118, includes/class-freemius.php:22274, templates/add-ons.php:57
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
- #: includes/class-freemius.php:4498
157
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
158
  msgstr ""
159
 
160
- #: includes/class-freemius.php:4920
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
- #: includes/class-freemius.php:4921
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
- #: includes/class-freemius.php:5120, includes/class-freemius.php:5145, includes/class-freemius.php:21150
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
- #: includes/class-freemius.php:5848
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
- #: includes/class-freemius.php:5860, includes/class-freemius.php:7762
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
- #: includes/class-freemius.php:5875
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
- #: includes/class-freemius.php:5879, includes/class-freemius.php:16925, includes/class-freemius.php:16936, includes/class-freemius.php:20309, includes/class-freemius.php:20659, includes/class-freemius.php:20728, includes/class-freemius.php:20900
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
- #: includes/class-freemius.php:6165
193
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
194
  msgstr ""
195
 
196
- #: includes/class-freemius.php:6169
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
- #: includes/class-freemius.php:6178, templates/add-ons.php:186, templates/account/partials/addon.php:381
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
- #: includes/class-freemius.php:6179
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
- #: includes/class-freemius.php:7118, templates/connect.php:171
209
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
210
  msgstr ""
211
 
212
- #: includes/class-freemius.php:7122
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
- #: includes/class-freemius.php:7123, templates/connect.php:175
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
- #: includes/class-freemius.php:7241
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
- #: includes/class-freemius.php:7244
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
- #: includes/class-freemius.php:7322
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
- #: includes/class-freemius.php:7326
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
- #: includes/class-freemius.php:7761
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
- #: includes/class-freemius.php:10243, includes/class-fs-plugin-updater.php:1099, includes/class-fs-plugin-updater.php:1294, includes/class-fs-plugin-updater.php:1301, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
- #: includes/class-freemius.php:10245, templates/account.php:392, templates/account.php:400, templates/debug.php:358, templates/debug.php:549
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
- #: includes/class-freemius.php:10246, templates/account.php:393, templates/account.php:401, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
- #: includes/class-freemius.php:13176
254
  msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
255
  msgstr ""
256
 
257
- #: includes/class-freemius.php:13190
258
  msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
259
  msgstr ""
260
 
261
- #: includes/class-freemius.php:13195
262
  msgid "User Dashboard"
263
  msgstr ""
264
 
265
- #: includes/class-freemius.php:13196
266
  msgid "revert it now"
267
  msgstr ""
268
 
269
- #: includes/class-freemius.php:13255
270
  msgid "An unknown error has occurred while trying to set the user's beta mode."
271
  msgstr ""
272
 
273
- #: includes/class-freemius.php:13328
274
  msgid "Invalid new user ID or email address."
275
  msgstr ""
276
 
277
- #: includes/class-freemius.php:13358, includes/class-freemius.php:22229
278
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
279
  msgstr ""
280
 
281
- #: includes/class-freemius.php:13359, includes/class-freemius.php:22230
282
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
283
  msgstr ""
284
 
285
- #: includes/class-freemius.php:13366, includes/class-freemius.php:22237
286
  msgid "Change Ownership"
287
  msgstr ""
288
 
289
- #: includes/class-freemius.php:13942
290
  msgid "Invalid site details collection."
291
  msgstr ""
292
 
293
- #: includes/class-freemius.php:14062
294
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
295
  msgstr ""
296
 
297
- #: includes/class-freemius.php:14064
298
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
299
  msgstr ""
300
 
301
- #: includes/class-freemius.php:14338
302
  msgid "Account is pending activation."
303
  msgstr ""
304
 
305
- #: includes/class-freemius.php:14450, templates/forms/premium-versions-upgrade-handler.php:47
306
  msgid "Buy a license now"
307
  msgstr ""
308
 
309
- #: includes/class-freemius.php:14462, templates/forms/premium-versions-upgrade-handler.php:46
310
  msgid "Renew your license now"
311
  msgstr ""
312
 
313
- #: includes/class-freemius.php:14466
314
  msgid "%s to access version %s security & feature updates, and support."
315
  msgstr ""
316
 
317
- #: includes/class-freemius.php:16907
318
  msgid "%s activation was successfully completed."
319
  msgstr ""
320
 
321
- #: includes/class-freemius.php:16921
322
  msgid "Your account was successfully activated with the %s plan."
323
  msgstr ""
324
 
325
- #: includes/class-freemius.php:16932, includes/class-freemius.php:20724
326
  msgid "Your trial has been successfully started."
327
  msgstr ""
328
 
329
- #: includes/class-freemius.php:17524, includes/class-freemius.php:17629, includes/class-freemius.php:17804
330
  msgid "Couldn't activate %s."
331
  msgstr ""
332
 
333
- #: includes/class-freemius.php:17525, includes/class-freemius.php:17630, includes/class-freemius.php:17805
334
  msgid "Please contact us with the following message:"
335
  msgstr ""
336
 
337
- #: includes/class-freemius.php:17626, templates/forms/data-debug-mode.php:162
338
  msgid "An unknown error has occurred."
339
  msgstr ""
340
 
341
- #: includes/class-freemius.php:18162, includes/class-freemius.php:23310
342
  msgid "Upgrade"
343
  msgstr ""
344
 
345
- #: includes/class-freemius.php:18168
346
  msgid "Start Trial"
347
  msgstr ""
348
 
349
- #: includes/class-freemius.php:18170
350
  msgid "Pricing"
351
  msgstr ""
352
 
353
- #: includes/class-freemius.php:18250, includes/class-freemius.php:18252
354
  msgid "Affiliation"
355
  msgstr ""
356
 
357
- #: includes/class-freemius.php:18280, includes/class-freemius.php:18282, templates/account.php:240, templates/debug.php:324
358
  msgid "Account"
359
  msgstr ""
360
 
361
- #: includes/class-freemius.php:18296, includes/class-freemius.php:18298, includes/customizer/class-fs-customizer-support-section.php:60
362
  msgid "Contact Us"
363
  msgstr ""
364
 
365
- #: includes/class-freemius.php:18309, includes/class-freemius.php:18311, includes/class-freemius.php:23324, templates/account.php:119, templates/account/partials/addon.php:44
366
  msgid "Add-Ons"
367
  msgstr ""
368
 
369
- #: includes/class-freemius.php:18345
370
  msgctxt "ASCII arrow left icon"
371
  msgid "&#x2190;"
372
  msgstr ""
373
 
374
- #: includes/class-freemius.php:18345
375
  msgctxt "ASCII arrow right icon"
376
  msgid "&#x27a4;"
377
  msgstr ""
378
 
379
- #: includes/class-freemius.php:18347, templates/pricing.php:109
380
  msgctxt "noun"
381
  msgid "Pricing"
382
  msgstr ""
383
 
384
- #: includes/class-freemius.php:18560, includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr ""
387
 
388
- #: includes/class-freemius.php:19534
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr ""
391
 
392
- #: includes/class-freemius.php:19535
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr ""
396
 
397
- #: includes/class-freemius.php:20041
398
  msgid "seems like the key you entered doesn't match our records."
399
  msgstr ""
400
 
401
- #: includes/class-freemius.php:20065
402
  msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
  msgstr ""
404
 
405
- #: includes/class-freemius.php:20300
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr ""
408
 
409
- #: includes/class-freemius.php:20302
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr ""
412
 
413
- #: includes/class-freemius.php:20305
414
  msgid "Download the latest version"
415
  msgstr ""
416
 
417
- #: includes/class-freemius.php:20391
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
  msgstr ""
420
 
421
- #: includes/class-freemius.php:20397, includes/class-freemius.php:20407, includes/class-freemius.php:20859, includes/class-freemius.php:20948
422
  msgid "Error received from the server:"
423
  msgstr ""
424
 
425
- #: includes/class-freemius.php:20407
426
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
427
  msgstr ""
428
 
429
- #: includes/class-freemius.php:20621, includes/class-freemius.php:20864, includes/class-freemius.php:20919, includes/class-freemius.php:21026
430
  msgctxt "something somebody says when they are thinking about what you have just said."
431
  msgid "Hmm"
432
  msgstr ""
433
 
434
- #: includes/class-freemius.php:20634
435
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
436
  msgstr ""
437
 
438
- #: includes/class-freemius.php:20635, templates/account.php:121, templates/add-ons.php:250, templates/account/partials/addon.php:46
439
  msgctxt "trial period"
440
  msgid "Trial"
441
  msgstr ""
442
 
443
- #: includes/class-freemius.php:20640
444
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
445
  msgstr ""
446
 
447
- #: includes/class-freemius.php:20644, includes/class-freemius.php:20703
448
  msgid "Please contact us here"
449
  msgstr ""
450
 
451
- #: includes/class-freemius.php:20655
452
  msgid "Your plan was successfully activated."
453
  msgstr ""
454
 
455
- #: includes/class-freemius.php:20656
456
  msgid "Your plan was successfully upgraded."
457
  msgstr ""
458
 
459
- #: includes/class-freemius.php:20673
460
  msgid "Your plan was successfully changed to %s."
461
  msgstr ""
462
 
463
- #: includes/class-freemius.php:20689
464
  msgid "Your license has expired. You can still continue using the free %s forever."
465
  msgstr ""
466
 
467
- #: includes/class-freemius.php:20691
468
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
469
  msgstr ""
470
 
471
- #: includes/class-freemius.php:20699
472
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
473
  msgstr ""
474
 
475
- #: includes/class-freemius.php:20712
476
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
477
  msgstr ""
478
 
479
- #: includes/class-freemius.php:20738
480
  msgid "Your free trial has expired. You can still continue using all our free features."
481
  msgstr ""
482
 
483
- #: includes/class-freemius.php:20740
484
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
485
  msgstr ""
486
 
487
- #: includes/class-freemius.php:20855
488
  msgid "It looks like the license could not be activated."
489
  msgstr ""
490
 
491
- #: includes/class-freemius.php:20897
492
  msgid "Your license was successfully activated."
493
  msgstr ""
494
 
495
- #: includes/class-freemius.php:20923
496
  msgid "It looks like your site currently doesn't have an active license."
497
  msgstr ""
498
 
499
- #: includes/class-freemius.php:20947
500
  msgid "It looks like the license deactivation failed."
501
  msgstr ""
502
 
503
- #: includes/class-freemius.php:20976
504
  msgid "Your %s license was successfully deactivated."
505
  msgstr ""
506
 
507
- #: includes/class-freemius.php:20977
508
  msgid "Your license was successfully deactivated, you are back to the %s plan."
509
  msgstr ""
510
 
511
- #: includes/class-freemius.php:20980
512
  msgid "O.K"
513
  msgstr ""
514
 
515
- #: includes/class-freemius.php:21033
516
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
  msgstr ""
518
 
519
- #: includes/class-freemius.php:21042
520
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
521
  msgstr ""
522
 
523
- #: includes/class-freemius.php:21084
524
  msgid "You are already running the %s in a trial mode."
525
  msgstr ""
526
 
527
- #: includes/class-freemius.php:21095
528
  msgid "You already utilized a trial before."
529
  msgstr ""
530
 
531
- #: includes/class-freemius.php:21109
532
  msgid "Plan %s do not exist, therefore, can't start a trial."
533
  msgstr ""
534
 
535
- #: includes/class-freemius.php:21120
536
  msgid "Plan %s does not support a trial period."
537
  msgstr ""
538
 
539
- #: includes/class-freemius.php:21131
540
  msgid "None of the %s's plans supports a trial period."
541
  msgstr ""
542
 
543
- #: includes/class-freemius.php:21181
544
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
545
  msgstr ""
546
 
547
- #: includes/class-freemius.php:21217
548
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
549
  msgstr ""
550
 
551
- #: includes/class-freemius.php:21236
552
  msgid "Your %s free trial was successfully cancelled."
553
  msgstr ""
554
 
555
- #: includes/class-freemius.php:21552
556
  msgid "Version %s was released."
557
  msgstr ""
558
 
559
- #: includes/class-freemius.php:21552
560
  msgid "Please download %s."
561
  msgstr ""
562
 
563
- #: includes/class-freemius.php:21559
564
  msgid "the latest %s version here"
565
  msgstr ""
566
 
567
- #: includes/class-freemius.php:21564
568
  msgid "New"
569
  msgstr ""
570
 
571
- #: includes/class-freemius.php:21569
572
  msgid "Seems like you got the latest release."
573
  msgstr ""
574
 
575
- #: includes/class-freemius.php:21570
576
  msgid "You are all good!"
577
  msgstr ""
578
 
579
- #: includes/class-freemius.php:21873
580
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
581
  msgstr ""
582
 
583
- #: includes/class-freemius.php:22013
584
  msgid "Site successfully opted in."
585
  msgstr ""
586
 
587
- #: includes/class-freemius.php:22014, includes/class-freemius.php:23020
588
  msgid "Awesome"
589
  msgstr ""
590
 
591
- #: includes/class-freemius.php:22030, templates/forms/optout.php:41
592
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
593
  msgstr ""
594
 
595
- #: includes/class-freemius.php:22031
596
  msgid "Thank you!"
597
  msgstr ""
598
 
599
- #: includes/class-freemius.php:22038
600
  msgid "We will no longer be sending any usage data of %s on %s to %s."
601
  msgstr ""
602
 
603
- #: includes/class-freemius.php:22196
604
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
605
  msgstr ""
606
 
607
- #: includes/class-freemius.php:22202
608
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
609
  msgstr ""
610
 
611
- #: includes/class-freemius.php:22207
612
  msgid "%s is the new owner of the account."
613
  msgstr ""
614
 
615
- #: includes/class-freemius.php:22209
616
  msgctxt "as congratulations"
617
  msgid "Congrats"
618
  msgstr ""
619
 
620
- #: includes/class-freemius.php:22245
621
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
622
  msgstr ""
623
 
624
- #: includes/class-freemius.php:22257
625
  msgid "Please provide your full name."
626
  msgstr ""
627
 
628
- #: includes/class-freemius.php:22262
629
  msgid "Your name was successfully updated."
630
  msgstr ""
631
 
632
- #: includes/class-freemius.php:22323
633
  msgid "You have successfully updated your %s."
634
  msgstr ""
635
 
636
- #: includes/class-freemius.php:22382
637
  msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
638
  msgstr ""
639
 
640
- #: includes/class-freemius.php:22385
641
  msgid "Click here"
642
  msgstr ""
643
 
644
- #: includes/class-freemius.php:22483
645
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
646
  msgstr ""
647
 
648
- #: includes/class-freemius.php:22484
649
  msgctxt "advance notice of something that will need attention."
650
  msgid "Heads up"
651
  msgstr ""
652
 
653
- #: includes/class-freemius.php:23060
654
  msgctxt "exclamation"
655
  msgid "Hey"
656
  msgstr ""
657
 
658
- #: includes/class-freemius.php:23060
659
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
660
  msgstr ""
661
 
662
- #: includes/class-freemius.php:23068
663
  msgid "No commitment for %s days - cancel anytime!"
664
  msgstr ""
665
 
666
- #: includes/class-freemius.php:23069
667
  msgid "No credit card required"
668
  msgstr ""
669
 
670
- #: includes/class-freemius.php:23076, templates/forms/trial-start.php:53
671
  msgctxt "call to action"
672
  msgid "Start free trial"
673
  msgstr ""
674
 
675
- #: includes/class-freemius.php:23153
676
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
677
  msgstr ""
678
 
679
- #: includes/class-freemius.php:23162
680
  msgid "Learn more"
681
  msgstr ""
682
 
683
- #: includes/class-freemius.php:23348, templates/account.php:556, templates/account.php:706, templates/connect.php:179, templates/connect.php:456, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
684
  msgid "Activate License"
685
  msgstr ""
686
 
687
- #: includes/class-freemius.php:23349, templates/account.php:650, templates/account.php:705, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
688
  msgid "Change License"
689
  msgstr ""
690
 
691
- #: includes/class-freemius.php:23462, templates/account/partials/site.php:169
692
  msgid "Opt Out"
693
  msgstr ""
694
 
695
- #: includes/class-freemius.php:23464, includes/class-freemius.php:23470, templates/account/partials/site.php:49, templates/account/partials/site.php:169
696
  msgid "Opt In"
697
  msgstr ""
698
 
699
- #: includes/class-freemius.php:23700
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
  msgstr ""
702
 
703
- #: includes/class-freemius.php:23708
704
  msgid "Activate %s features"
705
  msgstr ""
706
 
707
- #: includes/class-freemius.php:23721
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr ""
710
 
711
- #: includes/class-freemius.php:23725
712
  msgid "Download the latest %s version"
713
  msgstr ""
714
 
715
- #: includes/class-freemius.php:23729
716
  msgid "Upload and activate the downloaded version"
717
  msgstr ""
718
 
719
- #: includes/class-freemius.php:23731
720
  msgid "How to upload and activate?"
721
  msgstr ""
722
 
723
- #: includes/class-freemius.php:23865
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr ""
726
 
727
- #: includes/class-freemius.php:24034
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr ""
730
 
731
- #: includes/class-freemius.php:24044, includes/class-freemius.php:24077, includes/class-fs-plugin-updater.php:1273, includes/class-fs-plugin-updater.php:1287
732
  msgid "Invalid module ID."
733
  msgstr ""
734
 
735
- #: includes/class-freemius.php:24053, includes/class-fs-plugin-updater.php:1309
736
  msgid "Premium version already active."
737
  msgstr ""
738
 
739
- #: includes/class-freemius.php:24060
740
  msgid "You do not have a valid license to access the premium version."
741
  msgstr ""
742
 
743
- #: includes/class-freemius.php:24067
744
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
745
  msgstr ""
746
 
747
- #: includes/class-freemius.php:24085, includes/class-fs-plugin-updater.php:1308
748
  msgid "Premium add-on version already installed."
749
  msgstr ""
750
 
751
- #: includes/class-freemius.php:24435
752
  msgid "View paid features"
753
  msgstr ""
754
 
755
- #: includes/class-freemius.php:24757
756
  msgid "Thank you so much for using %s and its add-ons!"
757
  msgstr ""
758
 
759
- #: includes/class-freemius.php:24758
760
  msgid "Thank you so much for using %s!"
761
  msgstr ""
762
 
763
- #: includes/class-freemius.php:24764
764
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
765
  msgstr ""
766
 
767
- #: includes/class-freemius.php:24768
768
  msgid "Thank you so much for using our products!"
769
  msgstr ""
770
 
771
- #: includes/class-freemius.php:24769
772
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
773
  msgstr ""
774
 
775
- #: includes/class-freemius.php:24788
776
  msgid "%s and its add-ons"
777
  msgstr ""
778
 
779
- #: includes/class-freemius.php:24797
780
  msgid "Products"
781
  msgstr ""
782
 
783
- #: includes/class-freemius.php:24804, templates/connect.php:280
784
  msgid "Yes"
785
  msgstr ""
786
 
787
- #: includes/class-freemius.php:24805, templates/connect.php:281
788
  msgid "send me security & feature updates, educational content and offers."
789
  msgstr ""
790
 
791
- #: includes/class-freemius.php:24806, templates/connect.php:286
792
  msgid "No"
793
  msgstr ""
794
 
795
- #: includes/class-freemius.php:24808, templates/connect.php:288
796
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
797
  msgstr ""
798
 
799
- #: includes/class-freemius.php:24818
800
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
801
  msgstr ""
802
 
803
- #: includes/class-freemius.php:24820, templates/connect.php:295
804
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
805
  msgstr ""
806
 
807
- #: includes/class-freemius.php:25102
808
  msgid "License key is empty."
809
  msgstr ""
810
 
@@ -832,15 +832,15 @@ msgstr ""
832
  msgid "Important Upgrade Notice:"
833
  msgstr ""
834
 
835
- #: includes/class-fs-plugin-updater.php:1338
836
  msgid "Installing plugin: %s"
837
  msgstr ""
838
 
839
- #: includes/class-fs-plugin-updater.php:1379
840
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
841
  msgstr ""
842
 
843
- #: includes/class-fs-plugin-updater.php:1561
844
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
845
  msgstr ""
846
 
@@ -861,7 +861,7 @@ msgstr ""
861
  msgid "Install Free Version Update Now"
862
  msgstr ""
863
 
864
- #: includes/fs-plugin-info-dialog.php:745, templates/account.php:639
865
  msgid "Install Update Now"
866
  msgstr ""
867
 
@@ -878,7 +878,7 @@ msgctxt "as download latest version"
878
  msgid "Download Latest Free Version"
879
  msgstr ""
880
 
881
- #: includes/fs-plugin-info-dialog.php:772, templates/account.php:99, templates/add-ons.php:37, templates/account/partials/addon.php:25
882
  msgctxt "as download latest version"
883
  msgid "Download Latest"
884
  msgstr ""
@@ -887,11 +887,11 @@ msgstr ""
887
  msgid "Activate this add-on"
888
  msgstr ""
889
 
890
- #: includes/fs-plugin-info-dialog.php:789, templates/connect.php:453
891
  msgid "Activate Free Version"
892
  msgstr ""
893
 
894
- #: includes/fs-plugin-info-dialog.php:790, templates/account.php:123, templates/add-ons.php:330, templates/account/partials/addon.php:48
895
  msgid "Activate"
896
  msgstr ""
897
 
@@ -1020,7 +1020,7 @@ msgstr ""
1020
  msgid "Details"
1021
  msgstr ""
1022
 
1023
- #: includes/fs-plugin-info-dialog.php:1318, templates/account.php:110, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
1024
  msgctxt "product version"
1025
  msgid "Version"
1026
  msgstr ""
@@ -1034,7 +1034,7 @@ msgstr ""
1034
  msgid "Last Updated"
1035
  msgstr ""
1036
 
1037
- #: includes/fs-plugin-info-dialog.php:1337, templates/account.php:525
1038
  msgctxt "x-ago"
1039
  msgid "%s ago"
1040
  msgstr ""
@@ -1143,293 +1143,293 @@ msgstr ""
1143
  msgid "Latest Free Version Installed"
1144
  msgstr ""
1145
 
1146
- #: templates/account.php:100, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1147
  msgid "Downgrading your plan"
1148
  msgstr ""
1149
 
1150
- #: templates/account.php:101, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1151
  msgid "Cancelling the subscription"
1152
  msgstr ""
1153
 
1154
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1155
- #: templates/account.php:103, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1156
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1157
  msgstr ""
1158
 
1159
- #: templates/account.php:104, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1160
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1161
  msgstr ""
1162
 
1163
- #: templates/account.php:105, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1164
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1165
  msgstr ""
1166
 
1167
- #: templates/account.php:106, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1168
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1169
  msgstr ""
1170
 
1171
- #: templates/account.php:107, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1172
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1173
  msgstr ""
1174
 
1175
  #. translators: %s: Plan title (e.g. "Professional")
1176
- #: templates/account.php:109, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1177
  msgid "Activate %s Plan"
1178
  msgstr ""
1179
 
1180
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1181
- #: templates/account.php:112, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1182
  msgid "Auto renews in %s"
1183
  msgstr ""
1184
 
1185
  #. translators: %s: Time period (e.g. Expires in "2 months")
1186
- #: templates/account.php:114, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1187
  msgid "Expires in %s"
1188
  msgstr ""
1189
 
1190
- #: templates/account.php:115
1191
  msgctxt "as synchronize license"
1192
  msgid "Sync License"
1193
  msgstr ""
1194
 
1195
- #: templates/account.php:116, templates/account/partials/addon.php:41
1196
  msgid "Cancel Trial"
1197
  msgstr ""
1198
 
1199
- #: templates/account.php:117, templates/account/partials/addon.php:42
1200
  msgid "Change Plan"
1201
  msgstr ""
1202
 
1203
- #: templates/account.php:118, templates/account/partials/addon.php:43
1204
  msgctxt "verb"
1205
  msgid "Upgrade"
1206
  msgstr ""
1207
 
1208
- #: templates/account.php:120, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1209
  msgctxt "verb"
1210
  msgid "Downgrade"
1211
  msgstr ""
1212
 
1213
- #: templates/account.php:122, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1214
  msgid "Free"
1215
  msgstr ""
1216
 
1217
- #: templates/account.php:124, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1218
  msgctxt "as product pricing plan"
1219
  msgid "Plan"
1220
  msgstr ""
1221
 
1222
- #: templates/account.php:125
1223
  msgid "Bundle Plan"
1224
  msgstr ""
1225
 
1226
- #: templates/account.php:248
1227
  msgid "Free Trial"
1228
  msgstr ""
1229
 
1230
- #: templates/account.php:259
1231
  msgid "Account Details"
1232
  msgstr ""
1233
 
1234
- #: templates/account.php:266, templates/forms/data-debug-mode.php:33
1235
  msgid "Start Debug"
1236
  msgstr ""
1237
 
1238
- #: templates/account.php:268
1239
  msgid "Stop Debug"
1240
  msgstr ""
1241
 
1242
- #: templates/account.php:275
1243
  msgid "Billing & Invoices"
1244
  msgstr ""
1245
 
1246
- #: templates/account.php:286
1247
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1248
  msgstr ""
1249
 
1250
- #: templates/account.php:288
1251
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1252
  msgstr ""
1253
 
1254
- #: templates/account.php:291
1255
  msgid "Delete Account"
1256
  msgstr ""
1257
 
1258
- #: templates/account.php:303, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1259
  msgid "Deactivate License"
1260
  msgstr ""
1261
 
1262
- #: templates/account.php:326, templates/forms/subscription-cancellation.php:125
1263
  msgid "Are you sure you want to proceed?"
1264
  msgstr ""
1265
 
1266
- #: templates/account.php:326, templates/account/partials/addon.php:255
1267
  msgid "Cancel Subscription"
1268
  msgstr ""
1269
 
1270
- #: templates/account.php:355, templates/account/partials/addon.php:340
1271
  msgctxt "as synchronize"
1272
  msgid "Sync"
1273
  msgstr ""
1274
 
1275
- #: templates/account.php:370, templates/debug.php:505
1276
  msgid "Name"
1277
  msgstr ""
1278
 
1279
- #: templates/account.php:376, templates/debug.php:506
1280
  msgid "Email"
1281
  msgstr ""
1282
 
1283
- #: templates/account.php:383, templates/debug.php:369, templates/debug.php:555
1284
  msgid "User ID"
1285
  msgstr ""
1286
 
1287
- #: templates/account.php:401, templates/account.php:719, templates/account.php:752, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1288
  msgid "ID"
1289
  msgstr ""
1290
 
1291
- #: templates/account.php:408
1292
  msgid "Site ID"
1293
  msgstr ""
1294
 
1295
- #: templates/account.php:411
1296
  msgid "No ID"
1297
  msgstr ""
1298
 
1299
- #: templates/account.php:416, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
1300
  msgid "Public Key"
1301
  msgstr ""
1302
 
1303
- #: templates/account.php:422, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
1304
  msgid "Secret Key"
1305
  msgstr ""
1306
 
1307
- #: templates/account.php:425
1308
  msgctxt "as secret encryption key missing"
1309
  msgid "No Secret"
1310
  msgstr ""
1311
 
1312
- #: templates/account.php:452, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1313
  msgid "Trial"
1314
  msgstr ""
1315
 
1316
- #: templates/account.php:479, templates/debug.php:561, templates/account/partials/site.php:260
1317
  msgid "License Key"
1318
  msgstr ""
1319
 
1320
- #: templates/account.php:510
1321
  msgid "Join the Beta program"
1322
  msgstr ""
1323
 
1324
- #: templates/account.php:516
1325
  msgid "not verified"
1326
  msgstr ""
1327
 
1328
- #: templates/account.php:525, templates/account/partials/addon.php:190
1329
  msgid "Expired"
1330
  msgstr ""
1331
 
1332
- #: templates/account.php:585
1333
  msgid "Premium version"
1334
  msgstr ""
1335
 
1336
- #: templates/account.php:587
1337
  msgid "Free version"
1338
  msgstr ""
1339
 
1340
- #: templates/account.php:599
1341
  msgid "Verify Email"
1342
  msgstr ""
1343
 
1344
- #: templates/account.php:613
1345
  msgid "Download %s Version"
1346
  msgstr ""
1347
 
1348
- #: templates/account.php:629
1349
  msgid "Download Paid Version"
1350
  msgstr ""
1351
 
1352
- #: templates/account.php:647, templates/account.php:890, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1353
  msgctxt "verb"
1354
  msgid "Show"
1355
  msgstr ""
1356
 
1357
- #: templates/account.php:662
1358
  msgid "What is your %s?"
1359
  msgstr ""
1360
 
1361
- #: templates/account.php:670, templates/account/billing.php:21
1362
  msgctxt "verb"
1363
  msgid "Edit"
1364
  msgstr ""
1365
 
1366
- #: templates/account.php:674, templates/forms/user-change.php:27
1367
  msgid "Change User"
1368
  msgstr ""
1369
 
1370
- #: templates/account.php:698
1371
  msgid "Sites"
1372
  msgstr ""
1373
 
1374
- #: templates/account.php:711
1375
  msgid "Search by address"
1376
  msgstr ""
1377
 
1378
- #: templates/account.php:720, templates/debug.php:366
1379
  msgid "Address"
1380
  msgstr ""
1381
 
1382
- #: templates/account.php:721
1383
  msgid "License"
1384
  msgstr ""
1385
 
1386
- #: templates/account.php:722
1387
  msgid "Plan"
1388
  msgstr ""
1389
 
1390
- #: templates/account.php:755
1391
  msgctxt "as software license"
1392
  msgid "License"
1393
  msgstr ""
1394
 
1395
- #: templates/account.php:884
1396
  msgctxt "verb"
1397
  msgid "Hide"
1398
  msgstr ""
1399
 
1400
- #: templates/account.php:906, templates/forms/data-debug-mode.php:31
1401
  msgid "Processing"
1402
  msgstr ""
1403
 
1404
- #: templates/account.php:909
1405
  msgid "Get updates for bleeding edge Beta versions of %s."
1406
  msgstr ""
1407
 
1408
- #: templates/account.php:967
1409
  msgid "Cancelling %s"
1410
  msgstr ""
1411
 
1412
- #: templates/account.php:967, templates/account.php:984, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1413
  msgid "trial"
1414
  msgstr ""
1415
 
1416
- #: templates/account.php:982, templates/forms/deactivation/form.php:150
1417
  msgid "Cancelling %s..."
1418
  msgstr ""
1419
 
1420
- #: templates/account.php:985, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1421
  msgid "subscription"
1422
  msgstr ""
1423
 
1424
- #: templates/account.php:999
1425
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1426
  msgstr ""
1427
 
1428
- #: templates/account.php:1073
1429
  msgid "Disabling white-label mode"
1430
  msgstr ""
1431
 
1432
- #: templates/account.php:1074
1433
  msgid "Enabling white-label mode"
1434
  msgstr ""
1435
 
@@ -1455,7 +1455,7 @@ msgctxt "installed add-on"
1455
  msgid "Installed"
1456
  msgstr ""
1457
 
1458
- #: templates/admin-notice.php:13, templates/forms/license-activation.php:220, templates/forms/resend-key.php:77
1459
  msgctxt "as close a window"
1460
  msgid "Dismiss"
1461
  msgstr ""
@@ -1510,84 +1510,92 @@ msgstr ""
1510
  msgid "Agree & Activate License"
1511
  msgstr ""
1512
 
1513
- #: templates/connect.php:189
1514
- msgid "Thanks for purchasing %s! To get started, please enter your license key:"
1515
  msgstr ""
1516
 
1517
- #: templates/connect.php:196
1518
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1519
  msgstr ""
1520
 
1521
- #: templates/connect.php:197
1522
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1523
  msgstr ""
1524
 
1525
- #: templates/connect.php:203
1526
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1527
  msgstr ""
1528
 
1529
- #: templates/connect.php:204
1530
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1531
  msgstr ""
1532
 
1533
- #: templates/connect.php:238
1534
  msgid "We're excited to introduce the Freemius network-level integration."
1535
  msgstr ""
1536
 
1537
- #: templates/connect.php:241
1538
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1539
  msgstr ""
1540
 
1541
- #: templates/connect.php:243
1542
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1543
  msgstr ""
1544
 
1545
- #: templates/connect.php:245
1546
  msgid "%s's paid features"
1547
  msgstr ""
1548
 
1549
- #: templates/connect.php:250
1550
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1551
  msgstr ""
1552
 
1553
- #: templates/connect.php:252
1554
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1555
  msgstr ""
1556
 
1557
- #: templates/connect.php:261, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1558
  msgid "License key"
1559
  msgstr ""
1560
 
1561
- #: templates/connect.php:264, templates/forms/license-activation.php:22
1562
  msgid "Can't find your license key?"
1563
  msgstr ""
1564
 
1565
- #: templates/connect.php:323, templates/connect.php:695, templates/forms/deactivation/retry-skip.php:20
1566
  msgctxt "verb"
1567
  msgid "Skip"
1568
  msgstr ""
1569
 
1570
- #: templates/connect.php:326
1571
  msgid "Delegate to Site Admins"
1572
  msgstr ""
1573
 
1574
- #: templates/connect.php:326
1575
  msgid "If you click it, this decision will be delegated to the sites administrators."
1576
  msgstr ""
1577
 
1578
- #: templates/connect.php:364
 
 
 
 
1579
  msgid "Your Profile Overview"
1580
  msgstr ""
1581
 
1582
- #: templates/connect.php:365
1583
  msgid "Name and email address"
1584
  msgstr ""
1585
 
1586
- #: templates/connect.php:372
 
 
 
 
1587
  msgid "Your Site Overview"
1588
  msgstr ""
1589
 
1590
- #: templates/connect.php:373
1591
  msgid "Site URL, WP version, PHP info"
1592
  msgstr ""
1593
 
@@ -1595,64 +1603,84 @@ msgstr ""
1595
  msgid "Admin Notices"
1596
  msgstr ""
1597
 
1598
- #: templates/connect.php:380, templates/connect.php:396
1599
  msgid "Updates, announcements, marketing, no spam"
1600
  msgstr ""
1601
 
1602
- #: templates/connect.php:386
1603
- msgid "Current %s Events"
 
 
 
 
1604
  msgstr ""
1605
 
1606
- #: templates/connect.php:387
1607
- msgid "Activation, deactivation and uninstall"
1608
  msgstr ""
1609
 
1610
- #: templates/connect.php:395
1611
  msgid "Newsletter"
1612
  msgstr ""
1613
 
1614
- #: templates/connect.php:403
1615
  msgid "Plugins & Themes"
1616
  msgstr ""
1617
 
1618
- #: templates/connect.php:404
 
 
 
 
 
 
 
 
1619
  msgid "Title, slug, version, and is active"
1620
  msgstr ""
1621
 
1622
- #: templates/connect.php:421, templates/forms/license-activation.php:41
1623
- msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
1624
  msgstr ""
1625
 
1626
  #: templates/connect.php:426
 
 
 
 
 
 
 
 
1627
  msgid "What permissions are being granted?"
1628
  msgstr ""
1629
 
1630
- #: templates/connect.php:452
1631
  msgid "Don't have a license key?"
1632
  msgstr ""
1633
 
1634
- #: templates/connect.php:455
1635
  msgid "Have a license key?"
1636
  msgstr ""
1637
 
1638
- #: templates/connect.php:463
1639
  msgid "Privacy Policy"
1640
  msgstr ""
1641
 
1642
- #: templates/connect.php:465
1643
  msgid "License Agreement"
1644
  msgstr ""
1645
 
1646
- #: templates/connect.php:465
1647
  msgid "Terms of Service"
1648
  msgstr ""
1649
 
1650
- #: templates/connect.php:854
1651
  msgctxt "as in the process of sending an email"
1652
  msgid "Sending email"
1653
  msgstr ""
1654
 
1655
- #: templates/connect.php:855
1656
  msgctxt "as activating plugin"
1657
  msgid "Activating"
1658
  msgstr ""
@@ -2241,7 +2269,11 @@ msgstr ""
2241
  msgid "Update License"
2242
  msgstr ""
2243
 
2244
- #: templates/forms/license-activation.php:181
 
 
 
 
2245
  msgid "Associate with the license owner's account."
2246
  msgstr ""
2247
 
1
+ # Copyright (C) 2021 freemius
2
  # This file is distributed under the same license as the freemius package.
3
  msgid ""
4
  msgstr ""
16
  "X-Poedit-SourceCharset: UTF-8\n"
17
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
18
 
19
+ #: includes/class-freemius.php:1919, templates/account.php:912
20
  msgid "An update to a Beta version will replace your installed version of %s with the latest Beta release - use with caution, and not on production sites. You have been warned."
21
  msgstr ""
22
 
23
+ #: includes/class-freemius.php:1926
24
  msgid "Would you like to proceed with the update?"
25
  msgstr ""
26
 
27
+ #: includes/class-freemius.php:2138
28
  msgid "Freemius SDK couldn't find the plugin's main file. Please contact sdk@freemius.com with the current error."
29
  msgstr ""
30
 
31
+ #: includes/class-freemius.php:2140
32
  msgid "Error"
33
  msgstr ""
34
 
35
+ #: includes/class-freemius.php:2540
36
  msgid "I found a better %s"
37
  msgstr ""
38
 
39
+ #: includes/class-freemius.php:2542
40
  msgid "What's the %s's name?"
41
  msgstr ""
42
 
43
+ #: includes/class-freemius.php:2548
44
  msgid "It's a temporary %s. I'm just debugging an issue."
45
  msgstr ""
46
 
47
+ #: includes/class-freemius.php:2550
48
  msgid "Deactivation"
49
  msgstr ""
50
 
51
+ #: includes/class-freemius.php:2551
52
  msgid "Theme Switch"
53
  msgstr ""
54
 
55
+ #: includes/class-freemius.php:2560, templates/forms/resend-key.php:24, templates/forms/user-change.php:29
56
  msgid "Other"
57
  msgstr ""
58
 
59
+ #: includes/class-freemius.php:2568
60
  msgid "I no longer need the %s"
61
  msgstr ""
62
 
63
+ #: includes/class-freemius.php:2575
64
  msgid "I only needed the %s for a short period"
65
  msgstr ""
66
 
67
+ #: includes/class-freemius.php:2581
68
  msgid "The %s broke my site"
69
  msgstr ""
70
 
71
+ #: includes/class-freemius.php:2588
72
  msgid "The %s suddenly stopped working"
73
  msgstr ""
74
 
75
+ #: includes/class-freemius.php:2598
76
  msgid "I can't pay for it anymore"
77
  msgstr ""
78
 
79
+ #: includes/class-freemius.php:2600
80
  msgid "What price would you feel comfortable paying?"
81
  msgstr ""
82
 
83
+ #: includes/class-freemius.php:2606
84
  msgid "I don't like to share my information with you"
85
  msgstr ""
86
 
87
+ #: includes/class-freemius.php:2627
88
  msgid "The %s didn't work"
89
  msgstr ""
90
 
91
+ #: includes/class-freemius.php:2637
92
  msgid "I couldn't understand how to make it work"
93
  msgstr ""
94
 
95
+ #: includes/class-freemius.php:2645
96
  msgid "The %s is great, but I need specific feature that you don't support"
97
  msgstr ""
98
 
99
+ #: includes/class-freemius.php:2647
100
  msgid "What feature?"
101
  msgstr ""
102
 
103
+ #: includes/class-freemius.php:2651
104
  msgid "The %s is not working"
105
  msgstr ""
106
 
107
+ #: includes/class-freemius.php:2653
108
  msgid "Kindly share what didn't work so we can fix it for future users..."
109
  msgstr ""
110
 
111
+ #: includes/class-freemius.php:2657
112
  msgid "It's not what I was looking for"
113
  msgstr ""
114
 
115
+ #: includes/class-freemius.php:2659
116
  msgid "What you've been looking for?"
117
  msgstr ""
118
 
119
+ #: includes/class-freemius.php:2663
120
  msgid "The %s didn't work as expected"
121
  msgstr ""
122
 
123
+ #: includes/class-freemius.php:2665
124
  msgid "What did you expect?"
125
  msgstr ""
126
 
127
+ #: includes/class-freemius.php:3520, templates/debug.php:20
128
  msgid "Freemius Debug"
129
  msgstr ""
130
 
131
+ #: includes/class-freemius.php:4272
132
  msgid "I don't know what is cURL or how to install it, help me!"
133
  msgstr ""
134
 
135
+ #: includes/class-freemius.php:4274
136
  msgid "We'll make sure to contact your hosting company and resolve the issue. You will get a follow-up email to %s once we have an update."
137
  msgstr ""
138
 
139
+ #: includes/class-freemius.php:4281
140
  msgid "Great, please install cURL and enable it in your php.ini file. In addition, search for the 'disable_functions' directive in your php.ini file and remove any disabled methods starting with 'curl_'. To make sure it was successfully activated, use 'phpinfo()'. Once activated, deactivate the %s and reactivate it back again."
141
  msgstr ""
142
 
143
+ #: includes/class-freemius.php:4386
144
  msgid "Yes - do your thing"
145
  msgstr ""
146
 
147
+ #: includes/class-freemius.php:4391
148
  msgid "No - just deactivate"
149
  msgstr ""
150
 
151
+ #: includes/class-freemius.php:4436, includes/class-freemius.php:4930, includes/class-freemius.php:6191, includes/class-freemius.php:13368, includes/class-freemius.php:14110, includes/class-freemius.php:17542, includes/class-freemius.php:17647, includes/class-freemius.php:17822, includes/class-freemius.php:20056, includes/class-freemius.php:20414, includes/class-freemius.php:20424, includes/class-freemius.php:21109, includes/class-freemius.php:22015, includes/class-freemius.php:22148, includes/class-freemius.php:22304, templates/add-ons.php:57
152
  msgctxt "exclamation"
153
  msgid "Oops"
154
  msgstr ""
155
 
156
+ #: includes/class-freemius.php:4505
157
  msgid "Thank for giving us the chance to fix it! A message was just sent to our technical staff. We will get back to you as soon as we have an update to %s. Appreciate your patience."
158
  msgstr ""
159
 
160
+ #: includes/class-freemius.php:4927
161
  msgctxt "addonX cannot run without pluginY"
162
  msgid "%s cannot run without %s."
163
  msgstr ""
164
 
165
+ #: includes/class-freemius.php:4928
166
  msgctxt "addonX cannot run..."
167
  msgid "%s cannot run without the plugin."
168
  msgstr ""
169
 
170
+ #: includes/class-freemius.php:5127, includes/class-freemius.php:5152, includes/class-freemius.php:21180
171
  msgid "Unexpected API error. Please contact the %s's author with the following error."
172
  msgstr ""
173
 
174
+ #: includes/class-freemius.php:5857
175
  msgid "Premium %s version was successfully activated."
176
  msgstr ""
177
 
178
+ #: includes/class-freemius.php:5869, includes/class-freemius.php:7774
179
  msgctxt "Used to express elation, enthusiasm, or triumph (especially in electronic communication)."
180
  msgid "W00t"
181
  msgstr ""
182
 
183
+ #: includes/class-freemius.php:5884
184
  msgid "You have a %s license."
185
  msgstr ""
186
 
187
+ #: includes/class-freemius.php:5888, includes/class-freemius.php:16947, includes/class-freemius.php:16958, includes/class-freemius.php:20325, includes/class-freemius.php:20689, includes/class-freemius.php:20758, includes/class-freemius.php:20930
188
  msgctxt "interjection expressing joy or exuberance"
189
  msgid "Yee-haw"
190
  msgstr ""
191
 
192
+ #: includes/class-freemius.php:6174
193
  msgid "%s free trial was successfully cancelled. Since the add-on is premium only it was automatically deactivated. If you like to use it in the future, you'll have to purchase a license."
194
  msgstr ""
195
 
196
+ #: includes/class-freemius.php:6178
197
  msgid "%s is a premium only add-on. You have to purchase a license first before activating the plugin."
198
  msgstr ""
199
 
200
+ #: includes/class-freemius.php:6187, templates/add-ons.php:186, templates/account/partials/addon.php:381
201
  msgid "More information about %s"
202
  msgstr ""
203
 
204
+ #: includes/class-freemius.php:6188
205
  msgid "Purchase License"
206
  msgstr ""
207
 
208
+ #: includes/class-freemius.php:7125, templates/connect.php:171
209
  msgid "You should receive an activation email for %s to your mailbox at %s. Please make sure you click the activation button in that email to %s."
210
  msgstr ""
211
 
212
+ #: includes/class-freemius.php:7129
213
  msgid "start the trial"
214
  msgstr ""
215
 
216
+ #: includes/class-freemius.php:7130, templates/connect.php:175
217
  msgid "complete the install"
218
  msgstr ""
219
 
220
+ #: includes/class-freemius.php:7249
221
  msgid "You are just one step away - %s"
222
  msgstr ""
223
 
224
+ #: includes/class-freemius.php:7252
225
  msgctxt "%s - plugin name. As complete \"PluginX\" activation now"
226
  msgid "Complete \"%s\" Activation Now"
227
  msgstr ""
228
 
229
+ #: includes/class-freemius.php:7334
230
  msgid "We made a few tweaks to the %s, %s"
231
  msgstr ""
232
 
233
+ #: includes/class-freemius.php:7338
234
  msgid "Opt in to make \"%s\" better!"
235
  msgstr ""
236
 
237
+ #: includes/class-freemius.php:7773
238
  msgid "The upgrade of %s was successfully completed."
239
  msgstr ""
240
 
241
+ #: includes/class-freemius.php:10255, includes/class-fs-plugin-updater.php:1087, includes/class-fs-plugin-updater.php:1282, includes/class-fs-plugin-updater.php:1289, templates/auto-installation.php:32
242
  msgid "Add-On"
243
  msgstr ""
244
 
245
+ #: includes/class-freemius.php:10257, templates/account.php:394, templates/account.php:402, templates/debug.php:358, templates/debug.php:549
246
  msgid "Plugin"
247
  msgstr ""
248
 
249
+ #: includes/class-freemius.php:10258, templates/account.php:395, templates/account.php:403, templates/debug.php:358, templates/debug.php:549, templates/forms/deactivation/form.php:71
250
  msgid "Theme"
251
  msgstr ""
252
 
253
+ #: includes/class-freemius.php:13188
254
  msgid "An unknown error has occurred while trying to toggle the license's white-label mode."
255
  msgstr ""
256
 
257
+ #: includes/class-freemius.php:13202
258
  msgid "Your %s license was flagged as white-labeled to hide sensitive information from the WP Admin (e.g. your email, license key, prices, billing address & invoices). If you ever wish to revert it back, you can easily do it through your %s. If this was a mistake you can also %s."
259
  msgstr ""
260
 
261
+ #: includes/class-freemius.php:13207
262
  msgid "User Dashboard"
263
  msgstr ""
264
 
265
+ #: includes/class-freemius.php:13208
266
  msgid "revert it now"
267
  msgstr ""
268
 
269
+ #: includes/class-freemius.php:13266
270
  msgid "An unknown error has occurred while trying to set the user's beta mode."
271
  msgstr ""
272
 
273
+ #: includes/class-freemius.php:13339
274
  msgid "Invalid new user ID or email address."
275
  msgstr ""
276
 
277
+ #: includes/class-freemius.php:13369, includes/class-freemius.php:22259
278
  msgid "Sorry, we could not complete the email update. Another user with the same email is already registered."
279
  msgstr ""
280
 
281
+ #: includes/class-freemius.php:13370, includes/class-freemius.php:22260
282
  msgid "If you would like to give up the ownership of the %s's account to %s click the Change Ownership button."
283
  msgstr ""
284
 
285
+ #: includes/class-freemius.php:13377, includes/class-freemius.php:22267
286
  msgid "Change Ownership"
287
  msgstr ""
288
 
289
+ #: includes/class-freemius.php:13977
290
  msgid "Invalid site details collection."
291
  msgstr ""
292
 
293
+ #: includes/class-freemius.php:14097
294
  msgid "We couldn't find your email address in the system, are you sure it's the right address?"
295
  msgstr ""
296
 
297
+ #: includes/class-freemius.php:14099
298
  msgid "We can't see any active licenses associated with that email address, are you sure it's the right address?"
299
  msgstr ""
300
 
301
+ #: includes/class-freemius.php:14373
302
  msgid "Account is pending activation."
303
  msgstr ""
304
 
305
+ #: includes/class-freemius.php:14485, templates/forms/premium-versions-upgrade-handler.php:47
306
  msgid "Buy a license now"
307
  msgstr ""
308
 
309
+ #: includes/class-freemius.php:14497, templates/forms/premium-versions-upgrade-handler.php:46
310
  msgid "Renew your license now"
311
  msgstr ""
312
 
313
+ #: includes/class-freemius.php:14501
314
  msgid "%s to access version %s security & feature updates, and support."
315
  msgstr ""
316
 
317
+ #: includes/class-freemius.php:16929
318
  msgid "%s activation was successfully completed."
319
  msgstr ""
320
 
321
+ #: includes/class-freemius.php:16943
322
  msgid "Your account was successfully activated with the %s plan."
323
  msgstr ""
324
 
325
+ #: includes/class-freemius.php:16954, includes/class-freemius.php:20754
326
  msgid "Your trial has been successfully started."
327
  msgstr ""
328
 
329
+ #: includes/class-freemius.php:17540, includes/class-freemius.php:17645, includes/class-freemius.php:17820
330
  msgid "Couldn't activate %s."
331
  msgstr ""
332
 
333
+ #: includes/class-freemius.php:17541, includes/class-freemius.php:17646, includes/class-freemius.php:17821
334
  msgid "Please contact us with the following message:"
335
  msgstr ""
336
 
337
+ #: includes/class-freemius.php:17642, templates/forms/data-debug-mode.php:162
338
  msgid "An unknown error has occurred."
339
  msgstr ""
340
 
341
+ #: includes/class-freemius.php:18178, includes/class-freemius.php:23340
342
  msgid "Upgrade"
343
  msgstr ""
344
 
345
+ #: includes/class-freemius.php:18184
346
  msgid "Start Trial"
347
  msgstr ""
348
 
349
+ #: includes/class-freemius.php:18186
350
  msgid "Pricing"
351
  msgstr ""
352
 
353
+ #: includes/class-freemius.php:18266, includes/class-freemius.php:18268
354
  msgid "Affiliation"
355
  msgstr ""
356
 
357
+ #: includes/class-freemius.php:18296, includes/class-freemius.php:18298, templates/account.php:242, templates/debug.php:324
358
  msgid "Account"
359
  msgstr ""
360
 
361
+ #: includes/class-freemius.php:18312, includes/class-freemius.php:18314, includes/customizer/class-fs-customizer-support-section.php:60
362
  msgid "Contact Us"
363
  msgstr ""
364
 
365
+ #: includes/class-freemius.php:18325, includes/class-freemius.php:18327, includes/class-freemius.php:23354, templates/account.php:121, templates/account/partials/addon.php:44
366
  msgid "Add-Ons"
367
  msgstr ""
368
 
369
+ #: includes/class-freemius.php:18361
370
  msgctxt "ASCII arrow left icon"
371
  msgid "&#x2190;"
372
  msgstr ""
373
 
374
+ #: includes/class-freemius.php:18361
375
  msgctxt "ASCII arrow right icon"
376
  msgid "&#x27a4;"
377
  msgstr ""
378
 
379
+ #: includes/class-freemius.php:18363, templates/pricing.php:109
380
  msgctxt "noun"
381
  msgid "Pricing"
382
  msgstr ""
383
 
384
+ #: includes/class-freemius.php:18576, includes/customizer/class-fs-customizer-support-section.php:67
385
  msgid "Support Forum"
386
  msgstr ""
387
 
388
+ #: includes/class-freemius.php:19550
389
  msgid "Your email has been successfully verified - you are AWESOME!"
390
  msgstr ""
391
 
392
+ #: includes/class-freemius.php:19551
393
  msgctxt "a positive response"
394
  msgid "Right on"
395
  msgstr ""
396
 
397
+ #: includes/class-freemius.php:20057
398
  msgid "seems like the key you entered doesn't match our records."
399
  msgstr ""
400
 
401
+ #: includes/class-freemius.php:20081
402
  msgid "Debug mode was successfully enabled and will be automatically disabled in 60 min. You can also disable it earlier by clicking the \"Stop Debug\" link."
403
  msgstr ""
404
 
405
+ #: includes/class-freemius.php:20316
406
  msgid "Your %s Add-on plan was successfully upgraded."
407
  msgstr ""
408
 
409
+ #: includes/class-freemius.php:20318
410
  msgid "%s Add-on was successfully purchased."
411
  msgstr ""
412
 
413
+ #: includes/class-freemius.php:20321
414
  msgid "Download the latest version"
415
  msgstr ""
416
 
417
+ #: includes/class-freemius.php:20407
418
  msgid "Your server is blocking the access to Freemius' API, which is crucial for %1$s synchronization. Please contact your host to whitelist %2$s"
419
  msgstr ""
420
 
421
+ #: includes/class-freemius.php:20413, includes/class-freemius.php:20423, includes/class-freemius.php:20889, includes/class-freemius.php:20978
422
  msgid "Error received from the server:"
423
  msgstr ""
424
 
425
+ #: includes/class-freemius.php:20423
426
  msgid "It seems like one of the authentication parameters is wrong. Update your Public Key, Secret Key & User ID, and try again."
427
  msgstr ""
428
 
429
+ #: includes/class-freemius.php:20651, includes/class-freemius.php:20894, includes/class-freemius.php:20949, includes/class-freemius.php:21056
430
  msgctxt "something somebody says when they are thinking about what you have just said."
431
  msgid "Hmm"
432
  msgstr ""
433
 
434
+ #: includes/class-freemius.php:20664
435
  msgid "It looks like you are still on the %s plan. If you did upgrade or change your plan, it's probably an issue on our side - sorry."
436
  msgstr ""
437
 
438
+ #: includes/class-freemius.php:20665, templates/account.php:123, templates/add-ons.php:250, templates/account/partials/addon.php:46
439
  msgctxt "trial period"
440
  msgid "Trial"
441
  msgstr ""
442
 
443
+ #: includes/class-freemius.php:20670
444
  msgid "I have upgraded my account but when I try to Sync the License, the plan remains %s."
445
  msgstr ""
446
 
447
+ #: includes/class-freemius.php:20674, includes/class-freemius.php:20733
448
  msgid "Please contact us here"
449
  msgstr ""
450
 
451
+ #: includes/class-freemius.php:20685
452
  msgid "Your plan was successfully activated."
453
  msgstr ""
454
 
455
+ #: includes/class-freemius.php:20686
456
  msgid "Your plan was successfully upgraded."
457
  msgstr ""
458
 
459
+ #: includes/class-freemius.php:20703
460
  msgid "Your plan was successfully changed to %s."
461
  msgstr ""
462
 
463
+ #: includes/class-freemius.php:20719
464
  msgid "Your license has expired. You can still continue using the free %s forever."
465
  msgstr ""
466
 
467
+ #: includes/class-freemius.php:20721
468
  msgid "Your license has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
469
  msgstr ""
470
 
471
+ #: includes/class-freemius.php:20729
472
  msgid "Your license has been cancelled. If you think it's a mistake, please contact support."
473
  msgstr ""
474
 
475
+ #: includes/class-freemius.php:20742
476
  msgid "Your license has expired. You can still continue using all the %s features, but you'll need to renew your license to continue getting updates and support."
477
  msgstr ""
478
 
479
+ #: includes/class-freemius.php:20768
480
  msgid "Your free trial has expired. You can still continue using all our free features."
481
  msgstr ""
482
 
483
+ #: includes/class-freemius.php:20770
484
  msgid "Your free trial has expired. %1$sUpgrade now%2$s to continue using the %3$s without interruptions."
485
  msgstr ""
486
 
487
+ #: includes/class-freemius.php:20885
488
  msgid "It looks like the license could not be activated."
489
  msgstr ""
490
 
491
+ #: includes/class-freemius.php:20927
492
  msgid "Your license was successfully activated."
493
  msgstr ""
494
 
495
+ #: includes/class-freemius.php:20953
496
  msgid "It looks like your site currently doesn't have an active license."
497
  msgstr ""
498
 
499
+ #: includes/class-freemius.php:20977
500
  msgid "It looks like the license deactivation failed."
501
  msgstr ""
502
 
503
+ #: includes/class-freemius.php:21006
504
  msgid "Your %s license was successfully deactivated."
505
  msgstr ""
506
 
507
+ #: includes/class-freemius.php:21007
508
  msgid "Your license was successfully deactivated, you are back to the %s plan."
509
  msgstr ""
510
 
511
+ #: includes/class-freemius.php:21010
512
  msgid "O.K"
513
  msgstr ""
514
 
515
+ #: includes/class-freemius.php:21063
516
  msgid "Seems like we are having some temporary issue with your subscription cancellation. Please try again in few minutes."
517
  msgstr ""
518
 
519
+ #: includes/class-freemius.php:21072
520
  msgid "Your subscription was successfully cancelled. Your %s plan license will expire in %s."
521
  msgstr ""
522
 
523
+ #: includes/class-freemius.php:21114
524
  msgid "You are already running the %s in a trial mode."
525
  msgstr ""
526
 
527
+ #: includes/class-freemius.php:21125
528
  msgid "You already utilized a trial before."
529
  msgstr ""
530
 
531
+ #: includes/class-freemius.php:21139
532
  msgid "Plan %s do not exist, therefore, can't start a trial."
533
  msgstr ""
534
 
535
+ #: includes/class-freemius.php:21150
536
  msgid "Plan %s does not support a trial period."
537
  msgstr ""
538
 
539
+ #: includes/class-freemius.php:21161
540
  msgid "None of the %s's plans supports a trial period."
541
  msgstr ""
542
 
543
+ #: includes/class-freemius.php:21211
544
  msgid "It looks like you are not in trial mode anymore so there's nothing to cancel :)"
545
  msgstr ""
546
 
547
+ #: includes/class-freemius.php:21247
548
  msgid "Seems like we are having some temporary issue with your trial cancellation. Please try again in few minutes."
549
  msgstr ""
550
 
551
+ #: includes/class-freemius.php:21266
552
  msgid "Your %s free trial was successfully cancelled."
553
  msgstr ""
554
 
555
+ #: includes/class-freemius.php:21582
556
  msgid "Version %s was released."
557
  msgstr ""
558
 
559
+ #: includes/class-freemius.php:21582
560
  msgid "Please download %s."
561
  msgstr ""
562
 
563
+ #: includes/class-freemius.php:21589
564
  msgid "the latest %s version here"
565
  msgstr ""
566
 
567
+ #: includes/class-freemius.php:21594
568
  msgid "New"
569
  msgstr ""
570
 
571
+ #: includes/class-freemius.php:21599
572
  msgid "Seems like you got the latest release."
573
  msgstr ""
574
 
575
+ #: includes/class-freemius.php:21600
576
  msgid "You are all good!"
577
  msgstr ""
578
 
579
+ #: includes/class-freemius.php:21903
580
  msgid "Verification mail was just sent to %s. If you can't find it after 5 min, please check your spam box."
581
  msgstr ""
582
 
583
+ #: includes/class-freemius.php:22043
584
  msgid "Site successfully opted in."
585
  msgstr ""
586
 
587
+ #: includes/class-freemius.php:22044, includes/class-freemius.php:23050
588
  msgid "Awesome"
589
  msgstr ""
590
 
591
+ #: includes/class-freemius.php:22060, templates/forms/optout.php:41
592
  msgid "We appreciate your help in making the %s better by letting us track some usage data."
593
  msgstr ""
594
 
595
+ #: includes/class-freemius.php:22061
596
  msgid "Thank you!"
597
  msgstr ""
598
 
599
+ #: includes/class-freemius.php:22068
600
  msgid "We will no longer be sending any usage data of %s on %s to %s."
601
  msgstr ""
602
 
603
+ #: includes/class-freemius.php:22226
604
  msgid "Please check your mailbox, you should receive an email via %s to confirm the ownership change. From security reasons, you must confirm the change within the next 15 min. If you cannot find the email, please check your spam folder."
605
  msgstr ""
606
 
607
+ #: includes/class-freemius.php:22232
608
  msgid "Thanks for confirming the ownership change. An email was just sent to %s for final approval."
609
  msgstr ""
610
 
611
+ #: includes/class-freemius.php:22237
612
  msgid "%s is the new owner of the account."
613
  msgstr ""
614
 
615
+ #: includes/class-freemius.php:22239
616
  msgctxt "as congratulations"
617
  msgid "Congrats"
618
  msgstr ""
619
 
620
+ #: includes/class-freemius.php:22275
621
  msgid "Your email was successfully updated. You should receive an email with confirmation instructions in few moments."
622
  msgstr ""
623
 
624
+ #: includes/class-freemius.php:22287
625
  msgid "Please provide your full name."
626
  msgstr ""
627
 
628
+ #: includes/class-freemius.php:22292
629
  msgid "Your name was successfully updated."
630
  msgstr ""
631
 
632
+ #: includes/class-freemius.php:22353
633
  msgid "You have successfully updated your %s."
634
  msgstr ""
635
 
636
+ #: includes/class-freemius.php:22412
637
  msgid "Is this your client's site? %s if you wish to hide sensitive info like your email, license key, prices, billing address & invoices from the WP Admin."
638
  msgstr ""
639
 
640
+ #: includes/class-freemius.php:22415
641
  msgid "Click here"
642
  msgstr ""
643
 
644
+ #: includes/class-freemius.php:22513
645
  msgid "Just letting you know that the add-ons information of %s is being pulled from an external server."
646
  msgstr ""
647
 
648
+ #: includes/class-freemius.php:22514
649
  msgctxt "advance notice of something that will need attention."
650
  msgid "Heads up"
651
  msgstr ""
652
 
653
+ #: includes/class-freemius.php:23090
654
  msgctxt "exclamation"
655
  msgid "Hey"
656
  msgstr ""
657
 
658
+ #: includes/class-freemius.php:23090
659
  msgid "How do you like %s so far? Test all our %s premium features with a %d-day free trial."
660
  msgstr ""
661
 
662
+ #: includes/class-freemius.php:23098
663
  msgid "No commitment for %s days - cancel anytime!"
664
  msgstr ""
665
 
666
+ #: includes/class-freemius.php:23099
667
  msgid "No credit card required"
668
  msgstr ""
669
 
670
+ #: includes/class-freemius.php:23106, templates/forms/trial-start.php:53
671
  msgctxt "call to action"
672
  msgid "Start free trial"
673
  msgstr ""
674
 
675
+ #: includes/class-freemius.php:23183
676
  msgid "Hey there, did you know that %s has an affiliate program? If you like the %s you can become our ambassador and earn some cash!"
677
  msgstr ""
678
 
679
+ #: includes/class-freemius.php:23192
680
  msgid "Learn more"
681
  msgstr ""
682
 
683
+ #: includes/class-freemius.php:23378, templates/account.php:558, templates/account.php:708, templates/connect.php:179, templates/connect.php:461, templates/forms/license-activation.php:27, templates/account/partials/addon.php:321
684
  msgid "Activate License"
685
  msgstr ""
686
 
687
+ #: includes/class-freemius.php:23379, templates/account.php:652, templates/account.php:707, templates/account/partials/addon.php:322, templates/account/partials/site.php:271
688
  msgid "Change License"
689
  msgstr ""
690
 
691
+ #: includes/class-freemius.php:23500, templates/account/partials/site.php:169
692
  msgid "Opt Out"
693
  msgstr ""
694
 
695
+ #: includes/class-freemius.php:23502, includes/class-freemius.php:23508, templates/account/partials/site.php:49, templates/account/partials/site.php:169
696
  msgid "Opt In"
697
  msgstr ""
698
 
699
+ #: includes/class-freemius.php:23738
700
  msgid " The paid version of %1$s is already installed. Please activate it to start benefiting the %2$s features. %3$s"
701
  msgstr ""
702
 
703
+ #: includes/class-freemius.php:23746
704
  msgid "Activate %s features"
705
  msgstr ""
706
 
707
+ #: includes/class-freemius.php:23759
708
  msgid "Please follow these steps to complete the upgrade"
709
  msgstr ""
710
 
711
+ #: includes/class-freemius.php:23763
712
  msgid "Download the latest %s version"
713
  msgstr ""
714
 
715
+ #: includes/class-freemius.php:23767
716
  msgid "Upload and activate the downloaded version"
717
  msgstr ""
718
 
719
+ #: includes/class-freemius.php:23769
720
  msgid "How to upload and activate?"
721
  msgstr ""
722
 
723
+ #: includes/class-freemius.php:23903
724
  msgid "%sClick here%s to choose the sites where you'd like to activate the license on."
725
  msgstr ""
726
 
727
+ #: includes/class-freemius.php:24072
728
  msgid "Auto installation only works for opted-in users."
729
  msgstr ""
730
 
731
+ #: includes/class-freemius.php:24082, includes/class-freemius.php:24115, includes/class-fs-plugin-updater.php:1261, includes/class-fs-plugin-updater.php:1275
732
  msgid "Invalid module ID."
733
  msgstr ""
734
 
735
+ #: includes/class-freemius.php:24091, includes/class-fs-plugin-updater.php:1297
736
  msgid "Premium version already active."
737
  msgstr ""
738
 
739
+ #: includes/class-freemius.php:24098
740
  msgid "You do not have a valid license to access the premium version."
741
  msgstr ""
742
 
743
+ #: includes/class-freemius.php:24105
744
  msgid "Plugin is a \"Serviceware\" which means it does not have a premium code version."
745
  msgstr ""
746
 
747
+ #: includes/class-freemius.php:24123, includes/class-fs-plugin-updater.php:1296
748
  msgid "Premium add-on version already installed."
749
  msgstr ""
750
 
751
+ #: includes/class-freemius.php:24473
752
  msgid "View paid features"
753
  msgstr ""
754
 
755
+ #: includes/class-freemius.php:24795
756
  msgid "Thank you so much for using %s and its add-ons!"
757
  msgstr ""
758
 
759
+ #: includes/class-freemius.php:24796
760
  msgid "Thank you so much for using %s!"
761
  msgstr ""
762
 
763
+ #: includes/class-freemius.php:24802
764
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving the %s."
765
  msgstr ""
766
 
767
+ #: includes/class-freemius.php:24806
768
  msgid "Thank you so much for using our products!"
769
  msgstr ""
770
 
771
+ #: includes/class-freemius.php:24807
772
  msgid "You've already opted-in to our usage-tracking, which helps us keep improving them."
773
  msgstr ""
774
 
775
+ #: includes/class-freemius.php:24826
776
  msgid "%s and its add-ons"
777
  msgstr ""
778
 
779
+ #: includes/class-freemius.php:24835
780
  msgid "Products"
781
  msgstr ""
782
 
783
+ #: includes/class-freemius.php:24842, templates/connect.php:275
784
  msgid "Yes"
785
  msgstr ""
786
 
787
+ #: includes/class-freemius.php:24843, templates/connect.php:276
788
  msgid "send me security & feature updates, educational content and offers."
789
  msgstr ""
790
 
791
+ #: includes/class-freemius.php:24844, templates/connect.php:281
792
  msgid "No"
793
  msgstr ""
794
 
795
+ #: includes/class-freemius.php:24846, templates/connect.php:283
796
  msgid "do %sNOT%s send me security & feature updates, educational content and offers."
797
  msgstr ""
798
 
799
+ #: includes/class-freemius.php:24856
800
  msgid "Due to the new %sEU General Data Protection Regulation (GDPR)%s compliance requirements it is required that you provide your explicit consent, again, confirming that you are onboard :-)"
801
  msgstr ""
802
 
803
+ #: includes/class-freemius.php:24858, templates/connect.php:290
804
  msgid "Please let us know if you'd like us to contact you for security & feature updates, educational content, and occasional offers:"
805
  msgstr ""
806
 
807
+ #: includes/class-freemius.php:25140
808
  msgid "License key is empty."
809
  msgstr ""
810
 
832
  msgid "Important Upgrade Notice:"
833
  msgstr ""
834
 
835
+ #: includes/class-fs-plugin-updater.php:1326
836
  msgid "Installing plugin: %s"
837
  msgstr ""
838
 
839
+ #: includes/class-fs-plugin-updater.php:1367
840
  msgid "Unable to connect to the filesystem. Please confirm your credentials."
841
  msgstr ""
842
 
843
+ #: includes/class-fs-plugin-updater.php:1549
844
  msgid "The remote plugin package does not contain a folder with the desired slug and renaming did not work."
845
  msgstr ""
846
 
861
  msgid "Install Free Version Update Now"
862
  msgstr ""
863
 
864
+ #: includes/fs-plugin-info-dialog.php:745, templates/account.php:641
865
  msgid "Install Update Now"
866
  msgstr ""
867
 
878
  msgid "Download Latest Free Version"
879
  msgstr ""
880
 
881
+ #: includes/fs-plugin-info-dialog.php:772, templates/account.php:101, templates/add-ons.php:37, templates/account/partials/addon.php:25
882
  msgctxt "as download latest version"
883
  msgid "Download Latest"
884
  msgstr ""
887
  msgid "Activate this add-on"
888
  msgstr ""
889
 
890
+ #: includes/fs-plugin-info-dialog.php:789, templates/connect.php:458
891
  msgid "Activate Free Version"
892
  msgstr ""
893
 
894
+ #: includes/fs-plugin-info-dialog.php:790, templates/account.php:125, templates/add-ons.php:330, templates/account/partials/addon.php:48
895
  msgid "Activate"
896
  msgstr ""
897
 
1020
  msgid "Details"
1021
  msgstr ""
1022
 
1023
+ #: includes/fs-plugin-info-dialog.php:1318, templates/account.php:112, templates/debug.php:201, templates/debug.php:238, templates/debug.php:455, templates/account/partials/addon.php:36
1024
  msgctxt "product version"
1025
  msgid "Version"
1026
  msgstr ""
1034
  msgid "Last Updated"
1035
  msgstr ""
1036
 
1037
+ #: includes/fs-plugin-info-dialog.php:1337, templates/account.php:527
1038
  msgctxt "x-ago"
1039
  msgid "%s ago"
1040
  msgstr ""
1143
  msgid "Latest Free Version Installed"
1144
  msgstr ""
1145
 
1146
+ #: templates/account.php:102, templates/forms/subscription-cancellation.php:96, templates/account/partials/addon.php:26, templates/account/partials/site.php:311
1147
  msgid "Downgrading your plan"
1148
  msgstr ""
1149
 
1150
+ #: templates/account.php:103, templates/forms/subscription-cancellation.php:97, templates/account/partials/addon.php:27, templates/account/partials/site.php:312
1151
  msgid "Cancelling the subscription"
1152
  msgstr ""
1153
 
1154
  #. translators: %1$s: Either 'Downgrading your plan' or 'Cancelling the subscription'
1155
+ #: templates/account.php:105, templates/forms/subscription-cancellation.php:99, templates/account/partials/site.php:314
1156
  msgid "%1$s will immediately stop all future recurring payments and your %2$s plan license will expire in %3$s."
1157
  msgstr ""
1158
 
1159
+ #: templates/account.php:106, templates/forms/subscription-cancellation.php:100, templates/account/partials/addon.php:30, templates/account/partials/site.php:315
1160
  msgid "Please note that we will not be able to grandfather outdated pricing for renewals/new subscriptions after a cancellation. If you choose to renew the subscription manually in the future, after a price increase, which typically occurs once a year, you will be charged the updated price."
1161
  msgstr ""
1162
 
1163
+ #: templates/account.php:107, templates/forms/subscription-cancellation.php:106, templates/account/partials/addon.php:31
1164
  msgid "Cancelling the trial will immediately block access to all premium features. Are you sure?"
1165
  msgstr ""
1166
 
1167
+ #: templates/account.php:108, templates/forms/subscription-cancellation.php:101, templates/account/partials/addon.php:32, templates/account/partials/site.php:316
1168
  msgid "You can still enjoy all %s features but you will not have access to %s security & feature updates, nor support."
1169
  msgstr ""
1170
 
1171
+ #: templates/account.php:109, templates/forms/subscription-cancellation.php:102, templates/account/partials/addon.php:33, templates/account/partials/site.php:317
1172
  msgid "Once your license expires you can still use the Free version but you will NOT have access to the %s features."
1173
  msgstr ""
1174
 
1175
  #. translators: %s: Plan title (e.g. "Professional")
1176
+ #: templates/account.php:111, templates/account/partials/activate-license-button.php:31, templates/account/partials/addon.php:35
1177
  msgid "Activate %s Plan"
1178
  msgstr ""
1179
 
1180
  #. translators: %s: Time period (e.g. Auto renews in "2 months")
1181
+ #: templates/account.php:114, templates/account/partials/addon.php:38, templates/account/partials/site.php:291
1182
  msgid "Auto renews in %s"
1183
  msgstr ""
1184
 
1185
  #. translators: %s: Time period (e.g. Expires in "2 months")
1186
+ #: templates/account.php:116, templates/account/partials/addon.php:40, templates/account/partials/site.php:293
1187
  msgid "Expires in %s"
1188
  msgstr ""
1189
 
1190
+ #: templates/account.php:117
1191
  msgctxt "as synchronize license"
1192
  msgid "Sync License"
1193
  msgstr ""
1194
 
1195
+ #: templates/account.php:118, templates/account/partials/addon.php:41
1196
  msgid "Cancel Trial"
1197
  msgstr ""
1198
 
1199
+ #: templates/account.php:119, templates/account/partials/addon.php:42
1200
  msgid "Change Plan"
1201
  msgstr ""
1202
 
1203
+ #: templates/account.php:120, templates/account/partials/addon.php:43
1204
  msgctxt "verb"
1205
  msgid "Upgrade"
1206
  msgstr ""
1207
 
1208
+ #: templates/account.php:122, templates/account/partials/addon.php:45, templates/account/partials/site.php:318
1209
  msgctxt "verb"
1210
  msgid "Downgrade"
1211
  msgstr ""
1212
 
1213
+ #: templates/account.php:124, templates/add-ons.php:246, templates/plugin-info/features.php:72, templates/account/partials/addon.php:47, templates/account/partials/site.php:33
1214
  msgid "Free"
1215
  msgstr ""
1216
 
1217
+ #: templates/account.php:126, templates/debug.php:371, includes/customizer/class-fs-customizer-upsell-control.php:110, templates/account/partials/addon.php:49
1218
  msgctxt "as product pricing plan"
1219
  msgid "Plan"
1220
  msgstr ""
1221
 
1222
+ #: templates/account.php:127
1223
  msgid "Bundle Plan"
1224
  msgstr ""
1225
 
1226
+ #: templates/account.php:250
1227
  msgid "Free Trial"
1228
  msgstr ""
1229
 
1230
+ #: templates/account.php:261
1231
  msgid "Account Details"
1232
  msgstr ""
1233
 
1234
+ #: templates/account.php:268, templates/forms/data-debug-mode.php:33
1235
  msgid "Start Debug"
1236
  msgstr ""
1237
 
1238
+ #: templates/account.php:270
1239
  msgid "Stop Debug"
1240
  msgstr ""
1241
 
1242
+ #: templates/account.php:277
1243
  msgid "Billing & Invoices"
1244
  msgstr ""
1245
 
1246
+ #: templates/account.php:288
1247
  msgid "Deleting the account will automatically deactivate your %s plan license so you can use it on other sites. If you want to terminate the recurring payments as well, click the \"Cancel\" button, and first \"Downgrade\" your account. Are you sure you would like to continue with the deletion?"
1248
  msgstr ""
1249
 
1250
+ #: templates/account.php:290
1251
  msgid "Deletion is not temporary. Only delete if you no longer want to use this %s anymore. Are you sure you would like to continue with the deletion?"
1252
  msgstr ""
1253
 
1254
+ #: templates/account.php:293
1255
  msgid "Delete Account"
1256
  msgstr ""
1257
 
1258
+ #: templates/account.php:305, templates/account/partials/addon.php:231, templates/account/partials/deactivate-license-button.php:35
1259
  msgid "Deactivate License"
1260
  msgstr ""
1261
 
1262
+ #: templates/account.php:328, templates/forms/subscription-cancellation.php:125
1263
  msgid "Are you sure you want to proceed?"
1264
  msgstr ""
1265
 
1266
+ #: templates/account.php:328, templates/account/partials/addon.php:255
1267
  msgid "Cancel Subscription"
1268
  msgstr ""
1269
 
1270
+ #: templates/account.php:357, templates/account/partials/addon.php:340
1271
  msgctxt "as synchronize"
1272
  msgid "Sync"
1273
  msgstr ""
1274
 
1275
+ #: templates/account.php:372, templates/debug.php:505
1276
  msgid "Name"
1277
  msgstr ""
1278
 
1279
+ #: templates/account.php:378, templates/debug.php:506
1280
  msgid "Email"
1281
  msgstr ""
1282
 
1283
+ #: templates/account.php:385, templates/debug.php:369, templates/debug.php:555
1284
  msgid "User ID"
1285
  msgstr ""
1286
 
1287
+ #: templates/account.php:403, templates/account.php:721, templates/account.php:754, templates/debug.php:236, templates/debug.php:363, templates/debug.php:452, templates/debug.php:504, templates/debug.php:553, templates/debug.php:632, templates/account/payments.php:35, templates/debug/logger.php:21
1288
  msgid "ID"
1289
  msgstr ""
1290
 
1291
+ #: templates/account.php:410
1292
  msgid "Site ID"
1293
  msgstr ""
1294
 
1295
+ #: templates/account.php:413
1296
  msgid "No ID"
1297
  msgstr ""
1298
 
1299
+ #: templates/account.php:418, templates/debug.php:243, templates/debug.php:372, templates/debug.php:456, templates/debug.php:508, templates/account/partials/site.php:227
1300
  msgid "Public Key"
1301
  msgstr ""
1302
 
1303
+ #: templates/account.php:424, templates/debug.php:373, templates/debug.php:457, templates/debug.php:509, templates/account/partials/site.php:239
1304
  msgid "Secret Key"
1305
  msgstr ""
1306
 
1307
+ #: templates/account.php:427
1308
  msgctxt "as secret encryption key missing"
1309
  msgid "No Secret"
1310
  msgstr ""
1311
 
1312
+ #: templates/account.php:454, templates/account/partials/site.php:120, templates/account/partials/site.php:122
1313
  msgid "Trial"
1314
  msgstr ""
1315
 
1316
+ #: templates/account.php:481, templates/debug.php:561, templates/account/partials/site.php:260
1317
  msgid "License Key"
1318
  msgstr ""
1319
 
1320
+ #: templates/account.php:512
1321
  msgid "Join the Beta program"
1322
  msgstr ""
1323
 
1324
+ #: templates/account.php:518
1325
  msgid "not verified"
1326
  msgstr ""
1327
 
1328
+ #: templates/account.php:527, templates/account/partials/addon.php:190
1329
  msgid "Expired"
1330
  msgstr ""
1331
 
1332
+ #: templates/account.php:587
1333
  msgid "Premium version"
1334
  msgstr ""
1335
 
1336
+ #: templates/account.php:589
1337
  msgid "Free version"
1338
  msgstr ""
1339
 
1340
+ #: templates/account.php:601
1341
  msgid "Verify Email"
1342
  msgstr ""
1343
 
1344
+ #: templates/account.php:615
1345
  msgid "Download %s Version"
1346
  msgstr ""
1347
 
1348
+ #: templates/account.php:631
1349
  msgid "Download Paid Version"
1350
  msgstr ""
1351
 
1352
+ #: templates/account.php:649, templates/account.php:892, templates/account/partials/site.php:248, templates/account/partials/site.php:270
1353
  msgctxt "verb"
1354
  msgid "Show"
1355
  msgstr ""
1356
 
1357
+ #: templates/account.php:664
1358
  msgid "What is your %s?"
1359
  msgstr ""
1360
 
1361
+ #: templates/account.php:672, templates/account/billing.php:21
1362
  msgctxt "verb"
1363
  msgid "Edit"
1364
  msgstr ""
1365
 
1366
+ #: templates/account.php:676, templates/forms/user-change.php:27
1367
  msgid "Change User"
1368
  msgstr ""
1369
 
1370
+ #: templates/account.php:700
1371
  msgid "Sites"
1372
  msgstr ""
1373
 
1374
+ #: templates/account.php:713
1375
  msgid "Search by address"
1376
  msgstr ""
1377
 
1378
+ #: templates/account.php:722, templates/debug.php:366
1379
  msgid "Address"
1380
  msgstr ""
1381
 
1382
+ #: templates/account.php:723
1383
  msgid "License"
1384
  msgstr ""
1385
 
1386
+ #: templates/account.php:724
1387
  msgid "Plan"
1388
  msgstr ""
1389
 
1390
+ #: templates/account.php:757
1391
  msgctxt "as software license"
1392
  msgid "License"
1393
  msgstr ""
1394
 
1395
+ #: templates/account.php:886
1396
  msgctxt "verb"
1397
  msgid "Hide"
1398
  msgstr ""
1399
 
1400
+ #: templates/account.php:908, templates/forms/data-debug-mode.php:31
1401
  msgid "Processing"
1402
  msgstr ""
1403
 
1404
+ #: templates/account.php:911
1405
  msgid "Get updates for bleeding edge Beta versions of %s."
1406
  msgstr ""
1407
 
1408
+ #: templates/account.php:969
1409
  msgid "Cancelling %s"
1410
  msgstr ""
1411
 
1412
+ #: templates/account.php:969, templates/account.php:986, templates/forms/subscription-cancellation.php:27, templates/forms/deactivation/form.php:133
1413
  msgid "trial"
1414
  msgstr ""
1415
 
1416
+ #: templates/account.php:984, templates/forms/deactivation/form.php:150
1417
  msgid "Cancelling %s..."
1418
  msgstr ""
1419
 
1420
+ #: templates/account.php:987, templates/forms/subscription-cancellation.php:28, templates/forms/deactivation/form.php:134
1421
  msgid "subscription"
1422
  msgstr ""
1423
 
1424
+ #: templates/account.php:1001
1425
  msgid "Deactivating your license will block all premium features, but will enable activating the license on another site. Are you sure you want to proceed?"
1426
  msgstr ""
1427
 
1428
+ #: templates/account.php:1075
1429
  msgid "Disabling white-label mode"
1430
  msgstr ""
1431
 
1432
+ #: templates/account.php:1076
1433
  msgid "Enabling white-label mode"
1434
  msgstr ""
1435
 
1455
  msgid "Installed"
1456
  msgstr ""
1457
 
1458
+ #: templates/admin-notice.php:13, templates/forms/license-activation.php:222, templates/forms/resend-key.php:77
1459
  msgctxt "as close a window"
1460
  msgid "Dismiss"
1461
  msgstr ""
1510
  msgid "Agree & Activate License"
1511
  msgstr ""
1512
 
1513
+ #: templates/connect.php:184
1514
+ msgid "Welcome to %s! To get started, please enter your license key:"
1515
  msgstr ""
1516
 
1517
+ #: templates/connect.php:191
1518
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s."
1519
  msgstr ""
1520
 
1521
+ #: templates/connect.php:192
1522
  msgid "Never miss an important update - opt in to our security and feature updates notifications, and non-sensitive diagnostic tracking with %4$s."
1523
  msgstr ""
1524
 
1525
+ #: templates/connect.php:198
1526
  msgid "Never miss an important update - opt in to our security & feature updates notifications, educational content, offers, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1527
  msgstr ""
1528
 
1529
+ #: templates/connect.php:199
1530
  msgid "Never miss an important update - opt in to our security & feature updates notifications, and non-sensitive diagnostic tracking with %4$s. If you skip this, that's okay! %1$s will still work just fine."
1531
  msgstr ""
1532
 
1533
+ #: templates/connect.php:233
1534
  msgid "We're excited to introduce the Freemius network-level integration."
1535
  msgstr ""
1536
 
1537
+ #: templates/connect.php:236
1538
  msgid "During the update process we detected %d site(s) that are still pending license activation."
1539
  msgstr ""
1540
 
1541
+ #: templates/connect.php:238
1542
  msgid "If you'd like to use the %s on those sites, please enter your license key below and click the activation button."
1543
  msgstr ""
1544
 
1545
+ #: templates/connect.php:240
1546
  msgid "%s's paid features"
1547
  msgstr ""
1548
 
1549
+ #: templates/connect.php:245
1550
  msgid "Alternatively, you can skip it for now and activate the license later, in your %s's network-level Account page."
1551
  msgstr ""
1552
 
1553
+ #: templates/connect.php:247
1554
  msgid "During the update process we detected %s site(s) in the network that are still pending your attention."
1555
  msgstr ""
1556
 
1557
+ #: templates/connect.php:256, templates/forms/data-debug-mode.php:35, templates/forms/license-activation.php:49
1558
  msgid "License key"
1559
  msgstr ""
1560
 
1561
+ #: templates/connect.php:259, templates/forms/license-activation.php:22
1562
  msgid "Can't find your license key?"
1563
  msgstr ""
1564
 
1565
+ #: templates/connect.php:318, templates/connect.php:700, templates/forms/deactivation/retry-skip.php:20
1566
  msgctxt "verb"
1567
  msgid "Skip"
1568
  msgstr ""
1569
 
1570
+ #: templates/connect.php:321
1571
  msgid "Delegate to Site Admins"
1572
  msgstr ""
1573
 
1574
+ #: templates/connect.php:321
1575
  msgid "If you click it, this decision will be delegated to the sites administrators."
1576
  msgstr ""
1577
 
1578
+ #: templates/connect.php:346
1579
+ msgid "License issues?"
1580
+ msgstr ""
1581
+
1582
+ #: templates/connect.php:362
1583
  msgid "Your Profile Overview"
1584
  msgstr ""
1585
 
1586
+ #: templates/connect.php:363
1587
  msgid "Name and email address"
1588
  msgstr ""
1589
 
1590
+ #: templates/connect.php:370
1591
+ msgid "So you can manage and control your license remotely from the User Dashboard."
1592
+ msgstr ""
1593
+
1594
+ #: templates/connect.php:371
1595
  msgid "Your Site Overview"
1596
  msgstr ""
1597
 
1598
+ #: templates/connect.php:372
1599
  msgid "Site URL, WP version, PHP info"
1600
  msgstr ""
1601
 
1603
  msgid "Admin Notices"
1604
  msgstr ""
1605
 
1606
+ #: templates/connect.php:380, templates/connect.php:398
1607
  msgid "Updates, announcements, marketing, no spam"
1608
  msgstr ""
1609
 
1610
+ #: templates/connect.php:387
1611
+ msgid "So you can reuse the license when the %s is no longer active."
1612
+ msgstr ""
1613
+
1614
+ #: templates/connect.php:388
1615
+ msgid "Current %s Status"
1616
  msgstr ""
1617
 
1618
+ #: templates/connect.php:389
1619
+ msgid "Active, deactivated, or uninstalled"
1620
  msgstr ""
1621
 
1622
+ #: templates/connect.php:397
1623
  msgid "Newsletter"
1624
  msgstr ""
1625
 
1626
+ #: templates/connect.php:405
1627
  msgid "Plugins & Themes"
1628
  msgstr ""
1629
 
1630
+ #: templates/connect.php:405
1631
+ msgid "optional"
1632
+ msgstr ""
1633
+
1634
+ #: templates/connect.php:406
1635
+ msgid "To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts."
1636
+ msgstr ""
1637
+
1638
+ #: templates/connect.php:407
1639
  msgid "Title, slug, version, and is active"
1640
  msgstr ""
1641
 
1642
+ #: templates/connect.php:424
1643
+ msgid "The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management."
1644
  msgstr ""
1645
 
1646
  #: templates/connect.php:426
1647
+ msgid "diagnostic data"
1648
+ msgstr ""
1649
+
1650
+ #: templates/connect.php:427
1651
+ msgid "Freemius is our licensing and software updates engine"
1652
+ msgstr ""
1653
+
1654
+ #: templates/connect.php:430
1655
  msgid "What permissions are being granted?"
1656
  msgstr ""
1657
 
1658
+ #: templates/connect.php:457
1659
  msgid "Don't have a license key?"
1660
  msgstr ""
1661
 
1662
+ #: templates/connect.php:460
1663
  msgid "Have a license key?"
1664
  msgstr ""
1665
 
1666
+ #: templates/connect.php:468
1667
  msgid "Privacy Policy"
1668
  msgstr ""
1669
 
1670
+ #: templates/connect.php:470
1671
  msgid "License Agreement"
1672
  msgstr ""
1673
 
1674
+ #: templates/connect.php:470
1675
  msgid "Terms of Service"
1676
  msgstr ""
1677
 
1678
+ #: templates/connect.php:866
1679
  msgctxt "as in the process of sending an email"
1680
  msgid "Sending email"
1681
  msgstr ""
1682
 
1683
+ #: templates/connect.php:867
1684
  msgctxt "as activating plugin"
1685
  msgid "Activating"
1686
  msgstr ""
2269
  msgid "Update License"
2270
  msgstr ""
2271
 
2272
+ #: templates/forms/license-activation.php:41
2273
+ msgid "The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license."
2274
+ msgstr ""
2275
+
2276
+ #: templates/forms/license-activation.php:183
2277
  msgid "Associate with the license owner's account."
2278
  msgstr ""
2279
 
fs/lib/start.php CHANGED
@@ -15,7 +15,7 @@
15
  *
16
  * @var string
17
  */
18
- $this_sdk_version = '2.4.1';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
@@ -512,7 +512,7 @@
512
  }
513
 
514
  /**
515
- * @param array <string,string> $module Plugin or Theme details.
516
  *
517
  * @return Freemius
518
  * @throws Freemius_Exception
@@ -527,4 +527,4 @@
527
  function fs_dump_log() {
528
  FS_Logger::dump();
529
  }
530
- }
15
  *
16
  * @var string
17
  */
18
+ $this_sdk_version = '2.4.2';
19
 
20
  #region SDK Selection Logic --------------------------------------------------------------------
21
 
512
  }
513
 
514
  /**
515
+ * @param array <string,string|bool|array> $module Plugin or Theme details.
516
  *
517
  * @return Freemius
518
  * @throws Freemius_Exception
527
  function fs_dump_log() {
528
  FS_Logger::dump();
529
  }
530
+ }
fs/lib/templates/account.php CHANGED
@@ -21,7 +21,9 @@
21
  /**
22
  * @var FS_Plugin_Tag $update
23
  */
24
- $update = $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 );
 
 
25
 
26
  if ( is_object($update) ) {
27
  /**
@@ -433,11 +435,11 @@
433
  'value' => $fs->get_plugin_version()
434
  );
435
 
436
- if ( $is_premium && ! $is_whitelabeled ) {
437
  $profile[] = array(
438
  'id' => 'beta_program',
439
  'title' => '',
440
- 'value' => $user->is_beta
441
  );
442
  }
443
 
21
  /**
22
  * @var FS_Plugin_Tag $update
23
  */
24
+ $update = $fs->has_release_on_freemius() ?
25
+ $fs->get_update( false, false, WP_FS__TIME_24_HOURS_IN_SEC / 24 ) :
26
+ null;
27
 
28
  if ( is_object($update) ) {
29
  /**
435
  'value' => $fs->get_plugin_version()
436
  );
437
 
438
+ if ( ! fs_is_network_admin() && $is_premium && ! $is_whitelabeled ) {
439
  $profile[] = array(
440
  'id' => 'beta_program',
441
  'title' => '',
442
+ 'value' => $site->is_beta
443
  );
444
  }
445
 
fs/lib/templates/connect.php CHANGED
@@ -181,12 +181,7 @@
181
 
182
  $message = $fs->apply_filters(
183
  'connect-message_on-premium',
184
- ($is_network_upgrade_mode ?
185
- '' :
186
- /* translators: %s: name (e.g. Hey John,) */
187
- $hey_x_text . '<br>'
188
- ) .
189
- sprintf( fs_text_inline( 'Thanks for purchasing %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
190
  $first_name,
191
  $fs->get_plugin_name()
192
  );
@@ -347,6 +342,9 @@
347
  } ?>><?php echo esc_html( $button_label ) ?></button>
348
  </form>
349
  <?php endif ?>
 
 
 
350
  </div><?php
351
 
352
  // Set core permission list items.
@@ -367,26 +365,30 @@
367
  );
368
  }
369
 
370
- $permissions['site'] = array(
371
- 'icon-class' => 'dashicons dashicons-admin-settings',
372
- 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
373
- 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
374
- 'priority' => 10,
375
- );
376
-
377
- $permissions['notices'] = array(
378
- 'icon-class' => 'dashicons dashicons-testimonial',
379
- 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
380
- 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
381
- 'priority' => 13,
382
- );
 
 
 
383
 
384
- $permissions['events'] = array(
385
- 'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
386
- 'label' => sprintf( $fs->get_text_inline( 'Current %s Events', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
387
- 'desc' => $fs->get_text_inline( 'Activation, deactivation and uninstall', 'permissions-events_desc' ),
388
- 'priority' => 20,
389
- );
 
390
 
391
  // Add newsletter permissions if enabled.
392
  if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
@@ -398,14 +400,15 @@
398
  );
399
  }
400
 
401
- $permissions['extensions'] = array(
402
  'icon-class' => 'dashicons dashicons-menu',
403
- 'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ),
 
404
  'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
405
  'priority' => 25,
406
  'optional' => true,
407
- 'default' => $fs->apply_filters( 'permission_extensions_default', true )
408
- );
409
 
410
  // Allow filtering of the permissions list.
411
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
@@ -417,13 +420,15 @@
417
  <div class="fs-permissions">
418
  <?php if ( $require_license_key ) : ?>
419
  <p class="fs-license-sync-disclaimer"><?php
420
- echo sprintf(
421
- fs_esc_html_inline( 'The %1$s will be periodically sending data to %2$s to check for security and feature updates, and verify the validity of your license.', 'license-sync-disclaimer', $slug ),
422
  $fs->get_module_label( true ),
423
- $freemius_link
 
424
  ) ?></p>
425
- <?php endif ?>
426
  <a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
 
427
  <ul><?php
428
  foreach ( $permissions as $id => $permission ) : ?>
429
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
@@ -436,7 +441,7 @@
436
  <?php endif ?>
437
 
438
  <div class="fs-permission-description">
439
- <span><?php echo esc_html( $permission['label'] ); ?></span>
440
 
441
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
442
  </div>
@@ -702,9 +707,16 @@
702
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
703
 
704
  $form.on('submit', function () {
705
- var isExtensionsTrackingAllowed = $( '#fs-permission-extensions .fs-switch' ).hasClass( 'fs-on' );
706
-
707
- $( 'input[name=is_extensions_tracking_allowed]' ).val( isExtensionsTrackingAllowed ? 1 : 0 );
 
 
 
 
 
 
 
708
 
709
  /**
710
  * @author Vova Feldman (@svovaf)
181
 
182
  $message = $fs->apply_filters(
183
  'connect-message_on-premium',
184
+ sprintf( fs_text_inline( 'Welcome to %s! To get started, please enter your license key:', 'thanks-for-purchasing', $slug ), '<b>' . $fs->get_plugin_name() . '</b>' ),
 
 
 
 
 
185
  $first_name,
186
  $fs->get_plugin_name()
187
  );
342
  } ?>><?php echo esc_html( $button_label ) ?></button>
343
  </form>
344
  <?php endif ?>
345
+ <?php if ( $require_license_key ) : ?>
346
+ <a id="license_issues_link" href="<?php echo $fs->apply_filters( 'known_license_issues_url', 'https://freemius.com/help/documentation/wordpress-sdk/license-activation-issues/' ) ?>" target="_blank"><?php fs_esc_html_echo_inline( 'License issues?', 'license-issues', $slug ) ?></a>
347
+ <?php endif ?>
348
  </div><?php
349
 
350
  // Set core permission list items.
365
  );
366
  }
367
 
368
+ $permissions['site'] = array(
369
+ 'icon-class' => 'dashicons dashicons-admin-settings',
370
+ 'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can manage and control your license remotely from the User Dashboard.', 'permissions-site_tooltip' ), $fs->get_module_type() ) : '' ),
371
+ 'label' => $fs->get_text_inline( 'Your Site Overview', 'permissions-site' ),
372
+ 'desc' => $fs->get_text_inline( 'Site URL, WP version, PHP info', 'permissions-site_desc' ),
373
+ 'priority' => 10,
374
+ );
375
+
376
+ if ( ! $require_license_key ) {
377
+ $permissions['notices'] = array(
378
+ 'icon-class' => 'dashicons dashicons-testimonial',
379
+ 'label' => $fs->get_text_inline( 'Admin Notices', 'permissions-admin-notices' ),
380
+ 'desc' => $fs->get_text_inline( 'Updates, announcements, marketing, no spam', 'permissions-newsletter_desc' ),
381
+ 'priority' => 13,
382
+ );
383
+ }
384
 
385
+ $permissions['events'] = array(
386
+ 'icon-class' => 'dashicons dashicons-admin-' . ( $fs->is_plugin() ? 'plugins' : 'appearance' ),
387
+ 'tooltip' => ( $require_license_key ? sprintf( $fs->get_text_inline( 'So you can reuse the license when the %s is no longer active.', 'permissions-events_tooltip' ), $fs->get_module_type() ) : '' ),
388
+ 'label' => sprintf( $fs->get_text_inline( 'Current %s Status', 'permissions-events' ), ucfirst( $fs->get_module_type() ) ),
389
+ 'desc' => $fs->get_text_inline( 'Active, deactivated, or uninstalled', 'permissions-events_desc' ),
390
+ 'priority' => 20,
391
+ );
392
 
393
  // Add newsletter permissions if enabled.
394
  if ( $is_gdpr_required || $fs->is_permission_requested( 'newsletter' ) ) {
400
  );
401
  }
402
 
403
+ $permissions['extensions'] = array(
404
  'icon-class' => 'dashicons dashicons-menu',
405
+ 'label' => $fs->get_text_inline( 'Plugins & Themes', 'permissions-extensions' ) . ( $require_license_key ? ' (' . $fs->get_text_inline( 'optional' ) . ')' : '' ),
406
+ 'tooltip' => $fs->get_text_inline( 'To help us troubleshoot any potential issues that may arise from other plugin or theme conflicts.', 'permissions-events_tooltip' ),
407
  'desc' => $fs->get_text_inline( 'Title, slug, version, and is active', 'permissions-extensions_desc' ),
408
  'priority' => 25,
409
  'optional' => true,
410
+ 'default' => $fs->apply_filters( 'permission_extensions_default', ! $require_license_key )
411
+ );
412
 
413
  // Allow filtering of the permissions list.
414
  $permissions = $fs->apply_filters( 'permission_list', $permissions );
420
  <div class="fs-permissions">
421
  <?php if ( $require_license_key ) : ?>
422
  <p class="fs-license-sync-disclaimer"><?php
423
+ echo sprintf(
424
+ fs_esc_html_inline( 'The %1$s will periodically send %2$s to %3$s for security & feature updates delivery, and license management.', 'license-sync-disclaimer', $slug ),
425
  $fs->get_module_label( true ),
426
+ sprintf('<a class="fs-trigger" href="#" tabindex="1">%s</a>', fs_esc_html_inline('diagnostic data', 'send-data')),
427
+ '<a class="fs-tooltip-trigger' . (is_rtl() ? ' rtl' : '') . '" href="' . $freemius_site_url . '" target="_blank" rel="noopener" tabindex="1">freemius.com <i class="dashicons dashicons-editor-help" style="text-decoration: none;"><span class="fs-tooltip" style="width: 170px">' . $fs->get_text_inline( 'Freemius is our licensing and software updates engine', 'permissions-extensions_desc' ) . '</span></i></a>'
428
  ) ?></p>
429
+ <?php else : ?>
430
  <a class="fs-trigger" href="#" tabindex="1"><?php fs_esc_html_echo_inline( 'What permissions are being granted?', 'what-permissions', $slug ) ?></a>
431
+ <?php endif ?>
432
  <ul><?php
433
  foreach ( $permissions as $id => $permission ) : ?>
434
  <li id="fs-permission-<?php echo esc_attr( $id ); ?>"
441
  <?php endif ?>
442
 
443
  <div class="fs-permission-description">
444
+ <span<?php if ( ! empty($permission['tooltip']) ) : ?> class="fs-tooltip-trigger"<?php endif ?>><?php echo esc_html( $permission['label'] ); ?><?php if ( ! empty($permission['tooltip']) ) : ?><i class="dashicons dashicons-editor-help"><span class="fs-tooltip" style="width: 200px"><?php echo $permission['tooltip'] ?></span></i><?php endif ?></span>
445
 
446
  <p><?php echo esc_html( $permission['desc'] ); ?></p>
447
  </div>
707
  var ajaxOptin = ( requireLicenseKey || isNetworkActive );
708
 
709
  $form.on('submit', function () {
710
+ var $extensionsPermission = $('#fs-permission-extensions .fs-switch'),
711
+ isExtensionsTrackingAllowed = ($extensionsPermission.length > 0) ?
712
+ $extensionsPermission.hasClass('fs-on') :
713
+ null;
714
+
715
+ if (null === isExtensionsTrackingAllowed) {
716
+ $('input[name=is_extensions_tracking_allowed]').remove();
717
+ } else {
718
+ $('input[name=is_extensions_tracking_allowed]').val(isExtensionsTrackingAllowed ? 1 : 0);
719
+ }
720
 
721
  /**
722
  * @author Vova Feldman (@svovaf)
fs/lib/templates/forms/license-activation.php CHANGED
@@ -115,13 +115,15 @@ HTML;
115
  * @var FS_Plugin_License $license
116
  */
117
  foreach ( $available_licenses as $license ) {
 
 
118
  $label = sprintf(
119
  "%s-Site %s License - %s",
120
  ( 1 == $license->quota ?
121
  'Single' :
122
  ( $license->is_unlimited() ? 'Unlimited' : $license->quota )
123
  ),
124
- $fs->_get_plan_by_id( $license->plan_id )->title,
125
  $license->get_html_escaped_masked_secret_key()
126
  );
127
 
115
  * @var FS_Plugin_License $license
116
  */
117
  foreach ( $available_licenses as $license ) {
118
+ $plan = $fs->_get_plan_by_id( $license->plan_id );
119
+
120
  $label = sprintf(
121
  "%s-Site %s License - %s",
122
  ( 1 == $license->quota ?
123
  'Single' :
124
  ( $license->is_unlimited() ? 'Unlimited' : $license->quota )
125
  ),
126
+ ( is_object( $plan ) ? $plan->title : '' ),
127
  $license->get_html_escaped_masked_secret_key()
128
  );
129
 
includes/Abstracts/ThemeIntegration.php CHANGED
@@ -60,7 +60,7 @@ abstract class ThemeIntegration {
60
  $settings[ $key ][55] = array(
61
  'name' => $this->themeSlug . '_replace_search',
62
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
63
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
64
  'type' => 'checkbox',
65
  'default' => 'off',
66
  );
@@ -76,8 +76,7 @@ abstract class ThemeIntegration {
76
  }
77
 
78
  /**
79
- * Check if can replace the native search form
80
- * by the Ajax Search for WooCommerce form.
81
  *
82
  * @return bool
83
  */
60
  $settings[ $key ][55] = array(
61
  'name' => $this->themeSlug . '_replace_search',
62
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
63
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
64
  'type' => 'checkbox',
65
  'default' => 'off',
66
  );
76
  }
77
 
78
  /**
79
+ * Check if can replace the native search form with the FiboSearch form.
 
80
  *
81
  * @return bool
82
  */
includes/Admin/AdminMenu.php CHANGED
@@ -23,16 +23,16 @@ class AdminMenu
23
  {
24
  add_submenu_page(
25
  'woocommerce',
26
- __( 'Ajax Search for WooCommerce', 'ajax-search-for-woocommerce' ),
27
- __( 'AJAX search bar', 'ajax-search-for-woocommerce' ),
28
  'manage_options',
29
  'dgwt_wcas_settings',
30
  array( $this, 'settingsPage' )
31
  );
32
  add_submenu_page(
33
  'dgwt_wcas_settings',
34
- 'Ajax Search for WooCommerce Debug',
35
- 'Ajax Search for WooCommerce [Hidden]',
36
  'manage_options',
37
  'dgwt_wcas_debug',
38
  array( $this, 'debugPage' )
23
  {
24
  add_submenu_page(
25
  'woocommerce',
26
+ __( 'FiboSearch', 'ajax-search-for-woocommerce' ),
27
+ __( 'FiboSearch', 'ajax-search-for-woocommerce' ),
28
  'manage_options',
29
  'dgwt_wcas_settings',
30
  array( $this, 'settingsPage' )
31
  );
32
  add_submenu_page(
33
  'dgwt_wcas_settings',
34
+ 'FiboSearch Debug',
35
+ 'FiboSearch [Hidden]',
36
  'manage_options',
37
  'dgwt_wcas_debug',
38
  array( $this, 'debugPage' )
includes/Admin/Promo/FeedbackNotice.php CHANGED
@@ -65,7 +65,7 @@ class FeedbackNotice {
65
  public function displayNotice() {
66
  global $current_user;
67
 
68
- if ( $this->allowDisplay() ) {
69
  ?>
70
 
71
  <div class="notice-info notice dgwt-wcas-notice dgwt-wcas-review-notice">
@@ -75,7 +75,7 @@ class FeedbackNotice {
75
  '<strong>' . DGWT_WCAS_NAME . '</strong>'
76
  ); ?>
77
  <br/>
78
- <?php printf( __( "I have spent countless hours developing it, and it would mean a lot to me if you %ssupport it with a quick review on WordPress.org.%s", 'ajax-search-for-woocommerce' ),
79
  '<strong><a target="_blank" href="' . self::REVIEW_URL . '">', '</a></strong>'
80
  ); ?>
81
  <div class="button-container">
65
  public function displayNotice() {
66
  global $current_user;
67
 
68
+ if ( $this->allowDisplay() && ! dgoraAsfwFs()->is_premium() ) {
69
  ?>
70
 
71
  <div class="notice-info notice dgwt-wcas-notice dgwt-wcas-review-notice">
75
  '<strong>' . DGWT_WCAS_NAME . '</strong>'
76
  ); ?>
77
  <br/>
78
+ <?php printf( __( "The FiboSearch team have spent countless hours developing it, and it would mean a lot to me if you %ssupport it with a quick review on WordPress.org.%s", 'ajax-search-for-woocommerce' ),
79
  '<strong><a target="_blank" href="' . self::REVIEW_URL . '">', '</a></strong>'
80
  ); ?>
81
  <div class="button-container">
includes/Admin/Promo/Upgrade.php CHANGED
@@ -41,31 +41,28 @@ class Upgrade {
41
  * @return void
42
  */
43
  public function renderUpgradeModal() {
44
- $utmLink = 'https://ajaxsearch.pro/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-popup&utm_content=features&utm_gen=utmdc#features-comparsion';
45
 
46
  $features = array(
47
- __( 'Speed up search! (even 10x faster) - users love it!', 'ajax-search-for-woocommerce' ),
48
- __( 'New modern search engine based on bm25 ranking algorithm', 'ajax-search-for-woocommerce' ),
49
  __( 'Fuzzy search', 'ajax-search-for-woocommerce' ),
 
50
  __( 'Search in attributes and variation products SKUs (option)', 'ajax-search-for-woocommerce' ),
51
- __( 'Individual customization of the search form (simple CSS improvements)', 'ajax-search-for-woocommerce' ),
52
- __( 'Individual tips and support by Damian Góra - the author of the plugin', 'ajax-search-for-woocommerce' )
53
  );
54
- echo '<a style="display:none;" class="thickbox js-dgwt-wcas-modal-pro-handler" href="#TB_inline?width=600&height=380&inlineId=dgwt-wcas-modal" title="' . __( 'Ajax Search for WooCommerce PRO - Upgrade Now', 'ajax-search-for-woocommerce' ) . '"></a>';
55
  echo '<div id="dgwt-wcas-modal" class="dgwt-wcas-modal-upgrade" style="display:none;">';
56
  echo '<img class="dgwt-wcas-modal-logo" src="' . DGWT_WCAS_URL . 'assets/img/logo-128.png" width="128" height="128" />';
57
  echo '
58
- <h2 class="dgwt-wcas-modal-title">' . __( 'Update now and increase your sales. You will receive 14-day satisfaction guarantee. A return on investment will come very quickly.', 'ajax-search-for-woocommerce' ) . '</h2>';
59
  echo '<ul>';
60
  foreach ( $features as $feature ) {
61
  echo '<li><strong>+ ' . $feature . '</strong></li>';
62
  }
63
  echo '<li><strong>+ ' . __( 'and more...', 'ajax-search-for-woocommerce' ) . ' <a target="_blank" href="' . $utmLink . '">' . __( 'See a comparison of all free and premium features!', 'ajax-search-for-woocommerce' ) . '</a></strong></li>';
64
  echo '</ul>';
65
- echo '<p>' . __( 'You can upgrade without leaving the admin panel by clicking below.', 'ajax-search-for-woocommerce' );
66
- echo '<br />' . __( 'Free updates and email support included.', 'ajax-search-for-woocommerce' ) . '</p>';
67
  echo '<p><a class="button-primary" target="_blank" href="' . self::getUpgradeUrl() . '">' . __( 'Upgrade Now', 'ajax-search-for-woocommerce' ) . '</a>';
68
- //echo '<a href="" class="button-secondary js-cas-pro-read-more" target="_blank" href="">'.__('Read More','ajax-search-for-woocommerce').'</a>';
69
  echo '</p>';
70
  echo '</div>';
71
  }
@@ -108,7 +105,7 @@ class Upgrade {
108
  */
109
  public static function getUpgradeUrl( $type = 'external' ) {
110
 
111
- $url = "https://ajaxsearch.pro/pricing/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-link&utm_content=upgrade-now-btn";
112
 
113
  if ( $type === 'internal' ) {
114
  $url = esc_url( dgoraAsfwFs()->get_upgrade_url() );
41
  * @return void
42
  */
43
  public function renderUpgradeModal() {
44
+ $utmLink = 'https://fibosearch.com/pro-vs-free/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-popup&utm_content=features&utm_gen=utmdc';
45
 
46
  $features = array(
47
+ __( 'Speed up search! (even 10× faster) - users love it!', 'ajax-search-for-woocommerce' ),
48
+ __( 'Modern search engine based on an inverted index and advanced matching algorithms', 'ajax-search-for-woocommerce' ),
49
  __( 'Fuzzy search', 'ajax-search-for-woocommerce' ),
50
+ __( 'Synonyms', 'ajax-search-for-woocommerce' ),
51
  __( 'Search in attributes and variation products SKUs (option)', 'ajax-search-for-woocommerce' ),
52
+ __( 'Individual tips and support by FiboSearch team', 'ajax-search-for-woocommerce' )
 
53
  );
54
+ echo '<a style="display:none;" class="thickbox js-dgwt-wcas-modal-pro-handler" href="#TB_inline?width=600&height=380&inlineId=dgwt-wcas-modal" title="' . __( 'FiboSearch Pro - Upgrade Now', 'ajax-search-for-woocommerce' ) . '"></a>';
55
  echo '<div id="dgwt-wcas-modal" class="dgwt-wcas-modal-upgrade" style="display:none;">';
56
  echo '<img class="dgwt-wcas-modal-logo" src="' . DGWT_WCAS_URL . 'assets/img/logo-128.png" width="128" height="128" />';
57
  echo '
58
+ <h2 class="dgwt-wcas-modal-title">' . __( 'Update now and increase your sales. You will receive 30-day satisfaction guarantee. A return on investment will come very quickly.', 'ajax-search-for-woocommerce' ) . '</h2>';
59
  echo '<ul>';
60
  foreach ( $features as $feature ) {
61
  echo '<li><strong>+ ' . $feature . '</strong></li>';
62
  }
63
  echo '<li><strong>+ ' . __( 'and more...', 'ajax-search-for-woocommerce' ) . ' <a target="_blank" href="' . $utmLink . '">' . __( 'See a comparison of all free and premium features!', 'ajax-search-for-woocommerce' ) . '</a></strong></li>';
64
  echo '</ul>';
 
 
65
  echo '<p><a class="button-primary" target="_blank" href="' . self::getUpgradeUrl() . '">' . __( 'Upgrade Now', 'ajax-search-for-woocommerce' ) . '</a>';
 
66
  echo '</p>';
67
  echo '</div>';
68
  }
105
  */
106
  public static function getUpgradeUrl( $type = 'external' ) {
107
 
108
+ $url = "https://fibosearch.com/pricing/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-link&utm_content=upgrade-now-btn";
109
 
110
  if ( $type === 'internal' ) {
111
  $url = esc_url( dgoraAsfwFs()->get_upgrade_url() );
includes/Admin/RegenerateImages.php CHANGED
@@ -92,8 +92,8 @@ class RegenerateImages {
92
  <?php
93
  $button = '<a href="#" class="button button-small js-dgwt-wcas-start-regenerate-images">' . __( 'Regenerate WooCommerce images' ) . '</a>';
94
  $pluginLink = '<a target="_blank" href="https://wordpress.org/plugins/regenerate-thumbnails/">Regenerate Thumbnails</a>';
95
- printf( __( '<b>AJAX Search for WooCommerce</b>: It is recommended to generate a special small image size for existing products to ensure a better user experience. This is a one-time action. <br /><br />You can do it by clicking %s or use external plugin e.g. %s.',
96
- 'ajax-search-for-woocommerce' ), $button, $pluginLink );
97
  ?>
98
  </p>
99
  </div>
@@ -160,7 +160,7 @@ class RegenerateImages {
160
 
161
  $(document).on('click', '.js-dgwt-wcas-start-regenerate-images', function () {
162
 
163
- $('.js-dgwt-wcas-notice-regenerate-images p').html('<b>AJAX Search for WooCommerce</b>: (...)');
164
 
165
  $.ajax({
166
  url: ajaxurl,
@@ -170,7 +170,7 @@ class RegenerateImages {
170
  }).done(function (data) {
171
 
172
  setTimeout(function () {
173
- $('.js-dgwt-wcas-notice-regenerate-images p').html('<b>AJAX Search for WooCommerce</b>: <?php _e( 'Regeneration of images started. The process will continue in the background.' ); ?>');
174
  }, 700);
175
 
176
  });
92
  <?php
93
  $button = '<a href="#" class="button button-small js-dgwt-wcas-start-regenerate-images">' . __( 'Regenerate WooCommerce images' ) . '</a>';
94
  $pluginLink = '<a target="_blank" href="https://wordpress.org/plugins/regenerate-thumbnails/">Regenerate Thumbnails</a>';
95
+ printf( __( '%: it is recommended to generate a special small image size for existing products to ensure a better user experience. This is a one-time action. <br /><br />You can do it by clicking %s or use an external plugin such as %s.',
96
+ 'ajax-search-for-woocommerce' ), '<b>' . DGWT_WCAS_FULL_NAME . '</b>', $button, $pluginLink );
97
  ?>
98
  </p>
99
  </div>
160
 
161
  $(document).on('click', '.js-dgwt-wcas-start-regenerate-images', function () {
162
 
163
+ $('.js-dgwt-wcas-notice-regenerate-images p').html('<?php echo '<b>' . DGWT_WCAS_FULL_NAME . '</b>' ?>: (...)');
164
 
165
  $.ajax({
166
  url: ajaxurl,
170
  }).done(function (data) {
171
 
172
  setTimeout(function () {
173
+ $('.js-dgwt-wcas-notice-regenerate-images p').html('<?php echo '<b>' . DGWT_WCAS_FULL_NAME . '</b>' ?>: <?php _e( 'Regeneration of images started. The process will continue in the background.' ); ?>');
174
  }, 700);
175
 
176
  });
includes/Admin/SettingsAPI.php CHANGED
@@ -143,7 +143,9 @@ class SettingsAPI
143
 
144
  if ( isset( $section['desc'] ) && !empty($section['desc']) ) {
145
  $section['desc'] = '<div class="inside">' . $section['desc'] . '</div>';
146
- $callback = create_function( '', 'echo "' . str_replace( '"', '\\"', $section['desc'] ) . '";' );
 
 
147
  } elseif ( isset( $section['callback'] ) ) {
148
  $callback = $section['callback'];
149
  } else {
@@ -703,7 +705,7 @@ class SettingsAPI
703
  }
704
  $html .= '<a target="_blank" href="' . dgoraAsfwFs()->contact_url() . '" class="js-nav-tab-minor nav-tab-minor nav-tab-minor-contact" >' . __( 'Contact', 'ajax-search-for-woocommerce' ) . '</a>';
705
  if ( !dgoraAsfwFs()->is_premium() ) {
706
- $html .= '<a target="_blank" href="https://ajaxsearch.pro/showcase/?utm_source=wp-admin&utm_medium=referral&utm_campaign=settings&utm_content=showcase&utm_gen=utmdc" class="js-nav-tab-minor nav-tab-minor nav-tab-minor-showcase" >' . __( 'Showcase', 'ajax-search-for-woocommerce' ) . '</a>';
707
  }
708
  $html .= '</h2>';
709
  echo $html ;
143
 
144
  if ( isset( $section['desc'] ) && !empty($section['desc']) ) {
145
  $section['desc'] = '<div class="inside">' . $section['desc'] . '</div>';
146
+ $callback = function () use( $section ) {
147
+ echo $section['desc'] ;
148
+ };
149
  } elseif ( isset( $section['callback'] ) ) {
150
  $callback = $section['callback'];
151
  } else {
705
  }
706
  $html .= '<a target="_blank" href="' . dgoraAsfwFs()->contact_url() . '" class="js-nav-tab-minor nav-tab-minor nav-tab-minor-contact" >' . __( 'Contact', 'ajax-search-for-woocommerce' ) . '</a>';
707
  if ( !dgoraAsfwFs()->is_premium() ) {
708
+ $html .= '<a target="_blank" href="https://fibosearch.com/showcase/?utm_source=wp-admin&utm_medium=referral&utm_campaign=settings&utm_content=showcase&utm_gen=utmdc" class="js-nav-tab-minor nav-tab-minor nav-tab-minor-showcase" >' . __( 'Showcase', 'ajax-search-for-woocommerce' ) . '</a>';
709
  }
710
  $html .= '</h2>';
711
  echo $html ;
includes/Admin/Troubleshooting.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace DgoraWcas\Admin;
4
 
 
5
  use DgoraWcas\Helpers ;
6
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Builder ;
7
  use DgoraWcas\Multilingual ;
@@ -190,11 +191,11 @@ class Troubleshooting
190
  $errors = array();
191
  // GTranslate
192
  if ( class_exists( 'GTranslate' ) ) {
193
- $errors[] = sprintf( __( 'You use the %s plugin. The Ajax Search for WooCommerce does not support this plugin.', 'ajax-search-for-woocommerce' ), 'GTranslate' );
194
  }
195
  // WooCommerce Product Sort and Display
196
  if ( defined( 'WC_PSAD_VERSION' ) ) {
197
- $errors[] = sprintf( __( 'You use the %s plugin. The Ajax Search for WooCommerce does not support this plugin.', 'ajax-search-for-woocommerce' ), 'WooCommerce Product Sort and Display' );
198
  }
199
 
200
  if ( !empty($errors) ) {
@@ -205,6 +206,28 @@ class Troubleshooting
205
  return $result;
206
  }
207
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  /**
209
  * Test if loopbacks work as expected
210
  *
@@ -438,6 +461,10 @@ class Troubleshooting
438
  );
439
  if ( !dgoraAsfwFs()->is_premium() ) {
440
  // List of tests only for free plugin version
 
 
 
 
441
  }
442
  $tests = apply_filters( 'dgwt/wcas/troubleshooting/tests', $tests );
443
  return $tests;
2
 
3
  namespace DgoraWcas\Admin;
4
 
5
+ use DgoraWcas\Admin\Promo\Upgrade ;
6
  use DgoraWcas\Helpers ;
7
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Builder ;
8
  use DgoraWcas\Multilingual ;
191
  $errors = array();
192
  // GTranslate
193
  if ( class_exists( 'GTranslate' ) ) {
194
+ $errors[] = sprintf( __( 'You use the %s plugin. The %s does not support this plugin.', 'ajax-search-for-woocommerce' ), 'GTranslate', DGWT_WCAS_NAME );
195
  }
196
  // WooCommerce Product Sort and Display
197
  if ( defined( 'WC_PSAD_VERSION' ) ) {
198
+ $errors[] = sprintf( __( 'You use the %s plugin. The %s does not support this plugin.', 'ajax-search-for-woocommerce' ), 'WooCommerce Product Sort and Display', DGWT_WCAS_NAME );
199
  }
200
 
201
  if ( !empty($errors) ) {
206
  return $result;
207
  }
208
 
209
+ /**
210
+ * Test for incompatible plugins
211
+ *
212
+ * @return array The test result.
213
+ */
214
+ public function getTestTranslatePress()
215
+ {
216
+ $result = array(
217
+ 'label' => __( 'You are using TranslatePress with Free version of our plugin', 'ajax-search-for-woocommerce' ),
218
+ 'status' => 'good',
219
+ 'description' => '',
220
+ 'actions' => '',
221
+ 'test' => 'TranslatePress',
222
+ );
223
+ if ( !defined( 'TRP_PLUGIN_VERSION' ) && !class_exists( 'TRP_Translate_Press' ) ) {
224
+ return $result;
225
+ }
226
+ $result['description'] = sprintf( __( 'Due to the way the TranslatePress - Multilingual plugin works, we can only provide support for it in the <a href="%s" target="_blank">Pro version</a>.', 'ajax-search-for-woocommerce' ), Upgrade::getUpgradeUrl() );
227
+ $result['status'] = 'critical';
228
+ return $result;
229
+ }
230
+
231
  /**
232
  * Test if loopbacks work as expected
233
  *
461
  );
462
  if ( !dgoraAsfwFs()->is_premium() ) {
463
  // List of tests only for free plugin version
464
+ $tests['direct'][] = array(
465
+ 'label' => __( 'TranslatePress', 'ajax-search-for-woocommerce' ),
466
+ 'test' => 'TranslatePress',
467
+ );
468
  }
469
  $tests = apply_filters( 'dgwt/wcas/troubleshooting/tests', $tests );
470
  return $tests;
includes/EmbeddingViaMenu.php CHANGED
@@ -52,7 +52,7 @@ class EmbeddingViaMenu {
52
  * @return void
53
  */
54
  public function addNavMenuMetaBoxes() {
55
- add_meta_box( 'dgwt_wcas_endpoints_nav_link', __( 'AJAX Search bar', 'ajax-search-for-woocommerce' ), array( $this, 'navMenuLinks' ), 'nav-menus', 'side',
56
  'low' );
57
  }
58
 
@@ -147,13 +147,13 @@ class EmbeddingViaMenu {
147
  public function navMenuLinks() {
148
  ?>
149
  <div id="posttype-dgwt-wcas-endpoints" class="posttypediv">
150
- <p><?php _e( 'Add AJAX search bar as a menu item.', 'ajax-search-for-woocommerce' ) ?></p>
151
  <div id="tabs-panel-dgwt-wcas-endpoints" class="tabs-panel tabs-panel-active">
152
  <ul id="dgwt-wcas-endpoints-checklist" class="categorychecklist form-no-clear">
153
  <li>
154
  <label class="menu-item-title">
155
  <input type="checkbox" class="menu-item-checkbox" name="menu-item[-1][menu-item-object-id]"
156
- value="-1"/> <?php echo __( 'AJAX Search bar', 'ajax-search-for-woocommerce' ); ?>
157
  </label>
158
  <input type="hidden" class="menu-item-type" name="menu-item[-1][menu-item-type]" value="custom"/>
159
  <input type="hidden" class="menu-item-title" name="menu-item[-1][menu-item-title]" value="<?php echo self::SEARCH_PLACEHOLDER; ?>"/>
@@ -174,8 +174,8 @@ class EmbeddingViaMenu {
174
 
175
  public function getDescription() {
176
  $html = '<div class="dgwt-wcas-admin-menu-item-desc js-dgwt-wcas-admin-menu-item-desc">';
177
- $html .= '<img class="" src="' . DGWT_WCAS_URL . 'assets/img/logo-for-review.jpg" width="32" height="32" />';
178
- $html .= '<span>' . __( 'AJAX search bar will be displayed here.', 'ajax-search-for-woocommerce' ) . '</span>';
179
  $html .= '</div>';
180
 
181
  return $html;
@@ -243,7 +243,7 @@ class EmbeddingViaMenu {
243
 
244
  var $menuItem = $(this).closest('.menu-item');
245
 
246
- $menuItem.find('.menu-item-title').text('AJAX Search bar');
247
  $menuItem.find('.item-type').text('<?php _e( 'Search bar', 'ajax-search-for-woocommerce' ); ?>');
248
  $menuItem.find('.menu-item-settings .edit-menu-item-title').closest('label').hide();
249
  $menuItem.find('.field-url').hide();
52
  * @return void
53
  */
54
  public function addNavMenuMetaBoxes() {
55
+ add_meta_box( 'dgwt_wcas_endpoints_nav_link', __( 'FiboSearch bar', 'ajax-search-for-woocommerce' ), array( $this, 'navMenuLinks' ), 'nav-menus', 'side',
56
  'low' );
57
  }
58
 
147
  public function navMenuLinks() {
148
  ?>
149
  <div id="posttype-dgwt-wcas-endpoints" class="posttypediv">
150
+ <p><?php _e( 'Add FiboSearch as a menu item.', 'ajax-search-for-woocommerce' ) ?></p>
151
  <div id="tabs-panel-dgwt-wcas-endpoints" class="tabs-panel tabs-panel-active">
152
  <ul id="dgwt-wcas-endpoints-checklist" class="categorychecklist form-no-clear">
153
  <li>
154
  <label class="menu-item-title">
155
  <input type="checkbox" class="menu-item-checkbox" name="menu-item[-1][menu-item-object-id]"
156
+ value="-1"/> <?php echo __( 'FiboSearch bar', 'ajax-search-for-woocommerce' ); ?>
157
  </label>
158
  <input type="hidden" class="menu-item-type" name="menu-item[-1][menu-item-type]" value="custom"/>
159
  <input type="hidden" class="menu-item-title" name="menu-item[-1][menu-item-title]" value="<?php echo self::SEARCH_PLACEHOLDER; ?>"/>
174
 
175
  public function getDescription() {
176
  $html = '<div class="dgwt-wcas-admin-menu-item-desc js-dgwt-wcas-admin-menu-item-desc">';
177
+ $html .= '<img class="" src="' . DGWT_WCAS_URL . 'assets/img/logo-for-review.png" width="32" height="32" />';
178
+ $html .= '<span>' . __( 'FiboSearch bar will be displayed here.', 'ajax-search-for-woocommerce' ) . '</span>';
179
  $html .= '</div>';
180
 
181
  return $html;
243
 
244
  var $menuItem = $(this).closest('.menu-item');
245
 
246
+ $menuItem.find('.menu-item-title').text('FiboSearch bar');
247
  $menuItem.find('.item-type').text('<?php _e( 'Search bar', 'ajax-search-for-woocommerce' ); ?>');
248
  $menuItem.find('.menu-item-settings .edit-menu-item-title').closest('label').hide();
249
  $menuItem.find('.field-url').hide();
includes/Engines/WordPressNative/Search.php CHANGED
@@ -518,9 +518,13 @@ class Search
518
  $term = esc_sql( $wpdb->esc_like( $term ) );
519
  $search .= "{$searchand} (";
520
  // Search in title
 
521
  if ( in_array( 'title', $this->searchIn ) ) {
522
  $search .= "({$wpdb->posts}.post_title LIKE '{$n}{$term}{$n}')";
 
 
523
  }
 
524
  // Search in content
525
  if ( DGWT_WCAS()->settings->getOption( 'search_in_product_content' ) === 'on' && in_array( 'content', $this->searchIn ) ) {
526
  $search .= " OR ({$wpdb->posts}.post_content LIKE '{$n}{$term}{$n}')";
518
  $term = esc_sql( $wpdb->esc_like( $term ) );
519
  $search .= "{$searchand} (";
520
  // Search in title
521
+
522
  if ( in_array( 'title', $this->searchIn ) ) {
523
  $search .= "({$wpdb->posts}.post_title LIKE '{$n}{$term}{$n}')";
524
+ } else {
525
+ $search .= "(0 = 1)";
526
  }
527
+
528
  // Search in content
529
  if ( DGWT_WCAS()->settings->getOption( 'search_in_product_content' ) === 'on' && in_array( 'content', $this->searchIn ) ) {
530
  $search .= " OR ({$wpdb->posts}.post_content LIKE '{$n}{$term}{$n}')";
includes/Integrations/Plugins/FacetWP/FacetWP.php CHANGED
@@ -100,7 +100,7 @@ class FacetWP
100
  */
101
  public function search_engines( $engines )
102
  {
103
- $engines[self::$engine] = DGWT_WCAS_NAME;
104
  return $engines;
105
  }
106
 
100
  */
101
  public function search_engines( $engines )
102
  {
103
+ $engines[self::$engine] = DGWT_WCAS_FULL_NAME;
104
  return $engines;
105
  }
106
 
includes/Integrations/Plugins/WooCommerce/WooCommerce.php ADDED
@@ -0,0 +1,109 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Integrations\Plugins\WooCommerce;
4
+
5
+ use \DgoraWcas\Helpers;
6
+
7
+ // Exit if accessed directly
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ /**
13
+ * Integration with native WooCommerce filters
14
+ */
15
+ class WooCommerce {
16
+
17
+ public function init() {
18
+
19
+ add_filter( 'woocommerce_layered_nav_link', array( $this, 'add_search_param_to_link' ) );
20
+
21
+ add_filter( 'woocommerce_widget_get_current_page_url', array( $this, 'add_search_param_to_link' ) );
22
+
23
+ if ( Helpers::isProductSearchPage() ) {
24
+ add_filter( 'woocommerce_price_filter_sql', array( $this, 'filter_price_sql' ) );
25
+
26
+ add_filter( 'get_terms_args', array( $this, 'narrow_term_filters' ), 10, 2 );
27
+
28
+ add_filter( 'woocommerce_get_filtered_term_product_counts_query', array( $this, 'filter_counts_query' ) );
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Add &dgwt_wcas=1 to the link
34
+ *
35
+ * @return string
36
+ */
37
+ public function add_search_param_to_link( $link ) {
38
+
39
+ if ( isset( $_GET['s'] ) ) {
40
+ $link = add_query_arg( array( 'dgwt_wcas' => '1' ), $link );
41
+ }
42
+
43
+ return $link;
44
+ }
45
+
46
+ /**
47
+ * Narrowing the list of products to those from our search engine
48
+ *
49
+ * @param string $sql
50
+ *
51
+ * @return string
52
+ */
53
+ public function filter_price_sql( $sql ) {
54
+ if ( ! Helpers::is_running_inside_class( 'WC_Widget_Price_Filter' ) ) {
55
+ return $sql;
56
+ }
57
+
58
+ $post_ids = apply_filters( 'dgwt/wcas/search_page/result_post_ids', array() );
59
+
60
+ if ( $post_ids ) {
61
+ $sql .= " AND product_id IN(" . implode( ',', $post_ids ) . ")";
62
+ }
63
+
64
+ return $sql;
65
+ }
66
+
67
+ /**
68
+ * Passing our search results to plugin's terms filters
69
+ *
70
+ * The plugin will use our products IDs to determine terms in the displayed filters.
71
+ *
72
+ * @param array $args An array of get_terms() arguments.
73
+ * @param string[] $taxonomies An array of taxonomy names.
74
+ *
75
+ * @return array
76
+ */
77
+ public function narrow_term_filters( $args, $taxonomies ) {
78
+ if ( ! Helpers::is_running_inside_class( 'WC_Widget_Layered_Nav' ) ) {
79
+ return $args;
80
+ }
81
+
82
+ $post_ids = apply_filters( 'dgwt/wcas/search_page/result_post_ids', array() );
83
+
84
+ if ( $post_ids ) {
85
+ $args['object_ids'] = $post_ids;
86
+ }
87
+
88
+ return $args;
89
+ }
90
+
91
+ /**
92
+ * Including products from our search engine in the term count display
93
+ *
94
+ * @param $query
95
+ *
96
+ * @return mixed
97
+ */
98
+ public function filter_counts_query( $query ) {
99
+ global $wpdb;
100
+
101
+ $post_ids = apply_filters( 'dgwt/wcas/search_page/result_post_ids', array() );
102
+
103
+ if ( $post_ids ) {
104
+ $query['where'] .= " AND $wpdb->posts.ID IN(" . implode( ',', $post_ids ) . ")";
105
+ }
106
+
107
+ return $query;
108
+ }
109
+ }
includes/Integrations/Plugins/WooCommerceAJAXFilters/WooCommerceAJAXFilters.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Integrations\Plugins\WooCommerceAJAXFilters;
4
+
5
+ // Exit if accessed directly
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit;
8
+ }
9
+
10
+ /**
11
+ * Integration with Advanced AJAX Product Filters
12
+ *
13
+ * Plugin URL: https://wordpress.org/plugins/woocommerce-ajax-filters/
14
+ * Author: BeRocket
15
+ */
16
+ class WooCommerceAJAXFilters {
17
+ public function init() {
18
+ if ( ! defined( 'BeRocket_AJAX_filters_version' ) ) {
19
+ return;
20
+ }
21
+ if ( version_compare( BeRocket_AJAX_filters_version, '1.4.1.8' ) <= 0 ) {
22
+ return;
23
+ }
24
+
25
+ add_filter( 'berocket_aapf_get_attribute_values_post__in_outside', array( $this, 'filterPostInIds' ), 20 );
26
+ }
27
+
28
+ /**
29
+ * Passing our search results to plugin
30
+ *
31
+ * The plugin uses our products IDs to determine the values in the displayed filters.
32
+ *
33
+ * @param boolean|integer[] $post__in
34
+ *
35
+ * @return boolean|integer[]
36
+ */
37
+ public function filterPostInIds( $post__in ) {
38
+ global $wp_query;
39
+
40
+ if ( $wp_query->get( 'dgwt_wcas', false ) === false ) {
41
+ return $post__in;
42
+ }
43
+
44
+ $posts_ids = apply_filters( 'dgwt/wcas/search_page/result_post_ids', array() );
45
+
46
+ if ( ! empty( $posts_ids ) ) {
47
+ return $posts_ids;
48
+ }
49
+
50
+ return $post__in;
51
+ }
52
+ }
includes/Integrations/Plugins/WooCommercePrivateStore/WooCommercePrivateStore.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * @dgwt_wcas_premium_only
5
+ */
6
+ namespace DgoraWcas\Integrations\Plugins\WooCommercePrivateStore;
7
+
8
+ // Exit if accessed directly
9
+ if ( !defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+ /**
13
+ * Integration with WooCommerce Private Store
14
+ *
15
+ * Plugin URL: https://barn2.co.uk/wordpress-plugins/woocommerce-private-store/
16
+ * Author: Barn2 Plugins
17
+ */
18
+ class WooCommercePrivateStore
19
+ {
20
+ public function init()
21
+ {
22
+ if ( !defined( '\\Barn2\\Plugin\\WC_Private_Store\\PLUGIN_VERSION' ) ) {
23
+ return;
24
+ }
25
+ if ( version_compare( \Barn2\Plugin\WC_Private_Store\PLUGIN_VERSION, '1.6.3' ) < 0 ) {
26
+ return;
27
+ }
28
+
29
+ if ( !dgoraAsfwFs()->is_premium() ) {
30
+ add_filter(
31
+ 'http_request_args',
32
+ array( $this, 'httpRequestArgs' ),
33
+ 10,
34
+ 2
35
+ );
36
+ add_filter( 'dgwt/wcas/search_results/output', array( $this, 'hideSearchResults' ) );
37
+ }
38
+
39
+ }
40
+
41
+ /**
42
+ * Pass Private Store cookie to search request on search page
43
+ *
44
+ * @param $args
45
+ * @param $url
46
+ *
47
+ * @return mixed
48
+ */
49
+ public function httpRequestArgs( $args, $url )
50
+ {
51
+
52
+ if ( defined( 'DGWT_WCAS_SEARCH_ACTION' ) && defined( 'WCPS_COOKIE_PREFIX' ) && strpos( $url, \WC_AJAX::get_endpoint( \DGWT_WCAS_SEARCH_ACTION ) ) !== false ) {
53
+ $cookie = \filter_input( \INPUT_COOKIE, \WCPS_COOKIE_PREFIX . \COOKIEHASH );
54
+ if ( !empty($cookie) ) {
55
+ $args['cookies'] = array(
56
+ \WCPS_COOKIE_PREFIX . \COOKIEHASH => $cookie,
57
+ );
58
+ }
59
+ }
60
+
61
+ return $args;
62
+ }
63
+
64
+ /**
65
+ * Return empty results if store is locked
66
+ *
67
+ * @param $output
68
+ *
69
+ * @return array
70
+ */
71
+ public function hideSearchResults( $output )
72
+ {
73
+ if ( !apply_filters( 'dgwt/wcas/integrations/woocommerce-private-store/hide-search-results', true ) ) {
74
+ return $output;
75
+ }
76
+ if ( is_callable( '\\Barn2\\Plugin\\WC_Private_Store\\Util::store_locked' ) ) {
77
+
78
+ if ( \Barn2\Plugin\WC_Private_Store\Util::store_locked() ) {
79
+ $output['total'] = 0;
80
+ $output['suggestions'] = array( array(
81
+ 'value' => '',
82
+ 'type' => 'no-results',
83
+ ) );
84
+ $output['time'] = '0 sec';
85
+ }
86
+
87
+ }
88
+ return $output;
89
+ }
90
+
91
+ }
includes/Integrations/Plugins/XforWooCommerceFilter/XforWooCommerceFilter.php CHANGED
@@ -1,5 +1,8 @@
1
  <?php
2
 
 
 
 
3
  namespace DgoraWcas\Integrations\Plugins\XforWooCommerceFilter;
4
 
5
  use DgoraWcas\Helpers ;
1
  <?php
2
 
3
+ /**
4
+ * @dgwt_wcas_premium_only
5
+ */
6
  namespace DgoraWcas\Integrations\Plugins\XforWooCommerceFilter;
7
 
8
  use DgoraWcas\Helpers ;
includes/Integrations/Themes/Avada/Avada.php CHANGED
@@ -57,7 +57,7 @@ class Avada {
57
  $settings[ $key ][55] = array(
58
  'name' => $this->themeSlug . '_replace_search',
59
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
60
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
61
  'type' => 'checkbox',
62
  'default' => 'off',
63
  );
@@ -73,8 +73,7 @@ class Avada {
73
  }
74
 
75
  /**
76
- * Check if can replace the native Woodmart search form
77
- * by the Ajax Search for WooCommerce form.
78
  *
79
  * @return bool
80
  */
@@ -310,6 +309,9 @@ class Avada {
310
  });
311
  }
312
 
 
 
 
313
  $(document).on('click', '.fusion-icon-search', function () {
314
 
315
 
57
  $settings[ $key ][55] = array(
58
  'name' => $this->themeSlug . '_replace_search',
59
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
60
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
61
  'type' => 'checkbox',
62
  'default' => 'off',
63
  );
73
  }
74
 
75
  /**
76
+ * Check if can replace the native Woodmart search form with the FiboSearch form.
 
77
  *
78
  * @return bool
79
  */
309
  });
310
  }
311
 
312
+ // Remove unused search forms
313
+ $('.dgwt-wcas-avada-fus-search-replace-wrapper').remove();
314
+
315
  $(document).on('click', '.fusion-icon-search', function () {
316
 
317
 
includes/Integrations/Themes/BlockShop/BlockShop.php CHANGED
@@ -54,7 +54,7 @@ class BlockShop {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class BlockShop {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Bridge/Bridge.php CHANGED
@@ -54,7 +54,7 @@ class Bridge {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Bridge {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/DFDRonneby/DFDRonneby.php CHANGED
@@ -51,10 +51,13 @@ class DFDRonneby {
51
  $settings[ $key ][52]['label'] = '<img src="' . $img . '">';
52
  }
53
 
 
 
 
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.<br><span style="color: red;">Note: We currently only support the header type: "Header 10".</span>', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +73,7 @@ class DFDRonneby {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
51
  $settings[ $key ][52]['label'] = '<img src="' . $img . '">';
52
  }
53
 
54
+ $desc = sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME );
55
+ $desc .= '<br><span style="color: red;">' . __( 'Note: We currently only support the header type: "Header 10"', 'ajax-search-for-woocommerce' ) . '</span>';
56
+
57
  $settings[ $key ][55] = array(
58
  'name' => $this->themeSlug . '_replace_search',
59
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
60
+ 'desc' => $desc,
61
  'type' => 'checkbox',
62
  'default' => 'off',
63
  );
73
  }
74
 
75
  /**
76
+ * Check if can replace the native search form with the FiboSearch form.
 
77
  *
78
  * @return bool
79
  */
includes/Integrations/Themes/Divi/Divi.php CHANGED
@@ -72,7 +72,7 @@ class Divi {
72
  $settings[ $key ][55] = array(
73
  'name' => $this->themeSlug . '_replace_search',
74
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
75
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
76
  'type' => 'checkbox',
77
  'default' => 'off',
78
  );
@@ -88,8 +88,7 @@ class Divi {
88
  }
89
 
90
  /**
91
- * Check if can replace the native search form
92
- * by the Ajax Search for WooCommerce form.
93
  *
94
  * @return bool
95
  */
72
  $settings[ $key ][55] = array(
73
  'name' => $this->themeSlug . '_replace_search',
74
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
75
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
76
  'type' => 'checkbox',
77
  'default' => 'off',
78
  );
88
  }
89
 
90
  /**
91
+ * Check if can replace the native search form with the FiboSearch form.
 
92
  *
93
  * @return bool
94
  */
includes/Integrations/Themes/Ekommart/Ekommart.php CHANGED
@@ -54,7 +54,7 @@ class Ekommart {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Ekommart {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Enfold/Enfold.php CHANGED
@@ -61,7 +61,7 @@ class Enfold {
61
  $settings[ $key ][55] = array(
62
  'name' => $this->themeSlug . '_replace_search',
63
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
64
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
65
  'type' => 'checkbox',
66
  'default' => 'off',
67
  );
@@ -77,8 +77,7 @@ class Enfold {
77
  }
78
 
79
  /**
80
- * Check if can replace the native search form
81
- * by the Ajax Search for WooCommerce form.
82
  *
83
  * @return bool
84
  */
61
  $settings[ $key ][55] = array(
62
  'name' => $this->themeSlug . '_replace_search',
63
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
64
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
65
  'type' => 'checkbox',
66
  'default' => 'off',
67
  );
77
  }
78
 
79
  /**
80
+ * Check if can replace the native search form with the FiboSearch form.
 
81
  *
82
  * @return bool
83
  */
includes/Integrations/Themes/Flatsome/Flatsome.php CHANGED
@@ -54,7 +54,7 @@ class Flatsome {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => __( 'Replace all Flatsome search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Flatsome {
70
  }
71
 
72
  /**
73
- * Check if can replace the native Storefront search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native Storefront search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Impreza/Impreza.php CHANGED
@@ -31,7 +31,7 @@ class Impreza {
31
  public function registerSettings( $settings ) {
32
  $key = 'dgwt_wcas_basic';
33
 
34
- $articleLink = 'https://ajaxsearch.pro/docs/integrations/impreza-theme/';
35
  $articleText = sprintf(__( 'Here is <a href="%s" target="_blank">article</a> about how to do it using Impreza child-theme.', 'ajax-search-for-woocommerce' ), $articleLink);
36
 
37
  $settings[ $key ][10] = array(
31
  public function registerSettings( $settings ) {
32
  $key = 'dgwt_wcas_basic';
33
 
34
+ $articleLink = 'https://fibosearch.com/documentation/themes-integrations/impreza-theme/';
35
  $articleText = sprintf(__( 'Here is <a href="%s" target="_blank">article</a> about how to do it using Impreza child-theme.', 'ajax-search-for-woocommerce' ), $articleLink);
36
 
37
  $settings[ $key ][10] = array(
includes/Integrations/Themes/Restoration/Restoration.php CHANGED
@@ -16,7 +16,7 @@ class Restoration {
16
  private $themeName = 'Restoration';
17
 
18
  public function __construct() {
19
-
20
  $this->maybeOverwriteSearch();
21
 
22
  add_filter( 'dgwt/wcas/settings', array( $this, 'registerSettings' ) );
@@ -56,7 +56,7 @@ class Restoration {
56
  $settings[ $key ][55] = array(
57
  'name' => $this->themeSlug . '_replace_search',
58
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
59
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
60
  'type' => 'checkbox',
61
  'default' => 'off',
62
  );
@@ -72,8 +72,7 @@ class Restoration {
72
  }
73
 
74
  /**
75
- * Check if can replace the native search form
76
- * by the Ajax Search for WooCommerce form.
77
  *
78
  * @return bool
79
  */
16
  private $themeName = 'Restoration';
17
 
18
  public function __construct() {
19
+
20
  $this->maybeOverwriteSearch();
21
 
22
  add_filter( 'dgwt/wcas/settings', array( $this, 'registerSettings' ) );
56
  $settings[ $key ][55] = array(
57
  'name' => $this->themeSlug . '_replace_search',
58
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
59
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
60
  'type' => 'checkbox',
61
  'default' => 'off',
62
  );
72
  }
73
 
74
  /**
75
+ * Check if can replace the native search form with the FiboSearch form.
 
76
  *
77
  * @return bool
78
  */
includes/Integrations/Themes/Savoy/Savoy.php CHANGED
@@ -54,7 +54,7 @@ class Savoy {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Savoy {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/ShopIsle/ShopIsle.php CHANGED
@@ -54,7 +54,7 @@ class ShopIsle {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class ShopIsle {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Shopical/Shopical.php CHANGED
@@ -54,7 +54,7 @@ class Shopical {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Shopical {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Shopkeeper/Shopkeeper.php CHANGED
@@ -56,7 +56,7 @@ class Shopkeeper {
56
  $settings[ $key ][55] = array(
57
  'name' => 'shopkeeper_replace_search',
58
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
59
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
60
  'type' => 'checkbox',
61
  'default' => 'on',
62
  );
@@ -87,8 +87,7 @@ class Shopkeeper {
87
  }
88
 
89
  /**
90
- * Check if can replace the native Woodmart search form
91
- * by the Ajax Search for WooCommerce form.
92
  *
93
  * @return bool
94
  */
56
  $settings[ $key ][55] = array(
57
  'name' => 'shopkeeper_replace_search',
58
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
59
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
60
  'type' => 'checkbox',
61
  'default' => 'on',
62
  );
87
  }
88
 
89
  /**
90
+ * Check if can replace the native Woodmart search form with the FiboSearch form.
 
91
  *
92
  * @return bool
93
  */
includes/Integrations/Themes/Sober/Sober.php CHANGED
@@ -54,7 +54,7 @@ class Sober {
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
@@ -70,8 +70,7 @@ class Sober {
70
  }
71
 
72
  /**
73
- * Check if can replace the native search form
74
- * by the Ajax Search for WooCommerce form.
75
  *
76
  * @return bool
77
  */
54
  $settings[ $key ][55] = array(
55
  'name' => $this->themeSlug . '_replace_search',
56
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
57
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
58
  'type' => 'checkbox',
59
  'default' => 'off',
60
  );
70
  }
71
 
72
  /**
73
+ * Check if can replace the native search form with the FiboSearch form.
 
74
  *
75
  * @return bool
76
  */
includes/Integrations/Themes/Storefront/Storefront.php CHANGED
@@ -55,7 +55,7 @@ class Storefront {
55
  $settings[ $key ][55] = array(
56
  'name' => 'storefront_replace_search',
57
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
58
- 'desc' => __( 'Replace the Storefront default product search to the Ajax Search for WooCommerce form.', 'ajax-search-for-woocommerce' ),
59
  'type' => 'checkbox',
60
  'default' => 'off',
61
  );
@@ -71,8 +71,7 @@ class Storefront {
71
  }
72
 
73
  /**
74
- * Check if can replace the native Storefront search form
75
- * by the Ajax Search for WooCommerce form.
76
  *
77
  * @return bool
78
  */
55
  $settings[ $key ][55] = array(
56
  'name' => 'storefront_replace_search',
57
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
58
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
59
  'type' => 'checkbox',
60
  'default' => 'off',
61
  );
71
  }
72
 
73
  /**
74
+ * Check if can replace the native Storefront search form with the FiboSearch form.
 
75
  *
76
  * @return bool
77
  */
includes/Integrations/Themes/The7/The7.php CHANGED
@@ -57,7 +57,7 @@ class The7 {
57
  $settings[ $key ][55] = array(
58
  'name' => $this->themeSlug . '_replace_search',
59
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
60
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
61
  'type' => 'checkbox',
62
  'default' => 'off',
63
  );
@@ -73,8 +73,7 @@ class The7 {
73
  }
74
 
75
  /**
76
- * Check if can replace the native Woodmart search form
77
- * by the Ajax Search for WooCommerce form.
78
  *
79
  * @return bool
80
  */
57
  $settings[ $key ][55] = array(
58
  'name' => $this->themeSlug . '_replace_search',
59
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
60
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
61
  'type' => 'checkbox',
62
  'default' => 'off',
63
  );
73
  }
74
 
75
  /**
76
+ * Check if can replace the native Woodmart search form with the FiboSearch form.
 
77
  *
78
  * @return bool
79
  */
includes/Integrations/Themes/TheGem/TheGem.php CHANGED
@@ -120,8 +120,7 @@ class TheGem {
120
  }
121
 
122
  /**
123
- * Check if can replace the native TheGem search form
124
- * by the Ajax Search for WooCommerce form.
125
  *
126
  * @return bool
127
  */
120
  }
121
 
122
  /**
123
+ * Check if can replace the native TheGem search form with the FiboSearch form.
 
124
  *
125
  * @return bool
126
  */
includes/Integrations/Themes/Woodmart/Woodmart.php CHANGED
@@ -48,7 +48,7 @@ class Woodmart {
48
  */
49
  public function registerSettings( $settings ) {
50
  $key = 'dgwt_wcas_basic';
51
-
52
  $settings[ $key ][10] = array(
53
  'name' => $this->themeSlug . '_main_head',
54
  'label' => sprintf( __( 'Replace %s search bar', 'ajax-search-for-woocommerce' ), $this->themeName ),
@@ -72,7 +72,7 @@ class Woodmart {
72
  $settings[ $key ][55] = array(
73
  'name' => 'woodmart_replace_search',
74
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
75
- 'desc' => sprintf( __( 'Replace all %s search bars with the Ajax Search for WooCommerce.', 'ajax-search-for-woocommerce' ), $this->themeName ),
76
  'type' => 'checkbox',
77
  'default' => 'off',
78
  );
@@ -88,8 +88,7 @@ class Woodmart {
88
  }
89
 
90
  /**
91
- * Check if can replace the native Woodmart search form
92
- * by the Ajax Search for WooCommerce form.
93
  *
94
  * @return bool
95
  */
48
  */
49
  public function registerSettings( $settings ) {
50
  $key = 'dgwt_wcas_basic';
51
+
52
  $settings[ $key ][10] = array(
53
  'name' => $this->themeSlug . '_main_head',
54
  'label' => sprintf( __( 'Replace %s search bar', 'ajax-search-for-woocommerce' ), $this->themeName ),
72
  $settings[ $key ][55] = array(
73
  'name' => 'woodmart_replace_search',
74
  'label' => __( 'Replace', 'ajax-search-for-woocommerce' ),
75
+ 'desc' => sprintf( __( 'Replace all %s search bars with the %s.', 'ajax-search-for-woocommerce' ), $this->themeName, DGWT_WCAS_NAME ),
76
  'type' => 'checkbox',
77
  'default' => 'off',
78
  );
88
  }
89
 
90
  /**
91
+ * Check if can replace the native Woodmart search form with the FiboSearch form.
 
92
  *
93
  * @return bool
94
  */
includes/Multilingual.php CHANGED
@@ -21,10 +21,7 @@ class Multilingual {
21
  return false;
22
  }
23
 
24
- if (
25
- count( self::getLanguages() ) > 1
26
- && ( self::isWPML() || self::isPolylang() )
27
- ) {
28
  $isMultilingual = true;
29
  }
30
 
@@ -57,14 +54,16 @@ class Multilingual {
57
  public static function getProvider() {
58
  $provider = 'not set';
59
 
60
- if(self::isWPML()){
61
  $provider = 'WPML';
62
  }
63
 
64
- if(self::isPolylang()){
65
  $provider = 'Polylang';
66
  }
67
 
 
 
68
  return $provider;
69
  }
70
 
@@ -101,6 +100,8 @@ class Multilingual {
101
  $defaultLang = substr( $locale, 0, 2 );
102
  }
103
 
 
 
104
  return $defaultLang;
105
  }
106
 
@@ -130,6 +131,8 @@ class Multilingual {
130
  $currentLang = strtolower($_GET['lang']);
131
  }
132
 
 
 
133
  return $currentLang;
134
  }
135
 
@@ -165,6 +168,8 @@ class Multilingual {
165
  $lang = pll_get_post_language( $postID, 'slug' );
166
  }
167
 
 
 
168
  return $lang;
169
  }
170
 
@@ -202,6 +207,9 @@ class Multilingual {
202
  $lang = pll_get_term_language($termID, 'slug');
203
  }
204
 
 
 
 
205
  return $lang;
206
  }
207
 
@@ -233,13 +241,15 @@ class Multilingual {
233
 
234
  }
235
 
 
 
236
  return $permalink;
237
  }
238
 
239
  /**
240
  * Active languages
241
  *
242
- * @return langs
243
  */
244
  public static function getLanguages() {
245
 
@@ -274,6 +284,8 @@ class Multilingual {
274
  $langs[] = self::getDefaultLanguage();
275
  }
276
 
 
 
277
  return $langs;
278
 
279
  }
@@ -326,6 +338,8 @@ class Multilingual {
326
 
327
  }
328
 
 
 
329
  return $terms;
330
  }
331
 
@@ -379,6 +393,8 @@ class Multilingual {
379
 
380
  }
381
 
 
 
382
  return $terms;
383
  }
384
 
@@ -428,6 +444,8 @@ class Multilingual {
428
 
429
  }
430
 
 
 
431
  return $term;
432
  }
433
 
@@ -499,6 +517,8 @@ class Multilingual {
499
  if ( self::isWPML() && ! empty( $lang ) ) {
500
  do_action( 'wpml_switch_language', $lang );
501
  }
 
 
502
  }
503
 
504
  }
21
  return false;
22
  }
23
 
24
+ if ( count( self::getLanguages() ) > 1 && self::getProvider() !== 'not set' ) {
 
 
 
25
  $isMultilingual = true;
26
  }
27
 
54
  public static function getProvider() {
55
  $provider = 'not set';
56
 
57
+ if ( self::isWPML() ) {
58
  $provider = 'WPML';
59
  }
60
 
61
+ if ( self::isPolylang() ) {
62
  $provider = 'Polylang';
63
  }
64
 
65
+ $provider = apply_filters( 'dgwt/wcas/multilingual/provider', $provider );
66
+
67
  return $provider;
68
  }
69
 
100
  $defaultLang = substr( $locale, 0, 2 );
101
  }
102
 
103
+ $defaultLang = apply_filters( 'dgwt/wcas/multilingual/default-language', $defaultLang );
104
+
105
  return $defaultLang;
106
  }
107
 
131
  $currentLang = strtolower($_GET['lang']);
132
  }
133
 
134
+ $currentLang = apply_filters( 'dgwt/wcas/multilingual/current-language', $currentLang );
135
+
136
  return $currentLang;
137
  }
138
 
168
  $lang = pll_get_post_language( $postID, 'slug' );
169
  }
170
 
171
+ $lang = apply_filters( 'dgwt/wcas/multilingual/post-language', $lang, $postID, $postType );
172
+
173
  return $lang;
174
  }
175
 
207
  $lang = pll_get_term_language($termID, 'slug');
208
  }
209
 
210
+ // TranslatePress has no language relationship with the post, so we always return the default
211
+ $lang = apply_filters( 'dgwt/wcas/multilingual/term-language', $lang, $termID, $taxonomy );
212
+
213
  return $lang;
214
  }
215
 
241
 
242
  }
243
 
244
+ $permalink = apply_filters( 'dgwt/wcas/multilingual/post-permalink', $permalink, $lang, $postID );
245
+
246
  return $permalink;
247
  }
248
 
249
  /**
250
  * Active languages
251
  *
252
+ * @return array
253
  */
254
  public static function getLanguages() {
255
 
284
  $langs[] = self::getDefaultLanguage();
285
  }
286
 
287
+ $langs = apply_filters( 'dgwt/wcas/multilingual/languages', $langs );
288
+
289
  return $langs;
290
 
291
  }
338
 
339
  }
340
 
341
+ $terms = apply_filters( 'dgwt/wcas/multilingual/terms-in-all-languages', $terms, $taxonomy );
342
+
343
  return $terms;
344
  }
345
 
393
 
394
  }
395
 
396
+ $terms = apply_filters( 'dgwt/wcas/multilingual/terms-in-language', $terms, $args, $lang );
397
+
398
  return $terms;
399
  }
400
 
444
 
445
  }
446
 
447
+ $term = apply_filters( 'dgwt/wcas/multilingual/term', $term, $termID, $taxonomy, $lang );
448
+
449
  return $term;
450
  }
451
 
517
  if ( self::isWPML() && ! empty( $lang ) ) {
518
  do_action( 'wpml_switch_language', $lang );
519
  }
520
+
521
+ do_action( 'dgwt/wcas/multilingual/switch-language', $lang );
522
  }
523
 
524
  }
includes/Product.php CHANGED
@@ -2,551 +2,600 @@
2
 
3
  namespace DgoraWcas;
4
 
5
- class Product {
6
- protected $productID = 0;
7
- protected $wcProduct = null;
8
- protected $langCode = 'en';
9
- private $variations = array();
10
-
11
- public function __construct( $product ) {
12
- if ( ! empty( $product ) && is_object( $product ) && is_a( $product, 'WC_Product' ) ) {
13
- $this->productID = $product->get_id();
14
- $this->wcProduct = $product;
15
- }
16
-
17
- if ( ! empty( $product ) && is_object( $product ) && is_a( $product, 'WP_Post' ) ) {
18
- $this->productID = absint( $product->ID );
19
- $this->wcProduct = wc_get_product( $product );
20
- }
21
-
22
- if ( is_numeric( $product ) && 'product' === get_post_type( $product ) ) {
23
- $this->productID = absint( $product );
24
- $this->wcProduct = wc_get_product( $product );
25
- }
26
-
27
- $this->setLanguage();
28
- }
29
-
30
- /**
31
- * Set info about product language
32
- *
33
- * @return void
34
- */
35
- public function setLanguage() {
36
- $this->langCode = Multilingual::getPostLang( $this->getID() );
37
- }
38
-
39
- /**
40
- * Get product ID (post_id)
41
- * @return INT
42
- */
43
- public function getID() {
44
- return $this->productID;
45
- }
46
-
47
- /**
48
- * Get created date
49
- *
50
- * @return mixed
51
- */
52
- public function getCreatedDate() {
53
- $date = $this->wcProduct->get_date_created();
54
- if ( ! $date ) {
55
- $date = '0000-00-00 00:00:00';
56
- }
57
-
58
- return $date;
59
- }
60
-
61
- /**
62
- * Get product name
63
- * @return string
64
- */
65
- public function getName() {
66
- return apply_filters( 'dgwt/wcas/product/name', $this->wcProduct->get_name() );
67
- }
68
-
69
- /**
70
- * Get prepared product description
71
- *
72
- * @param string $type full|short|suggestions|details-panel
73
- * @param int $forceWordsLimit
74
- *
75
- * @return string
76
- */
77
- public function getDescription( $type = 'full', $forceWordsLimit = 0 ) {
78
-
79
- $output = '';
80
-
81
- if ( $type === 'full' ) {
82
- $output = $this->wcProduct->get_description();
83
- }
84
-
85
- if ( $type === 'short' ) {
86
- $output = $this->wcProduct->get_short_description();
87
- }
88
-
89
- if ( $type === 'suggestions' || $type === 'details-panel' ) {
90
-
91
- $desc = $this->wcProduct->get_short_description();
92
-
93
- if ( empty( $desc ) ) {
94
- $desc = $this->wcProduct->get_description();
95
- }
96
-
97
- if ( ! empty( $desc ) ) {
98
-
99
- if ( $type === 'details-panel' ) {
100
- $wordsLimit = $forceWordsLimit > 0 ? $forceWordsLimit : 20;
101
- $output = Helpers::makeShortDescription( $desc, $wordsLimit, '</br><b><strong>', false );
102
- } elseif ( $type === 'suggestions' ) {
103
- $wordsLimit = $forceWordsLimit > 0 ? $forceWordsLimit : 30;
104
- $output = Helpers::makeShortDescription( $desc, $wordsLimit, '' );
105
- }
106
- }
107
- }
108
-
109
- return apply_filters( 'dgwt/wcas/product/description', $output, $type, $this->productID, $this );
110
- }
111
-
112
- /**
113
- * Get product permalink
114
- *
115
- * @return string
116
- */
117
- public function getPermalink() {
118
- $permalink = $this->wcProduct->get_permalink();
119
-
120
- return apply_filters( 'dgwt/wcas/product/permalink', $permalink, $this->productID, $this );
121
- }
122
-
123
- /**
124
- * Get product thumbnail url
125
- *
126
- * @param string $size
127
- *
128
- * @return string
129
- */
130
- public function getThumbnailSrc( $size = '' ) {
131
- $src = '';
132
- $size = empty( $size ) ? 'dgwt-wcas-product-suggestion' : $size;
133
-
134
- $imageID = $this->wcProduct->get_image_id();
135
-
136
- if ( ! empty( $imageID ) ) {
137
- $imageSrc = wp_get_attachment_image_src( $imageID, $size );
138
-
139
- if ( is_array( $imageSrc ) && ! empty( $imageSrc[0] ) ) {
140
- $src = $imageSrc[0];
141
- }
142
- }
143
-
144
- if ( empty( $src ) ) {
145
- $src = wc_placeholder_img_src();
146
- }
147
-
148
- return apply_filters( 'dgwt/wcas/product/thumbnail_src', $src, $this->productID, $this );
149
- }
150
-
151
- /**
152
- * Get product thumbnail
153
- *
154
- * @param string $size
155
- *
156
- * @return string
157
- */
158
- public function getThumbnail( $size = '' ) {
159
- return '<img src="' . $this->getThumbnailSrc( $size ) . '" alt="' . $this->getName() . '" />';
160
- }
161
-
162
-
163
- /**
164
- * Get HTML code with the product price
165
- *
166
- * @return string
167
- */
168
- public function getPriceHTML() {
169
-
170
- $price = $this->wcProduct->get_price_html();
171
-
172
- if ( ! empty( $price ) && is_string( $price ) ) {
173
- $price = preg_replace( '/(?<=\d)\s+(?=\d|\-)/', '&nbsp;', $price );
174
- }
175
-
176
- return (string) apply_filters( 'dgwt/wcas/product/html_price', $price, $this->productID, $this );
177
- }
178
-
179
- /**
180
- * Get price
181
- *
182
- * @return string
183
- */
184
- public function getPrice() {
185
- return (string) $this->wcProduct->get_price();
186
- }
187
-
188
- /**
189
- * Get average rating
190
- *
191
- * @return float
192
- */
193
- public function getAverageRating() {
194
- return (float) $this->wcProduct->get_average_rating();
195
- }
196
-
197
- /**
198
- * Get review count
199
- *
200
- * @return int
201
- */
202
- public function getReviewCount() {
203
- return (int) $this->wcProduct->get_review_count();
204
- }
205
-
206
- /**
207
- * Get rating HTML
208
- *
209
- * @return string
210
- */
211
- public function getRatingHtml() {
212
- return (string) wc_get_rating_html( $this->getAverageRating() );
213
- }
214
-
215
-
216
- /**
217
- * Get total sales
218
- *
219
- * @return int
220
- */
221
- public function getTotalSales() {
222
- return (int) $this->wcProduct->get_total_sales();
223
- }
224
-
225
- /**
226
- * Get SKU
227
- * @return string
228
- */
229
- public function getSKU() {
230
- return (string) apply_filters( 'dgwt/wcas/product/sku', $this->wcProduct->get_sku(), $this->productID, $this );
231
- }
232
-
233
- /**
234
- * Get available variations
235
- * @return array
236
- */
237
- public function getAvailableVariations() {
238
-
239
- if ( empty( $this->variations ) && is_a( $this->wcProduct, 'WC_Product_Variable' ) ) {
240
- return $this->wcProduct->get_available_variations();
241
- }
242
-
243
- return $this->variations;
244
-
245
- }
246
-
247
- /**
248
- * Get all SKUs for variations
249
- * @return array
250
- */
251
- public function getVariationsSKUs() {
252
- $skus = array();
253
-
254
- $variations = $this->getAvailableVariations();
255
-
256
- foreach ( $variations as $variation ) {
257
-
258
- if ( is_array( $variation ) && ! empty( $variation['sku'] ) ) {
259
- $skus[] = sanitize_text_field( $variation['sku'] );
260
- }
261
- }
262
-
263
- return apply_filters( 'dgwt/wcas/product/variations_skus', $skus, $this->productID, $this );
264
- }
265
-
266
- /**
267
- * Get description of all product variations
268
- *
269
- * @return array
270
- */
271
- public function getVariationsDescriptions() {
272
-
273
- $descriptions = array();
274
-
275
- $variations = $this->getAvailableVariations();
276
-
277
- foreach ( $variations as $variation ) {
278
-
279
- if ( is_array( $variation ) && ! empty( $variation['variation_description'] ) ) {
280
- $descriptions[] = sanitize_text_field( $variation['variation_description'] );
281
- }
282
- }
283
-
284
- return $descriptions;
285
- }
286
-
287
-
288
- /**
289
- * Get attributes
290
- *
291
- * @param bool $onlyNames
292
- *
293
- * @return array
294
- */
295
- public function getAttributes( $onlyNames = false ) {
296
- $terms = array();
297
- $attributes = apply_filters( 'dgwt/wcas/product/attributes', $this->wcProduct->get_attributes(), $this->productID, $this );
298
-
299
- foreach ( $attributes as $attribute ) {
300
-
301
- if ( $onlyNames ) {
302
-
303
-
304
- if ( $attribute->is_taxonomy() ) {
305
-
306
- // Global attributes
307
- $attrTerms = $attribute->get_terms();
308
- if ( ! empty( $attrTerms ) && is_array( $attrTerms ) ) {
309
- foreach ( $attrTerms as $attrTerm ) {
310
- $terms[] = $attrTerm->name;
311
- }
312
- }
313
-
314
- } else {
315
-
316
- // Custom attributes
317
- $attrOptions = $attribute->get_options();
318
- if ( ! empty( $attrOptions ) && is_array( $attrOptions ) ) {
319
- // Use external static method for keeping always the same filters = self::getCustomAttributes($productID);
320
- $customAttributesValues = self::getCustomAttributes( $this->productID );
321
- if ( ! empty( $customAttributesValues ) ) {
322
- $terms = array_merge( $terms, $customAttributesValues );
323
- }
324
-
325
- }
326
- }
327
-
328
- } else {
329
- //@TODO future use
330
- }
331
-
332
- }
333
-
334
- return apply_filters( 'dgwt/wcas/product/attribute_terms', $terms, $this->productID, $this );
335
- }
336
-
337
- /**
338
- * Get product language
339
- *
340
- * @return string
341
- */
342
- public function getLanguage() {
343
- return $this->langCode;
344
- }
345
-
346
- /**
347
- * Get custom field value
348
- *
349
- * @param string $metaKey
350
- *
351
- * @return string
352
- */
353
- public function getCustomField( $metaKey ) {
354
- return get_post_meta( $this->productID, $metaKey, true );
355
- }
356
-
357
- /**
358
- * Get brand name
359
- *
360
- * @return string
361
- */
362
- public function getBrand() {
363
- $brand = '';
364
- $taxonomy = DGWT_WCAS()->brands->getBrandTaxonomy();
365
-
366
- if ( ! empty( $taxonomy ) ) {
367
-
368
- $terms = get_the_terms( $this->productID, $taxonomy );
369
-
370
- if ( $terms && ! is_wp_error( $terms ) ) {
371
- $brand = ! empty( $terms[0]->name ) ? $terms[0]->name : '';
372
- }
373
-
374
- }
375
-
376
- return $brand;
377
- }
378
-
379
- /**
380
- * Get terms form specific taxonomy
381
- *
382
- * @param $taxonomy
383
- * @param $format output format
384
- *
385
- * @return string
386
- *
387
- */
388
- public function getTerms( $taxonomy = 'product_cat', $format = 'array' ) {
389
- $items = array();
390
-
391
- if ( ! empty( $taxonomy ) ) {
392
-
393
- $terms = get_the_terms( $this->productID, $taxonomy );
394
-
395
- if ( ! empty( $terms ) && is_array( $terms ) ) {
396
- foreach ( $terms as $term ) {
397
- if ( ! empty( $term->name ) ) {
398
-
399
- if ( apply_filters( 'dgwt/wcas/tnt/source_query/term_description', false ) && ! empty( $term->description ) ) {
400
- $items[] = $term->name . ' | ' . $term->description;
401
- } else {
402
- $items[] = $term->name;
403
- }
404
-
405
- }
406
-
407
- }
408
- }
409
-
410
- }
411
-
412
- return $format === 'string' ? implode( ' | ', $items ) : $items;
413
- }
414
-
415
- /**
416
- * Check, if class is initialized correctly
417
- * @return bool
418
- */
419
- public function isValid() {
420
- $isValid = false;
421
-
422
- if ( is_a( $this->wcProduct, 'WC_Product' ) ) {
423
- $isValid = true;
424
- }
425
-
426
- return $isValid;
427
- }
428
-
429
- /**
430
- * WooCommerce raw product object
431
- *
432
- * @return object
433
- */
434
- public function getWooObject() {
435
- return $this->wcProduct;
436
- }
437
-
438
- /**
439
- * Get custom attributes
440
- *
441
- * for external use
442
- *
443
- * @param int productID
444
- *
445
- * @return array
446
- */
447
- public static function getCustomAttributes( $productID ) {
448
- global $wpdb;
449
-
450
- $terms = array();
451
-
452
- $sql = $wpdb->prepare( "SELECT meta_value
453
- FROM $wpdb->postmeta
454
- WHERE post_id = %d
455
- AND meta_key = '_product_attributes'
456
- ", $productID );
457
-
458
- $optValue = $wpdb->get_var( $sql );
459
-
460
- if ( ! empty( $optValue ) && strpos( $optValue, 'a:' ) === 0 ) {
461
-
462
- $rawAttributes = unserialize( $optValue );
463
-
464
- if ( is_array( $rawAttributes ) && ! empty( $rawAttributes ) ) {
465
-
466
- $rawAttributes = apply_filters( 'dgwt/wcas/product/custom_attributes', $rawAttributes, $productID );
467
-
468
- foreach ( $rawAttributes as $rawAttribute ) {
469
- if ( array_key_exists( 'is_taxonomy', $rawAttribute ) && $rawAttribute['is_taxonomy'] == 0 && ! empty( $rawAttribute['value'] ) ) {
470
- $partTerms = explode( ' | ', $rawAttribute['value'] );
471
-
472
- $terms = array_merge( $terms, $partTerms );
473
- }
474
- }
475
- }
476
-
477
- }
478
-
479
- return $terms;
480
-
481
- }
482
-
483
- /**
484
- * Get product currency
485
- *
486
- * @return string
487
- */
488
- public function getCurrency() {
489
-
490
- $currency = get_woocommerce_currency();
491
-
492
- if ( Multilingual::isMultilingual() ) {
493
- $currencyByLang = Multilingual::getCurrencyForLang( $this->getLanguage() );
494
- if ( ! empty( $currencyByLang ) ) {
495
- $currency = $currencyByLang;
496
- }
497
- }
498
-
499
-
500
- return $currency;
501
- }
502
-
503
- /**
504
- * Stock quantity message
505
- *
506
- * @return string
507
- */
508
- public function getStockAvailability() {
509
- $html = '';
510
-
511
- if ( 'yes' === get_option( 'woocommerce_manage_stock' ) && $this->wcProduct->get_manage_stock() ) {
512
- $data = $this->wcProduct->get_availability();
513
- if ( ! empty( $data ) && is_array( $data ) ) {
514
- $text = ! empty( $data['availability'] ) ? $data['availability'] : '';
515
- $class = ! empty( $data['class'] ) ? ' ' . $data['class'] : '';
516
-
517
- if ( $text ) {
518
- $html .= '<span class="dgwt-wcas-stock' . $class . '">';
519
- $html .= $text;
520
- $html .= '</span>';
521
- }
522
- }
523
- }
524
-
525
- return $html;
526
- }
527
-
528
- /**
529
- * Check product type
530
- *
531
- * @return bool
532
- */
533
- public function isType( $type ) {
534
- return $this->wcProduct->is_type( $type );
535
- }
536
-
537
- /**
538
- * Check if the object was initialized properly
539
- *
540
- * @return bool
541
- */
542
- public function isCorrect() {
543
- $correct = true;
544
-
545
- if ( empty( $this->wcProduct ) ) {
546
- $correct = false;
547
- }
548
-
549
- return $correct;
550
- }
551
-
552
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  namespace DgoraWcas;
4
 
5
+ class Product
6
+ {
7
+ protected $productID = 0 ;
8
+ /**
9
+ * @var bool|false|\WC_Product|null
10
+ */
11
+ protected $wcProduct = null ;
12
+ protected $langCode = 'en' ;
13
+ private $variations = array() ;
14
+ public function __construct( $product )
15
+ {
16
+
17
+ if ( !empty($product) && is_object( $product ) && is_a( $product, 'WC_Product' ) ) {
18
+ $this->productID = $product->get_id();
19
+ $this->wcProduct = $product;
20
+ }
21
+
22
+
23
+ if ( !empty($product) && is_object( $product ) && is_a( $product, 'WP_Post' ) ) {
24
+ $this->productID = absint( $product->ID );
25
+ $this->wcProduct = wc_get_product( $product );
26
+ }
27
+
28
+
29
+ if ( is_numeric( $product ) && 'product' === get_post_type( $product ) ) {
30
+ $this->productID = absint( $product );
31
+ $this->wcProduct = wc_get_product( $product );
32
+ }
33
+
34
+ $this->setLanguage();
35
+ }
36
+
37
+ /**
38
+ * Set info about product language
39
+ *
40
+ * @return void
41
+ */
42
+ public function setLanguage()
43
+ {
44
+ $this->langCode = Multilingual::getPostLang( $this->getID() );
45
+ }
46
+
47
+ /**
48
+ * Get product ID (post_id)
49
+ * @return INT
50
+ */
51
+ public function getID()
52
+ {
53
+ return $this->productID;
54
+ }
55
+
56
+ /**
57
+ * Get created date
58
+ *
59
+ * @return mixed
60
+ */
61
+ public function getCreatedDate()
62
+ {
63
+ $date = $this->wcProduct->get_date_created();
64
+ if ( !$date ) {
65
+ $date = '0000-00-00 00:00:00';
66
+ }
67
+ return $date;
68
+ }
69
+
70
+ /**
71
+ * Get product name
72
+ * @return string
73
+ */
74
+ public function getName()
75
+ {
76
+ return apply_filters( 'dgwt/wcas/product/name', $this->wcProduct->get_name() );
77
+ }
78
+
79
+ /**
80
+ * Get prepared product description
81
+ *
82
+ * @param string $type full|short|suggestions|details-panel
83
+ * @param int $forceWordsLimit
84
+ *
85
+ * @return string
86
+ */
87
+ public function getDescription( $type = 'full', $forceWordsLimit = 0 )
88
+ {
89
+ $output = '';
90
+ if ( $type === 'full' ) {
91
+ $output = $this->wcProduct->get_description();
92
+ }
93
+ if ( $type === 'short' ) {
94
+ $output = $this->wcProduct->get_short_description();
95
+ }
96
+
97
+ if ( $type === 'suggestions' || $type === 'details-panel' ) {
98
+ $desc = $this->wcProduct->get_short_description();
99
+ if ( empty($desc) ) {
100
+ $desc = $this->wcProduct->get_description();
101
+ }
102
+ if ( !empty($desc) ) {
103
+
104
+ if ( $type === 'details-panel' ) {
105
+ $wordsLimit = ( $forceWordsLimit > 0 ? $forceWordsLimit : 20 );
106
+ $output = Helpers::makeShortDescription(
107
+ $desc,
108
+ $wordsLimit,
109
+ '</br><b><strong>',
110
+ false
111
+ );
112
+ } elseif ( $type === 'suggestions' ) {
113
+ $wordsLimit = ( $forceWordsLimit > 0 ? $forceWordsLimit : 30 );
114
+ $output = Helpers::makeShortDescription( $desc, $wordsLimit, '' );
115
+ }
116
+
117
+ }
118
+ }
119
+
120
+ return apply_filters(
121
+ 'dgwt/wcas/product/description',
122
+ $output,
123
+ $type,
124
+ $this->productID,
125
+ $this
126
+ );
127
+ }
128
+
129
+ /**
130
+ * Get product permalink
131
+ *
132
+ * @return string
133
+ */
134
+ public function getPermalink()
135
+ {
136
+ $permalink = $this->wcProduct->get_permalink();
137
+ return apply_filters(
138
+ 'dgwt/wcas/product/permalink',
139
+ $permalink,
140
+ $this->productID,
141
+ $this
142
+ );
143
+ }
144
+
145
+ /**
146
+ * Get product thumbnail url
147
+ *
148
+ * @param string $size
149
+ *
150
+ * @return string
151
+ */
152
+ public function getThumbnailSrc( $size = '' )
153
+ {
154
+ $src = '';
155
+ $size = ( empty($size) ? 'dgwt-wcas-product-suggestion' : $size );
156
+ $imageID = $this->wcProduct->get_image_id();
157
+
158
+ if ( !empty($imageID) ) {
159
+ $imageSrc = wp_get_attachment_image_src( $imageID, $size );
160
+ if ( is_array( $imageSrc ) && !empty($imageSrc[0]) ) {
161
+ $src = $imageSrc[0];
162
+ }
163
+ }
164
+
165
+ if ( empty($src) ) {
166
+ $src = wc_placeholder_img_src();
167
+ }
168
+ return apply_filters(
169
+ 'dgwt/wcas/product/thumbnail_src',
170
+ $src,
171
+ $this->productID,
172
+ $this
173
+ );
174
+ }
175
+
176
+ /**
177
+ * Get product thumbnail
178
+ *
179
+ * @param string $size
180
+ *
181
+ * @return string
182
+ */
183
+ public function getThumbnail( $size = '' )
184
+ {
185
+ return '<img src="' . $this->getThumbnailSrc( $size ) . '" alt="' . $this->getName() . '" />';
186
+ }
187
+
188
+ /**
189
+ * Get HTML code with the product price
190
+ *
191
+ * @return string
192
+ */
193
+ public function getPriceHTML()
194
+ {
195
+ $price = $this->wcProduct->get_price_html();
196
+ if ( !empty($price) && is_string( $price ) ) {
197
+ $price = preg_replace( '/(?<=\\d)\\s+(?=\\d|\\-)/', '&nbsp;', $price );
198
+ }
199
+ return (string) apply_filters(
200
+ 'dgwt/wcas/product/html_price',
201
+ $price,
202
+ $this->productID,
203
+ $this
204
+ );
205
+ }
206
+
207
+ /**
208
+ * Get price
209
+ *
210
+ * @return string
211
+ */
212
+ public function getPrice()
213
+ {
214
+ return (string) $this->wcProduct->get_price();
215
+ }
216
+
217
+ /**
218
+ * Get average rating
219
+ *
220
+ * @return float
221
+ */
222
+ public function getAverageRating()
223
+ {
224
+ return (double) $this->wcProduct->get_average_rating();
225
+ }
226
+
227
+ /**
228
+ * Get review count
229
+ *
230
+ * @return int
231
+ */
232
+ public function getReviewCount()
233
+ {
234
+ return (int) $this->wcProduct->get_review_count();
235
+ }
236
+
237
+ /**
238
+ * Get rating HTML
239
+ *
240
+ * @return string
241
+ */
242
+ public function getRatingHtml()
243
+ {
244
+ return (string) wc_get_rating_html( $this->getAverageRating() );
245
+ }
246
+
247
+ /**
248
+ * Get total sales
249
+ *
250
+ * @return int
251
+ */
252
+ public function getTotalSales()
253
+ {
254
+ return (int) $this->wcProduct->get_total_sales();
255
+ }
256
+
257
+ /**
258
+ * Get SKU
259
+ * @return string
260
+ */
261
+ public function getSKU()
262
+ {
263
+ return (string) apply_filters(
264
+ 'dgwt/wcas/product/sku',
265
+ $this->wcProduct->get_sku(),
266
+ $this->productID,
267
+ $this
268
+ );
269
+ }
270
+
271
+ /**
272
+ * Get available variations
273
+ * @return array
274
+ */
275
+ public function getAvailableVariations()
276
+ {
277
+ if ( empty($this->variations) && is_a( $this->wcProduct, 'WC_Product_Variable' ) ) {
278
+ return $this->wcProduct->get_available_variations();
279
+ }
280
+ return $this->variations;
281
+ }
282
+
283
+ /**
284
+ * Get all SKUs for variations
285
+ * @return array
286
+ */
287
+ public function getVariationsSKUs()
288
+ {
289
+ $skus = array();
290
+ $variations = $this->getAvailableVariations();
291
+ foreach ( $variations as $variation ) {
292
+ if ( is_array( $variation ) && !empty($variation['sku']) ) {
293
+ $skus[] = sanitize_text_field( $variation['sku'] );
294
+ }
295
+ }
296
+ return apply_filters(
297
+ 'dgwt/wcas/product/variations_skus',
298
+ $skus,
299
+ $this->productID,
300
+ $this
301
+ );
302
+ }
303
+
304
+ /**
305
+ * Get description of all product variations
306
+ *
307
+ * @return array
308
+ */
309
+ public function getVariationsDescriptions()
310
+ {
311
+ $descriptions = array();
312
+ $variations = $this->getAvailableVariations();
313
+ foreach ( $variations as $variation ) {
314
+ if ( is_array( $variation ) && !empty($variation['variation_description']) ) {
315
+ $descriptions[] = sanitize_text_field( $variation['variation_description'] );
316
+ }
317
+ }
318
+ return $descriptions;
319
+ }
320
+
321
+ /**
322
+ * Get attributes
323
+ *
324
+ * @param bool $onlyNames
325
+ *
326
+ * @return array
327
+ */
328
+ public function getAttributes( $onlyNames = false )
329
+ {
330
+ $terms = array();
331
+ $attributes = apply_filters(
332
+ 'dgwt/wcas/product/attributes',
333
+ $this->wcProduct->get_attributes(),
334
+ $this->productID,
335
+ $this
336
+ );
337
+ foreach ( $attributes as $attribute ) {
338
+
339
+ if ( $onlyNames ) {
340
+
341
+ if ( $attribute->is_taxonomy() ) {
342
+ // Global attributes
343
+ $attrTerms = $attribute->get_terms();
344
+ if ( !empty($attrTerms) && is_array( $attrTerms ) ) {
345
+ foreach ( $attrTerms as $attrTerm ) {
346
+ $terms[] = $attrTerm->name;
347
+ }
348
+ }
349
+ } else {
350
+ // Custom attributes
351
+ $attrOptions = $attribute->get_options();
352
+
353
+ if ( !empty($attrOptions) && is_array( $attrOptions ) ) {
354
+ // Use external static method for keeping always the same filters = self::getCustomAttributes($productID);
355
+ $customAttributesValues = self::getCustomAttributes( $this->productID );
356
+ if ( !empty($customAttributesValues) ) {
357
+ $terms = array_merge( $terms, $customAttributesValues );
358
+ }
359
+ }
360
+
361
+ }
362
+
363
+ } else {
364
+ //@TODO future use
365
+ }
366
+
367
+ }
368
+ return apply_filters(
369
+ 'dgwt/wcas/product/attribute_terms',
370
+ $terms,
371
+ $this->productID,
372
+ $this
373
+ );
374
+ }
375
+
376
+ /**
377
+ * Get product language
378
+ *
379
+ * @return string
380
+ */
381
+ public function getLanguage()
382
+ {
383
+ return $this->langCode;
384
+ }
385
+
386
+ /**
387
+ * Get custom field value
388
+ *
389
+ * @param string $metaKey
390
+ *
391
+ * @return string
392
+ */
393
+ public function getCustomField( $metaKey )
394
+ {
395
+ return get_post_meta( $this->productID, $metaKey, true );
396
+ }
397
+
398
+ /**
399
+ * Get brand name
400
+ *
401
+ * @return string
402
+ */
403
+ public function getBrand()
404
+ {
405
+ $brand = '';
406
+ $taxonomy = DGWT_WCAS()->brands->getBrandTaxonomy();
407
+
408
+ if ( !empty($taxonomy) ) {
409
+ $terms = get_the_terms( $this->productID, $taxonomy );
410
+ if ( $terms && !is_wp_error( $terms ) ) {
411
+ $brand = ( !empty($terms[0]->name) ? $terms[0]->name : '' );
412
+ }
413
+ }
414
+
415
+ return $brand;
416
+ }
417
+
418
+ /**
419
+ * Get terms form specific taxonomy
420
+ *
421
+ * @param $taxonomy
422
+ * @param $format output format
423
+ *
424
+ * @return string
425
+ *
426
+ */
427
+ public function getTerms( $taxonomy = 'product_cat', $format = 'array' )
428
+ {
429
+ $items = array();
430
+
431
+ if ( !empty($taxonomy) ) {
432
+ $terms = get_the_terms( $this->productID, $taxonomy );
433
+ if ( !empty($terms) && is_array( $terms ) ) {
434
+ foreach ( $terms as $term ) {
435
+ if ( !empty($term->name) ) {
436
+
437
+ if ( apply_filters( 'dgwt/wcas/tnt/source_query/term_description', false ) && !empty($term->description) ) {
438
+ $items[] = $term->name . ' | ' . $term->description;
439
+ } else {
440
+ $items[] = $term->name;
441
+ }
442
+
443
+ }
444
+ }
445
+ }
446
+ }
447
+
448
+ return ( $format === 'string' ? implode( ' | ', $items ) : $items );
449
+ }
450
+
451
+ /**
452
+ * Check, if class is initialized correctly
453
+ * @return bool
454
+ */
455
+ public function isValid()
456
+ {
457
+ $isValid = false;
458
+ if ( is_a( $this->wcProduct, 'WC_Product' ) ) {
459
+ $isValid = true;
460
+ }
461
+ return $isValid;
462
+ }
463
+
464
+ /**
465
+ * WooCommerce raw product object
466
+ *
467
+ * @return \WC_Product
468
+ */
469
+ public function getWooObject()
470
+ {
471
+ return $this->wcProduct;
472
+ }
473
+
474
+ /**
475
+ * Get custom attributes
476
+ *
477
+ * for external use
478
+ *
479
+ * @param int productID
480
+ *
481
+ * @return array
482
+ */
483
+ public static function getCustomAttributes( $productID )
484
+ {
485
+ global $wpdb ;
486
+ $terms = array();
487
+ $sql = $wpdb->prepare( "SELECT meta_value\n FROM {$wpdb->postmeta}\n WHERE post_id = %d\n AND meta_key = '_product_attributes'\n ", $productID );
488
+ $optValue = $wpdb->get_var( $sql );
489
+
490
+ if ( !empty($optValue) && strpos( $optValue, 'a:' ) === 0 ) {
491
+ $rawAttributes = unserialize( $optValue );
492
+
493
+ if ( is_array( $rawAttributes ) && !empty($rawAttributes) ) {
494
+ $rawAttributes = apply_filters( 'dgwt/wcas/product/custom_attributes', $rawAttributes, $productID );
495
+ foreach ( $rawAttributes as $rawAttribute ) {
496
+
497
+ if ( array_key_exists( 'is_taxonomy', $rawAttribute ) && $rawAttribute['is_taxonomy'] == 0 && !empty($rawAttribute['value']) ) {
498
+ $partTerms = explode( ' | ', $rawAttribute['value'] );
499
+ $terms = array_merge( $terms, $partTerms );
500
+ }
501
+
502
+ }
503
+ }
504
+
505
+ }
506
+
507
+ return $terms;
508
+ }
509
+
510
+ /**
511
+ * Get product currency
512
+ *
513
+ * @return string
514
+ */
515
+ public function getCurrency()
516
+ {
517
+ $currency = get_woocommerce_currency();
518
+
519
+ if ( Multilingual::isMultilingual() ) {
520
+ $currencyByLang = Multilingual::getCurrencyForLang( $this->getLanguage() );
521
+ if ( !empty($currencyByLang) ) {
522
+ $currency = $currencyByLang;
523
+ }
524
+ }
525
+
526
+ return $currency;
527
+ }
528
+
529
+ /**
530
+ * Stock quantity message
531
+ *
532
+ * @return string
533
+ */
534
+ public function getStockAvailability()
535
+ {
536
+ $html = '';
537
+
538
+ if ( 'yes' === get_option( 'woocommerce_manage_stock' ) && $this->wcProduct->get_manage_stock() ) {
539
+ $data = $this->wcProduct->get_availability();
540
+
541
+ if ( !empty($data) && is_array( $data ) ) {
542
+ $text = ( !empty($data['availability']) ? $data['availability'] : '' );
543
+ $class = ( !empty($data['class']) ? ' ' . $data['class'] : '' );
544
+
545
+ if ( $text ) {
546
+ $html .= '<span class="dgwt-wcas-stock' . $class . '">';
547
+ $html .= $text;
548
+ $html .= '</span>';
549
+ }
550
+
551
+ }
552
+
553
+ }
554
+
555
+ return $html;
556
+ }
557
+
558
+ /**
559
+ * Check product type
560
+ *
561
+ * @return bool
562
+ */
563
+ public function isType( $type )
564
+ {
565
+ return $this->wcProduct->is_type( $type );
566
+ }
567
+
568
+ /**
569
+ * Check if the object was initialized properly
570
+ *
571
+ * @return bool
572
+ */
573
+ public function isCorrect()
574
+ {
575
+ $correct = true;
576
+ if ( empty($this->wcProduct) ) {
577
+ $correct = false;
578
+ }
579
+ return $correct;
580
+ }
581
+
582
+ /**
583
+ * Check if the product is published and visible for catalog or search
584
+ *
585
+ * @return bool
586
+ */
587
+ public function isPublishedAndVisible()
588
+ {
589
+ $result = false;
590
+ if ( !$this->isValid() ) {
591
+ return $result;
592
+ }
593
+ if ( $this->getWooObject()->get_status() === 'publish' ) {
594
+ if ( in_array( $this->getWooObject()->get_catalog_visibility(), array( 'visible', 'search' ) ) ) {
595
+ $result = true;
596
+ }
597
+ }
598
+ return $result;
599
+ }
600
+
601
+ }
includes/Settings.php CHANGED
@@ -4,6 +4,7 @@ namespace DgoraWcas;
4
 
5
  use DgoraWcas\Admin\Promo\Upgrade ;
6
  use DgoraWcas\Admin\SettingsAPI ;
 
7
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Builder ;
8
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Scheduler ;
9
  // Exit if accessed directly
@@ -116,7 +117,7 @@ class Settings
116
  } else {
117
  $sections[30] = array(
118
  'id' => 'dgwt_wcas_performance',
119
- 'title' => Helpers::getSettingsProLabel( __( 'Increase sales', 'ajax-search-for-woocommerce' ), 'header', __( 'by simple tricks', 'ajax-search-for-woocommerce' ) ),
120
  );
121
  }
122
 
@@ -312,7 +313,7 @@ class Settings
312
  'label' => __( 'Limit', 'ajax-search-for-woocommerce' ),
313
  'type' => 'number',
314
  'size' => 'small',
315
- 'desc' => __( 'Maximum number of suggestions', 'ajax-search-for-woocommerce' ),
316
  'default' => 7,
317
  ),
318
  70 => array(
@@ -368,7 +369,7 @@ class Settings
368
  ),
369
  1000 => array(
370
  'name' => 'non_products_in_autocomplete_head',
371
- 'label' => __( 'Non-Products in autocomplete', 'ajax-search-for-woocommerce' ),
372
  'type' => 'head',
373
  'class' => 'dgwt-wcas-sgs-header',
374
  ),
@@ -478,7 +479,7 @@ class Settings
478
  'name' => 'search_in_product_sku',
479
  'label' => __( 'Search in SKU', 'ajax-search-for-woocommerce' ),
480
  'type' => 'checkbox',
481
- 'desc' => ( dgoraAsfwFs()->is_premium() ? __( 'Searching also in variable products SKU', 'ajax-search-for-woocommerce' ) : sprintf( __( 'Searching in variable products SKU is available only in <a target="_blank" href="%s">the pro version</a>.', 'ajax-search-for-woocommerce' ), Upgrade::getUpgradeUrl() ) ),
482
  'default' => 'off',
483
  ),
484
  200 => array(
@@ -511,7 +512,7 @@ class Settings
511
  ),
512
  350 => array(
513
  'name' => 'exclude_out_of_stock',
514
- 'label' => __( "Exclude 'out of stock' products", 'ajax-search-for-woocommerce' ),
515
  'type' => 'checkbox',
516
  'default' => 'off',
517
  ),
@@ -529,9 +530,9 @@ class Settings
529
  ),
530
  520 => array(
531
  'name' => 'search_synonyms',
532
- 'label' => __( 'Synonyms', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'synonyms', __( "Synonyms feature allows your users to find more relevant results. If your products have alternative names and users often misspelling them, consider adding synonyms.", 'ajax-search-for-woocommerce' ) ),
533
  'type' => 'textarea',
534
- 'desc' => __( 'Synonyms should be separated by a comma. Each new synonyms group in the new line. You can use a phrase instead of a single word. <br /> <br />Sample list:<br /> <br /><span class="dgwt-wcas-synonyms-sample">sofa, couch, davenport, divan, settee<br />big, grand, great, large, outsize</span>', 'ajax-search-for-woocommerce' ),
535
  'class' => 'dgwt-wcas-settings-synonyms js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
536
  ),
537
  600 => array(
@@ -568,13 +569,13 @@ class Settings
568
  ),
569
  100 => array(
570
  'name' => 'indexer_schedule_head',
571
- 'label' => __( 'Scheduling Indexing', 'ajax-search-for-woocommerce' ),
572
  'type' => 'head',
573
  'class' => 'dgwt-wcas-sgs-header js-dgwt-wcas-adv-settings',
574
  ),
575
  110 => array(
576
  'name' => 'indexer_schedule',
577
- 'label' => __( 'Enable Scheduler', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'indexer-schedule', __( "I most cases you don't need to use the scheduler because The search index is updating when you edit products. If you use import tools or custom code to refresh prices or bulk add/edit products, the indexing scheduler will be helpful.", 'ajax-search-for-woocommerce' ) ),
578
  'type' => 'checkbox',
579
  'size' => 'small',
580
  'class' => 'dgwt-wcas-options-cb-toggle js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
@@ -586,14 +587,14 @@ class Settings
586
  'type' => 'select',
587
  'class' => 'js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
588
  'options' => array(
589
- 'daily' => __( 'Daily', 'ajax-search-for-woocommerce' ),
590
- 'weekly' => __( 'Weekly', 'ajax-search-for-woocommerce' ),
591
  ),
592
  'default' => 'weekly',
593
  ),
594
  130 => array(
595
  'name' => 'indexer_schedule_start_time',
596
- 'label' => __( 'What time to rebuild the index?', 'ajax-search-for-woocommerce' ),
597
  'type' => 'select',
598
  'class' => 'js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
599
  'options' => Helpers::getHours(),
@@ -602,7 +603,7 @@ class Settings
602
  ) ),
603
  );
604
  $fuzzinesText1 = '<strong>' . __( 'Increases sales conversions', 'ajax-search-for-woocommerce' ) . '</strong>';
605
- $fuzzinesText2 = __( 'Returns suggestions based on likely relevance even though a search keyword may not exactly match. E.g if you type "ipho<b>m</b>e" you get the same results as for "iphone"', 'ajax-search-for-woocommerce' );
606
 
607
  if ( dgoraAsfwFs()->is_premium() ) {
608
  } else {
@@ -631,6 +632,30 @@ class Settings
631
  );
632
  }
633
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
634
  foreach ( $settingsFields as $key => $sections ) {
635
  foreach ( $sections as $option ) {
636
  if ( !empty($option['name']) ) {
4
 
5
  use DgoraWcas\Admin\Promo\Upgrade ;
6
  use DgoraWcas\Admin\SettingsAPI ;
7
+ use DgoraWcas\Admin\Promo\FeedbackNotice ;
8
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Builder ;
9
  use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Scheduler ;
10
  // Exit if accessed directly
117
  } else {
118
  $sections[30] = array(
119
  'id' => 'dgwt_wcas_performance',
120
+ 'title' => Helpers::getSettingsProLabel( __( 'Increase sales', 'ajax-search-for-woocommerce' ), 'header', __( 'with simple tricks', 'ajax-search-for-woocommerce' ) ),
121
  );
122
  }
123
 
313
  'label' => __( 'Limit', 'ajax-search-for-woocommerce' ),
314
  'type' => 'number',
315
  'size' => 'small',
316
+ 'desc' => __( 'maximum number of suggestions', 'ajax-search-for-woocommerce' ),
317
  'default' => 7,
318
  ),
319
  70 => array(
369
  ),
370
  1000 => array(
371
  'name' => 'non_products_in_autocomplete_head',
372
+ 'label' => __( 'Non-products in autocomplete', 'ajax-search-for-woocommerce' ),
373
  'type' => 'head',
374
  'class' => 'dgwt-wcas-sgs-header',
375
  ),
479
  'name' => 'search_in_product_sku',
480
  'label' => __( 'Search in SKU', 'ajax-search-for-woocommerce' ),
481
  'type' => 'checkbox',
482
+ 'desc' => ( dgoraAsfwFs()->is_premium() ? __( 'searching also in variable products SKU', 'ajax-search-for-woocommerce' ) : sprintf( __( 'Searching in variable products SKU is available only in <a target="_blank" href="%s">the pro version</a>.', 'ajax-search-for-woocommerce' ), Upgrade::getUpgradeUrl() ) ),
483
  'default' => 'off',
484
  ),
485
  200 => array(
512
  ),
513
  350 => array(
514
  'name' => 'exclude_out_of_stock',
515
+ 'label' => __( "Exclude out of stock products", 'ajax-search-for-woocommerce' ),
516
  'type' => 'checkbox',
517
  'default' => 'off',
518
  ),
530
  ),
531
  520 => array(
532
  'name' => 'search_synonyms',
533
+ 'label' => __( 'Synonyms', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'synonyms', __( "The synonyms feature allows your users to find more relevant results. If your products have alternative names and users often misspell them, consider adding synonyms.", 'ajax-search-for-woocommerce' ) ),
534
  'type' => 'textarea',
535
+ 'desc' => __( 'Synonyms should be separated by a comma. Each new synonyms group is entered on a new line. You can use a phrase instead of a single word. <br /> <br />Sample list:<br /> <br /><span class="dgwt-wcas-synonyms-sample">sofa, couch, davenport, divan, settee<br />big, grand, great, large, outsize</span>', 'ajax-search-for-woocommerce' ),
536
  'class' => 'dgwt-wcas-settings-synonyms js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
537
  ),
538
  600 => array(
569
  ),
570
  100 => array(
571
  'name' => 'indexer_schedule_head',
572
+ 'label' => __( 'Scheduling indexing', 'ajax-search-for-woocommerce' ),
573
  'type' => 'head',
574
  'class' => 'dgwt-wcas-sgs-header js-dgwt-wcas-adv-settings',
575
  ),
576
  110 => array(
577
  'name' => 'indexer_schedule',
578
+ 'label' => __( 'Enable Scheduler', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'indexer-schedule', __( "In most cases, you don't need to use the scheduler because the search index updates when you edit products. If you use import tools or custom code to refresh prices or bulk add/edit products, the indexing scheduler will be helpful.", 'ajax-search-for-woocommerce' ) ),
579
  'type' => 'checkbox',
580
  'size' => 'small',
581
  'class' => 'dgwt-wcas-options-cb-toggle js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
587
  'type' => 'select',
588
  'class' => 'js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
589
  'options' => array(
590
+ 'daily' => __( 'daily', 'ajax-search-for-woocommerce' ),
591
+ 'weekly' => __( 'weekly', 'ajax-search-for-woocommerce' ),
592
  ),
593
  'default' => 'weekly',
594
  ),
595
  130 => array(
596
  'name' => 'indexer_schedule_start_time',
597
+ 'label' => __( 'Schedule time', 'ajax-search-for-woocommerce' ),
598
  'type' => 'select',
599
  'class' => 'js-dgwt-wcas-cbtgroup-indexer-schedule js-dgwt-wcas-adv-settings dgwt-wcas-premium-only',
600
  'options' => Helpers::getHours(),
603
  ) ),
604
  );
605
  $fuzzinesText1 = '<strong>' . __( 'Increases sales conversions', 'ajax-search-for-woocommerce' ) . '</strong>';
606
+ $fuzzinesText2 = __( 'returns suggestions based on likely relevance, even though a search keyword may not exactly match. E.g if you type ipho<b>m</b>e you get the same results as for iphone', 'ajax-search-for-woocommerce' );
607
 
608
  if ( dgoraAsfwFs()->is_premium() ) {
609
  } else {
632
  );
633
  }
634
 
635
+ // Show info about rebranding
636
+ // Show info for all users with install date < Fri Mar 12 2021 22:59:00 GMT+0000
637
+ // @TODO Remove it in March 2022
638
+ $installDate = get_option( FeedbackNotice::ACTIVATION_DATE_OPT );
639
+
640
+ if ( !empty($installDate) && is_numeric( $installDate ) && $installDate < 1615589940 ) {
641
+ $settingsFields['dgwt_wcas_basic'][5] = array(
642
+ 'name' => 'rebranding_head',
643
+ 'label' => __( 'News', 'ajax-search-for-woocommerce' ),
644
+ 'type' => 'head',
645
+ 'class' => 'dgwt-wcas-sgs-header',
646
+ );
647
+ $desc = __( 'AJAX Search for WooCommerce rebrands to FiboSearch', 'ajax-search-for-woocommerce' ) . '. ';
648
+ $desc .= '<a href="https://fibosearch.com/ajax-search-for-woocommerce-rebrands-to-fibosearch/" target="_blank">';
649
+ $desc .= __( 'Read more', 'ajax-search-for-woocommerce' ) . '.';
650
+ $desc .= '</a>';
651
+ $settingsFields['dgwt_wcas_basic'][6] = array(
652
+ 'name' => 'rebranding_desc',
653
+ 'label' => __( 'New plugin name', 'ajax-search-for-woocommerce' ),
654
+ 'type' => 'desc',
655
+ 'desc' => $desc,
656
+ );
657
+ }
658
+
659
  foreach ( $settingsFields as $key => $sections ) {
660
  foreach ( $sections as $option ) {
661
  if ( !empty($option['name']) ) {
includes/Shortcode.php CHANGED
@@ -12,6 +12,7 @@ class Shortcode {
12
  public static function register() {
13
 
14
  add_shortcode( 'wcas-search-form', array( __CLASS__, 'addBody' ) );
 
15
 
16
  }
17
 
@@ -20,8 +21,7 @@ class Shortcode {
20
  *
21
  * @param array $atts bool show_details_box
22
  */
23
- public static function addBody( $atts = array() ) {
24
-
25
  $layout = Helpers::getLayoutSettings();
26
 
27
  $searchArgs = shortcode_atts( array(
@@ -29,7 +29,7 @@ class Shortcode {
29
  'layout' => $layout->layout,
30
  'mobile_overlay' => $layout->mobile_overlay,
31
  'details_box' => 'hide'
32
- ), $atts, 'wcas-search-form' );
33
 
34
  $searchArgs['class'] .= empty( $search_args['class'] ) ? 'woocommerce' : ' woocommerce';
35
 
12
  public static function register() {
13
 
14
  add_shortcode( 'wcas-search-form', array( __CLASS__, 'addBody' ) );
15
+ add_shortcode( 'fibosearch', array( __CLASS__, 'addBody' ) );
16
 
17
  }
18
 
21
  *
22
  * @param array $atts bool show_details_box
23
  */
24
+ public static function addBody( $atts, $content, $tag ) {
 
25
  $layout = Helpers::getLayoutSettings();
26
 
27
  $searchArgs = shortcode_atts( array(
29
  'layout' => $layout->layout,
30
  'mobile_overlay' => $layout->mobile_overlay,
31
  'details_box' => 'hide'
32
+ ), $atts, $tag );
33
 
34
  $searchArgs['class'] .= empty( $search_args['class'] ) ? 'woocommerce' : ' woocommerce';
35
 
languages/ajax-search-for-woocommerce.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2020-10-21 12:17+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: Damian Góra <wp@damiangora.com>\n"
9
  "Language-Team: \n"
@@ -14,1583 +14,1780 @@ msgstr ""
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
- #: ajax-search-for-woocommerce.php:216
18
  msgid ""
19
- "<b>AJAX Search for WooCommerce</b>: You need PHP version at least 5.3 to run "
20
- "this plugin. You are currently using PHP version "
 
21
  msgstr ""
22
 
23
- #: ajax-search-for-woocommerce.php:239
24
  msgid ""
25
- "<b>AJAX Search for WooCommerce</b>: You need PHP version at least 5.5 to run "
26
- "this plugin. You are currently using PHP version "
27
  msgstr ""
28
 
29
- #: ajax-search-for-woocommerce.php:268
30
  #, php-format
31
- msgid ""
32
- "<b>AJAX Search for WooCommerce</b>:<br /> Your PHP version <b><i>%s</i></b> "
33
- "will not longer supported in the next plugin releases."
34
  msgstr ""
35
 
36
- #: ajax-search-for-woocommerce.php:270
37
- msgid ""
38
- " You have to update your PHP version to least 5.5 (recommended 7.2 or "
39
- "greater)."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  msgstr ""
41
 
42
- #: ajax-search-for-woocommerce.php:273
43
  msgid ""
44
- "If you cannot upgrade your PHP version yourself, you can send an email to "
45
- "your host."
46
  msgstr ""
47
 
48
- #: ajax-search-for-woocommerce.php:276
49
  msgid ""
50
- "If you do not upgrade the php version, the next plugin release will not work!"
 
51
  msgstr ""
52
 
53
- #: ajax-search-for-woocommerce.php:281
54
- msgid "Remind me again in week."
55
  msgstr ""
56
 
57
- #: ajax-search-for-woocommerce.php:303
58
- #, php-format
59
- msgid ""
60
- "<b>AJAX Search for WooCommerce</b> is enabled but not effective. It requires "
61
- "%s in order to work."
62
  msgstr ""
63
 
64
- #: widget.php:25
65
- msgid "AJAX (live) search form for WooCommerce"
66
  msgstr ""
67
 
68
- #: widget.php:27 includes/EmbeddingViaMenu.php:55
69
- #: includes/EmbeddingViaMenu.php:156
70
- msgid "AJAX Search bar"
71
  msgstr ""
72
 
73
- #: widget.php:32
74
- msgid "Title"
 
 
75
  msgstr ""
76
 
77
- #: widget.php:38 includes/EmbeddingViaMenu.php:186
78
- msgid "Default"
 
79
  msgstr ""
80
 
81
- #: widget.php:39 includes/Settings.php:225 includes/EmbeddingViaMenu.php:187
82
- msgid "Search bar only"
 
83
  msgstr ""
84
 
85
- #: widget.php:40 includes/Settings.php:226 includes/Settings.php:257
86
- #: includes/EmbeddingViaMenu.php:188
87
- msgid "Search icon"
88
  msgstr ""
89
 
90
- #: widget.php:41 includes/Settings.php:227 includes/EmbeddingViaMenu.php:189
91
- msgid "Icon on mobile, search bar on desktop"
 
92
  msgstr ""
93
 
94
- #: widget.php:43 includes/Settings.php:222 includes/EmbeddingViaMenu.php:74
95
- msgid "Layout"
 
 
96
  msgstr ""
97
 
98
- #: partials/search-form.php:30 partials/admin/search-preview.php:34
99
- msgid "Products search"
 
 
100
  msgstr ""
101
 
102
- #: includes/Settings.php:105
103
- msgid "Starting"
 
 
104
  msgstr ""
105
 
106
- #: includes/Settings.php:109 includes/EmbeddingViaMenu.php:247
107
- #: partials/admin/search-preview.php:23
108
- msgid "Search bar"
109
  msgstr ""
110
 
111
- #: includes/Settings.php:113 partials/admin/search-preview.php:24
112
- msgid "Autocomplete"
 
113
  msgstr ""
114
 
115
- #: includes/Settings.php:117
116
- msgid "Search config"
 
117
  msgstr ""
118
 
119
- #: includes/Settings.php:124
120
- msgid "Indexer"
 
 
121
  msgstr ""
122
 
123
- #: includes/Settings.php:130
124
- msgid "Increase sales"
 
 
125
  msgstr ""
126
 
127
- #: includes/Settings.php:132
128
- msgid "by simple tricks"
 
 
129
  msgstr ""
130
 
131
- #: includes/Settings.php:156
132
- msgid "How to add search bar in your theme?"
 
 
133
  msgstr ""
134
 
135
- #: includes/Settings.php:162
136
- msgid "How to add?"
 
137
  msgstr ""
138
 
139
- #: includes/Settings.php:171 includes/Settings.php:321
140
- msgid "Basic"
 
 
141
  msgstr ""
142
 
143
- #: includes/Settings.php:177
144
- msgid "Minimum characters"
 
145
  msgstr ""
146
 
147
- #: includes/Settings.php:181
148
- msgid "Min characters to show autocomplete"
 
149
  msgstr ""
150
 
151
- #: includes/Settings.php:186
152
- msgid "Max form width"
 
153
  msgstr ""
154
 
155
- #: includes/Settings.php:189
156
- msgid "To set 100% width leave blank"
 
 
157
  msgstr ""
158
 
159
- #: includes/Settings.php:195
160
- msgid "Show submit button"
 
161
  msgstr ""
162
 
163
- #: includes/Settings.php:203
164
- msgid "Submit label"
 
165
  msgstr ""
166
 
167
- #: includes/Settings.php:203
168
- msgid "To display the magnifier icon leave this field empty."
 
 
169
  msgstr ""
170
 
171
- #: includes/Settings.php:206
172
- msgid "Search"
173
  msgstr ""
174
 
175
- #: includes/Settings.php:210
176
- msgid "Search input placeholder"
177
  msgstr ""
178
 
179
- #: includes/Settings.php:212 includes/Helpers.php:998
180
- msgid "Search for products..."
181
  msgstr ""
182
 
183
- #: includes/Settings.php:216
184
- msgid "Layout (beta)"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
185
  msgstr ""
186
 
187
- #: includes/Settings.php:234
188
- msgid "Overlay on mobile"
 
 
 
189
  msgstr ""
190
 
191
- #: includes/Settings.php:235
192
- msgid "The search will open in overlay on mobile"
193
  msgstr ""
194
 
195
- #: includes/Settings.php:242
196
- msgid "Mobile breakpoint"
197
  msgstr ""
198
 
199
- #: includes/Settings.php:243
200
- msgid "px"
 
 
 
 
201
  msgstr ""
202
 
203
- #: includes/Settings.php:251
204
- msgid "Colors"
 
 
205
  msgstr ""
206
 
207
- #: includes/Settings.php:264
208
- msgid "Search input background"
 
209
  msgstr ""
210
 
211
- #: includes/Settings.php:271
212
- msgid "Search input text"
 
213
  msgstr ""
214
 
215
- #: includes/Settings.php:278
216
- msgid "Search input border"
217
  msgstr ""
218
 
219
- #: includes/Settings.php:285
220
- msgid "Search submit background"
 
221
  msgstr ""
222
 
223
- #: includes/Settings.php:292
224
- msgid "Search submit text"
225
  msgstr ""
226
 
227
- #: includes/Settings.php:299
228
- msgid "Preloader"
229
  msgstr ""
230
 
231
- #: includes/Settings.php:305
232
- msgid "Show preloader"
233
  msgstr ""
234
 
235
- #: includes/Settings.php:312
236
- msgid "Upload preloader image"
237
  msgstr ""
238
 
239
- #: includes/Settings.php:327
240
- msgid "Limit"
 
 
 
 
241
  msgstr ""
242
 
243
- #: includes/Settings.php:330
244
- msgid "Maximum number of suggestions"
 
245
  msgstr ""
246
 
247
- #: includes/Settings.php:335
248
- msgid "Group results"
249
  msgstr ""
250
 
251
- #: includes/Settings.php:343
252
- msgctxt "admin"
253
- msgid "No results label"
254
  msgstr ""
255
 
256
- #: includes/Settings.php:345 includes/Helpers.php:995
257
- msgid "No results"
258
  msgstr ""
259
 
260
- #: includes/Settings.php:349 partials/admin/indexer-body.php:58
261
- msgid "Products"
 
262
  msgstr ""
263
 
264
- #: includes/Settings.php:355
265
- msgid "Show product image"
266
  msgstr ""
267
 
268
- #: includes/Settings.php:361
269
- msgid "Show price"
270
  msgstr ""
271
 
272
- #: includes/Settings.php:367
273
- msgid "Show product description"
274
  msgstr ""
275
 
276
- #: includes/Settings.php:374
277
- msgid "Show SKU"
278
  msgstr ""
279
 
280
- #: includes/Settings.php:392
281
- msgid "More results label"
 
 
 
 
282
  msgstr ""
283
 
284
- #: includes/Settings.php:394 includes/Helpers.php:996 includes/Helpers.php:997
285
- msgid "See all products..."
286
  msgstr ""
287
 
288
- #: includes/Settings.php:398
289
- msgid "Non-Products in autocomplete"
290
  msgstr ""
291
 
292
- #: includes/Settings.php:404
293
- msgid "Show categories"
294
  msgstr ""
295
 
296
- #: includes/Settings.php:411
297
- msgid "Show tags"
298
  msgstr ""
299
 
300
- #: includes/Settings.php:418
301
- msgid "Show posts"
302
  msgstr ""
303
 
304
- #: includes/Settings.php:425
305
- msgid "Show pages"
306
  msgstr ""
307
 
308
- #: includes/Settings.php:432
309
  msgid "Details panel"
310
  msgstr ""
311
 
312
- #: includes/Settings.php:438
313
- msgid "Show Details panel"
314
  msgstr ""
315
 
316
- #: includes/Settings.php:439
 
317
  msgid ""
318
- "The Details panel is an additional container for extended information. The "
319
- "details are changed dynamically when a user mouse over one of the "
320
- "suggestions."
321
  msgstr ""
322
 
323
- #: includes/Settings.php:486
324
- msgid "Suggestions colors"
 
 
325
  msgstr ""
326
 
327
- #: includes/Settings.php:492
328
- msgid "Suggestion background"
329
  msgstr ""
330
 
331
- #: includes/Settings.php:499
332
- msgid "Suggestion selected"
 
333
  msgstr ""
334
 
335
- #: includes/Settings.php:506
336
- msgid "Text color"
337
  msgstr ""
338
 
339
- #: includes/Settings.php:513
340
- msgid "Highlight color"
341
  msgstr ""
342
 
343
- #: includes/Settings.php:520
344
- msgid "Border color"
345
  msgstr ""
346
 
347
- #: includes/Settings.php:529
348
- msgid "Products search scope"
349
  msgstr ""
350
 
351
- #: includes/Settings.php:535
352
- msgid "Search in description"
353
- msgstr ""
354
-
355
- #: includes/Settings.php:541
356
- msgid "Search in short description"
357
  msgstr ""
358
 
359
- #: includes/Settings.php:547
360
- msgid "Search in SKU"
361
  msgstr ""
362
 
363
- #: includes/Settings.php:549
364
- msgid "Searching also in variable products SKU"
365
  msgstr ""
366
 
367
- #: includes/Settings.php:550
368
- #, php-format
369
- msgid ""
370
- "Searching in variable products SKU is available only in <a target=\"_blank\" "
371
- "href=\"%s\">the pro version</a>."
372
  msgstr ""
373
 
374
- #: includes/Settings.php:556 partials/admin/features.php:23
375
- msgid "Search in attributes"
 
376
  msgstr ""
377
 
378
- #: includes/Settings.php:563 partials/admin/features.php:24
379
- msgid "Search in categories"
380
  msgstr ""
381
 
382
- #: includes/Settings.php:570 partials/admin/features.php:25
383
- msgid "Search in tags"
384
  msgstr ""
385
 
386
- #: includes/Settings.php:577 includes/Settings.php:668
387
- #: partials/admin/features.php:22
388
- msgid "Search in custom fields"
 
389
  msgstr ""
390
 
391
- #: includes/Settings.php:584
392
- msgid "Exclude 'out of stock' products"
393
  msgstr ""
394
 
395
- #: includes/Settings.php:590
396
- msgid "Fuzziness"
 
397
  msgstr ""
398
 
399
- #: includes/Settings.php:596 includes/Settings.php:602
400
- #: partials/admin/features.php:29
401
- msgid "Synonyms"
402
  msgstr ""
403
 
404
- #: includes/Settings.php:603
405
- msgid ""
406
- "Synonyms feature allows your users to find more relevant results. If your "
407
- "products have alternative names and users often misspelling them, consider "
408
- "adding synonyms."
409
  msgstr ""
410
 
411
- #: includes/Settings.php:605
412
- msgid ""
413
- "Synonyms should be separated by a comma. Each new synonyms group in the new "
414
- "line. You can use a phrase instead of a single word. <br /> <br />Sample "
415
- "list:<br /> <br /><span class=\"dgwt-wcas-synonyms-sample\">sofa, couch, "
416
- "davenport, divan, settee<br />big, grand, great, large, outsize</span>"
417
  msgstr ""
418
 
419
- #: includes/Settings.php:613
420
- msgid "Pro features"
421
  msgstr ""
422
 
423
- #: includes/Settings.php:619
424
- msgid "Speed up search!"
425
  msgstr ""
426
 
427
- #: includes/Settings.php:626
428
- msgid "Scheduling Indexing"
429
  msgstr ""
430
 
431
- #: includes/Settings.php:632
432
- msgid "Enable Scheduler"
 
 
 
 
433
  msgstr ""
434
 
435
- #: includes/Settings.php:633
436
  msgid ""
437
- "I most cases you don't need to use the scheduler because The search index is "
438
- "updating when you edit products. If you use import tools or custom code to "
439
- "refresh prices or bulk add/edit products, the indexing scheduler will be "
440
- "helpful."
441
  msgstr ""
442
 
443
- #: includes/Settings.php:641
444
- msgid "Interval"
 
 
 
445
  msgstr ""
446
 
447
- #: includes/Settings.php:645
448
- msgid "Daily"
 
 
 
 
449
  msgstr ""
450
 
451
- #: includes/Settings.php:646
452
- msgid "Weekly"
 
 
 
453
  msgstr ""
454
 
455
- #: includes/Settings.php:652
456
- msgid "What time to rebuild the index?"
 
 
 
 
457
  msgstr ""
458
 
459
- #: includes/Settings.php:661
460
- msgid "Increases sales conversions"
 
 
 
 
461
  msgstr ""
462
 
463
- #: includes/Settings.php:662
 
464
  msgid ""
465
- "Returns suggestions based on likely relevance even though a search keyword "
466
- "may not exactly match. E.g if you type \"ipho<b>m</b>e\" you get the same "
467
- "results as for \"iphone\""
468
  msgstr ""
469
 
470
- #: includes/Settings.php:671
471
- msgid "Select the custom fields you want to add to the search scope"
 
472
  msgstr ""
473
 
474
- #: includes/Settings.php:676 includes/Settings.php:694
475
- msgid "Fuzzy matching"
476
  msgstr ""
477
 
478
- #: includes/Settings.php:681 includes/Settings.php:699
479
- msgid "-- Disabled"
480
  msgstr ""
481
 
482
- #: includes/Settings.php:682 includes/Settings.php:700
483
- msgid "Soft"
 
 
484
  msgstr ""
485
 
486
- #: includes/Settings.php:683 includes/Settings.php:701
487
- msgid "Normal"
488
  msgstr ""
489
 
490
- #: includes/Settings.php:684 includes/Settings.php:702
491
  msgid "Hard"
492
  msgstr ""
493
 
494
- #: includes/Settings.php:714 includes/Settings.php:725
495
- msgid "Index status"
496
  msgstr ""
497
 
498
- #: includes/Helpers.php:487 includes/Helpers.php:491
499
- msgid "Pro"
 
 
 
500
  msgstr ""
501
 
502
- #: includes/Helpers.php:981
503
- msgid "Brand"
 
 
 
504
  msgstr ""
505
 
506
- #: includes/Helpers.php:987
507
- msgid "Brands"
508
  msgstr ""
509
 
510
- #: includes/Helpers.php:993
511
- msgctxt "in categories fe. in Books > Crime stories"
512
- msgid "in"
513
  msgstr ""
514
 
515
- #: includes/Helpers.php:994
516
- msgid "continue reading"
517
  msgstr ""
518
 
519
- #: includes/EmbeddingViaMenu.php:86
520
- msgid "Search icon color"
521
  msgstr ""
522
 
523
- #: includes/EmbeddingViaMenu.php:150
524
- msgid "Add AJAX search bar as a menu item."
 
 
 
525
  msgstr ""
526
 
527
- #: includes/EmbeddingViaMenu.php:178
528
- msgid "AJAX search bar will be displayed here."
529
  msgstr ""
530
 
531
- #: partials/admin/indexer-header.php:16
532
- #, php-format
533
- msgid "Indexed <strong>100&#37;</strong>, <strong>%d products</strong>."
 
534
  msgstr ""
535
 
536
- #: partials/admin/indexer-header.php:20
537
- #, php-format
538
- msgid "Last build %s"
539
  msgstr ""
540
 
541
- #: partials/admin/indexer-header.php:21
542
- msgid "All products changes will be <strong>re-indexed automatically</strong>"
 
 
 
543
  msgstr ""
544
 
545
- #: partials/admin/indexer-header.php:29 includes/Admin/Troubleshooting.php:45
546
- #: includes/Admin/Troubleshooting.php:64
547
- msgid "Troubleshooting"
548
  msgstr ""
549
 
550
- #: partials/admin/indexer-header.php:31
551
- #, php-format
552
- msgid "First try to <a class=\"%s\" href=\"#\">build the index again</a>"
553
  msgstr ""
554
 
555
- #: partials/admin/indexer-header.php:32
556
- #, php-format
557
  msgid ""
558
- "Go to <a target=\"_blank\" href=\"%s\">WooCommerce -> Status -> section "
559
- "\"AJAX Search for WooCommerce Pro\"</a>. Is everything green?"
 
 
560
  msgstr ""
561
 
562
- #: partials/admin/indexer-header.php:33
563
- #, php-format
564
  msgid ""
565
- "Go to <a target=\"_blank\" href=\"%s\">WooCommerce -> Status -> Logs (tab)"
566
- "</a>. Open last \"fatal-errors...\". Look for a phrase \"ajax-search-for-"
567
- "woocommerce\". Did you find anything significant?"
568
  msgstr ""
569
 
570
- #: partials/admin/indexer-header.php:35
571
- #, php-format
572
  msgid ""
573
- "Is it still not working? Write a <a target=\"_blank\" href=\"%s\">support "
574
- "request</a>."
575
  msgstr ""
576
 
577
- #: partials/admin/indexer-header.php:44
578
- #: partials/admin/indexer-header-demo.php:16
579
- msgid "Show details"
580
  msgstr ""
581
 
582
- #: partials/admin/indexer-header.php:45
583
- msgid "Hide details"
 
584
  msgstr ""
585
 
586
- #: partials/admin/indexer-body.php:16
587
- msgid ""
588
- "Indexing... This process will continue in the background. You can leave this "
589
- "page."
 
 
590
  msgstr ""
591
 
592
  #: partials/admin/indexer-body.php:18
593
  msgid "Index build progress"
594
  msgstr ""
595
 
596
- #: partials/admin/indexer-body.php:21
597
- #, php-format
598
- msgid "Finalization... Wait a moment. (%s products)"
599
  msgstr ""
600
 
601
- #: partials/admin/indexer-body.php:25
602
- msgid "Cancellation..."
603
  msgstr ""
604
 
605
- #: partials/admin/indexer-body.php:42
606
- msgid "Build ID"
607
  msgstr ""
608
 
609
- #: partials/admin/indexer-body.php:46
610
- msgid "DB"
 
611
  msgstr ""
612
 
613
- #: partials/admin/indexer-body.php:50
614
- msgid "Index build start"
615
  msgstr ""
616
 
617
- #: partials/admin/indexer-body.php:54
618
- msgid "Status"
 
 
619
  msgstr ""
620
 
621
- #: partials/admin/indexer-body.php:63
622
- msgid "Posts & pages"
623
  msgstr ""
624
 
625
- #: partials/admin/indexer-body.php:68
626
- msgid "Searchable"
627
  msgstr ""
628
 
629
- #: partials/admin/indexer-body.php:72 partials/admin/indexer-body.php:95
630
- #: partials/admin/indexer-body.php:120
631
- msgid "Start"
 
 
 
632
  msgstr ""
633
 
634
- #: partials/admin/indexer-body.php:76 partials/admin/indexer-body.php:99
635
- #: partials/admin/indexer-body.php:124
636
- msgid "End"
 
637
  msgstr ""
638
 
639
- #: partials/admin/indexer-body.php:81 partials/admin/indexer-body.php:104
640
- #: partials/admin/indexer-body.php:129
641
- msgid "Time"
642
  msgstr ""
643
 
644
- #: partials/admin/indexer-body.php:90
645
- msgid "Readable"
 
 
 
646
  msgstr ""
647
 
648
- #: partials/admin/indexer-body.php:115
649
- msgid "Taxonomies"
650
  msgstr ""
651
 
652
- #: partials/admin/indexer-body.php:143
653
- msgid "Logs"
 
654
  msgstr ""
655
 
656
- #: partials/admin/settings.php:25
657
- msgid "AJAX Search for WooCommerce (PRO) Settings"
658
  msgstr ""
659
 
660
- #: partials/admin/settings.php:27
661
- msgid "AJAX Search for WooCommerce Settings"
662
  msgstr ""
663
 
664
- #: partials/admin/settings.php:32 partials/admin/settings.php:33
665
- msgid "Show advanced settings"
 
666
  msgstr ""
667
 
668
- #: partials/admin/indexer-header-demo.php:11
669
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:452
670
- msgid "The search index does not exist yet. Build it now."
671
  msgstr ""
672
 
673
- #: partials/admin/indexer-header-demo.php:15
674
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:483
675
- msgid "Build index"
676
  msgstr ""
677
 
678
- #: partials/admin/how-to-use.php:14
679
- msgid "There are four easy ways to display the search bar in your theme"
680
  msgstr ""
681
 
682
- #: partials/admin/how-to-use.php:16
683
- #, php-format
684
- msgid "As a menu item - go to %s and add menu item \"AJAX Search bar\". Done!"
685
  msgstr ""
686
 
687
- #: partials/admin/how-to-use.php:16
688
- msgid "Menu Screen"
689
  msgstr ""
690
 
691
- #: partials/admin/how-to-use.php:17
692
- #, php-format
693
- msgid "Using a shortcode - %s"
 
 
694
  msgstr ""
695
 
696
- #: partials/admin/how-to-use.php:18
697
- #, php-format
698
- msgid "As a widget - go to %s and choose \"AJAX Search bar\""
699
  msgstr ""
700
 
701
- #: partials/admin/how-to-use.php:18
702
- msgid "Widgets Screen"
703
  msgstr ""
704
 
705
- #: partials/admin/how-to-use.php:19
706
- #, php-format
707
- msgid "By PHP - %s"
708
  msgstr ""
709
 
710
- #: partials/admin/how-to-use.php:22
711
- #, php-format
712
- msgid ""
713
- "Are there any difficulties? <b>We will do it for you!</b> We offer free of "
714
- "charge search bar implementation for Pro users. <a target=\"_blank\" "
715
- "href=\"%s\">Become one now!</a>"
716
  msgstr ""
717
 
718
- #: partials/admin/troubleshooting.php:11
719
- msgid "Processing asynchronous tests..."
 
 
720
  msgstr ""
721
 
722
- #: partials/admin/troubleshooting.php:18
723
- msgid ""
724
- "Great! We have not detected any problems that could affect the correct "
725
- "functioning of our plugin."
726
  msgstr ""
727
 
728
- #: partials/admin/troubleshooting.php:22
729
- msgid "Check status again"
730
  msgstr ""
731
 
732
- #: partials/admin/search-preview.php:22
733
- msgid "Preview"
734
  msgstr ""
735
 
736
- #: partials/admin/search-preview.php:74
737
- msgid "Sample brand <strong>name</strong>"
738
  msgstr ""
739
 
740
- #: partials/admin/search-preview.php:87
741
- msgid "Sample category <strong>name</strong>"
742
  msgstr ""
743
 
744
- #: partials/admin/search-preview.php:100
745
- msgid "Sample tag <strong>name</strong>"
 
 
746
  msgstr ""
747
 
748
- #: partials/admin/search-preview.php:113
749
- msgid "Sample post <strong>name</strong>"
750
  msgstr ""
751
 
752
- #: partials/admin/search-preview.php:126
753
- msgid "Sample page <strong>name</strong>"
754
  msgstr ""
755
 
756
- #: partials/admin/search-preview.php:142
757
- msgid "Sample product <strong>name</strong>"
758
  msgstr ""
759
 
760
- #: partials/admin/search-preview.php:144 partials/admin/search-preview.php:189
761
- msgid ""
762
- "Lorem <strong>ipsum</strong> dolor sit amet, consectetur adipiscing elit. "
763
- "Quisque gravida lacus nec diam porttitor pharetra. Nulla facilisi. Proin "
764
- "pharetra imperdiet neque, non varius."
765
  msgstr ""
766
 
767
- #: partials/admin/search-preview.php:178
768
- msgid "Sample product name"
769
  msgstr ""
770
 
771
- #: partials/admin/features.php:14
772
- msgid ""
773
- "If users can’t find the product they’re searching for, they can’t buy it. "
774
- "Help your customers to find the right products even <span>10x faster</span>."
775
  msgstr ""
776
 
777
- #: partials/admin/features.php:16
778
- msgid ""
779
- "Update now and boosts your sales. You will receive <b>14-day satisfaction "
780
- "guarantee</b>. A return on investment will come very quickly."
781
  msgstr ""
782
 
783
- #: partials/admin/features.php:19
784
- msgid ""
785
- "<b>New Ultra-Fast Search Engine</b> – works very fast even with 100,000+ "
786
- "products "
787
  msgstr ""
788
 
789
- #: partials/admin/features.php:20
790
- msgid ""
791
- "Professional and fast <b>help with embedding</b> or <b>replacing</b> the "
792
- "search bar in your theme"
793
  msgstr ""
794
 
795
- #: partials/admin/features.php:21 includes/Admin/Promo/Upgrade.php:49
796
- msgid "Fuzzy search"
797
  msgstr ""
798
 
799
- #: partials/admin/features.php:26
800
- msgid "Search by variation product SKU"
801
  msgstr ""
802
 
803
- #: partials/admin/features.php:27
804
- msgid "Search in brands (WooCommerce Brands or YITH WooCommerce Brands)"
805
  msgstr ""
806
 
807
- #: partials/admin/features.php:28
808
- msgid "Search for posts and pages"
809
  msgstr ""
810
 
811
- #: partials/admin/features.php:30
812
- msgid "Individual customization of the search bar (simple CSS improvements)"
813
  msgstr ""
814
 
815
- #: partials/admin/features.php:31
816
- msgid "And more..."
817
  msgstr ""
818
 
819
- #: partials/admin/features.php:31 includes/Admin/Promo/Upgrade.php:63
820
- msgid "See a comparison of all free and premium features!"
821
  msgstr ""
822
 
823
- #: partials/admin/features.php:33
824
- msgid "Upgrade Now!"
825
  msgstr ""
826
 
827
- #: partials/admin/embedding-in-theme.php:16
828
- #, php-format
829
- msgid "child theme of <b>%s</b>"
830
  msgstr ""
831
 
832
- #: partials/admin/embedding-in-theme.php:19
833
- #, php-format
834
- msgid "You use <b>%s</b> theme%s. Fantastic!"
835
  msgstr ""
836
 
837
- #: partials/admin/embedding-in-theme.php:20
838
- msgid ""
839
- "We support this theme and you can easily replace all default search bars."
840
  msgstr ""
841
 
842
- #: includes/Integrations/Brands.php:167
843
- msgid "Search in brands"
844
  msgstr ""
845
 
846
- #: includes/Integrations/Brands.php:171 includes/Integrations/Brands.php:187
847
- #, php-format
848
- msgid "based on the plugin %s"
849
  msgstr ""
850
 
851
- #: includes/Integrations/Brands.php:183
852
- msgid "Show brands"
853
  msgstr ""
854
 
855
- #: includes/Admin/Troubleshooting.php:200
856
- msgid "You are using one or more incompatible plugins"
857
  msgstr ""
858
 
859
- #: includes/Admin/Troubleshooting.php:211
860
- #: includes/Admin/Troubleshooting.php:215
861
- #, php-format
862
- msgid ""
863
- "You use the %s plugin. The Ajax Search for WooCommerce does not support this "
864
- "plugin."
865
  msgstr ""
866
 
867
- #: includes/Admin/Troubleshooting.php:233
868
- msgid "Your site can perform loopback requests"
869
  msgstr ""
870
 
871
- #: includes/Admin/Troubleshooting.php:271
872
- msgid "Your site could not complete a loopback request"
873
  msgstr ""
874
 
875
- #: includes/Admin/Troubleshooting.php:275
876
  msgid ""
877
- "This issue may affect the search results page and e.g. display all products "
878
- "every time"
879
  msgstr ""
880
 
881
- #: includes/Admin/Troubleshooting.php:279
882
- msgid ""
883
- "This issue may affect the building of the search index. Indexer may stuck at "
884
- "0%."
885
  msgstr ""
886
 
887
- #: includes/Admin/Troubleshooting.php:282
888
- msgid "Solutions:"
889
  msgstr ""
890
 
891
- #: includes/Admin/Troubleshooting.php:284
892
- msgid "Do you have a Basic Auth?"
893
  msgstr ""
894
 
895
- #: includes/Admin/Troubleshooting.php:285
896
- msgid ""
897
- "If yes, you have to add to your <code>wp-config.php</code> file following "
898
- "constants. Remember to replace <code>your-username</code> and <code>your-"
899
- "password</code> with your values."
900
  msgstr ""
901
 
902
- #: includes/Admin/Troubleshooting.php:289
903
- msgid "Is your website publicly available only for whitelisted IPs?"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
904
  msgstr ""
905
 
906
- #: includes/Admin/Troubleshooting.php:290
907
- msgid "If yes, add you server IP to whitelist IPs. That’s all."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
908
  msgstr ""
909
 
910
- #: includes/Admin/Troubleshooting.php:305
911
- msgid "One or more required PHP extensions are missing on your server"
912
  msgstr ""
913
 
914
- #: includes/Admin/Troubleshooting.php:315
915
- #: includes/Admin/Troubleshooting.php:318
916
- #, php-format
917
- msgid "Required PHP extension: %s"
918
  msgstr ""
919
 
920
- #: includes/Admin/Troubleshooting.php:335
921
- #: includes/Admin/Troubleshooting.php:937
922
- msgid "WordPress version"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
923
  msgstr ""
924
 
925
- #: includes/Admin/Troubleshooting.php:344
926
- msgid "Great! Our plugin works great with this version of WordPress."
927
  msgstr ""
928
 
929
- #: includes/Admin/Troubleshooting.php:347
930
- msgid ""
931
- "Install the latest version of WordPress for our plugin to work as best it "
932
- "can!"
933
  msgstr ""
934
 
935
- #: includes/Admin/Troubleshooting.php:381
936
- #: includes/Admin/Troubleshooting.php:949
937
- msgid "Incorrect \"Add to cart\" behaviour in WooCommerce settings"
938
  msgstr ""
939
 
940
- #: includes/Admin/Troubleshooting.php:382
941
- #: includes/Admin/Troubleshooting.php:425
942
- #: includes/Admin/Troubleshooting.php:517
943
- #: includes/Admin/Troubleshooting.php:795
944
- #: includes/Admin/Troubleshooting.php:841
945
- #: includes/Admin/Troubleshooting.php:916
946
- msgid "Solution"
947
  msgstr ""
948
 
949
- #: includes/Admin/Troubleshooting.php:383
 
950
  #, php-format
951
- msgid ""
952
- "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
953
- "Products (tab)</a></code> and check option <code>%s</code> and uncheck "
954
- "option <code>%s</code>."
955
  msgstr ""
956
 
957
- #: includes/Admin/Troubleshooting.php:384
958
- msgid "Your settings should looks like the picture below:"
959
  msgstr ""
960
 
961
- #: includes/Admin/Troubleshooting.php:424
962
- msgid "iThemes Security plugin blocks AJAX requests"
 
 
 
963
  msgstr ""
964
 
965
- #: includes/Admin/Troubleshooting.php:426
966
  #, php-format
967
- msgid ""
968
- "Go to <code>Security -> Settings -> <a href=\"%s\" target=\"_blank\">System "
969
- "Tweaks</a></code> and uncheck <code>Disable PHP in Plugins</code> option."
970
  msgstr ""
971
 
972
- #: includes/Admin/Troubleshooting.php:481
973
- msgid "Custom location of wp-load.php file"
974
  msgstr ""
975
 
976
- #: includes/Admin/Troubleshooting.php:482
977
- #, php-format
978
- msgid ""
979
- "Could not load <code>wp-load.php</code> from the locations it normally is. "
980
- "To solve this issue, contact the <a target=\"_blank\" href=\"%s\">technical "
981
- "support</a>."
982
  msgstr ""
983
 
984
- #: includes/Admin/Troubleshooting.php:496
985
- #: includes/Admin/Troubleshooting.php:973
986
- msgid "Issue with WP-Cron"
987
  msgstr ""
988
 
989
- #: includes/Admin/Troubleshooting.php:518
990
- msgid ""
991
- "Install the <a target=\"_blank\" href=\"https://wordpress."
992
- "org/plugins/advanced-cron-manager/\">Advanced Cron Manager</a> plugin to "
993
- "verify if WP-Cron works correctly. You should see two actions related to "
994
- "the Indexer:"
995
  msgstr ""
996
 
997
- #: includes/Admin/Troubleshooting.php:520
998
- msgid ""
999
- "You can run these actions manually via Advanced Cron Manager. Then the "
1000
- "Indexer should run. If the index stuck again, run these actions manually one "
1001
- "more time until the finished index."
1002
  msgstr ""
1003
 
1004
- #: includes/Admin/Troubleshooting.php:521
1005
- msgid ""
1006
- "A real solution is to find the reason why the WP-Cron doesn’t work and fix "
1007
- "it."
1008
  msgstr ""
1009
 
1010
- #: includes/Admin/Troubleshooting.php:549
1011
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:477
1012
- msgid "Rebuild index"
1013
  msgstr ""
1014
 
1015
- #: includes/Admin/Troubleshooting.php:553
1016
- msgid "The search index structure isn't completely"
1017
  msgstr ""
1018
 
1019
- #: includes/Admin/Troubleshooting.php:555
1020
- #, php-format
1021
- msgid "Go to the Indexer tab and click the button <i>%s</i>."
1022
  msgstr ""
1023
 
1024
- #: includes/Admin/Troubleshooting.php:586
1025
- msgid ""
1026
- "The Jetpack Search module is incompatible with the Ajax Search for "
1027
- "WooCommerce"
1028
  msgstr ""
1029
 
1030
- #: includes/Admin/Troubleshooting.php:587
1031
- #, php-format
1032
- msgid ""
1033
- "Go to the <code>Jetpack settings page -> <a href=\"%s\" target=\"_blank\">"
1034
- "Performance tab</a> -> disable the Search module</code>"
1035
  msgstr ""
1036
 
1037
- #: includes/Admin/Troubleshooting.php:739
1038
- msgid ""
1039
- "The server returns an incorrect response for the search engine's AJAX calls"
1040
  msgstr ""
1041
 
1042
- #: includes/Admin/Troubleshooting.php:740
1043
- #, php-format
1044
- msgid ""
1045
- "Server response with message <code>%s</code> and status code <code>%s</code>."
1046
  msgstr ""
1047
 
1048
- #: includes/Admin/Troubleshooting.php:744
1049
- msgid "Server environment"
1050
  msgstr ""
1051
 
1052
- #: includes/Admin/Troubleshooting.php:794
1053
- msgid "Defender plugin by WPMU DEV blocks AJAX calls of the live search"
1054
  msgstr ""
1055
 
1056
- #: includes/Admin/Troubleshooting.php:796
1057
- #, php-format
1058
- msgid ""
1059
- "Go to <code>Defender -> Security Tweaks -> <a href=\"%s\" target=\"_blank\">"
1060
- "Resolved</a> -> Prevent PHP execution</code> and add following file path as "
1061
- "exceptions: <code>%s</code>"
1062
  msgstr ""
1063
 
1064
- #: includes/Admin/Troubleshooting.php:840
1065
- msgid "The .htaccess file(s) may blocking AJAX calls of the live search"
 
1066
  msgstr ""
1067
 
1068
- #: includes/Admin/Troubleshooting.php:842
1069
- #, php-format
1070
- msgid ""
1071
- "We recommend contact your hosting provider and ask to check <code>%s</code> "
1072
- "file(s) on your server."
1073
  msgstr ""
1074
 
1075
- #: includes/Admin/Troubleshooting.php:867
1076
- msgid "NGINX configuration may blocks search requests"
1077
  msgstr ""
1078
 
1079
- #: includes/Admin/Troubleshooting.php:868
1080
- #, php-format
1081
- msgid ""
1082
- "Some NGINX configuration may block executing PHP files included directly in "
1083
- "the plugins directory. There is no one solution. It depends on your NGINX "
1084
- "configuration. We recommend contact your hosting provider and ask to allow "
1085
- "to execute the following file: %s"
1086
  msgstr ""
1087
 
1088
- #: includes/Admin/Troubleshooting.php:869
1089
- msgid "Here are few samples NGINX config which helps other users:"
1090
  msgstr ""
1091
 
1092
- #: includes/Admin/Troubleshooting.php:870
1093
- msgid ""
1094
- "Adding extra rules to <code>/usr/local/nginx/conf/wpsecure_${vhostname}."
1095
- "conf</code>"
1096
  msgstr ""
1097
 
1098
- #: includes/Admin/Troubleshooting.php:915
1099
- msgid "Sucuri Security firewall may block AJAX calls of the live search"
1100
  msgstr ""
1101
 
1102
- #: includes/Admin/Troubleshooting.php:917
1103
- msgid ""
1104
- "You need to log in to your <a href=\"https://login.sucuri.net\" "
1105
- "target=\"_blank\">Sucuri panel</a>."
1106
  msgstr ""
1107
 
1108
- #: includes/Admin/Troubleshooting.php:918
1109
- msgid "Go to the settings"
1110
  msgstr ""
1111
 
1112
- #: includes/Admin/Troubleshooting.php:919
1113
- msgid "Find section <code>Access Control -> whitelist URL</code>"
1114
  msgstr ""
1115
 
1116
- #: includes/Admin/Troubleshooting.php:920
1117
- msgid "Add the following URL to the white list:"
1118
  msgstr ""
1119
 
1120
- #: includes/Admin/Troubleshooting.php:941
1121
- msgid "PHP extensions"
1122
  msgstr ""
1123
 
1124
- #: includes/Admin/Troubleshooting.php:945
1125
- msgid "Incompatible plugins"
1126
  msgstr ""
1127
 
1128
- #: includes/Admin/Troubleshooting.php:955
1129
- msgid "Loopback request"
1130
  msgstr ""
1131
 
1132
- #: includes/Admin/Troubleshooting.php:968
1133
- msgid "WordPress loading problem"
1134
  msgstr ""
1135
 
1136
- #: includes/Admin/Troubleshooting.php:978
1137
- msgid "Index completeness test"
1138
  msgstr ""
1139
 
1140
- #: includes/Admin/Troubleshooting.php:983
1141
- msgid "Jetpack search module"
1142
  msgstr ""
1143
 
1144
- #: includes/Admin/Troubleshooting.php:988
1145
- msgid "Blocked search endpoint test"
1146
  msgstr ""
1147
 
1148
- #: includes/Admin/AdminMenu.php:28
1149
- msgid "Ajax Search for WooCommerce"
1150
  msgstr ""
1151
 
1152
- #: includes/Admin/AdminMenu.php:29
1153
- msgid "AJAX search bar"
1154
  msgstr ""
1155
 
1156
- #: includes/Admin/SettingsAPI.php:598
1157
- msgid "Contact"
1158
  msgstr ""
1159
 
1160
- #: includes/Admin/SettingsAPI.php:601
1161
- msgid "Showcase"
 
 
 
1162
  msgstr ""
1163
 
1164
- #: includes/Admin/SettingsAPI.php:605
1165
- msgid "My Account"
1166
  msgstr ""
1167
 
1168
- #: includes/Admin/RegenerateImages.php:95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1169
  #, php-format
1170
  msgid ""
1171
- "<b>AJAX Search for WooCommerce</b>: It is recommended to generate a special "
1172
- "small image size for existing products to ensure a better user experience. "
1173
- "This is a one-time action. <br /><br />You can do it by clicking %s or use "
1174
- "external plugin e.g. %s."
1175
  msgstr ""
1176
 
1177
- #: includes/Admin/Promo/Upgrade.php:47
1178
- msgid "Speed up search! (even 10x faster) - users love it!"
 
1179
  msgstr ""
1180
 
1181
- #: includes/Admin/Promo/Upgrade.php:48
1182
- msgid "New modern search engine based on bm25 ranking algorithm"
1183
  msgstr ""
1184
 
1185
- #: includes/Admin/Promo/Upgrade.php:50
1186
- msgid "Search in attributes and variation products SKUs (option)"
1187
  msgstr ""
1188
 
1189
- #: includes/Admin/Promo/Upgrade.php:51
1190
- msgid "Individual customization of the search form (simple CSS improvements)"
1191
  msgstr ""
1192
 
1193
- #: includes/Admin/Promo/Upgrade.php:52
1194
- msgid "Individual tips and support by Damian Góra - the author of the plugin"
 
1195
  msgstr ""
1196
 
1197
- #: includes/Admin/Promo/Upgrade.php:54
1198
- msgid "Ajax Search for WooCommerce PRO - Upgrade Now"
1199
  msgstr ""
1200
 
1201
- #: includes/Admin/Promo/Upgrade.php:58
1202
- msgid ""
1203
- "Update now and increase your sales. You will receive 14-day satisfaction "
1204
- "guarantee. A return on investment will come very quickly."
1205
  msgstr ""
1206
 
1207
- #: includes/Admin/Promo/Upgrade.php:63
1208
- msgid "and more..."
1209
  msgstr ""
1210
 
1211
- #: includes/Admin/Promo/Upgrade.php:65
1212
- msgid "You can upgrade without leaving the admin panel by clicking below."
1213
  msgstr ""
1214
 
1215
- #: includes/Admin/Promo/Upgrade.php:66
1216
- msgid "Free updates and email support included."
1217
  msgstr ""
1218
 
1219
- #: includes/Admin/Promo/Upgrade.php:67
1220
- msgid "Upgrade Now"
1221
  msgstr ""
1222
 
1223
- #: includes/Admin/Promo/FeedbackNotice.php:73
1224
- #, php-format
1225
- msgid ""
1226
- "Hey %s, it's Damian Góra from %s. You have used this free plugin for some "
1227
- "time now, and I hope you like it!"
1228
  msgstr ""
1229
 
1230
- #: includes/Admin/Promo/FeedbackNotice.php:78
1231
- #, php-format
1232
- msgid ""
1233
- "I have spent countless hours developing it, and it would mean a lot to me if "
1234
- "you %ssupport it with a quick review on WordPress.org.%s"
1235
  msgstr ""
1236
 
1237
- #: includes/Admin/Promo/FeedbackNotice.php:84
1238
- #, php-format
1239
- msgid "Review %s"
1240
  msgstr ""
1241
 
1242
- #: includes/Admin/Promo/FeedbackNotice.php:88
1243
- msgid "No thanks"
1244
  msgstr ""
1245
 
1246
- #: includes/Engines/TNTSearchMySQL/Indexer/Scheduler.php:279
1247
- #, php-format
1248
- msgid "The next index rebuild: %s"
1249
  msgstr ""
1250
 
1251
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:140
1252
- msgctxt "Admin, logs"
1253
- msgid "Indexer already running"
1254
  msgstr ""
1255
 
1256
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:154
1257
- #, php-format
1258
- msgctxt "Admin, logs"
1259
- msgid "Multilingual: Yes, Provider: %s, Default: %s, Langs: %s"
1260
  msgstr ""
1261
 
1262
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:159
1263
- msgctxt "Admin, logs"
1264
- msgid "Indexer started"
1265
  msgstr ""
1266
 
1267
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:235
1268
- msgctxt "Admin, logs"
1269
- msgid "[Readable index] Building..."
 
 
 
 
 
 
1270
  msgstr ""
1271
 
1272
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:243
1273
- msgctxt "Admin, logs"
1274
- msgid "[Searchable index] Building..."
1275
  msgstr ""
1276
 
1277
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:430
1278
- msgid "Wait... Indexing in progress"
1279
  msgstr ""
1280
 
1281
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:431
1282
- msgid "This process will continue in the background. You can leave this page!"
 
 
 
 
 
1283
  msgstr ""
1284
 
1285
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:436
1286
- msgid "Wait... The index build process is canceling"
1287
  msgstr ""
1288
 
1289
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:437
1290
- msgid "Canceling..."
1291
  msgstr ""
1292
 
1293
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:442
1294
- msgid "The search index was built successfully."
 
1295
  msgstr ""
1296
 
1297
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:443
1298
- msgid "Completed. Works."
1299
  msgstr ""
1300
 
1301
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:447
1302
- msgid "The search index could not be built."
1303
  msgstr ""
1304
 
1305
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:448
1306
- msgid "Errors"
1307
  msgstr ""
1308
 
1309
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:453
1310
- msgid "Not exist"
1311
  msgstr ""
1312
 
1313
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:474
1314
- msgid "Stop process"
1315
  msgstr ""
1316
 
1317
- #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:480
1318
- msgid "Try to build the index again."
1319
  msgstr ""
1320
 
1321
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:38
1322
- #: includes/Integrations/Themes/Enfold/Enfold.php:43
1323
- #: includes/Integrations/Themes/Shopical/Shopical.php:36
1324
- #: includes/Integrations/Themes/Ekommart/Ekommart.php:36
1325
- #: includes/Integrations/Themes/Bridge/Bridge.php:36
1326
- #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:36
1327
- #: includes/Integrations/Themes/Avada/Avada.php:39
1328
- #: includes/Integrations/Themes/The7/The7.php:39
1329
- #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:36
1330
- #: includes/Integrations/Themes/Savoy/Savoy.php:36
1331
- #: includes/Integrations/Themes/Divi/Divi.php:36
1332
- #: includes/Integrations/Themes/BlockShop/BlockShop.php:36
1333
- #: includes/Integrations/Themes/Sober/Sober.php:36
1334
- #: includes/Integrations/Themes/Restoration/Restoration.php:38
1335
- #: includes/Integrations/Themes/Woodmart/Woodmart.php:54
1336
- #, php-format
1337
- msgid "Replace %s search bar"
1338
  msgstr ""
1339
 
1340
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:45
1341
- #: includes/Integrations/Themes/Enfold/Enfold.php:50
1342
- #: includes/Integrations/Themes/Shopical/Shopical.php:43
1343
- #: includes/Integrations/Themes/Ekommart/Ekommart.php:43
1344
- #: includes/Integrations/Themes/Bridge/Bridge.php:43
1345
- #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:43
1346
- #: includes/Integrations/Themes/Avada/Avada.php:46
1347
- #: includes/Integrations/Themes/The7/The7.php:46
1348
- #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:43
1349
- #: includes/Integrations/Themes/Savoy/Savoy.php:43
1350
- #: includes/Integrations/Themes/Divi/Divi.php:43
1351
- #: includes/Integrations/Themes/BlockShop/BlockShop.php:43
1352
- #: includes/Integrations/Themes/Sober/Sober.php:43
1353
- #: includes/Integrations/Themes/Restoration/Restoration.php:45
1354
- #: includes/Integrations/Themes/Woodmart/Woodmart.php:61
1355
- #, php-format
1356
- msgid "%s Theme"
1357
  msgstr ""
1358
 
1359
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:58
1360
- #: includes/Integrations/Themes/Enfold/Enfold.php:63
1361
- #: includes/Integrations/Themes/Shopical/Shopical.php:56
1362
- #: includes/Integrations/Themes/Ekommart/Ekommart.php:56
1363
- #: includes/Integrations/Themes/Bridge/Bridge.php:56
1364
- #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:56
1365
- #: includes/Integrations/Themes/Avada/Avada.php:59
1366
- #: includes/Integrations/Themes/The7/The7.php:59
1367
- #: includes/Integrations/Themes/TheGem/TheGem.php:92
1368
- #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:56
1369
- #: includes/Integrations/Themes/Savoy/Savoy.php:56
1370
- #: includes/Integrations/Themes/Flatsome/Flatsome.php:56
1371
- #: includes/Integrations/Themes/Divi/Divi.php:56
1372
- #: includes/Integrations/Themes/Storefront/Storefront.php:57
1373
- #: includes/Integrations/Themes/BlockShop/BlockShop.php:56
1374
- #: includes/Integrations/Themes/Sober/Sober.php:56
1375
- #: includes/Integrations/Themes/Restoration/Restoration.php:58
1376
- #: includes/Integrations/Themes/Woodmart/Woodmart.php:74
1377
- msgid "Replace"
1378
  msgstr ""
1379
 
1380
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:59
1381
- #: includes/Integrations/Themes/Enfold/Enfold.php:64
1382
- #: includes/Integrations/Themes/Shopical/Shopical.php:57
1383
- #: includes/Integrations/Themes/Ekommart/Ekommart.php:57
1384
- #: includes/Integrations/Themes/Bridge/Bridge.php:57
1385
- #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:57
1386
- #: includes/Integrations/Themes/Avada/Avada.php:60
1387
- #: includes/Integrations/Themes/The7/The7.php:60
1388
- #: includes/Integrations/Themes/Savoy/Savoy.php:57
1389
- #: includes/Integrations/Themes/Divi/Divi.php:57
1390
- #: includes/Integrations/Themes/BlockShop/BlockShop.php:57
1391
- #: includes/Integrations/Themes/Sober/Sober.php:57
1392
- #: includes/Integrations/Themes/Restoration/Restoration.php:59
1393
- #: includes/Integrations/Themes/Woodmart/Woodmart.php:75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1394
  #, php-format
1395
- msgid "Replace all %s search bars with the Ajax Search for WooCommerce."
 
 
1396
  msgstr ""
1397
 
1398
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:66
 
 
 
 
 
1399
  msgid ""
1400
- "To replace the search bar you have to enable \"Predictive Search\" option in "
1401
- "the Shopkeeper settings."
1402
  msgstr ""
1403
 
1404
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:67
1405
  #, php-format
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1406
  msgid ""
1407
- "Go to <code>Appearance -> <a target=\"_blank\" href=\"%s\">Customize</a> -> "
1408
- "Header -> Search</code> and enable <code>Predictive Search</code>"
1409
  msgstr ""
1410
 
1411
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:72
1412
- msgid "Warning!"
1413
  msgstr ""
1414
 
1415
- #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:81
1416
- #: includes/Integrations/Themes/Enfold/Enfold.php:71
1417
- #: includes/Integrations/Themes/Shopical/Shopical.php:64
1418
- #: includes/Integrations/Themes/Ekommart/Ekommart.php:64
1419
- #: includes/Integrations/Themes/Bridge/Bridge.php:64
1420
- #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:64
1421
- #: includes/Integrations/Themes/Avada/Avada.php:67
1422
- #: includes/Integrations/Themes/The7/The7.php:67
1423
- #: includes/Integrations/Themes/TheGem/TheGem.php:100
1424
- #: includes/Integrations/Themes/TheGem/TheGem.php:108
1425
- #: includes/Integrations/Themes/Impreza/Impreza.php:60
1426
- #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:64
1427
- #: includes/Integrations/Themes/Savoy/Savoy.php:64
1428
- #: includes/Integrations/Themes/Flatsome/Flatsome.php:64
1429
- #: includes/Integrations/Themes/Divi/Divi.php:64
1430
- #: includes/Integrations/Themes/Storefront/Storefront.php:65
1431
- #: includes/Integrations/Themes/BlockShop/BlockShop.php:64
1432
- #: includes/Integrations/Themes/Sober/Sober.php:64
1433
- #: includes/Integrations/Themes/Restoration/Restoration.php:66
1434
- #: includes/Integrations/Themes/Woodmart/Woodmart.php:82
1435
- msgid "Alternative ways to embed a search bar"
1436
  msgstr ""
1437
 
1438
- #: includes/Integrations/Themes/TheGem/TheGem.php:72
1439
- msgid "Replace a search bar in TheGem "
 
 
 
1440
  msgstr ""
1441
 
1442
  #: includes/Integrations/Themes/TheGem/TheGem.php:79
1443
  msgid "TheGem Theme"
1444
  msgstr ""
1445
 
1446
- #: includes/Integrations/Themes/TheGem/TheGem.php:93
1447
- msgid "Replace the TheGem default search"
1448
  msgstr ""
1449
 
1450
- #: includes/Integrations/Themes/Impreza/Impreza.php:35
1451
- #, php-format
1452
  msgid ""
1453
- "Here is <a href=\"%s\" target=\"_blank\">article</a> about how to do it "
1454
- "using Impreza child-theme."
 
1455
  msgstr ""
1456
 
1457
- #: includes/Integrations/Themes/Impreza/Impreza.php:39
1458
- msgid "Replace Impreza search bar"
 
 
1459
  msgstr ""
1460
 
1461
- #: includes/Integrations/Themes/Impreza/Impreza.php:46
1462
- msgid "Impreza Theme"
 
 
1463
  msgstr ""
1464
 
1465
- #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:57
1466
- #, php-format
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1467
  msgid ""
1468
- "Replace all %s search bars with the Ajax Search for WooCommerce.<br><span "
1469
- "style=\"color: red;\">Note: We currently only support the header type: "
1470
- "\"Header 10\".</span>"
1471
  msgstr ""
1472
 
1473
- #: includes/Integrations/Themes/Flatsome/Flatsome.php:36
1474
- msgid "Replace Flatsome search bar"
1475
  msgstr ""
1476
 
1477
- #: includes/Integrations/Themes/Flatsome/Flatsome.php:43
1478
- msgid "Flatsome Theme"
1479
  msgstr ""
1480
 
1481
- #: includes/Integrations/Themes/Flatsome/Flatsome.php:57
1482
- msgid "Replace all Flatsome search bars with the Ajax Search for WooCommerce."
 
1483
  msgstr ""
1484
 
1485
- #: includes/Integrations/Themes/Storefront/Storefront.php:37
1486
- msgid "Replace Storefront search bar"
1487
  msgstr ""
1488
 
1489
- #: includes/Integrations/Themes/Storefront/Storefront.php:44
1490
- msgid "Storefront Theme"
 
 
1491
  msgstr ""
1492
 
1493
- #: includes/Integrations/Themes/Storefront/Storefront.php:58
1494
  msgid ""
1495
- "Replace the Storefront default product search to the Ajax Search for "
1496
- "WooCommerce form."
1497
  msgstr ""
1498
 
1499
- #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Indexer.php:182
1500
- msgctxt "Admin, logs"
1501
- msgid "[Taxonomy index] Cleared"
1502
  msgstr ""
1503
 
1504
- #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Request.php:39
 
 
 
 
 
 
 
 
1505
  #, php-format
1506
- msgctxt "Admin, logs"
1507
- msgid "[Taxonomy index] Building %s..."
1508
  msgstr ""
1509
 
1510
- #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Request.php:52
1511
  #, php-format
1512
- msgctxt "Admin, logs"
1513
- msgid "[Taxonomy index] Completed: %s, Not indexed: %s"
1514
  msgstr ""
1515
 
1516
- #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/Indexer.php:267
1517
- msgctxt "Admin, logs"
1518
- msgid "[Searchable index] Cleared"
1519
  msgstr ""
1520
 
1521
- #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:118
1522
- #, php-format
1523
- msgctxt "Admin, logs"
1524
- msgid "[Searchable index] The queue <code>%s</code> was deleted "
1525
  msgstr ""
1526
 
1527
- #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:130
1528
- #, php-format
1529
- msgctxt "Admin, logs"
1530
- msgid "[Searchable index] Schedule <code>%s</code> was created "
 
 
1531
  msgstr ""
1532
 
1533
- #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:145
 
 
 
 
 
 
 
 
1534
  #, php-format
1535
- msgctxt "Admin, logs"
1536
- msgid "[Searchable index] The queue <code>%s</code> was created"
 
1537
  msgstr ""
1538
 
1539
- #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:162
1540
- msgctxt "Admin, logs"
1541
- msgid "[Searchable index] Completed"
1542
  msgstr ""
1543
 
1544
- #: includes/Engines/TNTSearchMySQL/Indexer/Variation/Indexer.php:136
1545
- msgctxt "Admin, logs"
1546
- msgid "[Variations index] Cleared"
1547
  msgstr ""
1548
 
1549
- #: includes/Engines/TNTSearchMySQL/Indexer/Readable/Indexer.php:231
1550
- msgctxt "Admin, logs"
1551
- msgid "[Readable index] Cleared"
1552
  msgstr ""
1553
 
1554
- #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:112
1555
- #, php-format
1556
- msgctxt "Admin, logs"
1557
- msgid "[Readable index] The queue <code>%s</code> was deleted "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1558
  msgstr ""
1559
 
1560
- #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1561
  #, php-format
1562
- msgctxt "Admin, logs"
1563
- msgid "[Readable index] Schedule <code>%s</code> was created "
1564
  msgstr ""
1565
 
1566
- #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:140
 
1567
  #, php-format
1568
- msgctxt "Admin, logs"
1569
- msgid "[Readable index] The queue <code>%s</code> was created"
 
1570
  msgstr ""
1571
 
1572
- #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:157
1573
- msgctxt "Admin, logs"
1574
- msgid "[Readable index] Completed"
 
1575
  msgstr ""
1576
 
1577
- #. Name of the plugin
1578
- msgid "AJAX Search for WooCommerce"
 
1579
  msgstr ""
1580
 
1581
- #. Description of the plugin
 
1582
  msgid ""
1583
- "The most popular WooCommerce product search. Gives your users a well-"
1584
- "designed advanced AJAX search bar with live search suggestions."
 
1585
  msgstr ""
1586
 
1587
- #. URI of the plugin
1588
- #. Author URI of the plugin
1589
  msgid ""
1590
- "https://ajaxsearch.pro?utm_source=wp-"
1591
- "admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc"
 
1592
  msgstr ""
1593
 
1594
- #. Author of the plugin
1595
- msgid "Damian Góra"
 
 
 
 
 
 
 
 
1596
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2021-03-11 10:47+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: Damian Góra <wp@damiangora.com>\n"
9
  "Language-Team: \n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
+ #: includes/Admin/RegenerateImages.php:95
18
  msgid ""
19
+ "%: it is recommended to generate a special small image size for existing "
20
+ "products to ensure a better user experience. This is a one-time action. <br "
21
+ "/><br />You can do it by clicking %s or use an external plugin such as %s."
22
  msgstr ""
23
 
24
+ #: ajax-search-for-woocommerce.php:219
25
  msgid ""
26
+ "%: You need PHP version at least 7.0 to run this plugin. You are currently "
27
+ "using PHP version "
28
  msgstr ""
29
 
30
+ #: ajax-search-for-woocommerce.php:241
31
  #, php-format
32
+ msgid "%s is enabled but not effective. It requires %s in order to work."
 
 
33
  msgstr ""
34
 
35
+ #: includes/Abstracts/ThemeIntegration.php:49
36
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:45
37
+ #: includes/Integrations/Themes/Enfold/Enfold.php:50
38
+ #: includes/Integrations/Themes/Shopical/Shopical.php:43
39
+ #: includes/Integrations/Themes/Ekommart/Ekommart.php:43
40
+ #: includes/Integrations/Themes/Bridge/Bridge.php:43
41
+ #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:43
42
+ #: includes/Integrations/Themes/Avada/Avada.php:46
43
+ #: includes/Integrations/Themes/The7/The7.php:46
44
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:43
45
+ #: includes/Integrations/Themes/Savoy/Savoy.php:43
46
+ #: includes/Integrations/Themes/Divi/Divi.php:61
47
+ #: includes/Integrations/Themes/BlockShop/BlockShop.php:43
48
+ #: includes/Integrations/Themes/Sober/Sober.php:43
49
+ #: includes/Integrations/Themes/Restoration/Restoration.php:45
50
+ #: includes/Integrations/Themes/Woodmart/Woodmart.php:61
51
+ #, php-format
52
+ msgid "%s Theme"
53
+ msgstr ""
54
+
55
+ #: includes/Settings.php:701 includes/Settings.php:751
56
+ msgid "-- Disabled"
57
  msgstr ""
58
 
59
+ #: partials/admin/features.php:19
60
  msgid ""
61
+ "<b>New Ultra-Fast Search Engine</b> works very fast even with 100,000+ "
62
+ "products "
63
  msgstr ""
64
 
65
+ #: includes/Admin/Troubleshooting.php:615
66
  msgid ""
67
+ "A real solution is to find the reason why the WP-Cron doesn’t work and fix "
68
+ "it."
69
  msgstr ""
70
 
71
+ #: includes/Admin/Troubleshooting.php:995
72
+ msgid "A search engine's AJAX call did not return valid results"
73
  msgstr ""
74
 
75
+ #: includes/EmbeddingViaMenu.php:150
76
+ msgid "Add FiboSearch as a menu item."
 
 
 
77
  msgstr ""
78
 
79
+ #: includes/Admin/SettingsAPI.php:523 includes/Admin/SettingsAPI.php:624
80
+ msgid "Add new rule"
81
  msgstr ""
82
 
83
+ #: includes/Admin/Troubleshooting.php:1156
84
+ msgid "Add the following URL to the white list:"
 
85
  msgstr ""
86
 
87
+ #: includes/Admin/Troubleshooting.php:1106
88
+ msgid ""
89
+ "Adding extra rules to <code>/usr/local/nginx/conf/wpsecure_${vhostname}."
90
+ "conf</code>"
91
  msgstr ""
92
 
93
+ #: includes/Settings.php:345
94
+ msgctxt "admin"
95
+ msgid "No results label"
96
  msgstr ""
97
 
98
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:175
99
+ msgctxt "Admin, logs"
100
+ msgid "[Readable index] Building..."
101
  msgstr ""
102
 
103
+ #: includes/Engines/TNTSearchMySQL/Indexer/Readable/Indexer.php:243
104
+ msgctxt "Admin, logs"
105
+ msgid "[Readable index] Cleared"
106
  msgstr ""
107
 
108
+ #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:169
109
+ msgctxt "Admin, logs"
110
+ msgid "[Readable index] Completed"
111
  msgstr ""
112
 
113
+ #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:125
114
+ #, php-format
115
+ msgctxt "Admin, logs"
116
+ msgid "[Readable index] Schedule <code>%s</code> was created "
117
  msgstr ""
118
 
119
+ #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:141
120
+ #, php-format
121
+ msgctxt "Admin, logs"
122
+ msgid "[Readable index] The queue <code>%s</code> was created"
123
  msgstr ""
124
 
125
+ #: includes/Engines/TNTSearchMySQL/Indexer/Readable/AsyncProcess.php:113
126
+ #, php-format
127
+ msgctxt "Admin, logs"
128
+ msgid "[Readable index] The queue <code>%s</code> was deleted "
129
  msgstr ""
130
 
131
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:184
132
+ msgctxt "Admin, logs"
133
+ msgid "[Searchable index] Building..."
134
  msgstr ""
135
 
136
+ #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/Indexer.php:267
137
+ msgctxt "Admin, logs"
138
+ msgid "[Searchable index] Cleared"
139
  msgstr ""
140
 
141
+ #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:175
142
+ msgctxt "Admin, logs"
143
+ msgid "[Searchable index] Completed"
144
  msgstr ""
145
 
146
+ #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:132
147
+ #, php-format
148
+ msgctxt "Admin, logs"
149
+ msgid "[Searchable index] Schedule <code>%s</code> was created "
150
  msgstr ""
151
 
152
+ #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:147
153
+ #, php-format
154
+ msgctxt "Admin, logs"
155
+ msgid "[Searchable index] The queue <code>%s</code> was created"
156
  msgstr ""
157
 
158
+ #: includes/Engines/TNTSearchMySQL/Indexer/Searchable/AsyncProcess.php:120
159
+ #, php-format
160
+ msgctxt "Admin, logs"
161
+ msgid "[Searchable index] The queue <code>%s</code> was deleted "
162
  msgstr ""
163
 
164
+ #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Request.php:39
165
+ #, php-format
166
+ msgctxt "Admin, logs"
167
+ msgid "[Taxonomy index] Building %s..."
168
  msgstr ""
169
 
170
+ #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Indexer.php:184
171
+ msgctxt "Admin, logs"
172
+ msgid "[Taxonomy index] Cleared"
173
  msgstr ""
174
 
175
+ #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomy/Request.php:52
176
+ #, php-format
177
+ msgctxt "Admin, logs"
178
+ msgid "[Taxonomy index] Completed: %s, Not indexed: %s"
179
  msgstr ""
180
 
181
+ #: includes/Engines/TNTSearchMySQL/Indexer/Variation/Indexer.php:143
182
+ msgctxt "Admin, logs"
183
+ msgid "[Variations index] Cleared"
184
  msgstr ""
185
 
186
+ #: includes/Engines/TNTSearchMySQL/Indexer/Vendor/Request.php:24
187
+ msgctxt "Admin, logs"
188
+ msgid "[Vendors index] Building..."
189
  msgstr ""
190
 
191
+ #: includes/Engines/TNTSearchMySQL/Indexer/Vendor/Indexer.php:140
192
+ msgctxt "Admin, logs"
193
+ msgid "[Vendors index] Cleared"
194
  msgstr ""
195
 
196
+ #: includes/Engines/TNTSearchMySQL/Indexer/Vendor/Request.php:36
197
+ #, php-format
198
+ msgctxt "Admin, logs"
199
+ msgid "[Vendors index] Completed: %s, Not indexed: %s"
200
  msgstr ""
201
 
202
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:141
203
+ msgctxt "Admin, logs"
204
+ msgid "Indexer already running"
205
  msgstr ""
206
 
207
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:162
208
+ msgctxt "Admin, logs"
209
+ msgid "Indexer started"
210
  msgstr ""
211
 
212
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:157
213
+ #, php-format
214
+ msgctxt "Admin, logs"
215
+ msgid "Multilingual: Yes, Provider: %s, Default: %s, Langs: %s"
216
  msgstr ""
217
 
218
+ #: widget.php:25
219
+ msgid "AJAX (live) search form for WooCommerce"
220
  msgstr ""
221
 
222
+ #: includes/Settings.php:782
223
+ msgid "AJAX Search for WooCommerce rebrands to FiboSearch"
224
  msgstr ""
225
 
226
+ #: partials/admin/indexer-header.php:21
227
+ msgid "All product changes will be <strong>re-indexed automatically</strong>"
228
  msgstr ""
229
 
230
+ #: includes/Abstracts/ThemeIntegration.php:70
231
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:81
232
+ #: includes/Integrations/Themes/Enfold/Enfold.php:71
233
+ #: includes/Integrations/Themes/Shopical/Shopical.php:64
234
+ #: includes/Integrations/Themes/Ekommart/Ekommart.php:64
235
+ #: includes/Integrations/Themes/Bridge/Bridge.php:64
236
+ #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:64
237
+ #: includes/Integrations/Themes/Avada/Avada.php:67
238
+ #: includes/Integrations/Themes/The7/The7.php:67
239
+ #: includes/Integrations/Themes/TheGem/TheGem.php:100
240
+ #: includes/Integrations/Themes/TheGem/TheGem.php:108
241
+ #: includes/Integrations/Themes/Impreza/Impreza.php:60
242
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:67
243
+ #: includes/Integrations/Themes/Savoy/Savoy.php:64
244
+ #: includes/Integrations/Themes/Flatsome/Flatsome.php:64
245
+ #: includes/Integrations/Themes/Divi/Divi.php:82
246
+ #: includes/Integrations/Themes/Storefront/Storefront.php:65
247
+ #: includes/Integrations/Themes/BlockShop/BlockShop.php:64
248
+ #: includes/Integrations/Themes/Sober/Sober.php:64
249
+ #: includes/Integrations/Themes/Restoration/Restoration.php:66
250
+ #: includes/Integrations/Themes/Woodmart/Woodmart.php:82
251
+ msgid "Alternative ways to embed a search bar"
252
  msgstr ""
253
 
254
+ #: includes/Admin/Troubleshooting.php:689
255
+ #, php-format
256
+ msgid ""
257
+ "An error occurred while trying to connect to the database using a PDO_MYSQL "
258
+ "driver: <code>%s</code>."
259
  msgstr ""
260
 
261
+ #: partials/admin/features.php:31
262
+ msgid "And more..."
263
  msgstr ""
264
 
265
+ #: includes/Admin/Promo/Upgrade.php:63
266
+ msgid "and more..."
267
  msgstr ""
268
 
269
+ #: partials/admin/how-to-use.php:22
270
+ #, php-format
271
+ msgid ""
272
+ "Are there any difficulties? <b>We will do it for you!</b> We offer free of "
273
+ "charge search bar implementation for Pro users. <a target=\"_blank\" "
274
+ "href=\"%s\">Become one now!</a>"
275
  msgstr ""
276
 
277
+ #: partials/admin/how-to-use.php:16
278
+ #, php-format
279
+ msgid ""
280
+ "As a menu item - go to the %s and add the menu item “FiboSearch bar”. Done!"
281
  msgstr ""
282
 
283
+ #: partials/admin/how-to-use.php:18
284
+ #, php-format
285
+ msgid "As a widget - go to the %s and choose “FiboSearch bar”"
286
  msgstr ""
287
 
288
+ #: includes/Admin/SettingsAPI.php:582
289
+ #, php-format
290
+ msgid "Attributes: %s"
291
  msgstr ""
292
 
293
+ #: includes/Settings.php:115 partials/admin/search-preview.php:24
294
+ msgid "Autocomplete"
295
  msgstr ""
296
 
297
+ #: includes/Integrations/Brands.php:179 includes/Integrations/Brands.php:202
298
+ #, php-format
299
+ msgid "based on the plugin %s"
300
  msgstr ""
301
 
302
+ #: includes/Settings.php:173 includes/Settings.php:323
303
+ msgid "Basic"
304
  msgstr ""
305
 
306
+ #: includes/Admin/Troubleshooting.php:1242
307
+ msgid "Blocked search endpoint test"
308
  msgstr ""
309
 
310
+ #: includes/Settings.php:522
311
+ msgid "Border color"
312
  msgstr ""
313
 
314
+ #: includes/Helpers.php:986
315
+ msgid "Brand"
316
  msgstr ""
317
 
318
+ #: includes/Helpers.php:993
319
+ msgid "Brands"
320
+ msgstr ""
321
+
322
+ #: partials/admin/indexer-body.php:42
323
+ msgid "Build ID"
324
  msgstr ""
325
 
326
+ #: partials/admin/indexer-header-demo.php:15
327
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:506
328
+ msgid "Build index"
329
  msgstr ""
330
 
331
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:460
332
+ msgid "Canceling..."
333
  msgstr ""
334
 
335
+ #: partials/admin/indexer-body.php:25
336
+ msgid "Cancellation..."
 
337
  msgstr ""
338
 
339
+ #: partials/admin/troubleshooting.php:22
340
+ msgid "Check status again"
341
  msgstr ""
342
 
343
+ #: partials/admin/embedding-in-theme.php:16
344
+ #, php-format
345
+ msgid "child theme of <b>%s</b>"
346
  msgstr ""
347
 
348
+ #: includes/Settings.php:253
349
+ msgid "Colors"
350
  msgstr ""
351
 
352
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:466
353
+ msgid "Completed. Works."
354
  msgstr ""
355
 
356
+ #: includes/Admin/SettingsAPI.php:721
357
+ msgid "Contact"
358
  msgstr ""
359
 
360
+ #: includes/Helpers.php:1002
361
+ msgid "continue reading"
362
  msgstr ""
363
 
364
+ #: includes/Admin/Troubleshooting.php:576
365
+ #, php-format
366
+ msgid ""
367
+ "Could not load <code>wp-load.php</code> from the locations it normally is. "
368
+ "To solve this issue, contact the <a target=\"_blank\" href=\"%s\">technical "
369
+ "support</a>."
370
  msgstr ""
371
 
372
+ #: includes/Admin/Troubleshooting.php:575
373
+ msgid "Custom location of wp-load.php file"
374
  msgstr ""
375
 
376
+ #: includes/Settings.php:661
377
+ msgid "daily"
378
  msgstr ""
379
 
380
+ #. Author of the plugin
381
+ msgid "Damian Góra"
382
  msgstr ""
383
 
384
+ #: partials/admin/indexer-body.php:46
385
+ msgid "DB"
386
  msgstr ""
387
 
388
+ #: widget.php:38 includes/EmbeddingViaMenu.php:186
389
+ msgid "Default"
390
  msgstr ""
391
 
392
+ #: includes/Admin/Troubleshooting.php:1030
393
+ msgid "Defender plugin by WPMU DEV blocks AJAX calls of the live search"
394
  msgstr ""
395
 
396
+ #: includes/Settings.php:434
397
  msgid "Details panel"
398
  msgstr ""
399
 
400
+ #: includes/Admin/Troubleshooting.php:327
401
+ msgid "Do you have a Basic Auth?"
402
  msgstr ""
403
 
404
+ #: includes/Admin/Troubleshooting.php:254
405
+ #, php-format
406
  msgid ""
407
+ "Due to the way the TranslatePress - Multilingual plugin works, we can only "
408
+ "provide support for it in the <a href=\"%s\" target=\"_blank\">Pro "
409
+ "version</a>."
410
  msgstr ""
411
 
412
+ #: includes/Admin/Troubleshooting.php:697
413
+ msgid ""
414
+ "Edit <code>wp-config.php</code> file, find the <code>DB_HOST</code> constant,"
415
+ " and change its value from <code>localhost</code> to <code>127.0.0.1</code>."
416
  msgstr ""
417
 
418
+ #: includes/Settings.php:648
419
+ msgid "Enable Scheduler"
420
  msgstr ""
421
 
422
+ #: partials/admin/indexer-body.php:76 partials/admin/indexer-body.php:99
423
+ #: partials/admin/indexer-body.php:124
424
+ msgid "End"
425
  msgstr ""
426
 
427
+ #: includes/Admin/Troubleshooting.php:688
428
+ msgid "Error establishing a database connection"
429
  msgstr ""
430
 
431
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:471
432
+ msgid "Errors"
433
  msgstr ""
434
 
435
+ #: includes/Settings.php:620 includes/Settings.php:719
436
+ msgid "Exclude from search all products that match conditions"
437
  msgstr ""
438
 
439
+ #: includes/Settings.php:613 includes/Settings.php:712
440
+ msgid "Exclude products"
441
  msgstr ""
442
 
443
+ #: includes/Settings.php:586
444
+ msgid "Exclude “out of stock” products"
 
 
 
 
445
  msgstr ""
446
 
447
+ #: includes/Admin/Troubleshooting.php:477
448
+ msgid "Extensions should looks like the picture below:"
449
  msgstr ""
450
 
451
+ #: includes/Admin/AdminMenu.php:28 includes/Admin/AdminMenu.php:29
452
+ msgid "FiboSearch"
453
  msgstr ""
454
 
455
+ #. Name of the plugin
456
+ msgid "FiboSearch - AJAX Search for WooCommerce"
 
 
 
457
  msgstr ""
458
 
459
+ #: widget.php:27 includes/EmbeddingViaMenu.php:55
460
+ #: includes/EmbeddingViaMenu.php:156
461
+ msgid "FiboSearch bar"
462
  msgstr ""
463
 
464
+ #: includes/EmbeddingViaMenu.php:178
465
+ msgid "FiboSearch bar will be displayed here."
466
  msgstr ""
467
 
468
+ #: includes/Admin/Promo/Upgrade.php:54
469
+ msgid "FiboSearch Pro - Upgrade Now"
470
  msgstr ""
471
 
472
+ #: includes/Admin/Troubleshooting.php:690
473
+ msgid ""
474
+ "FiboSearch uses a PDO_MYSQL driver in the search engine. A proper database "
475
+ "connection is required."
476
  msgstr ""
477
 
478
+ #: includes/Settings.php:619 includes/Settings.php:718
479
+ msgid "Filters"
480
  msgstr ""
481
 
482
+ #: partials/admin/indexer-body.php:21
483
+ #, php-format
484
+ msgid "Finalization... Wait a moment. (%s products)"
485
  msgstr ""
486
 
487
+ #: includes/Admin/Troubleshooting.php:1155
488
+ msgid "Find section <code>Access Control -> whitelist URL</code>"
 
489
  msgstr ""
490
 
491
+ #: partials/admin/indexer-header.php:31
492
+ #, php-format
493
+ msgid "First try to <a class=\"%s\" href=\"#\">build the index again</a>"
 
 
494
  msgstr ""
495
 
496
+ #: includes/Integrations/Themes/Flatsome/Flatsome.php:43
497
+ msgid "Flatsome Theme"
 
 
 
 
498
  msgstr ""
499
 
500
+ #: includes/Settings.php:592
501
+ msgid "Fuzziness"
502
  msgstr ""
503
 
504
+ #: includes/Settings.php:696 includes/Settings.php:746
505
+ msgid "Fuzzy matching"
506
  msgstr ""
507
 
508
+ #: partials/admin/features.php:21 includes/Admin/Promo/Upgrade.php:49
509
+ msgid "Fuzzy search"
510
  msgstr ""
511
 
512
+ #: partials/admin/indexer-header.php:33
513
+ #, php-format
514
+ msgid ""
515
+ "Go to <a target=\"_blank\" href=\"%s\">WooCommerce -> Status -> Logs (tab)"
516
+ "</a>. Open last \"fatal-errors...\". Look for a phrase \"ajax-search-for-"
517
+ "woocommerce\". Did you find anything significant?"
518
  msgstr ""
519
 
520
+ #: partials/admin/indexer-header.php:32
521
  msgid ""
522
+ "Go to <a target=\"_blank\" href=\"%s\">WooCommerce -> Status -> section "
523
+ "\"%\"</a>. Is everything green?"
 
 
524
  msgstr ""
525
 
526
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:67
527
+ #, php-format
528
+ msgid ""
529
+ "Go to <code>Appearance -> <a target=\"_blank\" href=\"%s\">Customize</a> -> "
530
+ "Header -> Search</code> and enable <code>Predictive Search</code>"
531
  msgstr ""
532
 
533
+ #: includes/Admin/Troubleshooting.php:1032
534
+ #, php-format
535
+ msgid ""
536
+ "Go to <code>Defender -> Security Tweaks -> <a href=\"%s\" target=\"_blank\">"
537
+ "Resolved</a> -> Prevent PHP execution</code> and add following file path as "
538
+ "exceptions: <code>%s</code>"
539
  msgstr ""
540
 
541
+ #: includes/Admin/Troubleshooting.php:519
542
+ #, php-format
543
+ msgid ""
544
+ "Go to <code>Security -> Settings -> <a href=\"%s\" target=\"_blank\">System "
545
+ "Tweaks</a></code> and uncheck <code>Disable PHP in Plugins</code> option."
546
  msgstr ""
547
 
548
+ #: includes/Admin/Troubleshooting.php:426
549
+ #, php-format
550
+ msgid ""
551
+ "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
552
+ "Products (tab)</a></code> and check option <code>%s</code> and uncheck "
553
+ "option <code>%s</code>."
554
  msgstr ""
555
 
556
+ #: includes/Admin/Troubleshooting.php:476
557
+ #, php-format
558
+ msgid ""
559
+ "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
560
+ "Products Filter (tab)</a> -> Extensions (tab)</code>, uncheck <code>"
561
+ "Searching by Text</code> extension and save changes."
562
  msgstr ""
563
 
564
+ #: includes/Admin/Troubleshooting.php:730
565
+ #, php-format
566
  msgid ""
567
+ "Go to the <code>Jetpack settings page -> <a href=\"%s\" target=\"_blank\">"
568
+ "Performance tab</a> -> disable the Search module</code>"
 
569
  msgstr ""
570
 
571
+ #: includes/Admin/Troubleshooting.php:661
572
+ #, php-format
573
+ msgid "Go to the Indexer tab and click the button <i>%s</i>."
574
  msgstr ""
575
 
576
+ #: includes/Admin/Troubleshooting.php:1154
577
+ msgid "Go to the settings"
578
  msgstr ""
579
 
580
+ #: includes/Admin/Troubleshooting.php:387
581
+ msgid "Great! Our plugin works great with this version of WordPress."
582
  msgstr ""
583
 
584
+ #: partials/admin/troubleshooting.php:18
585
+ msgid ""
586
+ "Great! We have not detected any problems that could affect the correct "
587
+ "functioning of our plugin."
588
  msgstr ""
589
 
590
+ #: includes/Settings.php:337
591
+ msgid "Group results"
592
  msgstr ""
593
 
594
+ #: includes/Settings.php:704 includes/Settings.php:754
595
  msgid "Hard"
596
  msgstr ""
597
 
598
+ #: includes/Admin/Troubleshooting.php:1105
599
+ msgid "Here are few samples NGINX config which helps other users:"
600
  msgstr ""
601
 
602
+ #: includes/Integrations/Themes/Impreza/Impreza.php:35
603
+ #, php-format
604
+ msgid ""
605
+ "Here is <a href=\"%s\" target=\"_blank\">article</a> about how to do it "
606
+ "using Impreza child-theme."
607
  msgstr ""
608
 
609
+ #: includes/Admin/Promo/FeedbackNotice.php:73
610
+ #, php-format
611
+ msgid ""
612
+ "Hey %s, it's Damian Góra from %s. You have used this free plugin for some "
613
+ "time now, and I hope you like it!"
614
  msgstr ""
615
 
616
+ #: partials/admin/indexer-header.php:45
617
+ msgid "Hide details"
618
  msgstr ""
619
 
620
+ #: includes/Settings.php:515
621
+ msgid "Highlight color"
 
622
  msgstr ""
623
 
624
+ #: includes/Settings.php:158
625
+ msgid "How to add search bar in your theme?"
626
  msgstr ""
627
 
628
+ #: includes/Settings.php:164
629
+ msgid "How to add?"
630
  msgstr ""
631
 
632
+ #. URI of the plugin
633
+ #. Author URI of the plugin
634
+ msgid ""
635
+ "https://fibosearch.com?utm_source=wp-"
636
+ "admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc"
637
  msgstr ""
638
 
639
+ #: widget.php:41 includes/Settings.php:229 includes/EmbeddingViaMenu.php:189
640
+ msgid "Icon on mobile, search bar on desktop"
641
  msgstr ""
642
 
643
+ #: partials/admin/features.php:14
644
+ msgid ""
645
+ "If users can’t find the product they’re searching for, they can’t buy it. "
646
+ "Help your customers to find the right products even <span>10× faster</span>."
647
  msgstr ""
648
 
649
+ #: includes/Admin/Troubleshooting.php:333
650
+ msgid "If yes, add you server IP to whitelist IPs. That’s all."
 
651
  msgstr ""
652
 
653
+ #: includes/Admin/Troubleshooting.php:328
654
+ msgid ""
655
+ "If yes, you have to add to your <code>wp-config.php</code> file following "
656
+ "constants. Remember to replace <code>your-username</code> and <code>your-"
657
+ "password</code> with your values."
658
  msgstr ""
659
 
660
+ #: includes/Integrations/Themes/Impreza/Impreza.php:46
661
+ msgid "Impreza Theme"
 
662
  msgstr ""
663
 
664
+ #: includes/Helpers.php:1001
665
+ msgctxt "in categories fe. in Books > Crime stories"
666
+ msgid "in"
667
  msgstr ""
668
 
669
+ #: includes/Settings.php:649
 
670
  msgid ""
671
+ "In most cases, you don't need to use the scheduler because the search index "
672
+ "updates when you edit products. If you use import tools or custom code to "
673
+ "refresh prices or bulk add/edit products, the indexing scheduler will be "
674
+ "helpful."
675
  msgstr ""
676
 
677
+ #: includes/Admin/Troubleshooting.php:474
 
678
  msgid ""
679
+ "Incompatible \"Searching by Text\" extension from WOOF - WooCommerce "
680
+ "Products Filter plugin is active"
 
681
  msgstr ""
682
 
683
+ #: includes/Admin/Troubleshooting.php:1189
 
684
  msgid ""
685
+ "Incompatible \"Searching by Text\" extension in WOOF - WooCommerce Products "
686
+ "Filter"
687
  msgstr ""
688
 
689
+ #: includes/Admin/Troubleshooting.php:1181
690
+ msgid "Incompatible plugins"
 
691
  msgstr ""
692
 
693
+ #: includes/Admin/Troubleshooting.php:424
694
+ #: includes/Admin/Troubleshooting.php:1185
695
+ msgid "Incorrect \"Add to cart\" behaviour in WooCommerce settings"
696
  msgstr ""
697
 
698
+ #: includes/Settings.php:132
699
+ msgid "Increase sales"
700
+ msgstr ""
701
+
702
+ #: includes/Settings.php:677
703
+ msgid "Increases sales conversions"
704
  msgstr ""
705
 
706
  #: partials/admin/indexer-body.php:18
707
  msgid "Index build progress"
708
  msgstr ""
709
 
710
+ #: partials/admin/indexer-body.php:50
711
+ msgid "Index build start"
 
712
  msgstr ""
713
 
714
+ #: includes/Admin/Troubleshooting.php:1222
715
+ msgid "Index completeness test"
716
  msgstr ""
717
 
718
+ #: includes/Settings.php:728 includes/Settings.php:762
719
+ msgid "Index status"
720
  msgstr ""
721
 
722
+ #: partials/admin/indexer-header.php:16
723
+ #, php-format
724
+ msgid "Indexed <strong>100&#37;</strong>, <strong>%d products</strong>."
725
  msgstr ""
726
 
727
+ #: includes/Settings.php:126
728
+ msgid "Indexer"
729
  msgstr ""
730
 
731
+ #: partials/admin/indexer-body.php:16
732
+ msgid ""
733
+ "Indexing... This process will continue in the background. You can leave this "
734
+ "page."
735
  msgstr ""
736
 
737
+ #: partials/admin/features.php:30
738
+ msgid "Individual customization of the search bar (simple CSS improvements)"
739
  msgstr ""
740
 
741
+ #: includes/Admin/Promo/Upgrade.php:52
742
+ msgid "Individual tips and support by FiboSearch team"
743
  msgstr ""
744
 
745
+ #: includes/Admin/Troubleshooting.php:612
746
+ msgid ""
747
+ "Install the <a target=\"_blank\" href=\"https://wordpress."
748
+ "org/plugins/advanced-cron-manager/\">Advanced Cron Manager</a> plugin to "
749
+ "verify if WP-Cron works correctly. You should see two actions related to "
750
+ "the Indexer:"
751
  msgstr ""
752
 
753
+ #: includes/Admin/Troubleshooting.php:390
754
+ msgid ""
755
+ "Install the latest version of WordPress for our plugin to work as best it "
756
+ "can!"
757
  msgstr ""
758
 
759
+ #: includes/Settings.php:657
760
+ msgid "Interval"
 
761
  msgstr ""
762
 
763
+ #: partials/admin/indexer-header.php:35
764
+ #, php-format
765
+ msgid ""
766
+ "Is it still not working? Write a <a target=\"_blank\" href=\"%s\">support "
767
+ "request</a>."
768
  msgstr ""
769
 
770
+ #: includes/Admin/Troubleshooting.php:332
771
+ msgid "Is your website publicly available only for whitelisted IPs?"
772
  msgstr ""
773
 
774
+ #: includes/Admin/Troubleshooting.php:590
775
+ #: includes/Admin/Troubleshooting.php:1217
776
+ msgid "Issue with WP-Cron"
777
  msgstr ""
778
 
779
+ #: includes/Admin/Troubleshooting.php:517
780
+ msgid "iThemes Security plugin blocks AJAX requests"
781
  msgstr ""
782
 
783
+ #: includes/Admin/Troubleshooting.php:1232
784
+ msgid "Jetpack search module"
785
  msgstr ""
786
 
787
+ #: partials/admin/indexer-header.php:20
788
+ #, php-format
789
+ msgid "Last build %s"
790
  msgstr ""
791
 
792
+ #: widget.php:43 includes/Settings.php:224 includes/EmbeddingViaMenu.php:74
793
+ msgid "Layout"
 
794
  msgstr ""
795
 
796
+ #: includes/Settings.php:218
797
+ msgid "Layout (beta)"
 
798
  msgstr ""
799
 
800
+ #: includes/Settings.php:329
801
+ msgid "Limit"
802
  msgstr ""
803
 
804
+ #: partials/admin/indexer-body.php:143
805
+ msgid "Logs"
 
806
  msgstr ""
807
 
808
+ #: includes/Admin/Troubleshooting.php:1195
809
+ msgid "Loopback request"
810
  msgstr ""
811
 
812
+ #: partials/admin/search-preview.php:144 partials/admin/search-preview.php:189
813
+ msgid ""
814
+ "Lorem <strong>ipsum</strong> dolor sit amet, consectetur adipiscing elit. "
815
+ "Quisque gravida lacus nec diam porttitor pharetra. Nulla facilisi. Proin "
816
+ "pharetra imperdiet neque, non varius."
817
  msgstr ""
818
 
819
+ #: includes/Integrations/Marketplace/Marketplace.php:158
820
+ msgid "Marketplace"
 
821
  msgstr ""
822
 
823
+ #: includes/Integrations/Marketplace/Marketplace.php:168
824
+ msgid "Marketplace third-party integration"
825
  msgstr ""
826
 
827
+ #: includes/Settings.php:188
828
+ msgid "Max form width"
 
829
  msgstr ""
830
 
831
+ #: includes/Settings.php:332
832
+ msgid "maximum number of suggestions"
 
 
 
 
833
  msgstr ""
834
 
835
+ #: includes/Admin/Troubleshooting.php:925
836
+ msgid ""
837
+ "Maybe your server blocks it by Apache module <code>mod_security</code>. "
838
+ "Contact your hosting provider and ask what can block the URL you see above."
839
  msgstr ""
840
 
841
+ #: partials/admin/how-to-use.php:16
842
+ msgid "Menu Screen"
 
 
843
  msgstr ""
844
 
845
+ #: includes/Settings.php:183
846
+ msgid "Min characters to show autocomplete"
847
  msgstr ""
848
 
849
+ #: includes/Settings.php:179
850
+ msgid "Minimum characters"
851
  msgstr ""
852
 
853
+ #: includes/Admin/Troubleshooting.php:764
854
+ msgid "Missing plugin: WooCommerce Multilingual"
855
  msgstr ""
856
 
857
+ #: includes/Settings.php:244
858
+ msgid "Mobile breakpoint"
859
  msgstr ""
860
 
861
+ #: includes/Admin/Promo/Upgrade.php:48
862
+ msgid ""
863
+ "Modern search engine based on an inverted index and advanced matching "
864
+ "algorithms"
865
  msgstr ""
866
 
867
+ #: includes/Settings.php:394
868
+ msgid "More results label"
869
  msgstr ""
870
 
871
+ #: includes/Admin/SettingsAPI.php:728
872
+ msgid "My Account"
873
  msgstr ""
874
 
875
+ #: includes/Settings.php:790
876
+ msgid "New plugin name"
877
  msgstr ""
878
 
879
+ #: includes/Settings.php:777
880
+ msgid "News"
 
 
 
881
  msgstr ""
882
 
883
+ #: includes/Admin/Troubleshooting.php:1103
884
+ msgid "NGINX configuration may blocks search requests"
885
  msgstr ""
886
 
887
+ #: includes/Settings.php:347 includes/Helpers.php:1003
888
+ msgid "No results"
 
 
889
  msgstr ""
890
 
891
+ #: includes/Admin/SettingsAPI.php:521 includes/Admin/SettingsAPI.php:620
892
+ msgid "No rules"
 
 
893
  msgstr ""
894
 
895
+ #: includes/Admin/Promo/FeedbackNotice.php:88
896
+ msgid "No thanks"
 
 
897
  msgstr ""
898
 
899
+ #: includes/Settings.php:400
900
+ msgid "Non-products in autocomplete"
 
 
901
  msgstr ""
902
 
903
+ #: includes/Settings.php:703 includes/Settings.php:753
904
+ msgid "Normal"
905
  msgstr ""
906
 
907
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:476
908
+ msgid "Not exist"
909
  msgstr ""
910
 
911
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:55
912
+ msgid "Note: We currently only support the header type: \"Header 10\""
913
  msgstr ""
914
 
915
+ #: includes/Admin/Troubleshooting.php:348
916
+ msgid "One or more required PHP extensions are missing on your server"
917
  msgstr ""
918
 
919
+ #: includes/Settings.php:236
920
+ msgid "Overlay on mobile"
921
  msgstr ""
922
 
923
+ #: includes/Admin/Troubleshooting.php:1227
924
+ msgid "PDO connection test"
925
  msgstr ""
926
 
927
+ #: includes/Admin/Troubleshooting.php:1177
928
+ msgid "PHP extensions"
929
  msgstr ""
930
 
931
+ #: partials/admin/indexer-body.php:63
932
+ msgid "Posts & pages"
933
  msgstr ""
934
 
935
+ #: includes/Settings.php:301
936
+ msgid "Preloader"
 
937
  msgstr ""
938
 
939
+ #: partials/admin/search-preview.php:22
940
+ msgid "Preview"
 
941
  msgstr ""
942
 
943
+ #: includes/Helpers.php:492 includes/Helpers.php:496
944
+ msgid "Pro"
 
945
  msgstr ""
946
 
947
+ #: includes/Settings.php:629
948
+ msgid "Pro features"
949
  msgstr ""
950
 
951
+ #: partials/admin/troubleshooting.php:11
952
+ msgid "Processing asynchronous tests..."
 
953
  msgstr ""
954
 
955
+ #: includes/Admin/SettingsAPI.php:577
956
+ msgid "Product categories"
957
  msgstr ""
958
 
959
+ #: includes/Admin/SettingsAPI.php:579
960
+ msgid "Product tags"
961
  msgstr ""
962
 
963
+ #: includes/Settings.php:351 partials/admin/indexer-body.php:58
964
+ msgid "Products"
 
 
 
 
965
  msgstr ""
966
 
967
+ #: partials/search-form.php:30 partials/admin/search-preview.php:34
968
+ msgid "Products search"
969
  msgstr ""
970
 
971
+ #: includes/Settings.php:531
972
+ msgid "Products search scope"
973
  msgstr ""
974
 
975
+ #: partials/admin/features.php:20
976
  msgid ""
977
+ "Professional and fast <b>help with embedding</b> or <b>replacing</b> the "
978
+ "search bar in your theme"
979
  msgstr ""
980
 
981
+ #: includes/Settings.php:245
982
+ msgid "px"
 
 
983
  msgstr ""
984
 
985
+ #: includes/Settings.php:784
986
+ msgid "Read more"
987
  msgstr ""
988
 
989
+ #: partials/admin/indexer-body.php:90
990
+ msgid "Readable"
991
  msgstr ""
992
 
993
+ #: includes/Admin/Troubleshooting.php:655
994
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:500
995
+ msgid "Rebuild index"
 
 
996
  msgstr ""
997
 
998
+ #: includes/Abstracts/ThemeIntegration.php:62
999
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:58
1000
+ #: includes/Integrations/Themes/Enfold/Enfold.php:63
1001
+ #: includes/Integrations/Themes/Shopical/Shopical.php:56
1002
+ #: includes/Integrations/Themes/Ekommart/Ekommart.php:56
1003
+ #: includes/Integrations/Themes/Bridge/Bridge.php:56
1004
+ #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:56
1005
+ #: includes/Integrations/Themes/Avada/Avada.php:59
1006
+ #: includes/Integrations/Themes/The7/The7.php:59
1007
+ #: includes/Integrations/Themes/TheGem/TheGem.php:92
1008
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:59
1009
+ #: includes/Integrations/Themes/Savoy/Savoy.php:56
1010
+ #: includes/Integrations/Themes/Flatsome/Flatsome.php:56
1011
+ #: includes/Integrations/Themes/Divi/Divi.php:74
1012
+ #: includes/Integrations/Themes/Storefront/Storefront.php:57
1013
+ #: includes/Integrations/Themes/BlockShop/BlockShop.php:56
1014
+ #: includes/Integrations/Themes/Sober/Sober.php:56
1015
+ #: includes/Integrations/Themes/Restoration/Restoration.php:58
1016
+ #: includes/Integrations/Themes/Woodmart/Woodmart.php:74
1017
+ msgid "Replace"
1018
  msgstr ""
1019
 
1020
+ #: includes/Abstracts/ThemeIntegration.php:42
1021
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:38
1022
+ #: includes/Integrations/Themes/Enfold/Enfold.php:43
1023
+ #: includes/Integrations/Themes/Shopical/Shopical.php:36
1024
+ #: includes/Integrations/Themes/Ekommart/Ekommart.php:36
1025
+ #: includes/Integrations/Themes/Bridge/Bridge.php:36
1026
+ #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:36
1027
+ #: includes/Integrations/Themes/Avada/Avada.php:39
1028
+ #: includes/Integrations/Themes/The7/The7.php:39
1029
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:36
1030
+ #: includes/Integrations/Themes/Savoy/Savoy.php:36
1031
+ #: includes/Integrations/Themes/Divi/Divi.php:54
1032
+ #: includes/Integrations/Themes/BlockShop/BlockShop.php:36
1033
+ #: includes/Integrations/Themes/Sober/Sober.php:36
1034
+ #: includes/Integrations/Themes/Restoration/Restoration.php:38
1035
+ #: includes/Integrations/Themes/Woodmart/Woodmart.php:54
1036
+ #, php-format
1037
+ msgid "Replace %s search bar"
1038
  msgstr ""
1039
 
1040
+ #: includes/Integrations/Themes/TheGem/TheGem.php:72
1041
+ msgid "Replace a search bar in TheGem "
1042
  msgstr ""
1043
 
1044
+ #: includes/Abstracts/ThemeIntegration.php:63
1045
+ msgid "Replace all %s search bars with the %."
 
 
1046
  msgstr ""
1047
 
1048
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:59
1049
+ #: includes/Integrations/Themes/Enfold/Enfold.php:64
1050
+ #: includes/Integrations/Themes/Shopical/Shopical.php:57
1051
+ #: includes/Integrations/Themes/Ekommart/Ekommart.php:57
1052
+ #: includes/Integrations/Themes/Bridge/Bridge.php:57
1053
+ #: includes/Integrations/Themes/ShopIsle/ShopIsle.php:57
1054
+ #: includes/Integrations/Themes/Avada/Avada.php:60
1055
+ #: includes/Integrations/Themes/The7/The7.php:60
1056
+ #: includes/Integrations/Themes/DFDRonneby/DFDRonneby.php:54
1057
+ #: includes/Integrations/Themes/Savoy/Savoy.php:57
1058
+ #: includes/Integrations/Themes/Flatsome/Flatsome.php:57
1059
+ #: includes/Integrations/Themes/Divi/Divi.php:75
1060
+ #: includes/Integrations/Themes/Storefront/Storefront.php:58
1061
+ #: includes/Integrations/Themes/BlockShop/BlockShop.php:57
1062
+ #: includes/Integrations/Themes/Sober/Sober.php:57
1063
+ #: includes/Integrations/Themes/Restoration/Restoration.php:59
1064
+ #: includes/Integrations/Themes/Woodmart/Woodmart.php:75
1065
+ #, php-format
1066
+ msgid "Replace all %s search bars with the %s."
1067
  msgstr ""
1068
 
1069
+ #: includes/Integrations/Themes/Flatsome/Flatsome.php:36
1070
+ msgid "Replace Flatsome search bar"
1071
  msgstr ""
1072
 
1073
+ #: includes/Integrations/Themes/Impreza/Impreza.php:39
1074
+ msgid "Replace Impreza search bar"
 
 
1075
  msgstr ""
1076
 
1077
+ #: includes/Integrations/Themes/Storefront/Storefront.php:37
1078
+ msgid "Replace Storefront search bar"
 
1079
  msgstr ""
1080
 
1081
+ #: includes/Integrations/Themes/TheGem/TheGem.php:93
1082
+ msgid "Replace the TheGem default search"
 
 
 
 
 
1083
  msgstr ""
1084
 
1085
+ #: includes/Admin/Troubleshooting.php:358
1086
+ #: includes/Admin/Troubleshooting.php:361
1087
  #, php-format
1088
+ msgid "Required PHP extension: %s"
 
 
 
1089
  msgstr ""
1090
 
1091
+ #: includes/Admin/Troubleshooting.php:997
1092
+ msgid "Response body"
1093
  msgstr ""
1094
 
1095
+ #: includes/Settings.php:678
1096
+ msgid ""
1097
+ "returns suggestions based on likely relevance, even though a search keyword "
1098
+ "may not exactly match. E.g if you type “ipho<b>m</b>e” you get the same "
1099
+ "results as for “iphone”"
1100
  msgstr ""
1101
 
1102
+ #: includes/Admin/Promo/FeedbackNotice.php:84
1103
  #, php-format
1104
+ msgid "Review %s"
 
 
1105
  msgstr ""
1106
 
1107
+ #: partials/admin/search-preview.php:74
1108
+ msgid "Sample brand <strong>name</strong>"
1109
  msgstr ""
1110
 
1111
+ #: partials/admin/search-preview.php:87
1112
+ msgid "Sample category <strong>name</strong>"
 
 
 
 
1113
  msgstr ""
1114
 
1115
+ #: partials/admin/search-preview.php:126
1116
+ msgid "Sample page <strong>name</strong>"
 
1117
  msgstr ""
1118
 
1119
+ #: partials/admin/search-preview.php:113
1120
+ msgid "Sample post <strong>name</strong>"
 
 
 
 
1121
  msgstr ""
1122
 
1123
+ #: partials/admin/search-preview.php:142
1124
+ msgid "Sample product <strong>name</strong>"
 
 
 
1125
  msgstr ""
1126
 
1127
+ #: partials/admin/search-preview.php:178
1128
+ msgid "Sample product name"
 
 
1129
  msgstr ""
1130
 
1131
+ #: partials/admin/search-preview.php:100
1132
+ msgid "Sample tag <strong>name</strong>"
 
1133
  msgstr ""
1134
 
1135
+ #: includes/Settings.php:668
1136
+ msgid "Schedule time"
1137
  msgstr ""
1138
 
1139
+ #: includes/Settings.php:642
1140
+ msgid "Scheduling indexing"
 
1141
  msgstr ""
1142
 
1143
+ #: partials/search-form.php:46 includes/Settings.php:208
1144
+ msgid "Search"
 
 
1145
  msgstr ""
1146
 
1147
+ #: includes/Settings.php:111 includes/EmbeddingViaMenu.php:247
1148
+ #: partials/admin/search-preview.php:23
1149
+ msgid "Search bar"
 
 
1150
  msgstr ""
1151
 
1152
+ #: widget.php:39 includes/Settings.php:227 includes/EmbeddingViaMenu.php:187
1153
+ msgid "Search bar only"
 
1154
  msgstr ""
1155
 
1156
+ #: partials/admin/features.php:26
1157
+ msgid "Search by variation product SKU"
 
 
1158
  msgstr ""
1159
 
1160
+ #: includes/Settings.php:119
1161
+ msgid "Search config"
1162
  msgstr ""
1163
 
1164
+ #: partials/admin/features.php:28
1165
+ msgid "Search for posts and pages"
1166
  msgstr ""
1167
 
1168
+ #: includes/Settings.php:214 includes/Helpers.php:1006
1169
+ msgid "Search for products..."
 
 
 
 
1170
  msgstr ""
1171
 
1172
+ #: widget.php:40 includes/Settings.php:228 includes/Settings.php:259
1173
+ #: includes/EmbeddingViaMenu.php:188
1174
+ msgid "Search icon"
1175
  msgstr ""
1176
 
1177
+ #: includes/EmbeddingViaMenu.php:86
1178
+ msgid "Search icon color"
 
 
 
1179
  msgstr ""
1180
 
1181
+ #: includes/Settings.php:558 partials/admin/features.php:23
1182
+ msgid "Search in attributes"
1183
  msgstr ""
1184
 
1185
+ #: includes/Admin/Promo/Upgrade.php:51
1186
+ msgid "Search in attributes and variation products SKUs (option)"
 
 
 
 
 
1187
  msgstr ""
1188
 
1189
+ #: includes/Integrations/Brands.php:184
1190
+ msgid "Search in brands"
1191
  msgstr ""
1192
 
1193
+ #: partials/admin/features.php:27
1194
+ msgid "Search in brands (WooCommerce Brands or YITH WooCommerce Brands)"
 
 
1195
  msgstr ""
1196
 
1197
+ #: includes/Settings.php:565 partials/admin/features.php:24
1198
+ msgid "Search in categories"
1199
  msgstr ""
1200
 
1201
+ #: includes/Settings.php:579 includes/Settings.php:687
1202
+ #: partials/admin/features.php:22
1203
+ msgid "Search in custom fields"
 
1204
  msgstr ""
1205
 
1206
+ #: includes/Settings.php:537
1207
+ msgid "Search in description"
1208
  msgstr ""
1209
 
1210
+ #: includes/Settings.php:543
1211
+ msgid "Search in short description"
1212
  msgstr ""
1213
 
1214
+ #: includes/Settings.php:549
1215
+ msgid "Search in SKU"
1216
  msgstr ""
1217
 
1218
+ #: includes/Settings.php:572 partials/admin/features.php:25
1219
+ msgid "Search in tags"
1220
  msgstr ""
1221
 
1222
+ #: includes/Integrations/Marketplace/Marketplace.php:198
1223
+ msgid "Search in vendors"
1224
  msgstr ""
1225
 
1226
+ #: includes/Settings.php:266
1227
+ msgid "Search input background"
1228
  msgstr ""
1229
 
1230
+ #: includes/Settings.php:280
1231
+ msgid "Search input border"
1232
  msgstr ""
1233
 
1234
+ #: includes/Settings.php:212
1235
+ msgid "Search input placeholder"
1236
  msgstr ""
1237
 
1238
+ #: includes/Settings.php:273
1239
+ msgid "Search input text"
1240
  msgstr ""
1241
 
1242
+ #: includes/Settings.php:287
1243
+ msgid "Search submit background"
1244
  msgstr ""
1245
 
1246
+ #: includes/Settings.php:294
1247
+ msgid "Search submit text"
1248
  msgstr ""
1249
 
1250
+ #: partials/admin/indexer-body.php:68
1251
+ msgid "Searchable"
1252
  msgstr ""
1253
 
1254
+ #: includes/Settings.php:551
1255
+ msgid "searching also in variable products SKU"
1256
  msgstr ""
1257
 
1258
+ #: includes/Settings.php:552
1259
+ #, php-format
1260
+ msgid ""
1261
+ "Searching in variable products SKU is available only in <a target=\"_blank\" "
1262
+ "href=\"%s\">the pro version</a>."
1263
  msgstr ""
1264
 
1265
+ #: partials/admin/features.php:31 includes/Admin/Promo/Upgrade.php:63
1266
+ msgid "See a comparison of all free and premium features!"
1267
  msgstr ""
1268
 
1269
+ #: includes/Settings.php:396 includes/Helpers.php:1004
1270
+ #: includes/Helpers.php:1005
1271
+ msgid "See all products..."
1272
+ msgstr ""
1273
+
1274
+ #: includes/Admin/SettingsAPI.php:575
1275
+ msgid "Select filter type"
1276
+ msgstr ""
1277
+
1278
+ #: includes/Settings.php:690
1279
+ msgid "select the custom fields you want to add to the search scope"
1280
+ msgstr ""
1281
+
1282
+ #: includes/Admin/Troubleshooting.php:1319
1283
+ msgid "Server environment"
1284
+ msgstr ""
1285
+
1286
+ #: includes/Admin/Troubleshooting.php:918
1287
+ #: includes/Admin/Troubleshooting.php:996
1288
  #, php-format
1289
  msgid ""
1290
+ "Server response with message <code>%s</code> and status code <code>%s</code>."
 
 
 
1291
  msgstr ""
1292
 
1293
+ #: partials/admin/settings.php:27
1294
+ #: includes/Integrations/Marketplace/Marketplace.php:191
1295
+ msgid "Settings"
1296
  msgstr ""
1297
 
1298
+ #: partials/admin/settings.php:32 partials/admin/settings.php:34
1299
+ msgid "Show advanced settings"
1300
  msgstr ""
1301
 
1302
+ #: includes/Integrations/Brands.php:207
1303
+ msgid "Show brands"
1304
  msgstr ""
1305
 
1306
+ #: includes/Settings.php:406
1307
+ msgid "Show categories"
1308
  msgstr ""
1309
 
1310
+ #: partials/admin/indexer-header.php:44
1311
+ #: partials/admin/indexer-header-demo.php:16
1312
+ msgid "Show details"
1313
  msgstr ""
1314
 
1315
+ #: includes/Settings.php:440
1316
+ msgid "Show Details panel"
1317
  msgstr ""
1318
 
1319
+ #: includes/Settings.php:427
1320
+ msgid "Show pages"
 
 
1321
  msgstr ""
1322
 
1323
+ #: includes/Settings.php:420
1324
+ msgid "Show posts"
1325
  msgstr ""
1326
 
1327
+ #: includes/Settings.php:307
1328
+ msgid "Show preloader"
1329
  msgstr ""
1330
 
1331
+ #: includes/Settings.php:363
1332
+ msgid "Show price"
1333
  msgstr ""
1334
 
1335
+ #: includes/Settings.php:369
1336
+ msgid "Show product description"
1337
  msgstr ""
1338
 
1339
+ #: includes/Settings.php:357
1340
+ msgid "Show product image"
 
 
 
1341
  msgstr ""
1342
 
1343
+ #: includes/Settings.php:376
1344
+ msgid "Show SKU"
 
 
 
1345
  msgstr ""
1346
 
1347
+ #: includes/Settings.php:197
1348
+ msgid "Show submit button"
 
1349
  msgstr ""
1350
 
1351
+ #: includes/Settings.php:413
1352
+ msgid "Show tags"
1353
  msgstr ""
1354
 
1355
+ #: includes/Integrations/Marketplace/Marketplace.php:205
1356
+ msgid "Show vendors next to products"
 
1357
  msgstr ""
1358
 
1359
+ #: includes/Admin/SettingsAPI.php:724
1360
+ msgid "Showcase"
 
1361
  msgstr ""
1362
 
1363
+ #: includes/Settings.php:702 includes/Settings.php:752
1364
+ msgid "Soft"
 
 
1365
  msgstr ""
1366
 
1367
+ #: includes/Helpers.php:999
1368
+ msgid "Sold by:"
 
1369
  msgstr ""
1370
 
1371
+ #: includes/Admin/Troubleshooting.php:425
1372
+ #: includes/Admin/Troubleshooting.php:475
1373
+ #: includes/Admin/Troubleshooting.php:518
1374
+ #: includes/Admin/Troubleshooting.php:611
1375
+ #: includes/Admin/Troubleshooting.php:696
1376
+ #: includes/Admin/Troubleshooting.php:1031
1377
+ #: includes/Admin/Troubleshooting.php:1077
1378
+ #: includes/Admin/Troubleshooting.php:1152
1379
+ msgid "Solution"
1380
  msgstr ""
1381
 
1382
+ #: includes/Admin/Troubleshooting.php:923
1383
+ msgid "Solutions"
 
1384
  msgstr ""
1385
 
1386
+ #: includes/Admin/Troubleshooting.php:325
1387
+ msgid "Solutions:"
1388
  msgstr ""
1389
 
1390
+ #: includes/Admin/Troubleshooting.php:1104
1391
+ #, php-format
1392
+ msgid ""
1393
+ "Some NGINX configuration may block executing PHP files included directly in "
1394
+ "the plugins directory. There is no one solution. It depends on your NGINX "
1395
+ "configuration. We recommend contact your hosting provider and ask to allow "
1396
+ "to execute the following file: %s"
1397
  msgstr ""
1398
 
1399
+ #: includes/Settings.php:635
1400
+ msgid "Speed up search!"
1401
  msgstr ""
1402
 
1403
+ #: includes/Admin/Promo/Upgrade.php:47
1404
+ msgid "Speed up search! (even 10× faster) - users love it!"
1405
  msgstr ""
1406
 
1407
+ #: partials/admin/indexer-body.php:72 partials/admin/indexer-body.php:95
1408
+ #: partials/admin/indexer-body.php:120
1409
+ msgid "Start"
1410
  msgstr ""
1411
 
1412
+ #: includes/Settings.php:107
1413
+ msgid "Starting"
1414
  msgstr ""
1415
 
1416
+ #: partials/admin/indexer-body.php:54
1417
+ msgid "Status"
1418
  msgstr ""
1419
 
1420
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:497
1421
+ msgid "Stop process"
1422
  msgstr ""
1423
 
1424
+ #: includes/Integrations/Themes/Storefront/Storefront.php:44
1425
+ msgid "Storefront Theme"
1426
  msgstr ""
1427
 
1428
+ #: includes/Settings.php:205
1429
+ msgid "Submit label"
1430
  msgstr ""
1431
 
1432
+ #: includes/Admin/Troubleshooting.php:1151
1433
+ msgid "Sucuri Security firewall may block AJAX calls of the live search"
1434
  msgstr ""
1435
 
1436
+ #: includes/Settings.php:494
1437
+ msgid "Suggestion background"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1438
  msgstr ""
1439
 
1440
+ #: includes/Settings.php:501
1441
+ msgid "Suggestion selected"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1442
  msgstr ""
1443
 
1444
+ #: includes/Settings.php:488
1445
+ msgid "Suggestions colors"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1446
  msgstr ""
1447
 
1448
+ #: includes/Settings.php:598 includes/Settings.php:604
1449
+ #: partials/admin/features.php:29 includes/Admin/Promo/Upgrade.php:50
1450
+ msgid "Synonyms"
1451
+ msgstr ""
1452
+
1453
+ #: includes/Settings.php:607
1454
+ msgid ""
1455
+ "Synonyms should be separated by a comma. Each new synonyms group is entered "
1456
+ "on a new line. You can use a phrase instead of a single word. <br /> <br />"
1457
+ "Sample list:<br /> <br /><span class=\"dgwt-wcas-synonyms-sample\">sofa, "
1458
+ "couch, davenport, divan, settee<br />big, grand, great, large, outsize</span>"
1459
+ msgstr ""
1460
+
1461
+ #: partials/admin/indexer-body.php:115
1462
+ msgid "Taxonomies"
1463
+ msgstr ""
1464
+
1465
+ #: includes/Settings.php:508
1466
+ msgid "Text color"
1467
+ msgstr ""
1468
+
1469
+ #: includes/Admin/Troubleshooting.php:1076
1470
+ msgid "The .htaccess file(s) may blocking AJAX calls of the live search"
1471
+ msgstr ""
1472
+
1473
+ #: includes/Settings.php:441
1474
+ msgid ""
1475
+ "The Details panel is an additional container for extended information. The "
1476
+ "details are changed dynamically when a user mouse over one of the "
1477
+ "suggestions."
1478
+ msgstr ""
1479
+
1480
+ #: includes/Admin/Promo/FeedbackNotice.php:78
1481
  #, php-format
1482
+ msgid ""
1483
+ "The FiboSearch team have spent countless hours developing it, and it would "
1484
+ "mean a lot to me if you %ssupport it with a quick review on WordPress.org.%s"
1485
  msgstr ""
1486
 
1487
+ #: includes/Admin/Troubleshooting.php:729
1488
+ #, php-format
1489
+ msgid "The Jetpack Search module is incompatible with the %s plugin."
1490
+ msgstr ""
1491
+
1492
+ #. Description of the plugin
1493
  msgid ""
1494
+ "The most popular WooCommerce product search. Gives your users a well-"
1495
+ "designed advanced AJAX search bar with live search suggestions."
1496
  msgstr ""
1497
 
1498
+ #: includes/Engines/TNTSearchMySQL/Indexer/Scheduler.php:281
1499
  #, php-format
1500
+ msgid "the next index rebuild: %s"
1501
+ msgstr ""
1502
+
1503
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:470
1504
+ msgid "The search index could not be built."
1505
+ msgstr ""
1506
+
1507
+ #: partials/admin/indexer-header-demo.php:11
1508
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:475
1509
+ msgid "The search index does not exist yet. Build it now."
1510
+ msgstr ""
1511
+
1512
+ #: includes/Admin/Troubleshooting.php:659
1513
+ msgid "The search index structure isn't completely"
1514
+ msgstr ""
1515
+
1516
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:465
1517
+ msgid "The search index was built successfully."
1518
+ msgstr ""
1519
+
1520
+ #: includes/Admin/Troubleshooting.php:920
1521
  msgid ""
1522
+ "The search uses a dedicated URL to makes queries. In your case, this URL is "
1523
+ "blocked for some reason. Let visit it directly in your browser:"
1524
  msgstr ""
1525
 
1526
+ #: includes/Settings.php:237
1527
+ msgid "The search will open in overlay on mobile"
1528
  msgstr ""
1529
 
1530
+ #: includes/Admin/Troubleshooting.php:917
1531
+ msgid ""
1532
+ "The server returns an incorrect response for the search engine's AJAX calls"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1533
  msgstr ""
1534
 
1535
+ #: includes/Settings.php:605
1536
+ msgid ""
1537
+ "The synonyms feature allows your users to find more relevant results. If "
1538
+ "your products have alternative names and users often misspell them, consider "
1539
+ "adding synonyms."
1540
  msgstr ""
1541
 
1542
  #: includes/Integrations/Themes/TheGem/TheGem.php:79
1543
  msgid "TheGem Theme"
1544
  msgstr ""
1545
 
1546
+ #: partials/admin/how-to-use.php:14
1547
+ msgid "There are four easy ways to display the search bar in your theme"
1548
  msgstr ""
1549
 
1550
+ #: includes/Admin/Troubleshooting.php:924
 
1551
  msgid ""
1552
+ "Think about what can block the execution of PHP scripts inside <code>wp-"
1553
+ "content</code> or <code>wp-content/plugins</code> directory. Maybe you use "
1554
+ "some security plugins or you have custom code that may block it."
1555
  msgstr ""
1556
 
1557
+ #: includes/Admin/Troubleshooting.php:322
1558
+ msgid ""
1559
+ "This issue may affect the building of the search index. Indexer may stuck at "
1560
+ "0%."
1561
  msgstr ""
1562
 
1563
+ #: includes/Admin/Troubleshooting.php:318
1564
+ msgid ""
1565
+ "This issue may affect the search results page and e.g. display all products "
1566
+ "every time"
1567
  msgstr ""
1568
 
1569
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:454
1570
+ msgid "This process will continue in the background. You can leave this page!"
1571
+ msgstr ""
1572
+
1573
+ #: partials/admin/indexer-body.php:81 partials/admin/indexer-body.php:104
1574
+ #: partials/admin/indexer-body.php:129
1575
+ msgid "Time"
1576
+ msgstr ""
1577
+
1578
+ #: widget.php:32
1579
+ msgid "Title"
1580
+ msgstr ""
1581
+
1582
+ #: includes/Settings.php:205
1583
+ msgid "To display the magnifier icon leave this field empty."
1584
+ msgstr ""
1585
+
1586
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:66
1587
  msgid ""
1588
+ "To replace the search bar you have to enable \"Predictive Search\" option in "
1589
+ "the Shopkeeper settings."
 
1590
  msgstr ""
1591
 
1592
+ #: includes/Settings.php:191
1593
+ msgid "To set 100% width leave blank"
1594
  msgstr ""
1595
 
1596
+ #: includes/Admin/Troubleshooting.php:1204
1597
+ msgid "TranslatePress"
1598
  msgstr ""
1599
 
1600
+ #: partials/admin/indexer-header.php:29 includes/Admin/Troubleshooting.php:47
1601
+ #: includes/Admin/Troubleshooting.php:66
1602
+ msgid "Troubleshooting"
1603
  msgstr ""
1604
 
1605
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:503
1606
+ msgid "Try to build the index again."
1607
  msgstr ""
1608
 
1609
+ #: partials/admin/features.php:16
1610
+ msgid ""
1611
+ "Update now and boosts your sales. You will receive <b>30-day satisfaction "
1612
+ "guarantee</b>. A return on investment will come very quickly."
1613
  msgstr ""
1614
 
1615
+ #: includes/Admin/Promo/Upgrade.php:58
1616
  msgid ""
1617
+ "Update now and increase your sales. You will receive 30-day satisfaction "
1618
+ "guarantee. A return on investment will come very quickly."
1619
  msgstr ""
1620
 
1621
+ #: includes/Admin/Promo/Upgrade.php:65
1622
+ msgid "Upgrade Now"
 
1623
  msgstr ""
1624
 
1625
+ #: partials/admin/features.php:33
1626
+ msgid "Upgrade Now!"
1627
+ msgstr ""
1628
+
1629
+ #: includes/Settings.php:314
1630
+ msgid "Upload preloader image"
1631
+ msgstr ""
1632
+
1633
+ #: partials/admin/how-to-use.php:17
1634
  #, php-format
1635
+ msgid "Using a shortcode - %s"
 
1636
  msgstr ""
1637
 
1638
+ #: partials/admin/how-to-use.php:19
1639
  #, php-format
1640
+ msgid "Using PHP - %s"
 
1641
  msgstr ""
1642
 
1643
+ #: includes/Admin/Troubleshooting.php:1247
1644
+ msgid "Valid search results test"
 
1645
  msgstr ""
1646
 
1647
+ #: includes/Helpers.php:989
1648
+ msgid "Vendor"
 
 
1649
  msgstr ""
1650
 
1651
+ #: includes/Helpers.php:996
1652
+ msgid "Vendors"
1653
+ msgstr ""
1654
+
1655
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:453
1656
+ msgid "Wait... Indexing in progress"
1657
  msgstr ""
1658
 
1659
+ #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:459
1660
+ msgid "Wait... The index build process is canceling"
1661
+ msgstr ""
1662
+
1663
+ #: includes/Integrations/Themes/Shopkeeper/Shopkeeper.php:72
1664
+ msgid "Warning!"
1665
+ msgstr ""
1666
+
1667
+ #: includes/Admin/Troubleshooting.php:1078
1668
  #, php-format
1669
+ msgid ""
1670
+ "We recommend contact your hosting provider and ask to check <code>%s</code> "
1671
+ "file(s) on your server."
1672
  msgstr ""
1673
 
1674
+ #: includes/Integrations/Marketplace/Marketplace.php:174
1675
+ msgid "We support this plugin."
 
1676
  msgstr ""
1677
 
1678
+ #: partials/admin/embedding-in-theme.php:20
1679
+ msgid ""
1680
+ "We support this theme and you can easily replace all default search bars."
1681
  msgstr ""
1682
 
1683
+ #: includes/Settings.php:662
1684
+ msgid "weekly"
 
1685
  msgstr ""
1686
 
1687
+ #: includes/Admin/Troubleshooting.php:919
1688
+ msgid "What's wrong?"
1689
+ msgstr ""
1690
+
1691
+ #: partials/admin/how-to-use.php:18
1692
+ msgid "Widgets Screen"
1693
+ msgstr ""
1694
+
1695
+ #: includes/Settings.php:134
1696
+ msgid "with simple tricks"
1697
+ msgstr ""
1698
+
1699
+ #: includes/Admin/Troubleshooting.php:1237
1700
+ msgid "WooCommerce Multilingual"
1701
+ msgstr ""
1702
+
1703
+ #: includes/Admin/Troubleshooting.php:769
1704
+ msgid "WooCommerce Multilingual plugin is enabled but not effective"
1705
+ msgstr ""
1706
+
1707
+ #: includes/Admin/Troubleshooting.php:1212
1708
+ msgid "WordPress loading problem"
1709
  msgstr ""
1710
 
1711
+ #: includes/Admin/Troubleshooting.php:378
1712
+ #: includes/Admin/Troubleshooting.php:1173
1713
+ msgid "WordPress version"
1714
+ msgstr ""
1715
+
1716
+ #: includes/Admin/Troubleshooting.php:202
1717
+ msgid "You are using one or more incompatible plugins"
1718
+ msgstr ""
1719
+
1720
+ #: includes/Admin/Troubleshooting.php:243
1721
+ msgid "You are using TranslatePress with Free version of our plugin"
1722
+ msgstr ""
1723
+
1724
+ #: includes/Admin/Troubleshooting.php:614
1725
+ msgid ""
1726
+ "You can run these actions manually via Advanced Cron Manager. Then the "
1727
+ "Indexer should run. If the index stuck again, run these actions manually one "
1728
+ "more time until the finished index."
1729
+ msgstr ""
1730
+
1731
+ #: includes/Admin/Troubleshooting.php:1153
1732
+ msgid ""
1733
+ "You need to log in to your <a href=\"https://login.sucuri.net\" "
1734
+ "target=\"_blank\">Sucuri panel</a>."
1735
+ msgstr ""
1736
+
1737
+ #: includes/Admin/Troubleshooting.php:922
1738
+ msgid ""
1739
+ "You should see <code>pong</code> word as a response. Probably you see "
1740
+ "something else."
1741
+ msgstr ""
1742
+
1743
+ #: includes/Integrations/Marketplace/Marketplace.php:173
1744
  #, php-format
1745
+ msgid "You use %s plugin version %s"
 
1746
  msgstr ""
1747
 
1748
+ #: includes/Admin/Troubleshooting.php:222
1749
+ #: includes/Admin/Troubleshooting.php:224
1750
  #, php-format
1751
+ msgid ""
1752
+ "You use the %s plugin, which may cause errors in the search results returned "
1753
+ "by our plugin."
1754
  msgstr ""
1755
 
1756
+ #: includes/Admin/Troubleshooting.php:213
1757
+ #: includes/Admin/Troubleshooting.php:217
1758
+ #, php-format
1759
+ msgid "You use the %s plugin. The %s does not support this plugin."
1760
  msgstr ""
1761
 
1762
+ #: partials/admin/embedding-in-theme.php:19
1763
+ #, php-format
1764
+ msgid "You use the <b>%s</b> theme%s. Fantastic!"
1765
  msgstr ""
1766
 
1767
+ #: includes/Admin/Troubleshooting.php:770
1768
+ #, php-format
1769
  msgid ""
1770
+ "You use the WPML Multilingual CMS and WooCommerce Multilingual plugins, but "
1771
+ "the latter requires action to be fully functional. Check <a href=\"%s\" "
1772
+ "target=\"_blank\">WooCommerce Multilingual status</a>."
1773
  msgstr ""
1774
 
1775
+ #: includes/Admin/Troubleshooting.php:765
1776
+ #, php-format
1777
  msgid ""
1778
+ "You use the WPML Multilingual CMS plugin and to correctly search for "
1779
+ "products in multiple languages, you must also install the <a href=\"%s\" "
1780
+ "target=\"_blank\">WooCommerce Multilingual</a> plugin."
1781
  msgstr ""
1782
 
1783
+ #: includes/Admin/Troubleshooting.php:427
1784
+ msgid "Your settings should looks like the picture below:"
1785
+ msgstr ""
1786
+
1787
+ #: includes/Admin/Troubleshooting.php:267
1788
+ msgid "Your site can perform loopback requests"
1789
+ msgstr ""
1790
+
1791
+ #: includes/Admin/Troubleshooting.php:314
1792
+ msgid "Your site could not complete a loopback request"
1793
  msgstr ""
partials/admin/embedding-in-theme.php CHANGED
@@ -16,6 +16,6 @@ if ( DGWT_WCAS()->themeCompatibility->isCurrentThemeSupported() ):
16
  $parentLabel = ! empty( $parentName ) ? ', ' . sprintf( __( 'child theme of <b>%s</b>', 'ajax-search-for-woocommerce' ), $parentName ) : '';
17
 
18
  ?>
19
- <h2><?php printf( __( 'You use <b>%s</b> theme%s. Fantastic!', 'ajax-search-for-woocommerce' ), $name, $parentLabel ); ?></h2>
20
  <p><?php _e( 'We support this theme and you can easily replace all default search bars.', 'ajax-search-for-woocommerce' ); ?></p>
21
  <?php endif; ?>
16
  $parentLabel = ! empty( $parentName ) ? ', ' . sprintf( __( 'child theme of <b>%s</b>', 'ajax-search-for-woocommerce' ), $parentName ) : '';
17
 
18
  ?>
19
+ <h2><?php printf( __( 'You use the <b>%s</b> theme%s. Fantastic!', 'ajax-search-for-woocommerce' ), $name, $parentLabel ); ?></h2>
20
  <p><?php _e( 'We support this theme and you can easily replace all default search bars.', 'ajax-search-for-woocommerce' ); ?></p>
21
  <?php endif; ?>
partials/admin/features.php CHANGED
@@ -7,13 +7,13 @@ if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
7
  exit;
8
  }
9
 
10
- $utmLink = 'https://ajaxsearch.pro/?utm_source=wp-admin&utm_medium=referral&utm_campaign=settings&utm_content=features&utm_gen=utmdc#features-comparison';
11
  ?>
12
 
13
  <div class="dgwt-wcas-upgrade-s">
14
- <h2 class="dgwt-wcas-upgrade-s__title"><?php _e( 'If users can’t find the product they’re searching for, they can’t buy it. Help your customers to find the right products even <span>10x faster</span>.', 'ajax-search-for-woocommerce' ); ?></h2>
15
  <p class="dgwt-wcas-upgrade-s__subtitle">
16
- <?php _e( 'Update now and boosts your sales. You will receive <b>14-day satisfaction guarantee</b>. A return on investment will come very quickly.', 'ajax-search-for-woocommerce' ); ?>
17
  </p>
18
  <ul>
19
  <li><strong>+ <?php _e( '<b>New Ultra-Fast Search Engine</b> – works very fast even with 100,000+ products ', 'ajax-search-for-woocommerce' ); ?></strong></li>
7
  exit;
8
  }
9
 
10
+ $utmLink = 'https://fibosearch.com/pro-vs-free/?utm_source=wp-admin&utm_medium=referral&utm_campaign=settings&utm_content=features&utm_gen=utmdc';
11
  ?>
12
 
13
  <div class="dgwt-wcas-upgrade-s">
14
+ <h2 class="dgwt-wcas-upgrade-s__title"><?php _e( 'If users can’t find the product they’re searching for, they can’t buy it. Help your customers to find the right products even <span>10× faster</span>.', 'ajax-search-for-woocommerce' ); ?></h2>
15
  <p class="dgwt-wcas-upgrade-s__subtitle">
16
+ <?php _e( 'Update now and boosts your sales. You will receive <b>30-day satisfaction guarantee</b>. A return on investment will come very quickly.', 'ajax-search-for-woocommerce' ); ?>
17
  </p>
18
  <ul>
19
  <li><strong>+ <?php _e( '<b>New Ultra-Fast Search Engine</b> – works very fast even with 100,000+ products ', 'ajax-search-for-woocommerce' ); ?></strong></li>
partials/admin/how-to-use.php CHANGED
@@ -8,15 +8,15 @@ if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
8
  }
9
 
10
 
11
- $utmLink = 'https://ajaxsearch.pro/pricing/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-link&utm_content=how-to-use';
12
 
13
  ?>
14
  <h4><?php _e( 'There are four easy ways to display the search bar in your theme', 'ajax-search-for-woocommerce' ); ?>: </h4>
15
  <ol>
16
- <li><?php printf( __( 'As a menu item - go to %s and add menu item "AJAX Search bar". Done!', 'ajax-search-for-woocommerce' ), '<a href="' . admin_url( 'nav-menus.php' ) . '" target="_blank">' . __( 'Menu Screen', 'ajax-search-for-woocommerce' ) . '</a>' ) ?>
17
- <li><?php printf( __( 'Using a shortcode - %s', 'ajax-search-for-woocommerce' ), '<code>[wcas-search-form]</code>' ); ?></li>
18
- <li><?php printf( __( 'As a widget - go to %s and choose "AJAX Search bar"', 'ajax-search-for-woocommerce' ), '<a href="' . admin_url( 'widgets.php' ) . '" target="_blank">' . __( 'Widgets Screen', 'ajax-search-for-woocommerce' ) . '</a>' ) ?>
19
- <li><?php printf( __( 'By PHP - %s', 'ajax-search-for-woocommerce' ), '<code>&lt;?php echo do_shortcode(\'[wcas-search-form]\'); ?&gt;</code>' ); ?></li>
20
  </ol>
21
  <?php if ( ! dgoraAsfwFs()->is_premium() ): ?>
22
  <span class="dgwt-wcas-our-devs"><?php printf( __( 'Are there any difficulties? <b>We will do it for you!</b> We offer free of charge search bar implementation for Pro users. <a target="_blank" href="%s">Become one now!</a>', 'ajax-search-for-woocommerce' ), $utmLink ); ?></span>
8
  }
9
 
10
 
11
+ $utmLink = 'https://fibosearch.com/pricing/?utm_source=wp-admin&utm_medium=referral&utm_campaign=upgrade-link&utm_content=how-to-use';
12
 
13
  ?>
14
  <h4><?php _e( 'There are four easy ways to display the search bar in your theme', 'ajax-search-for-woocommerce' ); ?>: </h4>
15
  <ol>
16
+ <li><?php printf( __( 'As a menu item - go to the %s and add the menu item “FiboSearch bar”. Done!', 'ajax-search-for-woocommerce' ), '<a href="' . admin_url( 'nav-menus.php' ) . '" target="_blank">' . __( 'Menu Screen', 'ajax-search-for-woocommerce' ) . '</a>' ) ?>
17
+ <li><?php printf( __( 'Using a shortcode - %s', 'ajax-search-for-woocommerce' ), '<code>[fibosearch]</code>' ); ?></li>
18
+ <li><?php printf( __( 'As a widget - go to the %s and choose “FiboSearch bar', 'ajax-search-for-woocommerce' ), '<a href="' . admin_url( 'widgets.php' ) . '" target="_blank">' . __( 'Widgets Screen', 'ajax-search-for-woocommerce' ) . '</a>' ) ?>
19
+ <li><?php printf( __( 'Using PHP - %s', 'ajax-search-for-woocommerce' ), '<code>&lt;?php echo do_shortcode(\'[fibosearch]\'); ?&gt;</code>' ); ?></li>
20
  </ol>
21
  <?php if ( ! dgoraAsfwFs()->is_premium() ): ?>
22
  <span class="dgwt-wcas-our-devs"><?php printf( __( 'Are there any difficulties? <b>We will do it for you!</b> We offer free of charge search bar implementation for Pro users. <a target="_blank" href="%s">Become one now!</a>', 'ajax-search-for-woocommerce' ), $utmLink ); ?></span>
partials/admin/search-preview.php CHANGED
@@ -43,7 +43,7 @@ $labelSeeAll = Helpers::getLabel( 'show_more' );
43
  />
44
  <div class="dgwt-wcas-preloader"></div>
45
 
46
- <button type="submit" name="dgwt-wcas-search-submit" class="js-dgwt-wcas-search-submit dgwt-wcas-search-submit"><?php
47
  echo '<span class="js-dgwt-wcas-search-submit-l">' . esc_html( $submitText ) . '</span>';
48
  echo '<span class="js-dgwt-wcas-search-submit-m">' . Helpers::getMagnifierIco() . '</span>';
49
  ?>
43
  />
44
  <div class="dgwt-wcas-preloader"></div>
45
 
46
+ <button type="submit" class="js-dgwt-wcas-search-submit dgwt-wcas-search-submit"><?php
47
  echo '<span class="js-dgwt-wcas-search-submit-l">' . esc_html( $submitText ) . '</span>';
48
  echo '<span class="js-dgwt-wcas-search-submit-m">' . Helpers::getMagnifierIco() . '</span>';
49
  ?>
partials/admin/settings.php CHANGED
@@ -18,18 +18,19 @@ if ( DGWT_WCAS()->themeCompatibility->isCurrentThemeSupported() ) {
18
 
19
 
20
  <h2 class="dgwt-wcas-settings__head">
21
- <img class="dgwt-wcas-settings__logo" src="<?php echo DGWT_WCAS_URL; ?>assets/img/logo-nobg-50.png"/>
22
- <span class="dgwt-wcas-settings__title">
23
- <?php
24
- if ( dgoraAsfwFs()->is_premium() ) {
25
- _e( 'AJAX Search for WooCommerce (PRO) Settings', 'ajax-search-for-woocommerce' );
26
- } else {
27
- _e( 'AJAX Search for WooCommerce Settings', 'ajax-search-for-woocommerce' );
28
- }
29
- ?>
30
- </span>
31
  <span class="dgwt-wcas-settings__advanced js-dgwt-wcas-settings__advanced">
32
- <span class="js-dgwt-wcas-adv-settings-toggle woocommerce-input-toggle woocommerce-input-toggle--<?php echo $advSettings ? 'enabled' : 'disabled'; ?>"><?php _e( 'Show advanced settings', 'ajax-search-for-woocommerce' ); ?></span>
 
 
33
  <span class="dgwt-wcas-adv-settings-label"><?php _e( 'Show advanced settings', 'ajax-search-for-woocommerce' ); ?></span>
34
  </span>
35
  </h2>
18
 
19
 
20
  <h2 class="dgwt-wcas-settings__head">
21
+ <div class="dgwt-wcas-settings__title">
22
+ <div class="dgwt-wcas-settings__title-top">
23
+ <div class="dgwt-wcas-settings-logo-wrapper">
24
+ <img class="dgwt-wcas-settings-logo" src="<?php echo DGWT_WCAS_URL . 'assets/img/logo-30.png'; ?>"/>
25
+ <span class="dgwt-wcas-settings-logo-pro">Pro</span>
26
+ </div>
27
+ <span class="dgwt-wcas-settings__title-core"><?php _e( 'Settings', 'ajax-search-for-woocommerce' ); ?></span>
28
+ </div>
29
+ </div>
 
30
  <span class="dgwt-wcas-settings__advanced js-dgwt-wcas-settings__advanced">
31
+ <span
32
+ class="js-dgwt-wcas-adv-settings-toggle woocommerce-input-toggle woocommerce-input-toggle--<?php echo $advSettings ? 'enabled' : 'disabled'; ?>"><?php _e( 'Show advanced settings',
33
+ 'ajax-search-for-woocommerce' ); ?></span>
34
  <span class="dgwt-wcas-adv-settings-label"><?php _e( 'Show advanced settings', 'ajax-search-for-woocommerce' ); ?></span>
35
  </span>
36
  </h2>
partials/search-form.php CHANGED
@@ -28,7 +28,7 @@ $customParams = apply_filters( 'dgwt/wcas/search_bar/custom_params', array(), DG
28
  <?php echo $hasSubmit !== 'on' ? Helpers::getMagnifierIco() : ''; ?>
29
  <label class="screen-reader-text"
30
  for="dgwt-wcas-search-input-<?php echo $uniqueID; ?>"><?php _e( 'Products search',
31
- 'ajax-search-for-woocommerce' ) ?></label>
32
 
33
  <input id="dgwt-wcas-search-input-<?php echo $uniqueID; ?>"
34
  type="search"
@@ -42,7 +42,8 @@ $customParams = apply_filters( 'dgwt/wcas/search_bar/custom_params', array(), DG
42
  <div class="dgwt-wcas-preloader"></div>
43
 
44
  <?php if ( $hasSubmit === 'on' ): ?>
45
- <button type="submit" name="dgwt-wcas-search-submit"
 
46
  class="dgwt-wcas-search-submit"><?php echo empty( $submitText ) ? Helpers::getMagnifierIco() : esc_html( $submitText ); ?></button>
47
  <?php endif; ?>
48
 
28
  <?php echo $hasSubmit !== 'on' ? Helpers::getMagnifierIco() : ''; ?>
29
  <label class="screen-reader-text"
30
  for="dgwt-wcas-search-input-<?php echo $uniqueID; ?>"><?php _e( 'Products search',
31
+ 'ajax-search-for-woocommerce' ); ?></label>
32
 
33
  <input id="dgwt-wcas-search-input-<?php echo $uniqueID; ?>"
34
  type="search"
42
  <div class="dgwt-wcas-preloader"></div>
43
 
44
  <?php if ( $hasSubmit === 'on' ): ?>
45
+ <button type="submit"
46
+ aria-label="<?php echo empty( $submitText ) ? __( 'Search','ajax-search-for-woocommerce' ) : esc_html( $submitText ); ?>"
47
  class="dgwt-wcas-search-submit"><?php echo empty( $submitText ) ? Helpers::getMagnifierIco() : esc_html( $submitText ); ?></button>
48
  <?php endif; ?>
49
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
- === Ajax Search for WooCommerce ===
2
  Contributors: damian-gora, matczar
3
  Tags: woocommerce search, ajax search, search by sku, product search, woocommerce
4
  Requires at least: 5.0
5
- Tested up to: 5.6
6
- Requires PHP: 5.5
7
- Stable tag: 1.8.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,11 +12,11 @@ The most popular WooCommerce product search plugin. Gives your users a well-desi
12
 
13
  == Description ==
14
 
15
- The most popular **WooCommerce product search plugin**. Gives your users a well-designed advanced AJAX search bar with live search suggestions.
16
 
17
- By default, WooCommerce provides a very simple search solution, without live product search or even SKU search. Ajax Search for WooCommerce provides advanced search with live suggestions.
18
 
19
- Who doesn’t love instant, as-you-type suggestions? In 2020, customers simply expect smart product search. Baymard Institute’s latest UX research reveals that search autocomplete, auto-suggest, or instant search feature **is now offered at 96% of major e-commerce sites**. It's a must-have feature for every online business that can’t afford to lose customers. Why? AJAX search helps users save time and makes shopping easier. As a result, it really boosts sales.
20
 
21
  = Features =
22
  &#9989; **Search by product title, long and short description**
@@ -25,14 +25,14 @@ Who doesn’t love instant, as-you-type suggestions? In 2020, customers simply e
25
  &#9989; Show **product price** in live search results
26
  &#9989; Show **product description** in live search results
27
  &#9989; Show **SKU** in live search results
28
- &#9989; **Mobile First** – special mobile search mode for better UX
29
- &#9989; **Details panels** with extended information – **"add to cart" button** with a **quantity field** and **extended product** data displayed on hovering over the live suggestion
30
  &#9989; **Easy implementation** in your theme - embed the plugin using a **shortcode**, as a **menu item** or as a **widget**
31
  &#9989; **Terms search** – search for product categories and tags
32
  &#9989; **Limit** displayed suggestions – the number is customizable
33
  &#9989; **The minimum number of characters** required to display suggestions – the number is customizable
34
  &#9989; **Better ordering** – a smart algorithm ensures that the displayed results are as accurate as possible
35
- &#9989; **Support for the results page** - after type enter users got the same results as in ajax search bar
36
  &#9989; **Grouping instant search results by type** – displaying e.g. first matching categories, then matching products
37
  &#9989; **Google Analytics** support
38
  &#9989; **WPML** compatible
@@ -40,13 +40,13 @@ Who doesn’t love instant, as-you-type suggestions? In 2020, customers simply e
40
  &#9989; **Personalization** of search bar and autocomplete suggestions - labels, colors, preloader, image and more
41
 
42
  = Try the PRO version =
43
- Ajax search comes also in the Pro version, with a modern, inverted index based search engine. Ajax Search Pro works **even 10x faster** than its Free version or other popular search solutions for WooCommerce.
44
 
45
- [Upgrade to PRO and boost your sales!](https://ajaxsearch.pro/pricing/?utm_source=readme&utm_medium=referral&utm_content=pricing&utm_campaign=asfw)
46
 
47
  = PRO features =
48
 
49
- &#9989; **Ultra-Fast Search Engine** based on the inverted index – works very fast even with 100,000+ products
50
  &#9989; **Fuzzy search** – works even with minor typos
51
  &#9989; **Search in custom fields**
52
  &#9989; **Search in attributes**
@@ -54,92 +54,111 @@ Ajax search comes also in the Pro version, with a modern, inverted index based s
54
  &#9989; **Search in tags**
55
  &#9989; **Search in brands** (WooCommerce Brands or YITH WooCommerce Brands)
56
  &#9989; **Search by variation product SKU** – also shows variable products in live search after typing in the exact matching SKU
57
- &#9989; **Search for posts** – shows also matching posts in live search
58
- &#9989; **Search for pages** – shows also matching posts in live search
59
  &#9989; **Synonyms**
 
 
60
  &#9989; Professional and fast **help with embedding** or replacing the search bar in your theme
61
  &#9989; and more...
62
- &#9989; SEE ALL PRO [FEATURES](https://ajaxsearch.pro?utm_source=readme&utm_medium=referral&utm_content=features&utm_campaign=asfw#features-comparison)!
63
 
64
  = Showcase =
65
- See how it works for others: [Showcase](https://ajaxsearch.pro/showcase/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=showcase&utm_gen=utmdc).
66
 
67
  = Feedback =
68
- Any suggestions or comments are welcome. Feel free to contact me via the [contact form](https://ajaxsearch.pro/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc).
69
 
70
  == Installation ==
71
 
72
  1. Install the plugin from within the Dashboard or upload the directory `ajax-search-for-woocommerce` and all its contents to the `/wp-content/plugins/` directory.
73
  2. Activate the plugin through the 'Plugins' menu in WordPress.
74
- 3. Go to `WooCommerce -> AJAX Search bar` and set your preferences.
75
- 4. Use a shortcode `[wcas-search-form]` or go to the `Appearance -> Menu` and add menu item `AJAX Search bar` or go to the `Appearance -> Widgets` and choose `AJAX Search bar`
76
 
77
  == Frequently Asked Questions ==
78
 
79
  = How do I embed the search bar in my theme? =
80
- There are five easy ways to display the AJAX search box in your theme:
81
 
82
- – **As a menu item** - in your WordPress admin panel, go to `Appearance -> Menu` and add `AJAX Search bar` as a menu item
83
  – **Using a shortcode**
84
 
85
- `[wcas-search-form]`
86
 
87
- – **As a widget** - in your WordPress admin panel, go to `Appearance -> Widgets` and choose `AJAX Search bar`
88
 
89
  – **Using PHP**
90
 
91
- `<?php echo do_shortcode('[wcas-search-form]'); ?>`
92
 
93
- – **We will do it for you!** - we offer free of charge search bar implementation for Pro users. Become one now!
94
 
95
- Or insert this function inside php file ( often it used to insert form inside page templates files ):
96
 
97
- = How do I replace the existing search bar in my theme with AJAX Search? =
98
- We have prepared a one-click replacement of search bar for the following themes:
99
 
100
  * Storefront
 
101
  * Flatsome
102
  * OceanWP
103
  * Astra
104
  * Avada
105
- * and 24 more... See complete list of integrated themes on [our docs](https://ajaxsearch.pro/docs/integrations/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=theme-integrations).
 
106
 
107
 
108
- If you want to replace your search bar in some other theme, please [contact our support team](https://ajaxsearch.pro/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc)
109
- Also, we have developed snippets to replace the search bar in Porto, Autusin, Avada, Hestia, Electro and more themes. We will share the code soon.
110
- We offer replacing the search bar in your theme for free after you upgrade to the Pro version.
111
 
112
  = Can I add the search bar as a WordPress menu item? =
113
- **Yes, you can!** Go to `Appearance -> Menu`. You will see a new menu item called "AJAX Search bar". Select it and click "Add to menu". Done!
114
 
115
- = I have a question, where do I ask? =
116
- You can submit a ticket on the plugin [website](https://ajaxsearch.pro/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc) and the support team will get in touch with you shortly. We also answer questions on the [WordPress Support Forum](https://wordpress.org/support/plugin/ajax-search-for-woocommerce/).
117
 
118
  = Do you offer customization support? =
119
- Depending on the them you use, sometimes the search bar requires minor improvements in appearance. We guarantee fast CSS corrections for all Pro plugin users, but we also help Free plugin users.
120
 
121
  = Where can I find plugin settings? =
122
- In your WordPress admin panel, go to `WooCommerce -> AJAX Search bar`. The AJAX search settings page is a submenu of the WooCommerce menu.
123
 
124
  = Who is the Pro plugin version for? =
125
- The Pro plugin version is for all online sellers looking to **increase sales** by providing an ultra-fast and smart search engine to their clients.
126
 
127
- The main difference between the Pro and Free versions is search speed and search scope. The Pro version has a new fast and smart search engine. For some online stores that offer a lot of products for sale, search speed can be increased **up to 10x**, providing a whole new experience to end users.
128
 
129
- All in all, the Pro version is dedicated to all WooCommerce shops where autocomplete suggestions work too slow.
130
 
131
- You can read more and compare Pro and Free features here: [feature comparison](https://ajaxsearch.pro/#features-comparison).
132
 
133
  == Screenshots ==
134
 
135
- 1. Search suggestions with the details panel
136
  2. Search suggestions
137
- 3. Search bar options
138
- 4. Autocomplete options
139
- 5. Search config
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  = 1.8.2, February 06, 2021 =
144
  * ADD: Support for Astra theme
145
  * ADD: Support for Avada theme - replacing a fusion search form
@@ -259,8 +278,6 @@ You can read more and compare Pro and Free features here: [feature comparison](h
259
  = 1.6.2, February 18, 2020 =
260
  * ADD: Details Panel - new layout for product overview and other UX improvements
261
  * ADD: Automatically regenerates images after first plugin activation
262
-
263
-
264
  * FIX: Highlighted no results suggestion
265
  * FIX: Better security
266
 
@@ -271,7 +288,6 @@ You can read more and compare Pro and Free features here: [feature comparison](h
271
  * ADD: Details panel - show "more products..." link for taxonomy type suggestion
272
  * ADD: Add &lt;form&gt; to quantity elements in a details panel
273
  * ADD: New filters and actions hook
274
-
275
  * FIX: Issue related to colors in plugin settings
276
  * FIX: Suggestions groups - improved limits
277
  * FIX: Pricing for taxonomy term in a details panel
@@ -282,7 +298,6 @@ You can read more and compare Pro and Free features here: [feature comparison](h
282
  * FIX: Storefront mobile search - more time for input autofocus
283
  * FIX: Disable quantity for Astra Pro theme - there were broken buttons
284
  * FIX: Minor CSS improvements
285
-
286
  * CHANGE: Decrease debounce time for better speed effect
287
  * CHANGE: Updated Freemius SDK v2.3.2
288
 
1
+ === FiboSearch - Ajax Search for WooCommerce ===
2
  Contributors: damian-gora, matczar
3
  Tags: woocommerce search, ajax search, search by sku, product search, woocommerce
4
  Requires at least: 5.0
5
+ Tested up to: 5.7
6
+ Requires PHP: 7.0
7
+ Stable tag: 1.9.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ The most popular **WooCommerce product search plugin**. It gives your users a well-designed advanced AJAX search bar with live search suggestions.
16
 
17
+ By default, WooCommerce provides a very simple search solution, without live product search or even SKU search. FiboSearch (Ajax Search for WooCommerce) provides advanced search with live suggestions.
18
 
19
+ Who doesn’t love instant, as-you-type suggestions? In 2021, customers expect smart product search. Baymard Institute’s latest UX research reveals that search autocomplete, auto-suggest, or an instant search feature **is now offered on 96% of major e-commerce sites**. It's a must-have feature for every online business that can’t afford to lose customers. Why? FiboSearch helps users save time and makes shopping easier. As a result, it really boosts sales.
20
 
21
  = Features =
22
  &#9989; **Search by product title, long and short description**
25
  &#9989; Show **product price** in live search results
26
  &#9989; Show **product description** in live search results
27
  &#9989; Show **SKU** in live search results
28
+ &#9989; **Mobile first** – special mobile search mode for better UX
29
+ &#9989; **Details panels** with extended information – **“add to cart button** with a **quantity field** and **extended product** data displayed on hovering over the live suggestion
30
  &#9989; **Easy implementation** in your theme - embed the plugin using a **shortcode**, as a **menu item** or as a **widget**
31
  &#9989; **Terms search** – search for product categories and tags
32
  &#9989; **Limit** displayed suggestions – the number is customizable
33
  &#9989; **The minimum number of characters** required to display suggestions – the number is customizable
34
  &#9989; **Better ordering** – a smart algorithm ensures that the displayed results are as accurate as possible
35
+ &#9989; **Support for WooCommerce search results page** - after typing enter, users get the same results as in FiboSearch bar
36
  &#9989; **Grouping instant search results by type** – displaying e.g. first matching categories, then matching products
37
  &#9989; **Google Analytics** support
38
  &#9989; **WPML** compatible
40
  &#9989; **Personalization** of search bar and autocomplete suggestions - labels, colors, preloader, image and more
41
 
42
  = Try the PRO version =
43
+ FiboSearch also comes in a Pro version, with a modern, inverted index-based search engine. FiboSearch Pro works up to **10× faster** than the Free version or other popular search solutions for WooCommerce.
44
 
45
+ [Upgrade to PRO and boost your sales!](https://fibosearch.com/pricing/?utm_source=readme&utm_medium=referral&utm_content=pricing&utm_campaign=asfw)
46
 
47
  = PRO features =
48
 
49
+ &#9989; **Ultra-fast search engine** based on the inverted index – works very fast, even with 100,000+ products
50
  &#9989; **Fuzzy search** – works even with minor typos
51
  &#9989; **Search in custom fields**
52
  &#9989; **Search in attributes**
54
  &#9989; **Search in tags**
55
  &#9989; **Search in brands** (WooCommerce Brands or YITH WooCommerce Brands)
56
  &#9989; **Search by variation product SKU** – also shows variable products in live search after typing in the exact matching SKU
57
+ &#9989; **Search for posts** – also shows matching posts in live search
58
+ &#9989; **Search for pages** – also shows matching posts in live search
59
  &#9989; **Synonyms**
60
+ &#9989; **Conditional exclusion of products**
61
+ &#9989; **TranslatePress** compatible
62
  &#9989; Professional and fast **help with embedding** or replacing the search bar in your theme
63
  &#9989; and more...
64
+ &#9989; SEE ALL PRO [FEATURES](https://fibosearch.com/pro-vs-free/?utm_source=readme&utm_medium=referral&utm_content=features&utm_campaign=asfw)!
65
 
66
  = Showcase =
67
+ See how it works for others: [Showcase](https://fibosearch.com/showcase/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=showcase&utm_gen=utmdc).
68
 
69
  = Feedback =
70
+ Any suggestions or comments are welcome. Feel free to contact us via the [contact form](https://fibosearch.com/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc).
71
 
72
  == Installation ==
73
 
74
  1. Install the plugin from within the Dashboard or upload the directory `ajax-search-for-woocommerce` and all its contents to the `/wp-content/plugins/` directory.
75
  2. Activate the plugin through the 'Plugins' menu in WordPress.
76
+ 3. Go to `WooCommerce FiboSearch` and set your preferences.
77
+ 4. Use a shortcode `[fibosearch]` or go to the `Appearance Menu` and add menu item `FiboSearch` or go to the `Appearance Widgets` and choose `FiboSearch`
78
 
79
  == Frequently Asked Questions ==
80
 
81
  = How do I embed the search bar in my theme? =
82
+ There are five easy ways to display the FiboSearch bar in your theme:
83
 
84
+ – **As a menu item** - in your WordPress admin panel, go to `Appearance Menu` and add `FiboSearch bar` as a menu item
85
  – **Using a shortcode**
86
 
87
+ `[fibosearch]`
88
 
89
+ – **As a widget** - in your WordPress admin panel, go to `Appearance Widgets` and choose `FiboSearch`
90
 
91
  – **Using PHP**
92
 
93
+ `<?php echo do_shortcode('[fibosearch]'); ?>`
94
 
95
+ – **We will do it for you!** - we offer free search bar implementation for Pro users. Become one now!
96
 
97
+ Or insert this function inside a PHP file (often, it is used to insert a form inside page template files):
98
 
99
+ = How do I replace the existing search bar in my theme with FiboSearch? =
100
+ We have prepared a one-click replacement of the search bar for the following themes:
101
 
102
  * Storefront
103
+ * Divi
104
  * Flatsome
105
  * OceanWP
106
  * Astra
107
  * Avada
108
+ * Sailent
109
+ * and 30 more... See a complete list of integrated themes on [our documentation](https://fibosearch.com/documentation/themes-integrations/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=theme-integrations).
110
 
111
 
112
+ If you want to replace your search bar in another theme, please [contact our support team](https://fibosearch.com/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc).
113
+ We will assist with replacing the search bar in your theme for free after you upgrade to the Pro version.
 
114
 
115
  = Can I add the search bar as a WordPress menu item? =
116
+ **Yes, you can!** Go to `Appearance Menu`. You will see a new menu item called "FiboSearch". Select it and click Add to menu”. Done!
117
 
118
+ = How can I ask a question? =
119
+ You can submit a ticket on the plugin [website](https://fibosearch.com/contact/?utm_source=readme&utm_medium=referral&utm_campaign=asfw&utm_content=contact&utm_gen=utmdc) and the support team will get in touch with you shortly. We also answer questions on the [WordPress Support Forum](https://wordpress.org/support/plugin/ajax-search-for-woocommerce/).
120
 
121
  = Do you offer customization support? =
122
+ Depending on the theme you use, sometimes the search bar requires minor improvements in appearance. We guarantee fast CSS corrections for all Pro plugin users, but we also help Free plugin users.
123
 
124
  = Where can I find plugin settings? =
125
+ In your WordPress dashboard, go to `WooCommerce FiboSearch`. The FiboSearch settings page is a submenu of the WooCommerce menu.
126
 
127
  = Who is the Pro plugin version for? =
128
+ The Pro plugin version is for all online sellers looking to **increase sales** by providing an ultra-fast smart search engine to their clients.
129
 
130
+ The main difference between the Pro and Free versions is search speed and search scope. The Pro version has a new fast smart search engine. For some online stores that offer a lot of products for sale, search speed can be increased **up to 10×**, providing a whole new experience to end users.
131
 
132
+ All in all, the Pro version is dedicated to all WooCommerce shops where autocomplete suggestions work too slowly.
133
 
134
+ You can read more and compare Pro and Free features here: [Full comparison - Pro vs Free](https://fibosearch.com/pro-vs-free/).
135
 
136
  == Screenshots ==
137
 
138
+ 1. Search suggestions with a details panel
139
  2. Search suggestions
140
+ 3. Search suggestions with a details panel
141
+ 4. Settings page
142
+ 5. Settings page
143
 
144
  == Changelog ==
145
 
146
+ = 1.9.0, March 15, 2021 =
147
+ * ADD: Support for WooCommerce Private Store plugin
148
+ * CHANGE: Plugin rebranding - Replace the plugin name AJAX Search for WooCommerce with new name FiboSearch
149
+ * CHANGE: Plugin rebranding - Replace the old domain ajaxsearch.pro with new fibosearch.com
150
+ * CHANGE: Plugin rebranding - Update visual assets
151
+ * CHANGE: Updated Freemius SDK to v2.4.2
152
+ * CHANGE: New alternate shortcode [fibosearch] instead of [wcas-search-form]
153
+ * CHANGE: Min supported version of PHP is 7.0
154
+ * FIX: Fixed Chrome lighthouse insights
155
+ * FIX: Missing of dgwt-wcas-active class when the search was focused too early
156
+ * FIX: Grammar and spelling errors in texts
157
+ * FIX: Not firing jQuery onLoad event for some browsers
158
+ * REMOVE: Removed useless dgwt-wcas-search-submit name attribute
159
+ * REMOVE: Removed unused search forms from a Avada theme
160
+
161
+
162
  = 1.8.2, February 06, 2021 =
163
  * ADD: Support for Astra theme
164
  * ADD: Support for Avada theme - replacing a fusion search form
278
  = 1.6.2, February 18, 2020 =
279
  * ADD: Details Panel - new layout for product overview and other UX improvements
280
  * ADD: Automatically regenerates images after first plugin activation
 
 
281
  * FIX: Highlighted no results suggestion
282
  * FIX: Better security
283
 
288
  * ADD: Details panel - show "more products..." link for taxonomy type suggestion
289
  * ADD: Add &lt;form&gt; to quantity elements in a details panel
290
  * ADD: New filters and actions hook
 
291
  * FIX: Issue related to colors in plugin settings
292
  * FIX: Suggestions groups - improved limits
293
  * FIX: Pricing for taxonomy term in a details panel
298
  * FIX: Storefront mobile search - more time for input autofocus
299
  * FIX: Disable quantity for Astra Pro theme - there were broken buttons
300
  * FIX: Minor CSS improvements
 
301
  * CHANGE: Decrease debounce time for better speed effect
302
  * CHANGE: Updated Freemius SDK v2.3.2
303
 
widget.php CHANGED
@@ -24,7 +24,7 @@ if ( class_exists( 'WC_Widget' ) ) {
24
  $this->widget_cssclass = 'woocommerce dgwt-wcas-widget';
25
  $this->widget_description = __( 'AJAX (live) search form for WooCommerce', 'ajax-search-for-woocommerce' );
26
  $this->widget_id = 'dgwt_wcas_ajax_search';
27
- $this->widget_name = __( 'AJAX Search bar', 'ajax-search-for-woocommerce' );
28
  $this->settings = array(
29
  'title' => array(
30
  'type' => 'text',
24
  $this->widget_cssclass = 'woocommerce dgwt-wcas-widget';
25
  $this->widget_description = __( 'AJAX (live) search form for WooCommerce', 'ajax-search-for-woocommerce' );
26
  $this->widget_id = 'dgwt_wcas_ajax_search';
27
+ $this->widget_name = __( 'FiboSearch bar', 'ajax-search-for-woocommerce' );
28
  $this->settings = array(
29
  'title' => array(
30
  'type' => 'text',