Ajax Search for WooCommerce - Version 1.18.0

Version Description

Download this release

Release Info

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

Code changes from version 1.17.0 to 1.18.0

ajax-search-for-woocommerce.php CHANGED
@@ -4,13 +4,13 @@
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.17.0
8
  * Author: FiboSearch Team
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: 6.3
14
  *
15
  */
16
  // Exit if accessed directly
@@ -98,6 +98,12 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
98
  $regenerateImages->init();
99
  }
100
 
 
 
 
 
 
 
101
  new \DgoraWcas\Integrations\Solver();
102
  }
103
 
@@ -278,6 +284,9 @@ if ( !class_exists( 'DGWT_WC_Ajax_Search' ) && !function_exists( 'dgoraAsfwFs' )
278
  'stop_build_index' => wp_create_nonce( 'dgwt_wcas_stop_build_index' ),
279
  'build_index_heartbeat' => wp_create_nonce( 'dgwt_wcas_build_index_heartbeat' ),
280
  'advanced_options_switch' => wp_create_nonce( 'dgwt_wcas_advanced_options_switch' ),
 
 
 
281
  ),
282
  );
283
  $localize = apply_filters( 'dgwt/wcas/scripts/admin/localize', $localize );
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.18.0
8
  * Author: FiboSearch Team
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: 5.5
13
+ * WC tested up to: 6.5
14
  *
15
  */
16
  // Exit if accessed directly
98
  $regenerateImages->init();
99
  }
100
 
101
+
102
+ if ( is_admin() || wp_doing_cron() ) {
103
+ $analytics = new \DgoraWcas\Analytics\Analytics();
104
+ $analytics->init();
105
+ }
106
+
107
  new \DgoraWcas\Integrations\Solver();
108
  }
109
 
284
  'stop_build_index' => wp_create_nonce( 'dgwt_wcas_stop_build_index' ),
285
  'build_index_heartbeat' => wp_create_nonce( 'dgwt_wcas_build_index_heartbeat' ),
286
  'advanced_options_switch' => wp_create_nonce( 'dgwt_wcas_advanced_options_switch' ),
287
+ ),
288
+ 'images' => array(
289
+ 'admin_preloader_url' => DGWT_WCAS_URL . 'assets/img/preloader.gif',
290
  ),
291
  );
292
  $localize = apply_filters( 'dgwt/wcas/scripts/admin/localize', $localize );
assets/css/admin-style.css CHANGED
@@ -1,10 +1,10 @@
1
 
2
  .dgwt-wcas-non-events {
3
- pointer-events: none;
4
  }
5
 
6
  .dgwt-wcas-hidden {
7
- display: none;
8
  }
9
 
10
  .dgwt-wcas-font-thin {
@@ -12,23 +12,23 @@
12
  }
13
 
14
  .dgwt-wcas-only-desc > td {
15
- min-width: 600px
16
  }
17
 
18
  @media only screen and (max-width: 700px) {
19
- .dgwt-wcas-only-desc > td {
20
- min-width: 320px;
21
- }
22
  }
23
 
24
  .dgwt-wcas-container {
25
- display: flex;
26
- align-items: center;
27
- justify-content: center;
28
  }
29
 
30
  .dgwt-wcas-settings table {
31
- border-collapse: collapse;
32
  }
33
 
34
  .dgwt-wcas-settings > .notice:not(.dgwt-wcas-notice),
@@ -41,29 +41,29 @@
41
  .woocommerce_page_dgwt_wcas_settings .sbi_notice,
42
  .dgwt-wcas-settings > .updated:not(.fs-slug-ajax-search-for-woocommerce),
43
  .woocommerce_page_dgwt_wcas_settings .sp-eafree-review-notice {
44
- display: none!important;
45
  }
46
 
47
  .dgwt-wcas-settings-hr {
48
- display: block;
49
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
50
  }
51
 
52
  .dgwt-wcas-settings input.regular-text {
53
- max-width: 283px;
54
  }
55
 
56
  .dgwt-wcas-settings input.regular-text.dgwt_wcas_settings-url {
57
- max-width: 200px;
58
  }
59
 
60
  .dgwt-eq-settings-form label {
61
- color: #444;
62
  }
63
 
64
  .dgwt_wcas_settings-group .form-table th {
65
- vertical-align: middle;
66
- min-width: 165px;
67
  }
68
 
69
  .dgwt_wcas_settings-group .form-table td fieldset {
@@ -90,81 +90,92 @@
90
 
91
  .dgwt_wcas_settings-group .form-table > tbody > tr > th,
92
  .dgwt_wcas_settings-group .form-table > tbody > tr > td {
93
- padding: 15px 10px;
94
- line-height: 16px;
95
- min-height: 30px;
96
  }
97
 
98
  .dgwt-wcas-row:after {
99
- content: '';
100
- display: block;
101
- clear: both;
102
  }
103
 
104
  .dgwt-wcas-sgs-header label {
105
- color: #000;
106
- font-size: 19px;
107
- letter-spacing: 1px;
108
- font-weight: 100;
109
- cursor: default;
110
- position: absolute !important;
111
- width: calc(100vw - 230px);
112
- top: 50px;
113
- left: 10px;
114
- border-top: 1px solid #ddd;
115
- padding-top: 10px;
 
 
 
 
 
 
 
 
 
 
 
116
  }
117
 
118
  [data-dgwt-wcas-active="form_body"] .dgwt-wcas-sgs-header label,
119
  [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-sgs-header label {
120
- width: 541px;
121
  }
122
 
123
  .dgwt-wcas-settings:not(.dgwt-wcas-settings-theme-supported) #dgwt_wcas_basic .submit {
124
- display: none;
125
  }
126
 
127
  #dgwt_wcas_basic .dgwt-wcas-settings-info li {
128
- margin-bottom: 10px;
129
  }
130
 
131
  .dgwt-wcas-sgs-header:first-child label {
132
- top: 15px;
133
  }
134
 
135
  .dgwt-wcas-sgs-header th:before {
136
- content: '';
137
- display: block;
138
- height: 55px;
139
  }
140
 
141
  .dgwt-wcas-sgs-header:first-child th:before {
142
- height: 25px;
143
  }
144
 
145
  .dgwt-wcas-sgs-header th {
146
- position: relative;
147
- min-height: 70px;
148
  }
149
 
150
  .dgwt-wcas-sgs-desctiption-row th {
151
- display: none;
152
  }
153
 
154
  .dgwt-wcas-settings-group > h2 {
155
- display: none;
156
  }
157
 
158
  .dgwt-wcas-settings > h2.dgwt-wcas-settings__head {
159
- display: flex;
160
- flex-direction: row;
161
- justify-content: flex-start;
162
- align-content: center;
163
- margin-bottom: 20px;
164
  }
165
 
166
  .wrap h2.nav-tab-wrapper {
167
- padding-top: 20px;
168
  }
169
 
170
  .dgwt-wcas-settings__advanced {
@@ -178,9 +189,9 @@
178
  }
179
 
180
  .dgwt-wcas-settings__logo {
181
- margin-right: 5px;
182
- padding-top: 11px;
183
- height: 34px;
184
  }
185
 
186
  .dgwt-wcas-settings__title {
@@ -188,20 +199,24 @@
188
  border-right: 1px solid #eaeaea;
189
  padding-right: 45px;
190
  }
 
191
  .dgwt-wcas-settings__title-top {
192
  display: flex;
193
  justify-content: flex-start;
194
  align-items: center;
195
  }
196
- .dgwt-wcas-settings-logo-wrapper{
 
197
  display: flex;
198
  align-items: center;
199
  justify-content: flex-start;
200
  position: relative;
201
  }
 
202
  .dgwt-wcas-settings-logo-pro {
203
  display: none;
204
  }
 
205
  .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo-pro {
206
  display: block;
207
  position: absolute;
@@ -215,6 +230,7 @@
215
  line-height: 17px;
216
  padding: 0px 5px;
217
  }
 
218
  .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo {
219
  margin-right: 40px;
220
  }
@@ -238,256 +254,329 @@
238
 
239
 
240
  .dgwt-wcas-opt-highlight:not(.dgwt-wcas-sgs-header) th label {
241
- box-shadow: 0 0 25px 5px rgb(255, 243, 205);
242
- background: rgb(255, 243, 205);
243
  }
244
 
245
  .dgwt-wcas-opt-transition th label {
246
- transition: all 0.5s ease;
247
  }
248
 
249
  .dgwt-wcas-settings__advanced:hover {
250
- opacity: 0.7;
251
  }
252
 
253
  .dgwt-wcas-admin-head {
254
- margin: 30px 0 20px 5px;
255
  }
256
 
257
  .dgwt-wcas-settings__advanced span.button {
258
- display: none;
259
  }
260
 
261
  .dgwt-wcas-settings__advanced span.dgwt-wcas-adv-settings-active {
262
- display: block;
263
  }
264
 
265
  .dgwt-wcas-settings .woocommerce-input-toggle {
266
- height: 12px;
267
- width: 24px;
268
- border: 2px solid #7c3b7d;
269
- background-color: #7c3b7d;
270
- display: inline-block;
271
- text-indent: -9999px;
272
- border-radius: 10em;
273
- position: relative;
274
- margin-top: -1px;
275
- vertical-align: text-top;
276
  }
277
 
278
  .dgwt-wcas-settings .woocommerce-input-toggle::before {
279
- content: "";
280
- display: block;
281
- width: 12px;
282
- height: 12px;
283
- background: #fff;
284
- position: absolute;
285
- top: 0;
286
- right: 0;
287
- border-radius: 100%;
288
  }
289
 
290
  .dgwt-wcas-settings .woocommerce-input-toggle.woocommerce-input-toggle--disabled::before {
291
- right: auto;
292
- left: 0;
293
  }
294
 
295
  .dgwt-wcas-settings .woocommerce-input-toggle.woocommerce-input-toggle--disabled {
296
- border-color: #bbb;
297
- background-color: #bbb;
298
  }
299
 
300
  .dgwt-wcas-adv-settings-label {
301
- font-size: 13px;
302
- margin-left: 7px;
303
  }
304
 
305
  .dgwt-wcas-adv-settings-saving {
306
- font-size: 12px;
307
- margin-left: 7px;
308
- color: #bbb;
309
  }
310
 
311
  .dgwt-wcas-settings-synonyms textarea.regular-text {
312
- min-height: 200px;
313
- width: 35em;
314
  }
315
 
316
  .dgwt-wcas-admin-head h1 {
317
- display: inline-block;
318
- margin: 0 20px 0 0;
319
- vertical-align: middle;
320
- padding: 0;
321
  }
322
 
323
  .wp-core-ui .button.dgwt-wcas-button-preview {
324
- vertical-align: middle;
325
  }
326
 
327
  .dgwt-wcas-preview-source * {
328
- box-sizing: border-box !important;
329
  }
330
 
331
  .dgwt-wcas-button-preview .dashicons {
332
- height: 22px;
333
- vertical-align: middle;
334
- margin-right: 5px;
335
  }
336
 
337
  .dgwt_wcas_settings-group .form-table td {
338
- margin-bottom: 0;
339
  }
340
 
341
  .form-table td p.dgwt_wcas_settings-description-field {
342
- color: #777;
343
- display: inline-block;
344
- font-size: 12px;
345
- margin: 0 0 0 20px;
346
- line-height: 105%;
347
  }
348
 
349
  .dgwt_wcas_settings-description-row {
350
- padding: 30px 0;
351
- border-top: 2px dashed #ddd;
352
- border-bottom: 2px dashed #ddd;
353
  }
354
 
355
  .dgwt_wcas_settings-group > h2 {
356
- display: none;
357
  }
358
 
359
  .dgwt_wcas_settings-group label input[type="checkbox"] {
360
- margin: 0;
361
  }
362
 
363
- .dgwt_wcas_settings-group > table > tbody > tr > td {
364
- display: flex;
365
- justify-content: left;
366
- align-items: center;
367
  }
368
 
369
- .dgwt_wcas_settings-group > table > tbody > tr.dgwt-wcas-settings-synonyms > td {
370
- display: block;
371
  }
372
 
373
- .dgwt_wcas_settings-group > table > tbody > tr.dgwt-wcas-settings-synonyms > td p.dgwt_wcas_settings-description-field {
374
- margin: 10px 0 0 0;
375
- display: block;
376
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
377
  .dgwt-wcas-synonyms-sample {
378
- font-family: monospace;
379
- background: #fff;
380
- border: 1px solid #ddd;
381
- padding: 10px;
382
- font-size: 13px;
383
- display: inline-block;
384
- line-height: 157%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
385
  }
386
 
387
  .dgwt-wcas-bc-notice .dgwt-wcas-container {
388
- justify-content: left;
389
  }
390
 
391
  .dgwt-wcas-bc-button-wrapp {
392
- border-top: 1px dashed #ddd;
393
- padding-top: 15px;
394
- margin-top: 15px;
395
- padding-bottom: 15px;
396
  }
397
 
398
  .dgwt-wcas-bc-switcher {
399
- position: relative;
400
- min-width: 419px;
401
  }
402
 
403
  .dgwt-wcas-bc-todo-wrapp {
404
- border: 2px dashed #eee;
405
- width: 50%;
406
- padding: 30px 10px 10px 10px;
407
- position: relative;
408
- margin-right: 40px;
409
  }
410
 
411
  .dgwt-wcas-bc-todo-head {
412
- text-transform: uppercase;
413
- font-size: 10px;
414
- background: #aaa;
415
- color: #fff;
416
- padding: 2px 17px 2px 10px;
417
- border-radius: 0 0 30px 0;
418
- display: inline-block;
419
- position: absolute;
420
- left: -2px;
421
- top: -2px;
422
  }
423
 
424
  .dgwt-wcas-bc-main-notice {
425
- padding-right: 150px;
426
- margin-bottom: 20px;
427
  }
428
 
429
  .dgwt-wcas-bc-remind-me {
430
- position: absolute;
431
- right: 0;
432
- top: 0;
433
- border-bottom: 1px solid #ddd;
434
- border-left: 1px solid #ddd;
435
- padding: 5px 8px;
436
- text-decoration: none;
437
- font-style: normal;
438
- font-size: 12px;
439
  }
440
 
441
  .dgwt-wcas-bc-error, .dgwt-wcas-bc-success {
442
- position: absolute;
443
- color: #f04124;
444
- left: auto;
445
- right: auto;
446
- bottom: -10px;
447
- width: 100%;
448
- font-size: 12px;
449
- margin: 0 auto;
450
- text-align: center;
451
  }
452
 
453
  .dgwt-wcas-bc-success {
454
- color: #4caf50;
455
- font-weight: 500;
456
- letter-spacing: 1px;
457
- opacity: 0.5;
458
  }
459
 
460
  @keyframes wiggle {
461
- 0% {
462
- transform: rotate(0deg);
463
- }
464
- 40% {
465
- transform: rotate(0deg);
466
- }
467
- 43% {
468
- transform: rotate(2deg);
469
- }
470
- 46% {
471
- transform: rotate(-2deg);
472
- }
473
- 48% {
474
- transform: rotate(0deg);
475
- }
476
- 100% {
477
- transform: rotate(0deg);
478
- background-color: rgba(76, 175, 80, 0.1);
479
- }
480
  }
481
 
482
  .dgwt-wcas-anim-shake {
483
- display: inline-block;
484
- animation-name: wiggle;
485
- animation-duration: 2s;
486
 
487
  }
488
 
489
  .dgwt-wcas-bc-todo-head.dgwt-wcas-bc-todo-head--latest {
490
- background: #4caf50;
491
  }
492
 
493
  .dgwt-wcas-bc-steps {
@@ -495,47 +584,47 @@
495
  }
496
 
497
  .dgwt-wcas-bc-switcher-head {
498
- text-align: center;
499
- color: #b7b7b7;
500
- font-size: 15px;
501
- text-transform: uppercase;
502
- font-weight: normal;
503
- letter-spacing: 2px;
504
  }
505
 
506
  .dgwt-wcas-bc-spinner {
507
- width: 22px;
508
- height: 22px;
509
- padding: 2px 0 0 4px;
510
- opacity: 0.8;
511
  }
512
 
513
  .wp-core-ui .dgwt-wcas-bc-steps .button.button-small {
514
- line-height: 18px;
515
- height: 18px;
516
  }
517
 
518
  .dgwt-wcas-bc-steps code {
519
- font-size: 11px;
520
- background: #f4f4f4;
521
  }
522
 
523
  .wp-core-ui .button.dgwt-wcas-bc-button-approve {
524
- background: #a36597;
525
- border-color: #a36597;
526
- -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #a36597;
527
- box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #a36597;
528
- color: #fff;
529
  }
530
 
531
  .wp-core-ui .button.dgwt-wcas-bc-button-approve:hover {
532
- opacity: 0.95;
533
  }
534
 
535
  .dgwt-wcas-settings-info {
536
- background: #fbfbfb none repeat scroll 0 0;
537
- border: 1px solid #ddd;
538
- padding: 15px;
539
  }
540
 
541
  .dgwt-wcas-indexing-header__troubleshooting pre, .dgwt-wcas-troubleshooting-wrapper .dgwt-wcas-settings-info pre {
@@ -549,521 +638,521 @@
549
  }
550
 
551
  .wcas-opt-tntsearch .dgwt-wcas-settings-info {
552
- width: 100%;
553
  }
554
 
555
  .dgwt-wcas-settings-info.dgwt-wcas-bc-notice {
556
- margin-top: 15px;
557
- margin-bottom: 15px;
558
- border-left: 3px solid #9b5c8f;
559
- position: relative;
560
  }
561
 
562
  .dgwt-wcas-bc-notice-head {
563
- margin-top: 5px;
564
- font-size: 15px;
565
- margin-bottom: 7px;
566
- font-weight: 500;
567
- font-size: 15px;
568
- color: #333;
569
  }
570
 
571
  @media only screen and (max-width: 1200px) {
572
- .dgwt-wcas-bc-notice .dgwt-wcas-container {
573
- display: block;
574
- }
575
 
576
- .dgwt-wcas-bc-switcher {
577
- width: 100%;
578
- }
579
 
580
- .dgwt-wcas-bc-todo-wrapp {
581
- width: 100%;
582
- }
583
  }
584
 
585
  .dgwt-wcas-settings-info h4 {
586
- margin-top: 0;
587
- font-size: 15px;
588
- margin-bottom: 7px
589
  }
590
 
591
  .dgwt-wcas-settings-info p {
592
- margin-bottom: 10px;
593
  }
594
 
595
  .dgwt-wcas-settings-info {
596
- background: #fbfbfb none repeat scroll 0 0;
597
- border: 1px solid #ddd;
598
- padding: 15px;
599
  }
600
 
601
  .dgwt-wcas-settings-info h4 {
602
- margin-top: 0;
603
- font-size: 15px;
604
- margin-bottom: 7px
605
  }
606
 
607
  .dgwt-wcas-settings-info p {
608
- margin-bottom: 10px;
609
  }
610
 
611
  /* Button Container in Review Us Container */
612
  .dgwt-wcas-review-notice .button-container {
613
- display: block;
614
- width: 100%;
615
- margin: .75em 0 1.5em 0;
616
  }
617
 
618
  .dgwt-wcas-review-notice .button-container .dashicons {
619
- font-size: 14px;
620
- line-height: 1.9;
621
- margin-left: -4px;
622
  }
623
 
624
  /* Star Icon */
625
  .dgwt-wcas-review-notice .button-container .dashicons-star-filled {
626
- color: #E6B800;
627
  }
628
 
629
  /* Upgrade Icon */
630
  .dgwt-wcas-review-notice .button-container .dashicons-upload {
631
- color: #6E8841;
632
  }
633
 
634
  /* Dismiss Icon */
635
  .dgwt-wcas-review-notice .button-container .dashicons-no-alt {
636
- color: rgb(220, 58, 58);
637
- line-height: 2;
638
  }
639
 
640
  .dgwt-wcas-review-notice .button-container a {
641
- margin-right: 10px;
642
  }
643
 
644
  .notice.dgwt-wcas-review-notice {
645
- border-left: 4px solid #00a0d2;
646
- background: #fefefe;
647
- padding: 10px 12px 1px 12px;
648
- box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
649
- -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
650
- margin: 15px 25px 20px 5px;
651
  }
652
 
653
  .dgwt-wcas-review-notice .dgwt-wcas-review-notice-logo {
654
- background: url('../img/logo-for-review.png') no-repeat;
655
- background-size: 68px;
656
- float: left;
657
- margin-top: 5px;
658
  margin-right: 15px;
659
  margin-left: 12px;
660
- font-size: 14px;
661
- height: 80px;
662
- text-align: center;
663
- width: 82px;
664
  }
665
 
666
  .dgwt-wcas-pro-label {
667
- float: left;
668
- vertical-align: middle;
669
- margin-top: -2px;
670
- line-height: 100%;
671
  }
672
 
673
  #dgwt_wcas_engine_pro-tab:not(.nav-tab-active) {
674
- background: rgba(155, 92, 143, 0.1);
675
  }
676
 
677
  .nav-tab-minor {
678
- float: right;
679
- font-size: 13px;
680
- text-decoration: none;
681
- font-weight: normal;
682
- margin-left: 10px;
683
- line-height: 30px;
684
- position: relative;
685
  }
686
 
687
  .nav-tab-minor-contact:before {
688
- display: block;
689
- content: "\f466";
690
- font-family: dashicons;
691
- width: 20px;
692
- height: 20px;
693
- font-size: 20px;
694
- display: inline-block;
695
- position: absolute;
696
- left: -24px;
697
- top: 0;
698
  }
699
 
700
  .nav-tab-minor-showcase:before {
701
- display: block;
702
- content: "\f126";
703
- font-family: dashicons;
704
- width: 20px;
705
- height: 20px;
706
- font-size: 20px;
707
- display: inline-block;
708
- position: absolute;
709
- left: -24px;
710
- top: 0;
711
  }
712
 
713
  .nav-tab-minor-account,
714
  .nav-tab-minor-showcase {
715
- margin-right: 25px;
716
  }
717
 
718
  .nav-tab-minor-account:before {
719
- display: block;
720
- content: "\f110";
721
- font-family: dashicons;
722
- width: 20px;
723
- height: 20px;
724
- font-size: 20px;
725
- display: inline-block;
726
- position: absolute;
727
- left: -24px;
728
- top: 0;
729
  }
730
 
731
  .dgwt-wcas-pro-field .dgwt-jg-pro-suffix {
732
- font-size: 9px;
733
- padding: 2px 4px;
734
- line-height: 100%;
735
- margin-top: -5px;
736
  }
737
 
738
  .dgwt-wcas-modal-logo {
739
- margin: 20px 20px 0 0;
740
- display: inline-block;
741
- float: right;
742
  }
743
 
744
  .dgwt-wcas-modal-title {
745
- font-size: 1.2em;
746
  }
747
 
748
  .dgwt-wcas-pro-suffix {
749
- float: left;
750
- background: #9b5c8f;
751
- color: #fff;
752
- border-radius: 4px;
753
- padding: 1px 5px;
754
- margin: 0 0 0 3px;
755
- font-size: 10px;
756
- text-transform: uppercase;
757
- letter-spacing: 0;
758
- font-style: normal;
759
- vertical-align: middle;
760
  }
761
 
762
  .dgwt-wcas-pro-header {
763
- position: relative;
764
- min-width: 148px;
765
  }
766
 
767
  .dgwt-wcas-pro-header .dgwt-wcas-pro-label {
768
- float: none;
769
- display: inline-block;
770
- margin-right: 40px;
771
  }
772
 
773
  .dgwt-wcas-pro-header .dgwt-wcas-pro-suffix {
774
- float: none;
775
- display: inline-block;
776
- position: absolute;
777
- right: 4px;
778
- top: -1px;
779
  }
780
 
781
  .dgwt-wcas-pro-field .dgwt-wcas-pro-suffix {
782
- font-size: 9px;
783
- padding: 2px 4px;
784
- line-height: 100%;
785
- margin-top: -5px;
786
  }
787
 
788
  .dgwt-wcas-pro-header__subtitle {
789
- display: block;
790
- margin-top: -11px;
791
  }
792
 
793
  .dgwt-wcas-pro-header__subtitle--text {
794
- position: absolute;
795
- left: 1px;
796
- top: 13px;
797
- font-size: 10px;
798
- letter-spacing: 1px;
799
- color: rgba(0, 0, 0, 0.6);
800
  }
801
 
802
  .dgwt-wcas-toggler, .dgwt-wcas-toggle {
803
- display: inline-block;
804
- vertical-align: middle;
805
- margin: 10px;
806
  }
807
 
808
  .dgwt-wcas-toggler {
809
- color: #000;
810
- opacity: 0.4;
811
- transition: .2s;
812
- padding: 1px 6px 1px 12px;
813
- border-radius: 5px;
814
- /* border:1px solid transparent;*/
815
  }
816
 
817
  .dgwt-wcas-toggler--is-active {
818
- color: #000;
819
- opacity: 1;
820
- /* background-color: rgba(155,92,143, 0.04);*/
821
- /* border:1px solid rgba(155,92,143, 0.1);*/
822
- position: relative;
823
  }
824
 
825
  .dgwt-wcas-toggler--is-active:before {
826
- position: absolute;
827
- content: '';
828
- width: 5px;
829
- height: 5px;
830
- background: rgba(155, 92, 143, 1);
831
- display: block;
832
- left: 2px;
833
- border-radius: 100%;
834
- top: 8px;
835
  }
836
 
837
  .dgwt-wcas-toggle {
838
- width: 50px;
839
- height: 30px;
840
- border-radius: 100px;
841
- background-color: #9b5c8f;
842
- overflow: hidden;
843
- box-shadow: inset 0 0 2px 1px rgba(0, 0, 0, 0.05);
844
- position: relative;
845
  }
846
 
847
  .dgwt-wcas-toggle.dgwt-wcas-toggle--mute {
848
- background-color: #ddd;
849
  }
850
 
851
  input[type=checkbox].dgwt-wcas-check {
852
- position: absolute;
853
- display: block;
854
- cursor: pointer;
855
- top: 0;
856
- left: 0;
857
- width: 100%;
858
- height: 100%;
859
- opacity: 0;
860
- z-index: 6;
861
  }
862
 
863
  input[type=checkbox].dgwt-wcas-check:checked ~ .dgwt-wcas-switch {
864
- right: 37.5%;
865
- left: 2px;
866
- transition: 0.25s cubic-bezier(0.785, 0.135, 0.15, 0.86);
867
- transition-property: left, right;
868
- transition-delay: 0s, .08s;
869
  }
870
 
871
  .dgwt-wcas-settings-margin-nob {
872
- padding-left: 15px;
873
- border-left: 1px dashed #d7d7d7;
874
  }
875
 
876
  .dgwt-wcas-switch {
877
- display: block;
878
- position: absolute;
879
- left: 2px;
880
- top: 2px;
881
- bottom: 2px;
882
- background-color: #fff;
883
- border-radius: 36px;
884
- z-index: 1;
885
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
886
-
887
- right: 2px;
888
- left: 37.5%;
889
- transition: 0.25s cubic-bezier(0.785, 0.135, 0.15, 0.86);
890
- transition-property: left, right;
891
- transition-delay: .08s, 0s;
892
  }
893
 
894
  .progress_bar .pro-bar {
895
- background: hsl(0, 0%, 97%);
896
- box-shadow: 0 1px 2px hsla(0, 0%, 0%, 0.1) inset;
897
- height: 4px;
898
- margin-bottom: 12px;
899
- margin-top: 50px;
900
- position: relative;
901
  }
902
 
903
  .progress_bar .progress_bar_title {
904
- color: hsl(218, 4%, 50%);
905
- font-size: 15px;
906
- font-weight: 300;
907
- position: relative;
908
- top: -28px;
909
- z-index: 1;
910
  }
911
 
912
  .progress_bar .progress_number {
913
- float: right;
914
- margin-top: -24px;
915
  }
916
 
917
  .progress_bar .progress-bar-inner {
918
- background-color: hsl(0, 0%, 88%);
919
- display: block;
920
- width: 0;
921
- height: 100%;
922
- position: absolute;
923
- top: 0;
924
- left: 0;
925
- transition: width 1s linear 0s;
926
  }
927
 
928
  .progress_bar .progress-bar-inner:before {
929
- content: "";
930
- background-color: hsl(0, 0%, 100%);
931
- border-radius: 50%;
932
- width: 4px;
933
- height: 4px;
934
- position: absolute;
935
- right: 1px;
936
- top: 0;
937
- z-index: 1;
938
  }
939
 
940
  .progress_bar .progress-bar-inner:after {
941
- content: "";
942
- width: 14px;
943
- height: 14px;
944
- background-color: inherit;
945
- border-radius: 50%;
946
- position: absolute;
947
- right: -4px;
948
- top: -5px;
949
  }
950
 
951
  .dgwt-wcas-indexer-logs {
952
- margin: 10px 0;
953
- font-family: monospace;
954
- background: #fff;
955
- border: 1px solid #ccc;
956
- padding: 10px;
957
- color: #888;
958
- font-size: 11px;
959
- word-break: break-all;
960
  }
961
 
962
  .dgwt-wcas-indexer-log {
963
- display: block;
964
  }
965
 
966
  .dgwt-wcas-indexer-log code {
967
- padding: 1px 5px 1px 5px;
968
- font-size: 11px;
969
  }
970
 
971
  .dgwt-wcas-indexer-logs__error {
972
- color: #db6564;
973
  }
974
 
975
  .dgwt-wcas-indexer-table {
976
- border: 1px solid #ddd;
977
- margin: 20px 0 10px 0;
978
- max-width: 350px;
979
- width: 100%;
980
  }
981
 
982
  .dgwt-wcas-indexer-table td {
983
- padding: 3px 10px !important;
984
- border-bottom: 1px solid #e8e8e8;
985
- line-height: 100%;
986
  }
987
 
988
  .dgwt-wcas-indexer-table table td {
989
- border-bottom: none;
990
- padding-left: 0 !important;
991
  }
992
 
993
  .dgwt-wcas-indexer-table > tbody > tr:last-child > td {
994
- border-bottom: none;
995
  }
996
 
997
  .dgwt-wcas-indexing-header table .dgwt-wcas-indexer-table__in {
998
- border: none;
999
  }
1000
 
1001
  .dgwt-wcas-indexing-header table .dgwt-wcas-indexer-table__in td {
1002
- text-align: left;
1003
  }
1004
 
1005
  .js-dgwt-wcas-indexer-details.hide {
1006
- display: none;
1007
  }
1008
 
1009
  .js-dgwt-wcas-indexer-details.show {
1010
- display: block;
1011
  }
1012
 
1013
  .dgwt-wcas-indexing-details-trigger.hide {
1014
- display: none;
1015
  }
1016
 
1017
  .dgwt-wcas-indexing-details-trigger.show {
1018
- display: block;
1019
  }
1020
 
1021
  .dgwt-wcas-indexing-header table {
1022
- border: 1px solid #ddd;
1023
- max-width: 350px;
1024
- width: auto;
1025
  }
1026
 
1027
  .dgwt-wcas-indexing-header table th {
1028
- padding: 5px 10px;
1029
  }
1030
 
1031
  .dgwt-wcas-indexing-header table th {
1032
- border-bottom: 1px solid #ddd;
1033
- background-color: #e9e9e9;
1034
- padding: 5px 10px;
1035
  }
1036
 
1037
  .dgwt-wcas-indexing-header__title {
1038
- font-weight: 100;
1039
- font-size: 27px;
1040
- margin-bottom: 10px;
1041
- display: block;
1042
  }
1043
 
1044
  .dgwt-wcas-indexing-header__subtitle {
1045
- font-weight: 100;
1046
- font-size: 15px;
1047
- display: block;
1048
- margin: 0 0 5px 0;
1049
  }
1050
 
1051
  .dgwt-wcas-indexing-header__actions {
1052
- display: flex;
1053
- justify-content: space-between;
1054
- align-items: flex-end;
1055
- margin-top: 15px;
1056
  }
1057
 
1058
  .dgwt-wcas-indexing-header__troubleshooting {
1059
- font-size: 13px;
1060
- border: 2px dashed #e7e7e7;
1061
- padding: 10px;
1062
- line-height: 144%;
1063
  }
1064
 
1065
  .dgwt-wcas-indexing-header__troubleshooting a {
1066
- text-decoration: none;
1067
  }
1068
 
1069
  .dgwt-wcas-indexing-header__troubleshooting .dgwt-wcas-indexing-header__log {
@@ -1074,6 +1163,7 @@ input[type=checkbox].dgwt-wcas-check:checked ~ .dgwt-wcas-switch {
1074
  font-family: monospace;
1075
  font-size: 12px;
1076
  }
 
1077
  .dgwt-wcas-indexing-header__error-code {
1078
  background: #f5dede;
1079
  border: 1px solid #f0c0c1;
@@ -1086,40 +1176,40 @@ input[type=checkbox].dgwt-wcas-check:checked ~ .dgwt-wcas-switch {
1086
  }
1087
 
1088
  .wcas-ajax-build-index-wait {
1089
- opacity: 0.5;
1090
- pointer-events: none;
1091
  }
1092
 
1093
  .button.ajax-build-index-primary {
1094
- background: #a36597;
1095
- border-color: #a36597;
1096
- color: #fff;
1097
  }
1098
 
1099
  .button.ajax-build-index-primary:hover {
1100
- background: #a36597;
1101
- border-color: #a36597;
1102
- color: #fff;
1103
- opacity: 0.7;
1104
  }
1105
 
1106
  .dgwt-wcas-indexing-details-trigger {
1107
- display: block;
1108
- font-size: 80%;
1109
- text-decoration: none;
1110
- float: right;
1111
- padding: 0;
1112
- margin: 0;
1113
  }
1114
 
1115
  .dgwt-wcas-indexing-header__status {
1116
- color: #fff;
1117
- padding: 3px 20px 3px 0;
1118
  }
1119
 
1120
  td.dgwt-wcas-indexing-details-row {
1121
- padding: 1px 10px;
1122
- border-top: 1px solid #eee;
1123
  }
1124
 
1125
  td.dgwt-wcas-indexing-details-row a {
@@ -1127,149 +1217,154 @@ td.dgwt-wcas-indexing-details-row a {
1127
  }
1128
 
1129
  .dgwt-wcas-requirements {
1130
- margin-right: 20px;
1131
  }
1132
 
1133
  .dgwt-wcas-requirements__inner {
1134
- margin: 60px auto 20px auto;
1135
- max-width: 780px;
1136
- background: #fff;
1137
- padding: 12px 32px;
1138
- border: 1px solid #ccc;
1139
- border-left: 3px solid #d54e21;
1140
  }
1141
 
1142
  .dgwt-wcas-settings:not(.dgwt-wcas-settings-pro) .dgwt-wcas-premium-only {
1143
- opacity: 0.5;
1144
  }
1145
 
1146
  .dgwt-wcas-upgrade-s__title {
1147
- font-weight: 100;
1148
- font-size: 25px;
1149
- margin-bottom: 10px;
1150
- display: block;
1151
- line-height: 157%;
1152
  }
1153
 
1154
  .form-table td p.dgwt-wcas-upgrade-s__subtitle {
1155
- font-weight: 100;
1156
- font-size: 17px;
1157
- margin-bottom: 10px;
1158
  }
1159
 
1160
  .dgwt-wcas-upgrade-s__title span {
1161
- border-bottom: 1px solid #a36597;
1162
- display: inline-block;
1163
- font-weight: 400;
1164
  }
1165
 
1166
  .dgwt-wcas-upgrade-s li strong {
1167
- font-weight: 400;
1168
- font-size: 14px;
1169
  }
1170
 
1171
  .dgwt-wcas-our-devs {
1172
- font-size: 12px;
1173
- display: block;
1174
- margin-top: 19px;
1175
- padding-top: 10px;
1176
- border-top: 1px dashed #ddd;
1177
- color: #888;
1178
  }
1179
 
1180
  .dgwt_wcas_settings-group .selectize-input {
1181
- min-width: 280px;
1182
- max-width: 280px;
1183
  }
1184
 
1185
  .dgwt_wcas_settings-group .selectize-dropdown-content .create {
1186
- display: none;
1187
  }
 
1188
  .dgwt_wcas_settings-group .selectize-dropdown-content .option.active {
1189
- background: rgba(150,88,137, 0.15);
1190
  }
 
1191
  .dgwt_wcas_settings-group .selectize-dropdown-content .option .highlight {
1192
- font-weight: bold;
1193
- background: transparent;
1194
- display: inline-block;
1195
- border-bottom: 1px solid #444;
1196
  }
 
1197
  .dgwt_wcas_settings-group .selectize-dropdown-content .optgroup .optgroup-header {
1198
- font-weight: bold;
1199
  }
 
1200
  .dgwt_wcas_settings-group .selectize-dropdown-content .optgroup .option {
1201
- padding-left: 20px;
1202
  }
1203
 
1204
  .dgwt_wcas_settings-group .wp-picker-clear {
1205
- display: none;
1206
  }
1207
 
1208
  .dgwt-wcas-preview {
1209
- display: none;
1210
- width: 100%;
1211
 
1212
  }
1213
 
1214
  [data-dgwt-wcas-active="form_body"] .dgwt-wcas-preview,
1215
  [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-preview {
1216
- display: block;
1217
  }
1218
 
1219
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"],
1220
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] {
1221
- display: flex;
1222
- flex-direction: row-reverse;
1223
- justify-content: flex-end;
1224
  }
1225
 
1226
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .metabox-holder,
1227
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .metabox-holder {
1228
- max-width: 550px;
1229
- min-width: 495px;
1230
- width: 100%;
1231
- border-right: 1px solid #ddd;
1232
- overflow: hidden;
1233
  }
1234
 
1235
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-suggestions-wrapp,
1236
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-details-wrapp {
1237
- display: none !important;
1238
  }
1239
 
1240
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-preview-subheader__ac {
1241
- display: none;
1242
  }
1243
 
1244
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-preview-subheader__sb {
1245
- display: none;
1246
  }
1247
 
1248
  .dgwt-wcas-preview-source .dgwt-wcas-suggestions-wrapp {
1249
- width: 100%;
1250
- margin: 0 auto;
1251
  }
1252
 
1253
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-is-details .dgwt-wcas-preview-source .dgwt-wcas-search-wrapp,
1254
  .dgwt-wcas-is-details .dgwt-wcas-preview-source .dgwt-wcas-suggestions-wrapp {
1255
- margin: 0;
1256
  }
 
1257
  .dgwt-wcas-preview-source .dgwt-wcas-details-inner {
1258
  display: block;
1259
  }
1260
 
1261
  .dgwt-wcas-hide {
1262
- display: none !important;
1263
  }
1264
 
1265
  .dgwt-wcas-autocomplete {
1266
- display: flex;
1267
  }
1268
 
1269
  .dgwt-wcas-preview-source {
1270
- min-width: 600px;
1271
- margin: 0 auto;
1272
- padding: 20px 40px;
1273
  }
1274
 
1275
  .dgwt-wcas-preview-source .dgwt-wcas-suggestion-brand .dgwt-wcas-si,
@@ -1289,242 +1384,242 @@ td.dgwt-wcas-indexing-details-row a {
1289
 
1290
  .dgwt-wcas-search-wrapp,
1291
  .dgwt-wcas-autocomplete {
1292
- pointer-events: none;
1293
  }
1294
 
1295
  .dgwt-wcas-click-alert {
1296
- position: absolute;
1297
- z-index: 9999;
1298
- left: 938px;
1299
- top: 596px;
1300
- color: #fff;
1301
- background: #ca4a1f;
1302
- font-size: 18px;
1303
- padding: 4px 12px;
1304
- border-radius: 6px;
1305
  }
1306
 
1307
  .dgwt-wcas-preview-source-no-click {
1308
- opacity: 0.5;
1309
  }
1310
 
1311
  .dgwt-wcas-preview-head {
1312
- margin: 30px auto 0 auto;
1313
- text-align: center;
1314
  }
1315
 
1316
  .dgwt-wcas-preview-header {
1317
- font-weight: 300;
1318
- font-size: 35px;
1319
- margin-bottom: 10px;
1320
- display: block;
1321
- line-height: 100%;
1322
  }
1323
 
1324
  .dgwt-wcas-preview-subheader {
1325
- font-weight: 100;
1326
- font-size: 25px;
1327
- color: #aaa;
1328
- margin-bottom: 10px;
1329
- display: block;
1330
- line-height: 100%;
1331
- margin-top: -9px;
1332
  }
1333
 
1334
  .dgwt-wcas-preview-nores {
1335
- width: 100% !important;;
1336
- max-height: 41px !important;
1337
- min-height: 0 !important;;
1338
  }
1339
 
1340
  .dgwt-wcas-pd-addtc .input-text.qty {
1341
- width: 38px;
1342
  }
1343
 
1344
  @media only screen and (max-width: 782px) {
1345
- .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .metabox-holder,
1346
- .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .metabox-holder {
1347
- min-width: 320px;
1348
- max-width: none;
1349
- }
1350
 
1351
- [data-dgwt-wcas-active="form_body"] .dgwt-wcas-sgs-header label,
1352
- [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-sgs-header label {
1353
- width: 100%;
1354
- }
1355
 
1356
- .dgwt-wcas-preview {
1357
- display: none !important;
1358
- }
1359
  }
1360
 
1361
  .dgwt-wcas-tooltip {
1362
- position: absolute;
1363
- z-index: 1070;
1364
- display: block;
1365
- margin: 0;
1366
- font-style: normal;
1367
- font-weight: 400;
1368
- line-height: 1.5;
1369
- text-align: left;
1370
- text-decoration: none;
1371
- text-shadow: none;
1372
- text-transform: none;
1373
- letter-spacing: normal;
1374
- word-break: normal;
1375
- word-spacing: normal;
1376
- white-space: normal;
1377
- line-break: auto;
1378
- font-size: 14px;
1379
- word-wrap: break-word;
1380
  }
1381
 
1382
  .dgwt-wcas-tooltip.show {
1383
- opacity: 0.9;
1384
  }
1385
 
1386
  .dgwt-wcas-tooltip .dgwt-wcas-tooltip-arrow {
1387
- position: absolute;
1388
- display: block;
1389
- width: 0.8rem;
1390
- height: 0.4rem;
1391
  }
1392
 
1393
  .dgwt-wcas-tooltip .dgwt-wcas-tooltip-arrow::before {
1394
- position: absolute;
1395
- content: "";
1396
- border-color: transparent;
1397
- border-style: solid;
1398
  }
1399
 
1400
  .dgwt-wcas-tooltip-top,
1401
  .dgwt-wcas-tooltip[x-placement^="top"] {
1402
- padding: 0.4rem 0;
1403
  }
1404
 
1405
  .dgwt-wcas-tooltip-top .dgwt-wcas-tooltip-arrow,
1406
  .dgwt-wcas-tooltip[x-placement^="top"] .dgwt-wcas-tooltip-arrow {
1407
- bottom: 0;
1408
  }
1409
 
1410
  .dgwt-wcas-tooltip-top .dgwt-wcas-tooltip-arrow::before,
1411
  .dgwt-wcas-tooltip[x-placement^="top"] .dgwt-wcas-tooltip-arrow::before {
1412
- top: 0;
1413
- border-width: 0.4rem 0.4rem 0;
1414
- border-top-color: #fff;
1415
  }
1416
 
1417
  .dgwt-wcas-tooltip-right,
1418
  .dgwt-wcas-tooltip[x-placement^="right"] {
1419
- padding: 0 0.4rem;
1420
  }
1421
 
1422
  .dgwt-wcas-tooltip-right .dgwt-wcas-tooltip-arrow,
1423
  .dgwt-wcas-tooltip[x-placement^="right"] .dgwt-wcas-tooltip-arrow {
1424
- left: 0;
1425
- width: 0.4rem;
1426
- height: 0.8rem;
1427
  }
1428
 
1429
  .dgwt-wcas-tooltip-right .dgwt-wcas-tooltip-arrow::before,
1430
  .dgwt-wcas-tooltip[x-placement^="right"] .dgwt-wcas-tooltip-arrow::before {
1431
- right: 0;
1432
- border-width: 0.4rem 0.4rem 0.4rem 0;
1433
- border-right-color: #fff;
1434
  }
1435
 
1436
  .dgwt-wcas-tooltip-bottom,
1437
  .dgwt-wcas-tooltip[x-placement^="bottom"] {
1438
- padding: 0.4rem 0;
1439
  }
1440
 
1441
  .dgwt-wcas-tooltip-bottom .dgwt-wcas-tooltip-arrow,
1442
  .dgwt-wcas-tooltip[x-placement^="bottom"] .dgwt-wcas-tooltip-arrow {
1443
- top: 0;
1444
  }
1445
 
1446
  .dgwt-wcas-tooltip-bottom .dgwt-wcas-tooltip-arrow::before,
1447
  .dgwt-wcas-tooltip[x-placement^="bottom"] .dgwt-wcas-tooltip-arrow::before {
1448
- bottom: 0;
1449
- border-width: 0 0.4rem 0.4rem;
1450
- border-bottom-color: #fff;
1451
  }
1452
 
1453
  .dgwt-wcas-tooltip-left,
1454
  .dgwt-wcas-tooltip[x-placement^="left"] {
1455
- padding: 0 0.4rem;
1456
  }
1457
 
1458
  .dgwt-wcas-tooltip-left .dgwt-wcas-tooltip-arrow,
1459
  .dgwt-wcas-tooltip[x-placement^="left"] .dgwt-wcas-tooltip-arrow {
1460
- right: 0;
1461
- width: 0.4rem;
1462
- height: 0.8rem;
1463
  }
1464
 
1465
  .dgwt-wcas-tooltip-left .dgwt-wcas-tooltip-arrow::before,
1466
  .dgwt-wcas-tooltip[x-placement^="left"] .dgwt-wcas-tooltip-arrow::before {
1467
- left: 0;
1468
- border-width: 0.4rem 0 0.4rem 0.4rem;
1469
- border-left-color: #fff;
1470
  }
1471
 
1472
  .dgwt-wcas-tooltip-inner {
1473
  max-width: 280px;
1474
- line-height: 158%;
1475
- font-size: 14px;
1476
- padding: 10px 15px;
1477
- color: #222;
1478
- text-align: left;
1479
- background-color: #fff;
1480
- border-radius: 0.25rem;
1481
- box-shadow: 0 -8px 25px 13px #ddd;
1482
  cursor: auto;
1483
  }
1484
 
1485
  .dgwt-wcas-tooltip__head {
1486
- font-size: 18px;
1487
- margin: 10px 0 20px 0;
1488
- display: block;
1489
- text-align: center;
1490
  }
1491
 
1492
  .dgwt_wcas_settings-group .form-table tr:not(.dgwt-wcas-sgs-header) .dgwt-wcas-questio-mark {
1493
- margin-top: -2px;
1494
- font-size: 20px;
1495
- line-height: 20px;
1496
  }
1497
 
1498
  .dgwt-wcas-questio-mark {
1499
- color: #999;
1500
  }
1501
 
1502
  .dgwt-wcas-tooltip__example {
1503
- display: block;
1504
- letter-spacing: 3px;
1505
- margin-top: -10px;
1506
- margin-bottom: 13px;
1507
- font-size: 20px;
1508
- color: #999;
1509
- font-weight: 100;
1510
  }
1511
 
1512
  .dgwt-wcas-sgs-themes-label label {
1513
- cursor: default;
1514
  }
1515
 
1516
  .dgwt-wcas-sgs-themes-label label img {
1517
- display: block;
1518
- max-width: 130px;
1519
- height: auto;;
1520
  }
1521
 
1522
  .dgwt-wcas-sgs-themes-label h2 {
1523
- color: #777;
1524
  }
1525
 
1526
  .dgwt-wcas-sgs-themes-label h2 b {
1527
- color: #000;
1528
  }
1529
 
1530
  .dgwt-wcas-sgs-market-label label img {
@@ -1572,6 +1667,7 @@ td.dgwt-wcas-indexing-details-row a {
1572
  padding: 0 10px;
1573
  font-size: 14px;
1574
  }
 
1575
  .dgwt-wcas-troubleshooting-wrapper p {
1576
  font-size: 14px;
1577
  }
@@ -1711,6 +1807,10 @@ h3.dgwt-wcas-troubleshooting-issue-title {
1711
  padding: 10px 2px;
1712
  }
1713
 
 
 
 
 
1714
  .dgwt-wcas-debug .widefat td:first-child {
1715
  text-align: right;
1716
  color: #7c3b7d;
@@ -1719,11 +1819,12 @@ h3.dgwt-wcas-troubleshooting-issue-title {
1719
  padding-right: 10px;
1720
  border-right: 1px solid #eee;
1721
  }
 
1722
  .dgwt-wcas-debug .widefat td:last-child {
1723
  padding-left: 10px;
1724
  }
1725
 
1726
- .dgwt-wcas-table-wordlist p{
1727
  line-height: 167%;
1728
  column-count: 5;
1729
  font-size: 15px;
@@ -1738,6 +1839,194 @@ h3.dgwt-wcas-troubleshooting-issue-title {
1738
  margin-right: 4px;
1739
  display: inline-block;
1740
  }
 
1741
  .dgwt-wcas-override-tooltip {
1742
  cursor: auto;
1743
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
 
2
  .dgwt-wcas-non-events {
3
+ pointer-events: none;
4
  }
5
 
6
  .dgwt-wcas-hidden {
7
+ display: none;
8
  }
9
 
10
  .dgwt-wcas-font-thin {
12
  }
13
 
14
  .dgwt-wcas-only-desc > td {
15
+ min-width: 600px
16
  }
17
 
18
  @media only screen and (max-width: 700px) {
19
+ .dgwt-wcas-only-desc > td {
20
+ min-width: 320px;
21
+ }
22
  }
23
 
24
  .dgwt-wcas-container {
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
  }
29
 
30
  .dgwt-wcas-settings table {
31
+ border-collapse: collapse;
32
  }
33
 
34
  .dgwt-wcas-settings > .notice:not(.dgwt-wcas-notice),
41
  .woocommerce_page_dgwt_wcas_settings .sbi_notice,
42
  .dgwt-wcas-settings > .updated:not(.fs-slug-ajax-search-for-woocommerce),
43
  .woocommerce_page_dgwt_wcas_settings .sp-eafree-review-notice {
44
+ display: none !important;
45
  }
46
 
47
  .dgwt-wcas-settings-hr {
48
+ display: block;
49
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
50
  }
51
 
52
  .dgwt-wcas-settings input.regular-text {
53
+ max-width: 283px;
54
  }
55
 
56
  .dgwt-wcas-settings input.regular-text.dgwt_wcas_settings-url {
57
+ max-width: 200px;
58
  }
59
 
60
  .dgwt-eq-settings-form label {
61
+ color: #444;
62
  }
63
 
64
  .dgwt_wcas_settings-group .form-table th {
65
+ vertical-align: middle;
66
+ min-width: 165px;
67
  }
68
 
69
  .dgwt_wcas_settings-group .form-table td fieldset {
90
 
91
  .dgwt_wcas_settings-group .form-table > tbody > tr > th,
92
  .dgwt_wcas_settings-group .form-table > tbody > tr > td {
93
+ padding: 15px 10px;
94
+ line-height: 16px;
95
+ min-height: 30px;
96
  }
97
 
98
  .dgwt-wcas-row:after {
99
+ content: '';
100
+ display: block;
101
+ clear: both;
102
  }
103
 
104
  .dgwt-wcas-sgs-header label {
105
+ color: #000;
106
+ font-size: 19px;
107
+ letter-spacing: 1px;
108
+ font-weight: 100;
109
+ cursor: default;
110
+ position: absolute !important;
111
+ width: calc(100vw - 230px);
112
+ top: 50px;
113
+ left: 10px;
114
+ border-top: 1px solid #ddd;
115
+ padding-top: 10px;
116
+ }
117
+
118
+ #dgwt_wcas_analytics h3 {
119
+ color: #000;
120
+ font-size: 19px;
121
+ letter-spacing: 1px;
122
+ font-weight: 100;
123
+ cursor: default;
124
+ border-top: 1px solid #ddd;
125
+ padding-top: 10px;
126
+ margin-top: 45px;
127
  }
128
 
129
  [data-dgwt-wcas-active="form_body"] .dgwt-wcas-sgs-header label,
130
  [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-sgs-header label {
131
+ width: 541px;
132
  }
133
 
134
  .dgwt-wcas-settings:not(.dgwt-wcas-settings-theme-supported) #dgwt_wcas_basic .submit {
135
+ display: none;
136
  }
137
 
138
  #dgwt_wcas_basic .dgwt-wcas-settings-info li {
139
+ margin-bottom: 10px;
140
  }
141
 
142
  .dgwt-wcas-sgs-header:first-child label {
143
+ top: 15px;
144
  }
145
 
146
  .dgwt-wcas-sgs-header th:before {
147
+ content: '';
148
+ display: block;
149
+ height: 55px;
150
  }
151
 
152
  .dgwt-wcas-sgs-header:first-child th:before {
153
+ height: 25px;
154
  }
155
 
156
  .dgwt-wcas-sgs-header th {
157
+ position: relative;
158
+ min-height: 70px;
159
  }
160
 
161
  .dgwt-wcas-sgs-desctiption-row th {
162
+ display: none;
163
  }
164
 
165
  .dgwt-wcas-settings-group > h2 {
166
+ display: none;
167
  }
168
 
169
  .dgwt-wcas-settings > h2.dgwt-wcas-settings__head {
170
+ display: flex;
171
+ flex-direction: row;
172
+ justify-content: flex-start;
173
+ align-content: center;
174
+ margin-bottom: 20px;
175
  }
176
 
177
  .wrap h2.nav-tab-wrapper {
178
+ padding-top: 20px;
179
  }
180
 
181
  .dgwt-wcas-settings__advanced {
189
  }
190
 
191
  .dgwt-wcas-settings__logo {
192
+ margin-right: 5px;
193
+ padding-top: 11px;
194
+ height: 34px;
195
  }
196
 
197
  .dgwt-wcas-settings__title {
199
  border-right: 1px solid #eaeaea;
200
  padding-right: 45px;
201
  }
202
+
203
  .dgwt-wcas-settings__title-top {
204
  display: flex;
205
  justify-content: flex-start;
206
  align-items: center;
207
  }
208
+
209
+ .dgwt-wcas-settings-logo-wrapper {
210
  display: flex;
211
  align-items: center;
212
  justify-content: flex-start;
213
  position: relative;
214
  }
215
+
216
  .dgwt-wcas-settings-logo-pro {
217
  display: none;
218
  }
219
+
220
  .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo-pro {
221
  display: block;
222
  position: absolute;
230
  line-height: 17px;
231
  padding: 0px 5px;
232
  }
233
+
234
  .dgwt-wcas-settings-pro .dgwt-wcas-settings-logo {
235
  margin-right: 40px;
236
  }
254
 
255
 
256
  .dgwt-wcas-opt-highlight:not(.dgwt-wcas-sgs-header) th label {
257
+ box-shadow: 0 0 25px 5px rgb(255, 243, 205);
258
+ background: rgb(255, 243, 205);
259
  }
260
 
261
  .dgwt-wcas-opt-transition th label {
262
+ transition: all 0.5s ease;
263
  }
264
 
265
  .dgwt-wcas-settings__advanced:hover {
266
+ opacity: 0.7;
267
  }
268
 
269
  .dgwt-wcas-admin-head {
270
+ margin: 30px 0 20px 5px;
271
  }
272
 
273
  .dgwt-wcas-settings__advanced span.button {
274
+ display: none;
275
  }
276
 
277
  .dgwt-wcas-settings__advanced span.dgwt-wcas-adv-settings-active {
278
+ display: block;
279
  }
280
 
281
  .dgwt-wcas-settings .woocommerce-input-toggle {
282
+ height: 12px;
283
+ width: 24px;
284
+ border: 2px solid #7c3b7d;
285
+ background-color: #7c3b7d;
286
+ display: inline-block;
287
+ text-indent: -9999px;
288
+ border-radius: 10em;
289
+ position: relative;
290
+ margin-top: -1px;
291
+ vertical-align: text-top;
292
  }
293
 
294
  .dgwt-wcas-settings .woocommerce-input-toggle::before {
295
+ content: "";
296
+ display: block;
297
+ width: 12px;
298
+ height: 12px;
299
+ background: #fff;
300
+ position: absolute;
301
+ top: 0;
302
+ right: 0;
303
+ border-radius: 100%;
304
  }
305
 
306
  .dgwt-wcas-settings .woocommerce-input-toggle.woocommerce-input-toggle--disabled::before {
307
+ right: auto;
308
+ left: 0;
309
  }
310
 
311
  .dgwt-wcas-settings .woocommerce-input-toggle.woocommerce-input-toggle--disabled {
312
+ border-color: #bbb;
313
+ background-color: #bbb;
314
  }
315
 
316
  .dgwt-wcas-adv-settings-label {
317
+ font-size: 13px;
318
+ margin-left: 7px;
319
  }
320
 
321
  .dgwt-wcas-adv-settings-saving {
322
+ font-size: 12px;
323
+ margin-left: 7px;
324
+ color: #bbb;
325
  }
326
 
327
  .dgwt-wcas-settings-synonyms textarea.regular-text {
328
+ min-height: 200px;
329
+ width: 35em;
330
  }
331
 
332
  .dgwt-wcas-admin-head h1 {
333
+ display: inline-block;
334
+ margin: 0 20px 0 0;
335
+ vertical-align: middle;
336
+ padding: 0;
337
  }
338
 
339
  .wp-core-ui .button.dgwt-wcas-button-preview {
340
+ vertical-align: middle;
341
  }
342
 
343
  .dgwt-wcas-preview-source * {
344
+ box-sizing: border-box !important;
345
  }
346
 
347
  .dgwt-wcas-button-preview .dashicons {
348
+ height: 22px;
349
+ vertical-align: middle;
350
+ margin-right: 5px;
351
  }
352
 
353
  .dgwt_wcas_settings-group .form-table td {
354
+ margin-bottom: 0;
355
  }
356
 
357
  .form-table td p.dgwt_wcas_settings-description-field {
358
+ color: #777;
359
+ display: inline-block;
360
+ font-size: 12px;
361
+ margin: 0 0 0 20px;
362
+ line-height: 105%;
363
  }
364
 
365
  .dgwt_wcas_settings-description-row {
366
+ padding: 30px 0;
367
+ border-top: 2px dashed #ddd;
368
+ border-bottom: 2px dashed #ddd;
369
  }
370
 
371
  .dgwt_wcas_settings-group > h2 {
372
+ display: none;
373
  }
374
 
375
  .dgwt_wcas_settings-group label input[type="checkbox"] {
376
+ margin: 0;
377
  }
378
 
379
+ .dgwt_wcas_settings-group > table:not(.dgwt-wcas-analytics-table) > tbody > tr > td {
380
+ display: flex;
381
+ justify-content: left;
382
+ align-items: center;
383
  }
384
 
385
+ .dgwt-wcas-analytics-table thead tr th:first-child {
386
+ width: 27px;
387
  }
388
 
389
+ .dgwt-wcas-analytics-table thead tr th:nth-child(3) {
390
+ width: 80px;
 
391
  }
392
+
393
+ .dgwt-wcas-analytics-table thead tr th:last-child {
394
+ min-width: 150px;
395
+ text-align: center;
396
+ }
397
+
398
+ .dgwt-wcas-analytics-table tbody tr td:last-child {
399
+ text-align: center;
400
+ }
401
+
402
+ .dgwt-wcas-analytics-table tbody tr td:last-child p {
403
+ text-align: left;
404
+ }
405
+
406
+ .dgwt-wcas-analytics-table tbody tr td p:last-child {
407
+ margin-bottom: 2px;
408
+ }
409
+
410
+ .dgwt_wcas_settings-group > table:not(.dgwt-wcas-analytics-table) > tbody > tr.dgwt-wcas-settings-synonyms > td {
411
+ display: block;
412
+ }
413
+
414
+ .dgwt_wcas_settings-group > table:not(.dgwt-wcas-analytics-table) > tbody > tr.dgwt-wcas-settings-synonyms > td p.dgwt_wcas_settings-description-field {
415
+ margin: 10px 0 0 0;
416
+ display: block;
417
+ }
418
+
419
+ .dgwt-wcas-settings table.dgwt-wcas-analytics-table {
420
+ border-collapse: unset;
421
+ }
422
+
423
+ table.widefat.dgwt-wcas-analytics-table {
424
+ max-width: 630px;
425
+ margin-bottom: 50px;
426
+ }
427
+
428
+ .dgwt-wcas-analytics-table tr td {
429
+ border-bottom: 1px solid #f3f3f3;
430
+ vertical-align: middle;
431
+ padding-top: 6px;
432
+ padding-bottom: 6px;
433
+ font-size: 15px;
434
+ }
435
+
436
+ .dgwt-wcas-analytics-table tr td:nth-child(2) {
437
+ font-size: 15px;
438
+ }
439
+
440
+ .dgwt-wcas-analytics-table tr.dgwt-wcas-analytics-load-more-row td {
441
+ border-bottom: none;
442
+ font-size: 13px;
443
+ }
444
+
445
  .dgwt-wcas-synonyms-sample {
446
+ font-family: monospace;
447
+ background: #fff;
448
+ border: 1px solid #ddd;
449
+ padding: 10px;
450
+ font-size: 13px;
451
+ display: inline-block;
452
+ line-height: 157%;
453
+ }
454
+
455
+ .wp-core-ui .button.dgwt-wcas-analytics-btn-mark,
456
+ .wp-core-ui .button.dgwt-wcas-analytics-btn-mark:hover {
457
+ color: #333;
458
+ border-color: #333;
459
+ margin: 5px 0;
460
+ display: flex;
461
+ justify-content: flex-start;
462
+ align-items: center;
463
+ }
464
+ .dgwt-wcas-analytics-btn-mark .dashicons{
465
+ color: #0f5132;
466
+ }
467
+
468
+ .dgwt-wcas-analytics-text-good {
469
+ color: #0f5132;
470
+ }
471
+
472
+ .dgwt-wcas-analytics-text-poorly {
473
+ color: #842029;
474
  }
475
 
476
  .dgwt-wcas-bc-notice .dgwt-wcas-container {
477
+ justify-content: left;
478
  }
479
 
480
  .dgwt-wcas-bc-button-wrapp {
481
+ border-top: 1px dashed #ddd;
482
+ padding-top: 15px;
483
+ margin-top: 15px;
484
+ padding-bottom: 15px;
485
  }
486
 
487
  .dgwt-wcas-bc-switcher {
488
+ position: relative;
489
+ min-width: 419px;
490
  }
491
 
492
  .dgwt-wcas-bc-todo-wrapp {
493
+ border: 2px dashed #eee;
494
+ width: 50%;
495
+ padding: 30px 10px 10px 10px;
496
+ position: relative;
497
+ margin-right: 40px;
498
  }
499
 
500
  .dgwt-wcas-bc-todo-head {
501
+ text-transform: uppercase;
502
+ font-size: 10px;
503
+ background: #aaa;
504
+ color: #fff;
505
+ padding: 2px 17px 2px 10px;
506
+ border-radius: 0 0 30px 0;
507
+ display: inline-block;
508
+ position: absolute;
509
+ left: -2px;
510
+ top: -2px;
511
  }
512
 
513
  .dgwt-wcas-bc-main-notice {
514
+ padding-right: 150px;
515
+ margin-bottom: 20px;
516
  }
517
 
518
  .dgwt-wcas-bc-remind-me {
519
+ position: absolute;
520
+ right: 0;
521
+ top: 0;
522
+ border-bottom: 1px solid #ddd;
523
+ border-left: 1px solid #ddd;
524
+ padding: 5px 8px;
525
+ text-decoration: none;
526
+ font-style: normal;
527
+ font-size: 12px;
528
  }
529
 
530
  .dgwt-wcas-bc-error, .dgwt-wcas-bc-success {
531
+ position: absolute;
532
+ color: #f04124;
533
+ left: auto;
534
+ right: auto;
535
+ bottom: -10px;
536
+ width: 100%;
537
+ font-size: 12px;
538
+ margin: 0 auto;
539
+ text-align: center;
540
  }
541
 
542
  .dgwt-wcas-bc-success {
543
+ color: #4caf50;
544
+ font-weight: 500;
545
+ letter-spacing: 1px;
546
+ opacity: 0.5;
547
  }
548
 
549
  @keyframes wiggle {
550
+ 0% {
551
+ transform: rotate(0deg);
552
+ }
553
+ 40% {
554
+ transform: rotate(0deg);
555
+ }
556
+ 43% {
557
+ transform: rotate(2deg);
558
+ }
559
+ 46% {
560
+ transform: rotate(-2deg);
561
+ }
562
+ 48% {
563
+ transform: rotate(0deg);
564
+ }
565
+ 100% {
566
+ transform: rotate(0deg);
567
+ background-color: rgba(76, 175, 80, 0.1);
568
+ }
569
  }
570
 
571
  .dgwt-wcas-anim-shake {
572
+ display: inline-block;
573
+ animation-name: wiggle;
574
+ animation-duration: 2s;
575
 
576
  }
577
 
578
  .dgwt-wcas-bc-todo-head.dgwt-wcas-bc-todo-head--latest {
579
+ background: #4caf50;
580
  }
581
 
582
  .dgwt-wcas-bc-steps {
584
  }
585
 
586
  .dgwt-wcas-bc-switcher-head {
587
+ text-align: center;
588
+ color: #b7b7b7;
589
+ font-size: 15px;
590
+ text-transform: uppercase;
591
+ font-weight: normal;
592
+ letter-spacing: 2px;
593
  }
594
 
595
  .dgwt-wcas-bc-spinner {
596
+ width: 22px;
597
+ height: 22px;
598
+ padding: 2px 0 0 4px;
599
+ opacity: 0.8;
600
  }
601
 
602
  .wp-core-ui .dgwt-wcas-bc-steps .button.button-small {
603
+ line-height: 18px;
604
+ height: 18px;
605
  }
606
 
607
  .dgwt-wcas-bc-steps code {
608
+ font-size: 11px;
609
+ background: #f4f4f4;
610
  }
611
 
612
  .wp-core-ui .button.dgwt-wcas-bc-button-approve {
613
+ background: #a36597;
614
+ border-color: #a36597;
615
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #a36597;
616
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 0 #a36597;
617
+ color: #fff;
618
  }
619
 
620
  .wp-core-ui .button.dgwt-wcas-bc-button-approve:hover {
621
+ opacity: 0.95;
622
  }
623
 
624
  .dgwt-wcas-settings-info {
625
+ background: #fbfbfb none repeat scroll 0 0;
626
+ border: 1px solid #ddd;
627
+ padding: 15px;
628
  }
629
 
630
  .dgwt-wcas-indexing-header__troubleshooting pre, .dgwt-wcas-troubleshooting-wrapper .dgwt-wcas-settings-info pre {
638
  }
639
 
640
  .wcas-opt-tntsearch .dgwt-wcas-settings-info {
641
+ width: 100%;
642
  }
643
 
644
  .dgwt-wcas-settings-info.dgwt-wcas-bc-notice {
645
+ margin-top: 15px;
646
+ margin-bottom: 15px;
647
+ border-left: 3px solid #9b5c8f;
648
+ position: relative;
649
  }
650
 
651
  .dgwt-wcas-bc-notice-head {
652
+ margin-top: 5px;
653
+ font-size: 15px;
654
+ margin-bottom: 7px;
655
+ font-weight: 500;
656
+ font-size: 15px;
657
+ color: #333;
658
  }
659
 
660
  @media only screen and (max-width: 1200px) {
661
+ .dgwt-wcas-bc-notice .dgwt-wcas-container {
662
+ display: block;
663
+ }
664
 
665
+ .dgwt-wcas-bc-switcher {
666
+ width: 100%;
667
+ }
668
 
669
+ .dgwt-wcas-bc-todo-wrapp {
670
+ width: 100%;
671
+ }
672
  }
673
 
674
  .dgwt-wcas-settings-info h4 {
675
+ margin-top: 0;
676
+ font-size: 15px;
677
+ margin-bottom: 7px
678
  }
679
 
680
  .dgwt-wcas-settings-info p {
681
+ margin-bottom: 10px;
682
  }
683
 
684
  .dgwt-wcas-settings-info {
685
+ background: #fbfbfb none repeat scroll 0 0;
686
+ border: 1px solid #ddd;
687
+ padding: 15px;
688
  }
689
 
690
  .dgwt-wcas-settings-info h4 {
691
+ margin-top: 0;
692
+ font-size: 15px;
693
+ margin-bottom: 7px
694
  }
695
 
696
  .dgwt-wcas-settings-info p {
697
+ margin-bottom: 10px;
698
  }
699
 
700
  /* Button Container in Review Us Container */
701
  .dgwt-wcas-review-notice .button-container {
702
+ display: block;
703
+ width: 100%;
704
+ margin: .75em 0 1.5em 0;
705
  }
706
 
707
  .dgwt-wcas-review-notice .button-container .dashicons {
708
+ font-size: 14px;
709
+ line-height: 1.9;
710
+ margin-left: -4px;
711
  }
712
 
713
  /* Star Icon */
714
  .dgwt-wcas-review-notice .button-container .dashicons-star-filled {
715
+ color: #E6B800;
716
  }
717
 
718
  /* Upgrade Icon */
719
  .dgwt-wcas-review-notice .button-container .dashicons-upload {
720
+ color: #6E8841;
721
  }
722
 
723
  /* Dismiss Icon */
724
  .dgwt-wcas-review-notice .button-container .dashicons-no-alt {
725
+ color: rgb(220, 58, 58);
726
+ line-height: 2;
727
  }
728
 
729
  .dgwt-wcas-review-notice .button-container a {
730
+ margin-right: 10px;
731
  }
732
 
733
  .notice.dgwt-wcas-review-notice {
734
+ border-left: 4px solid #00a0d2;
735
+ background: #fefefe;
736
+ padding: 10px 12px 1px 12px;
737
+ box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
738
+ -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .1);
739
+ margin: 15px 25px 20px 5px;
740
  }
741
 
742
  .dgwt-wcas-review-notice .dgwt-wcas-review-notice-logo {
743
+ background: url('../img/logo-for-review.png') no-repeat;
744
+ background-size: 68px;
745
+ float: left;
746
+ margin-top: 5px;
747
  margin-right: 15px;
748
  margin-left: 12px;
749
+ font-size: 14px;
750
+ height: 80px;
751
+ text-align: center;
752
+ width: 82px;
753
  }
754
 
755
  .dgwt-wcas-pro-label {
756
+ float: left;
757
+ vertical-align: middle;
758
+ margin-top: -2px;
759
+ line-height: 100%;
760
  }
761
 
762
  #dgwt_wcas_engine_pro-tab:not(.nav-tab-active) {
763
+ background: rgba(155, 92, 143, 0.1);
764
  }
765
 
766
  .nav-tab-minor {
767
+ float: right;
768
+ font-size: 13px;
769
+ text-decoration: none;
770
+ font-weight: normal;
771
+ margin-left: 10px;
772
+ line-height: 30px;
773
+ position: relative;
774
  }
775
 
776
  .nav-tab-minor-contact:before {
777
+ display: block;
778
+ content: "\f466";
779
+ font-family: dashicons;
780
+ width: 20px;
781
+ height: 20px;
782
+ font-size: 20px;
783
+ display: inline-block;
784
+ position: absolute;
785
+ left: -24px;
786
+ top: 0;
787
  }
788
 
789
  .nav-tab-minor-showcase:before {
790
+ display: block;
791
+ content: "\f126";
792
+ font-family: dashicons;
793
+ width: 20px;
794
+ height: 20px;
795
+ font-size: 20px;
796
+ display: inline-block;
797
+ position: absolute;
798
+ left: -24px;
799
+ top: 0;
800
  }
801
 
802
  .nav-tab-minor-account,
803
  .nav-tab-minor-showcase {
804
+ margin-right: 25px;
805
  }
806
 
807
  .nav-tab-minor-account:before {
808
+ display: block;
809
+ content: "\f110";
810
+ font-family: dashicons;
811
+ width: 20px;
812
+ height: 20px;
813
+ font-size: 20px;
814
+ display: inline-block;
815
+ position: absolute;
816
+ left: -24px;
817
+ top: 0;
818
  }
819
 
820
  .dgwt-wcas-pro-field .dgwt-jg-pro-suffix {
821
+ font-size: 9px;
822
+ padding: 2px 4px;
823
+ line-height: 100%;
824
+ margin-top: -5px;
825
  }
826
 
827
  .dgwt-wcas-modal-logo {
828
+ margin: 20px 20px 0 0;
829
+ display: inline-block;
830
+ float: right;
831
  }
832
 
833
  .dgwt-wcas-modal-title {
834
+ font-size: 1.2em;
835
  }
836
 
837
  .dgwt-wcas-pro-suffix {
838
+ float: left;
839
+ background: #9b5c8f;
840
+ color: #fff;
841
+ border-radius: 4px;
842
+ padding: 1px 5px;
843
+ margin: 0 0 0 3px;
844
+ font-size: 10px;
845
+ text-transform: uppercase;
846
+ letter-spacing: 0;
847
+ font-style: normal;
848
+ vertical-align: middle;
849
  }
850
 
851
  .dgwt-wcas-pro-header {
852
+ position: relative;
853
+ min-width: 148px;
854
  }
855
 
856
  .dgwt-wcas-pro-header .dgwt-wcas-pro-label {
857
+ float: none;
858
+ display: inline-block;
859
+ margin-right: 40px;
860
  }
861
 
862
  .dgwt-wcas-pro-header .dgwt-wcas-pro-suffix {
863
+ float: none;
864
+ display: inline-block;
865
+ position: absolute;
866
+ right: 4px;
867
+ top: -1px;
868
  }
869
 
870
  .dgwt-wcas-pro-field .dgwt-wcas-pro-suffix {
871
+ font-size: 9px;
872
+ padding: 2px 4px;
873
+ line-height: 100%;
874
+ margin-top: -5px;
875
  }
876
 
877
  .dgwt-wcas-pro-header__subtitle {
878
+ display: block;
879
+ margin-top: -11px;
880
  }
881
 
882
  .dgwt-wcas-pro-header__subtitle--text {
883
+ position: absolute;
884
+ left: 1px;
885
+ top: 13px;
886
+ font-size: 10px;
887
+ letter-spacing: 1px;
888
+ color: rgba(0, 0, 0, 0.6);
889
  }
890
 
891
  .dgwt-wcas-toggler, .dgwt-wcas-toggle {
892
+ display: inline-block;
893
+ vertical-align: middle;
894
+ margin: 10px;
895
  }
896
 
897
  .dgwt-wcas-toggler {
898
+ color: #000;
899
+ opacity: 0.4;
900
+ transition: .2s;
901
+ padding: 1px 6px 1px 12px;
902
+ border-radius: 5px;
903
+ /* border:1px solid transparent;*/
904
  }
905
 
906
  .dgwt-wcas-toggler--is-active {
907
+ color: #000;
908
+ opacity: 1;
909
+ /* background-color: rgba(155,92,143, 0.04);*/
910
+ /* border:1px solid rgba(155,92,143, 0.1);*/
911
+ position: relative;
912
  }
913
 
914
  .dgwt-wcas-toggler--is-active:before {
915
+ position: absolute;
916
+ content: '';
917
+ width: 5px;
918
+ height: 5px;
919
+ background: rgba(155, 92, 143, 1);
920
+ display: block;
921
+ left: 2px;
922
+ border-radius: 100%;
923
+ top: 8px;
924
  }
925
 
926
  .dgwt-wcas-toggle {
927
+ width: 50px;
928
+ height: 30px;
929
+ border-radius: 100px;
930
+ background-color: #9b5c8f;
931
+ overflow: hidden;
932
+ box-shadow: inset 0 0 2px 1px rgba(0, 0, 0, 0.05);
933
+ position: relative;
934
  }
935
 
936
  .dgwt-wcas-toggle.dgwt-wcas-toggle--mute {
937
+ background-color: #ddd;
938
  }
939
 
940
  input[type=checkbox].dgwt-wcas-check {
941
+ position: absolute;
942
+ display: block;
943
+ cursor: pointer;
944
+ top: 0;
945
+ left: 0;
946
+ width: 100%;
947
+ height: 100%;
948
+ opacity: 0;
949
+ z-index: 6;
950
  }
951
 
952
  input[type=checkbox].dgwt-wcas-check:checked ~ .dgwt-wcas-switch {
953
+ right: 37.5%;
954
+ left: 2px;
955
+ transition: 0.25s cubic-bezier(0.785, 0.135, 0.15, 0.86);
956
+ transition-property: left, right;
957
+ transition-delay: 0s, .08s;
958
  }
959
 
960
  .dgwt-wcas-settings-margin-nob {
961
+ padding-left: 15px;
962
+ border-left: 1px dashed #d7d7d7;
963
  }
964
 
965
  .dgwt-wcas-switch {
966
+ display: block;
967
+ position: absolute;
968
+ left: 2px;
969
+ top: 2px;
970
+ bottom: 2px;
971
+ background-color: #fff;
972
+ border-radius: 36px;
973
+ z-index: 1;
974
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
975
+
976
+ right: 2px;
977
+ left: 37.5%;
978
+ transition: 0.25s cubic-bezier(0.785, 0.135, 0.15, 0.86);
979
+ transition-property: left, right;
980
+ transition-delay: .08s, 0s;
981
  }
982
 
983
  .progress_bar .pro-bar {
984
+ background: hsl(0, 0%, 97%);
985
+ box-shadow: 0 1px 2px hsla(0, 0%, 0%, 0.1) inset;
986
+ height: 4px;
987
+ margin-bottom: 12px;
988
+ margin-top: 50px;
989
+ position: relative;
990
  }
991
 
992
  .progress_bar .progress_bar_title {
993
+ color: hsl(218, 4%, 50%);
994
+ font-size: 15px;
995
+ font-weight: 300;
996
+ position: relative;
997
+ top: -28px;
998
+ z-index: 1;
999
  }
1000
 
1001
  .progress_bar .progress_number {
1002
+ float: right;
1003
+ margin-top: -24px;
1004
  }
1005
 
1006
  .progress_bar .progress-bar-inner {
1007
+ background-color: hsl(0, 0%, 88%);
1008
+ display: block;
1009
+ width: 0;
1010
+ height: 100%;
1011
+ position: absolute;
1012
+ top: 0;
1013
+ left: 0;
1014
+ transition: width 1s linear 0s;
1015
  }
1016
 
1017
  .progress_bar .progress-bar-inner:before {
1018
+ content: "";
1019
+ background-color: hsl(0, 0%, 100%);
1020
+ border-radius: 50%;
1021
+ width: 4px;
1022
+ height: 4px;
1023
+ position: absolute;
1024
+ right: 1px;
1025
+ top: 0;
1026
+ z-index: 1;
1027
  }
1028
 
1029
  .progress_bar .progress-bar-inner:after {
1030
+ content: "";
1031
+ width: 14px;
1032
+ height: 14px;
1033
+ background-color: inherit;
1034
+ border-radius: 50%;
1035
+ position: absolute;
1036
+ right: -4px;
1037
+ top: -5px;
1038
  }
1039
 
1040
  .dgwt-wcas-indexer-logs {
1041
+ margin: 10px 0;
1042
+ font-family: monospace;
1043
+ background: #fff;
1044
+ border: 1px solid #ccc;
1045
+ padding: 10px;
1046
+ color: #888;
1047
+ font-size: 11px;
1048
+ word-break: break-all;
1049
  }
1050
 
1051
  .dgwt-wcas-indexer-log {
1052
+ display: block;
1053
  }
1054
 
1055
  .dgwt-wcas-indexer-log code {
1056
+ padding: 1px 5px 1px 5px;
1057
+ font-size: 11px;
1058
  }
1059
 
1060
  .dgwt-wcas-indexer-logs__error {
1061
+ color: #db6564;
1062
  }
1063
 
1064
  .dgwt-wcas-indexer-table {
1065
+ border: 1px solid #ddd;
1066
+ margin: 20px 0 10px 0;
1067
+ max-width: 350px;
1068
+ width: 100%;
1069
  }
1070
 
1071
  .dgwt-wcas-indexer-table td {
1072
+ padding: 3px 10px !important;
1073
+ border-bottom: 1px solid #e8e8e8;
1074
+ line-height: 100%;
1075
  }
1076
 
1077
  .dgwt-wcas-indexer-table table td {
1078
+ border-bottom: none;
1079
+ padding-left: 0 !important;
1080
  }
1081
 
1082
  .dgwt-wcas-indexer-table > tbody > tr:last-child > td {
1083
+ border-bottom: none;
1084
  }
1085
 
1086
  .dgwt-wcas-indexing-header table .dgwt-wcas-indexer-table__in {
1087
+ border: none;
1088
  }
1089
 
1090
  .dgwt-wcas-indexing-header table .dgwt-wcas-indexer-table__in td {
1091
+ text-align: left;
1092
  }
1093
 
1094
  .js-dgwt-wcas-indexer-details.hide {
1095
+ display: none;
1096
  }
1097
 
1098
  .js-dgwt-wcas-indexer-details.show {
1099
+ display: block;
1100
  }
1101
 
1102
  .dgwt-wcas-indexing-details-trigger.hide {
1103
+ display: none;
1104
  }
1105
 
1106
  .dgwt-wcas-indexing-details-trigger.show {
1107
+ display: block;
1108
  }
1109
 
1110
  .dgwt-wcas-indexing-header table {
1111
+ border: 1px solid #ddd;
1112
+ max-width: 350px;
1113
+ width: auto;
1114
  }
1115
 
1116
  .dgwt-wcas-indexing-header table th {
1117
+ padding: 5px 10px;
1118
  }
1119
 
1120
  .dgwt-wcas-indexing-header table th {
1121
+ border-bottom: 1px solid #ddd;
1122
+ background-color: #e9e9e9;
1123
+ padding: 5px 10px;
1124
  }
1125
 
1126
  .dgwt-wcas-indexing-header__title {
1127
+ font-weight: 100;
1128
+ font-size: 27px;
1129
+ margin-bottom: 10px;
1130
+ display: block;
1131
  }
1132
 
1133
  .dgwt-wcas-indexing-header__subtitle {
1134
+ font-weight: 100;
1135
+ font-size: 15px;
1136
+ display: block;
1137
+ margin: 0 0 5px 0;
1138
  }
1139
 
1140
  .dgwt-wcas-indexing-header__actions {
1141
+ display: flex;
1142
+ justify-content: space-between;
1143
+ align-items: flex-end;
1144
+ margin-top: 15px;
1145
  }
1146
 
1147
  .dgwt-wcas-indexing-header__troubleshooting {
1148
+ font-size: 13px;
1149
+ border: 2px dashed #e7e7e7;
1150
+ padding: 10px;
1151
+ line-height: 144%;
1152
  }
1153
 
1154
  .dgwt-wcas-indexing-header__troubleshooting a {
1155
+ text-decoration: none;
1156
  }
1157
 
1158
  .dgwt-wcas-indexing-header__troubleshooting .dgwt-wcas-indexing-header__log {
1163
  font-family: monospace;
1164
  font-size: 12px;
1165
  }
1166
+
1167
  .dgwt-wcas-indexing-header__error-code {
1168
  background: #f5dede;
1169
  border: 1px solid #f0c0c1;
1176
  }
1177
 
1178
  .wcas-ajax-build-index-wait {
1179
+ opacity: 0.5;
1180
+ pointer-events: none;
1181
  }
1182
 
1183
  .button.ajax-build-index-primary {
1184
+ background: #a36597;
1185
+ border-color: #a36597;
1186
+ color: #fff;
1187
  }
1188
 
1189
  .button.ajax-build-index-primary:hover {
1190
+ background: #a36597;
1191
+ border-color: #a36597;
1192
+ color: #fff;
1193
+ opacity: 0.7;
1194
  }
1195
 
1196
  .dgwt-wcas-indexing-details-trigger {
1197
+ display: block;
1198
+ font-size: 80%;
1199
+ text-decoration: none;
1200
+ float: right;
1201
+ padding: 0;
1202
+ margin: 0;
1203
  }
1204
 
1205
  .dgwt-wcas-indexing-header__status {
1206
+ color: #fff;
1207
+ padding: 3px 20px 3px 0;
1208
  }
1209
 
1210
  td.dgwt-wcas-indexing-details-row {
1211
+ padding: 1px 10px;
1212
+ border-top: 1px solid #eee;
1213
  }
1214
 
1215
  td.dgwt-wcas-indexing-details-row a {
1217
  }
1218
 
1219
  .dgwt-wcas-requirements {
1220
+ margin-right: 20px;
1221
  }
1222
 
1223
  .dgwt-wcas-requirements__inner {
1224
+ margin: 60px auto 20px auto;
1225
+ max-width: 780px;
1226
+ background: #fff;
1227
+ padding: 12px 32px;
1228
+ border: 1px solid #ccc;
1229
+ border-left: 3px solid #d54e21;
1230
  }
1231
 
1232
  .dgwt-wcas-settings:not(.dgwt-wcas-settings-pro) .dgwt-wcas-premium-only {
1233
+ opacity: 0.5;
1234
  }
1235
 
1236
  .dgwt-wcas-upgrade-s__title {
1237
+ font-weight: 100;
1238
+ font-size: 25px;
1239
+ margin-bottom: 10px;
1240
+ display: block;
1241
+ line-height: 157%;
1242
  }
1243
 
1244
  .form-table td p.dgwt-wcas-upgrade-s__subtitle {
1245
+ font-weight: 100;
1246
+ font-size: 17px;
1247
+ margin-bottom: 10px;
1248
  }
1249
 
1250
  .dgwt-wcas-upgrade-s__title span {
1251
+ border-bottom: 1px solid #a36597;
1252
+ display: inline-block;
1253
+ font-weight: 400;
1254
  }
1255
 
1256
  .dgwt-wcas-upgrade-s li strong {
1257
+ font-weight: 400;
1258
+ font-size: 14px;
1259
  }
1260
 
1261
  .dgwt-wcas-our-devs {
1262
+ font-size: 12px;
1263
+ display: block;
1264
+ margin-top: 19px;
1265
+ padding-top: 10px;
1266
+ border-top: 1px dashed #ddd;
1267
+ color: #888;
1268
  }
1269
 
1270
  .dgwt_wcas_settings-group .selectize-input {
1271
+ min-width: 280px;
1272
+ max-width: 280px;
1273
  }
1274
 
1275
  .dgwt_wcas_settings-group .selectize-dropdown-content .create {
1276
+ display: none;
1277
  }
1278
+
1279
  .dgwt_wcas_settings-group .selectize-dropdown-content .option.active {
1280
+ background: rgba(150, 88, 137, 0.15);
1281
  }
1282
+
1283
  .dgwt_wcas_settings-group .selectize-dropdown-content .option .highlight {
1284
+ font-weight: bold;
1285
+ background: transparent;
1286
+ display: inline-block;
1287
+ border-bottom: 1px solid #444;
1288
  }
1289
+
1290
  .dgwt_wcas_settings-group .selectize-dropdown-content .optgroup .optgroup-header {
1291
+ font-weight: bold;
1292
  }
1293
+
1294
  .dgwt_wcas_settings-group .selectize-dropdown-content .optgroup .option {
1295
+ padding-left: 20px;
1296
  }
1297
 
1298
  .dgwt_wcas_settings-group .wp-picker-clear {
1299
+ display: none;
1300
  }
1301
 
1302
  .dgwt-wcas-preview {
1303
+ display: none;
1304
+ width: 100%;
1305
 
1306
  }
1307
 
1308
  [data-dgwt-wcas-active="form_body"] .dgwt-wcas-preview,
1309
  [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-preview {
1310
+ display: block;
1311
  }
1312
 
1313
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"],
1314
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] {
1315
+ display: flex;
1316
+ flex-direction: row-reverse;
1317
+ justify-content: flex-end;
1318
  }
1319
 
1320
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .metabox-holder,
1321
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .metabox-holder {
1322
+ max-width: 550px;
1323
+ min-width: 495px;
1324
+ width: 100%;
1325
+ border-right: 1px solid #ddd;
1326
+ overflow: hidden;
1327
  }
1328
 
1329
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-suggestions-wrapp,
1330
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-details-wrapp {
1331
+ display: none !important;
1332
  }
1333
 
1334
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .dgwt-wcas-preview-subheader__ac {
1335
+ display: none;
1336
  }
1337
 
1338
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-preview-subheader__sb {
1339
+ display: none;
1340
  }
1341
 
1342
  .dgwt-wcas-preview-source .dgwt-wcas-suggestions-wrapp {
1343
+ width: 100%;
1344
+ margin: 0 auto;
1345
  }
1346
 
1347
  .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-is-details .dgwt-wcas-preview-source .dgwt-wcas-search-wrapp,
1348
  .dgwt-wcas-is-details .dgwt-wcas-preview-source .dgwt-wcas-suggestions-wrapp {
1349
+ margin: 0;
1350
  }
1351
+
1352
  .dgwt-wcas-preview-source .dgwt-wcas-details-inner {
1353
  display: block;
1354
  }
1355
 
1356
  .dgwt-wcas-hide {
1357
+ display: none !important;
1358
  }
1359
 
1360
  .dgwt-wcas-autocomplete {
1361
+ display: flex;
1362
  }
1363
 
1364
  .dgwt-wcas-preview-source {
1365
+ min-width: 600px;
1366
+ margin: 0 auto;
1367
+ padding: 20px 40px;
1368
  }
1369
 
1370
  .dgwt-wcas-preview-source .dgwt-wcas-suggestion-brand .dgwt-wcas-si,
1384
 
1385
  .dgwt-wcas-search-wrapp,
1386
  .dgwt-wcas-autocomplete {
1387
+ pointer-events: none;
1388
  }
1389
 
1390
  .dgwt-wcas-click-alert {
1391
+ position: absolute;
1392
+ z-index: 9999;
1393
+ left: 938px;
1394
+ top: 596px;
1395
+ color: #fff;
1396
+ background: #ca4a1f;
1397
+ font-size: 18px;
1398
+ padding: 4px 12px;
1399
+ border-radius: 6px;
1400
  }
1401
 
1402
  .dgwt-wcas-preview-source-no-click {
1403
+ opacity: 0.5;
1404
  }
1405
 
1406
  .dgwt-wcas-preview-head {
1407
+ margin: 30px auto 0 auto;
1408
+ text-align: center;
1409
  }
1410
 
1411
  .dgwt-wcas-preview-header {
1412
+ font-weight: 300;
1413
+ font-size: 35px;
1414
+ margin-bottom: 10px;
1415
+ display: block;
1416
+ line-height: 100%;
1417
  }
1418
 
1419
  .dgwt-wcas-preview-subheader {
1420
+ font-weight: 100;
1421
+ font-size: 25px;
1422
+ color: #aaa;
1423
+ margin-bottom: 10px;
1424
+ display: block;
1425
+ line-height: 100%;
1426
+ margin-top: -9px;
1427
  }
1428
 
1429
  .dgwt-wcas-preview-nores {
1430
+ width: 100% !important;;
1431
+ max-height: 41px !important;
1432
+ min-height: 0 !important;;
1433
  }
1434
 
1435
  .dgwt-wcas-pd-addtc .input-text.qty {
1436
+ width: 38px;
1437
  }
1438
 
1439
  @media only screen and (max-width: 782px) {
1440
+ .dgwt-wcas-settings-body[data-dgwt-wcas-active="form_body"] .metabox-holder,
1441
+ .dgwt-wcas-settings-body[data-dgwt-wcas-active="autocomplete"] .metabox-holder {
1442
+ min-width: 320px;
1443
+ max-width: none;
1444
+ }
1445
 
1446
+ [data-dgwt-wcas-active="form_body"] .dgwt-wcas-sgs-header label,
1447
+ [data-dgwt-wcas-active="autocomplete"] .dgwt-wcas-sgs-header label {
1448
+ width: 100%;
1449
+ }
1450
 
1451
+ .dgwt-wcas-preview {
1452
+ display: none !important;
1453
+ }
1454
  }
1455
 
1456
  .dgwt-wcas-tooltip {
1457
+ position: absolute;
1458
+ z-index: 1070;
1459
+ display: block;
1460
+ margin: 0;
1461
+ font-style: normal;
1462
+ font-weight: 400;
1463
+ line-height: 1.5;
1464
+ text-align: left;
1465
+ text-decoration: none;
1466
+ text-shadow: none;
1467
+ text-transform: none;
1468
+ letter-spacing: normal;
1469
+ word-break: normal;
1470
+ word-spacing: normal;
1471
+ white-space: normal;
1472
+ line-break: auto;
1473
+ font-size: 14px;
1474
+ word-wrap: break-word;
1475
  }
1476
 
1477
  .dgwt-wcas-tooltip.show {
1478
+ opacity: 0.9;
1479
  }
1480
 
1481
  .dgwt-wcas-tooltip .dgwt-wcas-tooltip-arrow {
1482
+ position: absolute;
1483
+ display: block;
1484
+ width: 0.8rem;
1485
+ height: 0.4rem;
1486
  }
1487
 
1488
  .dgwt-wcas-tooltip .dgwt-wcas-tooltip-arrow::before {
1489
+ position: absolute;
1490
+ content: "";
1491
+ border-color: transparent;
1492
+ border-style: solid;
1493
  }
1494
 
1495
  .dgwt-wcas-tooltip-top,
1496
  .dgwt-wcas-tooltip[x-placement^="top"] {
1497
+ padding: 0.4rem 0;
1498
  }
1499
 
1500
  .dgwt-wcas-tooltip-top .dgwt-wcas-tooltip-arrow,
1501
  .dgwt-wcas-tooltip[x-placement^="top"] .dgwt-wcas-tooltip-arrow {
1502
+ bottom: 0;
1503
  }
1504
 
1505
  .dgwt-wcas-tooltip-top .dgwt-wcas-tooltip-arrow::before,
1506
  .dgwt-wcas-tooltip[x-placement^="top"] .dgwt-wcas-tooltip-arrow::before {
1507
+ top: 0;
1508
+ border-width: 0.4rem 0.4rem 0;
1509
+ border-top-color: #fff;
1510
  }
1511
 
1512
  .dgwt-wcas-tooltip-right,
1513
  .dgwt-wcas-tooltip[x-placement^="right"] {
1514
+ padding: 0 0.4rem;
1515
  }
1516
 
1517
  .dgwt-wcas-tooltip-right .dgwt-wcas-tooltip-arrow,
1518
  .dgwt-wcas-tooltip[x-placement^="right"] .dgwt-wcas-tooltip-arrow {
1519
+ left: 0;
1520
+ width: 0.4rem;
1521
+ height: 0.8rem;
1522
  }
1523
 
1524
  .dgwt-wcas-tooltip-right .dgwt-wcas-tooltip-arrow::before,
1525
  .dgwt-wcas-tooltip[x-placement^="right"] .dgwt-wcas-tooltip-arrow::before {
1526
+ right: 0;
1527
+ border-width: 0.4rem 0.4rem 0.4rem 0;
1528
+ border-right-color: #fff;
1529
  }
1530
 
1531
  .dgwt-wcas-tooltip-bottom,
1532
  .dgwt-wcas-tooltip[x-placement^="bottom"] {
1533
+ padding: 0.4rem 0;
1534
  }
1535
 
1536
  .dgwt-wcas-tooltip-bottom .dgwt-wcas-tooltip-arrow,
1537
  .dgwt-wcas-tooltip[x-placement^="bottom"] .dgwt-wcas-tooltip-arrow {
1538
+ top: 0;
1539
  }
1540
 
1541
  .dgwt-wcas-tooltip-bottom .dgwt-wcas-tooltip-arrow::before,
1542
  .dgwt-wcas-tooltip[x-placement^="bottom"] .dgwt-wcas-tooltip-arrow::before {
1543
+ bottom: 0;
1544
+ border-width: 0 0.4rem 0.4rem;
1545
+ border-bottom-color: #fff;
1546
  }
1547
 
1548
  .dgwt-wcas-tooltip-left,
1549
  .dgwt-wcas-tooltip[x-placement^="left"] {
1550
+ padding: 0 0.4rem;
1551
  }
1552
 
1553
  .dgwt-wcas-tooltip-left .dgwt-wcas-tooltip-arrow,
1554
  .dgwt-wcas-tooltip[x-placement^="left"] .dgwt-wcas-tooltip-arrow {
1555
+ right: 0;
1556
+ width: 0.4rem;
1557
+ height: 0.8rem;
1558
  }
1559
 
1560
  .dgwt-wcas-tooltip-left .dgwt-wcas-tooltip-arrow::before,
1561
  .dgwt-wcas-tooltip[x-placement^="left"] .dgwt-wcas-tooltip-arrow::before {
1562
+ left: 0;
1563
+ border-width: 0.4rem 0 0.4rem 0.4rem;
1564
+ border-left-color: #fff;
1565
  }
1566
 
1567
  .dgwt-wcas-tooltip-inner {
1568
  max-width: 280px;
1569
+ line-height: 158%;
1570
+ font-size: 14px;
1571
+ padding: 10px 15px;
1572
+ color: #222;
1573
+ text-align: left;
1574
+ background-color: #fff;
1575
+ border-radius: 0.25rem;
1576
+ box-shadow: 0 -8px 25px 13px #ddd;
1577
  cursor: auto;
1578
  }
1579
 
1580
  .dgwt-wcas-tooltip__head {
1581
+ font-size: 18px;
1582
+ margin: 10px 0 20px 0;
1583
+ display: block;
1584
+ text-align: center;
1585
  }
1586
 
1587
  .dgwt_wcas_settings-group .form-table tr:not(.dgwt-wcas-sgs-header) .dgwt-wcas-questio-mark {
1588
+ margin-top: -2px;
1589
+ font-size: 20px;
1590
+ line-height: 20px;
1591
  }
1592
 
1593
  .dgwt-wcas-questio-mark {
1594
+ color: #999;
1595
  }
1596
 
1597
  .dgwt-wcas-tooltip__example {
1598
+ display: block;
1599
+ letter-spacing: 3px;
1600
+ margin-top: -10px;
1601
+ margin-bottom: 13px;
1602
+ font-size: 20px;
1603
+ color: #999;
1604
+ font-weight: 100;
1605
  }
1606
 
1607
  .dgwt-wcas-sgs-themes-label label {
1608
+ cursor: default;
1609
  }
1610
 
1611
  .dgwt-wcas-sgs-themes-label label img {
1612
+ display: block;
1613
+ max-width: 130px;
1614
+ height: auto;;
1615
  }
1616
 
1617
  .dgwt-wcas-sgs-themes-label h2 {
1618
+ color: #777;
1619
  }
1620
 
1621
  .dgwt-wcas-sgs-themes-label h2 b {
1622
+ color: #000;
1623
  }
1624
 
1625
  .dgwt-wcas-sgs-market-label label img {
1667
  padding: 0 10px;
1668
  font-size: 14px;
1669
  }
1670
+
1671
  .dgwt-wcas-troubleshooting-wrapper p {
1672
  font-size: 14px;
1673
  }
1807
  padding: 10px 2px;
1808
  }
1809
 
1810
+ .dgwt-wcas-debug .dgwt-wcas-table-debug-analytics td {
1811
+ line-height: 1.5em;
1812
+ }
1813
+
1814
  .dgwt-wcas-debug .widefat td:first-child {
1815
  text-align: right;
1816
  color: #7c3b7d;
1819
  padding-right: 10px;
1820
  border-right: 1px solid #eee;
1821
  }
1822
+
1823
  .dgwt-wcas-debug .widefat td:last-child {
1824
  padding-left: 10px;
1825
  }
1826
 
1827
+ .dgwt-wcas-table-wordlist p {
1828
  line-height: 167%;
1829
  column-count: 5;
1830
  font-size: 15px;
1839
  margin-right: 4px;
1840
  display: inline-block;
1841
  }
1842
+
1843
  .dgwt-wcas-override-tooltip {
1844
  cursor: auto;
1845
  }
1846
+
1847
+ .dgwt-wcas-analytics-body,
1848
+ .dgwt-wcas-analytics-langs {
1849
+ padding-left: 10px;
1850
+ }
1851
+
1852
+ .dgwt-wcas-analytics-tiles {
1853
+ display: flex;
1854
+ justify-content: flex-start;
1855
+ align-items: center;
1856
+ }
1857
+
1858
+ .dgwt-wcas-analytics-tile {
1859
+ display: flex;
1860
+ align-items: center;
1861
+ justify-content: space-between;
1862
+ padding: 20px 30px 20px 15px;
1863
+ background: #fff;
1864
+ border: 1px solid #ccc;
1865
+ margin-right: 40px;
1866
+ min-width: 200px;
1867
+ }
1868
+
1869
+ .dgwt-wcas-analytics-tile__icon svg.dgwt-wcas-stats-icon-smile path {
1870
+ fill: #badbcc;
1871
+ }
1872
+
1873
+ .dgwt-wcas-analytics-tile__icon svg.dgwt-wcas-stats-icon-smile {
1874
+ border: 3px solid #badbcc;
1875
+ border-radius: 100%;
1876
+ padding: 7px 6px 5px 6px;
1877
+ height: 35px;
1878
+ width: 34px;
1879
+ }
1880
+
1881
+ .dgwt-wcas-analytics-tile__icon svg.dgwt-wcas-stats-icon-sad {
1882
+ border: 3px solid #f5c2c7;
1883
+ border-radius: 100%;
1884
+ padding: 8px 5px 0 5px;
1885
+ height: 35px;
1886
+ width: 34px;
1887
+ }
1888
+
1889
+ .dgwt-wcas-analytics-tile__icon svg.dgwt-wcas-stats-icon-sad path {
1890
+ fill: #f5c2c7;
1891
+
1892
+ }
1893
+
1894
+ .dgwt-wcas-analytics-disable-row {
1895
+ background: #eee;
1896
+ pointer-events: none;
1897
+ }
1898
+
1899
+ .widefat .dgwt-wcas-analytics-disable-row td p {
1900
+ margin-bottom: 0;
1901
+ }
1902
+
1903
+ .dgwt-wcas-analytics-disable-row td {
1904
+ color: #ccc;
1905
+ font-size: 14px !important;
1906
+ }
1907
+
1908
+ .dgwt-wcas-analytics-tile__values {
1909
+ margin-right: 45px;
1910
+ }
1911
+
1912
+ .dgwt-wcas-analytics-tile__values > span {
1913
+ display: block;
1914
+ }
1915
+
1916
+ .dgwt-wcas-analytics-tile__values > span:nth-child(1) {
1917
+ font-size: 17px;
1918
+ color: #000;
1919
+ font-weight: normal;
1920
+ line-height: 17px;
1921
+ padding-bottom: 1px;
1922
+ }
1923
+
1924
+ .dgwt-wcas-analytics-tile__values > span:nth-child(2) {
1925
+ font-size: 14px;
1926
+ color: #999;
1927
+ line-height: 14px;
1928
+ padding-bottom: 5px;
1929
+ }
1930
+
1931
+ .dgwt-wcas-analytics-tile__values > span:nth-child(3) {
1932
+ font-size: 30px;
1933
+ line-height: 30px;
1934
+ }
1935
+
1936
+ .dgwt-wcas-analytics-tile__icon svg {
1937
+ height: 40px;
1938
+ width: 40px;
1939
+ }
1940
+
1941
+ .dgwt-wcas-analytics-tile__icon svg path {
1942
+ fill: #eee;
1943
+ }
1944
+
1945
+ .dgwt-wcas-analytics-module-tables {
1946
+ display: flex;
1947
+ justify-content: flex-start;
1948
+ align-items: flex-start;
1949
+ }
1950
+
1951
+ .dgwt-wcas-analytics-module-table:first-child {
1952
+ margin-right: 40px;
1953
+ }
1954
+
1955
+ .dgwt-wcas-analytics-module-table tr > th:first-child {
1956
+ width: 30px;
1957
+ }
1958
+
1959
+ .dgwt-wcas-analytics-module-table tr > th:last-child {
1960
+ width: 110px
1961
+ }
1962
+
1963
+ .dgwt-wcas-analytics-module-critical-body {
1964
+ display: flex;
1965
+ justify-content: flex-start;
1966
+ align-items: center;
1967
+ }
1968
+
1969
+ .dgwt-wcas-analytics-module-critical-info {
1970
+ background: #fff;
1971
+ padding: 20px;
1972
+ margin: 0 0 50px 30px;
1973
+ border: 1px solid #c3c4c7;
1974
+ max-width: 500px;
1975
+ }
1976
+
1977
+ .dgwt-wcas-analytics-module-critical-info h4 {
1978
+ margin: 0 0 20px 0;
1979
+ font-size: 18px;
1980
+ }
1981
+
1982
+ .dgwt-wcas-analytics-module-critical tr td:nth-child(4) img {
1983
+ display: inline-block;
1984
+ width: 16px;
1985
+ margin-left: 5px;
1986
+ margin-top: 4px;
1987
+ margin-right: -19px;
1988
+ }
1989
+
1990
+ .dgwt-wcas-analytics-subtitle {
1991
+ padding-top: 0;
1992
+ margin-top: -14px;
1993
+ padding-bottom: 10px;
1994
+ font-size: 15px;
1995
+ font-weight: 100;
1996
+ padding-left: 1px;
1997
+ max-width: 620px;
1998
+ }
1999
+
2000
+ .dgwt-wcas-analytics-load-more-row td {
2001
+ border-top: 1px solid #ccc;
2002
+ }
2003
+
2004
+ .dgwt-wcas-analytics-load-more-row span {
2005
+ cursor: pointer;
2006
+ color: #135e96;
2007
+ }
2008
+
2009
+ .dgwt-wcas-analytics-load-more-row .dashicons {
2010
+ line-height: 23px;
2011
+ font-size: 15px;
2012
+ margin-left: 5px;
2013
+ }
2014
+
2015
+ .dgwt-wcas-analytics-load-more-row div {
2016
+ display: flex;
2017
+ justify-content: flex-end;
2018
+ align-items: center;
2019
+ }
2020
+
2021
+ .dgwt-wcas-analytics-load-more-row img {
2022
+ width: 16px;
2023
+ display: block;
2024
+ margin-right: 10px;
2025
+ }
2026
+
2027
+ .dgwt-wcas-analytics-row-loading span {
2028
+ opacity: 0.5;
2029
+ pointer-events: none;
2030
+ cursor: default;
2031
+ }
2032
+
assets/img/admin-stats-placeholder.png ADDED
Binary file
assets/js/admin.js CHANGED
@@ -66,9 +66,9 @@
66
  if (checked) {
67
  $('.' + groupClass).each(function () {
68
  if (!(
69
- $(this).hasClass('js-dgwt-wcas-adv-settings')
70
- && $('.js-dgwt-wcas-adv-settings-toggle').hasClass('woocommerce-input-toggle--disabled')
71
- )
72
  ) {
73
  $(this).fadeIn();
74
  }
@@ -130,131 +130,131 @@
130
 
131
  };
132
 
133
- var CHECKBOX_SETTINGS_TOGGLE_SIBLING = {
134
- inputSel: 'js-dgwt-wcas-options-toggle-sibling input[type=checkbox]',
135
-
136
- toogleSibling: function ($el) {
137
- var _this = this;
138
- var checked = $el.is(':checked');
139
-
140
- if (checked) {
141
- $el.closest('label').next().fadeIn();
142
- } else {
143
- $el.closest('label').next().hide();
144
- }
145
- },
146
-
147
- registerListeners: function () {
148
- var _this = this;
149
-
150
- $(document).on('change', '.' + _this.inputSel, function () {
151
- _this.toogleSibling($(this));
152
- });
153
- },
154
-
155
- init: function () {
156
- var _this = this;
157
- var $sel = $('.' + _this.inputSel);
158
-
159
- if ($sel.length > 0) {
160
- _this.registerListeners();
161
-
162
- $sel.each(function () {
163
- _this.toogleSibling($(this));
164
- });
165
- }
166
- }
167
- };
168
-
169
- var CONDITIONAL_LAYOUT_SETTINGS = {
170
- layoutSelect: "select[id*='search_layout']",
171
- overlayMobile: "input[id*='enable_mobile_overlay']",
172
- mobileBreakpoint: "input[id*='mobile_breakpoint']",
173
- searchIconColor: "input[id*='search_icon_color']",
174
- $select: null,
175
- $overlayMobileEl: null,
176
- $mobileBreakpointEl: null,
177
- $searchIconColorEl: null,
178
- setConditions: function () {
179
- var _this = this,
180
- currentVal = _this.$select.find('option:selected').val(),
181
- hasAdvSettings = $('.js-dgwt-wcas-adv-settings-toggle').hasClass('woocommerce-input-toggle--enabled');
182
-
183
- _this.hideOption(_this.$overlayMobileEl);
184
- _this.hideOption(_this.$mobileBreakpointEl);
185
- _this.hideOption(_this.$searchIconColorEl);
186
-
187
- $("input[id*='bg_search_icon_color']").closest('tr').show();
188
-
189
- switch (currentVal) {
190
- case 'icon':
191
-
192
- if (hasAdvSettings) {
193
- _this.showOption(_this.$searchIconColorEl);
194
- }
195
-
196
- break;
197
- case 'icon-flexible':
198
-
199
- if (hasAdvSettings) {
200
- _this.showOption(_this.$mobileBreakpointEl);
201
- _this.showOption(_this.$searchIconColorEl);
202
- }
203
-
204
- break;
205
- default:
206
-
207
- if (hasAdvSettings) {
208
-
209
- _this.showOption(_this.$overlayMobileEl);
210
-
211
- $("input[id*='bg_search_icon_color']").closest('tr').hide();
212
-
213
- if (_this.$overlayMobileEl.is(':checked')) {
214
- _this.showOption(_this.$mobileBreakpointEl);
215
- }
216
- }
217
-
218
- break;
219
- }
220
- },
221
- hideOption: function($el){
222
- $el.closest('tr').hide();
223
- },
224
- showOption: function($el){
225
- $el.closest('tr').show();
226
- },
227
- registerListeners: function () {
228
- var _this = this;
229
-
230
- _this.$select.on('change', function () {
231
- _this.setConditions();
232
- });
233
-
234
- _this.$overlayMobileEl.on('change', function () {
235
- _this.setConditions();
236
- });
237
-
238
- },
239
- init: function () {
240
- var _this = this,
241
- $sel = $(_this.layoutSelect);
242
-
243
- if ($sel.length > 0) {
244
- _this.$select = $sel;
245
- _this.$overlayMobileEl = $(_this.overlayMobile);
246
- _this.$mobileBreakpointEl = $(_this.mobileBreakpoint);
247
- _this.$searchIconColorEl = $(_this.searchIconColor);
248
- _this.registerListeners();
249
-
250
- setTimeout(function(){
251
- _this.setConditions();
252
- }, 400);
253
- }
254
-
255
- }
256
-
257
- };
258
 
259
  var AJAX_BUILD_INDEX = {
260
  actionTriggerClass: 'js-ajax-build-index',
@@ -292,11 +292,11 @@
292
  $.ajax({
293
  url: ajaxurl,
294
  type: 'post',
295
- data: {
296
- action: 'dgwt_wcas_build_index',
297
- emergency: emergency,
298
- _wpnonce: dgwt_wcas.nonces.build_index,
299
- },
300
  success: function (response) {
301
  if (typeof response != 'undefined' && response.success) {
302
  _this.getWrapper().html(response.data.html);
@@ -325,7 +325,7 @@
325
  type: 'post',
326
  data: {
327
  action: 'dgwt_wcas_stop_build_index',
328
- _wpnonce: dgwt_wcas.nonces.stop_build_index,
329
  },
330
  success: function (response) {
331
  if (typeof response != 'undefined' && response.success) {
@@ -349,7 +349,7 @@
349
  type: 'post',
350
  data: {
351
  action: 'dgwt_wcas_build_index_heartbeat',
352
- _wpnonce: dgwt_wcas.nonces.build_index_heartbeat,
353
  },
354
  success: function (response) {
355
  if (typeof response != 'undefined' && response.success) {
@@ -365,17 +365,17 @@
365
  }
366
 
367
  if (!response.data.loop && response.data.refresh_once.length > 0) {
368
- // If refresh cookie non exist and Troubleshooting tab is hidden then reload
369
- if (
370
- !document.cookie.split(';').some(function (item) {
371
- return item.trim().indexOf('dgwt_wcas_refresh_once=' + response.data.refresh_once) === 0;
372
- }) &&
373
- $('#dgwt_wcas_troubleshooting-tab').css('display') === 'none'
374
- ) {
375
- document.cookie = 'dgwt_wcas_refresh_once=' + response.data.refresh_once;
376
- location.reload();
377
- }
378
- }
379
 
380
  }
381
  }
@@ -444,7 +444,7 @@
444
  },
445
  success: function (res) {
446
 
447
- if(typeof res != 'undefined' && typeof res.data != 'undefined') {
448
  _this.initSelectize(res.data);
449
  }
450
  }
@@ -635,7 +635,7 @@
635
  setTimeout(function () {
636
  $options.removeClass(_this.transClass);
637
  CHECKBOX_SETTINGS_TOGGLE.refresh();
638
- CONDITIONAL_LAYOUT_SETTINGS.setConditions();
639
  }, 500)
640
 
641
  }, 500);
@@ -657,6 +657,288 @@
657
  },
658
  };
659
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  window.DGWT_WCAS_SEARCH_PREVIEW = {
661
  previewWrapper: {},
662
  searchWrapp: {},
@@ -705,19 +987,19 @@
705
  relativeY = e.pageY + 10,
706
  tooltipHTML = '<div class="dgwt-wcas-click-alert">No interaction! This is only a preview.</div>';
707
 
708
- if(typeof timeout != 'undefined'){
709
  clearTimeout(timeout);
710
- if($tooltip){
711
  $tooltip.remove();
712
  }
713
  }
714
 
715
  $('body').append(tooltipHTML);
716
  $tooltip = $('.dgwt-wcas-click-alert');
717
- $tooltip.css({left: relativeX, top:relativeY});
718
  $('.dgwt-wcas-preview-source').addClass('dgwt-wcas-preview-source-no-click');
719
 
720
- timeout = setTimeout(function(){
721
  $tooltip.fadeOut(500, function () {
722
  $(this).remove();
723
  $('.dgwt-wcas-preview-source').removeClass('dgwt-wcas-preview-source-no-click');
@@ -769,10 +1051,10 @@
769
  ];
770
  for (var i = 0; i < options.length; i++) {
771
  var selector = "input[id='dgwt_wcas_settings\\[" + options[i] + "\\]']";
772
- var altSelector = "input[id^='dgwt_wcas_settings'][data-option-trigger='"+options[i]+"']";
773
  var $el = $(selector),
774
  $altEl = $(altSelector)
775
- methodToCall = 'onChange' + _this.camelCase(options[i]);
776
 
777
  if (typeof _this[methodToCall] == 'function' && $el.length > 0) {
778
  _this[methodToCall]($el, $el.val());
@@ -967,13 +1249,13 @@
967
  $items = $('.dgwt-wcas-suggestion-cat');
968
 
969
  if (_this.isChecked($el)) {
970
- $headline.show();
971
  $items.show();
972
  $items.removeClass('js-dgwt-wcas-suggestion-hidden');
973
 
974
  _this.onChangeShowGroupedResults($("input[id*='show_grouped_results']"));
975
  } else {
976
- $headline.hide();
977
  $items.hide();
978
  $items.addClass('js-dgwt-wcas-suggestion-hidden');
979
  }
@@ -982,16 +1264,16 @@
982
  _this.onChangeSuggestionsLimit($limitInput, $limitInput.val());
983
 
984
  },
985
- onChangeShowCategoriesImages: function ($el, value) {
986
- var _this = this,
987
- $contentWrapp = $('.js-dgwt-wcas-suggestion-cat');
988
 
989
- if (_this.isChecked($el)) {
990
- $contentWrapp.addClass('dgwt-wcas-has-img');
991
- } else {
992
- $contentWrapp.removeClass('dgwt-wcas-has-img');
993
- }
994
- },
995
  onChangeShowMatchingTags: function ($el, value) {
996
  var _this = this,
997
  $headline = $('.dgwt-wcas-suggestion-headline-tag'),
@@ -1034,16 +1316,16 @@
1034
  _this.onChangeSuggestionsLimit($limitInput, $limitInput.val());
1035
 
1036
  },
1037
- onChangeShowBrandsImages: function ($el, value) {
1038
- var _this = this,
1039
- $contentWrapp = $('.js-dgwt-wcas-suggestion-brand');
1040
 
1041
- if (_this.isChecked($el)) {
1042
- $contentWrapp.addClass('dgwt-wcas-has-img');
1043
- } else {
1044
- $contentWrapp.removeClass('dgwt-wcas-has-img');
1045
- }
1046
- },
1047
  onChangeShowMatchingPosts: function ($el, value) {
1048
  var _this = this,
1049
  $headline = $('.dgwt-wcas-suggestion-headline-post'),
@@ -1177,7 +1459,7 @@
1177
  }, 10);
1178
 
1179
  },
1180
- onChangeShowDetailsBox: function($el, value){
1181
  var _this = this;
1182
 
1183
  if (_this.isChecked($el)) {
@@ -1187,13 +1469,13 @@
1187
  _this.previewWrapper.addClass('dgwt-wcas-details-right');
1188
 
1189
 
1190
- setTimeout(function(){
1191
 
1192
  $('.dgwt-wcas-suggestion-product:not(.dgwt-wcas-suggestion-duplicated)').addClass('dgwt-wcas-suggestion-selected');
1193
 
1194
  var searchWidth = _this.searchWrapp.width();
1195
 
1196
- if(searchWidth >= 550){
1197
  _this.previewWrapper.addClass('dgwt-wcas-full-width');
1198
 
1199
  var realWidth = getComputedStyle(_this.searchWrapp[0]).width;
@@ -1207,7 +1489,7 @@
1207
  _this.detailsWrapp.css('width', Math.ceil(realWidth / 2));
1208
  }
1209
 
1210
- }else{
1211
  _this.suggestionWrapp.width(_this.searchWrapp.width());
1212
  }
1213
 
@@ -1225,8 +1507,8 @@
1225
  _this.detailsWrapp.css('width', '');
1226
  }
1227
  },
1228
- onColorSearchIconColor: function ($el, value) {
1229
- },
1230
  onColorBgInputColor: function ($el, value) {
1231
  var _this = this;
1232
  if (_this.isColor(value)) {
@@ -1247,7 +1529,7 @@
1247
  style += '.dgwt-wcas-search-input:-moz-placeholder{opacity: 0.3; color:' + value + '!important;}';
1248
  style += '.dgwt-wcas-search-input::-moz-placeholder{opacity: 0.3; color:' + value + '!important;}';
1249
  style += '.dgwt-wcas-search-input:-ms-input-placeholder{opacity: 0.3; color:' + value + '!important;}';
1250
- style += '.dgwt-wcas-ico-magnifier path {fill:' + value + '}';
1251
  style += '</style>';
1252
 
1253
  $('head').append(style);
@@ -1334,7 +1616,7 @@
1334
  onColorSugHoverColor: function ($el, value) {
1335
  var _this = this;
1336
  if (_this.isColor(value)) {
1337
- setTimeout(function(){
1338
  $('.dgwt-wcas-suggestion-selected').css('background-color', value);
1339
  }, 50);
1340
  } else {
@@ -1426,374 +1708,391 @@
1426
  },
1427
  onTypeSearchPlaceholder: function ($el, value) {
1428
  var _this = this;
1429
- if(value.length == 0){
1430
  value = dgwt_wcas.labels.search_placeholder;
1431
  }
1432
  _this.searchInput.attr('placeholder', value);
1433
  },
1434
  onTypeSearchNoResultsText: function ($el, value) {
1435
- if(value.length == 0){
1436
  value = dgwt_wcas.labels.no_results;
1437
  }
1438
  $('.js-dgwt-wcas-suggestion-nores span').text(value);
1439
  },
1440
  onTypeSearchSeeAllResultsText: function ($el, value) {
1441
- if(value.length == 0){
1442
  value = dgwt_wcas.labels.show_more;
1443
  }
1444
  $('.js-dgwt-wcas-st-more-label').text(value);
1445
  },
1446
- fixSizesInit: function(){
1447
  var _this = this;
1448
 
1449
- $(document).on('click', '#dgwt_wcas_autocomplete-tab', function(){
1450
  _this.onChangeShowDetailsBox($("input[id*='show_details_box']"));
1451
  });
1452
 
1453
  }
1454
  };
1455
 
1456
- var TROUBLESHOOTING = {
1457
- settingsTab: '#dgwt_wcas_troubleshooting-tab',
1458
- noIssuesClass: '.js-dgwt-wcas-troubleshooting-no-issues',
1459
- counterClass: '.js-dgwt-wcas-troubleshooting-count',
1460
- issuesListClass: '.js-dgwt-wcas-troubleshooting-issues',
1461
- progressBar: '.dgwt-wcas-troubleshooting-wrapper .progress_bar',
1462
- progressBarInner: '.dgwt-wcas-troubleshooting-wrapper .progress-bar-inner',
1463
- resetButtonName: 'dgwt-wcas-reset-async-tests',
1464
- fixOutofstockButtonName: 'dgwt-wcas-fix-out-of-stock-relationships',
 
1465
  switchAlternativeEndpoint: 'dgwt-wcas-switch-alternative-endpoint',
1466
- dismissElementorTemplateButtonName: 'dgwt-wcas-dismiss-elementor-template',
1467
- init: function () {
1468
- var _this = this;
1469
- if (typeof dgwt_wcas['troubleshooting'] === 'undefined') {
1470
- return;
1471
- }
1472
-
1473
- const count = dgwt_wcas['troubleshooting']['tests']['issues']['critical'] + dgwt_wcas['troubleshooting']['tests']['issues']['recommended'];
1474
- if (count > 0) {
1475
- $(_this.counterClass).text(count).addClass('active');
1476
- $(_this.settingsTab).addClass('enabled');
1477
- }
1478
-
1479
- if (dgwt_wcas.troubleshooting.tests.results_async.length > 0) {
1480
- $.each(dgwt_wcas.troubleshooting.tests.results_async, function () {
1481
- _this.appendIssue(this, false);
1482
- });
1483
- }
1484
-
1485
- if (dgwt_wcas.troubleshooting.tests.direct.length > 0) {
1486
- $.each(dgwt_wcas.troubleshooting.tests.direct, function () {
1487
- _this.appendIssue(this, false);
1488
- });
1489
- }
1490
-
1491
- if (dgwt_wcas.troubleshooting.tests.async.length > 0) {
1492
- _this.maybeRunNextAsyncTest();
1493
- }
1494
-
1495
- $(document).on('click', 'input[name="' + _this.resetButtonName + '"]', function (e) {
1496
- $('input[name="' + _this.resetButtonName + '"]').attr('disabled', 'disabled');
1497
- var data = {
1498
- 'action': 'dgwt_wcas_troubleshooting_reset_async_tests',
1499
- '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_reset_async_tests
1500
- };
1501
- $.post(
1502
- ajaxurl,
1503
- data,
1504
- function () {
1505
- location.reload();
1506
- }
1507
- );
1508
- return false;
1509
- });
1510
-
1511
- $(document).on('click', 'input[name="' + _this.fixOutofstockButtonName + '"]', function (e) {
1512
- $('input[name="' + _this.fixOutofstockButtonName + '"]').attr('disabled', 'disabled').next().addClass('loading');
1513
- var data = {
1514
- 'action': 'dgwt_wcas_troubleshooting_fix_outofstock',
1515
- '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_fix_outofstock
1516
- };
1517
- $.post(
1518
- ajaxurl,
1519
- data,
1520
- function () {
1521
- location.reload();
1522
- }
1523
- );
1524
- return false;
1525
- });
1526
-
1527
- $(document).on('click', 'input[name="' + _this.switchAlternativeEndpoint + '"]', function (e) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1528
  var action = parseInt($(this).data('switch')) === 1 ? 'enable' : 'disable';
1529
- $('input[name="' + _this.switchAlternativeEndpoint + '"]').attr('disabled', 'disabled').next().addClass('loading');
1530
  var data = {
1531
  'action': 'dgwt_wcas_troubleshooting_switch_alternative_endpoint',
1532
  '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_switch_alternative_endpoint,
1533
  'switch': action,
1534
  };
1535
- $.post(
1536
- ajaxurl,
1537
- data,
1538
- function () {
1539
- location.reload();
1540
- }
1541
- );
1542
- return false;
1543
- });
1544
-
1545
- $(document).on('click', 'input[name="' + _this.dismissElementorTemplateButtonName + '"]', function (e) {
1546
- $('input[name="' + _this.dismissElementorTemplateButtonName + '"]').attr('disabled', 'disabled');
1547
- var data = {
1548
- 'action': 'dgwt_wcas_troubleshooting_dismiss_elementor_template',
1549
- '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_dismiss_elementor_template
1550
- };
1551
- $.post(
1552
- ajaxurl,
1553
- data,
1554
- function () {
1555
- location.reload();
1556
- }
1557
- );
1558
- return false;
1559
- });
1560
- },
1561
- appendIssue: function (issue, incrementCounter) {
1562
- var _this = this;
1563
- var template = wp.template('dgwt-wcas-troubleshooting-issue'),
1564
- issueWrapper = $(_this.issuesListClass + '-' + issue.status),
1565
- count;
1566
-
1567
- if (issue.status === 'good') {
1568
- return;
1569
- }
1570
-
1571
- $(_this.noIssuesClass).hide();
1572
-
1573
- if (incrementCounter) {
1574
- dgwt_wcas.troubleshooting.tests.issues[issue.status]++;
1575
- }
1576
-
1577
- count = dgwt_wcas.troubleshooting.tests.issues['critical'] + dgwt_wcas.troubleshooting.tests.issues['recommended'];
1578
-
1579
- if (count > 0) {
1580
- $(_this.counterClass).text(count).addClass('active');
1581
- $(_this.settingsTab).addClass('enabled');
1582
- }
1583
-
1584
- $(issueWrapper).append(template(issue));
1585
- },
1586
- maybeRunNextAsyncTest: function () {
1587
- var _this = this;
1588
-
1589
- if (dgwt_wcas.troubleshooting.tests.async.length > 0) {
1590
- $.each(dgwt_wcas.troubleshooting.tests.async, function () {
1591
- var data = {
1592
- 'action': 'dgwt_wcas_troubleshooting_test',
1593
- 'test': this.test,
1594
- '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_async_test
1595
- };
1596
-
1597
- if (this.completed) {
1598
- return true;
1599
- }
1600
-
1601
- this.completed = true;
1602
-
1603
- $(_this.progressBar).show();
1604
-
1605
- $.post(
1606
- ajaxurl,
1607
- data,
1608
- function (response) {
1609
- if (response.success) {
1610
- _this.appendIssue(response.data, true)
1611
- }
1612
- _this.maybeRunNextAsyncTest();
1613
- }
1614
- );
1615
-
1616
- return false;
1617
- });
1618
- }
1619
-
1620
- _this.recalculateProgression();
1621
- },
1622
- recalculateProgression: function () {
1623
- var _this = this;
1624
- var total = dgwt_wcas.troubleshooting.tests.async.length;
1625
- var completed = 0;
1626
-
1627
- $.each(dgwt_wcas.troubleshooting.tests.async, function () {
1628
- if (this.completed) {
1629
- completed++;
1630
- }
1631
- });
1632
- var progress = Math.ceil((completed / total) * 100);
1633
- $(_this.progressBarInner).css('width', progress + '%');
1634
- if (progress === 100) {
1635
- setTimeout(function () {
1636
- $(_this.progressBar).slideUp();
1637
- }, 2000);
1638
- }
1639
- },
1640
- }
1641
-
1642
- var MOVE_OPTIONS = {
1643
- moveOptionClass: '.js-dgwt-wcas-move-option',
1644
- init: function () {
1645
- var optionsToMove = $(this.moveOptionClass);
1646
- if (optionsToMove.length > 0) {
1647
- $.each(optionsToMove, function (index, el) {
1648
- var moveDest = $('#' + $(el).data('move-dest').replace(/(:|\.|\[|\])/g, '\\$1'));
1649
- if (moveDest.length > 0) {
1650
- if ($(el).closest('tr').hasClass('dgwt-wcas-premium-only')) {
1651
- $(el).addClass('dgwt-wcas-premium-only');
1652
- }
1653
- $(el).clone().appendTo(moveDest.closest('td fieldset'));
1654
- }
1655
- $(el).closest('tr').remove();
1656
- });
1657
- }
1658
- }
1659
- }
1660
-
1661
- var SETTINGS_FILTERS_RULES = {
1662
- init: function () {
1663
-
1664
- if (typeof Vue == 'undefined') {
1665
- return;
1666
- }
1667
-
1668
- var productSearchSettings = function ({nonce, options, type}) {
1669
- return {
1670
- persist: false,
1671
- maxItems: null,
1672
- valueField: 'key',
1673
- labelField: 'label',
1674
- searchField: ['label'],
1675
- options: options,
1676
- preload: true,
1677
- create: function (input) {
1678
- return {
1679
- value: input.key,
1680
- label: input.label
1681
- }
1682
- },
1683
- load: function (query, callback) {
1684
- $.ajax({
1685
- url: ajaxurl,
1686
- method: 'POST',
1687
- data: {
1688
- action: 'dgwt_wcas_settings_search_terms',
1689
- query: query,
1690
- type: type,
1691
- _wpnonce: nonce
1692
- },
1693
- error: function () {
1694
- callback();
1695
- },
1696
- success: function (res) {
1697
- callback(res.data);
1698
- }
1699
- });
1700
- }
1701
- };
1702
- };
1703
-
1704
- Vue.component('dgwt-wcas-rule', {
1705
- template: '#dgwt-wcas-settings-filters-rules-rule',
1706
- components: {
1707
- Selectize
1708
- },
1709
- props: ['nonce', 'rule', 'rules', 'index'],
1710
- data() {
1711
- return {
1712
- isSelectActive: true,
1713
- }
1714
- },
1715
- computed: {
1716
- ruleValue(value) {
1717
- return this.rule.group;
1718
- },
1719
- },
1720
- watch: {
1721
- rule: {
1722
- handler: function () {
1723
- this.$emit('update:rule', this.index);
1724
- },
1725
- deep: true,
1726
- },
1727
- ruleValue() {
1728
- // Reset values on group change
1729
- var vm = this;
1730
- this.$emit('change:group', this.index);
1731
- this.isSelectActive = false;
1732
- setTimeout(function () {
1733
- vm.isSelectActive = true;
1734
- }, 0);
1735
- },
1736
- },
1737
- methods: {
1738
- deleteRule() {
1739
- this.$emit('delete:rule', this.index)
1740
- },
1741
- getSelectizeSettings(type) {
1742
- var options = (typeof dgwt_wcas_filters_rules_selected_options[type] === 'undefined') ? [] : dgwt_wcas_filters_rules_selected_options[type];
1743
- return productSearchSettings({nonce: this.nonce, type: type, options: options});
1744
- },
1745
- },
1746
- });
1747
-
1748
- var FiltersRules = new Vue({
1749
- el: '#dgwt-wcas-settings-filters-rules',
1750
- components: {
1751
- Selectize
1752
- },
1753
- data() {
1754
- return {
1755
- rules: []
1756
- }
1757
- },
1758
- mounted() {
1759
- try {
1760
- const rules = JSON.parse(this.$refs['dgwt-wcas-settings-filters-rules-ref'].value);
1761
- $.each(rules, function (index, rule) {
1762
- rules[index].key = Math.random();
1763
- });
1764
- this.rules = rules;
1765
- } catch (e) {
1766
- }
1767
- this.updateInput();
1768
- },
1769
- methods: {
1770
- addRule() {
1771
- this.rules.push({group: '', values: [], key: Math.random()});
1772
- this.updateInput();
1773
- },
1774
- changeGroup(index) {
1775
- this.rules[index].values = [];
1776
- this.updateInput();
1777
- },
1778
- deleteRule(index) {
1779
- this.rules = this.rules.filter(function (item, itemIndex) {
1780
- return itemIndex !== index;
1781
- });
1782
- this.updateInput();
1783
- },
1784
- updateInput() {
1785
- const rules = JSON.parse(JSON.stringify(this.rules));
1786
- this.$refs['dgwt-wcas-settings-filters-rules-ref'].value = JSON.stringify(rules.map(function (rule) {
1787
- if (typeof (rule['key'] !== 'undefined')) {
1788
- delete (rule['key']);
1789
- }
1790
- return rule;
1791
- }));
1792
- }
1793
- },
1794
- });
1795
- }
1796
- };
1797
 
1798
  function automateSettingsColspan() {
1799
  var $el = $('.js-dgwt-wcas-sgs-autocolspan');
@@ -1844,7 +2143,7 @@
1844
 
1845
  RADIO_SETTINGS_TOGGLE.init();
1846
  CHECKBOX_SETTINGS_TOGGLE.init();
1847
- CONDITIONAL_LAYOUT_SETTINGS.init();
1848
 
1849
  automateSettingsColspan();
1850
 
@@ -1852,11 +2151,12 @@
1852
  SELECTIZE.init();
1853
  TOOLTIP.init();
1854
  ADVANCED_SETTINGS.init();
1855
- TROUBLESHOOTING.init();
1856
- MOVE_OPTIONS.init();
1857
- CHECKBOX_SETTINGS_TOGGLE_SIBLING.init();
 
1858
 
1859
- SETTINGS_FILTERS_RULES.init();
1860
  window.DGWT_WCAS_SEARCH_PREVIEW.init();
1861
 
1862
  });
66
  if (checked) {
67
  $('.' + groupClass).each(function () {
68
  if (!(
69
+ $(this).hasClass('js-dgwt-wcas-adv-settings')
70
+ && $('.js-dgwt-wcas-adv-settings-toggle').hasClass('woocommerce-input-toggle--disabled')
71
+ )
72
  ) {
73
  $(this).fadeIn();
74
  }
130
 
131
  };
132
 
133
+ var CHECKBOX_SETTINGS_TOGGLE_SIBLING = {
134
+ inputSel: 'js-dgwt-wcas-options-toggle-sibling input[type=checkbox]',
135
+
136
+ toogleSibling: function ($el) {
137
+ var _this = this;
138
+ var checked = $el.is(':checked');
139
+
140
+ if (checked) {
141
+ $el.closest('label').next().fadeIn();
142
+ } else {
143
+ $el.closest('label').next().hide();
144
+ }
145
+ },
146
+
147
+ registerListeners: function () {
148
+ var _this = this;
149
+
150
+ $(document).on('change', '.' + _this.inputSel, function () {
151
+ _this.toogleSibling($(this));
152
+ });
153
+ },
154
+
155
+ init: function () {
156
+ var _this = this;
157
+ var $sel = $('.' + _this.inputSel);
158
+
159
+ if ($sel.length > 0) {
160
+ _this.registerListeners();
161
+
162
+ $sel.each(function () {
163
+ _this.toogleSibling($(this));
164
+ });
165
+ }
166
+ }
167
+ };
168
+
169
+ var CONDITIONAL_LAYOUT_SETTINGS = {
170
+ layoutSelect: "select[id*='search_layout']",
171
+ overlayMobile: "input[id*='enable_mobile_overlay']",
172
+ mobileBreakpoint: "input[id*='mobile_breakpoint']",
173
+ searchIconColor: "input[id*='search_icon_color']",
174
+ $select: null,
175
+ $overlayMobileEl: null,
176
+ $mobileBreakpointEl: null,
177
+ $searchIconColorEl: null,
178
+ setConditions: function () {
179
+ var _this = this,
180
+ currentVal = _this.$select.find('option:selected').val(),
181
+ hasAdvSettings = $('.js-dgwt-wcas-adv-settings-toggle').hasClass('woocommerce-input-toggle--enabled');
182
+
183
+ _this.hideOption(_this.$overlayMobileEl);
184
+ _this.hideOption(_this.$mobileBreakpointEl);
185
+ _this.hideOption(_this.$searchIconColorEl);
186
+
187
+ $("input[id*='bg_search_icon_color']").closest('tr').show();
188
+
189
+ switch (currentVal) {
190
+ case 'icon':
191
+
192
+ if (hasAdvSettings) {
193
+ _this.showOption(_this.$searchIconColorEl);
194
+ }
195
+
196
+ break;
197
+ case 'icon-flexible':
198
+
199
+ if (hasAdvSettings) {
200
+ _this.showOption(_this.$mobileBreakpointEl);
201
+ _this.showOption(_this.$searchIconColorEl);
202
+ }
203
+
204
+ break;
205
+ default:
206
+
207
+ if (hasAdvSettings) {
208
+
209
+ _this.showOption(_this.$overlayMobileEl);
210
+
211
+ $("input[id*='bg_search_icon_color']").closest('tr').hide();
212
+
213
+ if (_this.$overlayMobileEl.is(':checked')) {
214
+ _this.showOption(_this.$mobileBreakpointEl);
215
+ }
216
+ }
217
+
218
+ break;
219
+ }
220
+ },
221
+ hideOption: function ($el) {
222
+ $el.closest('tr').hide();
223
+ },
224
+ showOption: function ($el) {
225
+ $el.closest('tr').show();
226
+ },
227
+ registerListeners: function () {
228
+ var _this = this;
229
+
230
+ _this.$select.on('change', function () {
231
+ _this.setConditions();
232
+ });
233
+
234
+ _this.$overlayMobileEl.on('change', function () {
235
+ _this.setConditions();
236
+ });
237
+
238
+ },
239
+ init: function () {
240
+ var _this = this,
241
+ $sel = $(_this.layoutSelect);
242
+
243
+ if ($sel.length > 0) {
244
+ _this.$select = $sel;
245
+ _this.$overlayMobileEl = $(_this.overlayMobile);
246
+ _this.$mobileBreakpointEl = $(_this.mobileBreakpoint);
247
+ _this.$searchIconColorEl = $(_this.searchIconColor);
248
+ _this.registerListeners();
249
+
250
+ setTimeout(function () {
251
+ _this.setConditions();
252
+ }, 400);
253
+ }
254
+
255
+ }
256
+
257
+ };
258
 
259
  var AJAX_BUILD_INDEX = {
260
  actionTriggerClass: 'js-ajax-build-index',
292
  $.ajax({
293
  url: ajaxurl,
294
  type: 'post',
295
+ data: {
296
+ action: 'dgwt_wcas_build_index',
297
+ emergency: emergency,
298
+ _wpnonce: dgwt_wcas.nonces.build_index,
299
+ },
300
  success: function (response) {
301
  if (typeof response != 'undefined' && response.success) {
302
  _this.getWrapper().html(response.data.html);
325
  type: 'post',
326
  data: {
327
  action: 'dgwt_wcas_stop_build_index',
328
+ _wpnonce: dgwt_wcas.nonces.stop_build_index,
329
  },
330
  success: function (response) {
331
  if (typeof response != 'undefined' && response.success) {
349
  type: 'post',
350
  data: {
351
  action: 'dgwt_wcas_build_index_heartbeat',
352
+ _wpnonce: dgwt_wcas.nonces.build_index_heartbeat,
353
  },
354
  success: function (response) {
355
  if (typeof response != 'undefined' && response.success) {
365
  }
366
 
367
  if (!response.data.loop && response.data.refresh_once.length > 0) {
368
+ // If refresh cookie non exist and Troubleshooting tab is hidden then reload
369
+ if (
370
+ !document.cookie.split(';').some(function (item) {
371
+ return item.trim().indexOf('dgwt_wcas_refresh_once=' + response.data.refresh_once) === 0;
372
+ }) &&
373
+ $('#dgwt_wcas_troubleshooting-tab').css('display') === 'none'
374
+ ) {
375
+ document.cookie = 'dgwt_wcas_refresh_once=' + response.data.refresh_once;
376
+ location.reload();
377
+ }
378
+ }
379
 
380
  }
381
  }
444
  },
445
  success: function (res) {
446
 
447
+ if (typeof res != 'undefined' && typeof res.data != 'undefined') {
448
  _this.initSelectize(res.data);
449
  }
450
  }
635
  setTimeout(function () {
636
  $options.removeClass(_this.transClass);
637
  CHECKBOX_SETTINGS_TOGGLE.refresh();
638
+ CONDITIONAL_LAYOUT_SETTINGS.setConditions();
639
  }, 500)
640
 
641
  }, 500);
657
  },
658
  };
659
 
660
+ var STATS_INTERFACE = {
661
+ placeholderClass: 'js-dgwt-wcas-stats-placeholder',
662
+ placeholderClassLoaded: 'js-dgwt-wcas-stats-placeholder-loaded',
663
+ preloaderClass: 'dgwt-wcas-stats-preloader',
664
+ settingsGroupSel: '#dgwt_wcas_analytics',
665
+ criticalSearchesLoadMoreClass: 'js-dgwt-wcas-critical-searches-load-more',
666
+ autocompleteWithResultsLoadMoreClass: 'js-dgwt-wcas-autocomplete-with-results-load-more',
667
+ searchPageWithResultsLoadMoreClass: 'js-dgwt-wcas-search-page-with-results-load-more',
668
+ checkPhraseStatusClass: 'js-dgwt-wcas-stats-critical-check',
669
+ checkPhraseStatusInitClass: 'js-dgwt-wcas-stats-critical-check-init',
670
+ rowLoadingClass: 'dgwt-wcas-analytics-row-loading',
671
+ languageSwitcherClass: 'js-dgwt-wcas-analytics-lang',
672
+ excludePhraseClass: 'js-dgwt-wcas-analytics-exclude-phrase',
673
+ checkIndexerAction: 'js-dgwt-wcas-analytics-check-indexer',
674
+ init: function () {
675
+ var _this = this;
676
+
677
+ // Do nothing if the analytics module is disabled
678
+ if (typeof dgwt_wcas.analytics == 'undefined' || !dgwt_wcas.analytics.enabled) {
679
+ return;
680
+ }
681
+
682
+ _this.interfaceLoaderListener();
683
+ },
684
+ interfaceLoaderListener: function () {
685
+ var _this = this,
686
+ $languageSelectorEl = $('.' + _this.languageSwitcherClass);
687
+
688
+ $(document).on('dgwt_wcas_settings_group_active', function (event, el) {
689
+ if ($(el).length > 0 && el.id === 'dgwt_wcas_analytics') {
690
+ if (!_this.isLoaded()) {
691
+ _this.loadInterface();
692
+ }
693
+ }
694
+ });
695
+
696
+ if ($languageSelectorEl.length > 0) {
697
+ $languageSelectorEl.on('change', function () {
698
+ var $canvas = $('.' + _this.placeholderClass);
699
+ if ($canvas.length > 0) {
700
+ $canvas.html('');
701
+ _this.loadInterface();
702
+ }
703
+ });
704
+ }
705
+
706
+ },
707
+ isLoaded: function () {
708
+ var _this = this;
709
+ return $('.' + _this.placeholderClassLoaded).length > 0;
710
+ },
711
+ showPreloader: function () {
712
+ var _this = this,
713
+ $placeholder = $('.' + _this.placeholderClass),
714
+ html = '<img class="' + _this.preloaderClass + '" src="' + dgwt_wcas.analytics.images.placeholder + '" />';
715
+
716
+ if ($placeholder.length) {
717
+ $placeholder.append(html);
718
+ }
719
+ },
720
+ loadInterface: function () {
721
+ var _this = this,
722
+ $lang = $('.' + _this.languageSwitcherClass + ' option:selected');
723
+
724
+ _this.showPreloader();
725
+
726
+ var data = {
727
+ 'action': 'dgwt_wcas_load_stats_interface',
728
+ '_wpnonce': dgwt_wcas.analytics.nonce.analytics_load_interface
729
+ };
730
+
731
+ if ($lang.length > 0) {
732
+ data.lang = $lang.val();
733
+ }
734
+
735
+ $.post(
736
+ ajaxurl,
737
+ data,
738
+ function (response) {
739
+ var $el = $('.' + _this.placeholderClass);
740
+ if (typeof response == 'object' && response.success && $el.length > 0) {
741
+ $el.addClass(_this.placeholderClassLoaded);
742
+ $el.html(response.data.html);
743
+ _this.loadCheckCriticalSearchesListeners();
744
+ _this.loadMoreListeners();
745
+ }
746
+ }
747
+ );
748
+ },
749
+ loadCheckCriticalSearchesListeners: function () {
750
+ var _this = this,
751
+ $elements = $('.' + _this.checkPhraseStatusClass + ':not(.' + _this.checkPhraseStatusInitClass + ')');
752
+
753
+ // Critical searches - check status
754
+ $elements.on('click', function (e) {
755
+ e.preventDefault();
756
+ $(e.target).after('<img src="' + dgwt_wcas.images.admin_preloader_url + '" />');
757
+ _this.checkPhraseStatus($(e.target));
758
+ })
759
+
760
+ $elements.each(function () {
761
+ $(this).addClass(_this.checkPhraseStatusInitClass);
762
+ });
763
+
764
+ },
765
+ loadMoreListeners: function () {
766
+ var _this = this;
767
+
768
+ // Critical searches - load more
769
+ $('.' + _this.criticalSearchesLoadMoreClass).on('click', function (e) {
770
+ e.preventDefault();
771
+ $(this).before('<img src="' + dgwt_wcas.images.admin_preloader_url + '" />');
772
+ $(this).closest('tr').addClass(_this.rowLoadingClass);
773
+ _this.loadMoreCriticalSearches();
774
+ })
775
+
776
+ // Autocomplete with results - load more
777
+ $('.' + _this.autocompleteWithResultsLoadMoreClass).on('click', function (e) {
778
+ e.preventDefault();
779
+ _this.loadMorePhrases('autocomplete', $(e.target));
780
+ })
781
+
782
+ // Search page with results - load more
783
+ $('.' + _this.searchPageWithResultsLoadMoreClass).on('click', function (e) {
784
+ e.preventDefault();
785
+ _this.loadMorePhrases('search-page', $(e.target));
786
+ })
787
+
788
+
789
+ },
790
+ checkPhraseStatus: function ($el) {
791
+ var _this = this,
792
+ $lang = $('.' + _this.languageSwitcherClass + ' option:selected');
793
+
794
+ var data = {
795
+ 'action': 'dgwt_wcas_check_critical_phrase',
796
+ 'phrase': $el.closest('tr').find('td:nth-child(2)').text(),
797
+ '_wpnonce': dgwt_wcas.analytics.nonce.check_critical_phrase
798
+ };
799
+
800
+ if ($lang.length > 0) {
801
+ data.lang = $lang.val();
802
+ }
803
+
804
+ $.post(
805
+ ajaxurl,
806
+ data,
807
+ function (response) {
808
+ if (typeof response == 'object' && response.success) {
809
+ var $row = $el.closest('tr');
810
+ $el.closest('td').html(response.data.html);
811
+
812
+ var $excludeEl = $row.find('.' + _this.excludePhraseClass);
813
+ var $checkIndexerEl = $row.find('.' + _this.checkIndexerAction);
814
+
815
+ // Critical searches - exclude phrase
816
+ if ($excludeEl.length > 0) {
817
+ $excludeEl.on('click', function (e) {
818
+ e.preventDefault();
819
+ var html = '<p>Processing...</p>';
820
+ $(e.target).closest('td').html(html);
821
+ _this.excludePhrase($row);
822
+ })
823
+ }
824
+
825
+ // Check the indexer status
826
+ if ($checkIndexerEl.length > 0) {
827
+ $('.' + _this.checkIndexerAction).on('click', function (e) {
828
+ e.preventDefault();
829
+ var $tab = $('#dgwt_wcas_performance-tab');
830
+ if ($tab.length > 0) {
831
+ $tab[0].click();
832
+ $([document.documentElement, document.body]).animate({
833
+ scrollTop: 0
834
+ }, 1000);
835
+ }
836
+ })
837
+ }
838
+ }
839
+ }
840
+ );
841
+ },
842
+ excludePhrase: function ($el) {
843
+ var _this = this,
844
+ $lang = $('.' + _this.languageSwitcherClass + ' option:selected');
845
+
846
+ var data = {
847
+ 'action': 'dgwt_wcas_exclude_critical_phrase',
848
+ 'phrase': $el.find('td:nth-child(2)').text(),
849
+ '_wpnonce': dgwt_wcas.analytics.nonce.exclude_critical_phrase
850
+ };
851
+
852
+ if ($lang.length > 0) {
853
+ data.lang = $lang.val();
854
+ }
855
+
856
+ $.post(
857
+ ajaxurl,
858
+ data,
859
+ function (response) {
860
+ if (typeof response == 'object' && response.success) {
861
+ $el.addClass('dgwt-wcas-analytics-disable-row');
862
+ $el.find('td:last-child').html(response.data);
863
+ }
864
+ }
865
+ );
866
+ },
867
+ loadMoreCriticalSearches: function () {
868
+ var _this = this,
869
+ $lang = $('.' + _this.languageSwitcherClass + ' option:selected');
870
+
871
+ var data = {
872
+ 'action': 'dgwt_wcas_laod_more_critical_searches',
873
+ 'loaded': $('.js-dgwt-wcas-critical-searches-row').length,
874
+ '_wpnonce': dgwt_wcas.analytics.nonce.load_more_critical_searches
875
+ };
876
+
877
+ if ($lang.length > 0) {
878
+ data.lang = $lang.val();
879
+ }
880
+
881
+ $.post(
882
+ ajaxurl,
883
+ data,
884
+ function (response) {
885
+ if (typeof response == 'object' && response.success) {
886
+ var $loadMoreRow = $('.' + _this.criticalSearchesLoadMoreClass).closest('tr');
887
+
888
+ if (response.data.html.length > 0) {
889
+ $loadMoreRow.before(response.data.html);
890
+ }
891
+
892
+ if (response.data.more > 0) {
893
+ $loadMoreRow.removeClass(_this.rowLoadingClass);
894
+ $loadMoreRow.find('img').remove();
895
+ $('.' + _this.criticalSearchesLoadMoreClass + ' span:first-child').text(response.data.more_label);
896
+ _this.loadCheckCriticalSearchesListeners();
897
+ } else {
898
+ $loadMoreRow.remove();
899
+ }
900
+ }
901
+ }
902
+ );
903
+ },
904
+ loadMorePhrases: function (context, $el) {
905
+ var _this = this,
906
+ $lang = $('.' + _this.languageSwitcherClass + ' option:selected');
907
+
908
+ $el.before('<img src="' + dgwt_wcas.images.admin_preloader_url + '" />');
909
+ $el.closest('tr').addClass(_this.rowLoadingClass);
910
+
911
+ if (context === 'autocomplete') {
912
+ var data = {
913
+ 'action': 'dgwt_wcas_laod_more_autocomplete',
914
+ 'loaded': $('.js-dgwt-wcas-autocomplete-row').length,
915
+ '_wpnonce': dgwt_wcas.analytics.nonce.load_more_autocomplete
916
+ };
917
+ } else {
918
+ var data = {
919
+ 'action': 'dgwt_wcas_laod_more_search_page',
920
+ 'loaded': $('.js-dgwt-wcas-search-page-row').length,
921
+ '_wpnonce': dgwt_wcas.analytics.nonce.load_more_search_page
922
+ };
923
+ }
924
+
925
+ if ($lang.length > 0) {
926
+ data.lang = $lang.val();
927
+ }
928
+
929
+ $.post(
930
+ ajaxurl,
931
+ data,
932
+ function (response) {
933
+ if (typeof response == 'object' && response.success) {
934
+ var $tBody = $el.closest('tbody');
935
+ $tBody.html(response.data.html);
936
+ }
937
+ }
938
+ );
939
+ },
940
+ };
941
+
942
  window.DGWT_WCAS_SEARCH_PREVIEW = {
943
  previewWrapper: {},
944
  searchWrapp: {},
987
  relativeY = e.pageY + 10,
988
  tooltipHTML = '<div class="dgwt-wcas-click-alert">No interaction! This is only a preview.</div>';
989
 
990
+ if (typeof timeout != 'undefined') {
991
  clearTimeout(timeout);
992
+ if ($tooltip) {
993
  $tooltip.remove();
994
  }
995
  }
996
 
997
  $('body').append(tooltipHTML);
998
  $tooltip = $('.dgwt-wcas-click-alert');
999
+ $tooltip.css({left: relativeX, top: relativeY});
1000
  $('.dgwt-wcas-preview-source').addClass('dgwt-wcas-preview-source-no-click');
1001
 
1002
+ timeout = setTimeout(function () {
1003
  $tooltip.fadeOut(500, function () {
1004
  $(this).remove();
1005
  $('.dgwt-wcas-preview-source').removeClass('dgwt-wcas-preview-source-no-click');
1051
  ];
1052
  for (var i = 0; i < options.length; i++) {
1053
  var selector = "input[id='dgwt_wcas_settings\\[" + options[i] + "\\]']";
1054
+ var altSelector = "input[id^='dgwt_wcas_settings'][data-option-trigger='" + options[i] + "']";
1055
  var $el = $(selector),
1056
  $altEl = $(altSelector)
1057
+ methodToCall = 'onChange' + _this.camelCase(options[i]);
1058
 
1059
  if (typeof _this[methodToCall] == 'function' && $el.length > 0) {
1060
  _this[methodToCall]($el, $el.val());
1249
  $items = $('.dgwt-wcas-suggestion-cat');
1250
 
1251
  if (_this.isChecked($el)) {
1252
+ $headline.show();
1253
  $items.show();
1254
  $items.removeClass('js-dgwt-wcas-suggestion-hidden');
1255
 
1256
  _this.onChangeShowGroupedResults($("input[id*='show_grouped_results']"));
1257
  } else {
1258
+ $headline.hide();
1259
  $items.hide();
1260
  $items.addClass('js-dgwt-wcas-suggestion-hidden');
1261
  }
1264
  _this.onChangeSuggestionsLimit($limitInput, $limitInput.val());
1265
 
1266
  },
1267
+ onChangeShowCategoriesImages: function ($el, value) {
1268
+ var _this = this,
1269
+ $contentWrapp = $('.js-dgwt-wcas-suggestion-cat');
1270
 
1271
+ if (_this.isChecked($el)) {
1272
+ $contentWrapp.addClass('dgwt-wcas-has-img');
1273
+ } else {
1274
+ $contentWrapp.removeClass('dgwt-wcas-has-img');
1275
+ }
1276
+ },
1277
  onChangeShowMatchingTags: function ($el, value) {
1278
  var _this = this,
1279
  $headline = $('.dgwt-wcas-suggestion-headline-tag'),
1316
  _this.onChangeSuggestionsLimit($limitInput, $limitInput.val());
1317
 
1318
  },
1319
+ onChangeShowBrandsImages: function ($el, value) {
1320
+ var _this = this,
1321
+ $contentWrapp = $('.js-dgwt-wcas-suggestion-brand');
1322
 
1323
+ if (_this.isChecked($el)) {
1324
+ $contentWrapp.addClass('dgwt-wcas-has-img');
1325
+ } else {
1326
+ $contentWrapp.removeClass('dgwt-wcas-has-img');
1327
+ }
1328
+ },
1329
  onChangeShowMatchingPosts: function ($el, value) {
1330
  var _this = this,
1331
  $headline = $('.dgwt-wcas-suggestion-headline-post'),
1459
  }, 10);
1460
 
1461
  },
1462
+ onChangeShowDetailsBox: function ($el, value) {
1463
  var _this = this;
1464
 
1465
  if (_this.isChecked($el)) {
1469
  _this.previewWrapper.addClass('dgwt-wcas-details-right');
1470
 
1471
 
1472
+ setTimeout(function () {
1473
 
1474
  $('.dgwt-wcas-suggestion-product:not(.dgwt-wcas-suggestion-duplicated)').addClass('dgwt-wcas-suggestion-selected');
1475
 
1476
  var searchWidth = _this.searchWrapp.width();
1477
 
1478
+ if (searchWidth >= 550) {
1479
  _this.previewWrapper.addClass('dgwt-wcas-full-width');
1480
 
1481
  var realWidth = getComputedStyle(_this.searchWrapp[0]).width;
1489
  _this.detailsWrapp.css('width', Math.ceil(realWidth / 2));
1490
  }
1491
 
1492
+ } else {
1493
  _this.suggestionWrapp.width(_this.searchWrapp.width());
1494
  }
1495
 
1507
  _this.detailsWrapp.css('width', '');
1508
  }
1509
  },
1510
+ onColorSearchIconColor: function ($el, value) {
1511
+ },
1512
  onColorBgInputColor: function ($el, value) {
1513
  var _this = this;
1514
  if (_this.isColor(value)) {
1529
  style += '.dgwt-wcas-search-input:-moz-placeholder{opacity: 0.3; color:' + value + '!important;}';
1530
  style += '.dgwt-wcas-search-input::-moz-placeholder{opacity: 0.3; color:' + value + '!important;}';
1531
  style += '.dgwt-wcas-search-input:-ms-input-placeholder{opacity: 0.3; color:' + value + '!important;}';
1532
+ style += '.dgwt-wcas-ico-magnifier path {fill:' + value + '}';
1533
  style += '</style>';
1534
 
1535
  $('head').append(style);
1616
  onColorSugHoverColor: function ($el, value) {
1617
  var _this = this;
1618
  if (_this.isColor(value)) {
1619
+ setTimeout(function () {
1620
  $('.dgwt-wcas-suggestion-selected').css('background-color', value);
1621
  }, 50);
1622
  } else {
1708
  },
1709
  onTypeSearchPlaceholder: function ($el, value) {
1710
  var _this = this;
1711
+ if (value.length == 0) {
1712
  value = dgwt_wcas.labels.search_placeholder;
1713
  }
1714
  _this.searchInput.attr('placeholder', value);
1715
  },
1716
  onTypeSearchNoResultsText: function ($el, value) {
1717
+ if (value.length == 0) {
1718
  value = dgwt_wcas.labels.no_results;
1719
  }
1720
  $('.js-dgwt-wcas-suggestion-nores span').text(value);
1721
  },
1722
  onTypeSearchSeeAllResultsText: function ($el, value) {
1723
+ if (value.length == 0) {
1724
  value = dgwt_wcas.labels.show_more;
1725
  }
1726
  $('.js-dgwt-wcas-st-more-label').text(value);
1727
  },
1728
+ fixSizesInit: function () {
1729
  var _this = this;
1730
 
1731
+ $(document).on('click', '#dgwt_wcas_autocomplete-tab', function () {
1732
  _this.onChangeShowDetailsBox($("input[id*='show_details_box']"));
1733
  });
1734
 
1735
  }
1736
  };
1737
 
1738
+ var TROUBLESHOOTING = {
1739
+ settingsTab: '#dgwt_wcas_troubleshooting-tab',
1740
+ noIssuesClass: '.js-dgwt-wcas-troubleshooting-no-issues',
1741
+ counterClass: '.js-dgwt-wcas-troubleshooting-count',
1742
+ issuesListClass: '.js-dgwt-wcas-troubleshooting-issues',
1743
+ progressBar: '.dgwt-wcas-troubleshooting-wrapper .progress_bar',
1744
+ progressBarInner: '.dgwt-wcas-troubleshooting-wrapper .progress-bar-inner',
1745
+ resetButtonName: 'dgwt-wcas-reset-async-tests',
1746
+ fixOutofstockButtonName: 'dgwt-wcas-fix-out-of-stock-relationships',
1747
+ maintenanceAnalyticsButtonName: 'dgwt-wcas-maintenance-analytics',
1748
  switchAlternativeEndpoint: 'dgwt-wcas-switch-alternative-endpoint',
1749
+ dismissElementorTemplateButtonName: 'dgwt-wcas-dismiss-elementor-template',
1750
+ init: function () {
1751
+ var _this = this;
1752
+ if (typeof dgwt_wcas['troubleshooting'] === 'undefined') {
1753
+ return;
1754
+ }
1755
+
1756
+ const count = dgwt_wcas['troubleshooting']['tests']['issues']['critical'] + dgwt_wcas['troubleshooting']['tests']['issues']['recommended'];
1757
+ if (count > 0) {
1758
+ $(_this.counterClass).text(count).addClass('active');
1759
+ $(_this.settingsTab).addClass('enabled');
1760
+ }
1761
+
1762
+ if (dgwt_wcas.troubleshooting.tests.results_async.length > 0) {
1763
+ $.each(dgwt_wcas.troubleshooting.tests.results_async, function () {
1764
+ _this.appendIssue(this, false);
1765
+ });
1766
+ }
1767
+
1768
+ if (dgwt_wcas.troubleshooting.tests.direct.length > 0) {
1769
+ $.each(dgwt_wcas.troubleshooting.tests.direct, function () {
1770
+ _this.appendIssue(this, false);
1771
+ });
1772
+ }
1773
+
1774
+ if (dgwt_wcas.troubleshooting.tests.async.length > 0) {
1775
+ _this.maybeRunNextAsyncTest();
1776
+ }
1777
+
1778
+ $(document).on('click', 'input[name="' + _this.resetButtonName + '"]', function (e) {
1779
+ $('input[name="' + _this.resetButtonName + '"]').attr('disabled', 'disabled');
1780
+ var data = {
1781
+ 'action': 'dgwt_wcas_troubleshooting_reset_async_tests',
1782
+ '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_reset_async_tests
1783
+ };
1784
+ $.post(
1785
+ ajaxurl,
1786
+ data,
1787
+ function () {
1788
+ location.reload();
1789
+ }
1790
+ );
1791
+ return false;
1792
+ });
1793
+
1794
+ $(document).on('click', 'input[name="' + _this.fixOutofstockButtonName + '"]', function (e) {
1795
+ $('input[name="' + _this.fixOutofstockButtonName + '"]').attr('disabled', 'disabled').next().addClass('loading');
1796
+ var data = {
1797
+ 'action': 'dgwt_wcas_troubleshooting_fix_outofstock',
1798
+ '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_fix_outofstock
1799
+ };
1800
+ $.post(
1801
+ ajaxurl,
1802
+ data,
1803
+ function () {
1804
+ location.reload();
1805
+ }
1806
+ );
1807
+ return false;
1808
+ });
1809
+
1810
+ $(document).on('click', 'input[name="' + _this.maintenanceAnalyticsButtonName + '"]', function (e) {
1811
+ $('input[name="' + _this.maintenanceAnalyticsButtonName + '"]').attr('disabled', 'disabled').next().addClass('loading');
1812
+ var data = {
1813
+ 'action': 'dgwt_wcas_troubleshooting_maintenance_analytics',
1814
+ '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_maintenance_analytics
1815
+ };
1816
+ $.post(
1817
+ ajaxurl,
1818
+ data,
1819
+ function () {
1820
+ location.reload();
1821
+ }
1822
+ );
1823
+ return false;
1824
+ });
1825
+
1826
+ $(document).on('click', 'input[name="' + _this.switchAlternativeEndpoint + '"]', function (e) {
1827
  var action = parseInt($(this).data('switch')) === 1 ? 'enable' : 'disable';
1828
+ $('input[name="' + _this.switchAlternativeEndpoint + '"]').attr('disabled', 'disabled').next().addClass('loading');
1829
  var data = {
1830
  'action': 'dgwt_wcas_troubleshooting_switch_alternative_endpoint',
1831
  '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_switch_alternative_endpoint,
1832
  'switch': action,
1833
  };
1834
+ $.post(
1835
+ ajaxurl,
1836
+ data,
1837
+ function () {
1838
+ location.reload();
1839
+ }
1840
+ );
1841
+ return false;
1842
+ });
1843
+
1844
+ $(document).on('click', 'input[name="' + _this.dismissElementorTemplateButtonName + '"]', function (e) {
1845
+ $('input[name="' + _this.dismissElementorTemplateButtonName + '"]').attr('disabled', 'disabled');
1846
+ var data = {
1847
+ 'action': 'dgwt_wcas_troubleshooting_dismiss_elementor_template',
1848
+ '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_dismiss_elementor_template
1849
+ };
1850
+ $.post(
1851
+ ajaxurl,
1852
+ data,
1853
+ function () {
1854
+ location.reload();
1855
+ }
1856
+ );
1857
+ return false;
1858
+ });
1859
+ },
1860
+ appendIssue: function (issue, incrementCounter) {
1861
+ var _this = this;
1862
+ var template = wp.template('dgwt-wcas-troubleshooting-issue'),
1863
+ issueWrapper = $(_this.issuesListClass + '-' + issue.status),
1864
+ count;
1865
+
1866
+ if (issue.status === 'good') {
1867
+ return;
1868
+ }
1869
+
1870
+ $(_this.noIssuesClass).hide();
1871
+
1872
+ if (incrementCounter) {
1873
+ dgwt_wcas.troubleshooting.tests.issues[issue.status]++;
1874
+ }
1875
+
1876
+ count = dgwt_wcas.troubleshooting.tests.issues['critical'] + dgwt_wcas.troubleshooting.tests.issues['recommended'];
1877
+
1878
+ if (count > 0) {
1879
+ $(_this.counterClass).text(count).addClass('active');
1880
+ $(_this.settingsTab).addClass('enabled');
1881
+ }
1882
+
1883
+ $(issueWrapper).append(template(issue));
1884
+ },
1885
+ maybeRunNextAsyncTest: function () {
1886
+ var _this = this;
1887
+
1888
+ if (dgwt_wcas.troubleshooting.tests.async.length > 0) {
1889
+ $.each(dgwt_wcas.troubleshooting.tests.async, function () {
1890
+ var data = {
1891
+ 'action': 'dgwt_wcas_troubleshooting_test',
1892
+ 'test': this.test,
1893
+ '_wpnonce': dgwt_wcas.troubleshooting.nonce.troubleshooting_async_test
1894
+ };
1895
+
1896
+ if (this.completed) {
1897
+ return true;
1898
+ }
1899
+
1900
+ this.completed = true;
1901
+
1902
+ $(_this.progressBar).show();
1903
+
1904
+ $.post(
1905
+ ajaxurl,
1906
+ data,
1907
+ function (response) {
1908
+ if (response.success) {
1909
+ _this.appendIssue(response.data, true)
1910
+ }
1911
+ _this.maybeRunNextAsyncTest();
1912
+ }
1913
+ );
1914
+
1915
+ return false;
1916
+ });
1917
+ }
1918
+
1919
+ _this.recalculateProgression();
1920
+ },
1921
+ recalculateProgression: function () {
1922
+ var _this = this;
1923
+ var total = dgwt_wcas.troubleshooting.tests.async.length;
1924
+ var completed = 0;
1925
+
1926
+ $.each(dgwt_wcas.troubleshooting.tests.async, function () {
1927
+ if (this.completed) {
1928
+ completed++;
1929
+ }
1930
+ });
1931
+ var progress = Math.ceil((completed / total) * 100);
1932
+ $(_this.progressBarInner).css('width', progress + '%');
1933
+ if (progress === 100) {
1934
+ setTimeout(function () {
1935
+ $(_this.progressBar).slideUp();
1936
+ }, 2000);
1937
+ }
1938
+ },
1939
+ }
1940
+
1941
+ var MOVE_OPTIONS = {
1942
+ moveOptionClass: '.js-dgwt-wcas-move-option',
1943
+ init: function () {
1944
+ var optionsToMove = $(this.moveOptionClass);
1945
+ if (optionsToMove.length > 0) {
1946
+ $.each(optionsToMove, function (index, el) {
1947
+ var moveDest = $('#' + $(el).data('move-dest').replace(/(:|\.|\[|\])/g, '\\$1'));
1948
+ if (moveDest.length > 0) {
1949
+ if ($(el).closest('tr').hasClass('dgwt-wcas-premium-only')) {
1950
+ $(el).addClass('dgwt-wcas-premium-only');
1951
+ }
1952
+ $(el).clone().appendTo(moveDest.closest('td fieldset'));
1953
+ }
1954
+ $(el).closest('tr').remove();
1955
+ });
1956
+ }
1957
+ }
1958
+ }
1959
+
1960
+ var SETTINGS_FILTERS_RULES = {
1961
+ init: function () {
1962
+
1963
+ if (typeof Vue == 'undefined') {
1964
+ return;
1965
+ }
1966
+
1967
+ var productSearchSettings = function ({nonce, options, type}) {
1968
+ return {
1969
+ persist: false,
1970
+ maxItems: null,
1971
+ valueField: 'key',
1972
+ labelField: 'label',
1973
+ searchField: ['label'],
1974
+ options: options,
1975
+ preload: true,
1976
+ create: function (input) {
1977
+ return {
1978
+ value: input.key,
1979
+ label: input.label
1980
+ }
1981
+ },
1982
+ load: function (query, callback) {
1983
+ $.ajax({
1984
+ url: ajaxurl,
1985
+ method: 'POST',
1986
+ data: {
1987
+ action: 'dgwt_wcas_settings_search_terms',
1988
+ query: query,
1989
+ type: type,
1990
+ _wpnonce: nonce
1991
+ },
1992
+ error: function () {
1993
+ callback();
1994
+ },
1995
+ success: function (res) {
1996
+ callback(res.data);
1997
+ }
1998
+ });
1999
+ }
2000
+ };
2001
+ };
2002
+
2003
+ Vue.component('dgwt-wcas-rule', {
2004
+ template: '#dgwt-wcas-settings-filters-rules-rule',
2005
+ components: {
2006
+ Selectize
2007
+ },
2008
+ props: ['nonce', 'rule', 'rules', 'index'],
2009
+ data() {
2010
+ return {
2011
+ isSelectActive: true,
2012
+ }
2013
+ },
2014
+ computed: {
2015
+ ruleValue(value) {
2016
+ return this.rule.group;
2017
+ },
2018
+ },
2019
+ watch: {
2020
+ rule: {
2021
+ handler: function () {
2022
+ this.$emit('update:rule', this.index);
2023
+ },
2024
+ deep: true,
2025
+ },
2026
+ ruleValue() {
2027
+ // Reset values on group change
2028
+ var vm = this;
2029
+ this.$emit('change:group', this.index);
2030
+ this.isSelectActive = false;
2031
+ setTimeout(function () {
2032
+ vm.isSelectActive = true;
2033
+ }, 0);
2034
+ },
2035
+ },
2036
+ methods: {
2037
+ deleteRule() {
2038
+ this.$emit('delete:rule', this.index)
2039
+ },
2040
+ getSelectizeSettings(type) {
2041
+ var options = (typeof dgwt_wcas_filters_rules_selected_options[type] === 'undefined') ? [] : dgwt_wcas_filters_rules_selected_options[type];
2042
+ return productSearchSettings({nonce: this.nonce, type: type, options: options});
2043
+ },
2044
+ },
2045
+ });
2046
+
2047
+ var FiltersRules = new Vue({
2048
+ el: '#dgwt-wcas-settings-filters-rules',
2049
+ components: {
2050
+ Selectize
2051
+ },
2052
+ data() {
2053
+ return {
2054
+ rules: []
2055
+ }
2056
+ },
2057
+ mounted() {
2058
+ try {
2059
+ const rules = JSON.parse(this.$refs['dgwt-wcas-settings-filters-rules-ref'].value);
2060
+ $.each(rules, function (index, rule) {
2061
+ rules[index].key = Math.random();
2062
+ });
2063
+ this.rules = rules;
2064
+ } catch (e) {
2065
+ }
2066
+ this.updateInput();
2067
+ },
2068
+ methods: {
2069
+ addRule() {
2070
+ this.rules.push({group: '', values: [], key: Math.random()});
2071
+ this.updateInput();
2072
+ },
2073
+ changeGroup(index) {
2074
+ this.rules[index].values = [];
2075
+ this.updateInput();
2076
+ },
2077
+ deleteRule(index) {
2078
+ this.rules = this.rules.filter(function (item, itemIndex) {
2079
+ return itemIndex !== index;
2080
+ });
2081
+ this.updateInput();
2082
+ },
2083
+ updateInput() {
2084
+ const rules = JSON.parse(JSON.stringify(this.rules));
2085
+ this.$refs['dgwt-wcas-settings-filters-rules-ref'].value = JSON.stringify(rules.map(function (rule) {
2086
+ if (typeof (rule['key'] !== 'undefined')) {
2087
+ delete (rule['key']);
2088
+ }
2089
+ return rule;
2090
+ }));
2091
+ }
2092
+ },
2093
+ });
2094
+ }
2095
+ };
2096
 
2097
  function automateSettingsColspan() {
2098
  var $el = $('.js-dgwt-wcas-sgs-autocolspan');
2143
 
2144
  RADIO_SETTINGS_TOGGLE.init();
2145
  CHECKBOX_SETTINGS_TOGGLE.init();
2146
+ CONDITIONAL_LAYOUT_SETTINGS.init();
2147
 
2148
  automateSettingsColspan();
2149
 
2151
  SELECTIZE.init();
2152
  TOOLTIP.init();
2153
  ADVANCED_SETTINGS.init();
2154
+ TROUBLESHOOTING.init();
2155
+ MOVE_OPTIONS.init();
2156
+ CHECKBOX_SETTINGS_TOGGLE_SIBLING.init();
2157
+ STATS_INTERFACE.init();
2158
 
2159
+ SETTINGS_FILTERS_RULES.init();
2160
  window.DGWT_WCAS_SEARCH_PREVIEW.init();
2161
 
2162
  });
assets/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){var s={inputSel:"dgwt-wcas-options-toggle input[type=radio]",groupSel:"dgwt_wcas_settings-group",reloadChoices:function(s){var e=t('[name="'+s+'"]').closest("."+this.groupSel),a=t('[name="'+s+'"]:checked').val(),i="";this.hideAll(e),(a=a.replace("_","-")).length>0&&(i="wcas-opt-"+a),t("."+i).length>0&&t("."+i).fadeIn()},hideAll:function(t){t.find('tr[class*="wcas-opt-"]').hide()},registerListeners:function(){var s=this;t("."+s.inputSel).on("change",function(){s.reloadChoices(t(this).attr("name"))})},init:function(){var s=this,e=t("."+s.inputSel+":checked");e.length>0&&(s.registerListeners(),e.each(function(){s.reloadChoices(t(this).attr("name"))}))}},e={inputSel:"dgwt-wcas-options-cb-toggle input[type=checkbox]",groupSel:"dgwt_wcas_settings-group",reloadChoices:function(s){var e=s.is(":checked"),a=this.getGroupSelector(s);t("."+a+":not(.dgwt-wcas-options-cb-toggle)").hide(),e&&t("."+a).each(function(){t(this).hasClass("js-dgwt-wcas-adv-settings")&&t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--disabled")||t(this).fadeIn()})},getGroupSelector(s){var e=s.closest(".dgwt-wcas-options-cb-toggle"),a="",i=e.attr("class").split(/\s+/);return t.each(i,function(t,s){-1!==s.indexOf("js-dgwt-wcas-cbtgroup-")&&(a=s)}),a},registerListeners:function(){var s=this;t(document).on("change","."+s.inputSel,function(){s.reloadChoices(t(this))})},refresh:function(){var s=this,e=t("."+s.inputSel);e.length>0&&e.each(function(){var e=t(this).is(":checked"),a=s.getGroupSelector(t(this));e?t("."+a).fadeIn():t("."+a+":not(.dgwt-wcas-options-cb-toggle)").hide()})},init:function(){var s=this,e=t("."+s.inputSel);e.length>0&&(s.registerListeners(),e.each(function(){s.reloadChoices(t(this))}))}},a={inputSel:"js-dgwt-wcas-options-toggle-sibling input[type=checkbox]",toogleSibling:function(t){t.is(":checked")?t.closest("label").next().fadeIn():t.closest("label").next().hide()},registerListeners:function(){var s=this;t(document).on("change","."+s.inputSel,function(){s.toogleSibling(t(this))})},init:function(){var s=this,e=t("."+s.inputSel);e.length>0&&(s.registerListeners(),e.each(function(){s.toogleSibling(t(this))}))}},i={layoutSelect:"select[id*='search_layout']",overlayMobile:"input[id*='enable_mobile_overlay']",mobileBreakpoint:"input[id*='mobile_breakpoint']",searchIconColor:"input[id*='search_icon_color']",$select:null,$overlayMobileEl:null,$mobileBreakpointEl:null,$searchIconColorEl:null,setConditions:function(){var s=this.$select.find("option:selected").val(),e=t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--enabled");switch(this.hideOption(this.$overlayMobileEl),this.hideOption(this.$mobileBreakpointEl),this.hideOption(this.$searchIconColorEl),t("input[id*='bg_search_icon_color']").closest("tr").show(),s){case"icon":e&&this.showOption(this.$searchIconColorEl);break;case"icon-flexible":e&&(this.showOption(this.$mobileBreakpointEl),this.showOption(this.$searchIconColorEl));break;default:e&&(this.showOption(this.$overlayMobileEl),t("input[id*='bg_search_icon_color']").closest("tr").hide(),this.$overlayMobileEl.is(":checked")&&this.showOption(this.$mobileBreakpointEl))}},hideOption:function(t){t.closest("tr").hide()},showOption:function(t){t.closest("tr").show()},registerListeners:function(){var t=this;t.$select.on("change",function(){t.setConditions()}),t.$overlayMobileEl.on("change",function(){t.setConditions()})},init:function(){var s=this,e=t(s.layoutSelect);e.length>0&&(s.$select=e,s.$overlayMobileEl=t(s.overlayMobile),s.$mobileBreakpointEl=t(s.mobileBreakpoint),s.$searchIconColorEl=t(s.searchIconColor),s.registerListeners(),setTimeout(function(){s.setConditions()},400))}},o={actionTriggerClass:"js-ajax-build-index",actionStopTriggerClass:"js-ajax-stop-build-index",indexingWrappoerClass:"js-dgwt-wcas-indexing-wrapper",indexerTabProgressClass:"js-dgwt-wcas-indexer-tab-progress",indexerTabErrorClass:"js-dgwt-wcas-indexer-tab-error",getWrapper:function(){return t("."+this.indexingWrappoerClass).closest(".dgwt-wcas-settings-info")},registerListeners:function(){var s=this;t(document).on("click","."+s.actionTriggerClass,function(e){e.preventDefault();var a=t(this);a.attr("disabled","disabled"),t(".dgwt-wcas-settings-info").addClass("wcas-ajax-build-index-wait"),t("."+s.indexerTabErrorClass).removeClass("active"),t("."+s.indexerTabProgressClass).addClass("active");var i=!!a.hasClass("js-ajax-build-index-emergency");i&&(t(".dgwt-wcas-indexing-header__title").text("[Emergency mode] Wait... Indexing in progress"),t(".dgwt-wcas-indexing-header__troubleshooting, .dgwt-wcas-indexing-header__actions, .js-dgwt-wcas-indexer-details").hide()),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_build_index",emergency:i,_wpnonce:dgwt_wcas.nonces.build_index},success:function(t){void 0!==t&&t.success&&(s.getWrapper().html(t.data.html),s.heartbeat())},complete:function(){a.removeAttr("disabled"),t(".dgwt-wcas-settings-info").removeClass("wcas-ajax-build-index-wait"),i&&window.location.reload()}})}),t(document).on("click","."+s.actionStopTriggerClass,function(e){e.preventDefault();var a=t(this);a.attr("disabled","disabled"),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_stop_build_index",_wpnonce:dgwt_wcas.nonces.stop_build_index},success:function(t){void 0!==t&&t.success&&(s.getWrapper().html(t.data.html),s.heartbeat())},complete:function(){a.removeAttr("disabled")}})})},heartbeat:function(){var s=this;setTimeout(function(){t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_build_index_heartbeat",_wpnonce:dgwt_wcas.nonces.build_index_heartbeat},success:function(e){void 0!==e&&e.success&&(s.getWrapper().html(e.data.html),e.data.loop?s.heartbeat():(t("."+s.indexerTabProgressClass).removeClass("active"),"error"===e.data.status&&t("."+s.indexerTabErrorClass).addClass("active")),!e.data.loop&&e.data.refresh_once.length>0&&(document.cookie.split(";").some(function(t){return 0===t.trim().indexOf("dgwt_wcas_refresh_once="+e.data.refresh_once)})||"none"!==t("#dgwt_wcas_troubleshooting-tab").css("display")||(document.cookie="dgwt_wcas_refresh_once="+e.data.refresh_once,location.reload())))}})},1e3)},detailsToggle:function(){var s;t(document).on("click",".js-dgwt-wcas-indexing-details-trigger",function(e){e.preventDefault();var a=t(".js-dgwt-wcas-indexer-details");a.hasClass("show")?(a.removeClass("show"),a.addClass("hide"),t(".js-dgwt-wcas-indexing__showd").addClass("show").removeClass("hide"),t(".js-dgwt-wcas-indexing__hided").addClass("hide").removeClass("show"),s=!1):(a.addClass("show"),a.removeClass("hide"),t(".js-dgwt-wcas-indexing__showd").addClass("hide").removeClass("show"),t(".js-dgwt-wcas-indexing__hided").addClass("show").removeClass("hide"),s=!0),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_index_details_toggle",display:s}})})},init:function(){this.registerListeners(),t("."+this.indexingWrappoerClass).length>0&&this.heartbeat(),this.detailsToggle()}},n={init:function(){var s=this;t(".dgwt-wcas-selectize").length>0&&t.ajax({url:ajaxurl,data:{action:"dgwt_wcas_settings_list_custom_fields",_wpnonce:t(".dgwt-wcas-selectize").data("security")},success:function(t){void 0!==t&&void 0!==t.data&&s.initSelectize(t.data)}})},initSelectize:function(s){var e=t(".dgwt-wcas-selectize");e.length>0&&e.each(function(){var e=t(this),a=e.data("options"),i=s;if(a.length>0){a=JSON.parse('["'+decodeURI(a.replace(/&/g,'","').replace(/=/g,'","'))+'"]');var o="";a.forEach(function(t,s){if((s+1)%2==0){var e={value:t,label:o};i.push(e),o=""}o=t})}t(this).selectize({persist:!1,maxItems:null,valueField:"key",labelField:"label",searchField:["value","label"],options:i,create:function(t){return{value:t.key,label:t.label}},load:function(s,a){if(!s.length)return a();t.ajax({url:ajaxurl,data:{action:"dgwt_wcas_settings_list_custom_fields",_wpnonce:e.data("security")},error:function(){a()},success:function(t){a(t.data)}})}})})}},c={init:function(){var s=t(".js-dgwt-wcas-tooltip");s.length>0&&s.each(function(){var s=t(this)[0],e=t(this).data("tooltip-html-el"),a=t(this).data("tooltip-placement");if(e){new DgwtWcasTooltip(s,{title:t("."+e+" > .dgwt-wcas-tooltip-wrapper")[0],placement:a,trigger:"hover",html:!0})}})}},r={advClass:"js-dgwt-wcas-adv-settings",highlightClass:"dgwt-wcas-opt-highlight",transClass:"dgwt-wcas-opt-transition",init:function(){this.clickListener(),this.setStartingState()},clickListener:function(){var s=this;t(document).on("click",".js-dgwt-wcas-settings__advanced",function(){var e;e=t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--disabled")?"show":"hide",s.saveChoice(e)})},setStartingState:function(){var s=t("."+this.advClass);s.length>0&&(t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--enabled")?(s.show(),e.refresh()):s.hide())},saveChoice:function(s){t(".js-dgwt-wcas-settings__advanced").append('<span class="dgwt-wcas-adv-settings-saving">saving...</span>'),t.ajax({url:ajaxurl,data:{_wpnonce:dgwt_wcas.nonces.advanced_options_switch,action:"dgwt_wcas_adv_settings",adv_settings_value:s}}).done(function(s){t(".dgwt-wcas-adv-settings-saving").remove()});var e=t(".js-dgwt-wcas-adv-settings-toggle");"show"===s&&(e.removeClass("woocommerce-input-toggle--disabled"),e.addClass("woocommerce-input-toggle--enabled")),"hide"===s&&(e.removeClass("woocommerce-input-toggle--enabled"),e.addClass("woocommerce-input-toggle--disabled")),this.toggleAdvancedOpt(s)},toggleAdvancedOpt:function(s){var a=this,o=t("."+a.advClass);o.length>0&&(o.addClass(a.highlightClass),o.addClass(a.transClass),"show"===s&&o.fadeIn(500,function(){setTimeout(function(){o.removeClass(a.highlightClass),setTimeout(function(){o.removeClass(a.transClass),e.refresh(),i.setConditions()},500)},500)}),"hide"===s&&setTimeout(function(){o.removeClass(a.transClass),o.fadeOut(500,function(){o.removeClass(a.highlightClass)})},500))}};window.DGWT_WCAS_SEARCH_PREVIEW={previewWrapper:{},searchWrapp:{},suggestionWrapp:{},searchInput:{},init:function(){this.previewWrapper=t(".js-dgwt-wcas-preview"),this.searchWrapp=t(".js-dgwt-wcas-search-wrapp"),this.suggestionWrapp=t(".js-dgwt-wcas-suggestions-wrapp"),this.detailsWrapp=t(".js-dgwt-wcas-details-wrapp"),this.searchInput=t(".js-dgwt-wcas-search-input"),this.onChangeHandler(),this.onColorHandler(),this.onTypeHandler(),this.disableSubmit(),this.noResultsHandler(),this.fixSizesInit()},isChecked:function(t){return!!(t.length>0&&t.is(":checked"))},isColor:function(t){return"string"==typeof t&&7===t.length&&"#"===t.charAt(0)},camelCase:function(t){for(var s=t.split("_"),e="",a=0;a<s.length;a++)e+=s[a].charAt(0).toUpperCase()+s[a].slice(1);return e},disableSubmit:function(){var s,e;t(".js-dgwt-wcas-preview-source").on("click",function(a){a.preventDefault();var i=a.pageX-100,o=a.pageY+10;void 0!==s&&(clearTimeout(s),e&&e.remove()),t("body").append('<div class="dgwt-wcas-click-alert">No interaction! This is only a preview.</div>'),(e=t(".dgwt-wcas-click-alert")).css({left:i,top:o}),t(".dgwt-wcas-preview-source").addClass("dgwt-wcas-preview-source-no-click"),s=setTimeout(function(){e.fadeOut(500,function(){t(this).remove(),t(".dgwt-wcas-preview-source").removeClass("dgwt-wcas-preview-source-no-click")})},2e3)})},noResultsHandler:function(){var s=this,e=".js-dgwt-wcas-preview .dgwt-wcas-suggestion:not(.js-dgwt-wcas-suggestion-nores)",a="input[id*='search_no_results_text']";t(document).on("focus",a,function(){t(e).addClass("dgwt-wcas-hide"),t(".js-dgwt-wcas-suggestion-nores").removeClass("dgwt-wcas-hide"),s.detailsWrapp.addClass("dgwt-wcas-hide"),s.suggestionWrapp.addClass("dgwt-wcas-preview-nores")}),t(document).on("blur",a,function(){t(e).removeClass("dgwt-wcas-hide"),t(".js-dgwt-wcas-suggestion-nores").addClass("dgwt-wcas-hide"),s.detailsWrapp.removeClass("dgwt-wcas-hide"),s.suggestionWrapp.removeClass("dgwt-wcas-preview-nores")})},onChangeHandler:function(){for(var s=this,e=["show_submit_button","max_form_width","show_product_image","show_product_sku","show_product_desc","show_product_price","show_matching_categories","show_categories_images","show_matching_tags","show_matching_brands","show_brands_images","show_matching_posts","show_matching_pages","show_grouped_results","suggestions_limit","show_details_box"],a=0;a<e.length;a++){var i="input[id='dgwt_wcas_settings\\["+e[a]+"\\]']",o="input[id^='dgwt_wcas_settings'][data-option-trigger='"+e[a]+"']",n=t(i),c=t(o);methodToCall="onChange"+s.camelCase(e[a]),"function"==typeof s[methodToCall]&&n.length>0?(s[methodToCall](n,n.val()),t(document).on("change",i,function(){methodToCall=t(this).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),methodToCall="onChange"+s.camelCase(methodToCall),"function"==typeof s[methodToCall]&&s[methodToCall](t(this),this.value)})):"function"==typeof s[methodToCall]&&c.length>0?(s[methodToCall](c,c.val()),t(document).on("change",o,function(){methodToCall=t(this).data("option-trigger"),methodToCall="onChange"+s.camelCase(methodToCall),"function"==typeof s[methodToCall]&&s[methodToCall](t(this),this.value)})):s[methodToCall]("","")}},onColorHandler:function(){for(var s=this,e=["search_icon_color","bg_input_color","text_input_color","border_input_color","bg_submit_color","text_submit_color","sug_bg_color","sug_hover_color","sug_text_color","sug_highlight_color","sug_border_color"],a=0;a<e.length;a++){var i="input[id*='"+e[a]+"']",o=t(i),n="onColor"+s.camelCase(e[a]);s[n](o,o.val()),t(document).on("change",i,function(e){n=t(this).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),n="onColor"+s.camelCase(n),s[n](t(this),this.value)})}},onColorChangeHandler:function(t,s){var e=t.attr("id").replace("]","").replace("dgwt_wcas_settings[","");this[e="onColor"+this.camelCase(e)](t,s)},onTypeHandler:function(){for(var s=this,e=["search_submit_text","search_placeholder","search_no_results_text","search_see_all_results_text"],a=0;a<e.length;a++){var i="input[id*='"+e[a]+"']",o=t(i),n="onType"+s.camelCase(e[a]);s[n](o,o.val()),t(document).on("input",i,function(e){n=t(e.target).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),n="onType"+s.camelCase(n),s[n](t(e.target),this.value)})}},onChangeMaxFormWidth:function(s,e){e.length>0&&"0"!=e?(this.searchWrapp.css("max-width",e+"px"),this.suggestionWrapp.css("max-width",e+"px")):(this.searchWrapp.css("max-width","100%"),this.suggestionWrapp.css("max-width","100%")),this.onChangeShowDetailsBox(t("input[id*='show_details_box']"))},onChangeShowSubmitButton:function(s,e){var a=t(".js-dgwt-wcas-search-submit");if(this.isChecked(s)){this.searchWrapp.addClass("dgwt-wcas-has-submit"),this.searchWrapp.removeClass("dgwt-wcas-no-submit"),a.show(),t(".dgwt-wcas-sf-wrapp > .dgwt-wcas-ico-magnifier").hide();var i=t("input[id*='bg_submit_color']"),o=t("input[id*='text_submit_color']");this.onColorBgSubmitColor(i,i.val()),this.onColorTextSubmitColor(o,o.val())}else this.searchWrapp.addClass("dgwt-wcas-no-submit"),this.searchWrapp.removeClass("dgwt-wcas-has-submit"),a.hide(),t(".dgwt-wcas-sf-wrapp > .dgwt-wcas-ico-magnifier").show()},onChangeShowProductImage:function(s,e){var a=t(".js-dgwt-wcas-si"),i=t(".js-dgwt-wcas-content-wrapp");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-img"),t(".dgwt-wcas-suggestion-product > .dgwt-wcas-st").remove(),t(".dgwt-wcas-suggestion-product > .dgwt-wcas-sp").remove(),i.show(),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-img"),i.each(function(){t(this).closest(".dgwt-wcas-suggestion-product").append(t(this).html())}),i.hide(),a.hide())},onChangeShowProductSku:function(s,e){var a=t(".js-dgwt-wcas-sku");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-sku"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-sku"),a.hide())},onChangeShowProductDesc:function(s,e){var a=t(".js-dgwt-wcas-sd");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-desc"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-desc"),a.hide())},onChangeShowProductPrice:function(s,e){var a=t(".js-dgwt-wcas-sp");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-price"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-price"),a.hide())},onChangeShowMatchingCategories:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-cat"),i=t(".dgwt-wcas-suggestion-cat");this.isChecked(s)?(a.show(),i.show(),i.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),i.hide(),i.addClass("js-dgwt-wcas-suggestion-hidden"));var o=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(o,o.val())},onChangeShowCategoriesImages:function(s,e){var a=t(".js-dgwt-wcas-suggestion-cat");this.isChecked(s)?a.addClass("dgwt-wcas-has-img"):a.removeClass("dgwt-wcas-has-img")},onChangeShowMatchingTags:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-tag"),i=t(".dgwt-wcas-suggestion-tag");this.isChecked(s)?(a.show(),i.show(),i.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),i.hide(),i.addClass("js-dgwt-wcas-suggestion-hidden"));var o=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(o,o.val())},onChangeShowMatchingBrands:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-brand"),i=t(".dgwt-wcas-suggestion-brand");this.isChecked(s)?(a.show(),i.show(),i.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),i.hide(),i.addClass("js-dgwt-wcas-suggestion-hidden"));var o=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(o,o.val())},onChangeShowBrandsImages:function(s,e){var a=t(".js-dgwt-wcas-suggestion-brand");this.isChecked(s)?a.addClass("dgwt-wcas-has-img"):a.removeClass("dgwt-wcas-has-img")},onChangeShowMatchingPosts:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-post"),i=t(".dgwt-wcas-suggestion-post");this.isChecked(s)?(a.show(),i.show(),i.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),i.hide(),i.addClass("js-dgwt-wcas-suggestion-hidden"));var o=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(o,o.val())},onChangeShowMatchingPages:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-page"),i=t(".dgwt-wcas-suggestion-page");this.isChecked(s)?(a.show(),i.show(),i.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),i.hide(),i.addClass("js-dgwt-wcas-suggestion-hidden"));var o=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(o,o.val())},onChangeShowGroupedResults:function(s,e){var a=t(".dgwt-wcas-st--direct-headline"),i=t(".dgwt-wcas-suggestion-headline");this.isChecked(s)?(a.addClass("dgwt-wcas-hidden"),this.suggestionWrapp.addClass("dgwt-wcas-has-headings"),t(".dgwt-wcas-suggestion-headline").show(),this.isChecked(t("input[data-option-trigger='show_matching_categories']"))||t(".dgwt-wcas-suggestion-headline-cat").hide(),this.isChecked(t("input[data-option-trigger='show_matching_tags']"))||t(".dgwt-wcas-suggestion-headline-tag").hide(),this.isChecked(t("input[data-option-trigger='show_matching_brands']"))||t(".dgwt-wcas-suggestion-headline-brand").hide(),this.isChecked(t("input[id*='show_matching_posts']"))||t(".dgwt-wcas-suggestion-headline-post").hide(),this.isChecked(t("input[id*='show_matching_pages']"))||t(".dgwt-wcas-suggestion-headline-page").hide()):(a.removeClass("dgwt-wcas-hidden"),i.hide(),this.suggestionWrapp.removeClass("dgwt-wcas-has-headings"))},onChangeSuggestionsLimit:function(s,e){setTimeout(function(){var a=0,i=7,o=t(".dgwt-wcas-suggestion-duplicated"),n=["brand","cat","tag","post","page","product"];e.length>0&&"0"!=e&&(i=Math.abs(e)),o.length>0&&o.remove();var c=[];for(a=0;a<n.length;a++){var r=t(".dgwt-wcas-suggestion-"+n[a]+":not(.js-dgwt-wcas-suggestion-hidden)");r.length>0&&c.push(r)}var d=c.length;if(c.length>0)for(var l=i-c.length,g=c.length-1;l>0;){var h=c[g].clone();h.addClass("dgwt-wcas-suggestion-duplicated"),h.removeClass("dgwt-wcas-suggestion-selected"),c[g].after(h),d++,--g<0&&(g=c.length-1),l--}d>i&&s.val(d)},10)},onChangeShowDetailsBox:function(s,e){var a=this;a.isChecked(s)?(a.detailsWrapp.show(),a.searchWrapp.addClass("dgwt-wcas-is-detail-box"),a.previewWrapper.addClass("dgwt-wcas-is-details"),a.previewWrapper.addClass("dgwt-wcas-details-right"),setTimeout(function(){if(t(".dgwt-wcas-suggestion-product:not(.dgwt-wcas-suggestion-duplicated)").addClass("dgwt-wcas-suggestion-selected"),a.searchWrapp.width()>=550){a.previewWrapper.addClass("dgwt-wcas-full-width");var s=getComputedStyle(a.searchWrapp[0]).width;(s=Math.round(parseFloat(s.replace("px",""))))%2==0?(a.suggestionWrapp.css("width",Math.round(s/2)),a.detailsWrapp.css("width",Math.round(s/2))):(a.suggestionWrapp.css("width",Math.floor(s/2)),a.detailsWrapp.css("width",Math.ceil(s/2)))}else a.suggestionWrapp.width(a.searchWrapp.width())},10)):(a.detailsWrapp.hide(),a.searchWrapp.removeClass("dgwt-wcas-is-detail-box"),a.previewWrapper.removeClass("dgwt-wcas-is-details"),a.previewWrapper.removeClass("dgwt-wcas-details-right"),a.previewWrapper.removeClass("dgwt-wcas-full-width"),t(".dgwt-wcas-suggestion-product").removeClass("dgwt-wcas-suggestion-selected"),a.suggestionWrapp.css("width",""),a.detailsWrapp.css("width",""))},onColorSearchIconColor:function(t,s){},onColorBgInputColor:function(t,s){this.isColor(s)?this.searchInput.css("background-color",s):this.searchInput.css("background-color","")},onColorTextInputColor:function(s,e){var a="dgwt-wcas-preview-placeholder-style";if(this.isColor(e)){var i='<style class="'+a+'">';i+=".dgwt-wcas-search-input::placeholder{opacity: 0.3; color:"+e+"!important;}",i+=".dgwt-wcas-search-input::-webkit-input-placeholder{opacity: 0.3; color:"+e+"!important;}",i+=".dgwt-wcas-search-input:-moz-placeholder{opacity: 0.3; color:"+e+"!important;}",i+=".dgwt-wcas-search-input::-moz-placeholder{opacity: 0.3; color:"+e+"!important;}",i+=".dgwt-wcas-search-input:-ms-input-placeholder{opacity: 0.3; color:"+e+"!important;}",i+=".dgwt-wcas-ico-magnifier path {fill:"+e+"}",i+="</style>",t("head").append(i),this.searchInput.css("color",e)}else{this.searchInput.css("color","");var o=t("."+a);o.length>0&&o.remove()}},onColorBorderInputColor:function(t,s){this.isColor(s)?this.searchInput.css("border-color",s):this.searchInput.css("border-color","")},onColorBgSubmitColor:function(s,e){if(this.isChecked(t("input[id*='show_submit_button']"))&&this.isColor(e)){var a='<style class="dgwt-wcas-preview-submit-style">';a+=".dgwt-wcas-search-submit::before{border-color: transparent "+e+"!important;}",a+=".dgwt-wcas-search-submit:hover::before{border-right-color: "+e+"!important;}",a+=".dgwt-wcas-search-submit:focus::before{border-right-color: "+e+"!important;}",a+=".dgwt-wcas-search-submit{background-color: "+e+"!important;}",a+=".dgwt-wcas-om-bar .dgwt-wcas-om-return{background-color: "+e+"!important;}",a+="</style>",t("head").append(a)}else{var i=t(".dgwt-wcas-preview-submit-style");i.length>0&&i.remove()}},onColorTextSubmitColor:function(s,e){this.isChecked(t("input[id*='show_submit_button']"))&&this.isColor(e)?(t(".js-dgwt-wcas-search-submit").css("color",e),t(".dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier path").css("fill",e)):(this.searchInput.css("background-color",""),t(".js-dgwt-wcas-search-submit").css("color",""),t(".dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier path").css("fill",""))},onColorSugBgColor:function(s,e){var a="dgwt-wcas-preview-sugbgcol-style";if(this.isColor(e)){var i='<style class="'+a+'">';i+=".dgwt-wcas-suggestions-wrapp,",i+=".dgwt-wcas-details-wrapp",i+="{background-color: "+e+"!important;}",i+="</style>",t("head").append(i)}else{var o=t("."+a);o.length>0&&o.remove()}},onColorSugHoverColor:function(s,e){this.isColor(e)?setTimeout(function(){t(".dgwt-wcas-suggestion-selected").css("background-color",e)},50):t(".dgwt-wcas-suggestion-selected").css("background-color","")},onColorSugTextColor:function(s,e){var a="dgwt-wcas-preview-sugtextcol-style";if(this.isColor(e)){var i='<style class="'+a+'">';i+=".dgwt-wcas-suggestions-wrapp *,",i+=".dgwt-wcas-details-wrapp *,",i+=".dgwt-wcas-sd,",i+=".dgwt-wcas-suggestion *",i+="{color: "+e+"!important;}",i+="</style>",t("head").append(i)}else{var o=t("."+a);o.length>0&&o.remove()}},onColorSugHighlightColor:function(s,e){var a="dgwt-wcas-preview-sughighlight-style";if(this.isColor(e)){var i='<style class="'+a+'">';i+=".dgwt-wcas-st strong,",i+=".dgwt-wcas-sd strong",i+="{color: "+e+"!important;}",i+="</style>",t("head").append(i)}else{var o=t("."+a);o.length>0&&o.remove()}},onColorSugBorderColor:function(s,e){var a="dgwt-wcas-preview-sugborder-style";if(this.isColor(e)){var i='<style class="'+a+'">';i+=".dgwt-wcas-suggestions-wrapp,",i+=".dgwt-wcas-details-wrapp,",i+=".dgwt-wcas-suggestion,",i+=".dgwt-wcas-datails-title,",i+=".dgwt-wcas-details-more-products",i+="{border-color: "+e+"!important;}",i+="</style>",t("head").append(i)}else{var o=t("."+a);o.length>0&&o.remove()}},onTypeSearchSubmitText:function(s,e){var a=t(".js-dgwt-wcas-search-submit-l"),i=t(".js-dgwt-wcas-search-submit-m");e.length>0?(a.text(e),a.show(),i.hide()):(a.text(""),a.hide(),i.show())},onTypeSearchPlaceholder:function(t,s){0==s.length&&(s=dgwt_wcas.labels.search_placeholder),this.searchInput.attr("placeholder",s)},onTypeSearchNoResultsText:function(s,e){0==e.length&&(e=dgwt_wcas.labels.no_results),t(".js-dgwt-wcas-suggestion-nores span").text(e)},onTypeSearchSeeAllResultsText:function(s,e){0==e.length&&(e=dgwt_wcas.labels.show_more),t(".js-dgwt-wcas-st-more-label").text(e)},fixSizesInit:function(){var s=this;t(document).on("click","#dgwt_wcas_autocomplete-tab",function(){s.onChangeShowDetailsBox(t("input[id*='show_details_box']"))})}};var d={settingsTab:"#dgwt_wcas_troubleshooting-tab",noIssuesClass:".js-dgwt-wcas-troubleshooting-no-issues",counterClass:".js-dgwt-wcas-troubleshooting-count",issuesListClass:".js-dgwt-wcas-troubleshooting-issues",progressBar:".dgwt-wcas-troubleshooting-wrapper .progress_bar",progressBarInner:".dgwt-wcas-troubleshooting-wrapper .progress-bar-inner",resetButtonName:"dgwt-wcas-reset-async-tests",fixOutofstockButtonName:"dgwt-wcas-fix-out-of-stock-relationships",switchAlternativeEndpoint:"dgwt-wcas-switch-alternative-endpoint",dismissElementorTemplateButtonName:"dgwt-wcas-dismiss-elementor-template",init:function(){var s=this;if(void 0===dgwt_wcas.troubleshooting)return;const e=dgwt_wcas.troubleshooting.tests.issues.critical+dgwt_wcas.troubleshooting.tests.issues.recommended;e>0&&(t(s.counterClass).text(e).addClass("active"),t(s.settingsTab).addClass("enabled")),dgwt_wcas.troubleshooting.tests.results_async.length>0&&t.each(dgwt_wcas.troubleshooting.tests.results_async,function(){s.appendIssue(this,!1)}),dgwt_wcas.troubleshooting.tests.direct.length>0&&t.each(dgwt_wcas.troubleshooting.tests.direct,function(){s.appendIssue(this,!1)}),dgwt_wcas.troubleshooting.tests.async.length>0&&s.maybeRunNextAsyncTest(),t(document).on("click",'input[name="'+s.resetButtonName+'"]',function(e){t('input[name="'+s.resetButtonName+'"]').attr("disabled","disabled");var a={action:"dgwt_wcas_troubleshooting_reset_async_tests",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_reset_async_tests};return t.post(ajaxurl,a,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.fixOutofstockButtonName+'"]',function(e){t('input[name="'+s.fixOutofstockButtonName+'"]').attr("disabled","disabled").next().addClass("loading");var a={action:"dgwt_wcas_troubleshooting_fix_outofstock",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_fix_outofstock};return t.post(ajaxurl,a,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.switchAlternativeEndpoint+'"]',function(e){var a=1===parseInt(t(this).data("switch"))?"enable":"disable";t('input[name="'+s.switchAlternativeEndpoint+'"]').attr("disabled","disabled").next().addClass("loading");var i={action:"dgwt_wcas_troubleshooting_switch_alternative_endpoint",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_switch_alternative_endpoint,switch:a};return t.post(ajaxurl,i,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.dismissElementorTemplateButtonName+'"]',function(e){t('input[name="'+s.dismissElementorTemplateButtonName+'"]').attr("disabled","disabled");var a={action:"dgwt_wcas_troubleshooting_dismiss_elementor_template",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_dismiss_elementor_template};return t.post(ajaxurl,a,function(){location.reload()}),!1})},appendIssue:function(s,e){var a,i=wp.template("dgwt-wcas-troubleshooting-issue"),o=t(this.issuesListClass+"-"+s.status);"good"!==s.status&&(t(this.noIssuesClass).hide(),e&&dgwt_wcas.troubleshooting.tests.issues[s.status]++,(a=dgwt_wcas.troubleshooting.tests.issues.critical+dgwt_wcas.troubleshooting.tests.issues.recommended)>0&&(t(this.counterClass).text(a).addClass("active"),t(this.settingsTab).addClass("enabled")),t(o).append(i(s)))},maybeRunNextAsyncTest:function(){var s=this;dgwt_wcas.troubleshooting.tests.async.length>0&&t.each(dgwt_wcas.troubleshooting.tests.async,function(){var e={action:"dgwt_wcas_troubleshooting_test",test:this.test,_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_async_test};return!!this.completed||(this.completed=!0,t(s.progressBar).show(),t.post(ajaxurl,e,function(t){t.success&&s.appendIssue(t.data,!0),s.maybeRunNextAsyncTest()}),!1)}),s.recalculateProgression()},recalculateProgression:function(){var s=this,e=dgwt_wcas.troubleshooting.tests.async.length,a=0;t.each(dgwt_wcas.troubleshooting.tests.async,function(){this.completed&&a++});var i=Math.ceil(a/e*100);t(s.progressBarInner).css("width",i+"%"),100===i&&setTimeout(function(){t(s.progressBar).slideUp()},2e3)}},l={moveOptionClass:".js-dgwt-wcas-move-option",init:function(){var s=t(this.moveOptionClass);s.length>0&&t.each(s,function(s,e){var a=t("#"+t(e).data("move-dest").replace(/(:|\.|\[|\])/g,"\\$1"));a.length>0&&(t(e).closest("tr").hasClass("dgwt-wcas-premium-only")&&t(e).addClass("dgwt-wcas-premium-only"),t(e).clone().appendTo(a.closest("td fieldset"))),t(e).closest("tr").remove()})}},g=function(){if("undefined"!=typeof Vue){Vue.component("dgwt-wcas-rule",{template:"#dgwt-wcas-settings-filters-rules-rule",components:{Selectize:Selectize},props:["nonce","rule","rules","index"],data:()=>({isSelectActive:!0}),computed:{ruleValue(t){return this.rule.group}},watch:{rule:{handler:function(){this.$emit("update:rule",this.index)},deep:!0},ruleValue(){var t=this;this.$emit("change:group",this.index),this.isSelectActive=!1,setTimeout(function(){t.isSelectActive=!0},0)}},methods:{deleteRule(){this.$emit("delete:rule",this.index)},getSelectizeSettings(s){var e=void 0===dgwt_wcas_filters_rules_selected_options[s]?[]:dgwt_wcas_filters_rules_selected_options[s];return function({nonce:s,options:e,type:a}){return{persist:!1,maxItems:null,valueField:"key",labelField:"label",searchField:["label"],options:e,preload:!0,create:function(t){return{value:t.key,label:t.label}},load:function(e,i){t.ajax({url:ajaxurl,method:"POST",data:{action:"dgwt_wcas_settings_search_terms",query:e,type:a,_wpnonce:s},error:function(){i()},success:function(t){i(t.data)}})}}}({nonce:this.nonce,type:s,options:e})}}});new Vue({el:"#dgwt-wcas-settings-filters-rules",components:{Selectize:Selectize},data:()=>({rules:[]}),mounted(){try{const s=JSON.parse(this.$refs["dgwt-wcas-settings-filters-rules-ref"].value);t.each(s,function(t,e){s[t].key=Math.random()}),this.rules=s}catch(t){}this.updateInput()},methods:{addRule(){this.rules.push({group:"",values:[],key:Math.random()}),this.updateInput()},changeGroup(t){this.rules[t].values=[],this.updateInput()},deleteRule(t){this.rules=this.rules.filter(function(s,e){return e!==t}),this.updateInput()},updateInput(){const t=JSON.parse(JSON.stringify(this.rules));this.$refs["dgwt-wcas-settings-filters-rules-ref"].value=JSON.stringify(t.map(function(t){return t.key,delete t.key,t}))}}})}};t(document).ready(function(){var h,u;(h=t(".js-dgwt-wcas-settings-margin-nob")).length>0&&h.each(function(){var s=t(this).find("td .dgwt-wcas-fieldset");if(s.length>0){var e=t(this).prev(".js-dgwt-wcas-settings-margin");if(e.length>0){var a=t(this).attr("class").split(/\s+/),i="";t.each(a,function(t,s){-1!==s.indexOf("js-dgwt-wcas-cbtgroup-")&&(i=s)});var o=s.clone(!0,!0);o.addClass("dgwt-wcas-settings-margin-nob"),i&&o.addClass(i),o.appendTo(e.find("td")),t(this).remove()}}}),s.init(),e.init(),i.init(),(u=t(".js-dgwt-wcas-sgs-autocolspan")).length>0&&u.find("td").attr("colspan",2),o.init(),n.init(),c.init(),r.init(),d.init(),l.init(),a.init(),g(),window.DGWT_WCAS_SEARCH_PREVIEW.init()})}(jQuery);
1
+ !function(t){var s={inputSel:"dgwt-wcas-options-toggle input[type=radio]",groupSel:"dgwt_wcas_settings-group",reloadChoices:function(s){var e=t('[name="'+s+'"]').closest("."+this.groupSel),a=t('[name="'+s+'"]:checked').val(),o="";this.hideAll(e),(a=a.replace("_","-")).length>0&&(o="wcas-opt-"+a),t("."+o).length>0&&t("."+o).fadeIn()},hideAll:function(t){t.find('tr[class*="wcas-opt-"]').hide()},registerListeners:function(){var s=this;t("."+s.inputSel).on("change",function(){s.reloadChoices(t(this).attr("name"))})},init:function(){var s=this,e=t("."+s.inputSel+":checked");e.length>0&&(s.registerListeners(),e.each(function(){s.reloadChoices(t(this).attr("name"))}))}},e={inputSel:"dgwt-wcas-options-cb-toggle input[type=checkbox]",groupSel:"dgwt_wcas_settings-group",reloadChoices:function(s){var e=s.is(":checked"),a=this.getGroupSelector(s);t("."+a+":not(.dgwt-wcas-options-cb-toggle)").hide(),e&&t("."+a).each(function(){t(this).hasClass("js-dgwt-wcas-adv-settings")&&t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--disabled")||t(this).fadeIn()})},getGroupSelector(s){var e=s.closest(".dgwt-wcas-options-cb-toggle"),a="",o=e.attr("class").split(/\s+/);return t.each(o,function(t,s){-1!==s.indexOf("js-dgwt-wcas-cbtgroup-")&&(a=s)}),a},registerListeners:function(){var s=this;t(document).on("change","."+s.inputSel,function(){s.reloadChoices(t(this))})},refresh:function(){var s=this,e=t("."+s.inputSel);e.length>0&&e.each(function(){var e=t(this).is(":checked"),a=s.getGroupSelector(t(this));e?t("."+a).fadeIn():t("."+a+":not(.dgwt-wcas-options-cb-toggle)").hide()})},init:function(){var s=this,e=t("."+s.inputSel);e.length>0&&(s.registerListeners(),e.each(function(){s.reloadChoices(t(this))}))}},a={inputSel:"js-dgwt-wcas-options-toggle-sibling input[type=checkbox]",toogleSibling:function(t){t.is(":checked")?t.closest("label").next().fadeIn():t.closest("label").next().hide()},registerListeners:function(){var s=this;t(document).on("change","."+s.inputSel,function(){s.toogleSibling(t(this))})},init:function(){var s=this,e=t("."+s.inputSel);e.length>0&&(s.registerListeners(),e.each(function(){s.toogleSibling(t(this))}))}},o={layoutSelect:"select[id*='search_layout']",overlayMobile:"input[id*='enable_mobile_overlay']",mobileBreakpoint:"input[id*='mobile_breakpoint']",searchIconColor:"input[id*='search_icon_color']",$select:null,$overlayMobileEl:null,$mobileBreakpointEl:null,$searchIconColorEl:null,setConditions:function(){var s=this.$select.find("option:selected").val(),e=t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--enabled");switch(this.hideOption(this.$overlayMobileEl),this.hideOption(this.$mobileBreakpointEl),this.hideOption(this.$searchIconColorEl),t("input[id*='bg_search_icon_color']").closest("tr").show(),s){case"icon":e&&this.showOption(this.$searchIconColorEl);break;case"icon-flexible":e&&(this.showOption(this.$mobileBreakpointEl),this.showOption(this.$searchIconColorEl));break;default:e&&(this.showOption(this.$overlayMobileEl),t("input[id*='bg_search_icon_color']").closest("tr").hide(),this.$overlayMobileEl.is(":checked")&&this.showOption(this.$mobileBreakpointEl))}},hideOption:function(t){t.closest("tr").hide()},showOption:function(t){t.closest("tr").show()},registerListeners:function(){var t=this;t.$select.on("change",function(){t.setConditions()}),t.$overlayMobileEl.on("change",function(){t.setConditions()})},init:function(){var s=this,e=t(s.layoutSelect);e.length>0&&(s.$select=e,s.$overlayMobileEl=t(s.overlayMobile),s.$mobileBreakpointEl=t(s.mobileBreakpoint),s.$searchIconColorEl=t(s.searchIconColor),s.registerListeners(),setTimeout(function(){s.setConditions()},400))}},i={actionTriggerClass:"js-ajax-build-index",actionStopTriggerClass:"js-ajax-stop-build-index",indexingWrappoerClass:"js-dgwt-wcas-indexing-wrapper",indexerTabProgressClass:"js-dgwt-wcas-indexer-tab-progress",indexerTabErrorClass:"js-dgwt-wcas-indexer-tab-error",getWrapper:function(){return t("."+this.indexingWrappoerClass).closest(".dgwt-wcas-settings-info")},registerListeners:function(){var s=this;t(document).on("click","."+s.actionTriggerClass,function(e){e.preventDefault();var a=t(this);a.attr("disabled","disabled"),t(".dgwt-wcas-settings-info").addClass("wcas-ajax-build-index-wait"),t("."+s.indexerTabErrorClass).removeClass("active"),t("."+s.indexerTabProgressClass).addClass("active");var o=!!a.hasClass("js-ajax-build-index-emergency");o&&(t(".dgwt-wcas-indexing-header__title").text("[Emergency mode] Wait... Indexing in progress"),t(".dgwt-wcas-indexing-header__troubleshooting, .dgwt-wcas-indexing-header__actions, .js-dgwt-wcas-indexer-details").hide()),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_build_index",emergency:o,_wpnonce:dgwt_wcas.nonces.build_index},success:function(t){void 0!==t&&t.success&&(s.getWrapper().html(t.data.html),s.heartbeat())},complete:function(){a.removeAttr("disabled"),t(".dgwt-wcas-settings-info").removeClass("wcas-ajax-build-index-wait"),o&&window.location.reload()}})}),t(document).on("click","."+s.actionStopTriggerClass,function(e){e.preventDefault();var a=t(this);a.attr("disabled","disabled"),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_stop_build_index",_wpnonce:dgwt_wcas.nonces.stop_build_index},success:function(t){void 0!==t&&t.success&&(s.getWrapper().html(t.data.html),s.heartbeat())},complete:function(){a.removeAttr("disabled")}})})},heartbeat:function(){var s=this;setTimeout(function(){t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_build_index_heartbeat",_wpnonce:dgwt_wcas.nonces.build_index_heartbeat},success:function(e){void 0!==e&&e.success&&(s.getWrapper().html(e.data.html),e.data.loop?s.heartbeat():(t("."+s.indexerTabProgressClass).removeClass("active"),"error"===e.data.status&&t("."+s.indexerTabErrorClass).addClass("active")),!e.data.loop&&e.data.refresh_once.length>0&&(document.cookie.split(";").some(function(t){return 0===t.trim().indexOf("dgwt_wcas_refresh_once="+e.data.refresh_once)})||"none"!==t("#dgwt_wcas_troubleshooting-tab").css("display")||(document.cookie="dgwt_wcas_refresh_once="+e.data.refresh_once,location.reload())))}})},1e3)},detailsToggle:function(){var s;t(document).on("click",".js-dgwt-wcas-indexing-details-trigger",function(e){e.preventDefault();var a=t(".js-dgwt-wcas-indexer-details");a.hasClass("show")?(a.removeClass("show"),a.addClass("hide"),t(".js-dgwt-wcas-indexing__showd").addClass("show").removeClass("hide"),t(".js-dgwt-wcas-indexing__hided").addClass("hide").removeClass("show"),s=!1):(a.addClass("show"),a.removeClass("hide"),t(".js-dgwt-wcas-indexing__showd").addClass("hide").removeClass("show"),t(".js-dgwt-wcas-indexing__hided").addClass("show").removeClass("hide"),s=!0),t.ajax({url:ajaxurl,type:"post",data:{action:"dgwt_wcas_index_details_toggle",display:s}})})},init:function(){this.registerListeners(),t("."+this.indexingWrappoerClass).length>0&&this.heartbeat(),this.detailsToggle()}},n={init:function(){var s=this;t(".dgwt-wcas-selectize").length>0&&t.ajax({url:ajaxurl,data:{action:"dgwt_wcas_settings_list_custom_fields",_wpnonce:t(".dgwt-wcas-selectize").data("security")},success:function(t){void 0!==t&&void 0!==t.data&&s.initSelectize(t.data)}})},initSelectize:function(s){var e=t(".dgwt-wcas-selectize");e.length>0&&e.each(function(){var e=t(this),a=e.data("options"),o=s;if(a.length>0){a=JSON.parse('["'+decodeURI(a.replace(/&/g,'","').replace(/=/g,'","'))+'"]');var i="";a.forEach(function(t,s){if((s+1)%2==0){var e={value:t,label:i};o.push(e),i=""}i=t})}t(this).selectize({persist:!1,maxItems:null,valueField:"key",labelField:"label",searchField:["value","label"],options:o,create:function(t){return{value:t.key,label:t.label}},load:function(s,a){if(!s.length)return a();t.ajax({url:ajaxurl,data:{action:"dgwt_wcas_settings_list_custom_fields",_wpnonce:e.data("security")},error:function(){a()},success:function(t){a(t.data)}})}})})}},c={init:function(){var s=t(".js-dgwt-wcas-tooltip");s.length>0&&s.each(function(){var s=t(this)[0],e=t(this).data("tooltip-html-el"),a=t(this).data("tooltip-placement");if(e){new DgwtWcasTooltip(s,{title:t("."+e+" > .dgwt-wcas-tooltip-wrapper")[0],placement:a,trigger:"hover",html:!0})}})}},r={advClass:"js-dgwt-wcas-adv-settings",highlightClass:"dgwt-wcas-opt-highlight",transClass:"dgwt-wcas-opt-transition",init:function(){this.clickListener(),this.setStartingState()},clickListener:function(){var s=this;t(document).on("click",".js-dgwt-wcas-settings__advanced",function(){var e;e=t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--disabled")?"show":"hide",s.saveChoice(e)})},setStartingState:function(){var s=t("."+this.advClass);s.length>0&&(t(".js-dgwt-wcas-adv-settings-toggle").hasClass("woocommerce-input-toggle--enabled")?(s.show(),e.refresh()):s.hide())},saveChoice:function(s){t(".js-dgwt-wcas-settings__advanced").append('<span class="dgwt-wcas-adv-settings-saving">saving...</span>'),t.ajax({url:ajaxurl,data:{_wpnonce:dgwt_wcas.nonces.advanced_options_switch,action:"dgwt_wcas_adv_settings",adv_settings_value:s}}).done(function(s){t(".dgwt-wcas-adv-settings-saving").remove()});var e=t(".js-dgwt-wcas-adv-settings-toggle");"show"===s&&(e.removeClass("woocommerce-input-toggle--disabled"),e.addClass("woocommerce-input-toggle--enabled")),"hide"===s&&(e.removeClass("woocommerce-input-toggle--enabled"),e.addClass("woocommerce-input-toggle--disabled")),this.toggleAdvancedOpt(s)},toggleAdvancedOpt:function(s){var a=this,i=t("."+a.advClass);i.length>0&&(i.addClass(a.highlightClass),i.addClass(a.transClass),"show"===s&&i.fadeIn(500,function(){setTimeout(function(){i.removeClass(a.highlightClass),setTimeout(function(){i.removeClass(a.transClass),e.refresh(),o.setConditions()},500)},500)}),"hide"===s&&setTimeout(function(){i.removeClass(a.transClass),i.fadeOut(500,function(){i.removeClass(a.highlightClass)})},500))}},l={placeholderClass:"js-dgwt-wcas-stats-placeholder",placeholderClassLoaded:"js-dgwt-wcas-stats-placeholder-loaded",preloaderClass:"dgwt-wcas-stats-preloader",settingsGroupSel:"#dgwt_wcas_analytics",criticalSearchesLoadMoreClass:"js-dgwt-wcas-critical-searches-load-more",autocompleteWithResultsLoadMoreClass:"js-dgwt-wcas-autocomplete-with-results-load-more",searchPageWithResultsLoadMoreClass:"js-dgwt-wcas-search-page-with-results-load-more",checkPhraseStatusClass:"js-dgwt-wcas-stats-critical-check",checkPhraseStatusInitClass:"js-dgwt-wcas-stats-critical-check-init",rowLoadingClass:"dgwt-wcas-analytics-row-loading",languageSwitcherClass:"js-dgwt-wcas-analytics-lang",excludePhraseClass:"js-dgwt-wcas-analytics-exclude-phrase",checkIndexerAction:"js-dgwt-wcas-analytics-check-indexer",init:function(){void 0!==dgwt_wcas.analytics&&dgwt_wcas.analytics.enabled&&this.interfaceLoaderListener()},interfaceLoaderListener:function(){var s=this,e=t("."+s.languageSwitcherClass);t(document).on("dgwt_wcas_settings_group_active",function(e,a){t(a).length>0&&"dgwt_wcas_analytics"===a.id&&(s.isLoaded()||s.loadInterface())}),e.length>0&&e.on("change",function(){var e=t("."+s.placeholderClass);e.length>0&&(e.html(""),s.loadInterface())})},isLoaded:function(){return t("."+this.placeholderClassLoaded).length>0},showPreloader:function(){var s=t("."+this.placeholderClass),e='<img class="'+this.preloaderClass+'" src="'+dgwt_wcas.analytics.images.placeholder+'" />';s.length&&s.append(e)},loadInterface:function(){var s=this,e=t("."+s.languageSwitcherClass+" option:selected");s.showPreloader();var a={action:"dgwt_wcas_load_stats_interface",_wpnonce:dgwt_wcas.analytics.nonce.analytics_load_interface};e.length>0&&(a.lang=e.val()),t.post(ajaxurl,a,function(e){var a=t("."+s.placeholderClass);"object"==typeof e&&e.success&&a.length>0&&(a.addClass(s.placeholderClassLoaded),a.html(e.data.html),s.loadCheckCriticalSearchesListeners(),s.loadMoreListeners())})},loadCheckCriticalSearchesListeners:function(){var s=this,e=t("."+s.checkPhraseStatusClass+":not(."+s.checkPhraseStatusInitClass+")");e.on("click",function(e){e.preventDefault(),t(e.target).after('<img src="'+dgwt_wcas.images.admin_preloader_url+'" />'),s.checkPhraseStatus(t(e.target))}),e.each(function(){t(this).addClass(s.checkPhraseStatusInitClass)})},loadMoreListeners:function(){var s=this;t("."+s.criticalSearchesLoadMoreClass).on("click",function(e){e.preventDefault(),t(this).before('<img src="'+dgwt_wcas.images.admin_preloader_url+'" />'),t(this).closest("tr").addClass(s.rowLoadingClass),s.loadMoreCriticalSearches()}),t("."+s.autocompleteWithResultsLoadMoreClass).on("click",function(e){e.preventDefault(),s.loadMorePhrases("autocomplete",t(e.target))}),t("."+s.searchPageWithResultsLoadMoreClass).on("click",function(e){e.preventDefault(),s.loadMorePhrases("search-page",t(e.target))})},checkPhraseStatus:function(s){var e=this,a=t("."+e.languageSwitcherClass+" option:selected"),o={action:"dgwt_wcas_check_critical_phrase",phrase:s.closest("tr").find("td:nth-child(2)").text(),_wpnonce:dgwt_wcas.analytics.nonce.check_critical_phrase};a.length>0&&(o.lang=a.val()),t.post(ajaxurl,o,function(a){if("object"==typeof a&&a.success){var o=s.closest("tr");s.closest("td").html(a.data.html);var i=o.find("."+e.excludePhraseClass),n=o.find("."+e.checkIndexerAction);i.length>0&&i.on("click",function(s){s.preventDefault();t(s.target).closest("td").html("<p>Processing...</p>"),e.excludePhrase(o)}),n.length>0&&t("."+e.checkIndexerAction).on("click",function(s){s.preventDefault();var e=t("#dgwt_wcas_performance-tab");e.length>0&&(e[0].click(),t([document.documentElement,document.body]).animate({scrollTop:0},1e3))})}})},excludePhrase:function(s){var e=t("."+this.languageSwitcherClass+" option:selected"),a={action:"dgwt_wcas_exclude_critical_phrase",phrase:s.find("td:nth-child(2)").text(),_wpnonce:dgwt_wcas.analytics.nonce.exclude_critical_phrase};e.length>0&&(a.lang=e.val()),t.post(ajaxurl,a,function(t){"object"==typeof t&&t.success&&(s.addClass("dgwt-wcas-analytics-disable-row"),s.find("td:last-child").html(t.data))})},loadMoreCriticalSearches:function(){var s=this,e=t("."+s.languageSwitcherClass+" option:selected"),a={action:"dgwt_wcas_laod_more_critical_searches",loaded:t(".js-dgwt-wcas-critical-searches-row").length,_wpnonce:dgwt_wcas.analytics.nonce.load_more_critical_searches};e.length>0&&(a.lang=e.val()),t.post(ajaxurl,a,function(e){if("object"==typeof e&&e.success){var a=t("."+s.criticalSearchesLoadMoreClass).closest("tr");e.data.html.length>0&&a.before(e.data.html),e.data.more>0?(a.removeClass(s.rowLoadingClass),a.find("img").remove(),t("."+s.criticalSearchesLoadMoreClass+" span:first-child").text(e.data.more_label),s.loadCheckCriticalSearchesListeners()):a.remove()}})},loadMorePhrases:function(s,e){var a=t("."+this.languageSwitcherClass+" option:selected");if(e.before('<img src="'+dgwt_wcas.images.admin_preloader_url+'" />'),e.closest("tr").addClass(this.rowLoadingClass),"autocomplete"===s)var o={action:"dgwt_wcas_laod_more_autocomplete",loaded:t(".js-dgwt-wcas-autocomplete-row").length,_wpnonce:dgwt_wcas.analytics.nonce.load_more_autocomplete};else o={action:"dgwt_wcas_laod_more_search_page",loaded:t(".js-dgwt-wcas-search-page-row").length,_wpnonce:dgwt_wcas.analytics.nonce.load_more_search_page};a.length>0&&(o.lang=a.val()),t.post(ajaxurl,o,function(t){"object"==typeof t&&t.success&&e.closest("tbody").html(t.data.html)})}};window.DGWT_WCAS_SEARCH_PREVIEW={previewWrapper:{},searchWrapp:{},suggestionWrapp:{},searchInput:{},init:function(){this.previewWrapper=t(".js-dgwt-wcas-preview"),this.searchWrapp=t(".js-dgwt-wcas-search-wrapp"),this.suggestionWrapp=t(".js-dgwt-wcas-suggestions-wrapp"),this.detailsWrapp=t(".js-dgwt-wcas-details-wrapp"),this.searchInput=t(".js-dgwt-wcas-search-input"),this.onChangeHandler(),this.onColorHandler(),this.onTypeHandler(),this.disableSubmit(),this.noResultsHandler(),this.fixSizesInit()},isChecked:function(t){return!!(t.length>0&&t.is(":checked"))},isColor:function(t){return"string"==typeof t&&7===t.length&&"#"===t.charAt(0)},camelCase:function(t){for(var s=t.split("_"),e="",a=0;a<s.length;a++)e+=s[a].charAt(0).toUpperCase()+s[a].slice(1);return e},disableSubmit:function(){var s,e;t(".js-dgwt-wcas-preview-source").on("click",function(a){a.preventDefault();var o=a.pageX-100,i=a.pageY+10;void 0!==s&&(clearTimeout(s),e&&e.remove()),t("body").append('<div class="dgwt-wcas-click-alert">No interaction! This is only a preview.</div>'),(e=t(".dgwt-wcas-click-alert")).css({left:o,top:i}),t(".dgwt-wcas-preview-source").addClass("dgwt-wcas-preview-source-no-click"),s=setTimeout(function(){e.fadeOut(500,function(){t(this).remove(),t(".dgwt-wcas-preview-source").removeClass("dgwt-wcas-preview-source-no-click")})},2e3)})},noResultsHandler:function(){var s=this,e=".js-dgwt-wcas-preview .dgwt-wcas-suggestion:not(.js-dgwt-wcas-suggestion-nores)",a="input[id*='search_no_results_text']";t(document).on("focus",a,function(){t(e).addClass("dgwt-wcas-hide"),t(".js-dgwt-wcas-suggestion-nores").removeClass("dgwt-wcas-hide"),s.detailsWrapp.addClass("dgwt-wcas-hide"),s.suggestionWrapp.addClass("dgwt-wcas-preview-nores")}),t(document).on("blur",a,function(){t(e).removeClass("dgwt-wcas-hide"),t(".js-dgwt-wcas-suggestion-nores").addClass("dgwt-wcas-hide"),s.detailsWrapp.removeClass("dgwt-wcas-hide"),s.suggestionWrapp.removeClass("dgwt-wcas-preview-nores")})},onChangeHandler:function(){for(var s=this,e=["show_submit_button","max_form_width","show_product_image","show_product_sku","show_product_desc","show_product_price","show_matching_categories","show_categories_images","show_matching_tags","show_matching_brands","show_brands_images","show_matching_posts","show_matching_pages","show_grouped_results","suggestions_limit","show_details_box"],a=0;a<e.length;a++){var o="input[id='dgwt_wcas_settings\\["+e[a]+"\\]']",i="input[id^='dgwt_wcas_settings'][data-option-trigger='"+e[a]+"']",n=t(o),c=t(i);methodToCall="onChange"+s.camelCase(e[a]),"function"==typeof s[methodToCall]&&n.length>0?(s[methodToCall](n,n.val()),t(document).on("change",o,function(){methodToCall=t(this).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),methodToCall="onChange"+s.camelCase(methodToCall),"function"==typeof s[methodToCall]&&s[methodToCall](t(this),this.value)})):"function"==typeof s[methodToCall]&&c.length>0?(s[methodToCall](c,c.val()),t(document).on("change",i,function(){methodToCall=t(this).data("option-trigger"),methodToCall="onChange"+s.camelCase(methodToCall),"function"==typeof s[methodToCall]&&s[methodToCall](t(this),this.value)})):s[methodToCall]("","")}},onColorHandler:function(){for(var s=this,e=["search_icon_color","bg_input_color","text_input_color","border_input_color","bg_submit_color","text_submit_color","sug_bg_color","sug_hover_color","sug_text_color","sug_highlight_color","sug_border_color"],a=0;a<e.length;a++){var o="input[id*='"+e[a]+"']",i=t(o),n="onColor"+s.camelCase(e[a]);s[n](i,i.val()),t(document).on("change",o,function(e){n=t(this).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),n="onColor"+s.camelCase(n),s[n](t(this),this.value)})}},onColorChangeHandler:function(t,s){var e=t.attr("id").replace("]","").replace("dgwt_wcas_settings[","");this[e="onColor"+this.camelCase(e)](t,s)},onTypeHandler:function(){for(var s=this,e=["search_submit_text","search_placeholder","search_no_results_text","search_see_all_results_text"],a=0;a<e.length;a++){var o="input[id*='"+e[a]+"']",i=t(o),n="onType"+s.camelCase(e[a]);s[n](i,i.val()),t(document).on("input",o,function(e){n=t(e.target).attr("id").replace("]","").replace("dgwt_wcas_settings[",""),n="onType"+s.camelCase(n),s[n](t(e.target),this.value)})}},onChangeMaxFormWidth:function(s,e){e.length>0&&"0"!=e?(this.searchWrapp.css("max-width",e+"px"),this.suggestionWrapp.css("max-width",e+"px")):(this.searchWrapp.css("max-width","100%"),this.suggestionWrapp.css("max-width","100%")),this.onChangeShowDetailsBox(t("input[id*='show_details_box']"))},onChangeShowSubmitButton:function(s,e){var a=t(".js-dgwt-wcas-search-submit");if(this.isChecked(s)){this.searchWrapp.addClass("dgwt-wcas-has-submit"),this.searchWrapp.removeClass("dgwt-wcas-no-submit"),a.show(),t(".dgwt-wcas-sf-wrapp > .dgwt-wcas-ico-magnifier").hide();var o=t("input[id*='bg_submit_color']"),i=t("input[id*='text_submit_color']");this.onColorBgSubmitColor(o,o.val()),this.onColorTextSubmitColor(i,i.val())}else this.searchWrapp.addClass("dgwt-wcas-no-submit"),this.searchWrapp.removeClass("dgwt-wcas-has-submit"),a.hide(),t(".dgwt-wcas-sf-wrapp > .dgwt-wcas-ico-magnifier").show()},onChangeShowProductImage:function(s,e){var a=t(".js-dgwt-wcas-si"),o=t(".js-dgwt-wcas-content-wrapp");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-img"),t(".dgwt-wcas-suggestion-product > .dgwt-wcas-st").remove(),t(".dgwt-wcas-suggestion-product > .dgwt-wcas-sp").remove(),o.show(),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-img"),o.each(function(){t(this).closest(".dgwt-wcas-suggestion-product").append(t(this).html())}),o.hide(),a.hide())},onChangeShowProductSku:function(s,e){var a=t(".js-dgwt-wcas-sku");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-sku"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-sku"),a.hide())},onChangeShowProductDesc:function(s,e){var a=t(".js-dgwt-wcas-sd");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-desc"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-desc"),a.hide())},onChangeShowProductPrice:function(s,e){var a=t(".js-dgwt-wcas-sp");this.isChecked(s)?(this.suggestionWrapp.addClass("dgwt-wcas-has-price"),a.show()):(this.suggestionWrapp.removeClass("dgwt-wcas-has-price"),a.hide())},onChangeShowMatchingCategories:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-cat"),o=t(".dgwt-wcas-suggestion-cat");this.isChecked(s)?(a.show(),o.show(),o.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),o.hide(),o.addClass("js-dgwt-wcas-suggestion-hidden"));var i=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(i,i.val())},onChangeShowCategoriesImages:function(s,e){var a=t(".js-dgwt-wcas-suggestion-cat");this.isChecked(s)?a.addClass("dgwt-wcas-has-img"):a.removeClass("dgwt-wcas-has-img")},onChangeShowMatchingTags:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-tag"),o=t(".dgwt-wcas-suggestion-tag");this.isChecked(s)?(a.show(),o.show(),o.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),o.hide(),o.addClass("js-dgwt-wcas-suggestion-hidden"));var i=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(i,i.val())},onChangeShowMatchingBrands:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-brand"),o=t(".dgwt-wcas-suggestion-brand");this.isChecked(s)?(a.show(),o.show(),o.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),o.hide(),o.addClass("js-dgwt-wcas-suggestion-hidden"));var i=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(i,i.val())},onChangeShowBrandsImages:function(s,e){var a=t(".js-dgwt-wcas-suggestion-brand");this.isChecked(s)?a.addClass("dgwt-wcas-has-img"):a.removeClass("dgwt-wcas-has-img")},onChangeShowMatchingPosts:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-post"),o=t(".dgwt-wcas-suggestion-post");this.isChecked(s)?(a.show(),o.show(),o.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),o.hide(),o.addClass("js-dgwt-wcas-suggestion-hidden"));var i=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(i,i.val())},onChangeShowMatchingPages:function(s,e){var a=t(".dgwt-wcas-suggestion-headline-page"),o=t(".dgwt-wcas-suggestion-page");this.isChecked(s)?(a.show(),o.show(),o.removeClass("js-dgwt-wcas-suggestion-hidden"),this.onChangeShowGroupedResults(t("input[id*='show_grouped_results']"))):(a.hide(),o.hide(),o.addClass("js-dgwt-wcas-suggestion-hidden"));var i=t("input[id*='suggestions_limit']");this.onChangeSuggestionsLimit(i,i.val())},onChangeShowGroupedResults:function(s,e){var a=t(".dgwt-wcas-st--direct-headline"),o=t(".dgwt-wcas-suggestion-headline");this.isChecked(s)?(a.addClass("dgwt-wcas-hidden"),this.suggestionWrapp.addClass("dgwt-wcas-has-headings"),t(".dgwt-wcas-suggestion-headline").show(),this.isChecked(t("input[data-option-trigger='show_matching_categories']"))||t(".dgwt-wcas-suggestion-headline-cat").hide(),this.isChecked(t("input[data-option-trigger='show_matching_tags']"))||t(".dgwt-wcas-suggestion-headline-tag").hide(),this.isChecked(t("input[data-option-trigger='show_matching_brands']"))||t(".dgwt-wcas-suggestion-headline-brand").hide(),this.isChecked(t("input[id*='show_matching_posts']"))||t(".dgwt-wcas-suggestion-headline-post").hide(),this.isChecked(t("input[id*='show_matching_pages']"))||t(".dgwt-wcas-suggestion-headline-page").hide()):(a.removeClass("dgwt-wcas-hidden"),o.hide(),this.suggestionWrapp.removeClass("dgwt-wcas-has-headings"))},onChangeSuggestionsLimit:function(s,e){setTimeout(function(){var a=0,o=7,i=t(".dgwt-wcas-suggestion-duplicated"),n=["brand","cat","tag","post","page","product"];e.length>0&&"0"!=e&&(o=Math.abs(e)),i.length>0&&i.remove();var c=[];for(a=0;a<n.length;a++){var r=t(".dgwt-wcas-suggestion-"+n[a]+":not(.js-dgwt-wcas-suggestion-hidden)");r.length>0&&c.push(r)}var l=c.length;if(c.length>0)for(var d=o-c.length,g=c.length-1;d>0;){var h=c[g].clone();h.addClass("dgwt-wcas-suggestion-duplicated"),h.removeClass("dgwt-wcas-suggestion-selected"),c[g].after(h),l++,--g<0&&(g=c.length-1),d--}l>o&&s.val(l)},10)},onChangeShowDetailsBox:function(s,e){var a=this;a.isChecked(s)?(a.detailsWrapp.show(),a.searchWrapp.addClass("dgwt-wcas-is-detail-box"),a.previewWrapper.addClass("dgwt-wcas-is-details"),a.previewWrapper.addClass("dgwt-wcas-details-right"),setTimeout(function(){if(t(".dgwt-wcas-suggestion-product:not(.dgwt-wcas-suggestion-duplicated)").addClass("dgwt-wcas-suggestion-selected"),a.searchWrapp.width()>=550){a.previewWrapper.addClass("dgwt-wcas-full-width");var s=getComputedStyle(a.searchWrapp[0]).width;(s=Math.round(parseFloat(s.replace("px",""))))%2==0?(a.suggestionWrapp.css("width",Math.round(s/2)),a.detailsWrapp.css("width",Math.round(s/2))):(a.suggestionWrapp.css("width",Math.floor(s/2)),a.detailsWrapp.css("width",Math.ceil(s/2)))}else a.suggestionWrapp.width(a.searchWrapp.width())},10)):(a.detailsWrapp.hide(),a.searchWrapp.removeClass("dgwt-wcas-is-detail-box"),a.previewWrapper.removeClass("dgwt-wcas-is-details"),a.previewWrapper.removeClass("dgwt-wcas-details-right"),a.previewWrapper.removeClass("dgwt-wcas-full-width"),t(".dgwt-wcas-suggestion-product").removeClass("dgwt-wcas-suggestion-selected"),a.suggestionWrapp.css("width",""),a.detailsWrapp.css("width",""))},onColorSearchIconColor:function(t,s){},onColorBgInputColor:function(t,s){this.isColor(s)?this.searchInput.css("background-color",s):this.searchInput.css("background-color","")},onColorTextInputColor:function(s,e){var a="dgwt-wcas-preview-placeholder-style";if(this.isColor(e)){var o='<style class="'+a+'">';o+=".dgwt-wcas-search-input::placeholder{opacity: 0.3; color:"+e+"!important;}",o+=".dgwt-wcas-search-input::-webkit-input-placeholder{opacity: 0.3; color:"+e+"!important;}",o+=".dgwt-wcas-search-input:-moz-placeholder{opacity: 0.3; color:"+e+"!important;}",o+=".dgwt-wcas-search-input::-moz-placeholder{opacity: 0.3; color:"+e+"!important;}",o+=".dgwt-wcas-search-input:-ms-input-placeholder{opacity: 0.3; color:"+e+"!important;}",o+=".dgwt-wcas-ico-magnifier path {fill:"+e+"}",o+="</style>",t("head").append(o),this.searchInput.css("color",e)}else{this.searchInput.css("color","");var i=t("."+a);i.length>0&&i.remove()}},onColorBorderInputColor:function(t,s){this.isColor(s)?this.searchInput.css("border-color",s):this.searchInput.css("border-color","")},onColorBgSubmitColor:function(s,e){if(this.isChecked(t("input[id*='show_submit_button']"))&&this.isColor(e)){var a='<style class="dgwt-wcas-preview-submit-style">';a+=".dgwt-wcas-search-submit::before{border-color: transparent "+e+"!important;}",a+=".dgwt-wcas-search-submit:hover::before{border-right-color: "+e+"!important;}",a+=".dgwt-wcas-search-submit:focus::before{border-right-color: "+e+"!important;}",a+=".dgwt-wcas-search-submit{background-color: "+e+"!important;}",a+=".dgwt-wcas-om-bar .dgwt-wcas-om-return{background-color: "+e+"!important;}",a+="</style>",t("head").append(a)}else{var o=t(".dgwt-wcas-preview-submit-style");o.length>0&&o.remove()}},onColorTextSubmitColor:function(s,e){this.isChecked(t("input[id*='show_submit_button']"))&&this.isColor(e)?(t(".js-dgwt-wcas-search-submit").css("color",e),t(".dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier path").css("fill",e)):(this.searchInput.css("background-color",""),t(".js-dgwt-wcas-search-submit").css("color",""),t(".dgwt-wcas-search-submit .dgwt-wcas-ico-magnifier path").css("fill",""))},onColorSugBgColor:function(s,e){var a="dgwt-wcas-preview-sugbgcol-style";if(this.isColor(e)){var o='<style class="'+a+'">';o+=".dgwt-wcas-suggestions-wrapp,",o+=".dgwt-wcas-details-wrapp",o+="{background-color: "+e+"!important;}",o+="</style>",t("head").append(o)}else{var i=t("."+a);i.length>0&&i.remove()}},onColorSugHoverColor:function(s,e){this.isColor(e)?setTimeout(function(){t(".dgwt-wcas-suggestion-selected").css("background-color",e)},50):t(".dgwt-wcas-suggestion-selected").css("background-color","")},onColorSugTextColor:function(s,e){var a="dgwt-wcas-preview-sugtextcol-style";if(this.isColor(e)){var o='<style class="'+a+'">';o+=".dgwt-wcas-suggestions-wrapp *,",o+=".dgwt-wcas-details-wrapp *,",o+=".dgwt-wcas-sd,",o+=".dgwt-wcas-suggestion *",o+="{color: "+e+"!important;}",o+="</style>",t("head").append(o)}else{var i=t("."+a);i.length>0&&i.remove()}},onColorSugHighlightColor:function(s,e){var a="dgwt-wcas-preview-sughighlight-style";if(this.isColor(e)){var o='<style class="'+a+'">';o+=".dgwt-wcas-st strong,",o+=".dgwt-wcas-sd strong",o+="{color: "+e+"!important;}",o+="</style>",t("head").append(o)}else{var i=t("."+a);i.length>0&&i.remove()}},onColorSugBorderColor:function(s,e){var a="dgwt-wcas-preview-sugborder-style";if(this.isColor(e)){var o='<style class="'+a+'">';o+=".dgwt-wcas-suggestions-wrapp,",o+=".dgwt-wcas-details-wrapp,",o+=".dgwt-wcas-suggestion,",o+=".dgwt-wcas-datails-title,",o+=".dgwt-wcas-details-more-products",o+="{border-color: "+e+"!important;}",o+="</style>",t("head").append(o)}else{var i=t("."+a);i.length>0&&i.remove()}},onTypeSearchSubmitText:function(s,e){var a=t(".js-dgwt-wcas-search-submit-l"),o=t(".js-dgwt-wcas-search-submit-m");e.length>0?(a.text(e),a.show(),o.hide()):(a.text(""),a.hide(),o.show())},onTypeSearchPlaceholder:function(t,s){0==s.length&&(s=dgwt_wcas.labels.search_placeholder),this.searchInput.attr("placeholder",s)},onTypeSearchNoResultsText:function(s,e){0==e.length&&(e=dgwt_wcas.labels.no_results),t(".js-dgwt-wcas-suggestion-nores span").text(e)},onTypeSearchSeeAllResultsText:function(s,e){0==e.length&&(e=dgwt_wcas.labels.show_more),t(".js-dgwt-wcas-st-more-label").text(e)},fixSizesInit:function(){var s=this;t(document).on("click","#dgwt_wcas_autocomplete-tab",function(){s.onChangeShowDetailsBox(t("input[id*='show_details_box']"))})}};var d={settingsTab:"#dgwt_wcas_troubleshooting-tab",noIssuesClass:".js-dgwt-wcas-troubleshooting-no-issues",counterClass:".js-dgwt-wcas-troubleshooting-count",issuesListClass:".js-dgwt-wcas-troubleshooting-issues",progressBar:".dgwt-wcas-troubleshooting-wrapper .progress_bar",progressBarInner:".dgwt-wcas-troubleshooting-wrapper .progress-bar-inner",resetButtonName:"dgwt-wcas-reset-async-tests",fixOutofstockButtonName:"dgwt-wcas-fix-out-of-stock-relationships",maintenanceAnalyticsButtonName:"dgwt-wcas-maintenance-analytics",switchAlternativeEndpoint:"dgwt-wcas-switch-alternative-endpoint",dismissElementorTemplateButtonName:"dgwt-wcas-dismiss-elementor-template",init:function(){var s=this;if(void 0===dgwt_wcas.troubleshooting)return;const e=dgwt_wcas.troubleshooting.tests.issues.critical+dgwt_wcas.troubleshooting.tests.issues.recommended;e>0&&(t(s.counterClass).text(e).addClass("active"),t(s.settingsTab).addClass("enabled")),dgwt_wcas.troubleshooting.tests.results_async.length>0&&t.each(dgwt_wcas.troubleshooting.tests.results_async,function(){s.appendIssue(this,!1)}),dgwt_wcas.troubleshooting.tests.direct.length>0&&t.each(dgwt_wcas.troubleshooting.tests.direct,function(){s.appendIssue(this,!1)}),dgwt_wcas.troubleshooting.tests.async.length>0&&s.maybeRunNextAsyncTest(),t(document).on("click",'input[name="'+s.resetButtonName+'"]',function(e){t('input[name="'+s.resetButtonName+'"]').attr("disabled","disabled");var a={action:"dgwt_wcas_troubleshooting_reset_async_tests",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_reset_async_tests};return t.post(ajaxurl,a,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.fixOutofstockButtonName+'"]',function(e){t('input[name="'+s.fixOutofstockButtonName+'"]').attr("disabled","disabled").next().addClass("loading");var a={action:"dgwt_wcas_troubleshooting_fix_outofstock",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_fix_outofstock};return t.post(ajaxurl,a,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.maintenanceAnalyticsButtonName+'"]',function(e){t('input[name="'+s.maintenanceAnalyticsButtonName+'"]').attr("disabled","disabled").next().addClass("loading");var a={action:"dgwt_wcas_troubleshooting_maintenance_analytics",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_maintenance_analytics};return t.post(ajaxurl,a,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.switchAlternativeEndpoint+'"]',function(e){var a=1===parseInt(t(this).data("switch"))?"enable":"disable";t('input[name="'+s.switchAlternativeEndpoint+'"]').attr("disabled","disabled").next().addClass("loading");var o={action:"dgwt_wcas_troubleshooting_switch_alternative_endpoint",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_switch_alternative_endpoint,switch:a};return t.post(ajaxurl,o,function(){location.reload()}),!1}),t(document).on("click",'input[name="'+s.dismissElementorTemplateButtonName+'"]',function(e){t('input[name="'+s.dismissElementorTemplateButtonName+'"]').attr("disabled","disabled");var a={action:"dgwt_wcas_troubleshooting_dismiss_elementor_template",_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_dismiss_elementor_template};return t.post(ajaxurl,a,function(){location.reload()}),!1})},appendIssue:function(s,e){var a,o=wp.template("dgwt-wcas-troubleshooting-issue"),i=t(this.issuesListClass+"-"+s.status);"good"!==s.status&&(t(this.noIssuesClass).hide(),e&&dgwt_wcas.troubleshooting.tests.issues[s.status]++,(a=dgwt_wcas.troubleshooting.tests.issues.critical+dgwt_wcas.troubleshooting.tests.issues.recommended)>0&&(t(this.counterClass).text(a).addClass("active"),t(this.settingsTab).addClass("enabled")),t(i).append(o(s)))},maybeRunNextAsyncTest:function(){var s=this;dgwt_wcas.troubleshooting.tests.async.length>0&&t.each(dgwt_wcas.troubleshooting.tests.async,function(){var e={action:"dgwt_wcas_troubleshooting_test",test:this.test,_wpnonce:dgwt_wcas.troubleshooting.nonce.troubleshooting_async_test};return!!this.completed||(this.completed=!0,t(s.progressBar).show(),t.post(ajaxurl,e,function(t){t.success&&s.appendIssue(t.data,!0),s.maybeRunNextAsyncTest()}),!1)}),s.recalculateProgression()},recalculateProgression:function(){var s=this,e=dgwt_wcas.troubleshooting.tests.async.length,a=0;t.each(dgwt_wcas.troubleshooting.tests.async,function(){this.completed&&a++});var o=Math.ceil(a/e*100);t(s.progressBarInner).css("width",o+"%"),100===o&&setTimeout(function(){t(s.progressBar).slideUp()},2e3)}},g={moveOptionClass:".js-dgwt-wcas-move-option",init:function(){var s=t(this.moveOptionClass);s.length>0&&t.each(s,function(s,e){var a=t("#"+t(e).data("move-dest").replace(/(:|\.|\[|\])/g,"\\$1"));a.length>0&&(t(e).closest("tr").hasClass("dgwt-wcas-premium-only")&&t(e).addClass("dgwt-wcas-premium-only"),t(e).clone().appendTo(a.closest("td fieldset"))),t(e).closest("tr").remove()})}},h=function(){if("undefined"!=typeof Vue){Vue.component("dgwt-wcas-rule",{template:"#dgwt-wcas-settings-filters-rules-rule",components:{Selectize:Selectize},props:["nonce","rule","rules","index"],data:()=>({isSelectActive:!0}),computed:{ruleValue(t){return this.rule.group}},watch:{rule:{handler:function(){this.$emit("update:rule",this.index)},deep:!0},ruleValue(){var t=this;this.$emit("change:group",this.index),this.isSelectActive=!1,setTimeout(function(){t.isSelectActive=!0},0)}},methods:{deleteRule(){this.$emit("delete:rule",this.index)},getSelectizeSettings(s){var e=void 0===dgwt_wcas_filters_rules_selected_options[s]?[]:dgwt_wcas_filters_rules_selected_options[s];return function({nonce:s,options:e,type:a}){return{persist:!1,maxItems:null,valueField:"key",labelField:"label",searchField:["label"],options:e,preload:!0,create:function(t){return{value:t.key,label:t.label}},load:function(e,o){t.ajax({url:ajaxurl,method:"POST",data:{action:"dgwt_wcas_settings_search_terms",query:e,type:a,_wpnonce:s},error:function(){o()},success:function(t){o(t.data)}})}}}({nonce:this.nonce,type:s,options:e})}}});new Vue({el:"#dgwt-wcas-settings-filters-rules",components:{Selectize:Selectize},data:()=>({rules:[]}),mounted(){try{const s=JSON.parse(this.$refs["dgwt-wcas-settings-filters-rules-ref"].value);t.each(s,function(t,e){s[t].key=Math.random()}),this.rules=s}catch(t){}this.updateInput()},methods:{addRule(){this.rules.push({group:"",values:[],key:Math.random()}),this.updateInput()},changeGroup(t){this.rules[t].values=[],this.updateInput()},deleteRule(t){this.rules=this.rules.filter(function(s,e){return e!==t}),this.updateInput()},updateInput(){const t=JSON.parse(JSON.stringify(this.rules));this.$refs["dgwt-wcas-settings-filters-rules-ref"].value=JSON.stringify(t.map(function(t){return t.key,delete t.key,t}))}}})}};t(document).ready(function(){var w,u;(w=t(".js-dgwt-wcas-settings-margin-nob")).length>0&&w.each(function(){var s=t(this).find("td .dgwt-wcas-fieldset");if(s.length>0){var e=t(this).prev(".js-dgwt-wcas-settings-margin");if(e.length>0){var a=t(this).attr("class").split(/\s+/),o="";t.each(a,function(t,s){-1!==s.indexOf("js-dgwt-wcas-cbtgroup-")&&(o=s)});var i=s.clone(!0,!0);i.addClass("dgwt-wcas-settings-margin-nob"),o&&i.addClass(o),i.appendTo(e.find("td")),t(this).remove()}}}),s.init(),e.init(),o.init(),(u=t(".js-dgwt-wcas-sgs-autocolspan")).length>0&&u.find("td").attr("colspan",2),i.init(),n.init(),c.init(),r.init(),d.init(),g.init(),a.init(),l.init(),h(),window.DGWT_WCAS_SEARCH_PREVIEW.init()})}(jQuery);
assets/js/search.js CHANGED
@@ -130,6 +130,17 @@
130
 
131
  }, wait);
132
  },
 
 
 
 
 
 
 
 
 
 
 
133
  getActiveInstance: function () {
134
  var $el = $('.dgwt-wcas-search-wrapp.dgwt-wcas-active'),
135
  instance;
@@ -436,12 +447,6 @@
436
  registerEventsSearchBar: function () {
437
  var that = this;
438
 
439
- // Click close icon
440
- $(document).on('click.autocomplete', '.' + that.options.closeTrigger, function () {
441
- var that = utils.getActiveInstance();
442
- that.close(true);
443
- });
444
-
445
  // Extra tasks on submit
446
  that.el.closest('.' + that.options.formClass).on('submit.autocomplete', function (e) {
447
 
@@ -918,23 +923,10 @@
918
  $el.val('');
919
  $wrapp.removeClass(that.classes.inputFilled);
920
 
921
- if ($wrapp.hasClass('js-dgwt-wcas-layout-icon')) {
922
- that.disableOverlayDarkened();
923
- }
924
-
925
  if (focus) {
926
  $el.focus();
927
  }
928
  },
929
- disable: function () {
930
- var that = this;
931
- that.disabled = true;
932
- clearTimeout(that.onChangeTimeout);
933
- that.abortAjax();
934
- },
935
- enable: function () {
936
- this.disabled = false;
937
- },
938
  fixPosition: function () {
939
  var that = this,
940
  offset = that.getFormOffset(),
@@ -1185,22 +1177,41 @@
1185
  return true;
1186
  },
1187
  onKeyPress: function (e) {
1188
- var that = this;
 
1189
 
1190
  // If suggestions are hidden and user presses arrow down, display suggestions:
1191
- if (!that.disabled && !that.visible && e.keyCode === keys.DOWN && that.currentValue) {
1192
  that.suggest();
1193
  return;
1194
  }
1195
 
1196
- if (that.disabled || !that.visible) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1197
  return;
1198
  }
1199
 
1200
  switch (e.keyCode) {
1201
  case keys.ESC:
1202
- that.el.val(that.currentValue);
1203
- that.hide();
1204
  break;
1205
  case keys.RIGHT:
1206
  if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
@@ -1209,18 +1220,6 @@
1209
  }
1210
  return;
1211
  case keys.TAB:
1212
- if (that.hint && that.options.onHint) {
1213
- that.selectHint();
1214
- return;
1215
- }
1216
- if (that.selectedIndex === -1) {
1217
- that.hide();
1218
- return;
1219
- }
1220
- that.select(that.selectedIndex);
1221
- if (that.options.tabDisabled === false) {
1222
- return;
1223
- }
1224
  break;
1225
  case keys.RETURN:
1226
 
@@ -1251,10 +1250,6 @@
1251
  onKeyUp: function (e) {
1252
  var that = this;
1253
 
1254
- if (that.disabled) {
1255
- return;
1256
- }
1257
-
1258
  switch (e.keyCode) {
1259
  case keys.UP:
1260
  case keys.DOWN:
@@ -1370,7 +1365,8 @@
1370
  searchForm = that.getFormWrapper(),
1371
  params,
1372
  cacheKey,
1373
- ajaxSettings;
 
1374
 
1375
  options.params[options.paramName] = q;
1376
 
@@ -1436,6 +1432,12 @@
1436
 
1437
 
1438
  that.currentRequest = $.ajax(ajaxSettings).done(function (data) {
 
 
 
 
 
 
1439
  var result;
1440
  that.currentRequest = null;
1441
  result = that.options.transformResult(data, q);
@@ -1909,12 +1911,19 @@
1909
  $form.css({'left': formLeftValue + 'px'});
1910
 
1911
  },
 
 
 
 
 
 
 
 
1912
  hideIconModeSearch: function () {
 
1913
 
1914
- var $openedElements = $('.dgwt-wcas-layout-icon-open');
1915
-
1916
- if ($openedElements.length > 0) {
1917
- $openedElements.removeClass('dgwt-wcas-layout-icon-open');
1918
  }
1919
  },
1920
  hideAfterClickOutsideListener: function () {
@@ -2601,6 +2610,13 @@
2601
  onSelectCallback.call(that.element, suggestion);
2602
  }
2603
  },
 
 
 
 
 
 
 
2604
  getValue: function (value) {
2605
  var that = this,
2606
  delimiter = that.options.delimiter,
@@ -2866,6 +2882,13 @@
2866
  iconBody = typeof dgwt_wcas.close_icon != 'undefined' ? dgwt_wcas.close_icon : '',
2867
  $actionsEl = that.getFormWrapper().find('.' + that.options.preloaderClass);
2868
 
 
 
 
 
 
 
 
2869
  $actionsEl.addClass(that.options.closeTrigger);
2870
  $actionsEl.html(iconBody);
2871
 
@@ -2878,6 +2901,8 @@
2878
  $btn.removeClass(that.options.closeTrigger);
2879
  $btn.html('');
2880
  }
 
 
2881
  },
2882
  elementOrParentIsFixed: function ($element) {
2883
 
@@ -3351,4 +3376,29 @@
3351
  });
3352
  }());
3353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3354
  }));
130
 
131
  }, wait);
132
  },
133
+ isTextSelected: function () {
134
+ var selected = false,
135
+ selObj = document.getSelection();
136
+
137
+ if (typeof selObj == 'object') {
138
+ if (selObj.toString().length > 0) {
139
+ selected = true;
140
+ }
141
+ }
142
+ return selected
143
+ },
144
  getActiveInstance: function () {
145
  var $el = $('.dgwt-wcas-search-wrapp.dgwt-wcas-active'),
146
  instance;
447
  registerEventsSearchBar: function () {
448
  var that = this;
449
 
 
 
 
 
 
 
450
  // Extra tasks on submit
451
  that.el.closest('.' + that.options.formClass).on('submit.autocomplete', function (e) {
452
 
923
  $el.val('');
924
  $wrapp.removeClass(that.classes.inputFilled);
925
 
 
 
 
 
926
  if (focus) {
927
  $el.focus();
928
  }
929
  },
 
 
 
 
 
 
 
 
 
930
  fixPosition: function () {
931
  var that = this,
932
  offset = that.getFormOffset(),
1177
  return true;
1178
  },
1179
  onKeyPress: function (e) {
1180
+ var that = this,
1181
+ $wrapp = that.getFormWrapper();
1182
 
1183
  // If suggestions are hidden and user presses arrow down, display suggestions:
1184
+ if (!that.visible && e.keyCode === keys.DOWN && that.currentValue) {
1185
  that.suggest();
1186
  return;
1187
  }
1188
 
1189
+ if (!that.visible) {
1190
+ // Hide the search icon mode on ESC when there are no suggestions
1191
+ if (e.keyCode === keys.ESC && $wrapp.hasClass('dgwt-wcas-layout-icon-open')) {
1192
+ that.hideIconModeSearch();
1193
+ }
1194
+
1195
+ // Hide the darkened overlay on ESC when there are no suggestions
1196
+ if (e.keyCode === keys.ESC && that.isMountedOverlayDarkened()) {
1197
+ that.disableOverlayDarkened();
1198
+ that.el.blur();
1199
+ }
1200
+
1201
+ return;
1202
+ }
1203
+
1204
+ // Open selected suggestion in new tab
1205
+ if ((e.ctrlKey || e.metaKey) && e.keyCode === keys.RETURN) {
1206
+ if (that.selectedIndex > -1) {
1207
+ that.openInNewTab(that.selectedIndex);
1208
+ }
1209
  return;
1210
  }
1211
 
1212
  switch (e.keyCode) {
1213
  case keys.ESC:
1214
+ that.close();
 
1215
  break;
1216
  case keys.RIGHT:
1217
  if (that.hint && that.options.onHint && that.isCursorAtEnd()) {
1220
  }
1221
  return;
1222
  case keys.TAB:
 
 
 
 
 
 
 
 
 
 
 
 
1223
  break;
1224
  case keys.RETURN:
1225
 
1250
  onKeyUp: function (e) {
1251
  var that = this;
1252
 
 
 
 
 
1253
  switch (e.keyCode) {
1254
  case keys.UP:
1255
  case keys.DOWN:
1365
  searchForm = that.getFormWrapper(),
1366
  params,
1367
  cacheKey,
1368
+ ajaxSettings,
1369
+ iconSearchActive = that.isActiveIconModeSearch();
1370
 
1371
  options.params[options.paramName] = q;
1372
 
1432
 
1433
 
1434
  that.currentRequest = $.ajax(ajaxSettings).done(function (data) {
1435
+
1436
+ // Interrupt if the icon mode was closed in the meantime
1437
+ if (iconSearchActive && !that.isActiveIconModeSearch()) {
1438
+ return;
1439
+ }
1440
+
1441
  var result;
1442
  that.currentRequest = null;
1443
  result = that.options.transformResult(data, q);
1911
  $form.css({'left': formLeftValue + 'px'});
1912
 
1913
  },
1914
+ isActiveIconModeSearch: function () {
1915
+ var active = false,
1916
+ $openedElements = $('.dgwt-wcas-layout-icon-open');
1917
+ if ($openedElements.length > 0) {
1918
+ active = true;
1919
+ }
1920
+ return active;
1921
+ },
1922
  hideIconModeSearch: function () {
1923
+ var that = this;
1924
 
1925
+ if (that.isActiveIconModeSearch() && !utils.isTextSelected()) {
1926
+ $('.dgwt-wcas-layout-icon-open').removeClass('dgwt-wcas-layout-icon-open');
 
 
1927
  }
1928
  },
1929
  hideAfterClickOutsideListener: function () {
2610
  onSelectCallback.call(that.element, suggestion);
2611
  }
2612
  },
2613
+ openInNewTab: function (index) {
2614
+ var that = this,
2615
+ suggestion = that.suggestions[index];
2616
+ if (suggestion.url.length > 0) {
2617
+ window.open(suggestion.url, '_blank').focus();
2618
+ }
2619
+ },
2620
  getValue: function (value) {
2621
  var that = this,
2622
  delimiter = that.options.delimiter,
2882
  iconBody = typeof dgwt_wcas.close_icon != 'undefined' ? dgwt_wcas.close_icon : '',
2883
  $actionsEl = that.getFormWrapper().find('.' + that.options.preloaderClass);
2884
 
2885
+ // Click close icon
2886
+ if (!$actionsEl.hasClass(that.options.closeTrigger)) {
2887
+ $actionsEl.on('click.autocomplete', function () {
2888
+ that.close(true);
2889
+ });
2890
+ }
2891
+
2892
  $actionsEl.addClass(that.options.closeTrigger);
2893
  $actionsEl.html(iconBody);
2894
 
2901
  $btn.removeClass(that.options.closeTrigger);
2902
  $btn.html('');
2903
  }
2904
+
2905
+ $btn.off('click.autocomplete');
2906
  },
2907
  elementOrParentIsFixed: function ($element) {
2908
 
3376
  });
3377
  }());
3378
 
3379
+ /**
3380
+ * Fix Elementor popups
3381
+ * Reinit the search bars after loading Elementor popup
3382
+ */
3383
+ $(document).ready(function () {
3384
+ if ($('[href^="#elementor-action%3Aaction%3Dpopup%3Aopen"]').length > 0) {
3385
+ $(document).on('elementor/popup/show', () => {
3386
+ var $inputs = $('.elementor-popup-modal .dgwt-wcas-search-input');
3387
+
3388
+ if ($inputs.length > 0) {
3389
+ $inputs.each(function () {
3390
+ var $el = $(this);
3391
+
3392
+ setTimeout(function () {
3393
+ if (typeof $el.data('autocomplete') == 'object') {
3394
+ $el.data('autocomplete').dispose();
3395
+ }
3396
+ $el.dgwtWcasAutocomplete(window.dgwt_wcas.config);
3397
+ }, 500);
3398
+ });
3399
+ }
3400
+ });
3401
+ }
3402
+ });
3403
+
3404
  }));
assets/js/search.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports&&"function"==typeof require?e(require("jquery")):e(jQuery)}(function(e){"use strict";var t={escapeRegExChars:function(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(e){var t=document.createElement("div");return t.className=e,t.style.position="absolute",t.style.display="none",t.setAttribute("unselectable","on"),t},highlight:function(e,s){if(dgwt_wcas.is_premium){var i,o=s.split(/ /),a=!1,n="";if(o)for(n=o[o.length-1],o=o.sort(function(e,t){return t.length-e.length}),i=0;i<o.length;i++)if(o[i]&&o[i].length>=1){var r=o[i].replace(/[\^\@]/g,"");if(r.length>0){if(1===r.trim().length&&o[i]!==n)var l="((\\s|^)"+t.escapeRegExChars(r.trim())+"\\s)";else l=1===r.trim().length&&o[i]===n?"((\\s|^)"+t.escapeRegExChars(r.trim())+")":"("+t.escapeRegExChars(r.trim())+")";e=e.replace(new RegExp(l,"gi"),"^^$1@@"),a=!0}}a&&(e=(e=e.replace(/\^\^/g,"<strong>")).replace(/@@/g,"</strong>"))}else l="("+t.escapeRegExChars(s)+")",e=e.replace(new RegExp(l,"gi"),"<strong>$1</strong>");return e},debounce:function(e,t){var i,o=(new Date).getUTCMilliseconds();if(0===s.id.length)return s.id=o,void e();s.id=o,i=setTimeout(function(){o===s.id?(e(),s.id=""):clearTimeout(i)},t)},mouseHoverDebounce:function(t,s,i){var o;o=setTimeout(function(){e(s+":hover").length>0?t():clearTimeout(o)},i)},getActiveInstance:function(){var t,s=e(".dgwt-wcas-search-wrapp.dgwt-wcas-active");return s.length>0&&s.each(function(){var s=e(this).find(".dgwt-wcas-search-input");if("object"==typeof s.data("autocomplete"))return t=s.data("autocomplete"),!1}),t},hashCode:function(e){for(var t=0,s=e.length;s>0;)t=(t<<5)-t+e.charCodeAt(--s)|0;return t<0?-1*t:t}},s={id:"",callback:null,ajaxSettings:null,object:null},i=27,o=9,a=13,n=38,r=39,l=40,c=e.noop;function d(t,s){this.element=t,this.el=e(t),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=e.extend(!0,{},d.defaults,s),this.classes={selected:"dgwt-wcas-suggestion-selected",suggestion:"dgwt-wcas-suggestion",suggestionsContainerOrientTop:"dgwt-wcas-suggestions-wrapp--top",inputFilled:"dgwt-wcas-search-filled",darkenOverlayMounted:"js-dgwt-wcas-search-darkoverl-mounted"},this.hint=null,this.hintValue="",this.selection=null,this.overlayMobileState="off",this.overlayDarkenedState="off",this.isMouseDownOnSearchElements=!1,this.initialize(),this.setOptions(s)}d.utils=t,e.DgwtWcasAutocompleteSearch=d,d.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,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,dpusbBreakpoint:550,deferRequestBy:0,params:{},formatResult:function(e,s,i,o){if(!s)return e;i&&(e=t.highlight(e,s));if(!o.convertHtml)return e;return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/&lt;sup/g,"<sup").replace(/&lt;\/sup/g,"</sup").replace(/sup&gt;/g,"sup>").replace(/&lt;(\/?(strong|b|br|span))&gt;/g,"<$1>").replace(/&lt;(strong|span)\s+class\s*=\s*&quot;([^&]+)&quot;&gt;/g,'<$1 class="$2">')},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",darkenedOverlayClass:"dgwt-wcas-darkened-overlay",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(e,t,s){return-1!==e.value.toLowerCase().indexOf(s)},paramName:"query",transformResult:function(e){return"string"==typeof e?JSON.parse(e):e},noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1,positionFixed:!1,debounceWaitMs:400,sendGAEvents:!0,enableGASiteSearchModule:!1,showProductVendor:!1,disableHits:!1,disableSubmit:!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(),s.positionOverlayDarkened()},e(window).on("resize.autocomplete",function(){var e=t.getActiveInstance();void 0!==e&&e.fixPositionCapture()});var i=e(window).width();e(window).on("resize.autocomplete",function(){var t=e(window).width();t!=i&&(s.toggleMobileMode(),i=t)}),s.isMobileMode()&&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(t){var s=this.options;0==e("."+s.containerClass).length?(this.suggestionsContainer=e(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")):this.suggestionsContainer=e("."+this.options.containerClass),this.canShowDetailsBox()&&(0==e("."+s.containerDetailsClass).length?(this.detailsContainer=e(d.utils.createNode(s.containerDetailsClass)),this.detailsContainer.appendTo(s.appendTo||"body"),this.detailsContainer.addClass("woocommerce")):this.detailsContainer=e("."+s.containerDetailsClass))},registerEventsSearchBar:function(){var s=this;e(document).on("click.autocomplete","."+s.options.closeTrigger,function(){t.getActiveInstance().close(!0)}),s.el.closest("."+s.options.formClass).on("submit.autocomplete",function(t){if(s.options.disableSubmit)return t.preventDefault(),!1;var i=e(this).find("."+s.options.searchInputClass);if(i.length&&0===i.val().length)return t.preventDefault(),!1;s.suggestions.length>0&&e.each(s.suggestions,function(e,i){if(void 0!==i.type&&"product_variation"==i.type)return s.select(e),t.preventDefault(),!1}),s.disableOverlayMobile()}),"complete"===document.readyState?s.positionPreloader():e(window).on("load",function(){s.positionPreloader()}),s.el.on("keydown.autocomplete",function(e){s.onKeyPress(e)}),s.el.on("keyup.autocomplete",function(e){s.onKeyUp(e)}),s.el.on("blur.autocomplete",function(){s.onBlur()}),s.el.on("focus.autocomplete",function(e){s.onFocus(e)}),s.el.on("change.autocomplete",function(e){s.onKeyUp(e)}),s.el.on("input.autocomplete",function(e){s.onKeyUp(e)})},registerEventsSuggestions:function(){var s="."+this.classes.suggestion;if(!this.getSuggestionsContainer().hasClass("js-dgwt-wcas-initialized")){e(document).on("mouseenter.autocomplete",s,function(){var s=t.getActiveInstance();if(void 0!==s){var i=e(this).data("index"),o='.dgwt-wcas-suggestion[data-index="'+i+'"]',a=s.canShowDetailsBox()?100:1;s.selectedIndex!=i&&t.mouseHoverDebounce(function(){s.selectedIndex!==i&&(s.latestActivateSource="mouse",s.getDetails(s.suggestions[i]),s.activate(i))},o,a)}});var i=!1;e(document).on("click.autocomplete",s,function(s){if(i)s.preventDefault();else{var o=t.getActiveInstance();o.actionTriggerSource="click",i=!0,setTimeout(function(){i=!1},500),void 0!==s.ctrlKey&&!1!==s.ctrlKey||(o.select(e(this).data("index")),s.preventDefault())}}),e(document).on("mousedown.autocomplete",s,function(s){var o=this;0===s.button&&setTimeout(function(){i||t.getActiveInstance().select(e(o).data("index"))},250)}),e("."+this.options.containerClass).on("mousedown.autocomplete",function(e){t.getActiveInstance().isMouseDownOnSearchElements=!0})}},registerEventsDetailsPanel:function(){var s=this.getDetailsContainer();this.canShowDetailsBox()&&!s.hasClass("js-dgwt-wcas-initialized")&&(e(document).on("change.autocomplete",'[name="js-dgwt-wcas-quantity"]',function(t){e(this).closest(".js-dgwt-wcas-pd-addtc").find("[data-quantity]").attr("data-quantity",e(this).val())}),e("."+this.options.containerDetailsClass).on("mousedown.autocomplete",function(e){t.getActiveInstance().isMouseDownOnSearchElements=!0}))},registerIconHandler:function(){var t=this,s=t.getFormWrapper(),i=s.find("."+t.options.formClass);s.on("click.autocomplete",".js-dgwt-wcas-search-icon-handler",function(e){var o=s.find("."+t.options.searchInputClass);if(s.hasClass("dgwt-wcas-layout-icon-open"))t.hide(),i.hide(!0),s.removeClass("dgwt-wcas-layout-icon-open");else{var a=s.find(".dgwt-wcas-search-icon-arrow");i.hide(),a.hide(),s.addClass("dgwt-wcas-layout-icon-open"),t.positionIconSearchMode(s),i.fadeIn(200,function(){a.show(),t.positionPreloader(s),o.focus()})}}),0==e(".js-dgwt-wcas-initialized").length&&e(".js-dgwt-wcas-search-icon-handler").length>0&&e(document).on("click.autocomplete",function(s){if(e(".dgwt-wcas-layout-icon-open").length){var i=e(s.target);i.closest("."+t.options.searchFormClass).length>0||i.closest("."+t.options.containerClass).length>0||i.closest("."+t.options.containerDetailsClass).length>0||t.hideIconModeSearch()}});var o=e(window).width();e(window).on("resize.autocomplete",function(){var s=e(window).width();s!=o&&(t.applyFlexibleMode(),o=s)}),"complete"==document.readyState?t.applyFlexibleMode():e(window).on("load.autocomplete",function(){t.applyFlexibleMode()})},registerEventsFixedMenu:function(){var t=this;e(window).on("scroll.autocomplete",function(){if(t.suggestions.length>0&&t.elementOrParentIsFixed(t.getFormWrapper()))if(0===e(window).scrollTop()){[1,10,20,30,40,50,60,70,80,90,120,140,170,200,250,400,700,1e3,2e3].forEach(function(e){setTimeout(function(){t.fixHeight(),t.fixPositionCapture()},e)})}else t.fixHeight(),t.fixPositionCapture()})},initMobileMode:function(){var e=this,t=e.getFormWrapper();t.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&!t.find(".js-dgwt-wcas-enable-mobile-form").length&&(t.prepend('<div class="js-dgwt-wcas-enable-mobile-form dgwt-wcas-enable-mobile-form"></div>'),t.find(".js-dgwt-wcas-enable-mobile-form").on("click.autocomplete",function(t){e.options.mobileOverlayDelay>0?setTimeout(function(){e.enableOverlayMobile()},e.options.mobileOverlayDelay):e.enableOverlayMobile()}))},destroyMobileMode:function(){var e=this.getFormWrapper(),t=(this.getSuggestionsContainer(),e.find(".js-dgwt-wcas-enable-mobile-form"));e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&t.length&&(this.disableOverlayMobile(),t.remove())},toggleMobileMode:function(){var e=this.getFormWrapper(),t="desktop";if(e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")){if(e.find(".js-dgwt-wcas-enable-mobile-form").length&&(t="mobile"),"desktop"===t&&this.isMobileMode()||"mobile"===t&&!this.isMobileMode()){var s=this.getSuggestionsContainer();this.close(!1),s.length&&s.html(""),this.hideIconModeSearch()}"desktop"===t&&this.isMobileMode()&&this.initMobileMode(),"mobile"!==t||this.isMobileMode()||this.destroyMobileMode()}},applyFlexibleMode:function(){var t=e(".js-dgwt-wcas-layout-icon-flexible");t.length&&(this.isMobileMode()?(t.addClass("js-dgwt-wcas-layout-icon"),t.addClass("dgwt-wcas-layout-icon")):(t.removeClass("js-dgwt-wcas-layout-icon"),t.removeClass("dgwt-wcas-layout-icon")),t.addClass("dgwt-wcas-layout-icon-flexible-loaded"))},onFocus:function(t){var s=this.getFormWrapper(),i=this.options;e("."+i.searchFormClass).removeClass("dgwt-wcas-active"),s.addClass("dgwt-wcas-active"),e("body").addClass("dgwt-wcas-focused"),s.addClass("dgwt-wcas-search-focused"),0==e(t.target).closest(".dgwt-wcas-search-wrapp-mobile").length&&this.enableOverlayDarkened(),this.fixPositionCapture(),this.el.val().length>=this.options.minChars&&this.onValueChange()},onBlur:function(){var t=this.options,s=this.el.val(),i=this.getQuery(s);e("body").removeClass("dgwt-wcas-focused"),e("."+t.searchFormClass).removeClass("dgwt-wcas-search-focused"),this.isMobileMode()||this.isMouseDownOnSearchElements||(this.hide(),this.selection&&this.currentValue!==i&&(t.onInvalidateSelection||e.noop).call(this.element))},abortAjax:function(){this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=null)},setOptions:function(t){var s=this,i=s.getSuggestionsContainer(),o=e.extend({},s.options,t);(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","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(e){e&&this.clearCache(),this.currentValue="",this.suggestions=[]},close:function(e){var t=this.el.closest("."+this.options.searchFormClass).find("."+this.options.searchInputClass),s=this.getFormWrapper();this.hide(),this.clear(!1),this.hideCloseButton(),t.val(""),s.removeClass(this.classes.inputFilled),s.hasClass("js-dgwt-wcas-layout-icon")&&this.disableOverlayDarkened(),e&&t.focus()},disable:function(){this.disabled=!0,clearTimeout(this.onChangeTimeout),this.abortAjax()},enable:function(){this.disabled=!1},fixPosition:function(){var e=this.getFormOffset();this.getSuggestionsContainer().css(e),this.canShowDetailsBox()&&this.fixPositionDetailsBox()},fixPositionDetailsBox:function(){var t=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.getDetailsContainer(),o=this.getFormOffset();if(0==i.length)return!1;var a=o.left+s.outerWidth(!1);if(i.css({top:o.top,left:a}),e("body").removeClass("dgwt-wcas-full-width dgwt-wcas-details-outside dgwt-wcas-details-right dgwt-wcas-details-left dgwt-wcas-details-notfit"),t.outerWidth()>=this.options.dpusbBreakpoint)return e("body").addClass("dgwt-wcas-full-width"),void(!0===this.options.isRtl&&(a=o.left+i.outerWidth(!1),s.css("left",a),i.css("left",o.left)));var n=e(window).width(),r=i.outerWidth(),l=i.offset();e("body").addClass("dgwt-wcas-details-outside dgwt-wcas-details-right"),n<l.left+r&&(e("body").removeClass("dgwt-wcas-details-right"),e("body").addClass("dgwt-wcas-details-left"),a=s.offset().left-i.outerWidth(),i.css("left",a),l=i.offset()),l.left<1&&(e("body").removeClass("dgwt-wcas-details-left dgwt-wcas-details-right"),e("body").addClass("dgwt-wcas-details-notfit"))},fixHeight:function(){if(1!=this.options.showDetailsPanel)return!1;var e=this.getSuggestionsContainer(),t=this.getDetailsContainer();e.css("height","auto"),t.css("height","auto");var s=e.outerHeight(!1),i=t.outerHeight(!1);return e.find(".dgwt-wcas-suggestion:last-child").removeClass("dgwt-wcas-suggestion-no-border-bottom"),!(s<=340&&i<=340)&&(e.find(".dgwt-wcas-suggestion:last-child").addClass("dgwt-wcas-suggestion-no-border-bottom"),i<s&&t.css("height",s+"px"),s<i&&e.css("height",i+"px"),!1)},automaticAlignment:function(){var e=this,t=e.getFormWrapper().find(".dgwt-wcas-search-input"),s=e.getSuggestionsContainer(),i=e.getDetailsContainer();if(null==e.autoAligmentprocess){var o=[t.width(),s.height()];e.options.showDetailsPanel&&(o[2]=i.height()),e.autoAligmentprocess=setInterval(function(){var a=[t.width(),s.height()];e.options.showDetailsPanel&&(a[2]=i.height());for(var n=0;n<o.length;n++)if(o[n]!=a[n]){e.fixHeight(),e.fixPositionCapture(),o=a;break}e.options.showDetailsPanel&&(i.find(".dgwt-wcas-details-inner").height()-i.height()>2&&e.fixHeight())},10)}},getFormElementInfo:function(){var e,t=this.getFormWrapper(),s={};return t.hasClass("js-dgwt-wcas-layout-icon")&&(t=t.find("."+this.options.formClass)),e=t.offset(),s.left=e.left,s.top=e.top,s.width=t.outerWidth(!1),s.height=t.outerHeight(!1),s.right=s.left+s.width,s.bottom=s.top+s.height,s},getFormOffset:function(){var t=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=t.find("."+this.options.formClass),o=this.el,a=o.offset().top,n=i.offset().left,r=this.options.orientation,l=t.outerHeight(!1),c=o.outerHeight(!1),d={top:a,left:n};if("auto"===r){var g=e(window).height(),u=e(window).scrollTop(),h=-u+a-l,p=u+g-(a+c+l);r=Math.max(h,p)===h?"top":"bottom"}if("top"===r){var w=o[0].getBoundingClientRect().top;s.css("height","auto"),w<s.height()&&s.height(w-10),d.top+=-s.outerHeight(!1)}else d.top+=c;return d},getFormWrapper:function(){return this.el.closest("."+this.options.searchFormClass)},getSuggestionsContainer:function(){return e("."+this.options.containerClass)},getDetailsContainer:function(){return e("."+this.options.containerDetailsClass)},scrollDownSuggestions:function(){var e=this.getSuggestionsContainer();e[0].scrollTop=e[0].scrollHeight},isCursorAtEnd:function(){var e,t=this.el.val().length,s=this.element.selectionStart;return"number"==typeof s?s===t:!document.selection||((e=document.selection.createRange()).moveStart("character",-t),t===e.text.length)},onKeyPress:function(e){if(this.disabled||this.visible||e.keyCode!==l||!this.currentValue){if(!this.disabled&&this.visible){switch(e.keyCode){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!this.options.disableSubmit&&void this.hide();this.actionTriggerSource="enter",this.select(this.selectedIndex);break;case n:this.moveUp();break;case l:this.moveDown();break;default:return}e.stopImmediatePropagation(),e.preventDefault()}}else this.suggest()},onKeyUp:function(e){var t=this;if(!t.disabled){switch(e.keyCode){case n:case l:return}clearTimeout(t.onChangeTimeout),t.currentValue!==t.el.val()&&(t.findBestHint(),t.options.deferRequestBy>0?t.onChangeTimeout=setTimeout(function(){t.onValueChange()},t.options.deferRequestBy):t.onValueChange())}},onValueChange:function(){if(this.ignoreValueChange)this.ignoreValueChange=!1;else{var t=this.options,s=this.el.val(),i=this.getQuery(s),o=this.getFormWrapper();this.selection&&this.currentValue!==i&&(this.selection=null,(t.onInvalidateSelection||e.noop).call(this.element)),clearTimeout(this.onChangeTimeout),this.currentValue=s,this.selectedIndex=-1,t.triggerSelectOnValidInput&&this.isExactMatch(i)?this.select(0):(i.length>0?o.hasClass(this.classes.inputFilled)||o.addClass(this.classes.inputFilled):o.removeClass(this.classes.inputFilled),i.length<t.minChars?(this.hideCloseButton(),this.hide()):this.getSuggestions(i))}},isExactMatch:function(e){var t=this.suggestions;return 1===t.length&&t[0].value.toLowerCase()===e.toLowerCase()},canShowDetailsBox:function(){return 1==this.options.showDetailsPanel&&!this.isMobileMode()},isMobileMode:function(){return e(window).width()<this.options.mobileBreakpoint},getQuery:function(t){var s,i=this.options.delimiter;return i?(s=t.split(i),e.trim(s[s.length-1])):t.trim()},getSuggestionsLocal:function(t){var s,i=this.options,o=t.toLowerCase(),a=i.lookupFilter,n=parseInt(i.lookupLimit,10);return s={suggestions:e.grep(i.lookup,function(e){return a(e,t,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,e.isFunction(c.lookup)?c.lookup(i,function(e){l.suggestions=e.suggestions,l.suggest(),l.selectFirstSuggestion(e.suggestions),c.onSearchComplete.call(l.element,i,e.suggestions)}):(l.isLocal?o=l.getSuggestionsLocal(i):(e.isFunction(d)&&(d=d.call(l.element,i)),n=d+"?"+e.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},e.extend(r,c.ajaxSettings),s.object=l,s.ajaxSettings=r,t.debounce(function(){var t=s.object,o=s.ajaxSettings;t.currentRequest=e.ajax(o).done(function(e){var s;t.currentRequest=null,void 0!==(s=t.options.transformResult(e,i)).suggestions&&(t.processResponse(s,i,n),t.selectFirstSuggestion(s.suggestions),1===s.suggestions.length&&void 0!==s.suggestions[0].type&&"no-results"===s.suggestions[0].type?t.gaEvent(i,"Autocomplete Search without results"):t.gaEvent(i,"Autocomplete Search with results")),t.fixPositionCapture(),t.options.onSearchComplete.call(t.element,i,s.suggestions),t.updatePrices()}).fail(function(e,s,o){t.options.onSearchError.call(t.element,i,e,s,o)})},c.debounceWaitMs))))},getDetails:function(t){var s=this;if(!s.canShowDetailsBox())return!1;if(null!=t&&void 0!==t.type&&("string"!=typeof t.type||"more_products"!==t.type)){s.fixHeight();s.getDetailsContainer();var i=s.prepareSuggestionObjectID(t);if(null!=s.cachedDetails[i])s.detailsPanelSetScene(i),s.fixHeight(),s.fixPositionCapture();else{var o={action:dgwt_wcas.action_result_details,items:[]};if(e.each(s.suggestions,function(e,t){if(void 0!==t.type&&"more_products"!=t.type&&"headline"!=t.type){var i={objectID:s.prepareSuggestionObjectID(t),value:null!=t.value?t.value:""};o.items.push(i)}}),s.detailsPanelClearScene(),s.preloader("show","details",""),-1!=e.inArray(i,s.detailsRequestsSent))return;s.detailsRequestsSent.push(i),e.ajax({data:o,type:"post",url:dgwt_wcas.ajax_details_endpoint,success:function(e){var t="string"==typeof e?JSON.parse(e):e;if(void 0!==t.items)for(var i=0;i<t.items.length;i++){var o=t.items[i].objectID;s.cachedDetails[o]={html:t.items[i].html},s.detailsPanelAddToScene(o),void 0!==t.items[i].price&&t.items[i].price.length>0&&(s.cachedPrices[o]=t.items[i].price)}s.preloader("hide","details","");var a=s.prepareSuggestionObjectID(s.suggestions[s.selectedIndex]);null!=s.cachedDetails[a]?s.detailsPanelSetScene(a):s.detailsPanelClearScene(),s.fixPositionCapture(),s.fixHeight(),s.updatePrices(!0)},error:function(e,t){s.preloader("hide","details",""),s.detailsPanelClearScene(),s.fixPositionCapture(),s.fixHeight()}})}e(document).trigger("dgwtWcasDetailsPanelLoaded",s)}},updatePrices:function(t){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(!t&&a.length>0){var r={action:void 0===dgwt_wcas.action_get_prices?"dgwt_wcas_get_prices":dgwt_wcas.action_get_prices,items:a};e.ajax({data:r,type:"post",url:dgwt_wcas.ajax_prices_endpoint,success:function(e){if(void 0!==e.success&&e.success&&e.data.length>0)for(s=0;s<e.data.length;s++){var t=e.data[s].id,a=e.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==t){var n="product__"+t;o.cachedPrices[n]=a,o.updatePrice(i,a)}}},error:function(e,t){}})}}},updatePrice:function(t,s){if(void 0!==this.suggestions[t]){this.suggestions[t].price=s;var i=e(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+t+'"] .dgwt-wcas-sp');i.length&&i.html(s)}},applyCustomParams:function(e){if("object"==typeof dgwt_wcas.custom_params){var t=dgwt_wcas.custom_params;for(var s in t)e[s]=t[s]}var i=this.el.data("custom-params");if("object"==typeof i)for(var s in i)e[s]=i[s];return e},applyPreloaderForPrice:function(t){if(void 0!==this.suggestions[t]){var s=e(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+t+'"] .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(e){var t="";return void 0!==e&&void 0!==e.type&&(null!=e.post_id&&(t=e.type+"__"+e.post_id,"product_variation"===e.type&&(t+="__"+e.variation_id),void 0!==e.post_type&&(t=e.type+"__"+e.post_id+"__"+e.post_type)),null!=e.term_id&&null!=e.taxonomy&&(t=e.type+"__"+e.term_id+"__"+e.taxonomy)),t},detailsPanelSetScene:function(e){var s=this.getDetailsContainer(),i=t.hashCode(e),o=s.find('.dgwt-wcas-details-inner[data-object="'+i+'"]');o.length&&(this.preloader("hide","details",""),this.detailsPanelClearScene(),o.addClass("dgwt-wcas-details-inner-active"))},detailsPanelAddToScene:function(e){var s=this.getDetailsContainer(),i=this.cachedDetails[e],o=t.hashCode(e),a="";void 0!==i&&"string"==typeof i.html&&(a=i.html.replace("<div ",'<div data-object="'+o+'" ')),0==s.find('.dgwt-wcas-details-inner[data-object="'+o+'"]').length&&s.append(a)},detailsPanelClearScene:function(){var e=this.getDetailsContainer().find(".dgwt-wcas-details-inner");e.length&&e.removeClass("dgwt-wcas-details-inner-active")},selectFirstSuggestion:function(t){var s=0,i=!1;this.canShowDetailsBox()&&("undefined"!=t&&t.length>0&&e.each(this.suggestions,function(e,t){if(void 0!==t.type&&"more_products"!=t.type&&"headline"!=t.type&&"no-results"!=t.type)return s=e,!1;void 0!==t.type&&"no-results"!==t.type||(i=!0)}),i||(this.latestActivateSource="system",this.getDetails(t[s]),this.activate(s)))},isBadQuery:function(e){if(!this.options.preventBadQueries)return!1;for(var t=this.badQueries,s=t.length;s--;)if(0===e.indexOf(t[s]))return!0;return!1},hide:function(t){this.getFormWrapper();var s=this.getSuggestionsContainer(),i=this.getDetailsContainer();e.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(),e("body").removeClass("dgwt-wcas-open"),e("body").removeClass("dgwt-wcas-block-scroll"),e("body").removeClass("dgwt-wcas-is-details"),e("body").removeClass("dgwt-wcas-full-width"),e("body").removeClass("dgwt-wcas-nores"),e("body").removeClass("dgwt-wcas-details-outside"),e("body").removeClass("dgwt-wcas-details-right"),e("body").removeClass("dgwt-wcas-details-left"),null!=this.autoAligmentprocess&&(clearInterval(this.autoAligmentprocess),this.autoAligmentprocess=null),this.isMouseDownOnSearchElements=!1,"boolean"==typeof t&&t&&(this.hideCloseButton(),this.currentValue="",this.suggestions=[]),this.signalHint(null)},positionIconSearchMode:function(t){var s=-20,i=t.find("."+this.options.formClass),o=i.width(),a=e(window).width(),n=t[0].getBoundingClientRect().left;i[0].getBoundingClientRect().left;var r=(n+10)/a;s=Math.floor(o*r*-1),s=Math.max(s,-1*n),i.css({left:s+"px"})},hideIconModeSearch:function(){var t=e(".dgwt-wcas-layout-icon-open");t.length>0&&t.removeClass("dgwt-wcas-layout-icon-open")},hideAfterClickOutsideListener:function(){var t=this;t.isMobileMode()||e(document).mouseup(function(s){if(t.visible){t.getSuggestionsContainer(),t.getDetailsContainer();var i=!(e(s.target).closest("."+t.options.searchFormClass).length>0||e(s.target).hasClass(t.options.searchFormClass)),o=!(e(s.target).closest("."+t.options.containerClass).length>0||e(s.target).hasClass(t.options.containerClass));if(t.canShowDetailsBox()){var a=!(e(s.target).closest("."+t.options.containerDetailsClass).length>0||e(s.target).hasClass(t.options.containerDetailsClass));i&&o&&a&&t.hide()}else i&&o&&t.hide()}})},suggest:function(){if(this.suggestions.length){var t,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=e(s.noSuggestionsContainer),u=i.beforeRender,h="";i.triggerSelectOnValidInput&&s.isExactMatch(n)?s.select(0):(e("body").removeClass("dgwt-wcas-nores"),e.each(s.suggestions,function(l,c){var d="",g=!1,u="string"==typeof c.url&&c.url.length?c.url:"#";if(o&&(h+=function(e,s){var i=e.data[o];return t===i?"":'<div class="autocomplete-group"><strong>'+(t=i)+"</strong></div>"}(c,0)),void 0===c.type||"product"!=c.type&&"product_variation"!=c.type){var p,w=r,f="dgwt-wcas-st",m="",v="",b="",y=!0;"product_cat"===c.taxonomy?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-cat",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>"),void 0!==c.breadcrumbs&&c.breadcrumbs&&(b=c.breadcrumbs+" &gt; "+c.value,v+='<span class="dgwt-wcas-st-breadcrumbs">'+dgwt_wcas.labels.in+" "+c.breadcrumbs+"</span>")):"product_tag"===c.taxonomy?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tag",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&c.taxonomy===i.taxonomyBrands?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-brand",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&"taxonomy"===c.type?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tax-"+c.taxonomy,i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&"vendor"===c.type?(w+=" dgwt-wcas-suggestion-vendor dgwt-wcas-suggestion-vendor",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.vendor+"</span>")):i.isPremium&&"post"===c.type?(w+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-tp-post",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.post+"</span>")):i.isPremium&&"page"===c.type?(w+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-pt-page",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.page+"</span>")):"more_products"===c.type?(w+=" js-dgwt-wcas-suggestion-more dgwt-wcas-suggestion-more",f="dgwt-wcas-st-more",c.value=dgwt_wcas.labels.show_more+" ("+c.total+")",y=!1):i.showHeadings&&"headline"===c.type?(w+=" js-dgwt-wcas-suggestion-headline dgwt-wcas-suggestion-headline",void 0!==dgwt_wcas.labels[c.value+"_plu"]&&(c.value=dgwt_wcas.labels[c.value+"_plu"]),y=!1):(w+=" dgwt-wcas-suggestion-nores",c.value=dgwt_wcas.labels.no_results,y=!1,!0===i.showDetailsPanel&&s.detailsPanelClearScene(),e("body").addClass("dgwt-wcas-nores")),void 0!==c.image_src&&c.image_src&&(p=!0),b=b.length>0?' title="'+b+'"':"",h+='<a href="'+u+'" class="'+w+'" data-index="'+l+'">',p&&(h+='<span class="dgwt-wcas-si"><img src="'+c.image_src+'" /></span>',h+='<div class="dgwt-wcas-content-wrapp">'),h+="<span"+b+' class="'+f+'">',"vendor"===c.type?(h+='<span class="dgwt-wcas-st-title">'+m+a(c.value,n,y,i)+v+"</span>",c.shop_city&&(h+='<span class="dgwt-wcas-vendor-city"><span> - </span>'+a(c.shop_city,n,!0,i)+"</span>"),void 0!==c.desc&&c.desc&&(h+='<span class="dgwt-wcas-sd">'+a(c.desc,n,!0,i)+"</span>")):h+=m+a(c.value,n,y,i)+v,h+="</span>",h+=p?"</div>":"",h+="</a>"}else{!0===i.showImage&&void 0!==c.thumb_html&&(g=!0);var C="product_variation"===c.type?" dgwt-wcas-suggestion-product-var":"";if(d+=void 0!==c.post_id?'data-post-id="'+c.post_id+'" ':"",d+=void 0!==c.taxonomy?'data-taxonomy="'+c.taxonomy+'" ':"",d+=void 0!==c.term_id?'data-term-id="'+c.term_id+'" ':"",h+='<a href="'+u+'" class="'+r+" dgwt-wcas-suggestion-product"+C+'" data-index="'+l+'" '+d+">",g&&(h+='<span class="dgwt-wcas-si">'+c.thumb_html+"</span>"),h+=g?'<div class="dgwt-wcas-content-wrapp">':"",h+='<div class="dgwt-wcas-st">',void 0!==c.title_before&&c.title_before&&(h+=c.title_before),h+='<span class="dgwt-wcas-st-title">'+a(c.value,n,!0,i)+"</span>",void 0!==c.title_after&&c.title_after&&(h+=c.title_after),!0===i.showSKU&&void 0!==c.sku&&c.sku.length>0&&(h+='<span class="dgwt-wcas-sku">('+dgwt_wcas.labels.sku_label+" "+a(c.sku,n,!0,i)+")</span>"),!0===i.showDescription&&void 0!==c.desc&&c.desc&&(h+='<span class="dgwt-wcas-sd">'+a(c.desc,n,!0,i)+"</span>"),!0===i.showProductVendor&&void 0!==c.vendor&&c.vendor){var _='<span class="dgwt-wcas-product-vendor"><span class="dgwt-wcas-product-vendor-label">'+dgwt_wcas.labels.vendor_sold_by+" </span>"+c.vendor+"</span>";void 0!==c.vendor_url&&c.vendor_url?h+='<span class="dgwt-wcas-product-vendor-link" data-url="'+c.vendor_url+'">'+_+"</span>":h+=_}void 0!==c.content_after&&c.content_after&&(h+=c.content_after),h+="</div>";var x=!0===i.showPrice&&void 0!==c.price,S=void 0!==c.meta_before,D=void 0!==c.meta_after,j=x||S||D;h+=j?'<div class="dgwt-wcas-meta">':"",S&&(h+=c.meta_before),x&&(h+='<span class="dgwt-wcas-sp">'+c.price+"</span>"),D&&(h+=c.meta_after),h+=j?"</div>":"",h+=g?"</div>":"",h+="</a>"}}),this.adjustContainerWidth(),g.detach(),c.html(h),e.isFunction(u)&&u.call(s.element,c,s.suggestions),c.show(),e("body").addClass("dgwt-wcas-open"),s.isMouseDownOnSearchElements=!1,s.automaticAlignment(),!0===i.showDetailsPanel&&(e("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),e("body").addClass("dgwt-wcas-block-scroll"),setTimeout(function(){s.scrollDownSuggestions()},300)),s.findBestHint())}else this.hide()},adjustContainerWidth:function(){var e=this.getFormWrapper(),t=this.getSuggestionsContainer(),s=this.getDetailsContainer(),i=e.find("."+this.options.formClass).outerWidth();if(e.length&&(t.css("width",i+"px"),this.canShowDetailsBox()&&i>=this.options.dpusbBreakpoint)){var o;t.css("width",i/2),s.css("width",i/2),0!=(o=i-(t.outerWidth()+s.outerWidth()))&&s.css("width",s.outerWidth()+o)}},positionPreloader:function(t){var s="object"==typeof t?t.find(".dgwt-wcas-search-submit"):e(".dgwt-wcas-search-submit");s.length>0&&s.each(function(){var t=e(this).closest(".dgwt-wcas-search-wrapp").find(".dgwt-wcas-preloader");1==dgwt_wcas.is_rtl?t.css("left",6+e(this).outerWidth()+"px"):t.css("right",e(this).outerWidth()+"px")})},findBestHint:function(){var t=this.el.val().toLowerCase(),s=null;t&&(e.each(this.suggestions,function(e,i){var o=0===i.value.toLowerCase().indexOf(t);return o&&(s=i),!o}),this.signalHint(s))},signalHint:function(t){var s="";t&&(s=this.currentValue+t.value.substr(this.currentValue.length)),this.hintValue!==s&&(this.hintValue=s,this.hint=t,(this.options.onHint||e.noop)(s))},preloader:function(e,t,s){var i,o,a="dgwt-wcas-preloader-wrapp",n=null==s?a:a+" "+s;if("form"===t){if(1!=dgwt_wcas.show_preloader)return;o=this.getFormWrapper().find(".dgwt-wcas-preloader")}else"details"===t&&(o=this.getDetailsContainer());if(0!=o.length)if("form"!==t){var r=o.find("."+a);if("hide"!==e){if("show"===e){var l=this.options.isRtl?"-rtl":"";i='<div class="'+n+'"><img class="dgwt-wcas-placeholder-preloader" src="'+dgwt_wcas.img_url+"placeholder"+l+'.png" /></div>',this.detailsPanelClearScene(),r.length&&r.remove(),o.prepend(i)}}else r.length&&r.remove()}else"hide"===e?(o.removeClass(s),o.html("")):(o.addClass(s),"string"==typeof dgwt_wcas.preloader_icon&&o.html(dgwt_wcas.preloader_icon))},verifySuggestionsFormat:function(t){return t.length&&"string"==typeof t[0]?e.map(t,function(e){return{value:e,data:null}}):t},validateOrientation:function(t,s){return t=e.trim(t||"").toLowerCase(),-1===e.inArray(t,["auto","bottom","top"])&&(t=s),t},processResponse:function(e,t,s){var i=this.options;e.suggestions=this.verifySuggestionsFormat(e.suggestions),i.noCache||(this.cachedResponse[s]=e,i.preventBadQueries&&!e.suggestions.length&&this.badQueries.push(t)),t===this.getQuery(this.currentValue)&&("top"===this.options.orientation&&e.suggestions.reverse(),this.suggestions=e.suggestions,this.suggest())},activate:function(t){var s,i=this.classes.selected,o=this.getSuggestionsContainer(),a=o.find("."+this.classes.suggestion);return o.find("."+i).removeClass(i),this.selectedIndex=t,-1!==this.selectedIndex&&a.length>this.selectedIndex?(s=a.get(this.selectedIndex),e(s).addClass(i),s):null},selectHint:function(){var t=e.inArray(this.hint,this.suggestions);this.select(t)},select:function(e){this.options.disableHits||(this.disableOverlayMobile(),this.hide(),this.onSelect(e))},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(t,s){if("headline"===this.suggestions[t].type&&(t="down"===s?t+1:t-1),void 0!==this.suggestions[t]){var i=this.activate(t);if(this.getDetails(this.suggestions[t]),"more_products"!==this.suggestions[t].type&&i&&!this.canShowDetailsBox()){var o,a,n,r=this.getSuggestionsContainer(),l=e(i).outerHeight(!1);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(t){var s=this.options.onSelect,i=this.suggestions[t];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.replace(/(<([^>]+)>)/gi," ").replace(/\s\s+/g," ")),i.url.length>0&&(window.location.href=i.url),this.signalHint(null),this.suggestions=[],this.selection=i,e.isFunction(s)&&s.call(this.element,i)):this.el.closest("form").trigger("submit")},getValue:function(e){var t,s,i=this.options.delimiter;return i?1===(s=(t=this.currentValue).split(i)).length?e:t.substr(0,t.length-s[s.length-1].length)+e:e},dispose:function(){var t=this.el,s=this.getFormWrapper(),i=this.getSuggestionsContainer(),o=(this.getDetailsContainer(),t.closest("."+this.options.formClass),s.find(".js-dgwt-wcas-enable-mobile-form"));s.length&&s.find("*").each(function(){e(this).off(".autocomplete")});t.removeData("autocomplete"),e(window).off("resize.autocomplete",this.fixPositionCapture),s.removeClass("dgwt-wcas-active"),this.close(!1),o.length&&o.remove(),i.length&&i.html("")},isMountedOverlayDarkened:function(){var e=!1;return this.getFormWrapper().hasClass(this.classes.darkenOverlayMounted)&&(e=!0),e},enableOverlayDarkened:function(){var t=this,s=t.options;if(t.isMountedOverlayDarkened()){if(t.getFormWrapper().addClass("dgwt-wcas-search-darkoverl-on"),e("body").addClass("dgwt-wcas-darkoverl-on"),0==e("."+s.darkenedOverlayClass).length){var i='<div class="'+s.darkenedOverlayClass+'"><div></div><div></div><div></div><div></div></div>';e("body").append(i);var o=e("."+t.options.darkenedOverlayClass);t.positionOverlayDarkened(),o.on("click.autocomplete",function(e){t.disableOverlayDarkened()})}t.overlayDarkenedState="on"}},disableOverlayDarkened:function(){var t,s=this.options;if(this.isMountedOverlayDarkened()){(t=e(".dgwt-wcas-search-darkoverl-on")).length&&t.removeClass("dgwt-wcas-search-darkoverl-on"),e("body").removeClass("dgwt-wcas-darkoverl-on");var i=e("."+s.darkenedOverlayClass);i.length>0&&(i.remove(),this.overlayDarkenedState="off")}},positionOverlayDarkened:function(){var t=this,s=e("."+t.options.darkenedOverlayClass);s.length>0&&s.children("div").each(function(s){t.positionOverlayDarkenedDiv(e(this),s+1)})},positionOverlayDarkenedDiv:function(t,s){var i,o=this.getFormElementInfo();switch(s){case 1:i={left:"-200px",top:"-200px",width:o.left+200+"px",height:e(document).outerHeight(!1)+200-1+"px"};break;case 2:i={left:"-200px",top:"-200px",width:e(window).outerWidth(!1)+200+"px",height:o.top+200+"px"};break;case 3:i={left:o.left+o.width+"px",top:"-200px",width:e(window).outerWidth(!1)-o.right+"px",height:e(document).outerHeight(!1)+200-1+"px"};break;case 4:i={left:"-200px",top:o.top+o.height+"px",width:e(window).outerWidth(!1)+200+"px",height:e(document).outerHeight(!1)-o.bottom-1+"px"}}i&&t.css(i)},enableOverlayMobile:function(){var t=this;if("on"!==t.overlayMobileState){t.overlayMobileState="on";var s,i=t.getFormWrapper(),o=t.getSuggestionsContainer(),a="";e("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+="</button>",a+="</div>",a+="</div>",e(t.options.mobileOverlayWrapper).append(a),(s=e(".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("."+t.options.searchInputClass).focus(),e(document).on("click.autocomplete",".js-dgwt-wcas-om-return",function(e){t.disableOverlayMobile(s)})}},disableOverlayMobile:function(t){var s=this;if(e("html").hasClass("dgwt-wcas-overlay-mobile-on")){var i=s.getSuggestionsContainer(),o=e(".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"),e("html").removeClass("dgwt-wcas-overlay-mobile-on"),i.appendTo("body"),i.removeAttr("body-scroll-lock-ignore"),e(".js-dgwt-wcas-om-hook").after(o),e(".js-dgwt-wcas-overlay-mobile").remove(),e(".js-dgwt-wcas-om-hook").remove(),setTimeout(function(){o.find("."+s.options.searchInputClass).val("");var e=o.find(".dgwt-wcas-close");o.length>0&&(e.removeClass("dgwt-wcas-close"),e.html("")),s.hide()},150),s.overlayMobileState="off"}else s.overlayMobileState="off"},showCloseButton:function(){var e=void 0!==dgwt_wcas.close_icon?dgwt_wcas.close_icon:"",t=this.getFormWrapper().find("."+this.options.preloaderClass);t.addClass(this.options.closeTrigger),t.html(e)},hideCloseButton:function(){var e=this.getFormWrapper().find("."+this.options.closeTrigger);e.length&&(e.removeClass(this.options.closeTrigger),e.html(""))},elementOrParentIsFixed:function(t){var s=t.add(t.parents()),i=!1;return s.each(function(){if("fixed"===e(this).css("position"))return i=!0,!1}),i},gaEvent:function(t,s){var i=!(!window.hasOwnProperty("GoogleAnalyticsObject")||!window.hasOwnProperty(window.GoogleAnalyticsObject))&&window[window.GoogleAnalyticsObject];if(this.options.sendGAEvents)try{if("undefined"!=typeof gtag)gtag("event","autocomplete_search",{event_label:t,event_category:s});else if(!1!==i){var o=i.getAll()[0];o&&o.send({hitType:"event",eventCategory:s,eventAction:"autocomplete_search",eventLabel:t})}}catch(e){}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(!1!==i){var a=i.getAll()[0];a&&(a.set("page","/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"),a.send("pageview"))}}catch(e){}e(document).trigger("dgwtWcasGAEvent",{term:t,category:s})}},e.fn.dgwtWcasAutocomplete=function(t,s){return arguments.length?this.each(function(){var i=e(this),o=i.data("autocomplete");"string"==typeof t?o&&"function"==typeof o[t]&&o[t](s):(o&&o.dispose&&o.dispose(),o=new d(this,t),i.data("autocomplete",o))}):this.first().data("autocomplete")},e.fn.autocomplete||(e.fn.autocomplete=e.fn.dgwtWcasAutocomplete),function(){function t(){var t=e(".dgwt-wcas-search-input"),s=[];t.length>1&&t.each(function(){var t=e(this).attr("id");if(-1==e.inArray(t,s))s.push(t);else{var i=Math.random().toString(36).substring(2,6);i="dgwt-wcas-search-input-"+i,e(this).attr("id",i),e(this).closest("form").find("label").attr("for",i)}})}function s(){var t=e(".dgwt-wcas-search-input");t.length>0&&t.each(function(){"object"!=typeof e(this).data("autocomplete")&&e(this).dgwtWcasAutocomplete(window.dgwt_wcas.config)})}navigator.userAgent.match(/Trident\/7\./)&&function(e,t){function s(e,t){var s=arguments.length>2?arguments[2]:[];if(!1===a(e))throw new TypeError(Object.prototype.toString.call(e)+"is not a function.");return e.apply(t,s)}function i(e,t,s){var i={value:s,writable:!0,enumerable:!1,configurable:!0};Object.defineProperty(e,t,i)}function o(e,t){return e[t]}function a(e){return"function"==typeof e}function n(e){if(null===e||e===t)throw TypeError();return Object(e)}function r(e,s){var i=function(e,t){return n(e)[t]}(e,s);if(null===i||i===t)return t;if(!1===a(i))throw new TypeError("Method not callable: "+s);return i}function l(t){switch(typeof t){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"symbol":return"symbol";default:return null===t?"null":"Symbol"in e&&(t instanceof e.Symbol||t.constructor===e.Symbol)?"symbol":"object"}}function c(s){if("object"!==l(s))return!1;var i="Symbol"in e&&"match"in e.Symbol?o(s,e.Symbol.match):t;if(i!==t)return Boolean(i);try{var a=s.lastIndex;return s.lastIndex=0,RegExp.prototype.exec.call(s),!0}catch(e){}finally{s.lastIndex=a}return!1}function d(e,t){return l(e)===l(t)&&("number"===l(e)?!(!isNaN(e)||!isNaN(t))||1/e==1/0&&1/t==-1/0||1/e==-1/0&&1/t==1/0||e===t:function(e,t){return e===t}(e,t))}function g(e){if("symbol"===l(e))throw new TypeError("Cannot convert a Symbol value to a number");var t=Number(e);return isNaN(t)?0:1/t==1/0||1/t==-1/0||t===1/0||t===-1/0?t:(t<0?-1:1)*Math.floor(Math.abs(t))}function u(i){var n=arguments.length>1?arguments[1]:t;if("object"===l(i)){if(arguments.length<2)var c="default";else n===String?c="string":n===Number&&(c="number");var d="function"==typeof e.Symbol&&"symbol"==typeof e.Symbol.toPrimitive?r(i,e.Symbol.toPrimitive):t;if(d!==t){var g=s(d,i,[c]);if("object"!==l(g))return g;throw new TypeError("Cannot convert exotic object to primitive.")}return"default"===c&&(c="number"),function(e,t){if("string"===t)var i=["toString","valueOf"];else i=["valueOf","toString"];for(var n=0;n<i.length;++n){var r=o(e,i[n]);if(a(r)){var c=s(r,e);if("object"!==l(c))return c}}throw new TypeError("Cannot convert to primitive.")}(i,c)}return i}function h(e){switch(l(e)){case"symbol":throw new TypeError("Cannot convert a Symbol value to a string");case"object":return h(u(e,String));default:return String(e)}}i(Array.prototype,"includes",function(e){var t=n(this),s=function(e){var t=g(e);return t<=0?0:Math.min(t,Math.pow(2,53)-1)}(o(t,"length"));if(0===s)return!1;var i=g(arguments[1]);if(i>=0)var a=i;else(a=s+i)<0&&(a=0);for(;a<s;){if(d(e,o(t,h(a))))return!0;a+=1}return!1}),i(String.prototype,"includes",function(e){var s=arguments.length>1?arguments[1]:t,i=h(function(e){if(null===e||e===t)throw TypeError(Object.prototype.toString.call(e)+" is not coercible to Object.");return e}(this));if(c(e))throw new TypeError("First argument to String.prototype.includes must not be a regular expression");var o=h(e),a=g(s),n=i.length,r=Math.min(Math.max(a,0),n);return-1!==String.prototype.indexOf.call(i,o,r)})}("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{}),e(document).ready(function(){(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)&&e("html").addClass("dgwt-wcas-is-ios");var t=1==dgwt_wcas.show_details_box,s=dgwt_wcas.mobile_breakpoint;(jQuery(window).width()<s||"ontouchend"in document)&&(t=!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:t,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,mobileOverlayDelay:dgwt_wcas.mobile_overlay_delay,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),disableHits:!(void 0===dgwt_wcas.disable_hits||!dgwt_wcas.disable_hits),disableSubmit:!(void 0===dgwt_wcas.disable_submit||!dgwt_wcas.disable_submit)},e(".dgwt-wcas-search-input").dgwtWcasAutocomplete(window.dgwt_wcas.config)}),e(window).on("load",function(){var t=0,s=setInterval(function(){var i=document.activeElement;if("object"==typeof i&&e(i).length&&e(i).hasClass("dgwt-wcas-search-input")){var o=e(i).closest(".dgwt-wcas-search-wrapp");o.length&&!o.hasClass("dgwt-wcas-active")&&(o.addClass("dgwt-wcas-active"),clearInterval(s))}t>10&&clearInterval(s),t++},500)}),e(document).ready(function(){setTimeout(function(){t(),s()},500)}),e(window).on("load",function(){setTimeout(function(){t(),s()},500),void 0!==window.elementorFrontend&&void 0!==window.elementorFrontend.documentsManager&&void 0!==window.elementorFrontend.documentsManager.documents&&e.each(elementorFrontend.documentsManager.documents,function(e,t){void 0!==t.getModal&&t.getModal&&t.getModal().on("show",function(){setTimeout(function(){s()},300)})})}),e(document.body).on("added_to_cart",function(){e(document.body).hasClass("woocommerce-checkout")&&e(".dgwt-wcas-search-input").length>0&&e(document.body).trigger("update_checkout")})}()});
1
+ !function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports&&"function"==typeof require?e(require("jquery")):e(jQuery)}(function(e){"use strict";var t={escapeRegExChars:function(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")},createNode:function(e){var t=document.createElement("div");return t.className=e,t.style.position="absolute",t.style.display="none",t.setAttribute("unselectable","on"),t},highlight:function(e,s){if(dgwt_wcas.is_premium){var i,o=s.split(/ /),a=!1,n="";if(o)for(n=o[o.length-1],o=o.sort(function(e,t){return t.length-e.length}),i=0;i<o.length;i++)if(o[i]&&o[i].length>=1){var r=o[i].replace(/[\^\@]/g,"");if(r.length>0){if(1===r.trim().length&&o[i]!==n)var l="((\\s|^)"+t.escapeRegExChars(r.trim())+"\\s)";else l=1===r.trim().length&&o[i]===n?"((\\s|^)"+t.escapeRegExChars(r.trim())+")":"("+t.escapeRegExChars(r.trim())+")";e=e.replace(new RegExp(l,"gi"),"^^$1@@"),a=!0}}a&&(e=(e=e.replace(/\^\^/g,"<strong>")).replace(/@@/g,"</strong>"))}else l="("+t.escapeRegExChars(s)+")",e=e.replace(new RegExp(l,"gi"),"<strong>$1</strong>");return e},debounce:function(e,t){var i,o=(new Date).getUTCMilliseconds();if(0===s.id.length)return s.id=o,void e();s.id=o,i=setTimeout(function(){o===s.id?(e(),s.id=""):clearTimeout(i)},t)},mouseHoverDebounce:function(t,s,i){var o;o=setTimeout(function(){e(s+":hover").length>0?t():clearTimeout(o)},i)},isTextSelected:function(){var e=!1,t=document.getSelection();return"object"==typeof t&&t.toString().length>0&&(e=!0),e},getActiveInstance:function(){var t,s=e(".dgwt-wcas-search-wrapp.dgwt-wcas-active");return s.length>0&&s.each(function(){var s=e(this).find(".dgwt-wcas-search-input");if("object"==typeof s.data("autocomplete"))return t=s.data("autocomplete"),!1}),t},hashCode:function(e){for(var t=0,s=e.length;s>0;)t=(t<<5)-t+e.charCodeAt(--s)|0;return t<0?-1*t:t}},s={id:"",callback:null,ajaxSettings:null,object:null},i=27,o=9,a=13,n=38,r=39,l=40,c=e.noop;function d(t,s){this.element=t,this.el=e(t),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=e.extend(!0,{},d.defaults,s),this.classes={selected:"dgwt-wcas-suggestion-selected",suggestion:"dgwt-wcas-suggestion",suggestionsContainerOrientTop:"dgwt-wcas-suggestions-wrapp--top",inputFilled:"dgwt-wcas-search-filled",darkenOverlayMounted:"js-dgwt-wcas-search-darkoverl-mounted"},this.hint=null,this.hintValue="",this.selection=null,this.overlayMobileState="off",this.overlayDarkenedState="off",this.isMouseDownOnSearchElements=!1,this.initialize(),this.setOptions(s)}d.utils=t,e.DgwtWcasAutocompleteSearch=d,d.defaults={ajaxSettings:{},autoSelectFirst:!1,appendTo:"body",serviceUrl:null,lookup:null,onSelect:null,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,dpusbBreakpoint:550,deferRequestBy:0,params:{},formatResult:function(e,s,i,o){if(!s)return e;i&&(e=t.highlight(e,s));if(!o.convertHtml)return e;return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/&lt;sup/g,"<sup").replace(/&lt;\/sup/g,"</sup").replace(/sup&gt;/g,"sup>").replace(/&lt;(\/?(strong|b|br|span))&gt;/g,"<$1>").replace(/&lt;(strong|span)\s+class\s*=\s*&quot;([^&]+)&quot;&gt;/g,'<$1 class="$2">')},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",darkenedOverlayClass:"dgwt-wcas-darkened-overlay",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(e,t,s){return-1!==e.value.toLowerCase().indexOf(s)},paramName:"query",transformResult:function(e){return"string"==typeof e?JSON.parse(e):e},noSuggestionNotice:"No results",orientation:"bottom",forceFixPosition:!1,positionFixed:!1,debounceWaitMs:400,sendGAEvents:!0,enableGASiteSearchModule:!1,showProductVendor:!1,disableHits:!1,disableSubmit:!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(),s.positionOverlayDarkened()},e(window).on("resize.autocomplete",function(){var e=t.getActiveInstance();void 0!==e&&e.fixPositionCapture()});var i=e(window).width();e(window).on("resize.autocomplete",function(){var t=e(window).width();t!=i&&(s.toggleMobileMode(),i=t)}),s.isMobileMode()&&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(t){var s=this.options;0==e("."+s.containerClass).length?(this.suggestionsContainer=e(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")):this.suggestionsContainer=e("."+this.options.containerClass),this.canShowDetailsBox()&&(0==e("."+s.containerDetailsClass).length?(this.detailsContainer=e(d.utils.createNode(s.containerDetailsClass)),this.detailsContainer.appendTo(s.appendTo||"body"),this.detailsContainer.addClass("woocommerce")):this.detailsContainer=e("."+s.containerDetailsClass))},registerEventsSearchBar:function(){var t=this;t.el.closest("."+t.options.formClass).on("submit.autocomplete",function(s){if(t.options.disableSubmit)return s.preventDefault(),!1;var i=e(this).find("."+t.options.searchInputClass);if(i.length&&0===i.val().length)return s.preventDefault(),!1;t.suggestions.length>0&&e.each(t.suggestions,function(e,i){if(void 0!==i.type&&"product_variation"==i.type)return t.select(e),s.preventDefault(),!1}),t.disableOverlayMobile()}),"complete"===document.readyState?t.positionPreloader():e(window).on("load",function(){t.positionPreloader()}),t.el.on("keydown.autocomplete",function(e){t.onKeyPress(e)}),t.el.on("keyup.autocomplete",function(e){t.onKeyUp(e)}),t.el.on("blur.autocomplete",function(){t.onBlur()}),t.el.on("focus.autocomplete",function(e){t.onFocus(e)}),t.el.on("change.autocomplete",function(e){t.onKeyUp(e)}),t.el.on("input.autocomplete",function(e){t.onKeyUp(e)})},registerEventsSuggestions:function(){var s="."+this.classes.suggestion;if(!this.getSuggestionsContainer().hasClass("js-dgwt-wcas-initialized")){e(document).on("mouseenter.autocomplete",s,function(){var s=t.getActiveInstance();if(void 0!==s){var i=e(this).data("index"),o='.dgwt-wcas-suggestion[data-index="'+i+'"]',a=s.canShowDetailsBox()?100:1;s.selectedIndex!=i&&t.mouseHoverDebounce(function(){s.selectedIndex!==i&&(s.latestActivateSource="mouse",s.getDetails(s.suggestions[i]),s.activate(i))},o,a)}});var i=!1;e(document).on("click.autocomplete",s,function(s){if(i)s.preventDefault();else{var o=t.getActiveInstance();o.actionTriggerSource="click",i=!0,setTimeout(function(){i=!1},500),void 0!==s.ctrlKey&&!1!==s.ctrlKey||(o.select(e(this).data("index")),s.preventDefault())}}),e(document).on("mousedown.autocomplete",s,function(s){var o=this;0===s.button&&setTimeout(function(){i||t.getActiveInstance().select(e(o).data("index"))},250)}),e("."+this.options.containerClass).on("mousedown.autocomplete",function(e){t.getActiveInstance().isMouseDownOnSearchElements=!0})}},registerEventsDetailsPanel:function(){var s=this.getDetailsContainer();this.canShowDetailsBox()&&!s.hasClass("js-dgwt-wcas-initialized")&&(e(document).on("change.autocomplete",'[name="js-dgwt-wcas-quantity"]',function(t){e(this).closest(".js-dgwt-wcas-pd-addtc").find("[data-quantity]").attr("data-quantity",e(this).val())}),e("."+this.options.containerDetailsClass).on("mousedown.autocomplete",function(e){t.getActiveInstance().isMouseDownOnSearchElements=!0}))},registerIconHandler:function(){var t=this,s=t.getFormWrapper(),i=s.find("."+t.options.formClass);s.on("click.autocomplete",".js-dgwt-wcas-search-icon-handler",function(e){var o=s.find("."+t.options.searchInputClass);if(s.hasClass("dgwt-wcas-layout-icon-open"))t.hide(),i.hide(!0),s.removeClass("dgwt-wcas-layout-icon-open");else{var a=s.find(".dgwt-wcas-search-icon-arrow");i.hide(),a.hide(),s.addClass("dgwt-wcas-layout-icon-open"),t.positionIconSearchMode(s),i.fadeIn(200,function(){a.show(),t.positionPreloader(s),o.focus()})}}),0==e(".js-dgwt-wcas-initialized").length&&e(".js-dgwt-wcas-search-icon-handler").length>0&&e(document).on("click.autocomplete",function(s){if(e(".dgwt-wcas-layout-icon-open").length){var i=e(s.target);i.closest("."+t.options.searchFormClass).length>0||i.closest("."+t.options.containerClass).length>0||i.closest("."+t.options.containerDetailsClass).length>0||t.hideIconModeSearch()}});var o=e(window).width();e(window).on("resize.autocomplete",function(){var s=e(window).width();s!=o&&(t.applyFlexibleMode(),o=s)}),"complete"==document.readyState?t.applyFlexibleMode():e(window).on("load.autocomplete",function(){t.applyFlexibleMode()})},registerEventsFixedMenu:function(){var t=this;e(window).on("scroll.autocomplete",function(){if(t.suggestions.length>0&&t.elementOrParentIsFixed(t.getFormWrapper()))if(0===e(window).scrollTop()){[1,10,20,30,40,50,60,70,80,90,120,140,170,200,250,400,700,1e3,2e3].forEach(function(e){setTimeout(function(){t.fixHeight(),t.fixPositionCapture()},e)})}else t.fixHeight(),t.fixPositionCapture()})},initMobileMode:function(){var e=this,t=e.getFormWrapper();t.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&!t.find(".js-dgwt-wcas-enable-mobile-form").length&&(t.prepend('<div class="js-dgwt-wcas-enable-mobile-form dgwt-wcas-enable-mobile-form"></div>'),t.find(".js-dgwt-wcas-enable-mobile-form").on("click.autocomplete",function(t){e.options.mobileOverlayDelay>0?setTimeout(function(){e.enableOverlayMobile()},e.options.mobileOverlayDelay):e.enableOverlayMobile()}))},destroyMobileMode:function(){var e=this.getFormWrapper(),t=(this.getSuggestionsContainer(),e.find(".js-dgwt-wcas-enable-mobile-form"));e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")&&t.length&&(this.disableOverlayMobile(),t.remove())},toggleMobileMode:function(){var e=this.getFormWrapper(),t="desktop";if(e.hasClass("js-dgwt-wcas-mobile-overlay-enabled")){if(e.find(".js-dgwt-wcas-enable-mobile-form").length&&(t="mobile"),"desktop"===t&&this.isMobileMode()||"mobile"===t&&!this.isMobileMode()){var s=this.getSuggestionsContainer();this.close(!1),s.length&&s.html(""),this.hideIconModeSearch()}"desktop"===t&&this.isMobileMode()&&this.initMobileMode(),"mobile"!==t||this.isMobileMode()||this.destroyMobileMode()}},applyFlexibleMode:function(){var t=e(".js-dgwt-wcas-layout-icon-flexible");t.length&&(this.isMobileMode()?(t.addClass("js-dgwt-wcas-layout-icon"),t.addClass("dgwt-wcas-layout-icon")):(t.removeClass("js-dgwt-wcas-layout-icon"),t.removeClass("dgwt-wcas-layout-icon")),t.addClass("dgwt-wcas-layout-icon-flexible-loaded"))},onFocus:function(t){var s=this.getFormWrapper(),i=this.options;e("."+i.searchFormClass).removeClass("dgwt-wcas-active"),s.addClass("dgwt-wcas-active"),e("body").addClass("dgwt-wcas-focused"),s.addClass("dgwt-wcas-search-focused"),0==e(t.target).closest(".dgwt-wcas-search-wrapp-mobile").length&&this.enableOverlayDarkened(),this.fixPositionCapture(),this.el.val().length>=this.options.minChars&&this.onValueChange()},onBlur:function(){var t=this.options,s=this.el.val(),i=this.getQuery(s);e("body").removeClass("dgwt-wcas-focused"),e("."+t.searchFormClass).removeClass("dgwt-wcas-search-focused"),this.isMobileMode()||this.isMouseDownOnSearchElements||(this.hide(),this.selection&&this.currentValue!==i&&(t.onInvalidateSelection||e.noop).call(this.element))},abortAjax:function(){this.currentRequest&&(this.currentRequest.abort(),this.currentRequest=null)},setOptions:function(t){var s=this,i=s.getSuggestionsContainer(),o=e.extend({},s.options,t);(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","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(e){e&&this.clearCache(),this.currentValue="",this.suggestions=[]},close:function(e){var t=this.el.closest("."+this.options.searchFormClass).find("."+this.options.searchInputClass),s=this.getFormWrapper();this.hide(),this.clear(!1),this.hideCloseButton(),t.val(""),s.removeClass(this.classes.inputFilled),e&&t.focus()},fixPosition:function(){var e=this.getFormOffset();this.getSuggestionsContainer().css(e),this.canShowDetailsBox()&&this.fixPositionDetailsBox()},fixPositionDetailsBox:function(){var t=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=this.getDetailsContainer(),o=this.getFormOffset();if(0==i.length)return!1;var a=o.left+s.outerWidth(!1);if(i.css({top:o.top,left:a}),e("body").removeClass("dgwt-wcas-full-width dgwt-wcas-details-outside dgwt-wcas-details-right dgwt-wcas-details-left dgwt-wcas-details-notfit"),t.outerWidth()>=this.options.dpusbBreakpoint)return e("body").addClass("dgwt-wcas-full-width"),void(!0===this.options.isRtl&&(a=o.left+i.outerWidth(!1),s.css("left",a),i.css("left",o.left)));var n=e(window).width(),r=i.outerWidth(),l=i.offset();e("body").addClass("dgwt-wcas-details-outside dgwt-wcas-details-right"),n<l.left+r&&(e("body").removeClass("dgwt-wcas-details-right"),e("body").addClass("dgwt-wcas-details-left"),a=s.offset().left-i.outerWidth(),i.css("left",a),l=i.offset()),l.left<1&&(e("body").removeClass("dgwt-wcas-details-left dgwt-wcas-details-right"),e("body").addClass("dgwt-wcas-details-notfit"))},fixHeight:function(){if(1!=this.options.showDetailsPanel)return!1;var e=this.getSuggestionsContainer(),t=this.getDetailsContainer();e.css("height","auto"),t.css("height","auto");var s=e.outerHeight(!1),i=t.outerHeight(!1);return e.find(".dgwt-wcas-suggestion:last-child").removeClass("dgwt-wcas-suggestion-no-border-bottom"),!(s<=340&&i<=340)&&(e.find(".dgwt-wcas-suggestion:last-child").addClass("dgwt-wcas-suggestion-no-border-bottom"),i<s&&t.css("height",s+"px"),s<i&&e.css("height",i+"px"),!1)},automaticAlignment:function(){var e=this,t=e.getFormWrapper().find(".dgwt-wcas-search-input"),s=e.getSuggestionsContainer(),i=e.getDetailsContainer();if(null==e.autoAligmentprocess){var o=[t.width(),s.height()];e.options.showDetailsPanel&&(o[2]=i.height()),e.autoAligmentprocess=setInterval(function(){var a=[t.width(),s.height()];e.options.showDetailsPanel&&(a[2]=i.height());for(var n=0;n<o.length;n++)if(o[n]!=a[n]){e.fixHeight(),e.fixPositionCapture(),o=a;break}e.options.showDetailsPanel&&(i.find(".dgwt-wcas-details-inner").height()-i.height()>2&&e.fixHeight())},10)}},getFormElementInfo:function(){var e,t=this.getFormWrapper(),s={};return t.hasClass("js-dgwt-wcas-layout-icon")&&(t=t.find("."+this.options.formClass)),e=t.offset(),s.left=e.left,s.top=e.top,s.width=t.outerWidth(!1),s.height=t.outerHeight(!1),s.right=s.left+s.width,s.bottom=s.top+s.height,s},getFormOffset:function(){var t=this.getFormWrapper(),s=this.getSuggestionsContainer(),i=t.find("."+this.options.formClass),o=this.el,a=o.offset().top,n=i.offset().left,r=this.options.orientation,l=t.outerHeight(!1),c=o.outerHeight(!1),d={top:a,left:n};if("auto"===r){var g=e(window).height(),u=e(window).scrollTop(),h=-u+a-l,p=u+g-(a+c+l);r=Math.max(h,p)===h?"top":"bottom"}if("top"===r){var w=o[0].getBoundingClientRect().top;s.css("height","auto"),w<s.height()&&s.height(w-10),d.top+=-s.outerHeight(!1)}else d.top+=c;return d},getFormWrapper:function(){return this.el.closest("."+this.options.searchFormClass)},getSuggestionsContainer:function(){return e("."+this.options.containerClass)},getDetailsContainer:function(){return e("."+this.options.containerDetailsClass)},scrollDownSuggestions:function(){var e=this.getSuggestionsContainer();e[0].scrollTop=e[0].scrollHeight},isCursorAtEnd:function(){var e,t=this.el.val().length,s=this.element.selectionStart;return"number"==typeof s?s===t:!document.selection||((e=document.selection.createRange()).moveStart("character",-t),t===e.text.length)},onKeyPress:function(e){var t=this.getFormWrapper();if(this.visible||e.keyCode!==l||!this.currentValue){if(!this.visible)return e.keyCode===i&&t.hasClass("dgwt-wcas-layout-icon-open")&&this.hideIconModeSearch(),void(e.keyCode===i&&this.isMountedOverlayDarkened()&&(this.disableOverlayDarkened(),this.el.blur()));if(!e.ctrlKey&&!e.metaKey||e.keyCode!==a){switch(e.keyCode){case i:this.close();break;case r:if(this.hint&&this.options.onHint&&this.isCursorAtEnd()){this.selectHint();break}return;case o:break;case a:if(-1===this.selectedIndex)return!this.options.disableSubmit&&void this.hide();this.actionTriggerSource="enter",this.select(this.selectedIndex);break;case n:this.moveUp();break;case l:this.moveDown();break;default:return}e.stopImmediatePropagation(),e.preventDefault()}else this.selectedIndex>-1&&this.openInNewTab(this.selectedIndex)}else this.suggest()},onKeyUp:function(e){var t=this;switch(e.keyCode){case n:case l:return}clearTimeout(t.onChangeTimeout),t.currentValue!==t.el.val()&&(t.findBestHint(),t.options.deferRequestBy>0?t.onChangeTimeout=setTimeout(function(){t.onValueChange()},t.options.deferRequestBy):t.onValueChange())},onValueChange:function(){if(this.ignoreValueChange)this.ignoreValueChange=!1;else{var t=this.options,s=this.el.val(),i=this.getQuery(s),o=this.getFormWrapper();this.selection&&this.currentValue!==i&&(this.selection=null,(t.onInvalidateSelection||e.noop).call(this.element)),clearTimeout(this.onChangeTimeout),this.currentValue=s,this.selectedIndex=-1,t.triggerSelectOnValidInput&&this.isExactMatch(i)?this.select(0):(i.length>0?o.hasClass(this.classes.inputFilled)||o.addClass(this.classes.inputFilled):o.removeClass(this.classes.inputFilled),i.length<t.minChars?(this.hideCloseButton(),this.hide()):this.getSuggestions(i))}},isExactMatch:function(e){var t=this.suggestions;return 1===t.length&&t[0].value.toLowerCase()===e.toLowerCase()},canShowDetailsBox:function(){return 1==this.options.showDetailsPanel&&!this.isMobileMode()},isMobileMode:function(){return e(window).width()<this.options.mobileBreakpoint},getQuery:function(t){var s,i=this.options.delimiter;return i?(s=t.split(i),e.trim(s[s.length-1])):t.trim()},getSuggestionsLocal:function(t){var s,i=this.options,o=t.toLowerCase(),a=i.lookupFilter,n=parseInt(i.lookupLimit,10);return s={suggestions:e.grep(i.lookup,function(e){return a(e,t,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(),u=l.isActiveIconModeSearch();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,e.isFunction(c.lookup)?c.lookup(i,function(e){l.suggestions=e.suggestions,l.suggest(),l.selectFirstSuggestion(e.suggestions),c.onSearchComplete.call(l.element,i,e.suggestions)}):(l.isLocal?o=l.getSuggestionsLocal(i):(e.isFunction(d)&&(d=d.call(l.element,i)),n=d+"?"+e.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},e.extend(r,c.ajaxSettings),s.object=l,s.ajaxSettings=r,t.debounce(function(){var t=s.object,o=s.ajaxSettings;t.currentRequest=e.ajax(o).done(function(e){var s;u&&!t.isActiveIconModeSearch()||(t.currentRequest=null,void 0!==(s=t.options.transformResult(e,i)).suggestions&&(t.processResponse(s,i,n),t.selectFirstSuggestion(s.suggestions),1===s.suggestions.length&&void 0!==s.suggestions[0].type&&"no-results"===s.suggestions[0].type?t.gaEvent(i,"Autocomplete Search without results"):t.gaEvent(i,"Autocomplete Search with results")),t.fixPositionCapture(),t.options.onSearchComplete.call(t.element,i,s.suggestions),t.updatePrices())}).fail(function(e,s,o){t.options.onSearchError.call(t.element,i,e,s,o)})},c.debounceWaitMs))))},getDetails:function(t){var s=this;if(!s.canShowDetailsBox())return!1;if(null!=t&&void 0!==t.type&&("string"!=typeof t.type||"more_products"!==t.type)){s.fixHeight();s.getDetailsContainer();var i=s.prepareSuggestionObjectID(t);if(null!=s.cachedDetails[i])s.detailsPanelSetScene(i),s.fixHeight(),s.fixPositionCapture();else{var o={action:dgwt_wcas.action_result_details,items:[]};if(e.each(s.suggestions,function(e,t){if(void 0!==t.type&&"more_products"!=t.type&&"headline"!=t.type){var i={objectID:s.prepareSuggestionObjectID(t),value:null!=t.value?t.value:""};o.items.push(i)}}),s.detailsPanelClearScene(),s.preloader("show","details",""),-1!=e.inArray(i,s.detailsRequestsSent))return;s.detailsRequestsSent.push(i),e.ajax({data:o,type:"post",url:dgwt_wcas.ajax_details_endpoint,success:function(e){var t="string"==typeof e?JSON.parse(e):e;if(void 0!==t.items)for(var i=0;i<t.items.length;i++){var o=t.items[i].objectID;s.cachedDetails[o]={html:t.items[i].html},s.detailsPanelAddToScene(o),void 0!==t.items[i].price&&t.items[i].price.length>0&&(s.cachedPrices[o]=t.items[i].price)}s.preloader("hide","details","");var a=s.prepareSuggestionObjectID(s.suggestions[s.selectedIndex]);null!=s.cachedDetails[a]?s.detailsPanelSetScene(a):s.detailsPanelClearScene(),s.fixPositionCapture(),s.fixHeight(),s.updatePrices(!0)},error:function(e,t){s.preloader("hide","details",""),s.detailsPanelClearScene(),s.fixPositionCapture(),s.fixHeight()}})}e(document).trigger("dgwtWcasDetailsPanelLoaded",s)}},updatePrices:function(t){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(!t&&a.length>0){var r={action:void 0===dgwt_wcas.action_get_prices?"dgwt_wcas_get_prices":dgwt_wcas.action_get_prices,items:a};e.ajax({data:r,type:"post",url:dgwt_wcas.ajax_prices_endpoint,success:function(e){if(void 0!==e.success&&e.success&&e.data.length>0)for(s=0;s<e.data.length;s++){var t=e.data[s].id,a=e.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==t){var n="product__"+t;o.cachedPrices[n]=a,o.updatePrice(i,a)}}},error:function(e,t){}})}}},updatePrice:function(t,s){if(void 0!==this.suggestions[t]){this.suggestions[t].price=s;var i=e(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+t+'"] .dgwt-wcas-sp');i.length&&i.html(s)}},applyCustomParams:function(e){if("object"==typeof dgwt_wcas.custom_params){var t=dgwt_wcas.custom_params;for(var s in t)e[s]=t[s]}var i=this.el.data("custom-params");if("object"==typeof i)for(var s in i)e[s]=i[s];return e},applyPreloaderForPrice:function(t){if(void 0!==this.suggestions[t]){var s=e(".dgwt-wcas-suggestions-wrapp").find('[data-index="'+t+'"] .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(e){var t="";return void 0!==e&&void 0!==e.type&&(null!=e.post_id&&(t=e.type+"__"+e.post_id,"product_variation"===e.type&&(t+="__"+e.variation_id),void 0!==e.post_type&&(t=e.type+"__"+e.post_id+"__"+e.post_type)),null!=e.term_id&&null!=e.taxonomy&&(t=e.type+"__"+e.term_id+"__"+e.taxonomy)),t},detailsPanelSetScene:function(e){var s=this.getDetailsContainer(),i=t.hashCode(e),o=s.find('.dgwt-wcas-details-inner[data-object="'+i+'"]');o.length&&(this.preloader("hide","details",""),this.detailsPanelClearScene(),o.addClass("dgwt-wcas-details-inner-active"))},detailsPanelAddToScene:function(e){var s=this.getDetailsContainer(),i=this.cachedDetails[e],o=t.hashCode(e),a="";void 0!==i&&"string"==typeof i.html&&(a=i.html.replace("<div ",'<div data-object="'+o+'" ')),0==s.find('.dgwt-wcas-details-inner[data-object="'+o+'"]').length&&s.append(a)},detailsPanelClearScene:function(){var e=this.getDetailsContainer().find(".dgwt-wcas-details-inner");e.length&&e.removeClass("dgwt-wcas-details-inner-active")},selectFirstSuggestion:function(t){var s=0,i=!1;this.canShowDetailsBox()&&("undefined"!=t&&t.length>0&&e.each(this.suggestions,function(e,t){if(void 0!==t.type&&"more_products"!=t.type&&"headline"!=t.type&&"no-results"!=t.type)return s=e,!1;void 0!==t.type&&"no-results"!==t.type||(i=!0)}),i||(this.latestActivateSource="system",this.getDetails(t[s]),this.activate(s)))},isBadQuery:function(e){if(!this.options.preventBadQueries)return!1;for(var t=this.badQueries,s=t.length;s--;)if(0===e.indexOf(t[s]))return!0;return!1},hide:function(t){this.getFormWrapper();var s=this.getSuggestionsContainer(),i=this.getDetailsContainer();e.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(),e("body").removeClass("dgwt-wcas-open"),e("body").removeClass("dgwt-wcas-block-scroll"),e("body").removeClass("dgwt-wcas-is-details"),e("body").removeClass("dgwt-wcas-full-width"),e("body").removeClass("dgwt-wcas-nores"),e("body").removeClass("dgwt-wcas-details-outside"),e("body").removeClass("dgwt-wcas-details-right"),e("body").removeClass("dgwt-wcas-details-left"),null!=this.autoAligmentprocess&&(clearInterval(this.autoAligmentprocess),this.autoAligmentprocess=null),this.isMouseDownOnSearchElements=!1,"boolean"==typeof t&&t&&(this.hideCloseButton(),this.currentValue="",this.suggestions=[]),this.signalHint(null)},positionIconSearchMode:function(t){var s=-20,i=t.find("."+this.options.formClass),o=i.width(),a=e(window).width(),n=t[0].getBoundingClientRect().left;i[0].getBoundingClientRect().left;var r=(n+10)/a;s=Math.floor(o*r*-1),s=Math.max(s,-1*n),i.css({left:s+"px"})},isActiveIconModeSearch:function(){var t=!1;return e(".dgwt-wcas-layout-icon-open").length>0&&(t=!0),t},hideIconModeSearch:function(){this.isActiveIconModeSearch()&&!t.isTextSelected()&&e(".dgwt-wcas-layout-icon-open").removeClass("dgwt-wcas-layout-icon-open")},hideAfterClickOutsideListener:function(){var t=this;t.isMobileMode()||e(document).mouseup(function(s){if(t.visible){t.getSuggestionsContainer(),t.getDetailsContainer();var i=!(e(s.target).closest("."+t.options.searchFormClass).length>0||e(s.target).hasClass(t.options.searchFormClass)),o=!(e(s.target).closest("."+t.options.containerClass).length>0||e(s.target).hasClass(t.options.containerClass));if(t.canShowDetailsBox()){var a=!(e(s.target).closest("."+t.options.containerDetailsClass).length>0||e(s.target).hasClass(t.options.containerDetailsClass));i&&o&&a&&t.hide()}else i&&o&&t.hide()}})},suggest:function(){if(this.suggestions.length){var t,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=e(s.noSuggestionsContainer),u=i.beforeRender,h="";i.triggerSelectOnValidInput&&s.isExactMatch(n)?s.select(0):(e("body").removeClass("dgwt-wcas-nores"),e.each(s.suggestions,function(l,c){var d="",g=!1,u="string"==typeof c.url&&c.url.length?c.url:"#";if(o&&(h+=function(e,s){var i=e.data[o];return t===i?"":'<div class="autocomplete-group"><strong>'+(t=i)+"</strong></div>"}(c,0)),void 0===c.type||"product"!=c.type&&"product_variation"!=c.type){var p,w=r,f="dgwt-wcas-st",m="",v="",b="",y=!0;"product_cat"===c.taxonomy?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-cat",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>"),void 0!==c.breadcrumbs&&c.breadcrumbs&&(b=c.breadcrumbs+" &gt; "+c.value,v+='<span class="dgwt-wcas-st-breadcrumbs">'+dgwt_wcas.labels.in+" "+c.breadcrumbs+"</span>")):"product_tag"===c.taxonomy?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tag",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&c.taxonomy===i.taxonomyBrands?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-brand",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&"taxonomy"===c.type?(w+=" dgwt-wcas-suggestion-tax dgwt-wcas-suggestion-tax-"+c.taxonomy,i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels["tax_"+c.taxonomy]+"</span>")):i.isPremium&&"vendor"===c.type?(w+=" dgwt-wcas-suggestion-vendor dgwt-wcas-suggestion-vendor",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.vendor+"</span>")):i.isPremium&&"post"===c.type?(w+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-tp-post",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.post+"</span>")):i.isPremium&&"page"===c.type?(w+=" dgwt-wcas-suggestion-pt dgwt-wcas-suggestion-pt-page",i.showHeadings||(m+='<span class="dgwt-wcas-st--direct-headline">'+dgwt_wcas.labels.page+"</span>")):"more_products"===c.type?(w+=" js-dgwt-wcas-suggestion-more dgwt-wcas-suggestion-more",f="dgwt-wcas-st-more",c.value=dgwt_wcas.labels.show_more+" ("+c.total+")",y=!1):i.showHeadings&&"headline"===c.type?(w+=" js-dgwt-wcas-suggestion-headline dgwt-wcas-suggestion-headline",void 0!==dgwt_wcas.labels[c.value+"_plu"]&&(c.value=dgwt_wcas.labels[c.value+"_plu"]),y=!1):(w+=" dgwt-wcas-suggestion-nores",c.value=dgwt_wcas.labels.no_results,y=!1,!0===i.showDetailsPanel&&s.detailsPanelClearScene(),e("body").addClass("dgwt-wcas-nores")),void 0!==c.image_src&&c.image_src&&(p=!0),b=b.length>0?' title="'+b+'"':"",h+='<a href="'+u+'" class="'+w+'" data-index="'+l+'">',p&&(h+='<span class="dgwt-wcas-si"><img src="'+c.image_src+'" /></span>',h+='<div class="dgwt-wcas-content-wrapp">'),h+="<span"+b+' class="'+f+'">',"vendor"===c.type?(h+='<span class="dgwt-wcas-st-title">'+m+a(c.value,n,y,i)+v+"</span>",c.shop_city&&(h+='<span class="dgwt-wcas-vendor-city"><span> - </span>'+a(c.shop_city,n,!0,i)+"</span>"),void 0!==c.desc&&c.desc&&(h+='<span class="dgwt-wcas-sd">'+a(c.desc,n,!0,i)+"</span>")):h+=m+a(c.value,n,y,i)+v,h+="</span>",h+=p?"</div>":"",h+="</a>"}else{!0===i.showImage&&void 0!==c.thumb_html&&(g=!0);var C="product_variation"===c.type?" dgwt-wcas-suggestion-product-var":"";if(d+=void 0!==c.post_id?'data-post-id="'+c.post_id+'" ':"",d+=void 0!==c.taxonomy?'data-taxonomy="'+c.taxonomy+'" ':"",d+=void 0!==c.term_id?'data-term-id="'+c.term_id+'" ':"",h+='<a href="'+u+'" class="'+r+" dgwt-wcas-suggestion-product"+C+'" data-index="'+l+'" '+d+">",g&&(h+='<span class="dgwt-wcas-si">'+c.thumb_html+"</span>"),h+=g?'<div class="dgwt-wcas-content-wrapp">':"",h+='<div class="dgwt-wcas-st">',void 0!==c.title_before&&c.title_before&&(h+=c.title_before),h+='<span class="dgwt-wcas-st-title">'+a(c.value,n,!0,i)+"</span>",void 0!==c.title_after&&c.title_after&&(h+=c.title_after),!0===i.showSKU&&void 0!==c.sku&&c.sku.length>0&&(h+='<span class="dgwt-wcas-sku">('+dgwt_wcas.labels.sku_label+" "+a(c.sku,n,!0,i)+")</span>"),!0===i.showDescription&&void 0!==c.desc&&c.desc&&(h+='<span class="dgwt-wcas-sd">'+a(c.desc,n,!0,i)+"</span>"),!0===i.showProductVendor&&void 0!==c.vendor&&c.vendor){var _='<span class="dgwt-wcas-product-vendor"><span class="dgwt-wcas-product-vendor-label">'+dgwt_wcas.labels.vendor_sold_by+" </span>"+c.vendor+"</span>";void 0!==c.vendor_url&&c.vendor_url?h+='<span class="dgwt-wcas-product-vendor-link" data-url="'+c.vendor_url+'">'+_+"</span>":h+=_}void 0!==c.content_after&&c.content_after&&(h+=c.content_after),h+="</div>";var S=!0===i.showPrice&&void 0!==c.price,x=void 0!==c.meta_before,D=void 0!==c.meta_after,M=S||x||D;h+=M?'<div class="dgwt-wcas-meta">':"",x&&(h+=c.meta_before),S&&(h+='<span class="dgwt-wcas-sp">'+c.price+"</span>"),D&&(h+=c.meta_after),h+=M?"</div>":"",h+=g?"</div>":"",h+="</a>"}}),this.adjustContainerWidth(),g.detach(),c.html(h),e.isFunction(u)&&u.call(s.element,c,s.suggestions),c.show(),e("body").addClass("dgwt-wcas-open"),s.isMouseDownOnSearchElements=!1,s.automaticAlignment(),!0===i.showDetailsPanel&&(e("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),e("body").addClass("dgwt-wcas-block-scroll"),setTimeout(function(){s.scrollDownSuggestions()},300)),s.findBestHint())}else this.hide()},adjustContainerWidth:function(){var e=this.getFormWrapper(),t=this.getSuggestionsContainer(),s=this.getDetailsContainer(),i=e.find("."+this.options.formClass).outerWidth();if(e.length&&(t.css("width",i+"px"),this.canShowDetailsBox()&&i>=this.options.dpusbBreakpoint)){var o;t.css("width",i/2),s.css("width",i/2),0!=(o=i-(t.outerWidth()+s.outerWidth()))&&s.css("width",s.outerWidth()+o)}},positionPreloader:function(t){var s="object"==typeof t?t.find(".dgwt-wcas-search-submit"):e(".dgwt-wcas-search-submit");s.length>0&&s.each(function(){var t=e(this).closest(".dgwt-wcas-search-wrapp").find(".dgwt-wcas-preloader");1==dgwt_wcas.is_rtl?t.css("left",6+e(this).outerWidth()+"px"):t.css("right",e(this).outerWidth()+"px")})},findBestHint:function(){var t=this.el.val().toLowerCase(),s=null;t&&(e.each(this.suggestions,function(e,i){var o=0===i.value.toLowerCase().indexOf(t);return o&&(s=i),!o}),this.signalHint(s))},signalHint:function(t){var s="";t&&(s=this.currentValue+t.value.substr(this.currentValue.length)),this.hintValue!==s&&(this.hintValue=s,this.hint=t,(this.options.onHint||e.noop)(s))},preloader:function(e,t,s){var i,o,a="dgwt-wcas-preloader-wrapp",n=null==s?a:a+" "+s;if("form"===t){if(1!=dgwt_wcas.show_preloader)return;o=this.getFormWrapper().find(".dgwt-wcas-preloader")}else"details"===t&&(o=this.getDetailsContainer());if(0!=o.length)if("form"!==t){var r=o.find("."+a);if("hide"!==e){if("show"===e){var l=this.options.isRtl?"-rtl":"";i='<div class="'+n+'"><img class="dgwt-wcas-placeholder-preloader" src="'+dgwt_wcas.img_url+"placeholder"+l+'.png" /></div>',this.detailsPanelClearScene(),r.length&&r.remove(),o.prepend(i)}}else r.length&&r.remove()}else"hide"===e?(o.removeClass(s),o.html("")):(o.addClass(s),"string"==typeof dgwt_wcas.preloader_icon&&o.html(dgwt_wcas.preloader_icon))},verifySuggestionsFormat:function(t){return t.length&&"string"==typeof t[0]?e.map(t,function(e){return{value:e,data:null}}):t},validateOrientation:function(t,s){return t=e.trim(t||"").toLowerCase(),-1===e.inArray(t,["auto","bottom","top"])&&(t=s),t},processResponse:function(e,t,s){var i=this.options;e.suggestions=this.verifySuggestionsFormat(e.suggestions),i.noCache||(this.cachedResponse[s]=e,i.preventBadQueries&&!e.suggestions.length&&this.badQueries.push(t)),t===this.getQuery(this.currentValue)&&("top"===this.options.orientation&&e.suggestions.reverse(),this.suggestions=e.suggestions,this.suggest())},activate:function(t){var s,i=this.classes.selected,o=this.getSuggestionsContainer(),a=o.find("."+this.classes.suggestion);return o.find("."+i).removeClass(i),this.selectedIndex=t,-1!==this.selectedIndex&&a.length>this.selectedIndex?(s=a.get(this.selectedIndex),e(s).addClass(i),s):null},selectHint:function(){var t=e.inArray(this.hint,this.suggestions);this.select(t)},select:function(e){this.options.disableHits||(this.disableOverlayMobile(),this.hide(),this.onSelect(e))},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(t,s){if("headline"===this.suggestions[t].type&&(t="down"===s?t+1:t-1),void 0!==this.suggestions[t]){var i=this.activate(t);if(this.getDetails(this.suggestions[t]),"more_products"!==this.suggestions[t].type&&i&&!this.canShowDetailsBox()){var o,a,n,r=this.getSuggestionsContainer(),l=e(i).outerHeight(!1);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(t){var s=this.options.onSelect,i=this.suggestions[t];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.replace(/(<([^>]+)>)/gi," ").replace(/\s\s+/g," ")),i.url.length>0&&(window.location.href=i.url),this.signalHint(null),this.suggestions=[],this.selection=i,e.isFunction(s)&&s.call(this.element,i)):this.el.closest("form").trigger("submit")},openInNewTab:function(e){var t=this.suggestions[e];t.url.length>0&&window.open(t.url,"_blank").focus()},getValue:function(e){var t,s,i=this.options.delimiter;return i?1===(s=(t=this.currentValue).split(i)).length?e:t.substr(0,t.length-s[s.length-1].length)+e:e},dispose:function(){var t=this.el,s=this.getFormWrapper(),i=this.getSuggestionsContainer(),o=(this.getDetailsContainer(),t.closest("."+this.options.formClass),s.find(".js-dgwt-wcas-enable-mobile-form"));s.length&&s.find("*").each(function(){e(this).off(".autocomplete")});t.removeData("autocomplete"),e(window).off("resize.autocomplete",this.fixPositionCapture),s.removeClass("dgwt-wcas-active"),this.close(!1),o.length&&o.remove(),i.length&&i.html("")},isMountedOverlayDarkened:function(){var e=!1;return this.getFormWrapper().hasClass(this.classes.darkenOverlayMounted)&&(e=!0),e},enableOverlayDarkened:function(){var t=this,s=t.options;if(t.isMountedOverlayDarkened()){if(t.getFormWrapper().addClass("dgwt-wcas-search-darkoverl-on"),e("body").addClass("dgwt-wcas-darkoverl-on"),0==e("."+s.darkenedOverlayClass).length){var i='<div class="'+s.darkenedOverlayClass+'"><div></div><div></div><div></div><div></div></div>';e("body").append(i);var o=e("."+t.options.darkenedOverlayClass);t.positionOverlayDarkened(),o.on("click.autocomplete",function(e){t.disableOverlayDarkened()})}t.overlayDarkenedState="on"}},disableOverlayDarkened:function(){var t,s=this.options;if(this.isMountedOverlayDarkened()){(t=e(".dgwt-wcas-search-darkoverl-on")).length&&t.removeClass("dgwt-wcas-search-darkoverl-on"),e("body").removeClass("dgwt-wcas-darkoverl-on");var i=e("."+s.darkenedOverlayClass);i.length>0&&(i.remove(),this.overlayDarkenedState="off")}},positionOverlayDarkened:function(){var t=this,s=e("."+t.options.darkenedOverlayClass);s.length>0&&s.children("div").each(function(s){t.positionOverlayDarkenedDiv(e(this),s+1)})},positionOverlayDarkenedDiv:function(t,s){var i,o=this.getFormElementInfo();switch(s){case 1:i={left:"-200px",top:"-200px",width:o.left+200+"px",height:e(document).outerHeight(!1)+200-1+"px"};break;case 2:i={left:"-200px",top:"-200px",width:e(window).outerWidth(!1)+200+"px",height:o.top+200+"px"};break;case 3:i={left:o.left+o.width+"px",top:"-200px",width:e(window).outerWidth(!1)-o.right+"px",height:e(document).outerHeight(!1)+200-1+"px"};break;case 4:i={left:"-200px",top:o.top+o.height+"px",width:e(window).outerWidth(!1)+200+"px",height:e(document).outerHeight(!1)-o.bottom-1+"px"}}i&&t.css(i)},enableOverlayMobile:function(){var t=this;if("on"!==t.overlayMobileState){t.overlayMobileState="on";var s,i=t.getFormWrapper(),o=t.getSuggestionsContainer(),a="";e("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+="</button>",a+="</div>",a+="</div>",e(t.options.mobileOverlayWrapper).append(a),(s=e(".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("."+t.options.searchInputClass).focus(),e(document).on("click.autocomplete",".js-dgwt-wcas-om-return",function(e){t.disableOverlayMobile(s)})}},disableOverlayMobile:function(t){var s=this;if(e("html").hasClass("dgwt-wcas-overlay-mobile-on")){var i=s.getSuggestionsContainer(),o=e(".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"),e("html").removeClass("dgwt-wcas-overlay-mobile-on"),i.appendTo("body"),i.removeAttr("body-scroll-lock-ignore"),e(".js-dgwt-wcas-om-hook").after(o),e(".js-dgwt-wcas-overlay-mobile").remove(),e(".js-dgwt-wcas-om-hook").remove(),setTimeout(function(){o.find("."+s.options.searchInputClass).val("");var e=o.find(".dgwt-wcas-close");o.length>0&&(e.removeClass("dgwt-wcas-close"),e.html("")),s.hide()},150),s.overlayMobileState="off"}else s.overlayMobileState="off"},showCloseButton:function(){var e=this,t=void 0!==dgwt_wcas.close_icon?dgwt_wcas.close_icon:"",s=e.getFormWrapper().find("."+e.options.preloaderClass);s.hasClass(e.options.closeTrigger)||s.on("click.autocomplete",function(){e.close(!0)}),s.addClass(e.options.closeTrigger),s.html(t)},hideCloseButton:function(){var e=this.getFormWrapper().find("."+this.options.closeTrigger);e.length&&(e.removeClass(this.options.closeTrigger),e.html("")),e.off("click.autocomplete")},elementOrParentIsFixed:function(t){var s=t.add(t.parents()),i=!1;return s.each(function(){if("fixed"===e(this).css("position"))return i=!0,!1}),i},gaEvent:function(t,s){var i=!(!window.hasOwnProperty("GoogleAnalyticsObject")||!window.hasOwnProperty(window.GoogleAnalyticsObject))&&window[window.GoogleAnalyticsObject];if(this.options.sendGAEvents)try{if("undefined"!=typeof gtag)gtag("event","autocomplete_search",{event_label:t,event_category:s});else if(!1!==i){var o=i.getAll()[0];o&&o.send({hitType:"event",eventCategory:s,eventAction:"autocomplete_search",eventLabel:t})}}catch(e){}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(!1!==i){var a=i.getAll()[0];a&&(a.set("page","/?s="+encodeURI(t)+"&post_type=product&dgwt_wcas=1"),a.send("pageview"))}}catch(e){}e(document).trigger("dgwtWcasGAEvent",{term:t,category:s})}},e.fn.dgwtWcasAutocomplete=function(t,s){return arguments.length?this.each(function(){var i=e(this),o=i.data("autocomplete");"string"==typeof t?o&&"function"==typeof o[t]&&o[t](s):(o&&o.dispose&&o.dispose(),o=new d(this,t),i.data("autocomplete",o))}):this.first().data("autocomplete")},e.fn.autocomplete||(e.fn.autocomplete=e.fn.dgwtWcasAutocomplete),function(){function t(){var t=e(".dgwt-wcas-search-input"),s=[];t.length>1&&t.each(function(){var t=e(this).attr("id");if(-1==e.inArray(t,s))s.push(t);else{var i=Math.random().toString(36).substring(2,6);i="dgwt-wcas-search-input-"+i,e(this).attr("id",i),e(this).closest("form").find("label").attr("for",i)}})}function s(){var t=e(".dgwt-wcas-search-input");t.length>0&&t.each(function(){"object"!=typeof e(this).data("autocomplete")&&e(this).dgwtWcasAutocomplete(window.dgwt_wcas.config)})}navigator.userAgent.match(/Trident\/7\./)&&function(e,t){function s(e,t){var s=arguments.length>2?arguments[2]:[];if(!1===a(e))throw new TypeError(Object.prototype.toString.call(e)+"is not a function.");return e.apply(t,s)}function i(e,t,s){var i={value:s,writable:!0,enumerable:!1,configurable:!0};Object.defineProperty(e,t,i)}function o(e,t){return e[t]}function a(e){return"function"==typeof e}function n(e){if(null===e||e===t)throw TypeError();return Object(e)}function r(e,s){var i=function(e,t){return n(e)[t]}(e,s);if(null===i||i===t)return t;if(!1===a(i))throw new TypeError("Method not callable: "+s);return i}function l(t){switch(typeof t){case"undefined":return"undefined";case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"symbol":return"symbol";default:return null===t?"null":"Symbol"in e&&(t instanceof e.Symbol||t.constructor===e.Symbol)?"symbol":"object"}}function c(s){if("object"!==l(s))return!1;var i="Symbol"in e&&"match"in e.Symbol?o(s,e.Symbol.match):t;if(i!==t)return Boolean(i);try{var a=s.lastIndex;return s.lastIndex=0,RegExp.prototype.exec.call(s),!0}catch(e){}finally{s.lastIndex=a}return!1}function d(e,t){return l(e)===l(t)&&("number"===l(e)?!(!isNaN(e)||!isNaN(t))||1/e==1/0&&1/t==-1/0||1/e==-1/0&&1/t==1/0||e===t:function(e,t){return e===t}(e,t))}function g(e){if("symbol"===l(e))throw new TypeError("Cannot convert a Symbol value to a number");var t=Number(e);return isNaN(t)?0:1/t==1/0||1/t==-1/0||t===1/0||t===-1/0?t:(t<0?-1:1)*Math.floor(Math.abs(t))}function u(i){var n=arguments.length>1?arguments[1]:t;if("object"===l(i)){if(arguments.length<2)var c="default";else n===String?c="string":n===Number&&(c="number");var d="function"==typeof e.Symbol&&"symbol"==typeof e.Symbol.toPrimitive?r(i,e.Symbol.toPrimitive):t;if(d!==t){var g=s(d,i,[c]);if("object"!==l(g))return g;throw new TypeError("Cannot convert exotic object to primitive.")}return"default"===c&&(c="number"),function(e,t){if("string"===t)var i=["toString","valueOf"];else i=["valueOf","toString"];for(var n=0;n<i.length;++n){var r=o(e,i[n]);if(a(r)){var c=s(r,e);if("object"!==l(c))return c}}throw new TypeError("Cannot convert to primitive.")}(i,c)}return i}function h(e){switch(l(e)){case"symbol":throw new TypeError("Cannot convert a Symbol value to a string");case"object":return h(u(e,String));default:return String(e)}}i(Array.prototype,"includes",function(e){var t=n(this),s=function(e){var t=g(e);return t<=0?0:Math.min(t,Math.pow(2,53)-1)}(o(t,"length"));if(0===s)return!1;var i=g(arguments[1]);if(i>=0)var a=i;else(a=s+i)<0&&(a=0);for(;a<s;){if(d(e,o(t,h(a))))return!0;a+=1}return!1}),i(String.prototype,"includes",function(e){var s=arguments.length>1?arguments[1]:t,i=h(function(e){if(null===e||e===t)throw TypeError(Object.prototype.toString.call(e)+" is not coercible to Object.");return e}(this));if(c(e))throw new TypeError("First argument to String.prototype.includes must not be a regular expression");var o=h(e),a=g(s),n=i.length,r=Math.min(Math.max(a,0),n);return-1!==String.prototype.indexOf.call(i,o,r)})}("object"==typeof window&&window||"object"==typeof self&&self||"object"==typeof global&&global||{}),e(document).ready(function(){(["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document)&&e("html").addClass("dgwt-wcas-is-ios");var t=1==dgwt_wcas.show_details_box,s=dgwt_wcas.mobile_breakpoint;(jQuery(window).width()<s||"ontouchend"in document)&&(t=!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:t,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,mobileOverlayDelay:dgwt_wcas.mobile_overlay_delay,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),disableHits:!(void 0===dgwt_wcas.disable_hits||!dgwt_wcas.disable_hits),disableSubmit:!(void 0===dgwt_wcas.disable_submit||!dgwt_wcas.disable_submit)},e(".dgwt-wcas-search-input").dgwtWcasAutocomplete(window.dgwt_wcas.config)}),e(window).on("load",function(){var t=0,s=setInterval(function(){var i=document.activeElement;if("object"==typeof i&&e(i).length&&e(i).hasClass("dgwt-wcas-search-input")){var o=e(i).closest(".dgwt-wcas-search-wrapp");o.length&&!o.hasClass("dgwt-wcas-active")&&(o.addClass("dgwt-wcas-active"),clearInterval(s))}t>10&&clearInterval(s),t++},500)}),e(document).ready(function(){setTimeout(function(){t(),s()},500)}),e(window).on("load",function(){setTimeout(function(){t(),s()},500),void 0!==window.elementorFrontend&&void 0!==window.elementorFrontend.documentsManager&&void 0!==window.elementorFrontend.documentsManager.documents&&e.each(elementorFrontend.documentsManager.documents,function(e,t){void 0!==t.getModal&&t.getModal&&t.getModal().on("show",function(){setTimeout(function(){s()},300)})})}),e(document.body).on("added_to_cart",function(){e(document.body).hasClass("woocommerce-checkout")&&e(".dgwt-wcas-search-input").length>0&&e(document.body).trigger("update_checkout")})}(),e(document).ready(function(){e('[href^="#elementor-action%3Aaction%3Dpopup%3Aopen"]').length>0&&e(document).on("elementor/popup/show",()=>{var t=e(".elementor-popup-modal .dgwt-wcas-search-input");t.length>0&&t.each(function(){var t=e(this);setTimeout(function(){"object"==typeof t.data("autocomplete")&&t.data("autocomplete").dispose(),t.dgwtWcasAutocomplete(window.dgwt_wcas.config)},500)})})})});
includes/Admin/Promo/Upgrade.php CHANGED
@@ -76,7 +76,7 @@ class Upgrade {
76
  ?>
77
  <script>
78
  (function ($) {
79
- $(document).on('click', '.dgwt-wcas-premium-only label, .dgwt-wcas-premium-only input, .dgwt-wcas-premium-only button, .dgwt-wcas-premium-only--trigger', function (e) {
80
  triggerModal(e);
81
  });
82
 
76
  ?>
77
  <script>
78
  (function ($) {
79
+ $(document).on('click', '.dgwt-wcas-premium-only label, .dgwt-wcas-premium-only input, .dgwt-wcas-premium-only button, .dgwt-wcas-premium-only textarea, .dgwt-wcas-premium-only--trigger', function (e) {
80
  triggerModal(e);
81
  });
82
 
includes/Admin/SettingsAPI.php CHANGED
@@ -627,7 +627,8 @@ class SettingsAPI
627
  _e( 'No rules', 'ajax-search-for-woocommerce' );
628
  ?></p><br>
629
  </div>
630
- <button class="button button-secondary"><?php
 
631
  _e( 'Add new rule', 'ajax-search-for-woocommerce' );
632
  ?></button>
633
  </div>
@@ -674,13 +675,64 @@ class SettingsAPI
674
  if ( $option['name'] != $slug ) {
675
  continue;
676
  }
677
- // Return the callback name
678
- return ( isset( $option['sanitize_callback'] ) && is_callable( $option['sanitize_callback'] ) ? $option['sanitize_callback'] : false );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679
  }
680
  }
681
  return false;
682
  }
683
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
684
  /**
685
  * Get the value of a settings field
686
  *
@@ -744,7 +796,8 @@ class SettingsAPI
744
  echo $form['id'] ;
745
  ?>" class="<?php
746
  echo $this->prefix ;
747
- ?>group" style="display: none;">
 
748
 
749
  <?php
750
  do_action( $this->prefix . 'form_top_' . $form['id'], $form );
@@ -757,7 +810,9 @@ class SettingsAPI
757
  submit_button();
758
  ?>
759
  </div>
760
-
 
 
761
  </div>
762
  <?php
763
  }
@@ -788,6 +843,7 @@ class SettingsAPI
788
  $group.addClass('dgwt-wcas-group-active');
789
  $group.closest('.js-dgwt-wcas-settings-body').attr('data-dgwt-wcas-active', name)
790
 
 
791
  }
792
 
793
  //Initiate Color Picker
627
  _e( 'No rules', 'ajax-search-for-woocommerce' );
628
  ?></p><br>
629
  </div>
630
+ <button
631
+ class="button button-secondary"><?php
632
  _e( 'Add new rule', 'ajax-search-for-woocommerce' );
633
  ?></button>
634
  </div>
675
  if ( $option['name'] != $slug ) {
676
  continue;
677
  }
678
+ // First check if sanitize_callback was added directly to the option
679
+ if ( !empty($option['sanitize_callback']) && is_callable( $option['sanitize_callback'] ) ) {
680
+ return $option['sanitize_callback'];
681
+ }
682
+ // Not added? Sanitize it based on a type
683
+ switch ( $option['type'] ) {
684
+ case 'checkbox':
685
+ $sanitize_callback = array( __CLASS__, 'sanitize_checkbox' );
686
+ break;
687
+ case 'number':
688
+ $sanitize_callback = 'intval';
689
+ break;
690
+ case 'text':
691
+ case 'textarea':
692
+ $sanitize_callback = 'wp_kses_post';
693
+ break;
694
+ case 'color':
695
+ $sanitize_callback = array( __CLASS__, 'sanitize_color' );
696
+ break;
697
+ case 'select':
698
+ $sanitize_callback = 'sanitize_key';
699
+ break;
700
+ case 'file':
701
+ $sanitize_callback = 'esc_url';
702
+ break;
703
+ default:
704
+ $sanitize_callback = 'wp_kses_post';
705
+ }
706
+ return ( !empty($sanitize_callback) && is_callable( $sanitize_callback ) ? $sanitize_callback : false );
707
  }
708
  }
709
  return false;
710
  }
711
 
712
+ /**
713
+ * Sanitize checkbox
714
+ *
715
+ * @param string $value
716
+ *
717
+ * @return string
718
+ */
719
+ public static function sanitize_checkbox( $value )
720
+ {
721
+ return ( in_array( $value, array( 'on', 'off' ) ) ? $value : '' );
722
+ }
723
+
724
+ /**
725
+ * Sanitize color
726
+ *
727
+ * @param string $value
728
+ *
729
+ * @return string
730
+ */
731
+ public static function sanitize_color( $value )
732
+ {
733
+ return ( preg_match( '/^#[a-f0-9]{6}$/i', $value ) ? $value : '' );
734
+ }
735
+
736
  /**
737
  * Get the value of a settings field
738
  *
796
  echo $form['id'] ;
797
  ?>" class="<?php
798
  echo $this->prefix ;
799
+ ?>group"
800
+ style="display: none;">
801
 
802
  <?php
803
  do_action( $this->prefix . 'form_top_' . $form['id'], $form );
810
  submit_button();
811
  ?>
812
  </div>
813
+ <?php
814
+ do_action( $this->prefix . 'form_end_' . $form['id'], $form );
815
+ ?>
816
  </div>
817
  <?php
818
  }
843
  $group.addClass('dgwt-wcas-group-active');
844
  $group.closest('.js-dgwt-wcas-settings-body').attr('data-dgwt-wcas-active', name)
845
 
846
+ $(document).trigger('dgwt_wcas_settings_group_active', $group);
847
  }
848
 
849
  //Initiate Color Picker
includes/Admin/Troubleshooting.php CHANGED
@@ -18,6 +18,7 @@ class Troubleshooting
18
  const RESET_ASYNC_TESTS_NONCE = 'troubleshooting-reset-async-tests' ;
19
  const FIX_OUTOFSTOCK_NONCE = 'troubleshooting-fix-outofstock' ;
20
  const DISMIS_ELEMENTOR_TEMPLATE_NONCE = 'troubleshooting-dismiss-elementor-template' ;
 
21
  const SWITCH_ALTERNATIVE_ENDPOINT = 'troubleshooting-switch-alternative-endpoint' ;
22
  public function __construct()
23
  {
@@ -62,7 +63,7 @@ class Troubleshooting
62
  */
63
  public function addSettingsSection( $sections )
64
  {
65
- $sections[35] = array(
66
  'id' => self::SECTION_ID,
67
  'title' => __( 'Troubleshooting', 'ajax-search-for-woocommerce' ) . '<span class="js-dgwt-wcas-troubleshooting-count dgwt-wcas-tab-mark"></span>',
68
  );
@@ -134,6 +135,7 @@ class Troubleshooting
134
  'troubleshooting_fix_outofstock' => wp_create_nonce( self::FIX_OUTOFSTOCK_NONCE ),
135
  'troubleshooting_dismiss_elementor_template' => wp_create_nonce( self::DISMIS_ELEMENTOR_TEMPLATE_NONCE ),
136
  'troubleshooting_switch_alternative_endpoint' => wp_create_nonce( self::SWITCH_ALTERNATIVE_ENDPOINT ),
 
137
  ),
138
  'tests' => array(
139
  'direct' => array(),
@@ -548,10 +550,6 @@ class Troubleshooting
548
  'test' => 'ElementorSearchResultsTemplate',
549
  )
550
  ),
551
- 'async' => array( array(
552
- 'label' => __( 'Loopback request', 'ajax-search-for-woocommerce' ),
553
- 'test' => 'LoopbackRequests',
554
- ) ),
555
  );
556
  if ( !dgoraAsfwFs()->is_premium() ) {
557
  // List of tests only for free plugin version
@@ -608,10 +606,8 @@ class Troubleshooting
608
  foreach ( $elements as $element ) {
609
  $result = $result || $this->doesElementorElementsContainsWidget( $element, $widget );
610
  }
611
- } else {
612
- if ( isset( $elements['elements'] ) && is_array( $elements['elements'] ) && !empty($elements['elements']) ) {
613
- $result = $result || $this->doesElementorElementsContainsWidget( $elements['elements'], $widget );
614
- }
615
  }
616
 
617
  return $result;
@@ -679,7 +675,8 @@ class Troubleshooting
679
  if ( isset( $info['wp-server']['fields'] ) ) {
680
  ob_start();
681
  ?>
682
- <br /><hr /><br />
 
683
  <p><b><?php
684
  _e( 'Server environment', 'ajax-search-for-woocommerce' );
685
  ?></b></p>
18
  const RESET_ASYNC_TESTS_NONCE = 'troubleshooting-reset-async-tests' ;
19
  const FIX_OUTOFSTOCK_NONCE = 'troubleshooting-fix-outofstock' ;
20
  const DISMIS_ELEMENTOR_TEMPLATE_NONCE = 'troubleshooting-dismiss-elementor-template' ;
21
+ const MAINTENANCE_ANALYTICS_NONCE = 'troubleshooting-maintenance-analytics' ;
22
  const SWITCH_ALTERNATIVE_ENDPOINT = 'troubleshooting-switch-alternative-endpoint' ;
23
  public function __construct()
24
  {
63
  */
64
  public function addSettingsSection( $sections )
65
  {
66
+ $sections[150] = array(
67
  'id' => self::SECTION_ID,
68
  'title' => __( 'Troubleshooting', 'ajax-search-for-woocommerce' ) . '<span class="js-dgwt-wcas-troubleshooting-count dgwt-wcas-tab-mark"></span>',
69
  );
135
  'troubleshooting_fix_outofstock' => wp_create_nonce( self::FIX_OUTOFSTOCK_NONCE ),
136
  'troubleshooting_dismiss_elementor_template' => wp_create_nonce( self::DISMIS_ELEMENTOR_TEMPLATE_NONCE ),
137
  'troubleshooting_switch_alternative_endpoint' => wp_create_nonce( self::SWITCH_ALTERNATIVE_ENDPOINT ),
138
+ 'troubleshooting_maintenance_analytics' => wp_create_nonce( self::MAINTENANCE_ANALYTICS_NONCE ),
139
  ),
140
  'tests' => array(
141
  'direct' => array(),
550
  'test' => 'ElementorSearchResultsTemplate',
551
  )
552
  ),
 
 
 
 
553
  );
554
  if ( !dgoraAsfwFs()->is_premium() ) {
555
  // List of tests only for free plugin version
606
  foreach ( $elements as $element ) {
607
  $result = $result || $this->doesElementorElementsContainsWidget( $element, $widget );
608
  }
609
+ } elseif ( isset( $elements['elements'] ) && is_array( $elements['elements'] ) && !empty($elements['elements']) ) {
610
+ $result = $result || $this->doesElementorElementsContainsWidget( $elements['elements'], $widget );
 
 
611
  }
612
 
613
  return $result;
675
  if ( isset( $info['wp-server']['fields'] ) ) {
676
  ob_start();
677
  ?>
678
+ <br/>
679
+ <hr/><br/>
680
  <p><b><?php
681
  _e( 'Server environment', 'ajax-search-for-woocommerce' );
682
  ?></b></p>
includes/Analytics/Analytics.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ use DgoraWcas\Helpers;
6
+
7
+ // Exit if accessed directly
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ class Analytics {
13
+ public function init() {
14
+
15
+ $allowByConstant = defined( 'DGWT_WCAS_ANALYTICS_ENABLE' ) && DGWT_WCAS_ANALYTICS_ENABLE;
16
+
17
+ // Publish this module conditionally in v1.18.0 and for everyone in v1.19.0
18
+ if ( ! $this->isModuleEnabled()
19
+ && version_compare( DGWT_WCAS_VERSION, '1.19.0' ) < 0
20
+ && ! $allowByConstant
21
+ ) {
22
+ return;
23
+ }
24
+
25
+ if ( is_admin() ) {
26
+ // Load user interface
27
+ $ui = new UserInterface( $this );
28
+ $ui->init();
29
+ }
30
+
31
+ // Database
32
+ Database::registerTables();
33
+ $this->maybeInstallDatabase();
34
+
35
+ // Maintenance.
36
+ $maintenance = new Maintenance();
37
+ if ( $this->isModuleEnabled() ) {
38
+ $maintenance->init();
39
+ } else {
40
+ $maintenance->unschedule();
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Check if the Analytics module is enabled
46
+ *
47
+ * @return bool
48
+ */
49
+ public function isModuleEnabled() {
50
+ return DGWT_WCAS()->settings->getOption( 'analytics_enabled', 'off' ) === 'on';
51
+ }
52
+
53
+ /**
54
+ * Create the database table if necessary
55
+ *
56
+ * @return void
57
+ */
58
+ public function maybeInstallDatabase() {
59
+ // Try to create tables after enabling Search Analytics module
60
+ add_action( 'update_option_' . DGWT_WCAS_SETTINGS_KEY, function ( $oldValue, $newValue ) {
61
+
62
+ $key = 'analytics_enabled';
63
+
64
+ $nowEnabled = isset( $newValue[ $key ] ) && $newValue[ $key ] === 'on';
65
+ $wasDisabled = ! isset( $oldValue[ $key ] ) || ( isset( $oldValue[ $key ] ) && $oldValue[ $key ] !== 'on' );
66
+
67
+ if ( $nowEnabled && $wasDisabled ) {
68
+ Database::maybeInstall();
69
+ }
70
+
71
+ }, 10, 2 );
72
+
73
+ // Try to create tables when Search Analytics module is created, but from some reasons the table wasn't created
74
+ if ( Helpers::isSettingsPage()
75
+ && $this->isModuleEnabled()
76
+ && ! Database::exist()
77
+ ) {
78
+ Database::maybeInstall();
79
+ }
80
+ }
81
+ }
includes/Analytics/Data.php ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ use DgoraWcas\Multilingual;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) {
8
+ exit;
9
+ }
10
+
11
+ class Data {
12
+
13
+ /**
14
+ * @var string
15
+ */
16
+ private $format = 'Y-m-d H:i:s';
17
+
18
+ /**
19
+ * Date start in format Y-m-d H:i:s
20
+ * @var string
21
+ */
22
+ private $dateFrom;
23
+
24
+ /**
25
+ * Date end in format Y-m-d H:i:s
26
+ * @var string
27
+ */
28
+ private $dateTo;
29
+
30
+ /**
31
+ * Available values: 'autocomplete', 'search-results-page'
32
+ * @var string
33
+ */
34
+ private $context;
35
+
36
+ /**
37
+ * Language
38
+ * @var string
39
+ */
40
+ private $lang = '';
41
+
42
+ /**
43
+ * Minimum number of phrase repetitions which must occur to be recognized as critical
44
+ * @var int
45
+ */
46
+ private $minCriticalRep = 3;
47
+
48
+ /**
49
+ * Percentage limit of searches returning results.
50
+ * Above this limit searches will be marked as satisfying
51
+ * Below this limit searches will be marked as not satisfying
52
+ * @var int
53
+ */
54
+ private $searchesReturningResutlsGoodPercent = 70;
55
+
56
+ /**
57
+ * Constructor
58
+ *
59
+ */
60
+ public function __construct() {
61
+ $this->setDefaultDateRange();
62
+ }
63
+
64
+ /**
65
+ * Set data range
66
+ *
67
+ * @param string $from | timestamp or Y-m-d H:i:s
68
+ * @param string $to | timestamp or Y-m-d H:i:s
69
+ *
70
+ * @return void
71
+ */
72
+ public function setDateRange( $from = '', $to = '' ) {
73
+ $from = ! empty( $from ) && is_numeric( $from ) ? date( $this->format, $from ) : $from;
74
+ $to = ! empty( $to ) && is_numeric( $to ) ? date( $this->format, $to ) : $to;
75
+
76
+ if ( ! empty( $from ) && $this->validateDate( $from ) ) {
77
+ $this->dateFrom = $from;
78
+ }
79
+
80
+ if ( ! empty( $to ) && $this->validateDate( $to ) ) {
81
+ $this->dateTo = $to;
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Set minimum number of phrase repetitions which must occur to be recognized as critical
87
+ *
88
+ * @param int $rep
89
+ *
90
+ * @return void
91
+ */
92
+ public function minCriticalRep( $rep ) {
93
+ if ( is_numeric( $rep ) && $rep > 0 ) {
94
+ $this->minCriticalRep = $rep;
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Set default data range - last 30 days
100
+ *
101
+ * @return void
102
+ */
103
+ public function setDefaultDateRange() {
104
+ $this->dateFrom = date( $this->format, strtotime( 'today - 30 days' ) );
105
+ $this->dateTo = date( $this->format );
106
+ }
107
+
108
+ /**
109
+ * Set language
110
+ *
111
+ * @param string $lang
112
+ *
113
+ * @return void
114
+ */
115
+ public function setLang( $lang ) {
116
+ if ( Multilingual::isMultilingual() && ! empty( $lang ) ) {
117
+ $this->lang = Multilingual::getDefaultLanguage();
118
+ }
119
+
120
+ if ( Multilingual::isLangCode( $lang ) ) {
121
+ $this->lang = $lang;
122
+ }
123
+ }
124
+
125
+ /**
126
+ * Set context
127
+ *
128
+ * @param string $context | Available values: 'autocomplete', 'search-results-page'
129
+ *
130
+ * @return void
131
+ */
132
+ public function setContext( $context ) {
133
+ if ( ! in_array( $context, array( 'autocomplete', 'search-results-page' ) ) ) {
134
+ $context = 'autocomplete';
135
+ }
136
+
137
+ $this->context = $context;
138
+ }
139
+
140
+ /**
141
+ * Get phrases without search results
142
+ *
143
+ * @return array
144
+ */
145
+ public function getPhrasesWithNoResults() {
146
+ return $this->getPhrases( $this->dateFrom, $this->dateTo, $this->context, false );
147
+ }
148
+
149
+ /**
150
+ * Get phrases with search results
151
+ *
152
+ * @param int $limit
153
+ * @param int $offset
154
+ *
155
+ * @return array
156
+ */
157
+ public function getPhrasesWithResults( $limit = 10, $offset = 0 ) {
158
+ return $this->getPhrases( $this->dateFrom, $this->dateTo, $this->context, true, null, $limit, $offset );
159
+ }
160
+
161
+ /**
162
+ * Get total searches
163
+ *
164
+ * @param bool $hasResults
165
+ * @param bool $unique - count only unique values
166
+ *
167
+ * @return int
168
+ */
169
+ public function getTotalSearches( $hasResults, $unique = false ) {
170
+ global $wpdb;
171
+ $total = 0;
172
+ $select = 'COUNT(id)';
173
+ $where = '';
174
+
175
+ if ( $unique ) {
176
+ $select = 'COUNT(DISTINCT phrase)';
177
+ }
178
+
179
+ // Context
180
+ if ( $this->context === 'autocomplete' ) {
181
+ $where .= " AND autocomplete = 1";
182
+ } else {
183
+ $where .= " AND autocomplete = 0";
184
+ }
185
+
186
+ //With results or with no results
187
+ if ( $hasResults ) {
188
+ $where .= " AND hits > 0";
189
+ } else {
190
+ $where .= " AND hits = 0";
191
+ }
192
+
193
+ // Language
194
+ $where .= $this->getLanguageSql();
195
+
196
+ $sql = $wpdb->prepare( "SELECT $select
197
+ FROM $wpdb->dgwt_wcas_stats
198
+ WHERE 1=1
199
+ $where
200
+ AND created_at > %s AND created_at < %s", $this->dateFrom, $this->dateTo );
201
+
202
+ $res = $wpdb->get_var( $sql );
203
+ if ( ! empty( $res ) && is_numeric( $res ) ) {
204
+ $total = absint( $res );
205
+ }
206
+
207
+ return $total;
208
+ }
209
+
210
+ /**
211
+ * Get SQL where clause related to language
212
+ *
213
+ * @param string $lang
214
+ *
215
+ * @return string
216
+ */
217
+ public function getLanguageSql( $lang = '' ) {
218
+ global $wpdb;
219
+
220
+ $where = '';
221
+
222
+ if ( Multilingual::isMultilingual() ) {
223
+ if ( empty( $lang ) ) {
224
+ $lang = $this->lang;
225
+ }
226
+
227
+ if ( Multilingual::getDefaultLanguage() === $lang ) {
228
+ $where .= $wpdb->prepare( " AND (lang = %s OR lang IS NULL)", $lang );
229
+ } else {
230
+ $where .= $wpdb->prepare( " AND lang = %s", $lang );
231
+ }
232
+ }
233
+
234
+ return $where;
235
+ }
236
+
237
+ /**
238
+ * Get total critical searches
239
+ *
240
+ * @return int
241
+ */
242
+ public function getTotalCriticalSearches() {
243
+ global $wpdb;
244
+
245
+ $total = 0;
246
+ $where = '';
247
+
248
+ // Language
249
+ $where .= $this->getLanguageSql();
250
+
251
+ $sql = $wpdb->prepare( "SELECT COUNT(*) AS total FROM (
252
+ SELECT phrase, COUNT(id) AS qty
253
+ FROM $wpdb->dgwt_wcas_stats
254
+ WHERE 1=1
255
+ AND created_at > %s AND created_at < %s
256
+ AND solved = 0
257
+ AND hits = 0
258
+ $where
259
+ GROUP BY phrase
260
+ HAVING qty >= %d) AS total", $this->dateFrom, $this->dateTo, $this->minCriticalRep );
261
+
262
+ $res = $wpdb->get_var( $sql );
263
+ if ( ! empty( $res ) && is_numeric( $res ) ) {
264
+ $total = absint( $res );
265
+ }
266
+
267
+ return $total;
268
+ }
269
+
270
+ /**
271
+ * Get critical searches
272
+ *
273
+ * @param int $limit
274
+ * @param int $offset
275
+ *
276
+ * @return array
277
+ */
278
+ public function getCriticalSearches( $limit = 10, $offset = 0 ) {
279
+ global $wpdb;
280
+ $phrases = array();
281
+ $where = '';
282
+
283
+ // Language
284
+ $where .= $this->getLanguageSql();
285
+
286
+ $sql = $wpdb->prepare( "SELECT phrase, COUNT(id) AS qty
287
+ FROM $wpdb->dgwt_wcas_stats
288
+ WHERE hits = 0
289
+ AND created_at > %s AND created_at < %s
290
+ AND solved = 0
291
+ $where
292
+ GROUP BY phrase
293
+ HAVING qty >= %d
294
+ ORDER BY qty DESC, phrase ASC LIMIT %d,%d", $this->dateFrom, $this->dateTo, $this->minCriticalRep, $offset, $limit );
295
+
296
+ $res = $wpdb->get_results( $sql, ARRAY_A );
297
+ if ( ! empty( $res ) && is_array( $res ) ) {
298
+ $phrases = $res;
299
+
300
+ foreach ( $res as $key => $search ) {
301
+ $phrases[ $key ] = $search;
302
+ }
303
+ }
304
+
305
+ return $phrases;
306
+ }
307
+
308
+
309
+ /**
310
+ *
311
+ * Get search phrases with the frequency of occurrences
312
+ *
313
+ * @param string $dateFrom
314
+ * @param string $dateTo
315
+ * @param string $context
316
+ * @param bool $hasResults
317
+ * @param bool $solved
318
+ * @param int $limit
319
+ * @param int $offset
320
+ *
321
+ * @return array
322
+ */
323
+ private function getPhrases( $dateFrom, $dateTo, $context, $hasResults, $solved = null, $limit = 10, $offset = 0 ) {
324
+ global $wpdb;
325
+
326
+ $output = array();
327
+ $where = '';
328
+
329
+ // Context
330
+ if ( $context === 'autocomplete' ) {
331
+ $where .= " AND autocomplete = 1";
332
+ } else {
333
+ $where .= " AND autocomplete = 0";
334
+ }
335
+
336
+ //With results or with no results
337
+ if ( $hasResults ) {
338
+ $where .= " AND hits > 0";
339
+ } else {
340
+ $where .= " AND hits = 0";
341
+ }
342
+
343
+ if ( is_bool( $solved ) ) {
344
+ if ( $solved ) {
345
+ $where .= " AND solved = 1";
346
+ } else {
347
+ $where .= " AND solved = 0";
348
+ }
349
+ }
350
+
351
+ // Language
352
+ $where .= $this->getLanguageSql();
353
+
354
+ $sql = $wpdb->prepare( "SELECT phrase, COUNT(id) AS qty
355
+ FROM $wpdb->dgwt_wcas_stats
356
+ WHERE 1=1
357
+ AND created_at > %s AND created_at < %s
358
+ $where
359
+ GROUP BY phrase
360
+ ORDER BY qty DESC, phrase ASC LIMIT %d,%d", $dateFrom, $dateTo, $offset, $limit );
361
+
362
+ $res = $wpdb->get_results( $sql, ARRAY_A );
363
+ if ( ! empty( $res ) && is_array( $res ) ) {
364
+ $output = $res;
365
+ }
366
+
367
+ return $output;
368
+ }
369
+
370
+ /**
371
+ * Mark as solved. Exclude the phrase from critical phrases module.
372
+ *
373
+ * @return bool
374
+ */
375
+ function markAsSolved( $phrase ) {
376
+ global $wpdb;
377
+ $success = false;
378
+
379
+ $data = array(
380
+ 'solved' => 1
381
+ );
382
+
383
+ $where = array(
384
+ 'phrase' => $phrase
385
+ );
386
+
387
+ $format = array( '%s' );
388
+
389
+ if ( ! empty( $this->lang ) ) {
390
+ $where['lang'] = $this->lang;
391
+ $format[] = '%s';
392
+ }
393
+
394
+ if ( $wpdb->update( $wpdb->dgwt_wcas_stats, $data, $where, $format ) ) {
395
+ $success = true;
396
+ }
397
+
398
+ return $success;
399
+ }
400
+
401
+ /**
402
+ * Check if the date has properly format
403
+ *
404
+ * @return bool
405
+ */
406
+ function validateDate( $date, $format = 'Y-m-d H:i:s' ) {
407
+ $d = \DateTime::createFromFormat( $format, $date );
408
+
409
+ return $d && $d->format( $format ) === $date;
410
+ }
411
+
412
+ /**
413
+ * Check if the date has properly format
414
+ *
415
+ * @param int $percentage
416
+ *
417
+ * @return bool
418
+ */
419
+ function isSearchesReturningResutlsSatisfying( $percentage ) {
420
+ return $percentage >= $this->searchesReturningResutlsGoodPercent;
421
+ }
422
+ }
includes/Analytics/Database.php ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ use DgoraWcas\Helpers;
6
+
7
+ // Exit if accessed directly
8
+ if ( ! defined( 'ABSPATH' ) ) {
9
+ exit;
10
+ }
11
+
12
+ class Database {
13
+
14
+ const DB_NAME = 'dgwt_wcas_stats';
15
+ const DB_VERSION = 2;
16
+ const DB_VERSION_OPTION = 'dgwt_wcas_stats_db_version';
17
+
18
+ /**
19
+ * Add table names to the $wpdb object
20
+ *
21
+ * @return void
22
+ */
23
+ public static function registerTables() {
24
+ global $wpdb;
25
+
26
+ $wpdb->dgwt_wcas_stats = $wpdb->prefix . self::DB_NAME;
27
+ $wpdb->tables[] = self::DB_NAME;
28
+ }
29
+
30
+ /**
31
+ * Install DB if necessary
32
+ *
33
+ * @return void
34
+ */
35
+ public static function maybeInstall() {
36
+ if ( ! self::exist() ) {
37
+ self::install();
38
+ } else {
39
+ $dbVersion = get_option( self::DB_VERSION_OPTION );
40
+
41
+ if ( absint( $dbVersion ) !== self::DB_VERSION ) {
42
+ self::install();
43
+ }
44
+ }
45
+ }
46
+
47
+ /**
48
+ * Install DB table
49
+ *
50
+ * @return void
51
+ */
52
+ private static function install() {
53
+ global $wpdb;
54
+
55
+ $wpdb->hide_errors();
56
+ $freshInstall = ! self::exist();
57
+
58
+ $upFile = ABSPATH . 'wp-admin/includes/upgrade.php';
59
+
60
+ if ( file_exists( $upFile ) ) {
61
+
62
+ require_once( $upFile );
63
+
64
+ $collate = Helpers::getCollate( 'stats/main' );
65
+
66
+ $table = "CREATE TABLE $wpdb->dgwt_wcas_stats (
67
+ id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
68
+ phrase VARCHAR(255) NOT NULL,
69
+ hits INT NOT NULL,
70
+ created_at DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00',
71
+ autocomplete TINYINT(1) NULL DEFAULT 1,
72
+ solved TINYINT(1) NULL DEFAULT 0,
73
+ lang VARCHAR(7) NULL,
74
+ PRIMARY KEY (id)
75
+ ) ENGINE=InnoDB $collate;";
76
+
77
+ dbDelta( $table );
78
+
79
+ if ( $freshInstall ) {
80
+ //@TODO mount index for columns if necessary
81
+ }
82
+
83
+ update_option( self::DB_VERSION_OPTION, self::DB_VERSION );
84
+ }
85
+ }
86
+
87
+ /**
88
+ * Check if the table exists
89
+ *
90
+ * @return bool
91
+ */
92
+ public static function exist() {
93
+ global $wpdb;
94
+
95
+ return Helpers::isTableExists( $wpdb->dgwt_wcas_stats );
96
+ }
97
+
98
+ /**
99
+ * Remove DB table
100
+ *
101
+ * @return void
102
+ */
103
+ public static function remove() {
104
+ global $wpdb;
105
+
106
+ $wpdb->hide_errors();
107
+
108
+ $wpdb->query( "DROP TABLE IF EXISTS $wpdb->dgwt_wcas_stats" );
109
+ delete_option( self::DB_VERSION_OPTION );
110
+ }
111
+
112
+ /**
113
+ * Wipe old analytics records
114
+ *
115
+ * @param int $daysAgo Minimum age of records to be deleted.
116
+ *
117
+ * @return void
118
+ */
119
+ public static function wipeOldRecords( $daysAgo = 0 ) {
120
+ global $wpdb;
121
+
122
+ if ( ! self::exist() ) {
123
+ return;
124
+ }
125
+
126
+ if ( intval( $daysAgo ) <= 0 ) {
127
+ $daysAgo = Maintenance::ANALYTICS_EXPIRATION_IN_DAYS;
128
+ }
129
+
130
+ $wpdb->hide_errors();
131
+
132
+ // Delete expired records.
133
+ $daysAgo = date( 'Y-m-d H:i:s', strtotime( "today - $daysAgo days" ) );
134
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->dgwt_wcas_stats WHERE DATE(created_at) <= %s", $daysAgo ) );
135
+
136
+ // Delete non-critical records.
137
+ if (
138
+ defined( 'DGWT_WCAS_ANALYTICS_ONLY_CRITICAL' ) &&
139
+ DGWT_WCAS_ANALYTICS_ONLY_CRITICAL
140
+ ) {
141
+ $wpdb->query( "DELETE FROM $wpdb->dgwt_wcas_stats WHERE hits > 0" );
142
+ }
143
+ }
144
+
145
+ /**
146
+ * Wipe all analytics records
147
+ *
148
+ * @return void
149
+ */
150
+ public static function wipeAllRecords() {
151
+ global $wpdb;
152
+
153
+ if ( ! self::exist() ) {
154
+ return;
155
+ }
156
+
157
+ $wpdb->hide_errors();
158
+
159
+ $wpdb->query( "DELETE FROM $wpdb->dgwt_wcas_stats" );
160
+ }
161
+
162
+ /**
163
+ * Get the number of records
164
+ *
165
+ * @return int
166
+ */
167
+ public static function getRecordsCount() {
168
+ global $wpdb;
169
+
170
+ if ( ! self::exist() ) {
171
+ return 0;
172
+ }
173
+
174
+ $wpdb->hide_errors();
175
+
176
+ return intval( $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->dgwt_wcas_stats" ) );
177
+ }
178
+ }
includes/Analytics/Maintenance.php ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit;
7
+ }
8
+
9
+ class Maintenance {
10
+ const HOOK = 'dgwt_wcas_analytics_maintenance';
11
+ const ANALYTICS_EXPIRATION_IN_DAYS = 30;
12
+
13
+ public function init() {
14
+ $this->schedule();
15
+ $this->listenCron();
16
+ }
17
+
18
+ /**
19
+ * Listen to cron action
20
+ *
21
+ * @return void
22
+ */
23
+ public function listenCron() {
24
+ add_action( self::HOOK, [ $this, 'handleMaintenance' ] );
25
+ }
26
+
27
+ /**
28
+ * Schedule maintenance task
29
+ *
30
+ * @return void
31
+ */
32
+ public function schedule() {
33
+ if ( ! wp_next_scheduled( self::HOOK ) ) {
34
+ wp_schedule_event( strtotime( 'tomorrow' ) + 2 * HOUR_IN_SECONDS, 'daily', self::HOOK );
35
+ }
36
+ }
37
+
38
+ /**
39
+ * Unschedule maintenance task
40
+ *
41
+ * @return void
42
+ */
43
+ public function unschedule() {
44
+ $timestamp = wp_next_scheduled( self::HOOK );
45
+ if ( $timestamp ) {
46
+ wp_unschedule_event( $timestamp, self::HOOK );
47
+ }
48
+ }
49
+
50
+ /**
51
+ * Handle maintenance task
52
+ *
53
+ * @return void
54
+ */
55
+ public function handleMaintenance() {
56
+ $expiration = self::ANALYTICS_EXPIRATION_IN_DAYS;
57
+
58
+ if (
59
+ defined( 'DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS' ) &&
60
+ intval( DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS ) > 0
61
+ ) {
62
+ $expiration = intval( DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS );
63
+ }
64
+
65
+ Database::wipeOldRecords( $expiration );
66
+ }
67
+ }
includes/Analytics/Recorder.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ use DgoraWcas\Helpers;
6
+ use DgoraWcas\Multilingual;
7
+
8
+ // Exit if accessed directly
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit;
11
+ }
12
+
13
+ class Recorder {
14
+
15
+ public function listen() {
16
+
17
+ Database::registerTables();
18
+
19
+ add_action( 'dgwt/wcas/after_searching/products', array( $this, 'listener' ), 10, 3 );
20
+ }
21
+
22
+ /**
23
+ * Validate input data and save them to the index
24
+ *
25
+ * @param string $phrase
26
+ * @param int $hits
27
+ * @param string $lang
28
+ *
29
+ * @return void
30
+ */
31
+ public function listener( $phrase, $hits, $lang ) {
32
+ $autocomplete = true;
33
+
34
+ if ( empty( $phrase ) || ! is_string( $phrase ) ) {
35
+ return;
36
+ }
37
+
38
+ if ( ! is_numeric( $hits ) || $hits < 0 ) {
39
+ return;
40
+ }
41
+
42
+ // Save only critical searches.
43
+ if (
44
+ defined( 'DGWT_WCAS_ANALYTICS_ONLY_CRITICAL' ) &&
45
+ DGWT_WCAS_ANALYTICS_ONLY_CRITICAL &&
46
+ $hits > 0
47
+ ) {
48
+ return;
49
+ }
50
+
51
+ if ( Helpers::isProductSearchPage() || Helpers::isRemoteSearchRequest() ) {
52
+ $autocomplete = false;
53
+ }
54
+
55
+ $phrase = strtolower( substr( $phrase, 0, 255 ) );
56
+ $lang = ! empty( $lang ) && Multilingual::isLangCode( strtolower( $lang ) ) ? strtolower( $lang ) : '';
57
+
58
+ $this->push( $phrase, $hits, $autocomplete, $lang );
59
+ }
60
+
61
+ /**
62
+ * Push a record to the index.
63
+ *
64
+ * @param string $phrase
65
+ * @param int $hits
66
+ * @param bool $autocomplete
67
+ * @param string $lang
68
+ *
69
+ * @return void
70
+ */
71
+ public function push( $phrase, $hits, $autocomplete, $lang ) {
72
+ global $wpdb;
73
+
74
+ $data = array(
75
+ 'phrase' => $phrase,
76
+ 'hits' => $hits,
77
+ 'created_at' => date( 'Y-m-d H:i:s', current_time( 'timestamp', true ) ),
78
+ 'autocomplete' => $autocomplete
79
+ );
80
+
81
+ $format = array(
82
+ '%s',
83
+ '%d',
84
+ '%s',
85
+ '%d',
86
+ );
87
+
88
+ if ( ! empty( $lang ) ) {
89
+ $data['lang'] = $lang;
90
+ $format[] = '%s';
91
+ }
92
+
93
+ $wpdb->insert( $wpdb->dgwt_wcas_stats, $data, $format );
94
+ }
95
+ }
includes/Analytics/UserInterface.php ADDED
@@ -0,0 +1,508 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace DgoraWcas\Analytics;
4
+
5
+ use DgoraWcas\Multilingual ;
6
+ // Exit if accessed directly
7
+ if ( !defined( 'ABSPATH' ) ) {
8
+ exit;
9
+ }
10
+ class UserInterface
11
+ {
12
+ const SECTION_ID = 'dgwt_wcas_analytics' ;
13
+ const LOAD_INTERFACE_NONCE = 'analytics-load-interface' ;
14
+ const LOAD_MORE_CRITICAL_SEARCHES_NONCE = 'analytics-load-more-critical-searches' ;
15
+ const LOAD_MORE_AUTOCOMPLETE_NONCE = 'analytics-load-more-autocomplete' ;
16
+ const LOAD_MORE_SEARCH_PAGE_NONCE = 'analytics-load-more-search-page' ;
17
+ const CRITICAL_CHECK_NONCE = 'analytics-critical-check' ;
18
+ const EXCLUDE_CRITICAL_PHRASE_NONCE = 'analytics-exclude-critical-phrase' ;
19
+ const CSS_CLASS_PLACEHOLDER = 'js-dgwt-wcas-stats-placeholder' ;
20
+ const CRITICAL_SEARCHES_LOAD_LIMIT = 10 ;
21
+ const TABLE_ROW_LIMIT_LIMIT = 10 ;
22
+ /**
23
+ * @var Analytics
24
+ */
25
+ private $analytics ;
26
+ /**
27
+ * Constructor
28
+ *
29
+ * @param Analytics $analytics
30
+ */
31
+ public function __construct( Analytics $analytics )
32
+ {
33
+ $this->analytics = $analytics;
34
+ }
35
+
36
+ /**
37
+ * Init the class
38
+ *
39
+ * @return void
40
+ */
41
+ public function init()
42
+ {
43
+ // Draw settings page
44
+ add_filter( 'dgwt/wcas/settings/sections', array( $this, 'addSettingsSection' ) );
45
+ add_filter( 'dgwt/wcas/settings', array( $this, 'addSettingsTab' ) );
46
+ add_filter( 'dgwt/wcas/scripts/admin/localize', array( $this, 'localizeSettings' ) );
47
+ // AJAX callbacks
48
+ add_action( 'wp_ajax_dgwt_wcas_load_stats_interface', array( $this, 'loadInterface' ) );
49
+ add_action( 'wp_ajax_dgwt_wcas_laod_more_critical_searches', array( $this, 'loadMoreCriticalSearches' ) );
50
+ add_action( 'wp_ajax_dgwt_wcas_laod_more_autocomplete', array( $this, 'loadMoreAutocomplete' ) );
51
+ add_action( 'wp_ajax_dgwt_wcas_laod_more_search_page', array( $this, 'loadMoreSearchPage' ) );
52
+ add_action( 'wp_ajax_dgwt_wcas_check_critical_phrase', array( $this, 'checkCriticalPhrase' ) );
53
+ add_action( 'wp_ajax_dgwt_wcas_exclude_critical_phrase', array( $this, 'excludeCriticalPhrase' ) );
54
+ if ( $this->analytics->isModuleEnabled() ) {
55
+ add_action( DGWT_WCAS_SETTINGS_KEY . '-form_end_' . self::SECTION_ID, array( $this, 'tabContent' ) );
56
+ }
57
+ }
58
+
59
+ /**
60
+ * Content of "Analytics" tab on Settings page
61
+ *
62
+ * @param array $sections
63
+ *
64
+ * @return array
65
+ */
66
+ public function addSettingsSection( $sections )
67
+ {
68
+ $sections[28] = array(
69
+ 'id' => self::SECTION_ID,
70
+ 'title' => __( 'Analytics (beta)', 'ajax-search-for-woocommerce' ),
71
+ );
72
+ return $sections;
73
+ }
74
+
75
+ /**
76
+ * Add "Analytics" tab on Settings page
77
+ *
78
+ * @param array $settings
79
+ *
80
+ * @return array
81
+ */
82
+ public function addSettingsTab( $settings )
83
+ {
84
+ $settings[self::SECTION_ID] = apply_filters( 'dgwt/wcas/settings/section=analytics', array(
85
+ 100 => array(
86
+ 'name' => 'analytics_head',
87
+ 'label' => __( 'Search Analytics', 'ajax-search-for-woocommerce' ),
88
+ 'type' => 'head',
89
+ 'class' => 'dgwt-wcas-sgs-header',
90
+ ),
91
+ 110 => array(
92
+ 'name' => 'analytics_enabled',
93
+ 'label' => __( 'Enable search analytics', 'ajax-search-for-woocommerce' ),
94
+ 'type' => 'checkbox',
95
+ 'size' => 'small',
96
+ 'default' => 'off',
97
+ ),
98
+ ) );
99
+ return $settings;
100
+ }
101
+
102
+ /**
103
+ * Pass data to JavaScript on the settings page
104
+ *
105
+ * @param array $localize
106
+ *
107
+ * @return array
108
+ */
109
+ public function localizeSettings( $localize )
110
+ {
111
+ $localize['analytics'] = array(
112
+ 'nonce' => array(
113
+ 'analytics_load_interface' => wp_create_nonce( self::LOAD_INTERFACE_NONCE ),
114
+ 'load_more_critical_searches' => wp_create_nonce( self::LOAD_MORE_CRITICAL_SEARCHES_NONCE ),
115
+ 'load_more_autocomplete' => wp_create_nonce( self::LOAD_MORE_AUTOCOMPLETE_NONCE ),
116
+ 'load_more_search_page' => wp_create_nonce( self::LOAD_MORE_SEARCH_PAGE_NONCE ),
117
+ 'check_critical_phrase' => wp_create_nonce( self::CRITICAL_CHECK_NONCE ),
118
+ 'exclude_critical_phrase' => wp_create_nonce( self::EXCLUDE_CRITICAL_PHRASE_NONCE ),
119
+ ),
120
+ 'enabled' => $this->analytics->isModuleEnabled(),
121
+ 'images' => array(
122
+ 'placeholder' => DGWT_WCAS_URL . 'assets/img/admin-stats-placeholder.png',
123
+ ),
124
+ );
125
+ return $localize;
126
+ }
127
+
128
+ /**
129
+ * Load content for "Analytics" tab on Settings page
130
+ *
131
+ * @return void
132
+ */
133
+ public function tabContent()
134
+ {
135
+ if ( Multilingual::isMultilingual() ) {
136
+ echo $this->getLanguageSwitcher() ;
137
+ }
138
+ echo '<div class="dgwt-wcas-analytics-body ' . self::CSS_CLASS_PLACEHOLDER . '"></div>' ;
139
+ }
140
+
141
+ /**
142
+ * Get HTML of language switcher
143
+ *
144
+ * @return string
145
+ */
146
+ private function getLanguageSwitcher()
147
+ {
148
+ $vars = array(
149
+ 'multilingual' => array(
150
+ 'is-multilingual' => true,
151
+ 'current-lang' => Multilingual::getCurrentLanguage(),
152
+ 'langs' => array(),
153
+ ),
154
+ );
155
+ foreach ( Multilingual::getLanguages() as $lang ) {
156
+ $vars['multilingual']['langs'][$lang] = Multilingual::getLanguageField( $lang, 'name' );
157
+ }
158
+ ob_start();
159
+ require DGWT_WCAS_DIR . 'partials/admin/stats/langs.php';
160
+ return ob_get_clean();
161
+ }
162
+
163
+ /**
164
+ * Load an interface (AJAX callback)
165
+ *
166
+ * @return void
167
+ */
168
+ public function loadInterface()
169
+ {
170
+ if ( !current_user_can( 'administrator' ) ) {
171
+ wp_die( -1, 403 );
172
+ }
173
+ check_ajax_referer( self::LOAD_INTERFACE_NONCE );
174
+ $lang = ( !empty($_REQUEST['lang']) && Multilingual::isLangCode( $_REQUEST['lang'] ) ? sanitize_key( $_REQUEST['lang'] ) : '' );
175
+ $data = array(
176
+ 'html' => '',
177
+ );
178
+ ob_start();
179
+ $vars = $this->getVars( $lang );
180
+ require DGWT_WCAS_DIR . 'partials/admin/stats/stats.php';
181
+ $data['html'] = ob_get_clean();
182
+ wp_send_json_success( $data );
183
+ }
184
+
185
+ /**
186
+ * Load more critical searches
187
+ *
188
+ * @return void
189
+ */
190
+ public function loadMoreCriticalSearches()
191
+ {
192
+ if ( !current_user_can( 'administrator' ) ) {
193
+ wp_die( -1, 403 );
194
+ }
195
+ check_ajax_referer( self::LOAD_MORE_CRITICAL_SEARCHES_NONCE );
196
+ $lang = ( !empty($_REQUEST['lang']) && Multilingual::isLangCode( $_REQUEST['lang'] ) ? sanitize_key( $_REQUEST['lang'] ) : '' );
197
+ $offset = ( !empty($_REQUEST['loaded']) ? absint( $_REQUEST['loaded'] ) : 0 );
198
+ $html = '';
199
+ $data = new Data();
200
+ if ( !empty($lang) ) {
201
+ $data->setLang( $lang );
202
+ }
203
+ $total = $data->getTotalCriticalSearches();
204
+ $critical = $data->getCriticalSearches( self::CRITICAL_SEARCHES_LOAD_LIMIT, $offset );
205
+
206
+ if ( !empty($critical) ) {
207
+ ob_start();
208
+ $i = $offset + 1;
209
+ foreach ( $critical as $row ) {
210
+ require DGWT_WCAS_DIR . 'partials/admin/stats/critical-searches-row.php';
211
+ $i++;
212
+ }
213
+ $html = ob_get_clean();
214
+ }
215
+
216
+ $toLoad = $total - $offset - count( $critical );
217
+ $more = min( self::CRITICAL_SEARCHES_LOAD_LIMIT, $toLoad );
218
+ $data = array(
219
+ 'html' => $html,
220
+ 'more' => $more,
221
+ 'more_label' => '',
222
+ );
223
+ if ( $more > 0 ) {
224
+ $data['more_label'] = sprintf( _n(
225
+ 'load another %d phrase',
226
+ 'load another %d phrases',
227
+ $more,
228
+ 'ajax-search-for-woocommerce'
229
+ ), $more );
230
+ }
231
+ wp_send_json_success( $data );
232
+ }
233
+
234
+ /**
235
+ * Load more autocomplete searches with results
236
+ *
237
+ * @return void
238
+ */
239
+ public function loadMoreAutocomplete()
240
+ {
241
+ if ( !current_user_can( 'administrator' ) ) {
242
+ wp_die( -1, 403 );
243
+ }
244
+ check_ajax_referer( self::LOAD_MORE_AUTOCOMPLETE_NONCE );
245
+ $lang = ( !empty($_REQUEST['lang']) && Multilingual::isLangCode( $_REQUEST['lang'] ) ? sanitize_key( $_REQUEST['lang'] ) : '' );
246
+ // Autocomplete
247
+ $data = new Data();
248
+ if ( !empty($lang) ) {
249
+ $data->setLang( $lang );
250
+ }
251
+ $data->setContext( 'autocomplete' );
252
+ $phrases = $data->getPhrasesWithResults( 100 );
253
+ ob_start();
254
+ $i = 1;
255
+ foreach ( $phrases as $row ) {
256
+ require DGWT_WCAS_DIR . 'partials/admin/stats/ac-searches-row.php';
257
+ $i++;
258
+ }
259
+ $html = ob_get_clean();
260
+ $data = array(
261
+ 'html' => $html,
262
+ );
263
+ wp_send_json_success( $data );
264
+ }
265
+
266
+ /**
267
+ * Load more search page searches with results
268
+ *
269
+ * @return void
270
+ */
271
+ public function loadMoreSearchPage()
272
+ {
273
+ if ( !current_user_can( 'administrator' ) ) {
274
+ wp_die( -1, 403 );
275
+ }
276
+ check_ajax_referer( self::LOAD_MORE_SEARCH_PAGE_NONCE );
277
+ $lang = ( !empty($_REQUEST['lang']) && Multilingual::isLangCode( $_REQUEST['lang'] ) ? sanitize_key( $_REQUEST['lang'] ) : '' );
278
+ // Search page
279
+ $data = new Data();
280
+ if ( !empty($lang) ) {
281
+ $data->setLang( $lang );
282
+ }
283
+ $data->setContext( 'search-results-page' );
284
+ $phrases = $data->getPhrasesWithResults( 100 );
285
+ ob_start();
286
+ $i = 1;
287
+ foreach ( $phrases as $row ) {
288
+ require DGWT_WCAS_DIR . 'partials/admin/stats/sp-searches-row.php';
289
+ $i++;
290
+ }
291
+ $html = ob_get_clean();
292
+ $data = array(
293
+ 'html' => $html,
294
+ );
295
+ wp_send_json_success( $data );
296
+ }
297
+
298
+ /**
299
+ * Check if the phrase returns results
300
+ *
301
+ * @return void
302
+ */
303
+ public function checkCriticalPhrase()
304
+ {
305
+ if ( !current_user_can( 'administrator' ) ) {
306
+ wp_die( -1, 403 );
307
+ }
308
+ check_ajax_referer( self::CRITICAL_CHECK_NONCE );
309
+ $data = array(
310
+ 'html' => '',
311
+ 'status' => '',
312
+ );
313
+ $phrase = ( !empty($_REQUEST['phrase']) ? $_REQUEST['phrase'] : '' );
314
+ if ( empty($phrase) ) {
315
+ wp_send_json_error( 'empty phrase' );
316
+ }
317
+
318
+ if ( !dgoraAsfwFs()->is_premium() ) {
319
+ $res = DGWT_WCAS()->nativeSearch->getSearchResults( $phrase, true, 'autocomplete' );
320
+
321
+ if ( is_array( $res ) && isset( $res['total'] ) ) {
322
+ $total = absint( $res['total'] );
323
+
324
+ if ( $total > 0 ) {
325
+ $data['status'] = 'with-results';
326
+ $data['html'] = $this->getCriticalPhraseMessage( $data['status'], $total );
327
+ } else {
328
+ $data['status'] = 'without-results';
329
+ $data['html'] = $this->getCriticalPhraseMessage( $data['status'] );
330
+ }
331
+
332
+ } else {
333
+ $data['status'] = 'error';
334
+ $data['html'] = $this->getCriticalPhraseMessage( $data['status'] );
335
+ }
336
+
337
+ } else {
338
+ }
339
+
340
+ wp_send_json_success( $data );
341
+ }
342
+
343
+ /**
344
+ * Check critical phrase - messages on response
345
+ *
346
+ * @param string $context
347
+ * @param int $total
348
+ *
349
+ * @return string
350
+ */
351
+ public function getCriticalPhraseMessage( $context = '', $total = 0 )
352
+ {
353
+ $html = '';
354
+ //This phrase returns X products.
355
+ switch ( $context ) {
356
+ case 'with-results':
357
+ $html = '<p>';
358
+ $html .= '<b class="dgwt-wcas-analytics-text-good">' . __( "Perfect!", 'ajax-search-for-woocommerce' ) . '</b>';
359
+ $html .= ' ' . __( "It's solved.", 'ajax-search-for-woocommerce' );
360
+ $html .= ' ' . sprintf( _n(
361
+ "This phrase returns 1 product.",
362
+ "This phrase returns %d products.",
363
+ $total,
364
+ 'ajax-search-for-woocommerce'
365
+ ), $total );
366
+ $html .= ' ' . __( 'Click the button below to remove this phrase from the list.', 'ajax-search-for-woocommerce' );
367
+ $html .= '<button class="button button-small dgwt-wcas-analytics-btn-mark js-dgwt-wcas-analytics-exclude-phrase"><span class="dashicons dashicons-yes"></span> ' . __( 'Mark this phrase as resolved', 'ajax-search-for-woocommerce' ) . '</button>';
368
+ $html .= '</p>';
369
+ break;
370
+ case 'without-results':
371
+ $html = '<p>';
372
+ $html .= '<b class="dgwt-wcas-analytics-text-poorly">' . __( "Poorly!", 'ajax-search-for-woocommerce' ) . '</b>';
373
+ $html .= ' ' . __( "Still this phrase doesn't return any results. Learn how to fix it.", 'ajax-search-for-woocommerce' );
374
+ $html .= '</p>';
375
+ break;
376
+ case 'wrong-index':
377
+ $html = '<p>';
378
+ $html .= __( "Can't check the status. The search index hasn't been completed. Go to the Indexer tab and wait until the search index is completed.", 'ajax-search-for-woocommerce' );
379
+ $html .= '<button class="button button-small dgwt-wcas-analytics-btn-mark js-dgwt-wcas-analytics-check-indexer">' . __( 'Check the indexer status', 'ajax-search-for-woocommerce' ) . '</button>';
380
+ $html .= '</p>';
381
+ break;
382
+ case 'error':
383
+ $html = '<p>';
384
+ $html .= __( 'Something went wrong', 'ajax-search-for-woocommerce' );
385
+ $html .= '</p>';
386
+ break;
387
+ }
388
+ return $html;
389
+ }
390
+
391
+ /**
392
+ * Unmark a phrase as critical. AJAX callback
393
+ *
394
+ * @return void
395
+ */
396
+ public function excludeCriticalPhrase()
397
+ {
398
+ if ( !current_user_can( 'administrator' ) ) {
399
+ wp_die( -1, 403 );
400
+ }
401
+ check_ajax_referer( self::EXCLUDE_CRITICAL_PHRASE_NONCE );
402
+ $phrase = ( !empty($_REQUEST['phrase']) ? $_REQUEST['phrase'] : '' );
403
+ $lang = ( !empty($_REQUEST['lang']) && Multilingual::isLangCode( $_REQUEST['lang'] ) ? sanitize_key( $_REQUEST['lang'] ) : '' );
404
+
405
+ if ( !empty($phrase) ) {
406
+ $data = new Data();
407
+ if ( Multilingual::isMultilingual() && !empty($lang) ) {
408
+ $data->setLang( $lang );
409
+ }
410
+ if ( $data->markAsSolved( $phrase ) ) {
411
+ wp_send_json_success( '<p>' . __( 'This phrase has been solved! This row will disappear after refreshing the page.', 'ajax-search-for-woocommerce' ) . '</p>' );
412
+ }
413
+ }
414
+
415
+ wp_send_json_error( 'empty phrase' );
416
+ }
417
+
418
+ /**
419
+ * Prepare vars for the view
420
+ *
421
+ * @param string $lang
422
+ *
423
+ * @return array
424
+ */
425
+ private function getVars( $lang = '' )
426
+ {
427
+ $data = new Data();
428
+ if ( Multilingual::isMultilingual() ) {
429
+ $data->setLang( $lang );
430
+ }
431
+ $mainUrl = 'https://fibosearch.com/lack-of-queries-insight-really-hurts-your-sales/';
432
+ $vars = array(
433
+ 'days' => $this->getExpirationInDays(),
434
+ 'autocomplete' => array(),
435
+ 'search-page' => array(),
436
+ 'critical-searches' => array(),
437
+ 'critical-searches-total' => 0,
438
+ 'critical-searches-more' => 0,
439
+ 'returning-results-percent' => 0,
440
+ 'returning-results-percent-poorly' => false,
441
+ 'links' => array(
442
+ 'synonyms' => $mainUrl . '#synonyms',
443
+ 'support' => 'https://fibosearch.com/contact/',
444
+ ),
445
+ );
446
+ // Autocomplete
447
+ $data->setContext( 'autocomplete' );
448
+ $vars['autocomplete'] = array(
449
+ 'with-results' => $data->getPhrasesWithResults( self::TABLE_ROW_LIMIT_LIMIT ),
450
+ 'total-with-results-uniq' => $data->getTotalSearches( true, true ),
451
+ 'total-without-results-uniq' => $data->getTotalSearches( false, true ),
452
+ 'total-with-results' => $data->getTotalSearches( true ),
453
+ 'total-without-results' => $data->getTotalSearches( false ),
454
+ 'total-results' => 0,
455
+ );
456
+ $vars['autocomplete']['total-results-uniq'] = $vars['autocomplete']['total-with-results-uniq'] + $vars['autocomplete']['total-without-results-uniq'];
457
+ $vars['autocomplete']['total-results'] = $vars['autocomplete']['total-with-results'] + $vars['autocomplete']['total-without-results'];
458
+ // Search page
459
+ $data->setContext( 'search-results-page' );
460
+ $vars['search-page'] = array(
461
+ 'with-results' => $data->getPhrasesWithResults( self::TABLE_ROW_LIMIT_LIMIT ),
462
+ 'total-with-results-uniq' => $data->getTotalSearches( true, true ),
463
+ 'total-without-results-uniq' => $data->getTotalSearches( false, true ),
464
+ 'total-with-results' => $data->getTotalSearches( true ),
465
+ 'total-without-results' => $data->getTotalSearches( false ),
466
+ 'total-results' => 0,
467
+ );
468
+ $vars['search-page']['total-results-uniq'] = $vars['search-page']['total-with-results-uniq'] + $vars['search-page']['total-without-results-uniq'];
469
+ $vars['search-page']['total-results'] = $vars['search-page']['total-with-results'] + $vars['search-page']['total-without-results'];
470
+ // Common
471
+ $vars['total'] = $vars['autocomplete']['total-results'] + $vars['search-page']['total-results'];
472
+
473
+ if ( $vars['total'] > 0 ) {
474
+ $vars['returning-results-percent'] = round( ($vars['autocomplete']['total-with-results'] + $vars['search-page']['total-with-results']) * 100 / $vars['total'] );
475
+ $vars['returning-results-percent-satisfying'] = $data->isSearchesReturningResutlsSatisfying( $vars['returning-results-percent'] );
476
+ }
477
+
478
+ // Critical searches
479
+ $critical = $data->getCriticalSearches( self::CRITICAL_SEARCHES_LOAD_LIMIT );
480
+
481
+ if ( !empty($critical) ) {
482
+ $vars['critical-searches'] = $critical;
483
+ $vars['critical-searches-total'] = $data->getTotalCriticalSearches();
484
+ $toLoad = $vars['critical-searches-total'] - count( $critical );
485
+ $vars['critical-searches-more'] = min( self::CRITICAL_SEARCHES_LOAD_LIMIT, $toLoad );
486
+ if ( $vars['critical-searches-total'] < self::CRITICAL_SEARCHES_LOAD_LIMIT ) {
487
+ $vars['critical-searches-more'] = 0;
488
+ }
489
+ }
490
+
491
+ return $vars;
492
+ }
493
+
494
+ /**
495
+ * The records will be removed from the database after passing X days
496
+ *
497
+ * @return int
498
+ */
499
+ public function getExpirationInDays()
500
+ {
501
+ $days = Maintenance::ANALYTICS_EXPIRATION_IN_DAYS;
502
+ if ( defined( 'DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS' ) && intval( DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS ) > 0 ) {
503
+ $days = intval( DGWT_WCAS_ANALYTICS_EXPIRATION_IN_DAYS );
504
+ }
505
+ return $days;
506
+ }
507
+
508
+ }
includes/Engines/WordPressNative/Search.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace DgoraWcas\Engines\WordPressNative;
4
 
 
5
  use DgoraWcas\Multilingual ;
6
  use DgoraWcas\Product ;
7
  use DgoraWcas\Helpers ;
@@ -95,7 +96,6 @@ class Search
95
  10,
96
  2
97
  );
98
- $this->BasicAuthBypass();
99
  }
100
 
101
  } );
@@ -124,6 +124,15 @@ class Search
124
  2
125
  );
126
  }
 
 
 
 
 
 
 
 
 
127
  }
128
 
129
  /**
@@ -138,6 +147,10 @@ class Search
138
  public function getSearchResults( $phrase = '', $return = false, $context = 'autocomplete' )
139
  {
140
  $start = microtime( true );
 
 
 
 
141
  if ( !defined( 'DGWT_WCAS_AJAX' ) ) {
142
  define( 'DGWT_WCAS_AJAX', true );
143
  }
@@ -191,6 +204,7 @@ class Search
191
  }
192
 
193
  /* SEARCH IN PRODUCTS */
 
194
 
195
  if ( apply_filters( 'dgwt/wcas/search_in_products', true ) ) {
196
  $args = array(
@@ -212,6 +226,13 @@ class Search
212
 
213
  $args = apply_filters( 'dgwt/wcas/search_query/args', $args );
214
  $products = get_posts( $args );
 
 
 
 
 
 
 
215
 
216
  if ( !empty($products) ) {
217
  $orderedProducts = array();
@@ -316,7 +337,6 @@ class Search
316
  if ( !empty($relevantProducts) ) {
317
  $this->groups['product']['results'] = $relevantProducts;
318
  }
319
- $total = ( isset( $products ) ? count( $products ) : 0 );
320
 
321
  if ( $this->hasResutls() ) {
322
  if ( $this->flexibleLimits ) {
@@ -324,10 +344,10 @@ class Search
324
  }
325
  $results = $this->convertGroupsToSuggestions();
326
  // Show more
327
- if ( !empty($this->groups['product']['results']) && count( $this->groups['product']['results'] ) < $total ) {
328
  $results[] = array(
329
  'value' => '',
330
- 'total' => $total,
331
  'url' => add_query_arg( array(
332
  's' => $keyword,
333
  'post_type' => 'product',
@@ -339,9 +359,9 @@ class Search
339
  } else {
340
 
341
  if ( $remote ) {
342
- $results[] = array(
343
- 'ID' => 0,
344
- );
345
  } else {
346
  $results[] = array(
347
  'value' => '',
@@ -352,7 +372,7 @@ class Search
352
  }
353
 
354
  $output['suggestions'] = $results;
355
- $output['total'] = $total;
356
  $output['time'] = number_format(
357
  microtime( true ) - $start,
358
  2,
@@ -543,7 +563,7 @@ class Search
543
  {
544
  global $wpdb ;
545
 
546
- if ( empty($search) || is_admin() ) {
547
  return $search;
548
  // skip processing - there is no keyword
549
  }
@@ -625,7 +645,7 @@ class Search
625
  // skip processing
626
  }
627
 
628
- if ( $this->isAjaxSearch() && !is_admin() ) {
629
  if ( DGWT_WCAS()->settings->getOption( 'search_in_product_sku' ) === 'on' && in_array( 'sku', $this->searchIn ) ) {
630
  $join .= " INNER JOIN {$wpdb->postmeta} AS dgwt_wcasmsku ON ( {$wpdb->posts}.ID = dgwt_wcasmsku.post_id )";
631
  }
@@ -683,43 +703,18 @@ class Search
683
  if ( !empty($query->query_vars['order']) ) {
684
  $order = strtolower( $query->query_vars['order'] );
685
  }
686
- $urlPhrase = str_replace( "\\'", "'", $phrase );
687
- $urlPhrase = str_replace( '\\"', '"', $urlPhrase );
688
- $args = array(
689
- 's' => urlencode( $urlPhrase ),
690
- 'remote' => 1,
691
- );
692
- if ( Multilingual::isMultilingual() ) {
693
- $args['l'] = Multilingual::getCurrentLanguage();
694
- }
695
- $url = add_query_arg( $args, Helpers::getAjaxSearchEndpointUrl() );
696
  $postIn = array();
697
- $correctResponse = false;
698
- $r = wp_remote_retrieve_body( wp_remote_get( $url, array(
699
- 'timeout' => 120,
700
- ) ) );
701
- $decR = json_decode( $r );
702
- if ( json_last_error() == JSON_ERROR_NONE ) {
703
-
704
- if ( is_object( $decR ) && property_exists( $decR, 'suggestions' ) && is_array( $decR->suggestions ) ) {
705
- $correctResponse = true;
706
- foreach ( $decR->suggestions as $suggestion ) {
707
- $postIn[] = $suggestion->ID;
708
- }
709
- }
710
-
711
- }
712
-
713
- if ( $correctResponse ) {
714
- // Save for later use
715
- $this->postsIDsBuffer = $postIn;
716
- $query->set( 'orderby', $orderby );
717
- $query->set( 'order', $order );
718
- $query->set( 'post__in', $postIn );
719
- // Resetting the key 's' to disable the default search logic.
720
- $query->set( 's', '' );
721
- }
722
-
723
  }
724
 
725
  /**
@@ -915,29 +910,6 @@ class Search
915
  return $postsIDs;
916
  }
917
 
918
- /**
919
- * Basic Auth bypass when retrieving search results from a native engine.
920
- *
921
- * @return void
922
- */
923
- public function BasicAuthBypass()
924
- {
925
- $authorization = Helpers::getBasicAuthHeader();
926
- if ( $authorization ) {
927
- add_filter(
928
- 'http_request_args',
929
- function ( $r, $url ) {
930
- if ( strpos( $url, \WC_AJAX::get_endpoint( DGWT_WCAS_SEARCH_ACTION ) ) !== false ) {
931
- $r['headers']['Authorization'] = Helpers::getBasicAuthHeader();
932
- }
933
- return $r;
934
- },
935
- 10,
936
- 2
937
- );
938
- }
939
- }
940
-
941
  /**
942
  * Add taxonomies labels
943
  *
2
 
3
  namespace DgoraWcas\Engines\WordPressNative;
4
 
5
+ use DgoraWcas\Analytics\Recorder ;
6
  use DgoraWcas\Multilingual ;
7
  use DgoraWcas\Product ;
8
  use DgoraWcas\Helpers ;
96
  10,
97
  2
98
  );
 
99
  }
100
 
101
  } );
124
  2
125
  );
126
  }
127
+ // Add "No results" suggestion if all results have been removed in earlier filters.
128
+ add_filter( 'dgwt/wcas/search_results/output', array( 'DgoraWcas\\Helpers', 'noResultsSuggestion' ), PHP_INT_MAX - 10 );
129
+ // Init Search Analytics
130
+
131
+ if ( DGWT_WCAS()->settings->getOption( 'analytics_enabled' ) === 'on' ) {
132
+ $stats = new Recorder();
133
+ $stats->listen();
134
+ }
135
+
136
  }
137
 
138
  /**
147
  public function getSearchResults( $phrase = '', $return = false, $context = 'autocomplete' )
148
  {
149
  $start = microtime( true );
150
+ $lang = '';
151
+ if ( Multilingual::isMultilingual() ) {
152
+ $lang = Multilingual::getCurrentLanguage();
153
+ }
154
  if ( !defined( 'DGWT_WCAS_AJAX' ) ) {
155
  define( 'DGWT_WCAS_AJAX', true );
156
  }
204
  }
205
 
206
  /* SEARCH IN PRODUCTS */
207
+ $totalProducts = 0;
208
 
209
  if ( apply_filters( 'dgwt/wcas/search_in_products', true ) ) {
210
  $args = array(
226
 
227
  $args = apply_filters( 'dgwt/wcas/search_query/args', $args );
228
  $products = get_posts( $args );
229
+ $totalProducts = count( $products );
230
+ do_action(
231
+ 'dgwt/wcas/after_searching/products',
232
+ $keyword,
233
+ $totalProducts,
234
+ $lang
235
+ );
236
 
237
  if ( !empty($products) ) {
238
  $orderedProducts = array();
337
  if ( !empty($relevantProducts) ) {
338
  $this->groups['product']['results'] = $relevantProducts;
339
  }
 
340
 
341
  if ( $this->hasResutls() ) {
342
  if ( $this->flexibleLimits ) {
344
  }
345
  $results = $this->convertGroupsToSuggestions();
346
  // Show more
347
+ if ( !empty($this->groups['product']['results']) && count( $this->groups['product']['results'] ) < $totalProducts ) {
348
  $results[] = array(
349
  'value' => '',
350
+ 'total' => $totalProducts,
351
  'url' => add_query_arg( array(
352
  's' => $keyword,
353
  'post_type' => 'product',
359
  } else {
360
 
361
  if ( $remote ) {
362
+ $emptyResult = new \stdClass();
363
+ $emptyResult->ID = 0;
364
+ $results[] = $emptyResult;
365
  } else {
366
  $results[] = array(
367
  'value' => '',
372
  }
373
 
374
  $output['suggestions'] = $results;
375
+ $output['total'] = $totalProducts;
376
  $output['time'] = number_format(
377
  microtime( true ) - $start,
378
  2,
563
  {
564
  global $wpdb ;
565
 
566
+ if ( empty($search) ) {
567
  return $search;
568
  // skip processing - there is no keyword
569
  }
645
  // skip processing
646
  }
647
 
648
+ if ( $this->isAjaxSearch() ) {
649
  if ( DGWT_WCAS()->settings->getOption( 'search_in_product_sku' ) === 'on' && in_array( 'sku', $this->searchIn ) ) {
650
  $join .= " INNER JOIN {$wpdb->postmeta} AS dgwt_wcasmsku ON ( {$wpdb->posts}.ID = dgwt_wcasmsku.post_id )";
651
  }
703
  if ( !empty($query->query_vars['order']) ) {
704
  $order = strtolower( $query->query_vars['order'] );
705
  }
 
 
 
 
 
 
 
 
 
 
706
  $postIn = array();
707
+ $searchResults = $this->getSearchResults( $phrase, true, 'all-results' );
708
+ foreach ( $searchResults['suggestions'] as $suggestion ) {
709
+ $postIn[] = $suggestion->ID;
710
+ }
711
+ // Save for later use
712
+ $this->postsIDsBuffer = $postIn;
713
+ $query->set( 'orderby', $orderby );
714
+ $query->set( 'order', $order );
715
+ $query->set( 'post__in', $postIn );
716
+ // Resetting the key 's' to disable the default search logic.
717
+ $query->set( 's', '' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
718
  }
719
 
720
  /**
910
  return $postsIDs;
911
  }
912
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
913
  /**
914
  * Add taxonomies labels
915
  *
includes/Helpers.php CHANGED
@@ -2,6 +2,7 @@
2
 
3
  namespace DgoraWcas;
4
 
 
5
  use DgoraWcas\Engines\TNTSearchMySQL\SearchQuery\SearchResultsPageQuery ;
6
  use DgoraWcas\Integrations\Solver ;
7
  // Exit if accessed directly
@@ -153,6 +154,24 @@ class Helpers
153
  </svg>
154
  <?php
155
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  case 'arrow-left':
157
  $color = ( empty($color) ? '#fff' : $color );
158
  ?>
@@ -193,6 +212,44 @@ class Helpers
193
  </svg>
194
  <?php
195
  break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  }
197
  $svg .= ob_get_clean();
198
  return apply_filters(
@@ -786,6 +843,9 @@ class Helpers
786
  global $wpdb ;
787
  $exist = false;
788
  $wpdb->hide_errors();
 
 
 
789
  $sql = $wpdb->prepare( "SHOW TABLES LIKE %s", $tableName );
790
  if ( !empty($wpdb->get_var( $sql )) ) {
791
  $exist = true;
@@ -1132,6 +1192,19 @@ class Helpers
1132
  return false;
1133
  }
1134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1135
  /**
1136
  * Restore the search phrase so that it can be used in the template.
1137
  *
@@ -1508,5 +1581,57 @@ class Helpers
1508
  include $path;
1509
  }
1510
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1511
 
1512
  }
2
 
3
  namespace DgoraWcas;
4
 
5
+ use DgoraWcas\Engines\TNTSearchMySQL\Indexer\Builder ;
6
  use DgoraWcas\Engines\TNTSearchMySQL\SearchQuery\SearchResultsPageQuery ;
7
  use DgoraWcas\Integrations\Solver ;
8
  // Exit if accessed directly
154
  </svg>
155
  <?php
156
  break;
157
+ case 'magnifier-pirx':
158
+ $color = ( empty($color) ? '#111111' : $color );
159
+ ?>
160
+ <svg class="<?php
161
+ echo $class ;
162
+ ?>" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
163
+ <path fill="<?php
164
+ echo $color ;
165
+ ?>" d=" M 16.722523,17.901412 C 16.572585,17.825208 15.36088,16.670476 14.029846,15.33534 L 11.609782,12.907819 11.01926,13.29667 C 8.7613237,14.783493 5.6172703,14.768302 3.332423,13.259528 -0.07366363,11.010358 -1.0146502,6.5989684 1.1898146,3.2148776
166
+ 1.5505179,2.6611594 2.4056498,1.7447266 2.9644271,1.3130497 3.4423015,0.94387379 4.3921825,0.48568469 5.1732652,0.2475835 5.886299,0.03022609 6.1341883,0 7.2037391,0 8.2732897,0 8.521179,0.03022609 9.234213,0.2475835 c 0.781083,0.23810119 1.730962,0.69629029 2.208837,1.0654662
167
+ 0.532501,0.4113763 1.39922,1.3400096 1.760153,1.8858877 1.520655,2.2998531 1.599025,5.3023778 0.199549,7.6451086 -0.208076,0.348322 -0.393306,0.668209 -0.411622,0.710863 -0.01831,0.04265 1.065556,1.18264 2.408603,2.533307 1.343046,1.350666 2.486621,2.574792 2.541278,2.720279 0.282475,0.7519
168
+ -0.503089,1.456506 -1.218488,1.092917 z M 8.4027892,12.475062 C 9.434946,12.25579 10.131043,11.855461 10.99416,10.984753 11.554519,10.419467 11.842507,10.042366 12.062078,9.5863882 12.794223,8.0659672 12.793657,6.2652398 12.060578,4.756293 11.680383,3.9737304 10.453587,2.7178427
169
+ 9.730569,2.3710306 8.6921295,1.8729196 8.3992147,1.807606 7.2037567,1.807606 6.0082984,1.807606 5.7153841,1.87292 4.6769446,2.3710306 3.9539263,2.7178427 2.7271301,3.9737304 2.3469352,4.756293 1.6138384,6.2652398 1.6132726,8.0659672 2.3454252,9.5863882 c 0.4167354,0.8654208 1.5978784,2.0575608
170
+ 2.4443766,2.4671358 1.0971012,0.530827 2.3890403,0.681561 3.6130134,0.421538 z
171
+ "/>
172
+ </svg>
173
+ <?php
174
+ break;
175
  case 'arrow-left':
176
  $color = ( empty($color) ? '#fff' : $color );
177
  ?>
212
  </svg>
213
  <?php
214
  break;
215
+ case 'face-smile':
216
+ $color = ( empty($color) ? '#ddd' : $color );
217
+ ?>
218
+ <svg class="<?php
219
+ echo $class ;
220
+ ?>" width="64" height="54" viewBox="0 0 64 54" xmlns="http://www.w3.org/2000/svg">
221
+ <g transform="translate(-34.294922,-62.985674)">
222
+ <path fill="<?php
223
+ echo $color ;
224
+ ?>"
225
+ d="m 60.814237,116.23604 c -9.048223,-1.66914 -16.519379,-6.20497 -21.793789,-13.23128 -1.60071,-2.1324 -4.314629,-7.202619 -4.669151,-8.723059 -0.160775,-0.68952 -0.10638,-0.72795 1.948599,-1.37712 2.642805,-0.83486 2.824539,-0.83179 3.160818,0.0535 2.303833,6.06532 7.117271,11.515849 13.090786,14.823419 3.461115,1.91644 6.665367,2.90424 10.975589,3.38351 8.531032,0.94862 17.134659,-2.15367 23.386899,-8.4328 3.02499,-3.037969 4.6729,-5.555849 6.38356,-9.753479 l 0.39246,-0.963 2.31721,0.75094 c 2.22899,0.72234 2.31594,0.77987 2.28317,1.51079 -0.042,0.93936 -2.04226,5.11147 -3.54876,7.402399 -1.51073,2.29734 -5.78521,6.66064 -8.29613,8.46852 -4.24115,3.05365 -9.37348,5.21483 -14.417657,6.07116 -2.90299,0.49283 -8.586032,0.50118 -11.213604,0.0164 z M 47.412846,73.573941 c -0.309888,-0.59465 -0.464319,-1.51592 -0.477161,-2.84652 -0.02483,-2.57365 0.873951,-4.54095 2.753263,-6.02646 1.633788,-1.29143 2.83173,-1.69831 4.961024,-1.685 2.909938,0.0182 5.40834,1.54992 6.76366,4.14667 0.581876,1.11485 0.698121,1.68141 0.704505,3.43363 0.0045,1.23792 -0.144736,2.45984 -0.363942,2.97966 -0.361143,0.85641 -0.401692,0.87525 -1.4427,0.67016 -1.441299,-0.28395 -9.681541,-0.29597 -11.215046,-0.0164 -1.208977,0.22044 -1.231574,0.21163 -1.683603,-0.65577 z m 23.590775,-0.1224 c -0.24773,-0.57773 -0.44716,-1.76886 -0.46047,-2.75021 -0.0439,-3.23955 2.24441,-6.50245 5.168157,-7.3692 3.62299,-1.07405 7.38202,0.40563 9.28658,3.6555 0.92458,1.57769 1.14637,4.5061 0.47452,6.26533 l -0.46168,1.20889 -1.21243,-0.22321 c -1.58287,-0.29141 -9.51286,-0.28827 -11.113147,0.004 l -1.24453,0.22755 z"
226
+ id="path21"/>
227
+ </g>
228
+ </svg>
229
+ <?php
230
+ break;
231
+ case 'face-sad':
232
+ $color = ( empty($color) ? '#ddd' : $color );
233
+ ?>
234
+ <svg class="<?php
235
+ echo $class ;
236
+ ?>" width="64" height="54" viewBox="0 0 64 54" xmlns="http://www.w3.org/2000/svg">
237
+ <g
238
+ transform="translate(-34.294922,-62.985674)">
239
+ <path
240
+ fill="<?php
241
+ echo $color ;
242
+ ?>"
243
+ d="m 65.333527,90.188647 c -4.021671,0.04374 -7.952038,1.143031 -11.366869,2.831872 -2.463508,1.202323 -4.481746,2.907174 -6.347127,4.661802 -1.281094,1.28132 -2.179231,2.786709 -2.971747,4.298239 -0.224234,0.44934 -0.524822,1.14105 0.121782,1.45463 1.051756,0.40354 2.200055,0.61503 3.294735,0.93066 0.910618,-1.93591 2.051059,-3.84127 3.823337,-5.359309 2.631922,-2.416592 6.216388,-4.201746 10.051876,-4.937105 3.649681,-0.714791 7.581941,-0.473293 11.128238,0.561988 5.123487,1.585728 9.378549,4.981727 11.316726,9.159886 0.309445,0.53176 1.133677,0.34172 1.670314,0.20167 0.749446,-0.21997 1.601188,-0.3033 2.249216,-0.69551 0.392685,-0.41377 -0.04361,-0.941 -0.217903,-1.36088 -1.187297,-2.097179 -2.607848,-4.146079 -4.601341,-5.811643 -3.684753,-3.211163 -8.802941,-5.255991 -14.137691,-5.844622 -1.333029,-0.105798 -2.675274,-0.117509 -4.013546,-0.09168 z"/>
244
+ <path
245
+ fill="<?php
246
+ echo $color ;
247
+ ?>"
248
+ d="m 98.621511,94.193314 c -42.884393,-20.805093 -21.442196,-10.402547 0,0 z M 47.743964,73.489793 c -0.309888,-0.59465 -0.464319,-1.51592 -0.477161,-2.84652 -0.02483,-2.57365 0.873951,-4.54095 2.753263,-6.02646 1.633788,-1.29143 2.83173,-1.69831 4.961024,-1.685 2.909938,0.0182 5.40834,1.54992 6.76366,4.14667 0.581876,1.11485 0.698121,1.68141 0.704505,3.43363 0.0045,1.23792 -0.144736,2.45984 -0.363942,2.97966 -0.361143,0.85641 -0.401692,0.87525 -1.4427,0.67016 -1.441299,-0.28395 -9.681541,-0.29597 -11.215046,-0.0164 -1.208977,0.22044 -1.231574,0.21163 -1.683603,-0.65577 z m 23.590775,-0.1224 c -0.24773,-0.57773 -0.44716,-1.76886 -0.46047,-2.75021 -0.0439,-3.23955 2.24441,-6.50245 5.168157,-7.3692 3.62299,-1.07405 7.38202,0.40563 9.28658,3.6555 0.92458,1.57769 1.14637,4.5061 0.47452,6.26533 l -0.46168,1.20889 -1.21243,-0.22321 c -1.58287,-0.29141 -9.51286,-0.28827 -11.113147,0.004 l -1.24453,0.22755 z"/>
249
+ </g>
250
+ </svg>
251
+ <?php
252
+ break;
253
  }
254
  $svg .= ob_get_clean();
255
  return apply_filters(
843
  global $wpdb ;
844
  $exist = false;
845
  $wpdb->hide_errors();
846
+ if ( empty($tableName) ) {
847
+ return false;
848
+ }
849
  $sql = $wpdb->prepare( "SHOW TABLES LIKE %s", $tableName );
850
  if ( !empty($wpdb->get_var( $sql )) ) {
851
  $exist = true;
1192
  return false;
1193
  }
1194
 
1195
+ /**
1196
+ * Check if this is a remote search request
1197
+ *
1198
+ * @return bool
1199
+ */
1200
+ public static function isRemoteSearchRequest()
1201
+ {
1202
+ if ( isset( $_GET['wc-ajax'] ) && $_GET['wc-ajax'] === DGWT_WCAS_SEARCH_ACTION && !empty($_GET['remote']) && isset( $_GET['s'] ) ) {
1203
+ return true;
1204
+ }
1205
+ return false;
1206
+ }
1207
+
1208
  /**
1209
  * Restore the search phrase so that it can be used in the template.
1210
  *
1581
  include $path;
1582
  }
1583
  }
1584
+
1585
+ /**
1586
+ * Add "No results" if suggestions are empty
1587
+ *
1588
+ * @param array $output
1589
+ *
1590
+ * @return array
1591
+ */
1592
+ public static function noResultsSuggestion( $output )
1593
+ {
1594
+ if ( empty($output['suggestions']) ) {
1595
+ $output['suggestions'][] = array(
1596
+ 'value' => '',
1597
+ 'type' => 'no-results',
1598
+ );
1599
+ }
1600
+ return $output;
1601
+ }
1602
+
1603
+ /**
1604
+ * Get default collate
1605
+ *
1606
+ * @param string $context
1607
+ *
1608
+ * @return string
1609
+ */
1610
+ public static function getCollate( $context = '' )
1611
+ {
1612
+ global $wpdb ;
1613
+ $sql = '';
1614
+ $collate = '';
1615
+ $charset = '';
1616
+
1617
+ if ( $wpdb->has_cap( 'collation' ) ) {
1618
+ if ( !empty($wpdb->charset) ) {
1619
+ $charset = $wpdb->charset;
1620
+ }
1621
+ if ( !empty($wpdb->collate) ) {
1622
+ $collate = $wpdb->collate;
1623
+ }
1624
+ }
1625
+
1626
+ $charset = apply_filters( 'dgwt/wcas/db/charset', $charset, $context );
1627
+ $collate = apply_filters( 'dgwt/wcas/db/collation', $collate, $context );
1628
+ if ( !empty($charset) ) {
1629
+ $sql .= " DEFAULT CHARACTER SET " . $charset;
1630
+ }
1631
+ if ( !empty($collate) ) {
1632
+ $sql .= " COLLATE " . $collate;
1633
+ }
1634
+ return apply_filters( 'dgwt/wcas/db/collation/sql', $sql, $context );
1635
+ }
1636
 
1637
  }
includes/Multilingual.php CHANGED
@@ -131,7 +131,7 @@ class Multilingual {
131
  }
132
 
133
  if ( empty( $currentLang ) && ! empty( $_GET['lang'] ) && self::isLangCode( $_GET['lang'] ) ) {
134
- $currentLang = strtolower($_GET['lang']);
135
  }
136
 
137
  $currentLang = apply_filters( 'dgwt/wcas/multilingual/current-language', $currentLang );
@@ -207,7 +207,7 @@ class Multilingual {
207
  }
208
 
209
  if ( self::isPolylang() ) {
210
- $lang = pll_get_term_language($termID, 'slug');
211
  }
212
 
213
  // TranslatePress/qTranslate-XT has no language relationship with the post, so we always return the default
@@ -307,6 +307,55 @@ class Multilingual {
307
 
308
  }
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  /**
311
  * Get all terms in one taxonomy for all languages
312
  *
@@ -315,11 +364,11 @@ class Multilingual {
315
  * @return array of WP_Term objects
316
  */
317
  public static function getTermsInAllLangs( $taxonomy ) {
318
- $terms = array();
319
 
320
  if ( self::isWPML() ) {
321
  $currentLang = self::getCurrentLanguage();
322
- $usedIds = array();
323
 
324
  foreach ( self::getLanguages() as $lang ) {
325
  do_action( 'wpml_switch_language', $lang );
@@ -331,6 +380,7 @@ class Multilingual {
331
  $termsInLang = get_terms( apply_filters( 'dgwt/wcas/search/' . $taxonomy . '/args', $args ) );
332
 
333
  if ( ! empty( $termsInLang ) && is_array( $termsInLang ) ) {
 
334
  foreach ( $termsInLang as $termInLang ) {
335
 
336
  if ( ! in_array( $termInLang->term_id, $usedIds ) ) {
@@ -348,9 +398,9 @@ class Multilingual {
348
  if ( self::isPolylang() ) {
349
 
350
  $terms = get_terms( array(
351
- 'taxonomy' => $taxonomy,
352
  'hide_empty' => true,
353
- 'lang' => '', // query terms in all languages
354
  ) );
355
 
356
  }
@@ -415,7 +465,7 @@ class Multilingual {
415
  return $terms;
416
  }
417
 
418
- public static function searchTerms($taxonomy, $query, $lang = ''){
419
  $terms = array();
420
 
421
  if ( empty( $lang ) ) {
@@ -428,7 +478,7 @@ class Multilingual {
428
  'search' => $query,
429
  );
430
  $terms = get_terms( $args );
431
- }
432
 
433
  /**
434
  * Get term in specific language
131
  }
132
 
133
  if ( empty( $currentLang ) && ! empty( $_GET['lang'] ) && self::isLangCode( $_GET['lang'] ) ) {
134
+ $currentLang = strtolower( $_GET['lang'] );
135
  }
136
 
137
  $currentLang = apply_filters( 'dgwt/wcas/multilingual/current-language', $currentLang );
207
  }
208
 
209
  if ( self::isPolylang() ) {
210
+ $lang = pll_get_term_language( $termID, 'slug' );
211
  }
212
 
213
  // TranslatePress/qTranslate-XT has no language relationship with the post, so we always return the default
307
 
308
  }
309
 
310
+ /**
311
+ * Get language details by language code
312
+ *
313
+ * @param string $lang
314
+ * @param string $field | name | locale |
315
+ *
316
+ * @return string
317
+ */
318
+ public static function getLanguageField( $lang, $field ) {
319
+ $value = $lang;
320
+
321
+ if ( self::isWPML() ) {
322
+ global $sitepress;
323
+ $details = $sitepress->get_language_details( $lang );
324
+
325
+ if ( $field === 'name' && ! empty( $details['display_name'] ) ) {
326
+ $value = $details['display_name'];
327
+ }
328
+
329
+ if ( $field === 'locale' && ! empty( $details['default_locale'] ) ) {
330
+ $value = $details['default_locale'];
331
+ }
332
+ }
333
+
334
+ if ( self::isPolylang() ) {
335
+ $langs = pll_languages_list( array(
336
+ 'hide_empty' => false,
337
+ 'fields' => ''
338
+ ) );
339
+
340
+ if ( ! empty( $langs ) && is_array( $langs ) ) {
341
+ foreach ( $langs as $object ) {
342
+ if ( ! empty( $object->slug ) && $object->slug === $lang ) {
343
+
344
+ if ( $field === 'name' ) {
345
+ $value = $object->name;
346
+ }
347
+
348
+ if ( $field === 'locale' ) {
349
+ $value = $object->locale;
350
+ }
351
+ }
352
+ }
353
+ }
354
+ }
355
+
356
+ return $value;
357
+ }
358
+
359
  /**
360
  * Get all terms in one taxonomy for all languages
361
  *
364
  * @return array of WP_Term objects
365
  */
366
  public static function getTermsInAllLangs( $taxonomy ) {
367
+ $terms = array();
368
 
369
  if ( self::isWPML() ) {
370
  $currentLang = self::getCurrentLanguage();
371
+ $usedIds = array();
372
 
373
  foreach ( self::getLanguages() as $lang ) {
374
  do_action( 'wpml_switch_language', $lang );
380
  $termsInLang = get_terms( apply_filters( 'dgwt/wcas/search/' . $taxonomy . '/args', $args ) );
381
 
382
  if ( ! empty( $termsInLang ) && is_array( $termsInLang ) ) {
383
+ ;
384
  foreach ( $termsInLang as $termInLang ) {
385
 
386
  if ( ! in_array( $termInLang->term_id, $usedIds ) ) {
398
  if ( self::isPolylang() ) {
399
 
400
  $terms = get_terms( array(
401
+ 'taxonomy' => $taxonomy,
402
  'hide_empty' => true,
403
+ 'lang' => '', // query terms in all languages
404
  ) );
405
 
406
  }
465
  return $terms;
466
  }
467
 
468
+ public static function searchTerms( $taxonomy, $query, $lang = '' ) {
469
  $terms = array();
470
 
471
  if ( empty( $lang ) ) {
478
  'search' => $query,
479
  );
480
  $terms = get_terms( $args );
481
+ }
482
 
483
  /**
484
  * Get term in specific language
includes/Settings.php CHANGED
@@ -150,6 +150,8 @@ class Settings
150
  */
151
  function settingsFields()
152
  {
 
 
153
  $settingsFields = array(
154
  'dgwt_wcas_basic' => apply_filters( 'dgwt/wcas/settings/section=basic', array(
155
  90 => array(
@@ -249,7 +251,7 @@ class Settings
249
  ),
250
  695 => array(
251
  'name' => 'darken_background',
252
- 'label' => __( 'Darkened background', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'darken-_background', __( 'Darkening the page background while autocomplete is active gives it stronger emphasis, minimizing elements (e.g., ads, carousels, and other page content) that could distract users from considering autocomplete suggestions.', 'ajax-search-for-woocommerce' ) ),
253
  'desc' => __( '(beta feature)', 'ajax-search-for-woocommerce' ),
254
  'type' => 'checkbox',
255
  'class' => 'js-dgwt-wcas-adv-settings',
@@ -655,7 +657,7 @@ class Settings
655
  ) ),
656
  );
657
  $fuzzinesText1 = '<strong>' . __( 'Increases sales conversions', 'ajax-search-for-woocommerce' ) . '</strong>';
658
- $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' );
659
 
660
  if ( dgoraAsfwFs()->is_premium() ) {
661
  } else {
150
  */
151
  function settingsFields()
152
  {
153
+ $darkenedBgLink = 'https://fibosearch.com/darkened-background/';
154
+ $fuzzySearchLink = 'https://fibosearch.com/documentation/features/fuzzy-search/';
155
  $settingsFields = array(
156
  'dgwt_wcas_basic' => apply_filters( 'dgwt/wcas/settings/section=basic', array(
157
  90 => array(
251
  ),
252
  695 => array(
253
  'name' => 'darken_background',
254
+ 'label' => __( 'Darkened background', 'ajax-search-for-woocommerce' ) . ' ' . Helpers::createQuestionMark( 'darken-_background', sprintf( __( 'Darkening the page background while autocomplete is active gives it stronger emphasis, minimizing elements (e.g., ads, carousels, and other page content) that could distract users from considering autocomplete suggestions. <a target="_blank" href="%s">Read more</a> about this feature.', 'ajax-search-for-woocommerce' ), $darkenedBgLink ) ),
255
  'desc' => __( '(beta feature)', 'ajax-search-for-woocommerce' ),
256
  'type' => 'checkbox',
257
  'class' => 'js-dgwt-wcas-adv-settings',
657
  ) ),
658
  );
659
  $fuzzinesText1 = '<strong>' . __( 'Increases sales conversions', 'ajax-search-for-woocommerce' ) . '</strong>';
660
+ $fuzzinesText2 = sprintf( __( '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”. <a target="_blank" href="%s">Read more</a> about fuzzy search feature.', 'ajax-search-for-woocommerce' ), $fuzzySearchLink );
661
 
662
  if ( dgoraAsfwFs()->is_premium() ) {
663
  } else {
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: 2022-02-23 21:16+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: Damian Góra <support@fibosearch.com>\n"
9
  "Language-Team: \n"
@@ -14,7 +14,7 @@ msgstr ""
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
- #: includes/Admin/Troubleshooting.php:1874
18
  msgid "\"Out of stock\" relationships"
19
  msgstr ""
20
 
@@ -23,7 +23,7 @@ msgstr ""
23
  msgid "%1$s was called with an invalid level \"%2$s\"."
24
  msgstr ""
25
 
26
- #: ajax-search-for-woocommerce.php:262
27
  #, php-format
28
  msgid "%s is enabled but not effective. It requires %s in order to work."
29
  msgstr ""
@@ -54,22 +54,26 @@ msgid ""
54
  "/><br />You can do it by clicking %s or use an external plugin such as %s."
55
  msgstr ""
56
 
57
- #: ajax-search-for-woocommerce.php:242
58
  #, php-format
59
  msgid ""
60
  "%s: You need PHP version at least 7.0 to run this plugin. You are currently "
61
  "using PHP version "
62
  msgstr ""
63
 
64
- #: includes/Settings.php:272
65
  msgid "(beta feature)"
66
  msgstr ""
67
 
68
- #: includes/Settings.php:752 includes/Settings.php:814
69
  msgid "-- Disabled"
70
  msgstr ""
71
 
72
- #: includes/Admin/Troubleshooting.php:1256
 
 
 
 
73
  #, php-format
74
  msgid ""
75
  "1. Unblock the default endpoint or get around the restrictions. Learn how to "
@@ -77,11 +81,18 @@ msgid ""
77
  "and fix it as soon as possible."
78
  msgstr ""
79
 
80
- #: includes/Admin/Troubleshooting.php:1257
81
  msgid ""
82
  "2. Once you do that, turn off the safe mode by clicking the following button:"
83
  msgstr ""
84
 
 
 
 
 
 
 
 
85
  #: partials/admin/indexer-header.php:86
86
  #, php-format
87
  msgid ""
@@ -96,24 +107,43 @@ msgid ""
96
  "products "
97
  msgstr ""
98
 
99
- #: includes/Admin/Troubleshooting.php:1263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  msgid ""
101
  "<strong>Warning:</strong> We have detected that the search endpoint is being "
102
  "overwritten by the filter and alternative search endpoint will not work "
103
  "properly. Remove filters that override the search engine endpoint."
104
  msgstr ""
105
 
106
- #: includes/Admin/Troubleshooting.php:837
107
  msgid ""
108
  "A real solution is to find the reason why the WP-Cron doesn’t work and fix "
109
  "it."
110
  msgstr ""
111
 
112
- #: includes/Admin/Troubleshooting.php:1572
113
  msgid "A search engine's AJAX call did not return valid results"
114
  msgstr ""
115
 
116
- #: includes/Admin/Troubleshooting.php:673
117
  #, php-format
118
  msgid ""
119
  "Add <strong>Archive Products</strong> widget to the template <strong>"
@@ -122,8 +152,10 @@ msgid ""
122
  "documentation</a>."
123
  msgstr ""
124
 
125
- #: includes/Admin/Troubleshooting.php:1039
126
- #: includes/Admin/Troubleshooting.php:1073
 
 
127
  #, php-format
128
  msgid "Add a constant <code>%s</code> to your <code>wp-config.php</code> file."
129
  msgstr ""
@@ -149,45 +181,60 @@ msgstr ""
149
  msgid "Add FiboSearch as a menu item."
150
  msgstr ""
151
 
152
- #: includes/Admin/SettingsAPI.php:524 includes/Admin/SettingsAPI.php:625
153
  msgid "Add new rule"
154
  msgstr ""
155
 
156
- #: includes/Admin/Troubleshooting.php:726
157
  msgid ""
158
  "Add the following PHP code to your functions.php file in the child theme or "
159
  "use e.g. CodeSnippets plugin."
160
  msgstr ""
161
 
162
- #: includes/Admin/Troubleshooting.php:1739
163
  msgid "Add the following URL to the white list:"
164
  msgstr ""
165
 
166
- #: includes/Admin/Troubleshooting.php:1687
167
  msgid ""
168
  "Adding extra rules to <code>/usr/local/nginx/conf/wpsecure_${vhostname}."
169
  "conf</code>"
170
  msgstr ""
171
 
172
- #: includes/Settings.php:372
173
  msgctxt "admin"
174
  msgid "No results label"
175
  msgstr ""
176
 
 
 
 
 
 
 
 
177
  #: widget.php:24
178
  msgid "AJAX (live) search form for WooCommerce"
179
  msgstr ""
180
 
 
 
 
 
 
 
 
 
181
  #: partials/admin/indexer-header.php:21
182
  msgid "All product changes will be <strong>re-indexed automatically</strong>"
183
  msgstr ""
184
 
185
- #: includes/Admin/Troubleshooting.php:1261
186
  #, php-format
187
  msgid "Alternative endpoint: <code>%s</code>"
188
  msgstr ""
189
 
190
- #: includes/Admin/Troubleshooting.php:1859
191
  msgid "Alternative search endpoint"
192
  msgstr ""
193
 
@@ -213,13 +260,21 @@ msgstr ""
213
  msgid "Alternative ways to embed a search bar"
214
  msgstr ""
215
 
216
- #: includes/Admin/Troubleshooting.php:917
217
  #, php-format
218
  msgid ""
219
  "An error occurred while trying to connect to the database using a PDO_MYSQL "
220
  "driver: <code>%s</code>."
221
  msgstr ""
222
 
 
 
 
 
 
 
 
 
223
  #: partials/admin/features.php:31
224
  msgid "And more..."
225
  msgstr ""
@@ -247,7 +302,7 @@ msgstr ""
247
  msgid "As a widget - go to the %s and choose “FiboSearch bar”"
248
  msgstr ""
249
 
250
- #: includes/Admin/SettingsAPI.php:583
251
  #, php-format
252
  msgid "Attributes: %s"
253
  msgstr ""
@@ -256,20 +311,24 @@ msgstr ""
256
  msgid "Autocomplete"
257
  msgstr ""
258
 
 
 
 
 
259
  #: includes/Integrations/Brands.php:192 includes/Integrations/Brands.php:214
260
  #, php-format
261
  msgid "Based on the plugin %s"
262
  msgstr ""
263
 
264
- #: includes/Settings.php:191 includes/Settings.php:350
265
  msgid "Basic"
266
  msgstr ""
267
 
268
- #: includes/Admin/Troubleshooting.php:1864
269
  msgid "Blocked search endpoint test"
270
  msgstr ""
271
 
272
- #: includes/Settings.php:561
273
  msgid "Border color"
274
  msgstr ""
275
 
@@ -290,6 +349,12 @@ msgstr ""
290
  msgid "Build index"
291
  msgstr ""
292
 
 
 
 
 
 
 
293
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:659
294
  msgid "Canceling..."
295
  msgstr ""
@@ -298,13 +363,17 @@ msgstr ""
298
  msgid "Cancellation..."
299
  msgstr ""
300
 
301
- #: includes/Admin/Troubleshooting.php:1158
302
  msgid ""
303
  "Change the above-mentioned language codes to the correct format: <code>"
304
  "xx</code>, <code>xxx</code>, <code>xx-xx</code> or <code>xx-xxxx</code>."
305
  msgstr ""
306
 
307
- #: includes/Admin/Troubleshooting.php:1495
 
 
 
 
308
  #, php-format
309
  msgid ""
310
  "Check how to solve this issue in <a target=\"_blank\" href=\"%s\">our "
@@ -314,8 +383,12 @@ msgid ""
314
  "temporarily, and solve the source of the problem as soon as possible."
315
  msgstr ""
316
 
317
- #: partials/admin/troubleshooting.php:22
318
- msgid "Check status again"
 
 
 
 
319
  msgstr ""
320
 
321
  #: partials/admin/embedding-in-theme.php:16
@@ -323,7 +396,11 @@ msgstr ""
323
  msgid "child theme of <b>%s</b>"
324
  msgstr ""
325
 
326
- #: includes/Settings.php:280
 
 
 
 
327
  msgid "Colors"
328
  msgstr ""
329
 
@@ -331,7 +408,7 @@ msgstr ""
331
  msgid "Completed. Works."
332
  msgstr ""
333
 
334
- #: includes/Admin/SettingsAPI.php:723
335
  msgid "Contact"
336
  msgstr ""
337
 
@@ -357,11 +434,11 @@ msgid ""
357
  "variables, try to solve it in an alternative way. Follow steps below:"
358
  msgstr ""
359
 
360
- #: includes/Helpers.php:1054
361
  msgid "continue reading"
362
  msgstr ""
363
 
364
- #: includes/Admin/Troubleshooting.php:797
365
  #, php-format
366
  msgid ""
367
  "Could not load <code>wp-load.php</code> from the locations it normally is. "
@@ -369,28 +446,34 @@ msgid ""
369
  "support</a>."
370
  msgstr ""
371
 
372
- #: includes/Admin/Troubleshooting.php:1264
 
 
 
 
373
  #, php-format
374
  msgid "Current endpoint: <code>%s</code>"
375
  msgstr ""
376
 
377
- #: includes/Admin/Troubleshooting.php:796
378
  msgid "Custom location of wp-load.php file"
379
  msgstr ""
380
 
381
- #: includes/Settings.php:712
382
  msgid "daily"
383
  msgstr ""
384
 
385
- #: includes/Settings.php:271
386
  msgid "Darkened background"
387
  msgstr ""
388
 
389
- #: includes/Settings.php:271
 
390
  msgid ""
391
  "Darkening the page background while autocomplete is active gives it stronger "
392
  "emphasis, minimizing elements (e.g., ads, carousels, and other page content) "
393
- "that could distract users from considering autocomplete suggestions."
 
394
  msgstr ""
395
 
396
  #: partials/admin/indexer-body.php:46
@@ -405,24 +488,24 @@ msgstr ""
405
  msgid "Default"
406
  msgstr ""
407
 
408
- #: includes/Admin/Troubleshooting.php:1260
409
  #, php-format
410
  msgid "Default endpoint: <code>%s</code>"
411
  msgstr ""
412
 
413
- #: includes/Admin/Troubleshooting.php:1607
414
  msgid "Defender plugin by WPMU DEV blocks AJAX calls of the live search"
415
  msgstr ""
416
 
417
- #: includes/Settings.php:473
418
  msgid "Details panel"
419
  msgstr ""
420
 
421
- #: includes/Admin/Troubleshooting.php:666
422
  msgid "Dismiss"
423
  msgstr ""
424
 
425
- #: includes/Admin/Troubleshooting.php:372
426
  #, php-format
427
  msgid ""
428
  "Due to the way the TranslatePress - Multilingual plugin works, we can only "
@@ -430,24 +513,28 @@ msgid ""
430
  "version</a>."
431
  msgstr ""
432
 
433
- #: includes/Admin/Troubleshooting.php:925
434
  msgid ""
435
  "Edit <code>wp-config.php</code> file, find the <code>DB_HOST</code> constant,"
436
  " and change its value from <code>localhost</code> to <code>127.0.0.1</code>."
437
  msgstr ""
438
 
439
- #: includes/Admin/Troubleshooting.php:1776
440
  msgid "Elementor search results template"
441
  msgstr ""
442
 
443
- #: includes/Admin/Troubleshooting.php:1484
444
  msgid "Enable alternative search endpoint"
445
  msgstr ""
446
 
447
- #: includes/Settings.php:699
448
  msgid "Enable Scheduler"
449
  msgstr ""
450
 
 
 
 
 
451
  #: partials/admin/indexer-body.php:76 partials/admin/indexer-body.php:99
452
  #: partials/admin/indexer-body.php:124
453
  msgid "End"
@@ -458,7 +545,7 @@ msgstr ""
458
  msgid "Error code %s"
459
  msgstr ""
460
 
461
- #: includes/Admin/Troubleshooting.php:916
462
  msgid "Error establishing a database connection"
463
  msgstr ""
464
 
@@ -466,28 +553,35 @@ msgstr ""
466
  msgid "Errors"
467
  msgstr ""
468
 
469
- #: includes/Settings.php:663 includes/Settings.php:774
470
  msgid "Exclude"
471
  msgstr ""
472
 
473
- #: includes/Settings.php:659 includes/Settings.php:770
474
  msgid ""
475
  "Exclude the product group from the search results or allow search only among "
476
  "the indicated product group"
477
  msgstr ""
478
 
479
- #: includes/Settings.php:625
480
  msgid "Exclude “out of stock” products"
481
  msgstr ""
482
 
483
- #: includes/Settings.php:652 includes/Settings.php:763
484
  msgid "Exclude/include products"
485
  msgstr ""
486
 
487
- #: includes/Admin/Troubleshooting.php:606
488
  msgid "Extensions should looks like the picture below:"
489
  msgstr ""
490
 
 
 
 
 
 
 
 
491
  #: includes/Admin/AdminMenu.php:70 includes/Admin/AdminMenu.php:71
492
  msgid "FiboSearch"
493
  msgstr ""
@@ -513,21 +607,21 @@ msgstr ""
513
  msgid "FiboSearch Team"
514
  msgstr ""
515
 
516
- #: includes/Admin/Troubleshooting.php:918
517
  msgid ""
518
  "FiboSearch uses a PDO_MYSQL driver in the search engine. A proper database "
519
  "connection is required."
520
  msgstr ""
521
 
522
- #: includes/Settings.php:658 includes/Settings.php:769
523
  msgid "Filtering mode"
524
  msgstr ""
525
 
526
- #: includes/Settings.php:670 includes/Settings.php:781
527
  msgid "Filters"
528
  msgstr ""
529
 
530
- #: includes/Settings.php:671 includes/Settings.php:782
531
  msgid ""
532
  "Filters that specify the product group that will be affected by the above "
533
  "mode"
@@ -538,11 +632,11 @@ msgstr ""
538
  msgid "Finalization... Wait a moment. (%s products)"
539
  msgstr ""
540
 
541
- #: includes/Admin/Troubleshooting.php:1738
542
  msgid "Find section <code>Access Control -> whitelist URL</code>"
543
  msgstr ""
544
 
545
- #: includes/Admin/Troubleshooting.php:1322
546
  msgid "Fix “Out of stock“ relationships"
547
  msgstr ""
548
 
@@ -550,7 +644,7 @@ msgstr ""
550
  msgid "Flatsome Theme"
551
  msgstr ""
552
 
553
- #: includes/Helpers.php:952
554
  #, php-format
555
  msgid ""
556
  "Furthermore, you can override this option for a specific search bar via "
@@ -558,11 +652,11 @@ msgid ""
558
  "shortcodes parameters</a>."
559
  msgstr ""
560
 
561
- #: includes/Settings.php:631
562
  msgid "Fuzziness"
563
  msgstr ""
564
 
565
- #: includes/Settings.php:747 includes/Settings.php:809
566
  msgid "Fuzzy matching"
567
  msgstr ""
568
 
@@ -570,7 +664,7 @@ msgstr ""
570
  msgid "Fuzzy search"
571
  msgstr ""
572
 
573
- #: includes/Admin/Troubleshooting.php:452
574
  #, php-format
575
  msgid ""
576
  "Go to <a href=\"%s\" target=\"_blank\">Tools -> Site Health</a> in your "
@@ -586,7 +680,7 @@ msgid ""
586
  "Header -> Search</code> and enable <code>Predictive Search</code>"
587
  msgstr ""
588
 
589
- #: includes/Admin/Troubleshooting.php:1609
590
  #, php-format
591
  msgid ""
592
  "Go to <code>Defender -> Security Tweaks -> <a href=\"%s\" target=\"_blank\">"
@@ -594,14 +688,14 @@ msgid ""
594
  "exceptions: <code>%s</code>"
595
  msgstr ""
596
 
597
- #: includes/Admin/Troubleshooting.php:730
598
  #, php-format
599
  msgid ""
600
  "Go to <code>Security -> Settings -> Advanced -> <a href=\"%s\" "
601
  "target=\"_blank\">System Tweaks</a></code>."
602
  msgstr ""
603
 
604
- #: includes/Admin/Troubleshooting.php:555
605
  #, php-format
606
  msgid ""
607
  "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
@@ -609,7 +703,7 @@ msgid ""
609
  "option <code>%s</code>."
610
  msgstr ""
611
 
612
- #: includes/Admin/Troubleshooting.php:605
613
  #, php-format
614
  msgid ""
615
  "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
@@ -617,33 +711,33 @@ msgid ""
617
  "Searching by Text</code> extension and save changes."
618
  msgstr ""
619
 
620
- #: includes/Admin/Troubleshooting.php:958
621
  #, php-format
622
  msgid ""
623
  "Go to the <code>Jetpack settings page -> <a href=\"%s\" target=\"_blank\">"
624
  "Performance tab</a> -> disable the Search module</code>"
625
  msgstr ""
626
 
627
- #: includes/Admin/Troubleshooting.php:883
628
- #: includes/Admin/Troubleshooting.php:1040
629
- #: includes/Admin/Troubleshooting.php:1074
630
- #: includes/Admin/Troubleshooting.php:1159
631
- #: includes/Admin/Troubleshooting.php:1192
632
  #, php-format
633
  msgid "Go to the Indexer tab and click the button <i>%s</i>."
634
  msgstr ""
635
 
636
- #: includes/Admin/Troubleshooting.php:1157
637
  msgid ""
638
  "Go to the multilingual plugin settings page and find the section where you "
639
  "can edit the available languages."
640
  msgstr ""
641
 
642
- #: includes/Admin/Troubleshooting.php:1737
643
  msgid "Go to the settings"
644
  msgstr ""
645
 
646
- #: includes/Admin/Troubleshooting.php:516
647
  msgid "Great! Our plugin works great with this version of WordPress."
648
  msgstr ""
649
 
@@ -653,15 +747,15 @@ msgid ""
653
  "functioning of our plugin."
654
  msgstr ""
655
 
656
- #: includes/Settings.php:364
657
  msgid "Group results"
658
  msgstr ""
659
 
660
- #: includes/Settings.php:755 includes/Settings.php:817
661
  msgid "Hard"
662
  msgstr ""
663
 
664
- #: includes/Admin/Troubleshooting.php:1686
665
  msgid "Here are few samples NGINX config which helps other users:"
666
  msgstr ""
667
 
@@ -683,18 +777,22 @@ msgstr ""
683
  msgid "Hide details"
684
  msgstr ""
685
 
686
- #: includes/Settings.php:554
687
  msgid "Highlight color"
688
  msgstr ""
689
 
690
- #: includes/Settings.php:176
691
  msgid "How to add search bar in your theme?"
692
  msgstr ""
693
 
694
- #: includes/Settings.php:182
695
  msgid "How to add?"
696
  msgstr ""
697
 
 
 
 
 
698
  #. URI of the plugin
699
  #. Author URI of the plugin
700
  msgid ""
@@ -702,15 +800,15 @@ msgid ""
702
  "admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc"
703
  msgstr ""
704
 
705
- #: includes/Admin/Troubleshooting.php:1246
706
  msgid "I've fixed it! Restore the default endpoint"
707
  msgstr ""
708
 
709
- #: widget.php:40 includes/Settings.php:247 includes/EmbeddingViaMenu.php:189
710
  msgid "Icon on mobile, search bar on desktop"
711
  msgstr ""
712
 
713
- #: includes/Admin/Troubleshooting.php:1105
714
  #, php-format
715
  msgid ""
716
  "If the following errors are related to your theme or plugins, try to fix "
@@ -731,7 +829,7 @@ msgid ""
731
  "Help your customers to find the right products even <span>10× faster</span>."
732
  msgstr ""
733
 
734
- #: includes/Admin/Troubleshooting.php:1696
735
  #, php-format
736
  msgid ""
737
  "If you can't solve it on the NGINX level, try alternative 100%% reliable "
@@ -744,23 +842,31 @@ msgid ""
744
  "the issues mentioned there"
745
  msgstr ""
746
 
747
- #: includes/Admin/Troubleshooting.php:675
748
  #, php-format
749
  msgid ""
750
  "If you think the search results page is displaying your products correctly, "
751
  "you can ignore and dismiss this message: %s"
752
  msgstr ""
753
 
 
 
 
 
 
 
 
 
754
  #: includes/Integrations/Themes/Impreza/Impreza.php:46
755
  msgid "Impreza Theme"
756
  msgstr ""
757
 
758
- #: includes/Helpers.php:1053
759
  msgctxt "in categories fe. in Books > Crime stories"
760
  msgid "in"
761
  msgstr ""
762
 
763
- #: includes/Settings.php:700
764
  msgid ""
765
  "In most cases, you don't need to use the scheduler because the search index "
766
  "updates when you edit products. If you use import tools or custom code to "
@@ -768,40 +874,40 @@ msgid ""
768
  "helpful."
769
  msgstr ""
770
 
771
- #: includes/Settings.php:664 includes/Settings.php:775
772
  msgid "Include"
773
  msgstr ""
774
 
775
- #: includes/Admin/Troubleshooting.php:603
776
  msgid ""
777
  "Incompatible \"Searching by Text\" extension from WOOF - WooCommerce "
778
  "Products Filter plugin is active"
779
  msgstr ""
780
 
781
- #: includes/Admin/Troubleshooting.php:1772
782
  msgid ""
783
  "Incompatible \"Searching by Text\" extension in WOOF - WooCommerce Products "
784
  "Filter"
785
  msgstr ""
786
 
787
- #: includes/Admin/Troubleshooting.php:1153
788
  msgid "Incompatible multilingual plugin setting"
789
  msgstr ""
790
 
791
- #: includes/Admin/Troubleshooting.php:1764
792
  msgid "Incompatible plugins"
793
  msgstr ""
794
 
795
- #: includes/Admin/Troubleshooting.php:1070
796
  msgid "Incompatible Polylang plugin setting"
797
  msgstr ""
798
 
799
- #: includes/Admin/Troubleshooting.php:1036
800
  msgid "Incompatible WPML Multilingual CMS plugin setting"
801
  msgstr ""
802
 
803
- #: includes/Admin/Troubleshooting.php:553
804
- #: includes/Admin/Troubleshooting.php:1768
805
  msgid "Incorrect \"Add to cart\" behaviour in WooCommerce settings"
806
  msgstr ""
807
 
@@ -809,7 +915,7 @@ msgstr ""
809
  msgid "Increase sales"
810
  msgstr ""
811
 
812
- #: includes/Settings.php:728
813
  msgid "Increases sales conversions"
814
  msgstr ""
815
 
@@ -821,11 +927,11 @@ msgstr ""
821
  msgid "Index build start"
822
  msgstr ""
823
 
824
- #: includes/Admin/Troubleshooting.php:1809
825
  msgid "Index completeness test"
826
  msgstr ""
827
 
828
- #: includes/Settings.php:791 includes/Settings.php:825
829
  msgid "Index status"
830
  msgstr ""
831
 
@@ -852,11 +958,11 @@ msgstr ""
852
  msgid "Individual tips and support by FiboSearch team"
853
  msgstr ""
854
 
855
- #: includes/Admin/Troubleshooting.php:1854
856
  msgid "InnoDB support"
857
  msgstr ""
858
 
859
- #: includes/Admin/Troubleshooting.php:834
860
  msgid ""
861
  "Install the <a target=\"_blank\" href=\"https://wordpress."
862
  "org/plugins/advanced-cron-manager/\">Advanced Cron Manager</a> plugin to "
@@ -864,17 +970,17 @@ msgid ""
864
  "related to the Indexer:"
865
  msgstr ""
866
 
867
- #: includes/Admin/Troubleshooting.php:519
868
  msgid ""
869
  "Install the latest version of WordPress for our plugin to work as best it "
870
  "can!"
871
  msgstr ""
872
 
873
- #: includes/Settings.php:708
874
  msgid "Interval"
875
  msgstr ""
876
 
877
- #: includes/Admin/Troubleshooting.php:1155
878
  #, php-format
879
  msgid "Invalid language code: <code>%s</code>"
880
  msgid_plural "Invalid language codes: <code>%s</code>"
@@ -889,14 +995,14 @@ msgid ""
889
  "request</a>"
890
  msgstr ""
891
 
892
- #: includes/Admin/Troubleshooting.php:461
893
  #, php-format
894
  msgid ""
895
  "Is it still not working? Write a <a target=\"_blank\" href=\"%s\">support "
896
  "request</a>"
897
  msgstr ""
898
 
899
- #: includes/Admin/Troubleshooting.php:455
900
  msgid ""
901
  "Is your website publicly available only for whitelisted IPs? <b>Add your "
902
  "server IP to the whitelist</b>. That’s all. This is a common mistake when "
@@ -905,39 +1011,61 @@ msgid ""
905
  "requests to itself."
906
  msgstr ""
907
 
908
- #: includes/Admin/Troubleshooting.php:811
909
- #: includes/Admin/Troubleshooting.php:1804
910
  msgid "Issue with WP-Cron"
911
  msgstr ""
912
 
913
- #: includes/Admin/Troubleshooting.php:724
 
 
 
 
914
  msgid ""
915
  "iThemes Security plugin blocks AJAX requests. Take a look at the solution."
916
  msgstr ""
917
 
918
- #: includes/Admin/Troubleshooting.php:1819
919
  msgid "Jetpack search module"
920
  msgstr ""
921
 
 
 
 
 
922
  #: partials/admin/indexer-header.php:20
923
  #, php-format
924
  msgid "Last build %s"
925
  msgstr ""
926
 
927
- #: widget.php:42 includes/Settings.php:236 includes/Settings.php:242
928
  #: includes/EmbeddingViaMenu.php:74
929
  msgid "Layout"
930
  msgstr ""
931
 
932
- #: includes/Settings.php:356
933
  msgid "Limit"
934
  msgstr ""
935
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
936
  #: partials/admin/indexer-body.php:143
937
  msgid "Logs"
938
  msgstr ""
939
 
940
- #: includes/Admin/Troubleshooting.php:1782
941
  msgid "Loopback request"
942
  msgstr ""
943
 
@@ -948,6 +1076,14 @@ msgid ""
948
  "pharetra imperdiet neque, non varius."
949
  msgstr ""
950
 
 
 
 
 
 
 
 
 
951
  #: includes/Integrations/Marketplace/Marketplace.php:160
952
  msgid "Marketplace"
953
  msgstr ""
@@ -956,15 +1092,15 @@ msgstr ""
956
  msgid "Marketplace third-party integration"
957
  msgstr ""
958
 
959
- #: includes/Settings.php:206
960
  msgid "Max form width"
961
  msgstr ""
962
 
963
- #: includes/Settings.php:359
964
  msgid "maximum number of suggestions"
965
  msgstr ""
966
 
967
- #: includes/Admin/Troubleshooting.php:1494
968
  msgid ""
969
  "Maybe your server blocks it by the Apache module <code>mod_security</code>. "
970
  "Contact your hosting provider and ask what can block the URL you see above."
@@ -974,19 +1110,19 @@ msgstr ""
974
  msgid "Menu Screen"
975
  msgstr ""
976
 
977
- #: includes/Settings.php:201
978
  msgid "Min characters to show autocomplete"
979
  msgstr ""
980
 
981
- #: includes/Settings.php:197
982
  msgid "Minimum characters"
983
  msgstr ""
984
 
985
- #: includes/Admin/Troubleshooting.php:992
986
  msgid "Missing plugin: WooCommerce Multilingual"
987
  msgstr ""
988
 
989
- #: includes/Settings.php:262
990
  msgid "Mobile breakpoint"
991
  msgstr ""
992
 
@@ -996,27 +1132,27 @@ msgid ""
996
  "algorithms"
997
  msgstr ""
998
 
999
- #: includes/Settings.php:421
1000
  msgid "More results label"
1001
  msgstr ""
1002
 
1003
- #: includes/Admin/Troubleshooting.php:1844
1004
  msgid "Multilingual slugs"
1005
  msgstr ""
1006
 
1007
- #: includes/Admin/SettingsAPI.php:730
1008
  msgid "My Account"
1009
  msgstr ""
1010
 
1011
- #: includes/Admin/Troubleshooting.php:1683
1012
  msgid "NGINX configuration may blocks search requests"
1013
  msgstr ""
1014
 
1015
- #: includes/Settings.php:374 includes/Helpers.php:1055
1016
  msgid "No results"
1017
  msgstr ""
1018
 
1019
- #: includes/Admin/SettingsAPI.php:522 includes/Admin/SettingsAPI.php:621
1020
  msgid "No rules"
1021
  msgstr ""
1022
 
@@ -1024,15 +1160,15 @@ msgstr ""
1024
  msgid "No thanks"
1025
  msgstr ""
1026
 
1027
- #: includes/Admin/Troubleshooting.php:1839
1028
  msgid "Non Critical Indexer Errors"
1029
  msgstr ""
1030
 
1031
- #: includes/Settings.php:427
1032
  msgid "Non-products in autocomplete"
1033
  msgstr ""
1034
 
1035
- #: includes/Settings.php:754 includes/Settings.php:816
1036
  msgid "Normal"
1037
  msgstr ""
1038
 
@@ -1044,35 +1180,48 @@ msgstr ""
1044
  msgid "Note: We currently only support the header type: \"Header 10\""
1045
  msgstr ""
1046
 
1047
- #: includes/Admin/Troubleshooting.php:1849
1048
  msgid "Old index"
1049
  msgstr ""
1050
 
1051
- #: includes/Admin/Troubleshooting.php:477
1052
  msgid "One or more required PHP extensions are missing on your server"
1053
  msgstr ""
1054
 
1055
- #: includes/Settings.php:254
1056
  msgid "Overlay on mobile"
1057
  msgstr ""
1058
 
1059
- #: includes/Admin/Troubleshooting.php:1814
1060
  msgid "PDO connection test"
1061
  msgstr ""
1062
 
1063
- #: includes/Admin/Troubleshooting.php:1760
 
 
 
 
1064
  msgid "PHP extensions"
1065
  msgstr ""
1066
 
1067
- #: includes/Admin/Troubleshooting.php:1834
 
 
 
 
 
1068
  msgid "Polylang with disabled translations for products"
1069
  msgstr ""
1070
 
 
 
 
 
1071
  #: partials/admin/indexer-body.php:63
1072
  msgid "Posts & pages"
1073
  msgstr ""
1074
 
1075
- #: includes/Settings.php:328
1076
  msgid "Preloader"
1077
  msgstr ""
1078
 
@@ -1080,11 +1229,11 @@ msgstr ""
1080
  msgid "Preview"
1081
  msgstr ""
1082
 
1083
- #: includes/Helpers.php:488 includes/Helpers.php:492
1084
  msgid "Pro"
1085
  msgstr ""
1086
 
1087
- #: includes/Settings.php:680
1088
  msgid "Pro features"
1089
  msgstr ""
1090
 
@@ -1092,15 +1241,15 @@ msgstr ""
1092
  msgid "Processing asynchronous tests..."
1093
  msgstr ""
1094
 
1095
- #: includes/Admin/SettingsAPI.php:578
1096
  msgid "Product categories"
1097
  msgstr ""
1098
 
1099
- #: includes/Admin/SettingsAPI.php:580
1100
  msgid "Product tags"
1101
  msgstr ""
1102
 
1103
- #: includes/Settings.php:378 partials/admin/indexer-body.php:58
1104
  msgid "Products"
1105
  msgstr ""
1106
 
@@ -1108,7 +1257,7 @@ msgstr ""
1108
  msgid "Products search"
1109
  msgstr ""
1110
 
1111
- #: includes/Settings.php:570
1112
  msgid "Products search scope"
1113
  msgstr ""
1114
 
@@ -1118,11 +1267,11 @@ msgid ""
1118
  "search bar in your theme"
1119
  msgstr ""
1120
 
1121
- #: includes/Settings.php:263
1122
  msgid "px"
1123
  msgstr ""
1124
 
1125
- #: includes/Admin/Troubleshooting.php:460
1126
  #, php-format
1127
  msgid ""
1128
  "Read more about indexer issues on <a target=\"_blank\" href=\"%s\">our "
@@ -1130,7 +1279,7 @@ msgid ""
1130
  "request to itself”."
1131
  msgstr ""
1132
 
1133
- #: includes/Admin/Troubleshooting.php:733
1134
  #, php-format
1135
  msgid ""
1136
  "Read more about this issue in <a href=\"%s\" target=\"_blank\">our "
@@ -1141,15 +1290,24 @@ msgstr ""
1141
  msgid "Readable"
1142
  msgstr ""
1143
 
1144
- #: includes/Admin/Troubleshooting.php:877
1145
- #: includes/Admin/Troubleshooting.php:1033
1146
- #: includes/Admin/Troubleshooting.php:1067
1147
- #: includes/Admin/Troubleshooting.php:1150
1148
- #: includes/Admin/Troubleshooting.php:1188
1149
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:704
1150
  msgid "Rebuild index"
1151
  msgstr ""
1152
 
 
 
 
 
 
 
 
 
 
1153
  #: includes/Abstracts/ThemeIntegration.php:62
1154
  #: includes/Integrations/Themes/TheGem/TheGem.php:100
1155
  #: includes/Integrations/Themes/Enfold/Enfold.php:63
@@ -1228,21 +1386,27 @@ msgstr ""
1228
  msgid "Replace the TheGem default search"
1229
  msgstr ""
1230
 
1231
- #: includes/Admin/Troubleshooting.php:487
1232
- #: includes/Admin/Troubleshooting.php:490
1233
  #, php-format
1234
  msgid "Required PHP extension: %s"
1235
  msgstr ""
1236
 
1237
- #: includes/Admin/Troubleshooting.php:1574
1238
  msgid "Response body"
1239
  msgstr ""
1240
 
1241
- #: includes/Settings.php:729
 
 
 
 
 
1242
  msgid ""
1243
- "returns suggestions based on likely relevance, even though a search keyword "
1244
  "may not exactly match. E.g if you type “ipho<b>m</b>e” you get the same "
1245
- "results as for “iphone"
 
1246
  msgstr ""
1247
 
1248
  #: includes/Admin/Promo/FeedbackNotice.php:82
@@ -1278,24 +1442,28 @@ msgstr ""
1278
  msgid "Sample tag <strong>name</strong>"
1279
  msgstr ""
1280
 
1281
- #: includes/Settings.php:719
1282
  msgid "Schedule time"
1283
  msgstr ""
1284
 
1285
- #: includes/Settings.php:693
1286
  msgid "Scheduling indexing"
1287
  msgstr ""
1288
 
1289
- #: includes/Settings.php:226 partials/search-form.php:47
1290
  msgid "Search"
1291
  msgstr ""
1292
 
 
 
 
 
1293
  #: includes/Settings.php:117 includes/EmbeddingViaMenu.php:247
1294
  #: partials/admin/search-preview.php:21
1295
  msgid "Search bar"
1296
  msgstr ""
1297
 
1298
- #: widget.php:38 includes/Settings.php:245 includes/EmbeddingViaMenu.php:187
1299
  msgid "Search bar only"
1300
  msgstr ""
1301
 
@@ -1311,11 +1479,11 @@ msgstr ""
1311
  msgid "Search for posts and pages"
1312
  msgstr ""
1313
 
1314
- #: includes/Settings.php:232 includes/Helpers.php:1058
1315
  msgid "Search for products..."
1316
  msgstr ""
1317
 
1318
- #: widget.php:39 includes/Settings.php:246 includes/Settings.php:286
1319
  #: includes/EmbeddingViaMenu.php:188
1320
  msgid "Search icon"
1321
  msgstr ""
@@ -1329,7 +1497,7 @@ msgstr ""
1329
  msgid "Search in %s"
1330
  msgstr ""
1331
 
1332
- #: includes/Settings.php:597 partials/admin/features.php:23
1333
  msgid "Search in attributes"
1334
  msgstr ""
1335
 
@@ -1345,28 +1513,28 @@ msgstr ""
1345
  msgid "Search in brands (WooCommerce Brands or YITH WooCommerce Brands)"
1346
  msgstr ""
1347
 
1348
- #: includes/Settings.php:604 partials/admin/features.php:24
1349
  msgid "Search in categories"
1350
  msgstr ""
1351
 
1352
- #: includes/Settings.php:618 includes/Settings.php:738
1353
  #: partials/admin/features.php:22
1354
  msgid "Search in custom fields"
1355
  msgstr ""
1356
 
1357
- #: includes/Settings.php:576
1358
  msgid "Search in description"
1359
  msgstr ""
1360
 
1361
- #: includes/Settings.php:582
1362
  msgid "Search in short description"
1363
  msgstr ""
1364
 
1365
- #: includes/Settings.php:588
1366
  msgid "Search in SKU"
1367
  msgstr ""
1368
 
1369
- #: includes/Settings.php:611 partials/admin/features.php:25
1370
  msgid "Search in tags"
1371
  msgstr ""
1372
 
@@ -1374,27 +1542,31 @@ msgstr ""
1374
  msgid "Search in vendors"
1375
  msgstr ""
1376
 
1377
- #: includes/Settings.php:293
1378
  msgid "Search input background"
1379
  msgstr ""
1380
 
1381
- #: includes/Settings.php:307
1382
  msgid "Search input border"
1383
  msgstr ""
1384
 
1385
- #: includes/Settings.php:230
1386
  msgid "Search input placeholder"
1387
  msgstr ""
1388
 
1389
- #: includes/Settings.php:300
1390
  msgid "Search input text"
1391
  msgstr ""
1392
 
1393
- #: includes/Settings.php:314
 
 
 
 
1394
  msgid "Search submit background"
1395
  msgstr ""
1396
 
1397
- #: includes/Settings.php:321
1398
  msgid "Search submit text"
1399
  msgstr ""
1400
 
@@ -1402,11 +1574,20 @@ msgstr ""
1402
  msgid "Searchable"
1403
  msgstr ""
1404
 
1405
- #: includes/Settings.php:590
 
 
 
 
 
 
 
 
 
1406
  msgid "searching also in variable products SKU"
1407
  msgstr ""
1408
 
1409
- #: includes/Settings.php:591
1410
  #, php-format
1411
  msgid ""
1412
  "Searching in variable products SKU is available only in <a target=\"_blank\" "
@@ -1417,25 +1598,25 @@ msgstr ""
1417
  msgid "See a comparison of all free and premium features!"
1418
  msgstr ""
1419
 
1420
- #: includes/Settings.php:423 includes/Helpers.php:1056
1421
- #: includes/Helpers.php:1057
1422
  msgid "See all products..."
1423
  msgstr ""
1424
 
1425
- #: includes/Admin/SettingsAPI.php:576
1426
  msgid "Select filter type"
1427
  msgstr ""
1428
 
1429
- #: includes/Settings.php:741
1430
  msgid "select the custom fields you want to add to the search scope"
1431
  msgstr ""
1432
 
1433
- #: includes/Admin/Troubleshooting.php:2003
1434
  msgid "Server environment"
1435
  msgstr ""
1436
 
1437
- #: includes/Admin/Troubleshooting.php:1487
1438
- #: includes/Admin/Troubleshooting.php:1573
1439
  #, php-format
1440
  msgid ""
1441
  "Server response with message <code>%s</code> and status code <code>%s</code>."
@@ -1459,7 +1640,7 @@ msgstr ""
1459
  msgid "Show brands"
1460
  msgstr ""
1461
 
1462
- #: includes/Settings.php:433
1463
  msgid "Show categories"
1464
  msgstr ""
1465
 
@@ -1468,11 +1649,11 @@ msgstr ""
1468
  msgid "Show details"
1469
  msgstr ""
1470
 
1471
- #: includes/Settings.php:479
1472
  msgid "Show Details panel"
1473
  msgstr ""
1474
 
1475
- #: includes/Settings.php:441 includes/Settings.php:445
1476
  #: includes/Integrations/Brands.php:229 includes/Integrations/Brands.php:233
1477
  #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomies.php:213
1478
  #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomies.php:217
@@ -1481,81 +1662,89 @@ msgstr ""
1481
  msgid "show images"
1482
  msgstr ""
1483
 
1484
- #: includes/Settings.php:466
1485
  msgid "Show pages"
1486
  msgstr ""
1487
 
1488
- #: includes/Settings.php:459
1489
  msgid "Show posts"
1490
  msgstr ""
1491
 
1492
- #: includes/Settings.php:334
1493
  msgid "Show preloader"
1494
  msgstr ""
1495
 
1496
- #: includes/Settings.php:390
1497
  msgid "Show price"
1498
  msgstr ""
1499
 
1500
- #: includes/Settings.php:396
1501
  msgid "Show product description"
1502
  msgstr ""
1503
 
1504
- #: includes/Settings.php:384
1505
  msgid "Show product image"
1506
  msgstr ""
1507
 
1508
- #: includes/Settings.php:403
1509
  msgid "Show SKU"
1510
  msgstr ""
1511
 
1512
- #: includes/Settings.php:215
1513
  msgid "Show submit button"
1514
  msgstr ""
1515
 
1516
- #: includes/Settings.php:451
1517
  msgid "Show tags"
1518
  msgstr ""
1519
 
 
 
 
 
1520
  #: includes/Integrations/Marketplace/Marketplace.php:207
1521
  msgid "Show vendors next to products"
1522
  msgstr ""
1523
 
1524
- #: includes/Admin/SettingsAPI.php:726
1525
  msgid "Showcase"
1526
  msgstr ""
1527
 
1528
- #: includes/Settings.php:753 includes/Settings.php:815
 
 
 
 
1529
  msgid "Soft"
1530
  msgstr ""
1531
 
1532
- #: includes/Helpers.php:1051
1533
  msgid "Sold by:"
1534
  msgstr ""
1535
 
1536
- #: includes/Admin/Troubleshooting.php:554
1537
- #: includes/Admin/Troubleshooting.php:604
1538
- #: includes/Admin/Troubleshooting.php:672
1539
- #: includes/Admin/Troubleshooting.php:833
1540
- #: includes/Admin/Troubleshooting.php:924
1541
- #: includes/Admin/Troubleshooting.php:1038
1542
- #: includes/Admin/Troubleshooting.php:1072
1543
- #: includes/Admin/Troubleshooting.php:1156
1544
- #: includes/Admin/Troubleshooting.php:1608
1545
- #: includes/Admin/Troubleshooting.php:1655
1546
- #: includes/Admin/Troubleshooting.php:1735
1547
  msgid "Solution"
1548
  msgstr ""
1549
 
1550
- #: includes/Admin/Troubleshooting.php:1492
1551
  msgid "Solutions"
1552
  msgstr ""
1553
 
1554
- #: includes/Admin/Troubleshooting.php:448
1555
  msgid "Solutions:"
1556
  msgstr ""
1557
 
1558
- #: includes/Admin/Troubleshooting.php:1684
1559
  #, php-format
1560
  msgid ""
1561
  "Some NGINX configuration may block executing PHP files included directly in "
@@ -1564,7 +1753,11 @@ msgid ""
1564
  "to execute the following file: %s"
1565
  msgstr ""
1566
 
1567
- #: includes/Settings.php:686
 
 
 
 
1568
  msgid "Speed up search!"
1569
  msgstr ""
1570
 
@@ -1585,12 +1778,16 @@ msgstr ""
1585
  msgid "Status"
1586
  msgstr ""
1587
 
1588
- #: includes/Admin/Troubleshooting.php:725
1589
- #: includes/Admin/Troubleshooting.php:728
1590
  #, php-format
1591
  msgid "Step %d"
1592
  msgstr ""
1593
 
 
 
 
 
1594
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:701
1595
  msgid "Stop process"
1596
  msgstr ""
@@ -1599,32 +1796,32 @@ msgstr ""
1599
  msgid "Storefront Theme"
1600
  msgstr ""
1601
 
1602
- #: includes/Settings.php:223
1603
  msgid "Submit label"
1604
  msgstr ""
1605
 
1606
- #: includes/Admin/Troubleshooting.php:1734
1607
  msgid "Sucuri Security firewall may block AJAX calls of the live search"
1608
  msgstr ""
1609
 
1610
- #: includes/Settings.php:533
1611
  msgid "Suggestion background"
1612
  msgstr ""
1613
 
1614
- #: includes/Settings.php:540
1615
  msgid "Suggestion selected"
1616
  msgstr ""
1617
 
1618
- #: includes/Settings.php:527
1619
  msgid "Suggestions colors"
1620
  msgstr ""
1621
 
1622
- #: includes/Settings.php:637 includes/Settings.php:643
1623
  #: partials/admin/features.php:29 includes/Admin/Promo/Upgrade.php:50
1624
  msgid "Synonyms"
1625
  msgstr ""
1626
 
1627
- #: includes/Settings.php:646
1628
  msgid ""
1629
  "Synonyms should be separated by a comma. Each new synonyms group is entered "
1630
  "on a new line. You can use a phrase instead of a single word. <br /> <br />"
@@ -1636,28 +1833,36 @@ msgstr ""
1636
  msgid "Taxonomies"
1637
  msgstr ""
1638
 
1639
- #: includes/Settings.php:547
1640
  msgid "Text color"
1641
  msgstr ""
1642
 
1643
- #: includes/Admin/Troubleshooting.php:1654
1644
  msgid "The .htaccess file(s) may blocking AJAX calls of the live search"
1645
  msgstr ""
1646
 
1647
- #: includes/Admin/Troubleshooting.php:1255
1648
  msgid ""
1649
  "The default search endpoint has been blocked and you decided to switch on "
1650
  "the alternative endpoint to make the search working in emergency mode. What "
1651
  "should you do next?"
1652
  msgstr ""
1653
 
1654
- #: includes/Settings.php:480
1655
  msgid ""
1656
  "The Details panel is an additional container for extended information. The "
1657
  "details are changed dynamically when a user mouse over one of the "
1658
  "suggestions."
1659
  msgstr ""
1660
 
 
 
 
 
 
 
 
 
1661
  #: includes/Admin/Promo/FeedbackNotice.php:76
1662
  #, php-format
1663
  msgid ""
@@ -1669,25 +1874,25 @@ msgstr ""
1669
  msgid "The following error caused the index to be canceled:"
1670
  msgstr ""
1671
 
1672
- #: includes/Admin/Troubleshooting.php:1191
1673
  msgid "The index was built by the previous plugin version"
1674
  msgstr ""
1675
 
1676
- #: includes/Admin/Troubleshooting.php:443
1677
  msgid ""
1678
  "The Indexer uses the WordPress function <code>wp_remote_post()</code> to "
1679
  "build the index in background. Sometimes the server can block this kind of "
1680
  "request and responses with HTTP 401 Unauthorized or 403 Forbidden errors."
1681
  msgstr ""
1682
 
1683
- #: includes/Admin/Troubleshooting.php:1221
1684
  msgid ""
1685
  "The InnoDB engine within the MySQL server must be enabled for our plugin to "
1686
  "work properly. Contact your hosting provider and ask for enabling InnoDB "
1687
  "engine in your MySQL server."
1688
  msgstr ""
1689
 
1690
- #: includes/Admin/Troubleshooting.php:957
1691
  #, php-format
1692
  msgid "The Jetpack Search module is incompatible with the %s plugin."
1693
  msgstr ""
@@ -1698,7 +1903,7 @@ msgid ""
1698
  "designed advanced AJAX search bar with live search suggestions."
1699
  msgstr ""
1700
 
1701
- #: includes/Admin/Troubleshooting.php:1220
1702
  msgid "The MySQL server has the InnoDB engine turned off"
1703
  msgstr ""
1704
 
@@ -1707,6 +1912,10 @@ msgstr ""
1707
  msgid "the next index rebuild: %s"
1708
  msgstr ""
1709
 
 
 
 
 
1710
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:673
1711
  msgid "The search index could not be built."
1712
  msgstr ""
@@ -1716,7 +1925,7 @@ msgstr ""
1716
  msgid "The search index does not exist yet. Build it now."
1717
  msgstr ""
1718
 
1719
- #: includes/Admin/Troubleshooting.php:881
1720
  msgid "The search index structure isn't complete"
1721
  msgstr ""
1722
 
@@ -1730,29 +1939,29 @@ msgstr ""
1730
  msgid "The search index was built successfully."
1731
  msgstr ""
1732
 
1733
- #: includes/Admin/Troubleshooting.php:1104
1734
  msgid ""
1735
  "The search index was built, but some significant errors occurred during this "
1736
  "process. There is a risk that some products may not be available during the "
1737
  "search."
1738
  msgstr ""
1739
 
1740
- #: includes/Admin/Troubleshooting.php:1489
1741
  msgid ""
1742
  "The search uses a dedicated URL to makes queries. In your case, this URL is "
1743
  "blocked for some reason. Let visit it directly in your browser:"
1744
  msgstr ""
1745
 
1746
- #: includes/Settings.php:255
1747
  msgid "The search will open in overlay on mobile"
1748
  msgstr ""
1749
 
1750
- #: includes/Admin/Troubleshooting.php:1486
1751
  msgid ""
1752
  "The server returns an incorrect response for the search engine's AJAX calls"
1753
  msgstr ""
1754
 
1755
- #: includes/Settings.php:644
1756
  msgid ""
1757
  "The synonyms feature allows your users to find more relevant results. If "
1758
  "your products have alternative names and users often misspell them, consider "
@@ -1767,37 +1976,43 @@ msgstr ""
1767
  msgid "There are four easy ways to display the search bar in your theme"
1768
  msgstr ""
1769
 
1770
- #: includes/Admin/Troubleshooting.php:1324
 
 
 
 
 
 
1771
  msgid ""
1772
  "There is a problem with the visibility of products with “Out of stock“ status"
1773
  msgstr ""
1774
 
1775
- #: includes/Admin/Troubleshooting.php:670
1776
  msgid ""
1777
  "There is no correct template in Elementor Theme Builder for the WooCommerce "
1778
  "search results page."
1779
  msgstr ""
1780
 
1781
- #: includes/Admin/Troubleshooting.php:1493
1782
  msgid ""
1783
  "Think about what can block the execution of PHP scripts inside <code>wp-"
1784
  "content</code> or <code>wp-content/plugins</code> directory. Maybe you use "
1785
  "some security plugins or you have custom code that may block it."
1786
  msgstr ""
1787
 
1788
- #: includes/Admin/Troubleshooting.php:442
1789
  msgid ""
1790
  "This issue may affect the building of the search index. Indexer may stuck at "
1791
  "0%."
1792
  msgstr ""
1793
 
1794
- #: includes/Admin/Troubleshooting.php:438
1795
  msgid ""
1796
  "This issue may affect the search results page and e.g. display all products "
1797
  "every time"
1798
  msgstr ""
1799
 
1800
- #: includes/Helpers.php:950
1801
  #, php-format
1802
  msgid ""
1803
  "This option is <b>overridden</b> by the seamless integration with the %s "
@@ -1805,6 +2020,19 @@ msgid ""
1805
  "integration in <br /><b>WooCommerce -> FiboSearch -> Starting (tab)</b>."
1806
  msgstr ""
1807
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1808
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:647
1809
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:653
1810
  msgid "This process will continue in the background. You can leave this page!"
@@ -1819,7 +2047,7 @@ msgstr ""
1819
  msgid "Title"
1820
  msgstr ""
1821
 
1822
- #: includes/Settings.php:223
1823
  msgid "To display the magnifier icon leave this field empty."
1824
  msgstr ""
1825
 
@@ -1829,29 +2057,37 @@ msgid ""
1829
  "the Shopkeeper settings."
1830
  msgstr ""
1831
 
1832
- #: includes/Settings.php:209
1833
  msgid "To set 100% width leave blank"
1834
  msgstr ""
1835
 
1836
- #: includes/Admin/Troubleshooting.php:1326
 
 
 
 
 
 
 
 
1837
  #, php-format
1838
  msgid ""
1839
- "Total “out of stock“ products calculated by <code>wc_get_products()</code> "
1840
- "function: <b>%d</b>"
1841
  msgstr ""
1842
 
1843
- #: includes/Admin/Troubleshooting.php:1327
1844
  #, php-format
1845
  msgid ""
1846
  "Total “out of stock“ products calculated by SQL query on <code>%s</code>: <b>"
1847
  "%d</b>"
1848
  msgstr ""
1849
 
1850
- #: includes/Admin/Troubleshooting.php:1791
1851
  msgid "TranslatePress"
1852
  msgstr ""
1853
 
1854
- #: includes/Admin/Troubleshooting.php:64 includes/Admin/Troubleshooting.php:83
1855
  #: partials/admin/indexer-header.php:40
1856
  msgid "Troubleshooting"
1857
  msgstr ""
@@ -1860,7 +2096,7 @@ msgstr ""
1860
  msgid "Try to build the index again."
1861
  msgstr ""
1862
 
1863
- #: includes/Admin/Troubleshooting.php:731
1864
  msgid ""
1865
  "Uncheck the option <code>Disable PHP in Plugins</code>. Save settings. Right "
1866
  "after that <b>check this option again</b> and save settings one more time."
@@ -1886,7 +2122,7 @@ msgstr ""
1886
  msgid "Upgrade Now!"
1887
  msgstr ""
1888
 
1889
- #: includes/Settings.php:341
1890
  msgid "Upload preloader image"
1891
  msgstr ""
1892
 
@@ -1900,15 +2136,15 @@ msgstr ""
1900
  msgid "Using PHP - %s"
1901
  msgstr ""
1902
 
1903
- #: includes/Admin/Troubleshooting.php:1869
1904
  msgid "Valid search results test"
1905
  msgstr ""
1906
 
1907
- #: includes/Helpers.php:1044
1908
  msgid "Vendor"
1909
  msgstr ""
1910
 
1911
- #: includes/Helpers.php:1048
1912
  msgid "Vendors"
1913
  msgstr ""
1914
 
@@ -1928,7 +2164,11 @@ msgstr ""
1928
  msgid "Warning!"
1929
  msgstr ""
1930
 
1931
- #: includes/Admin/Troubleshooting.php:1656
 
 
 
 
1932
  #, php-format
1933
  msgid ""
1934
  "We recommend contact your hosting provider and ask to check <code>%s</code> "
@@ -1944,7 +2184,7 @@ msgid ""
1944
  "We support this theme and you can easily replace all default search bars."
1945
  msgstr ""
1946
 
1947
- #: includes/Admin/Troubleshooting.php:1325
1948
  msgid ""
1949
  "We've detected that some products with a status “Out of Stock“ may have "
1950
  "something wrong with relationships in the database. It affects visibility of "
@@ -1952,11 +2192,11 @@ msgid ""
1952
  "from a different WordPress."
1953
  msgstr ""
1954
 
1955
- #: includes/Settings.php:713
1956
  msgid "weekly"
1957
  msgstr ""
1958
 
1959
- #: includes/Admin/Troubleshooting.php:1488
1960
  msgid "What's wrong?"
1961
  msgstr ""
1962
 
@@ -1968,28 +2208,28 @@ msgstr ""
1968
  msgid "with simple tricks"
1969
  msgstr ""
1970
 
1971
- #: includes/Admin/Troubleshooting.php:1824
1972
  msgid "WooCommerce Multilingual"
1973
  msgstr ""
1974
 
1975
- #: includes/Admin/Troubleshooting.php:997
1976
  msgid "WooCommerce Multilingual plugin is enabled but not effective"
1977
  msgstr ""
1978
 
1979
- #: includes/Admin/Troubleshooting.php:1799
1980
  msgid "WordPress loading problem"
1981
  msgstr ""
1982
 
1983
- #: includes/Admin/Troubleshooting.php:507
1984
- #: includes/Admin/Troubleshooting.php:1756
1985
  msgid "WordPress version"
1986
  msgstr ""
1987
 
1988
- #: includes/Admin/Troubleshooting.php:1829
1989
  msgid "WPML with disabled translations for products"
1990
  msgstr ""
1991
 
1992
- #: includes/Admin/Troubleshooting.php:671
1993
  #, php-format
1994
  msgid ""
1995
  "You are using Elementor and we noticed that the template used in the search "
@@ -1997,58 +2237,63 @@ msgid ""
1997
  "Products</strong> widget."
1998
  msgstr ""
1999
 
2000
- #: includes/Admin/Troubleshooting.php:320
2001
  msgid "You are using one or more incompatible plugins"
2002
  msgstr ""
2003
 
2004
- #: includes/Admin/Troubleshooting.php:1071
2005
  msgid ""
2006
  "You are using Polylang, but you have product translations disabled, so for "
2007
  "the search engine to function properly, you must disable its multi-language "
2008
  "support feature."
2009
  msgstr ""
2010
 
2011
- #: includes/Admin/Troubleshooting.php:1154
2012
  msgid ""
2013
  "You are using the multilingual plugin, but one or more of the language codes "
2014
  "has wrong format. This needs to be corrected or the index will not be able "
2015
  "to build properly."
2016
  msgstr ""
2017
 
2018
- #: includes/Admin/Troubleshooting.php:361
2019
  msgid "You are using TranslatePress with Free version of our plugin"
2020
  msgstr ""
2021
 
2022
- #: includes/Admin/Troubleshooting.php:1037
2023
  msgid ""
2024
  "You are using WPML Multilingual CMS, but you have product translations "
2025
  "disabled, so for the search engine to function properly, you must disable "
2026
  "its multi-language support feature."
2027
  msgstr ""
2028
 
2029
- #: includes/Admin/Troubleshooting.php:1328
2030
  #, php-format
2031
  msgid "You can fix it by clicking on this button: %s"
2032
  msgstr ""
2033
 
2034
- #: includes/Admin/Troubleshooting.php:836
2035
  msgid ""
2036
  "You can run these actions manually via Advanced Cron Manager. Then the "
2037
  "Indexer should run. If the index stuck again, run these actions manually one "
2038
  "more time until the finished index."
2039
  msgstr ""
2040
 
2041
- #: includes/Admin/Troubleshooting.php:1254
2042
  msgid "You have activated the alternative search endpoint"
2043
  msgstr ""
2044
 
2045
- #: includes/Admin/Troubleshooting.php:1736
 
 
 
 
 
2046
  msgid ""
2047
  "You need to log in to your <a href=\"https://login.sucuri.net\" "
2048
  "target=\"_blank\">Sucuri panel</a>."
2049
  msgstr ""
2050
 
2051
- #: includes/Admin/Troubleshooting.php:1491
2052
  msgid ""
2053
  "You should see <code>pong</code> word as a response. Probably you see "
2054
  "something else."
@@ -2059,16 +2304,16 @@ msgstr ""
2059
  msgid "You use %s plugin version %s"
2060
  msgstr ""
2061
 
2062
- #: includes/Admin/Troubleshooting.php:340
2063
- #: includes/Admin/Troubleshooting.php:342
2064
  #, php-format
2065
  msgid ""
2066
  "You use the %s plugin, which may cause errors in the search results returned "
2067
  "by our plugin."
2068
  msgstr ""
2069
 
2070
- #: includes/Admin/Troubleshooting.php:331
2071
- #: includes/Admin/Troubleshooting.php:335
2072
  #, php-format
2073
  msgid "You use the %s plugin. The %s does not support this plugin."
2074
  msgstr ""
@@ -2078,7 +2323,7 @@ msgstr ""
2078
  msgid "You use the <b>%s</b> theme%s. Fantastic!"
2079
  msgstr ""
2080
 
2081
- #: includes/Admin/Troubleshooting.php:998
2082
  #, php-format
2083
  msgid ""
2084
  "You use the WPML Multilingual CMS and WooCommerce Multilingual plugins, but "
@@ -2086,7 +2331,7 @@ msgid ""
2086
  "target=\"_blank\">WooCommerce Multilingual status</a>."
2087
  msgstr ""
2088
 
2089
- #: includes/Admin/Troubleshooting.php:993
2090
  #, php-format
2091
  msgid ""
2092
  "You use the WPML Multilingual CMS plugin and to correctly search for "
@@ -2094,18 +2339,18 @@ msgid ""
2094
  "target=\"_blank\">WooCommerce Multilingual</a> plugin."
2095
  msgstr ""
2096
 
2097
- #: includes/Admin/Troubleshooting.php:450
2098
  msgid "Your server can't send an HTTP request to itself"
2099
  msgstr ""
2100
 
2101
- #: includes/Admin/Troubleshooting.php:556
2102
  msgid "Your settings should looks like the picture below:"
2103
  msgstr ""
2104
 
2105
- #: includes/Admin/Troubleshooting.php:385
2106
  msgid "Your site can perform loopback requests"
2107
  msgstr ""
2108
 
2109
- #: includes/Admin/Troubleshooting.php:434
2110
  msgid "Your site could not complete a loopback request"
2111
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: PACKAGE VERSION\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2022-05-09 11:38+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: Damian Góra <support@fibosearch.com>\n"
9
  "Language-Team: \n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
  "X-Generator: Loco https://localise.biz/"
16
 
17
+ #: includes/Admin/Troubleshooting.php:1976
18
  msgid "\"Out of stock\" relationships"
19
  msgstr ""
20
 
23
  msgid "%1$s was called with an invalid level \"%2$s\"."
24
  msgstr ""
25
 
26
+ #: ajax-search-for-woocommerce.php:270
27
  #, php-format
28
  msgid "%s is enabled but not effective. It requires %s in order to work."
29
  msgstr ""
54
  "/><br />You can do it by clicking %s or use an external plugin such as %s."
55
  msgstr ""
56
 
57
+ #: ajax-search-for-woocommerce.php:250
58
  #, php-format
59
  msgid ""
60
  "%s: You need PHP version at least 7.0 to run this plugin. You are currently "
61
  "using PHP version "
62
  msgstr ""
63
 
64
+ #: includes/Settings.php:278
65
  msgid "(beta feature)"
66
  msgstr ""
67
 
68
+ #: includes/Settings.php:759 includes/Settings.php:822
69
  msgid "-- Disabled"
70
  msgstr ""
71
 
72
+ #: partials/admin/stats/stats.php:159 partials/admin/stats/stats.php:208
73
+ msgid "0 searches with results"
74
+ msgstr ""
75
+
76
+ #: includes/Admin/Troubleshooting.php:1288
77
  #, php-format
78
  msgid ""
79
  "1. Unblock the default endpoint or get around the restrictions. Learn how to "
81
  "and fix it as soon as possible."
82
  msgstr ""
83
 
84
+ #: includes/Admin/Troubleshooting.php:1289
85
  msgid ""
86
  "2. Once you do that, turn off the safe mode by clicking the following button:"
87
  msgstr ""
88
 
89
+ #: partials/admin/stats/stats.php:52
90
+ msgid ""
91
+ "<b>Adding the phrase to the product name</b> - just add the phrase to the "
92
+ "product name, description, SKU, custom field, tag or anything else that's in "
93
+ "your current search scope"
94
+ msgstr ""
95
+
96
  #: partials/admin/indexer-header.php:86
97
  #, php-format
98
  msgid ""
107
  "products "
108
  msgstr ""
109
 
110
+ #: partials/admin/stats/stats.php:53
111
+ #, php-format
112
+ msgid ""
113
+ "<b>Synonyms</b> - if the phrase is an alternate version of any other words, "
114
+ "add it as a synonym. Learn more about <a href=\"%s\" target=\"_blank\">the "
115
+ "synonyms feature."
116
+ msgstr ""
117
+
118
+ #: partials/admin/stats/stats.php:55
119
+ #, php-format
120
+ msgid ""
121
+ "<b>Varied naming convention</b> - this issue occurs when users may type a "
122
+ "phrase in several different way – eg. you have SKU \"CB-978-8-7290\", but "
123
+ "users might type it in a different way: \"CB978 8 7290\", \"CB/978/8/7290\", "
124
+ "\"CB97887290\" and so on. To solve such problems, contact our <a href=\"%s\" "
125
+ "target=\"_blank\">technical support</a>, because the solution may be "
126
+ "different for each case."
127
+ msgstr ""
128
+
129
+ #: includes/Admin/Troubleshooting.php:1295
130
  msgid ""
131
  "<strong>Warning:</strong> We have detected that the search endpoint is being "
132
  "overwritten by the filter and alternative search endpoint will not work "
133
  "properly. Remove filters that override the search engine endpoint."
134
  msgstr ""
135
 
136
+ #: includes/Admin/Troubleshooting.php:863
137
  msgid ""
138
  "A real solution is to find the reason why the WP-Cron doesn’t work and fix "
139
  "it."
140
  msgstr ""
141
 
142
+ #: includes/Admin/Troubleshooting.php:1670
143
  msgid "A search engine's AJAX call did not return valid results"
144
  msgstr ""
145
 
146
+ #: includes/Admin/Troubleshooting.php:698
147
  #, php-format
148
  msgid ""
149
  "Add <strong>Archive Products</strong> widget to the template <strong>"
152
  "documentation</a>."
153
  msgstr ""
154
 
155
+ #: includes/Admin/Troubleshooting.php:1065
156
+ #: includes/Admin/Troubleshooting.php:1099
157
+ #: includes/Admin/Troubleshooting.php:1340
158
+ #: includes/Admin/Troubleshooting.php:1343
159
  #, php-format
160
  msgid "Add a constant <code>%s</code> to your <code>wp-config.php</code> file."
161
  msgstr ""
181
  msgid "Add FiboSearch as a menu item."
182
  msgstr ""
183
 
184
+ #: includes/Admin/SettingsAPI.php:529 includes/Admin/SettingsAPI.php:630
185
  msgid "Add new rule"
186
  msgstr ""
187
 
188
+ #: includes/Admin/Troubleshooting.php:752
189
  msgid ""
190
  "Add the following PHP code to your functions.php file in the child theme or "
191
  "use e.g. CodeSnippets plugin."
192
  msgstr ""
193
 
194
+ #: includes/Admin/Troubleshooting.php:1837
195
  msgid "Add the following URL to the white list:"
196
  msgstr ""
197
 
198
+ #: includes/Admin/Troubleshooting.php:1785
199
  msgid ""
200
  "Adding extra rules to <code>/usr/local/nginx/conf/wpsecure_${vhostname}."
201
  "conf</code>"
202
  msgstr ""
203
 
204
+ #: includes/Settings.php:378
205
  msgctxt "admin"
206
  msgid "No results label"
207
  msgstr ""
208
 
209
+ #: includes/Admin/Troubleshooting.php:1350
210
+ #, php-format
211
+ msgid ""
212
+ "After following the above solutions, perform some search analytics table "
213
+ "maintenance: %s"
214
+ msgstr ""
215
+
216
  #: widget.php:24
217
  msgid "AJAX (live) search form for WooCommerce"
218
  msgstr ""
219
 
220
+ #: includes/Admin/Troubleshooting.php:1342
221
+ #, php-format
222
+ msgid ""
223
+ "All analytics records are deleted after 30 days by default. You can change "
224
+ "this limit to 14 days, for example, and reduce the database weight by about "
225
+ "50%%."
226
+ msgstr ""
227
+
228
  #: partials/admin/indexer-header.php:21
229
  msgid "All product changes will be <strong>re-indexed automatically</strong>"
230
  msgstr ""
231
 
232
+ #: includes/Admin/Troubleshooting.php:1293
233
  #, php-format
234
  msgid "Alternative endpoint: <code>%s</code>"
235
  msgstr ""
236
 
237
+ #: includes/Admin/Troubleshooting.php:1951
238
  msgid "Alternative search endpoint"
239
  msgstr ""
240
 
260
  msgid "Alternative ways to embed a search bar"
261
  msgstr ""
262
 
263
+ #: includes/Admin/Troubleshooting.php:943
264
  #, php-format
265
  msgid ""
266
  "An error occurred while trying to connect to the database using a PDO_MYSQL "
267
  "driver: <code>%s</code>."
268
  msgstr ""
269
 
270
+ #: includes/Analytics/UserInterface.php:74
271
+ msgid "Analytics (beta)"
272
+ msgstr ""
273
+
274
+ #: includes/Admin/Troubleshooting.php:1956
275
+ msgid "Analytics optimization"
276
+ msgstr ""
277
+
278
  #: partials/admin/features.php:31
279
  msgid "And more..."
280
  msgstr ""
302
  msgid "As a widget - go to the %s and choose “FiboSearch bar”"
303
  msgstr ""
304
 
305
+ #: includes/Admin/SettingsAPI.php:588
306
  #, php-format
307
  msgid "Attributes: %s"
308
  msgstr ""
311
  msgid "Autocomplete"
312
  msgstr ""
313
 
314
+ #: partials/admin/stats/stats.php:77 partials/admin/stats/stats.php:122
315
+ msgid "autocomplete"
316
+ msgstr ""
317
+
318
  #: includes/Integrations/Brands.php:192 includes/Integrations/Brands.php:214
319
  #, php-format
320
  msgid "Based on the plugin %s"
321
  msgstr ""
322
 
323
+ #: includes/Settings.php:195 includes/Settings.php:356
324
  msgid "Basic"
325
  msgstr ""
326
 
327
+ #: includes/Admin/Troubleshooting.php:1966
328
  msgid "Blocked search endpoint test"
329
  msgstr ""
330
 
331
+ #: includes/Settings.php:567
332
  msgid "Border color"
333
  msgstr ""
334
 
349
  msgid "Build index"
350
  msgstr ""
351
 
352
+ #: includes/Analytics/UserInterface.php:421
353
+ msgid ""
354
+ "Can't check the status. The search index hasn't been completed. Go to the "
355
+ "Indexer tab and wait until the search index is completed."
356
+ msgstr ""
357
+
358
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:659
359
  msgid "Canceling..."
360
  msgstr ""
363
  msgid "Cancellation..."
364
  msgstr ""
365
 
366
+ #: includes/Admin/Troubleshooting.php:1185
367
  msgid ""
368
  "Change the above-mentioned language codes to the correct format: <code>"
369
  "xx</code>, <code>xxx</code>, <code>xx-xx</code> or <code>xx-xxxx</code>."
370
  msgstr ""
371
 
372
+ #: partials/admin/stats/critical-searches-row.php:12
373
+ msgid "Check"
374
+ msgstr ""
375
+
376
+ #: includes/Admin/Troubleshooting.php:1592
377
  #, php-format
378
  msgid ""
379
  "Check how to solve this issue in <a target=\"_blank\" href=\"%s\">our "
383
  "temporarily, and solve the source of the problem as soon as possible."
384
  msgstr ""
385
 
386
+ #: partials/admin/stats/stats.php:20
387
+ msgid "Check if it's been solved"
388
+ msgstr ""
389
+
390
+ #: includes/Analytics/UserInterface.php:422
391
+ msgid "Check the indexer status"
392
  msgstr ""
393
 
394
  #: partials/admin/embedding-in-theme.php:16
396
  msgid "child theme of <b>%s</b>"
397
  msgstr ""
398
 
399
+ #: includes/Analytics/UserInterface.php:409
400
+ msgid "Click the button below to remove this phrase from the list."
401
+ msgstr ""
402
+
403
+ #: includes/Settings.php:286
404
  msgid "Colors"
405
  msgstr ""
406
 
408
  msgid "Completed. Works."
409
  msgstr ""
410
 
411
+ #: includes/Admin/SettingsAPI.php:836
412
  msgid "Contact"
413
  msgstr ""
414
 
434
  "variables, try to solve it in an alternative way. Follow steps below:"
435
  msgstr ""
436
 
437
+ #: includes/Helpers.php:1101
438
  msgid "continue reading"
439
  msgstr ""
440
 
441
+ #: includes/Admin/Troubleshooting.php:823
442
  #, php-format
443
  msgid ""
444
  "Could not load <code>wp-load.php</code> from the locations it normally is. "
446
  "support</a>."
447
  msgstr ""
448
 
449
+ #: partials/admin/stats/stats.php:8
450
+ msgid "Critical searches without result"
451
+ msgstr ""
452
+
453
+ #: includes/Admin/Troubleshooting.php:1296
454
  #, php-format
455
  msgid "Current endpoint: <code>%s</code>"
456
  msgstr ""
457
 
458
+ #: includes/Admin/Troubleshooting.php:822
459
  msgid "Custom location of wp-load.php file"
460
  msgstr ""
461
 
462
+ #: includes/Settings.php:718
463
  msgid "daily"
464
  msgstr ""
465
 
466
+ #: includes/Settings.php:275
467
  msgid "Darkened background"
468
  msgstr ""
469
 
470
+ #: includes/Settings.php:276
471
+ #, php-format
472
  msgid ""
473
  "Darkening the page background while autocomplete is active gives it stronger "
474
  "emphasis, minimizing elements (e.g., ads, carousels, and other page content) "
475
+ "that could distract users from considering autocomplete suggestions. <a "
476
+ "target=\"_blank\" href=\"%s\">Read more</a> about this feature."
477
  msgstr ""
478
 
479
  #: partials/admin/indexer-body.php:46
488
  msgid "Default"
489
  msgstr ""
490
 
491
+ #: includes/Admin/Troubleshooting.php:1292
492
  #, php-format
493
  msgid "Default endpoint: <code>%s</code>"
494
  msgstr ""
495
 
496
+ #: includes/Admin/Troubleshooting.php:1705
497
  msgid "Defender plugin by WPMU DEV blocks AJAX calls of the live search"
498
  msgstr ""
499
 
500
+ #: includes/Settings.php:479
501
  msgid "Details panel"
502
  msgstr ""
503
 
504
+ #: includes/Admin/Troubleshooting.php:691
505
  msgid "Dismiss"
506
  msgstr ""
507
 
508
+ #: includes/Admin/Troubleshooting.php:397
509
  #, php-format
510
  msgid ""
511
  "Due to the way the TranslatePress - Multilingual plugin works, we can only "
513
  "version</a>."
514
  msgstr ""
515
 
516
+ #: includes/Admin/Troubleshooting.php:951
517
  msgid ""
518
  "Edit <code>wp-config.php</code> file, find the <code>DB_HOST</code> constant,"
519
  " and change its value from <code>localhost</code> to <code>127.0.0.1</code>."
520
  msgstr ""
521
 
522
+ #: includes/Admin/Troubleshooting.php:1874
523
  msgid "Elementor search results template"
524
  msgstr ""
525
 
526
+ #: includes/Admin/Troubleshooting.php:1581
527
  msgid "Enable alternative search endpoint"
528
  msgstr ""
529
 
530
+ #: includes/Settings.php:705
531
  msgid "Enable Scheduler"
532
  msgstr ""
533
 
534
+ #: includes/Analytics/UserInterface.php:97
535
+ msgid "Enable search analytics"
536
+ msgstr ""
537
+
538
  #: partials/admin/indexer-body.php:76 partials/admin/indexer-body.php:99
539
  #: partials/admin/indexer-body.php:124
540
  msgid "End"
545
  msgid "Error code %s"
546
  msgstr ""
547
 
548
+ #: includes/Admin/Troubleshooting.php:942
549
  msgid "Error establishing a database connection"
550
  msgstr ""
551
 
553
  msgid "Errors"
554
  msgstr ""
555
 
556
+ #: includes/Settings.php:669 includes/Settings.php:781
557
  msgid "Exclude"
558
  msgstr ""
559
 
560
+ #: includes/Settings.php:665 includes/Settings.php:777
561
  msgid ""
562
  "Exclude the product group from the search results or allow search only among "
563
  "the indicated product group"
564
  msgstr ""
565
 
566
+ #: includes/Settings.php:631
567
  msgid "Exclude “out of stock” products"
568
  msgstr ""
569
 
570
+ #: includes/Settings.php:658 includes/Settings.php:770
571
  msgid "Exclude/include products"
572
  msgstr ""
573
 
574
+ #: includes/Admin/Troubleshooting.php:631
575
  msgid "Extensions should looks like the picture below:"
576
  msgstr ""
577
 
578
+ #: partials/admin/stats/stats.php:64
579
+ #, php-format
580
+ msgid ""
581
+ "Fantastic! The FiboSearch analyzer hasn't found any critical search phrases "
582
+ "for the last %d days."
583
+ msgstr ""
584
+
585
  #: includes/Admin/AdminMenu.php:70 includes/Admin/AdminMenu.php:71
586
  msgid "FiboSearch"
587
  msgstr ""
607
  msgid "FiboSearch Team"
608
  msgstr ""
609
 
610
+ #: includes/Admin/Troubleshooting.php:944
611
  msgid ""
612
  "FiboSearch uses a PDO_MYSQL driver in the search engine. A proper database "
613
  "connection is required."
614
  msgstr ""
615
 
616
+ #: includes/Settings.php:664 includes/Settings.php:776
617
  msgid "Filtering mode"
618
  msgstr ""
619
 
620
+ #: includes/Settings.php:676 includes/Settings.php:788
621
  msgid "Filters"
622
  msgstr ""
623
 
624
+ #: includes/Settings.php:677 includes/Settings.php:789
625
  msgid ""
626
  "Filters that specify the product group that will be affected by the above "
627
  "mode"
632
  msgid "Finalization... Wait a moment. (%s products)"
633
  msgstr ""
634
 
635
+ #: includes/Admin/Troubleshooting.php:1836
636
  msgid "Find section <code>Access Control -> whitelist URL</code>"
637
  msgstr ""
638
 
639
+ #: includes/Admin/Troubleshooting.php:1413
640
  msgid "Fix “Out of stock“ relationships"
641
  msgstr ""
642
 
644
  msgid "Flatsome Theme"
645
  msgstr ""
646
 
647
+ #: includes/Helpers.php:999
648
  #, php-format
649
  msgid ""
650
  "Furthermore, you can override this option for a specific search bar via "
652
  "shortcodes parameters</a>."
653
  msgstr ""
654
 
655
+ #: includes/Settings.php:637
656
  msgid "Fuzziness"
657
  msgstr ""
658
 
659
+ #: includes/Settings.php:755 includes/Settings.php:817
660
  msgid "Fuzzy matching"
661
  msgstr ""
662
 
664
  msgid "Fuzzy search"
665
  msgstr ""
666
 
667
+ #: includes/Admin/Troubleshooting.php:477
668
  #, php-format
669
  msgid ""
670
  "Go to <a href=\"%s\" target=\"_blank\">Tools -> Site Health</a> in your "
680
  "Header -> Search</code> and enable <code>Predictive Search</code>"
681
  msgstr ""
682
 
683
+ #: includes/Admin/Troubleshooting.php:1707
684
  #, php-format
685
  msgid ""
686
  "Go to <code>Defender -> Security Tweaks -> <a href=\"%s\" target=\"_blank\">"
688
  "exceptions: <code>%s</code>"
689
  msgstr ""
690
 
691
+ #: includes/Admin/Troubleshooting.php:756
692
  #, php-format
693
  msgid ""
694
  "Go to <code>Security -> Settings -> Advanced -> <a href=\"%s\" "
695
  "target=\"_blank\">System Tweaks</a></code>."
696
  msgstr ""
697
 
698
+ #: includes/Admin/Troubleshooting.php:580
699
  #, php-format
700
  msgid ""
701
  "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
703
  "option <code>%s</code>."
704
  msgstr ""
705
 
706
+ #: includes/Admin/Troubleshooting.php:630
707
  #, php-format
708
  msgid ""
709
  "Go to <code>WooCommerce -> Settings -> <a href=\"%s\" target=\"_blank\">"
711
  "Searching by Text</code> extension and save changes."
712
  msgstr ""
713
 
714
+ #: includes/Admin/Troubleshooting.php:984
715
  #, php-format
716
  msgid ""
717
  "Go to the <code>Jetpack settings page -> <a href=\"%s\" target=\"_blank\">"
718
  "Performance tab</a> -> disable the Search module</code>"
719
  msgstr ""
720
 
721
+ #: includes/Admin/Troubleshooting.php:909
722
+ #: includes/Admin/Troubleshooting.php:1066
723
+ #: includes/Admin/Troubleshooting.php:1100
724
+ #: includes/Admin/Troubleshooting.php:1186
725
+ #: includes/Admin/Troubleshooting.php:1219
726
  #, php-format
727
  msgid "Go to the Indexer tab and click the button <i>%s</i>."
728
  msgstr ""
729
 
730
+ #: includes/Admin/Troubleshooting.php:1184
731
  msgid ""
732
  "Go to the multilingual plugin settings page and find the section where you "
733
  "can edit the available languages."
734
  msgstr ""
735
 
736
+ #: includes/Admin/Troubleshooting.php:1835
737
  msgid "Go to the settings"
738
  msgstr ""
739
 
740
+ #: includes/Admin/Troubleshooting.php:541
741
  msgid "Great! Our plugin works great with this version of WordPress."
742
  msgstr ""
743
 
747
  "functioning of our plugin."
748
  msgstr ""
749
 
750
+ #: includes/Settings.php:370
751
  msgid "Group results"
752
  msgstr ""
753
 
754
+ #: includes/Settings.php:762 includes/Settings.php:825
755
  msgid "Hard"
756
  msgstr ""
757
 
758
+ #: includes/Admin/Troubleshooting.php:1784
759
  msgid "Here are few samples NGINX config which helps other users:"
760
  msgstr ""
761
 
777
  msgid "Hide details"
778
  msgstr ""
779
 
780
+ #: includes/Settings.php:560
781
  msgid "Highlight color"
782
  msgstr ""
783
 
784
+ #: includes/Settings.php:180
785
  msgid "How to add search bar in your theme?"
786
  msgstr ""
787
 
788
+ #: includes/Settings.php:186
789
  msgid "How to add?"
790
  msgstr ""
791
 
792
+ #: partials/admin/stats/stats.php:48
793
+ msgid "How to fix it?"
794
+ msgstr ""
795
+
796
  #. URI of the plugin
797
  #. Author URI of the plugin
798
  msgid ""
800
  "admin&utm_medium=referral&utm_campaign=author_uri&utm_gen=utmdc"
801
  msgstr ""
802
 
803
+ #: includes/Admin/Troubleshooting.php:1278
804
  msgid "I've fixed it! Restore the default endpoint"
805
  msgstr ""
806
 
807
+ #: widget.php:40 includes/Settings.php:251 includes/EmbeddingViaMenu.php:189
808
  msgid "Icon on mobile, search bar on desktop"
809
  msgstr ""
810
 
811
+ #: includes/Admin/Troubleshooting.php:1131
812
  #, php-format
813
  msgid ""
814
  "If the following errors are related to your theme or plugins, try to fix "
829
  "Help your customers to find the right products even <span>10× faster</span>."
830
  msgstr ""
831
 
832
+ #: includes/Admin/Troubleshooting.php:1794
833
  #, php-format
834
  msgid ""
835
  "If you can't solve it on the NGINX level, try alternative 100%% reliable "
842
  "the issues mentioned there"
843
  msgstr ""
844
 
845
+ #: includes/Admin/Troubleshooting.php:701
846
  #, php-format
847
  msgid ""
848
  "If you think the search results page is displaying your products correctly, "
849
  "you can ignore and dismiss this message: %s"
850
  msgstr ""
851
 
852
+ #: includes/Admin/Troubleshooting.php:1345
853
+ #, php-format
854
+ msgid ""
855
+ "If your current numbers of records in the <code>%s</code> table is not a "
856
+ "issue, increase the limit to 500k, for example, and this alert will "
857
+ "disappear."
858
+ msgstr ""
859
+
860
  #: includes/Integrations/Themes/Impreza/Impreza.php:46
861
  msgid "Impreza Theme"
862
  msgstr ""
863
 
864
+ #: includes/Helpers.php:1100
865
  msgctxt "in categories fe. in Books > Crime stories"
866
  msgid "in"
867
  msgstr ""
868
 
869
+ #: includes/Settings.php:706
870
  msgid ""
871
  "In most cases, you don't need to use the scheduler because the search index "
872
  "updates when you edit products. If you use import tools or custom code to "
874
  "helpful."
875
  msgstr ""
876
 
877
+ #: includes/Settings.php:670 includes/Settings.php:782
878
  msgid "Include"
879
  msgstr ""
880
 
881
+ #: includes/Admin/Troubleshooting.php:628
882
  msgid ""
883
  "Incompatible \"Searching by Text\" extension from WOOF - WooCommerce "
884
  "Products Filter plugin is active"
885
  msgstr ""
886
 
887
+ #: includes/Admin/Troubleshooting.php:1870
888
  msgid ""
889
  "Incompatible \"Searching by Text\" extension in WOOF - WooCommerce Products "
890
  "Filter"
891
  msgstr ""
892
 
893
+ #: includes/Admin/Troubleshooting.php:1180
894
  msgid "Incompatible multilingual plugin setting"
895
  msgstr ""
896
 
897
+ #: includes/Admin/Troubleshooting.php:1862
898
  msgid "Incompatible plugins"
899
  msgstr ""
900
 
901
+ #: includes/Admin/Troubleshooting.php:1096
902
  msgid "Incompatible Polylang plugin setting"
903
  msgstr ""
904
 
905
+ #: includes/Admin/Troubleshooting.php:1062
906
  msgid "Incompatible WPML Multilingual CMS plugin setting"
907
  msgstr ""
908
 
909
+ #: includes/Admin/Troubleshooting.php:578
910
+ #: includes/Admin/Troubleshooting.php:1866
911
  msgid "Incorrect \"Add to cart\" behaviour in WooCommerce settings"
912
  msgstr ""
913
 
915
  msgid "Increase sales"
916
  msgstr ""
917
 
918
+ #: includes/Settings.php:734
919
  msgid "Increases sales conversions"
920
  msgstr ""
921
 
927
  msgid "Index build start"
928
  msgstr ""
929
 
930
+ #: includes/Admin/Troubleshooting.php:1901
931
  msgid "Index completeness test"
932
  msgstr ""
933
 
934
+ #: includes/Settings.php:799 includes/Settings.php:833
935
  msgid "Index status"
936
  msgstr ""
937
 
958
  msgid "Individual tips and support by FiboSearch team"
959
  msgstr ""
960
 
961
+ #: includes/Admin/Troubleshooting.php:1946
962
  msgid "InnoDB support"
963
  msgstr ""
964
 
965
+ #: includes/Admin/Troubleshooting.php:860
966
  msgid ""
967
  "Install the <a target=\"_blank\" href=\"https://wordpress."
968
  "org/plugins/advanced-cron-manager/\">Advanced Cron Manager</a> plugin to "
970
  "related to the Indexer:"
971
  msgstr ""
972
 
973
+ #: includes/Admin/Troubleshooting.php:544
974
  msgid ""
975
  "Install the latest version of WordPress for our plugin to work as best it "
976
  "can!"
977
  msgstr ""
978
 
979
+ #: includes/Settings.php:714
980
  msgid "Interval"
981
  msgstr ""
982
 
983
+ #: includes/Admin/Troubleshooting.php:1182
984
  #, php-format
985
  msgid "Invalid language code: <code>%s</code>"
986
  msgid_plural "Invalid language codes: <code>%s</code>"
995
  "request</a>"
996
  msgstr ""
997
 
998
+ #: includes/Admin/Troubleshooting.php:486
999
  #, php-format
1000
  msgid ""
1001
  "Is it still not working? Write a <a target=\"_blank\" href=\"%s\">support "
1002
  "request</a>"
1003
  msgstr ""
1004
 
1005
+ #: includes/Admin/Troubleshooting.php:480
1006
  msgid ""
1007
  "Is your website publicly available only for whitelisted IPs? <b>Add your "
1008
  "server IP to the whitelist</b>. That’s all. This is a common mistake when "
1011
  "requests to itself."
1012
  msgstr ""
1013
 
1014
+ #: includes/Admin/Troubleshooting.php:837
1015
+ #: includes/Admin/Troubleshooting.php:1896
1016
  msgid "Issue with WP-Cron"
1017
  msgstr ""
1018
 
1019
+ #: includes/Analytics/UserInterface.php:407
1020
+ msgid "It's solved."
1021
+ msgstr ""
1022
+
1023
+ #: includes/Admin/Troubleshooting.php:750
1024
  msgid ""
1025
  "iThemes Security plugin blocks AJAX requests. Take a look at the solution."
1026
  msgstr ""
1027
 
1028
+ #: includes/Admin/Troubleshooting.php:1911
1029
  msgid "Jetpack search module"
1030
  msgstr ""
1031
 
1032
+ #: partials/admin/stats/langs.php:10
1033
+ msgid "Language"
1034
+ msgstr ""
1035
+
1036
  #: partials/admin/indexer-header.php:20
1037
  #, php-format
1038
  msgid "Last build %s"
1039
  msgstr ""
1040
 
1041
+ #: widget.php:42 includes/Settings.php:240 includes/Settings.php:246
1042
  #: includes/EmbeddingViaMenu.php:74
1043
  msgid "Layout"
1044
  msgstr ""
1045
 
1046
+ #: includes/Settings.php:362
1047
  msgid "Limit"
1048
  msgstr ""
1049
 
1050
+ #: includes/Analytics/UserInterface.php:240 partials/admin/stats/stats.php:36
1051
+ #, php-format
1052
+ msgid "load another %d phrase"
1053
+ msgid_plural "load another %d phrases"
1054
+ msgstr[0] ""
1055
+ msgstr[1] ""
1056
+
1057
+ #: includes/Admin/Troubleshooting.php:1339
1058
+ #, php-format
1059
+ msgid ""
1060
+ "Log only critical phrases. This will reduce the growth of records in the "
1061
+ "database by about 70%%."
1062
+ msgstr ""
1063
+
1064
  #: partials/admin/indexer-body.php:143
1065
  msgid "Logs"
1066
  msgstr ""
1067
 
1068
+ #: includes/Admin/Troubleshooting.php:1961
1069
  msgid "Loopback request"
1070
  msgstr ""
1071
 
1076
  "pharetra imperdiet neque, non varius."
1077
  msgstr ""
1078
 
1079
+ #: includes/Admin/Troubleshooting.php:1329
1080
+ msgid "Maintain the search analytics table"
1081
+ msgstr ""
1082
+
1083
+ #: includes/Analytics/UserInterface.php:410
1084
+ msgid "Mark this phrase as resolved"
1085
+ msgstr ""
1086
+
1087
  #: includes/Integrations/Marketplace/Marketplace.php:160
1088
  msgid "Marketplace"
1089
  msgstr ""
1092
  msgid "Marketplace third-party integration"
1093
  msgstr ""
1094
 
1095
+ #: includes/Settings.php:210
1096
  msgid "Max form width"
1097
  msgstr ""
1098
 
1099
+ #: includes/Settings.php:365
1100
  msgid "maximum number of suggestions"
1101
  msgstr ""
1102
 
1103
+ #: includes/Admin/Troubleshooting.php:1591
1104
  msgid ""
1105
  "Maybe your server blocks it by the Apache module <code>mod_security</code>. "
1106
  "Contact your hosting provider and ask what can block the URL you see above."
1110
  msgid "Menu Screen"
1111
  msgstr ""
1112
 
1113
+ #: includes/Settings.php:205
1114
  msgid "Min characters to show autocomplete"
1115
  msgstr ""
1116
 
1117
+ #: includes/Settings.php:201
1118
  msgid "Minimum characters"
1119
  msgstr ""
1120
 
1121
+ #: includes/Admin/Troubleshooting.php:1018
1122
  msgid "Missing plugin: WooCommerce Multilingual"
1123
  msgstr ""
1124
 
1125
+ #: includes/Settings.php:266
1126
  msgid "Mobile breakpoint"
1127
  msgstr ""
1128
 
1132
  "algorithms"
1133
  msgstr ""
1134
 
1135
+ #: includes/Settings.php:427
1136
  msgid "More results label"
1137
  msgstr ""
1138
 
1139
+ #: includes/Admin/Troubleshooting.php:1936
1140
  msgid "Multilingual slugs"
1141
  msgstr ""
1142
 
1143
+ #: includes/Admin/SettingsAPI.php:843
1144
  msgid "My Account"
1145
  msgstr ""
1146
 
1147
+ #: includes/Admin/Troubleshooting.php:1781
1148
  msgid "NGINX configuration may blocks search requests"
1149
  msgstr ""
1150
 
1151
+ #: includes/Settings.php:380 includes/Helpers.php:1102
1152
  msgid "No results"
1153
  msgstr ""
1154
 
1155
+ #: includes/Admin/SettingsAPI.php:526 includes/Admin/SettingsAPI.php:626
1156
  msgid "No rules"
1157
  msgstr ""
1158
 
1160
  msgid "No thanks"
1161
  msgstr ""
1162
 
1163
+ #: includes/Admin/Troubleshooting.php:1931
1164
  msgid "Non Critical Indexer Errors"
1165
  msgstr ""
1166
 
1167
+ #: includes/Settings.php:433
1168
  msgid "Non-products in autocomplete"
1169
  msgstr ""
1170
 
1171
+ #: includes/Settings.php:761 includes/Settings.php:824
1172
  msgid "Normal"
1173
  msgstr ""
1174
 
1180
  msgid "Note: We currently only support the header type: \"Header 10\""
1181
  msgstr ""
1182
 
1183
+ #: includes/Admin/Troubleshooting.php:1941
1184
  msgid "Old index"
1185
  msgstr ""
1186
 
1187
+ #: includes/Admin/Troubleshooting.php:502
1188
  msgid "One or more required PHP extensions are missing on your server"
1189
  msgstr ""
1190
 
1191
+ #: includes/Settings.php:258
1192
  msgid "Overlay on mobile"
1193
  msgstr ""
1194
 
1195
+ #: includes/Admin/Troubleshooting.php:1906
1196
  msgid "PDO connection test"
1197
  msgstr ""
1198
 
1199
+ #: includes/Analytics/UserInterface.php:406
1200
+ msgid "Perfect!"
1201
+ msgstr ""
1202
+
1203
+ #: includes/Admin/Troubleshooting.php:1858
1204
  msgid "PHP extensions"
1205
  msgstr ""
1206
 
1207
+ #: partials/admin/stats/stats.php:18 partials/admin/stats/stats.php:128
1208
+ #: partials/admin/stats/stats.php:177
1209
+ msgid "Phrase"
1210
+ msgstr ""
1211
+
1212
+ #: includes/Admin/Troubleshooting.php:1926
1213
  msgid "Polylang with disabled translations for products"
1214
  msgstr ""
1215
 
1216
+ #: includes/Analytics/UserInterface.php:415
1217
+ msgid "Poorly!"
1218
+ msgstr ""
1219
+
1220
  #: partials/admin/indexer-body.php:63
1221
  msgid "Posts & pages"
1222
  msgstr ""
1223
 
1224
+ #: includes/Settings.php:334
1225
  msgid "Preloader"
1226
  msgstr ""
1227
 
1229
  msgid "Preview"
1230
  msgstr ""
1231
 
1232
+ #: includes/Helpers.php:531 includes/Helpers.php:535
1233
  msgid "Pro"
1234
  msgstr ""
1235
 
1236
+ #: includes/Settings.php:686
1237
  msgid "Pro features"
1238
  msgstr ""
1239
 
1241
  msgid "Processing asynchronous tests..."
1242
  msgstr ""
1243
 
1244
+ #: includes/Admin/SettingsAPI.php:583
1245
  msgid "Product categories"
1246
  msgstr ""
1247
 
1248
+ #: includes/Admin/SettingsAPI.php:585
1249
  msgid "Product tags"
1250
  msgstr ""
1251
 
1252
+ #: includes/Settings.php:384 partials/admin/indexer-body.php:58
1253
  msgid "Products"
1254
  msgstr ""
1255
 
1257
  msgid "Products search"
1258
  msgstr ""
1259
 
1260
+ #: includes/Settings.php:576
1261
  msgid "Products search scope"
1262
  msgstr ""
1263
 
1267
  "search bar in your theme"
1268
  msgstr ""
1269
 
1270
+ #: includes/Settings.php:267
1271
  msgid "px"
1272
  msgstr ""
1273
 
1274
+ #: includes/Admin/Troubleshooting.php:485
1275
  #, php-format
1276
  msgid ""
1277
  "Read more about indexer issues on <a target=\"_blank\" href=\"%s\">our "
1279
  "request to itself”."
1280
  msgstr ""
1281
 
1282
+ #: includes/Admin/Troubleshooting.php:759
1283
  #, php-format
1284
  msgid ""
1285
  "Read more about this issue in <a href=\"%s\" target=\"_blank\">our "
1290
  msgid "Readable"
1291
  msgstr ""
1292
 
1293
+ #: includes/Admin/Troubleshooting.php:903
1294
+ #: includes/Admin/Troubleshooting.php:1059
1295
+ #: includes/Admin/Troubleshooting.php:1093
1296
+ #: includes/Admin/Troubleshooting.php:1177
1297
+ #: includes/Admin/Troubleshooting.php:1215
1298
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:704
1299
  msgid "Rebuild index"
1300
  msgstr ""
1301
 
1302
+ #: partials/admin/troubleshooting.php:22
1303
+ msgid "Recheck the status"
1304
+ msgstr ""
1305
+
1306
+ #: partials/admin/stats/stats.php:19 partials/admin/stats/stats.php:129
1307
+ #: partials/admin/stats/stats.php:178
1308
+ msgid "Repetitions"
1309
+ msgstr ""
1310
+
1311
  #: includes/Abstracts/ThemeIntegration.php:62
1312
  #: includes/Integrations/Themes/TheGem/TheGem.php:100
1313
  #: includes/Integrations/Themes/Enfold/Enfold.php:63
1386
  msgid "Replace the TheGem default search"
1387
  msgstr ""
1388
 
1389
+ #: includes/Admin/Troubleshooting.php:512
1390
+ #: includes/Admin/Troubleshooting.php:515
1391
  #, php-format
1392
  msgid "Required PHP extension: %s"
1393
  msgstr ""
1394
 
1395
+ #: includes/Admin/Troubleshooting.php:1672
1396
  msgid "Response body"
1397
  msgstr ""
1398
 
1399
+ #: partials/admin/stats/stats.php:99
1400
+ msgid "returning results"
1401
+ msgstr ""
1402
+
1403
+ #: includes/Settings.php:735
1404
+ #, php-format
1405
  msgid ""
1406
+ "Returns suggestions based on likely relevance, even though a search keyword "
1407
  "may not exactly match. E.g if you type “ipho<b>m</b>e” you get the same "
1408
+ "results as for “iphone”. <a target=\"_blank\" href=\"%s\">Read more</a> "
1409
+ "about fuzzy search feature."
1410
  msgstr ""
1411
 
1412
  #: includes/Admin/Promo/FeedbackNotice.php:82
1442
  msgid "Sample tag <strong>name</strong>"
1443
  msgstr ""
1444
 
1445
+ #: includes/Settings.php:725
1446
  msgid "Schedule time"
1447
  msgstr ""
1448
 
1449
+ #: includes/Settings.php:699
1450
  msgid "Scheduling indexing"
1451
  msgstr ""
1452
 
1453
+ #: includes/Settings.php:230 partials/search-form.php:47
1454
  msgid "Search"
1455
  msgstr ""
1456
 
1457
+ #: includes/Analytics/UserInterface.php:91
1458
+ msgid "Search Analytics"
1459
+ msgstr ""
1460
+
1461
  #: includes/Settings.php:117 includes/EmbeddingViaMenu.php:247
1462
  #: partials/admin/search-preview.php:21
1463
  msgid "Search bar"
1464
  msgstr ""
1465
 
1466
+ #: widget.php:38 includes/Settings.php:249 includes/EmbeddingViaMenu.php:187
1467
  msgid "Search bar only"
1468
  msgstr ""
1469
 
1479
  msgid "Search for posts and pages"
1480
  msgstr ""
1481
 
1482
+ #: includes/Settings.php:236 includes/Helpers.php:1105
1483
  msgid "Search for products..."
1484
  msgstr ""
1485
 
1486
+ #: widget.php:39 includes/Settings.php:250 includes/Settings.php:292
1487
  #: includes/EmbeddingViaMenu.php:188
1488
  msgid "Search icon"
1489
  msgstr ""
1497
  msgid "Search in %s"
1498
  msgstr ""
1499
 
1500
+ #: includes/Settings.php:603 partials/admin/features.php:23
1501
  msgid "Search in attributes"
1502
  msgstr ""
1503
 
1513
  msgid "Search in brands (WooCommerce Brands or YITH WooCommerce Brands)"
1514
  msgstr ""
1515
 
1516
+ #: includes/Settings.php:610 partials/admin/features.php:24
1517
  msgid "Search in categories"
1518
  msgstr ""
1519
 
1520
+ #: includes/Settings.php:624 includes/Settings.php:745
1521
  #: partials/admin/features.php:22
1522
  msgid "Search in custom fields"
1523
  msgstr ""
1524
 
1525
+ #: includes/Settings.php:582
1526
  msgid "Search in description"
1527
  msgstr ""
1528
 
1529
+ #: includes/Settings.php:588
1530
  msgid "Search in short description"
1531
  msgstr ""
1532
 
1533
+ #: includes/Settings.php:594
1534
  msgid "Search in SKU"
1535
  msgstr ""
1536
 
1537
+ #: includes/Settings.php:617 partials/admin/features.php:25
1538
  msgid "Search in tags"
1539
  msgstr ""
1540
 
1542
  msgid "Search in vendors"
1543
  msgstr ""
1544
 
1545
+ #: includes/Settings.php:299
1546
  msgid "Search input background"
1547
  msgstr ""
1548
 
1549
+ #: includes/Settings.php:313
1550
  msgid "Search input border"
1551
  msgstr ""
1552
 
1553
+ #: includes/Settings.php:234
1554
  msgid "Search input placeholder"
1555
  msgstr ""
1556
 
1557
+ #: includes/Settings.php:306
1558
  msgid "Search input text"
1559
  msgstr ""
1560
 
1561
+ #: partials/admin/stats/stats.php:88 partials/admin/stats/stats.php:170
1562
+ msgid "search results page"
1563
+ msgstr ""
1564
+
1565
+ #: includes/Settings.php:320
1566
  msgid "Search submit background"
1567
  msgstr ""
1568
 
1569
+ #: includes/Settings.php:327
1570
  msgid "Search submit text"
1571
  msgstr ""
1572
 
1574
  msgid "Searchable"
1575
  msgstr ""
1576
 
1577
+ #: partials/admin/stats/stats.php:98
1578
+ msgid "Searches"
1579
+ msgstr ""
1580
+
1581
+ #: partials/admin/stats/stats.php:71
1582
+ #, php-format
1583
+ msgid "Searches stats (last %d days)"
1584
+ msgstr ""
1585
+
1586
+ #: includes/Settings.php:596
1587
  msgid "searching also in variable products SKU"
1588
  msgstr ""
1589
 
1590
+ #: includes/Settings.php:597
1591
  #, php-format
1592
  msgid ""
1593
  "Searching in variable products SKU is available only in <a target=\"_blank\" "
1598
  msgid "See a comparison of all free and premium features!"
1599
  msgstr ""
1600
 
1601
+ #: includes/Settings.php:429 includes/Helpers.php:1103
1602
+ #: includes/Helpers.php:1104
1603
  msgid "See all products..."
1604
  msgstr ""
1605
 
1606
+ #: includes/Admin/SettingsAPI.php:581
1607
  msgid "Select filter type"
1608
  msgstr ""
1609
 
1610
+ #: includes/Settings.php:749
1611
  msgid "select the custom fields you want to add to the search scope"
1612
  msgstr ""
1613
 
1614
+ #: includes/Admin/Troubleshooting.php:2106
1615
  msgid "Server environment"
1616
  msgstr ""
1617
 
1618
+ #: includes/Admin/Troubleshooting.php:1584
1619
+ #: includes/Admin/Troubleshooting.php:1671
1620
  #, php-format
1621
  msgid ""
1622
  "Server response with message <code>%s</code> and status code <code>%s</code>."
1640
  msgid "Show brands"
1641
  msgstr ""
1642
 
1643
+ #: includes/Settings.php:439
1644
  msgid "Show categories"
1645
  msgstr ""
1646
 
1649
  msgid "Show details"
1650
  msgstr ""
1651
 
1652
+ #: includes/Settings.php:485
1653
  msgid "Show Details panel"
1654
  msgstr ""
1655
 
1656
+ #: includes/Settings.php:447 includes/Settings.php:451
1657
  #: includes/Integrations/Brands.php:229 includes/Integrations/Brands.php:233
1658
  #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomies.php:213
1659
  #: includes/Engines/TNTSearchMySQL/Indexer/Taxonomies.php:217
1662
  msgid "show images"
1663
  msgstr ""
1664
 
1665
+ #: includes/Settings.php:472
1666
  msgid "Show pages"
1667
  msgstr ""
1668
 
1669
+ #: includes/Settings.php:465
1670
  msgid "Show posts"
1671
  msgstr ""
1672
 
1673
+ #: includes/Settings.php:340
1674
  msgid "Show preloader"
1675
  msgstr ""
1676
 
1677
+ #: includes/Settings.php:396
1678
  msgid "Show price"
1679
  msgstr ""
1680
 
1681
+ #: includes/Settings.php:402
1682
  msgid "Show product description"
1683
  msgstr ""
1684
 
1685
+ #: includes/Settings.php:390
1686
  msgid "Show product image"
1687
  msgstr ""
1688
 
1689
+ #: includes/Settings.php:409
1690
  msgid "Show SKU"
1691
  msgstr ""
1692
 
1693
+ #: includes/Settings.php:219
1694
  msgid "Show submit button"
1695
  msgstr ""
1696
 
1697
+ #: includes/Settings.php:457
1698
  msgid "Show tags"
1699
  msgstr ""
1700
 
1701
+ #: partials/admin/stats/stats.php:148 partials/admin/stats/stats.php:197
1702
+ msgid "show top 100 phrases"
1703
+ msgstr ""
1704
+
1705
  #: includes/Integrations/Marketplace/Marketplace.php:207
1706
  msgid "Show vendors next to products"
1707
  msgstr ""
1708
 
1709
+ #: includes/Admin/SettingsAPI.php:839
1710
  msgid "Showcase"
1711
  msgstr ""
1712
 
1713
+ #: partials/admin/stats/langs.php:11
1714
+ msgid "Shows stats only for the selected language."
1715
+ msgstr ""
1716
+
1717
+ #: includes/Settings.php:760 includes/Settings.php:823
1718
  msgid "Soft"
1719
  msgstr ""
1720
 
1721
+ #: includes/Helpers.php:1098
1722
  msgid "Sold by:"
1723
  msgstr ""
1724
 
1725
+ #: includes/Admin/Troubleshooting.php:579
1726
+ #: includes/Admin/Troubleshooting.php:629
1727
+ #: includes/Admin/Troubleshooting.php:697
1728
+ #: includes/Admin/Troubleshooting.php:859
1729
+ #: includes/Admin/Troubleshooting.php:950
1730
+ #: includes/Admin/Troubleshooting.php:1064
1731
+ #: includes/Admin/Troubleshooting.php:1098
1732
+ #: includes/Admin/Troubleshooting.php:1183
1733
+ #: includes/Admin/Troubleshooting.php:1706
1734
+ #: includes/Admin/Troubleshooting.php:1753
1735
+ #: includes/Admin/Troubleshooting.php:1833
1736
  msgid "Solution"
1737
  msgstr ""
1738
 
1739
+ #: includes/Admin/Troubleshooting.php:1589
1740
  msgid "Solutions"
1741
  msgstr ""
1742
 
1743
+ #: includes/Admin/Troubleshooting.php:473
1744
  msgid "Solutions:"
1745
  msgstr ""
1746
 
1747
+ #: includes/Admin/Troubleshooting.php:1782
1748
  #, php-format
1749
  msgid ""
1750
  "Some NGINX configuration may block executing PHP files included directly in "
1753
  "to execute the following file: %s"
1754
  msgstr ""
1755
 
1756
+ #: includes/Analytics/UserInterface.php:427
1757
+ msgid "Something went wrong"
1758
+ msgstr ""
1759
+
1760
+ #: includes/Settings.php:692
1761
  msgid "Speed up search!"
1762
  msgstr ""
1763
 
1778
  msgid "Status"
1779
  msgstr ""
1780
 
1781
+ #: includes/Admin/Troubleshooting.php:751
1782
+ #: includes/Admin/Troubleshooting.php:754
1783
  #, php-format
1784
  msgid "Step %d"
1785
  msgstr ""
1786
 
1787
+ #: includes/Analytics/UserInterface.php:416
1788
+ msgid "Still this phrase doesn't return any results. Learn how to fix it."
1789
+ msgstr ""
1790
+
1791
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:701
1792
  msgid "Stop process"
1793
  msgstr ""
1796
  msgid "Storefront Theme"
1797
  msgstr ""
1798
 
1799
+ #: includes/Settings.php:227
1800
  msgid "Submit label"
1801
  msgstr ""
1802
 
1803
+ #: includes/Admin/Troubleshooting.php:1832
1804
  msgid "Sucuri Security firewall may block AJAX calls of the live search"
1805
  msgstr ""
1806
 
1807
+ #: includes/Settings.php:539
1808
  msgid "Suggestion background"
1809
  msgstr ""
1810
 
1811
+ #: includes/Settings.php:546
1812
  msgid "Suggestion selected"
1813
  msgstr ""
1814
 
1815
+ #: includes/Settings.php:533
1816
  msgid "Suggestions colors"
1817
  msgstr ""
1818
 
1819
+ #: includes/Settings.php:643 includes/Settings.php:649
1820
  #: partials/admin/features.php:29 includes/Admin/Promo/Upgrade.php:50
1821
  msgid "Synonyms"
1822
  msgstr ""
1823
 
1824
+ #: includes/Settings.php:652
1825
  msgid ""
1826
  "Synonyms should be separated by a comma. Each new synonyms group is entered "
1827
  "on a new line. You can use a phrase instead of a single word. <br /> <br />"
1833
  msgid "Taxonomies"
1834
  msgstr ""
1835
 
1836
+ #: includes/Settings.php:553
1837
  msgid "Text color"
1838
  msgstr ""
1839
 
1840
+ #: includes/Admin/Troubleshooting.php:1752
1841
  msgid "The .htaccess file(s) may blocking AJAX calls of the live search"
1842
  msgstr ""
1843
 
1844
+ #: includes/Admin/Troubleshooting.php:1287
1845
  msgid ""
1846
  "The default search endpoint has been blocked and you decided to switch on "
1847
  "the alternative endpoint to make the search working in emergency mode. What "
1848
  "should you do next?"
1849
  msgstr ""
1850
 
1851
+ #: includes/Settings.php:486
1852
  msgid ""
1853
  "The Details panel is an additional container for extended information. The "
1854
  "details are changed dynamically when a user mouse over one of the "
1855
  "suggestions."
1856
  msgstr ""
1857
 
1858
+ #: partials/admin/stats/stats.php:10
1859
+ #, php-format
1860
+ msgid ""
1861
+ "The FiboSearch analyzer found <b>%d critical search phrases</b> that have "
1862
+ "been typed by users over the last %d days. These phrases don`t return any "
1863
+ "search results. It's time to fix it."
1864
+ msgstr ""
1865
+
1866
  #: includes/Admin/Promo/FeedbackNotice.php:76
1867
  #, php-format
1868
  msgid ""
1874
  msgid "The following error caused the index to be canceled:"
1875
  msgstr ""
1876
 
1877
+ #: includes/Admin/Troubleshooting.php:1218
1878
  msgid "The index was built by the previous plugin version"
1879
  msgstr ""
1880
 
1881
+ #: includes/Admin/Troubleshooting.php:468
1882
  msgid ""
1883
  "The Indexer uses the WordPress function <code>wp_remote_post()</code> to "
1884
  "build the index in background. Sometimes the server can block this kind of "
1885
  "request and responses with HTTP 401 Unauthorized or 403 Forbidden errors."
1886
  msgstr ""
1887
 
1888
+ #: includes/Admin/Troubleshooting.php:1248
1889
  msgid ""
1890
  "The InnoDB engine within the MySQL server must be enabled for our plugin to "
1891
  "work properly. Contact your hosting provider and ask for enabling InnoDB "
1892
  "engine in your MySQL server."
1893
  msgstr ""
1894
 
1895
+ #: includes/Admin/Troubleshooting.php:983
1896
  #, php-format
1897
  msgid "The Jetpack Search module is incompatible with the %s plugin."
1898
  msgstr ""
1903
  "designed advanced AJAX search bar with live search suggestions."
1904
  msgstr ""
1905
 
1906
+ #: includes/Admin/Troubleshooting.php:1247
1907
  msgid "The MySQL server has the InnoDB engine turned off"
1908
  msgstr ""
1909
 
1912
  msgid "the next index rebuild: %s"
1913
  msgstr ""
1914
 
1915
+ #: includes/Admin/Troubleshooting.php:1332
1916
+ msgid "The search analytics module significantly expands the database"
1917
+ msgstr ""
1918
+
1919
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:673
1920
  msgid "The search index could not be built."
1921
  msgstr ""
1925
  msgid "The search index does not exist yet. Build it now."
1926
  msgstr ""
1927
 
1928
+ #: includes/Admin/Troubleshooting.php:907
1929
  msgid "The search index structure isn't complete"
1930
  msgstr ""
1931
 
1939
  msgid "The search index was built successfully."
1940
  msgstr ""
1941
 
1942
+ #: includes/Admin/Troubleshooting.php:1130
1943
  msgid ""
1944
  "The search index was built, but some significant errors occurred during this "
1945
  "process. There is a risk that some products may not be available during the "
1946
  "search."
1947
  msgstr ""
1948
 
1949
+ #: includes/Admin/Troubleshooting.php:1586
1950
  msgid ""
1951
  "The search uses a dedicated URL to makes queries. In your case, this URL is "
1952
  "blocked for some reason. Let visit it directly in your browser:"
1953
  msgstr ""
1954
 
1955
+ #: includes/Settings.php:259
1956
  msgid "The search will open in overlay on mobile"
1957
  msgstr ""
1958
 
1959
+ #: includes/Admin/Troubleshooting.php:1583
1960
  msgid ""
1961
  "The server returns an incorrect response for the search engine's AJAX calls"
1962
  msgstr ""
1963
 
1964
+ #: includes/Settings.php:650
1965
  msgid ""
1966
  "The synonyms feature allows your users to find more relevant results. If "
1967
  "your products have alternative names and users often misspell them, consider "
1976
  msgid "There are four easy ways to display the search bar in your theme"
1977
  msgstr ""
1978
 
1979
+ #: partials/admin/stats/stats.php:50
1980
+ msgid ""
1981
+ "There are several ways to solve these problems. Every phrase may require a "
1982
+ "different approach. See what methods you could use:"
1983
+ msgstr ""
1984
+
1985
+ #: includes/Admin/Troubleshooting.php:1415
1986
  msgid ""
1987
  "There is a problem with the visibility of products with “Out of stock“ status"
1988
  msgstr ""
1989
 
1990
+ #: includes/Admin/Troubleshooting.php:695
1991
  msgid ""
1992
  "There is no correct template in Elementor Theme Builder for the WooCommerce "
1993
  "search results page."
1994
  msgstr ""
1995
 
1996
+ #: includes/Admin/Troubleshooting.php:1590
1997
  msgid ""
1998
  "Think about what can block the execution of PHP scripts inside <code>wp-"
1999
  "content</code> or <code>wp-content/plugins</code> directory. Maybe you use "
2000
  "some security plugins or you have custom code that may block it."
2001
  msgstr ""
2002
 
2003
+ #: includes/Admin/Troubleshooting.php:467
2004
  msgid ""
2005
  "This issue may affect the building of the search index. Indexer may stuck at "
2006
  "0%."
2007
  msgstr ""
2008
 
2009
+ #: includes/Admin/Troubleshooting.php:463
2010
  msgid ""
2011
  "This issue may affect the search results page and e.g. display all products "
2012
  "every time"
2013
  msgstr ""
2014
 
2015
+ #: includes/Helpers.php:997
2016
  #, php-format
2017
  msgid ""
2018
  "This option is <b>overridden</b> by the seamless integration with the %s "
2020
  "integration in <br /><b>WooCommerce -> FiboSearch -> Starting (tab)</b>."
2021
  msgstr ""
2022
 
2023
+ #: includes/Analytics/UserInterface.php:458
2024
+ msgid ""
2025
+ "This phrase has been solved! This row will disappear after refreshing the "
2026
+ "page."
2027
+ msgstr ""
2028
+
2029
+ #: includes/Analytics/UserInterface.php:408
2030
+ #, php-format
2031
+ msgid "This phrase returns 1 product."
2032
+ msgid_plural "This phrase returns %d products."
2033
+ msgstr[0] ""
2034
+ msgstr[1] ""
2035
+
2036
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:647
2037
  #: includes/Engines/TNTSearchMySQL/Indexer/Builder.php:653
2038
  msgid "This process will continue in the background. You can leave this page!"
2047
  msgid "Title"
2048
  msgstr ""
2049
 
2050
+ #: includes/Settings.php:227
2051
  msgid "To display the magnifier icon leave this field empty."
2052
  msgstr ""
2053
 
2057
  "the Shopkeeper settings."
2058
  msgstr ""
2059
 
2060
+ #: includes/Settings.php:213
2061
  msgid "To set 100% width leave blank"
2062
  msgstr ""
2063
 
2064
+ #: partials/admin/stats/stats.php:121 partials/admin/stats/stats.php:169
2065
+ msgid "Top searches with results"
2066
+ msgstr ""
2067
+
2068
+ #: partials/admin/stats/stats.php:76 partials/admin/stats/stats.php:87
2069
+ msgid "Total searches"
2070
+ msgstr ""
2071
+
2072
+ #: includes/Admin/Troubleshooting.php:1418
2073
  #, php-format
2074
  msgid ""
2075
+ "Total “out of stock“ products calculated by SQL query on <code>%s</code> and "
2076
+ "<code>%s</code>: <b>%d</b>"
2077
  msgstr ""
2078
 
2079
+ #: includes/Admin/Troubleshooting.php:1419
2080
  #, php-format
2081
  msgid ""
2082
  "Total “out of stock“ products calculated by SQL query on <code>%s</code>: <b>"
2083
  "%d</b>"
2084
  msgstr ""
2085
 
2086
+ #: includes/Admin/Troubleshooting.php:1883
2087
  msgid "TranslatePress"
2088
  msgstr ""
2089
 
2090
+ #: includes/Admin/Troubleshooting.php:69 includes/Admin/Troubleshooting.php:88
2091
  #: partials/admin/indexer-header.php:40
2092
  msgid "Troubleshooting"
2093
  msgstr ""
2096
  msgid "Try to build the index again."
2097
  msgstr ""
2098
 
2099
+ #: includes/Admin/Troubleshooting.php:757
2100
  msgid ""
2101
  "Uncheck the option <code>Disable PHP in Plugins</code>. Save settings. Right "
2102
  "after that <b>check this option again</b> and save settings one more time."
2122
  msgid "Upgrade Now!"
2123
  msgstr ""
2124
 
2125
+ #: includes/Settings.php:347
2126
  msgid "Upload preloader image"
2127
  msgstr ""
2128
 
2136
  msgid "Using PHP - %s"
2137
  msgstr ""
2138
 
2139
+ #: includes/Admin/Troubleshooting.php:1971
2140
  msgid "Valid search results test"
2141
  msgstr ""
2142
 
2143
+ #: includes/Helpers.php:1091
2144
  msgid "Vendor"
2145
  msgstr ""
2146
 
2147
+ #: includes/Helpers.php:1095
2148
  msgid "Vendors"
2149
  msgstr ""
2150
 
2164
  msgid "Warning!"
2165
  msgstr ""
2166
 
2167
+ #: includes/Admin/Troubleshooting.php:1335
2168
+ msgid "We have 3 solutions for this situation:"
2169
+ msgstr ""
2170
+
2171
+ #: includes/Admin/Troubleshooting.php:1754
2172
  #, php-format
2173
  msgid ""
2174
  "We recommend contact your hosting provider and ask to check <code>%s</code> "
2184
  "We support this theme and you can easily replace all default search bars."
2185
  msgstr ""
2186
 
2187
+ #: includes/Admin/Troubleshooting.php:1416
2188
  msgid ""
2189
  "We've detected that some products with a status “Out of Stock“ may have "
2190
  "something wrong with relationships in the database. It affects visibility of "
2192
  "from a different WordPress."
2193
  msgstr ""
2194
 
2195
+ #: includes/Settings.php:719
2196
  msgid "weekly"
2197
  msgstr ""
2198
 
2199
+ #: includes/Admin/Troubleshooting.php:1585
2200
  msgid "What's wrong?"
2201
  msgstr ""
2202
 
2208
  msgid "with simple tricks"
2209
  msgstr ""
2210
 
2211
+ #: includes/Admin/Troubleshooting.php:1916
2212
  msgid "WooCommerce Multilingual"
2213
  msgstr ""
2214
 
2215
+ #: includes/Admin/Troubleshooting.php:1023
2216
  msgid "WooCommerce Multilingual plugin is enabled but not effective"
2217
  msgstr ""
2218
 
2219
+ #: includes/Admin/Troubleshooting.php:1891
2220
  msgid "WordPress loading problem"
2221
  msgstr ""
2222
 
2223
+ #: includes/Admin/Troubleshooting.php:532
2224
+ #: includes/Admin/Troubleshooting.php:1854
2225
  msgid "WordPress version"
2226
  msgstr ""
2227
 
2228
+ #: includes/Admin/Troubleshooting.php:1921
2229
  msgid "WPML with disabled translations for products"
2230
  msgstr ""
2231
 
2232
+ #: includes/Admin/Troubleshooting.php:696
2233
  #, php-format
2234
  msgid ""
2235
  "You are using Elementor and we noticed that the template used in the search "
2237
  "Products</strong> widget."
2238
  msgstr ""
2239
 
2240
+ #: includes/Admin/Troubleshooting.php:345
2241
  msgid "You are using one or more incompatible plugins"
2242
  msgstr ""
2243
 
2244
+ #: includes/Admin/Troubleshooting.php:1097
2245
  msgid ""
2246
  "You are using Polylang, but you have product translations disabled, so for "
2247
  "the search engine to function properly, you must disable its multi-language "
2248
  "support feature."
2249
  msgstr ""
2250
 
2251
+ #: includes/Admin/Troubleshooting.php:1181
2252
  msgid ""
2253
  "You are using the multilingual plugin, but one or more of the language codes "
2254
  "has wrong format. This needs to be corrected or the index will not be able "
2255
  "to build properly."
2256
  msgstr ""
2257
 
2258
+ #: includes/Admin/Troubleshooting.php:386
2259
  msgid "You are using TranslatePress with Free version of our plugin"
2260
  msgstr ""
2261
 
2262
+ #: includes/Admin/Troubleshooting.php:1063
2263
  msgid ""
2264
  "You are using WPML Multilingual CMS, but you have product translations "
2265
  "disabled, so for the search engine to function properly, you must disable "
2266
  "its multi-language support feature."
2267
  msgstr ""
2268
 
2269
+ #: includes/Admin/Troubleshooting.php:1420
2270
  #, php-format
2271
  msgid "You can fix it by clicking on this button: %s"
2272
  msgstr ""
2273
 
2274
+ #: includes/Admin/Troubleshooting.php:862
2275
  msgid ""
2276
  "You can run these actions manually via Advanced Cron Manager. Then the "
2277
  "Indexer should run. If the index stuck again, run these actions manually one "
2278
  "more time until the finished index."
2279
  msgstr ""
2280
 
2281
+ #: includes/Admin/Troubleshooting.php:1286
2282
  msgid "You have activated the alternative search endpoint"
2283
  msgstr ""
2284
 
2285
+ #: includes/Admin/Troubleshooting.php:1334
2286
+ #, php-format
2287
+ msgid "You have reached <b>%s records</b> in the <code>%s</code> table."
2288
+ msgstr ""
2289
+
2290
+ #: includes/Admin/Troubleshooting.php:1834
2291
  msgid ""
2292
  "You need to log in to your <a href=\"https://login.sucuri.net\" "
2293
  "target=\"_blank\">Sucuri panel</a>."
2294
  msgstr ""
2295
 
2296
+ #: includes/Admin/Troubleshooting.php:1588
2297
  msgid ""
2298
  "You should see <code>pong</code> word as a response. Probably you see "
2299
  "something else."
2304
  msgid "You use %s plugin version %s"
2305
  msgstr ""
2306
 
2307
+ #: includes/Admin/Troubleshooting.php:365
2308
+ #: includes/Admin/Troubleshooting.php:367
2309
  #, php-format
2310
  msgid ""
2311
  "You use the %s plugin, which may cause errors in the search results returned "
2312
  "by our plugin."
2313
  msgstr ""
2314
 
2315
+ #: includes/Admin/Troubleshooting.php:356
2316
+ #: includes/Admin/Troubleshooting.php:360
2317
  #, php-format
2318
  msgid "You use the %s plugin. The %s does not support this plugin."
2319
  msgstr ""
2323
  msgid "You use the <b>%s</b> theme%s. Fantastic!"
2324
  msgstr ""
2325
 
2326
+ #: includes/Admin/Troubleshooting.php:1024
2327
  #, php-format
2328
  msgid ""
2329
  "You use the WPML Multilingual CMS and WooCommerce Multilingual plugins, but "
2331
  "target=\"_blank\">WooCommerce Multilingual status</a>."
2332
  msgstr ""
2333
 
2334
+ #: includes/Admin/Troubleshooting.php:1019
2335
  #, php-format
2336
  msgid ""
2337
  "You use the WPML Multilingual CMS plugin and to correctly search for "
2339
  "target=\"_blank\">WooCommerce Multilingual</a> plugin."
2340
  msgstr ""
2341
 
2342
+ #: includes/Admin/Troubleshooting.php:475
2343
  msgid "Your server can't send an HTTP request to itself"
2344
  msgstr ""
2345
 
2346
+ #: includes/Admin/Troubleshooting.php:581
2347
  msgid "Your settings should looks like the picture below:"
2348
  msgstr ""
2349
 
2350
+ #: includes/Admin/Troubleshooting.php:410
2351
  msgid "Your site can perform loopback requests"
2352
  msgstr ""
2353
 
2354
+ #: includes/Admin/Troubleshooting.php:459
2355
  msgid "Your site could not complete a loopback request"
2356
  msgstr ""
partials/admin/stats/ac-searches-row.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+ ?>
7
+ <tr class="js-dgwt-wcas-autocomplete-row">
8
+ <td><?php echo $i; ?></td>
9
+ <td><?php echo esc_html( $row['phrase'] ); ?></td>
10
+ <td><?php echo esc_html( $row['qty'] ); ?></td>
11
+ </tr>
partials/admin/stats/critical-searches-row.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+ ?>
7
+ <tr class="js-dgwt-wcas-critical-searches-row">
8
+ <td><?php echo $i; ?></td>
9
+ <td><?php echo esc_html( $row['phrase'] ); ?></td>
10
+ <td><?php echo esc_html( $row['qty'] ); ?></td>
11
+ <td>
12
+ <button class="button button-small js-dgwt-wcas-stats-critical-check"><?php _e( "Check", 'ajax-search-for-woocommerce' ); ?></button>
13
+ </td>
14
+ </tr>
partials/admin/stats/langs.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+
8
+ if ( $vars['multilingual']['is-multilingual'] ): ?>
9
+ <div class="dgwt-wcas-analytics-langs">
10
+ <h3><?php _e( 'Language', 'ajax-search-for-woocommerce' ); ?></h3>
11
+ <p class="dgwt-wcas-analytics-subtitle"><?php _e( 'Shows stats only for the selected language.', 'ajax-search-for-woocommerce' ); ?></p>
12
+ <select class="js-dgwt-wcas-analytics-lang">
13
+ <?php foreach ( $vars['multilingual']['langs'] as $lang => $label ): ?>
14
+ <option value="<?php echo esc_html( $lang ); ?>" <?php selected( $vars['multilingual']['current-lang'], $lang, true ); ?>><?php echo esc_html( $label ); ?></option>
15
+ <?php endforeach; ?>
16
+ </select>
17
+ </div>
18
+ <?php endif; ?>
partials/admin/stats/sp-searches-row.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+ ?>
7
+ <tr class="js-dgwt-wcas-search-page-row">
8
+ <td><?php echo $i; ?></td>
9
+ <td><?php echo esc_html( $row['phrase'] ); ?></td>
10
+ <td><?php echo esc_html( $row['qty'] ); ?></td>
11
+ </tr>
partials/admin/stats/stats.php ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+ ?>
7
+ <div class="dgwt-wcas-analytics-module-critical">
8
+ <h3><?php _e( 'Critical searches without result', 'ajax-search-for-woocommerce' ); ?></h3>
9
+ <?php if ( ! empty( $vars['critical-searches'] ) ): ?>
10
+ <p class="dgwt-wcas-analytics-subtitle"><?php printf( __( "The FiboSearch analyzer found <b>%d critical search phrases</b> that have been typed by users over the last %d days. These phrases don`t return any search results. It's time to fix it.", 'ajax-search-for-woocommerce' ),
11
+ $vars['critical-searches-total'], $vars['days'] ); ?></p>
12
+
13
+ <div class="dgwt-wcas-analytics-module-critical-body">
14
+ <table class="widefat fixed dgwt-wcas-analytics-table">
15
+ <thead>
16
+ <tr>
17
+ <th>#</th>
18
+ <th><?php _e( 'Phrase', 'ajax-search-for-woocommerce' ); ?></th>
19
+ <th><?php _e( 'Repetitions', 'ajax-search-for-woocommerce' ); ?></th>
20
+ <th><?php _e( "Check if it's been solved", 'ajax-search-for-woocommerce' ); ?></th>
21
+ </tr>
22
+ </thead>
23
+ <tbody>
24
+ <?php
25
+ $i = 1;
26
+ foreach ( $vars['critical-searches'] as $row ) {
27
+ require DGWT_WCAS_DIR . 'partials/admin/stats/critical-searches-row.php';
28
+ $i ++;
29
+ }
30
+
31
+ if ( $vars['critical-searches-more'] > 0 ): ?>
32
+ <tr class="dgwt-wcas-analytics-load-more-row">
33
+ <td colspan="4">
34
+ <div>
35
+ <span class="js-dgwt-wcas-critical-searches-load-more">
36
+ <span><?php printf( _n( 'load another %d phrase', 'load another %d phrases', $vars['critical-searches-more'], 'ajax-search-for-woocommerce' ), $vars['critical-searches-more'] ); ?></span>
37
+ <span class="dashicons dashicons-arrow-down-alt2"></span>
38
+ </span>
39
+ </div>
40
+ </td>
41
+
42
+ </tr>
43
+ <?php endif; ?>
44
+ </tbody>
45
+ </table>
46
+
47
+ <div class="dgwt-wcas-analytics-module-critical-info">
48
+ <h4><?php _e( 'How to fix it?', 'ajax-search-for-woocommerce' ); ?></h4>
49
+ <div>
50
+ <p><?php _e( 'There are several ways to solve these problems. Every phrase may require a different approach. See what methods you could use:', 'ajax-search-for-woocommerce' ); ?></p>
51
+ <ol>
52
+ <li><p><?php _e( "<b>Adding the phrase to the product name</b> - just add the phrase to the product name, description, SKU, custom field, tag or anything else that's in your current search scope", 'ajax-search-for-woocommerce' ); ?></p></li>
53
+ <li><p><?php printf( __( '<b>Synonyms</b> - if the phrase is an alternate version of any other words, add it as a synonym. Learn more about <a href="%s" target="_blank">the synonyms feature.', 'ajax-search-for-woocommerce' ), $vars['links']['synonyms'] ); ?></a></p></li>
54
+ <li>
55
+ <p><?php printf( __( '<b>Varied naming convention</b> - this issue occurs when users may type a phrase in several different way – eg. you have SKU "CB-978-8-7290", but users might type it in a different way: "CB978 8 7290", "CB/978/8/7290", "CB97887290" and so on. To solve such problems, contact our <a href="%s" target="_blank">technical support</a>, because the solution may be different for each case.',
56
+ 'ajax-search-for-woocommerce' ), $vars['links']['support'] ); ?></p></li>
57
+ </ol>
58
+ </div>
59
+ </div>
60
+ </div>
61
+
62
+
63
+ <?php else: ?>
64
+ <p class="dgwt-wcas-analytics-subtitle"><?php printf( __( "Fantastic! The FiboSearch analyzer hasn't found any critical search phrases for the last %d days.", 'ajax-search-for-woocommerce' ), $vars['days'] ); ?></p>
65
+ <?php endif; ?>
66
+
67
+
68
+ </div>
69
+
70
+ <div class="dgwt-wcas-analytics-module-tiles">
71
+ <h3><?php printf( __( 'Searches stats (last %d days)', 'ajax-search-for-woocommerce' ), $vars['days'] ); ?></h3>
72
+
73
+ <div class="dgwt-wcas-analytics-tiles">
74
+ <div class="dgwt-wcas-analytics-tile">
75
+ <div class="dgwt-wcas-analytics-tile__values">
76
+ <span><?php _e( 'Total searches', 'ajax-search-for-woocommerce' ); ?></span>
77
+ <span><?php _e( 'autocomplete', 'ajax-search-for-woocommerce' ); ?></span>
78
+ <span><?php echo esc_html( $vars['autocomplete']['total-results'] ); ?></span>
79
+ </div>
80
+ <div class="dgwt-wcas-analytics-tile__icon">
81
+ <?php echo \DgoraWcas\Helpers::getIcon( 'magnifier-pirx' ) ?>
82
+ </div>
83
+ </div>
84
+
85
+ <div class="dgwt-wcas-analytics-tile">
86
+ <div class="dgwt-wcas-analytics-tile__values">
87
+ <span><?php _e( 'Total searches', 'ajax-search-for-woocommerce' ); ?></span>
88
+ <span><?php _e( 'search results page', 'ajax-search-for-woocommerce' ); ?></span>
89
+ <span><?php echo esc_html( $vars['search-page']['total-results'] ); ?></span>
90
+ </div>
91
+ <div class="dgwt-wcas-analytics-tile__icon">
92
+ <?php echo \DgoraWcas\Helpers::getIcon( 'magnifier-pirx' ) ?>
93
+ </div>
94
+ </div>
95
+
96
+ <div class="dgwt-wcas-analytics-tile">
97
+ <div class="dgwt-wcas-analytics-tile__values">
98
+ <span><?php _e( 'Searches', 'ajax-search-for-woocommerce' ); ?></span>
99
+ <span><?php _e( 'returning results', 'ajax-search-for-woocommerce' ); ?></span>
100
+ <span><?php echo esc_html( $vars['returning-results-percent'] ); ?>%</span>
101
+ </div>
102
+ <div class="dgwt-wcas-analytics-tile__icon">
103
+ <?php
104
+ if ( ! empty( $vars['returning-results-percent'] ) ) {
105
+ if ( $vars['returning-results-percent-satisfying'] ) {
106
+ echo \DgoraWcas\Helpers::getIcon( 'face-smile', 'dgwt-wcas-stats-icon-smile' );
107
+ } else {
108
+ echo \DgoraWcas\Helpers::getIcon( 'face-sad', 'dgwt-wcas-stats-icon-sad' );
109
+ }
110
+ }
111
+ ?>
112
+ </div>
113
+ </div>
114
+ </div>
115
+ </div>
116
+
117
+ <br/>
118
+
119
+ <div class="dgwt-wcas-analytics-module-tables">
120
+ <div class="dgwt-wcas-analytics-module-table">
121
+ <h3><?php _e( 'Top searches with results', 'ajax-search-for-woocommerce' ); ?></h3>
122
+ <p class="dgwt-wcas-analytics-subtitle"><?php _e( 'autocomplete', 'ajax-search-for-woocommerce' ); ?></p>
123
+
124
+ <table class="widefat fixed dgwt-wcas-analytics-table">
125
+ <thead>
126
+ <tr>
127
+ <th>#</th>
128
+ <th><?php _e( 'Phrase', 'ajax-search-for-woocommerce' ); ?></th>
129
+ <th><?php _e( 'Repetitions', 'ajax-search-for-woocommerce' ); ?></th>
130
+ </tr>
131
+
132
+ </thead>
133
+ <tbody>
134
+ <?php if ( ! empty( $vars['autocomplete']['with-results'] ) ): ?>
135
+
136
+ <?php
137
+ $i = 1;
138
+ foreach ( $vars['autocomplete']['with-results'] as $row ) {
139
+ require DGWT_WCAS_DIR . 'partials/admin/stats/ac-searches-row.php';
140
+ $i ++;
141
+ }
142
+
143
+ if ( $vars['autocomplete']['total-with-results-uniq'] > count( $vars['autocomplete']['with-results'] ) ): ?>
144
+ <tr class="dgwt-wcas-analytics-load-more-row">
145
+ <td colspan="3">
146
+ <div>
147
+ <span class="js-dgwt-wcas-autocomplete-with-results-load-more">
148
+ <span><?php _e( 'show top 100 phrases', 'ajax-search-for-woocommerce' ); ?></span>
149
+ <span class="dashicons dashicons-arrow-down-alt2"></span>
150
+ </span>
151
+ </div>
152
+ </td>
153
+ </tr>
154
+ <?php endif; ?>
155
+
156
+ <?php else: ?>
157
+ <tr>
158
+ <td colspan="3">
159
+ <?php _e( '0 searches with results', 'ajax-search-for-woocommerce' ); ?>
160
+ </td>
161
+ </tr>
162
+ <?php endif; ?>
163
+ </tbody>
164
+ </table>
165
+
166
+ </div>
167
+ <div class="dgwt-wcas-analytics-module-table">
168
+
169
+ <h3><?php _e( 'Top searches with results', 'ajax-search-for-woocommerce' ); ?></h3>
170
+ <p class="dgwt-wcas-analytics-subtitle"><?php _e( 'search results page', 'ajax-search-for-woocommerce' ); ?></p>
171
+
172
+
173
+ <table class="widefat fixed dgwt-wcas-analytics-table">
174
+ <thead>
175
+ <tr>
176
+ <th>#</th>
177
+ <th><?php _e( 'Phrase', 'ajax-search-for-woocommerce' ); ?></th>
178
+ <th><?php _e( 'Repetitions', 'ajax-search-for-woocommerce' ); ?></th>
179
+ </tr>
180
+
181
+ </thead>
182
+ <tbody>
183
+ <?php if ( ! empty( $vars['search-page']['with-results'] ) ): ?>
184
+
185
+ <?php
186
+ $i = 1;
187
+ foreach ( $vars['search-page']['with-results'] as $row ) {
188
+ require DGWT_WCAS_DIR . 'partials/admin/stats/sp-searches-row.php';
189
+ $i ++;
190
+ }
191
+
192
+ if ( $vars['search-page']['total-with-results-uniq'] > count( $vars['search-page']['with-results'] ) ): ?>
193
+ <tr class="dgwt-wcas-analytics-load-more-row">
194
+ <td colspan="3">
195
+ <div>
196
+ <span class="js-dgwt-wcas-search-page-with-results-load-more">
197
+ <span><?php _e( 'show top 100 phrases', 'ajax-search-for-woocommerce' ); ?></span>
198
+ <span class="dashicons dashicons-arrow-down-alt2"></span>
199
+ </span>
200
+ </div>
201
+ </td>
202
+ </tr>
203
+ <?php endif; ?>
204
+
205
+ <?php else: ?>
206
+ <tr>
207
+ <td colspan="3">
208
+ <?php _e( '0 searches with results', 'ajax-search-for-woocommerce' ); ?>
209
+ </td>
210
+ </tr>
211
+ <?php endif; ?>
212
+ </tbody>
213
+ </table>
214
+
215
+ </div>
216
+
217
+
218
+ </div>
partials/admin/troubleshooting.php CHANGED
@@ -19,7 +19,7 @@ if ( ! defined( 'DGWT_WCAS_FILE' ) ) {
19
  <div class="js-dgwt-wcas-troubleshooting-issues-critical"></div>
20
  <div class="js-dgwt-wcas-troubleshooting-issues-recommended"></div>
21
  <div>
22
- <?php submit_button( __( 'Check status again', 'ajax-search-for-woocommerce' ), 'primary', 'dgwt-wcas-reset-async-tests', false ); ?>
23
  </div>
24
  </div>
25
  <script id="tmpl-dgwt-wcas-troubleshooting-issue" type="text/template">
19
  <div class="js-dgwt-wcas-troubleshooting-issues-critical"></div>
20
  <div class="js-dgwt-wcas-troubleshooting-issues-recommended"></div>
21
  <div>
22
+ <?php submit_button( __( 'Recheck the status', 'ajax-search-for-woocommerce' ), 'primary', 'dgwt-wcas-reset-async-tests', false ); ?>
23
  </div>
24
  </div>
25
  <script id="tmpl-dgwt-wcas-troubleshooting-issue" type="text/template">
readme.txt CHANGED
@@ -2,9 +2,9 @@
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.9
6
  Requires PHP: 7.0
7
- Stable tag: 1.17.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -142,6 +142,23 @@ You can read more and compare Pro and Free features here: [Full comparison - Pro
142
 
143
  == Changelog ==
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145
  = 1.17.0, February 28, 2022 =
146
  * ADD: New beta feature - “Darkened background”
147
  * ADD: Integration with Kadence theme
@@ -563,7 +580,7 @@ You can read more and compare Pro and Free features here: [Full comparison - Pro
563
  * ADD: Admin notice if there is no WooCommerce installed
564
  * ADD: Admin notice for better feedback from users
565
  * FIX: Deleting the 'dgwt-wcas-open' class after hiding the suggestion
566
- * FIX: Allows to display HTML entities in suggestions title and description
567
  * FIX: Better synchronizing suggestions and resutls on a search page
568
  * CHANGE: Move menu item to WooCommerce submenu
569
 
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: 6.0
6
  Requires PHP: 7.0
7
+ Stable tag: 1.18.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
142
 
143
  == Changelog ==
144
 
145
+ = 1.18.0, May 12, 2022 =
146
+ * ADD: New feature - FiboSearch Analytics. This feature will be available to everyone in FiboSearch v1.19.0. To enable it in v1.18.0 declare constant `define( 'DGWT_WCAS_ANALYTICS_ENABLE', true );` in `wp-config.php`
147
+ * ADD: Open selected suggestion in new tab by shortcut Cmd+Enter/Ctrl+Enter
148
+ * ADD: Show score in search results on the Debug page
149
+ * ADD: Link darkened background and fuzzy search feature to the documentation
150
+
151
+ * FIX: Improving ESC key functionality: If there are suggestions, ESC hides them. If there are not suggestions and mobile icon mode is enabled, ESC disables mobile icon mode. If there are not suggestions and darkened overlay is enabled, ESC disables darkened overlay
152
+ * FIX: Allow recognizing CMD key
153
+ * FIX: Remove interaction on the TAB key
154
+ * FIX: Elementor popups - reinit search bars after loading Elementor's popup
155
+ * FIX: Cannot open the first result with Ctrl + Enter
156
+ * FIX: Prevent displaying search results, if the search icon mode is closed
157
+ * FIX: Unnecessary closing mobile icon mode and darkened overlay mode after selecting text in the search bar. It used to happen often when users selected text from the search bar to remove it and write something new but clicked outside the search bar (JS mouseup event was outside the bar)
158
+ * FIX: Better sanitization of the plugin settings
159
+
160
+ * FACTOR: Retrieving results on the search page without additional HTTP request
161
+
162
  = 1.17.0, February 28, 2022 =
163
  * ADD: New beta feature - “Darkened background”
164
  * ADD: Integration with Kadence theme
580
  * ADD: Admin notice if there is no WooCommerce installed
581
  * ADD: Admin notice for better feedback from users
582
  * FIX: Deleting the 'dgwt-wcas-open' class after hiding the suggestion
583
+ * FIX: Allows displaying HTML entities in suggestions title and description
584
  * FIX: Better synchronizing suggestions and resutls on a search page
585
  * CHANGE: Move menu item to WooCommerce submenu
586