YITH WooCommerce Catalog Mode - Version 1.2.1

Version Description

  • Updated: plugin core framework
Download this release

Release Info

Developer yithemes
Plugin Icon 128x128 YITH WooCommerce Catalog Mode
Version 1.2.1
Comparing to
See all releases

Code changes from version 1.2.0 to 1.2.1

assets/css/yith-catalog-mode.css CHANGED
@@ -1,3 +1,3 @@
1
- .widget.woocommerce.widget_shopping_cart{
2
- display: none !important;
3
  }
1
+ .widget.woocommerce.widget_shopping_cart{
2
+ display: none !important;
3
  }
class.yith-woocommerce-catalog-mode.php CHANGED
@@ -1,736 +1,762 @@
1
- <?php
2
-
3
- if ( !defined( 'ABSPATH' ) ) {
4
- exit;
5
- } // Exit if accessed directly
6
-
7
- /**
8
- * Implements features of YITH WooCommerce Catalog Mode plugin
9
- *
10
- * @class YITH_WC_Catalog_Mode
11
- * @package Yithemes
12
- * @since 1.0.0
13
- * @author Your Inspiration Themes
14
- */
15
- class YITH_WC_Catalog_Mode {
16
-
17
- /**
18
- * Panel object
19
- *
20
- * @var /Yit_Plugin_Panel object
21
- * @since 1.0.0
22
- * @see plugin-fw/lib/yit-plugin-panel.php
23
- */
24
- protected $_panel;
25
-
26
- /**
27
- * @var $_premium string Premium tab template file name
28
- */
29
- protected $_premium = 'premium.php';
30
-
31
- /**
32
- * @var string Premium version landing link
33
- */
34
- protected $_premium_landing = 'http://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode/';
35
-
36
- /**
37
- * @var string Plugin official documentation
38
- */
39
- protected $_official_documentation = 'http://yithemes.com/docs-plugins/yith-woocommerce-catalog-mode/';
40
-
41
- /**
42
- * @var string Yith WooCommerce Catalog Mode panel page
43
- */
44
- protected $_panel_page = 'yith_wc_catalog_mode_panel';
45
-
46
- /**
47
- * Constructor
48
- *
49
- * Initialize plugin and registers actions and filters to be used
50
- *
51
- * @since 1.0.0
52
- * @return mixed
53
- * @author Alberto Ruggiero
54
- */
55
- public function __construct() {
56
- if ( !function_exists( 'WC' ) ) {
57
- return;
58
- }
59
-
60
- // Load Plugin Framework
61
- add_action( 'plugins_loaded', array( $this, 'plugin_fw_loader' ), 12 );
62
-
63
- //Add action links
64
- add_filter( 'plugin_action_links_' . plugin_basename( YWCTM_DIR . '/' . basename( YWCTM_FILE ) ), array( $this, 'action_links' ) );
65
- add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 4 );
66
-
67
- // Add stylesheets and scripts files
68
- add_action( 'admin_menu', array( $this, 'add_menu_page' ), 5 );
69
- add_action( 'yith_catalog_mode_premium', array( $this, 'premium_tab' ) );
70
-
71
- if ( get_option( 'ywctm_enable_plugin' ) == 'yes' ) {
72
-
73
- if ( $this->check_user_admin_enable() ) {
74
-
75
- if ( !is_admin() || $this->is_quick_view() ) {
76
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
77
-
78
- $priority = has_action( 'wp_loaded', array( 'WC_Form_Handler', 'add_to_cart_action' ) );
79
- remove_action( 'wp_loaded', array( 'WC_Form_Handler', 'add_to_cart_action' ), $priority );
80
-
81
- }
82
-
83
- add_action( 'wp', array( $this, 'check_pages_redirect' ) );
84
- add_action( 'get_pages', array( $this, 'hide_cart_checkout_pages' ) );
85
- add_action( 'woocommerce_single_product_summary', array( $this, 'hide_add_to_cart_single' ), 10 );
86
- add_action( 'woocommerce_before_shop_loop_item_title', array( $this, 'hide_add_to_cart_loop' ), 5 );
87
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
88
-
89
- add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'avoid_add_to_cart' ), 10, 2 );
90
-
91
- }
92
-
93
- }
94
-
95
- }
96
-
97
- }
98
-
99
- /**
100
- * ADMIN FUNCTIONS
101
- */
102
-
103
- /**
104
- * Add a panel under YITH Plugins tab
105
- *
106
- * @since 1.0.0
107
- * @return void
108
- * @author Alberto Ruggiero
109
- * @use /Yit_Plugin_Panel class
110
- * @see plugin-fw/lib/yit-plugin-panel.php
111
- */
112
- public function add_menu_page() {
113
-
114
- if ( !empty( $this->_panel ) ) {
115
- return;
116
- }
117
-
118
- $admin_tabs = array();
119
-
120
- if ( defined( 'YWCTM_PREMIUM' ) ) {
121
- $admin_tabs['premium-settings'] = __( 'Settings', 'yith-woocommerce-catalog-mode' );
122
- $admin_tabs['exclusions'] = __( 'Exclusion List', 'yith-woocommerce-catalog-mode' );
123
- $admin_tabs['custom-url'] = __( 'Custom Button Url List', 'yith-woocommerce-catalog-mode' );
124
- }
125
- else {
126
- $admin_tabs['settings'] = __( 'Settings', 'yith-woocommerce-catalog-mode' );
127
- $admin_tabs['premium-landing'] = __( 'Premium Version', 'yith-woocommerce-catalog-mode' );
128
- }
129
-
130
- $args = array(
131
- 'create_menu_page' => true,
132
- 'parent_slug' => '',
133
- 'page_title' => __( 'Catalog Mode', 'yith-woocommerce-catalog-mode' ),
134
- 'menu_title' => __( 'Catalog Mode', 'yith-woocommerce-catalog-mode' ),
135
- 'capability' => 'manage_options',
136
- 'parent' => '',
137
- 'parent_page' => 'yit_plugin_panel',
138
- 'page' => $this->_panel_page,
139
- 'admin-tabs' => $admin_tabs,
140
- 'options-path' => YWCTM_DIR . '/plugin-options'
141
- );
142
-
143
- $this->_panel = new YIT_Plugin_Panel_WooCommerce( $args );
144
- }
145
-
146
- /**
147
- * FRONTEND FUNCTIONS
148
- */
149
-
150
- /**
151
- * Check if catalog mode is enabled for administrator
152
- *
153
- * @since 1.0.2
154
- * @return bool
155
- * @author Alberto Ruggiero
156
- */
157
- public function check_user_admin_enable() {
158
-
159
- return !( current_user_can( 'administrator' ) && is_user_logged_in() && get_option( 'ywctm_admin_view' ) == 'no' );
160
-
161
- }
162
-
163
- /**
164
- * Checks if "Cart & Checkout pages" needs to be hidden
165
- *
166
- * @since 1.0.2
167
- * @return bool
168
- * @author Alberto Ruggiero
169
- */
170
- public function check_hide_cart_checkout_pages() {
171
-
172
- return get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() && get_option( 'ywctm_hide_cart_header' ) == 'yes';
173
-
174
- }
175
-
176
- /**
177
- * Hides "Add to cart" button from single product page
178
- *
179
- * @since 1.0.0
180
- *
181
- * @param $action
182
- *
183
- * @return void
184
- * @author Alberto Ruggiero
185
- */
186
- public function hide_add_to_cart_single( $action = '' ) {
187
-
188
- if ( $action == '' ) {
189
- $action = 'woocommerce_single_product_summary';
190
- }
191
-
192
- $priority = has_action( $action, 'woocommerce_template_single_add_to_cart' );
193
-
194
- if ( $this->check_add_to_cart_single( $priority ) ) {
195
-
196
- add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'hide_add_to_cart_quick_view' ), 10 );
197
-
198
- }
199
-
200
- }
201
-
202
- /**
203
- * Hide add to cart button in quick view
204
- *
205
- * @since 1.0.7
206
- * @return mixed
207
- * @author Francesco Licandro
208
- */
209
- public function hide_add_to_cart_quick_view() {
210
-
211
- $hide_variations = get_option( 'ywctm_hide_variations' );
212
- ob_start();
213
- ?>
214
- <style>
215
- form.cart button.single_add_to_cart_button <?php if ( $hide_variations == 'yes' ): ?>,
216
- .single_variation_wrap .variations_button <?php endif; ?> {
217
- display: none !important;
218
- }
219
-
220
- <?php if( ! class_exists( 'YITH_YWRAQ_Frontend' ) ) : ?>
221
- form.cart .quantity {
222
- display: none !important;
223
- }
224
-
225
- <?php endif; ?>
226
- </style>
227
- <?php
228
- echo ob_get_clean();
229
-
230
- }
231
-
232
- /**
233
- * Check if price is hidden to hide add to cart button
234
- *
235
- * @since 1.0.4
236
- *
237
- * @param $post_id
238
- *
239
- * @return bool
240
- * @author Alberto Ruggiero
241
- */
242
- public function check_price_hidden( $post_id ) {
243
-
244
- $hide = false;
245
-
246
- if ( get_option( 'ywctm_hide_price' ) == 'yes' ) {
247
-
248
- $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
249
- $user_logged = is_user_logged_in();
250
-
251
- if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
252
-
253
- $exclude_catalog = get_post_meta( $post_id, '_ywctm_exclude_hide_price', true );
254
- $enable_exclusion = get_option( 'ywctm_exclude_hide_price' );
255
-
256
- if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
257
-
258
- $hide = true;
259
-
260
- }
261
- else {
262
-
263
- if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
264
-
265
- $hide = true;
266
-
267
- }
268
-
269
- }
270
-
271
- $reverse_criteria = get_option( 'ywctm_exclude_hide_price_reverse' );
272
-
273
- if ( $reverse_criteria == 'yes' ) {
274
-
275
- $hide = !$hide;
276
-
277
- }
278
-
279
- }
280
-
281
- }
282
-
283
- return $hide;
284
-
285
- }
286
-
287
- /**
288
- * Checks if "Add to cart" needs to be hidden
289
- *
290
- * @since 1.0.2
291
- *
292
- * @param $priority
293
- * @param $product_id
294
- *
295
- * @return bool
296
- * @author Alberto Ruggiero
297
- */
298
- public function check_add_to_cart_single( $priority = true, $product_id = false ) {
299
-
300
- $hide = false;
301
-
302
- if ( get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() ) {
303
-
304
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
305
-
306
- $hide = true;
307
-
308
- }
309
- else {
310
-
311
- global $post;
312
-
313
- if ( !$product_id && !isset( $post ) ) {
314
- return false;
315
- }
316
-
317
- $post_id = ( $product_id ) ? $product_id : $post->ID;
318
-
319
- if ( get_option( 'ywctm_hide_add_to_cart_single' ) == 'yes' ) {
320
-
321
- $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
322
- $user_logged = is_user_logged_in();
323
-
324
- if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
325
-
326
- $exclude_catalog = get_post_meta( $post_id, '_ywctm_exclude_catalog_mode', true );
327
- $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
328
-
329
- if ( $priority ) {
330
-
331
- if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
332
-
333
- $hide = true;
334
-
335
- }
336
- else {
337
-
338
- if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
339
-
340
- $hide = true;
341
-
342
- }
343
-
344
- }
345
-
346
- }
347
-
348
- $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
349
-
350
- if ( $reverse_criteria == 'yes' ) {
351
-
352
- $hide = !$hide;
353
-
354
- }
355
-
356
- }
357
-
358
- }
359
-
360
- if ( $this->check_price_hidden( $post_id ) ) {
361
-
362
- $hide = true;
363
-
364
- }
365
-
366
- }
367
-
368
- }
369
-
370
- return $hide;
371
- }
372
-
373
- /**
374
- * Checks if "Add to cart" needs to be avoided
375
- *
376
- * @since 1.0.5
377
- *
378
- * @param $passed
379
- * @param $product_id
380
- *
381
- * @return bool
382
- * @author Alberto Ruggiero
383
- */
384
- public function avoid_add_to_cart( $passed, $product_id ) {
385
-
386
- if ( get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() ) {
387
-
388
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
389
-
390
- $passed = false;
391
-
392
- }
393
- else {
394
-
395
- if ( get_option( 'ywctm_hide_add_to_cart_single' ) == 'yes' ) {
396
-
397
- $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
398
- $user_logged = is_user_logged_in();
399
-
400
- if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
401
-
402
- $exclude_catalog = get_post_meta( $product_id, '_ywctm_exclude_catalog_mode', true );
403
- $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
404
-
405
- if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
406
-
407
- $passed = false;
408
-
409
- }
410
- else {
411
-
412
- if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
413
-
414
- $passed = false;
415
-
416
- }
417
-
418
- }
419
-
420
- $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
421
-
422
- if ( $reverse_criteria == 'yes' ) {
423
-
424
- $passed = !$passed;
425
-
426
- }
427
-
428
- }
429
-
430
- }
431
-
432
- if ( $this->check_price_hidden( $product_id ) ) {
433
-
434
- $passed = false;
435
-
436
- }
437
-
438
- }
439
-
440
- }
441
-
442
- return $passed;
443
- }
444
-
445
- /**
446
- * Checks if "Add to cart" needs to be hidden from loop page
447
- *
448
- * @since 1.0.6
449
- * @return bool
450
- * @author Alberto Ruggiero
451
- */
452
- public function check_hide_add_cart_loop() {
453
-
454
- $remove = false;
455
-
456
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
457
-
458
- $remove = true;
459
-
460
- }
461
- else {
462
-
463
- global $post;
464
-
465
- if ( get_option( 'ywctm_hide_add_to_cart_loop' ) == 'yes' ) {
466
-
467
- $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
468
- $user_logged = is_user_logged_in();
469
-
470
- if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
471
-
472
- $exclude_catalog = get_post_meta( $post->ID, '_ywctm_exclude_catalog_mode', true );
473
- $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
474
-
475
- if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
476
-
477
- $remove = true;
478
-
479
- }
480
- else {
481
-
482
- if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
483
-
484
- $remove = true;
485
-
486
- }
487
- else {
488
-
489
- $remove = false;
490
-
491
- }
492
-
493
- }
494
-
495
- $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
496
-
497
- if ( $reverse_criteria == 'yes' ) {
498
-
499
- $remove = !$remove;
500
-
501
- }
502
-
503
- }
504
-
505
- }
506
-
507
- if ( $this->check_price_hidden( $post->ID ) ) {
508
-
509
- $remove = true;
510
-
511
- }
512
-
513
- $product = wc_get_product( $post );
514
-
515
- if ( $product->product_type == 'variable' ) {
516
-
517
- $remove = false;
518
-
519
- }
520
-
521
- }
522
-
523
- return $remove;
524
- }
525
-
526
- /**
527
- * Hides "Add to cart" button, if not excluded, from loop page
528
- *
529
- * @since 1.0.0
530
- * @return void
531
- * @author Alberto Ruggiero
532
- */
533
- public function hide_add_to_cart_loop() {
534
-
535
- if ( $this->check_hide_add_cart_loop() ) {
536
-
537
- remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
538
- add_filter( 'woocommerce_loop_add_to_cart_link', '__return_empty_string', 10 );
539
-
540
- }
541
- else {
542
-
543
- add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
544
- remove_filter( 'woocommerce_loop_add_to_cart_link', '__return_empty_string', 10 );
545
-
546
- }
547
-
548
- }
549
-
550
- /**
551
- * Enqueue css file
552
- *
553
- * @since 1.0.0
554
- * @return void
555
- * @author Alberto Ruggiero
556
- */
557
- public function enqueue_styles() {
558
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
559
- wp_enqueue_style( 'ywctm-style', YWCTM_ASSETS_URL . '/css/yith-catalog-mode.css' );
560
- }
561
-
562
- }
563
-
564
- /**
565
- * Avoid Cart and Checkout Pages to be visited
566
- *
567
- * @since 1.0.4
568
- * @return void
569
- * @author Alberto Ruggiero
570
- */
571
- public function check_pages_redirect() {
572
-
573
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
574
-
575
- $cart = is_page( wc_get_page_id( 'cart' ) );
576
- $checkout = is_page( wc_get_page_id( 'checkout' ) );
577
-
578
- wp_reset_query();
579
-
580
- if ( $cart || $checkout ) {
581
-
582
- wp_redirect( home_url() );
583
- exit;
584
-
585
- }
586
-
587
- }
588
-
589
- }
590
-
591
- /**
592
- * Removes Cart and checkout pages from menu
593
- *
594
- * @since 1.0.4
595
- *
596
- * @param $pages
597
- *
598
- * @return mixed
599
- * @author Alberto Ruggiero
600
- */
601
- public function hide_cart_checkout_pages( $pages ) {
602
-
603
- if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
604
-
605
- $excluded_pages = array(
606
- wc_get_page_id( 'cart' ),
607
- wc_get_page_id( 'checkout' )
608
- );
609
-
610
- for ( $i = 0; $i < count( $pages ); $i ++ ) {
611
- $page = &$pages[$i];
612
-
613
- if ( in_array( $page->ID, $excluded_pages ) ) {
614
-
615
- unset( $pages[$i] );
616
-
617
- }
618
-
619
- }
620
-
621
- }
622
-
623
- return $pages;
624
-
625
- }
626
-
627
- /**
628
- * Say if the code is execute by quick view
629
- *
630
- * @since 1.0.7
631
- * @return bool
632
- * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
633
- */
634
- public function is_quick_view() {
635
- return defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['action'] ) && ( $_REQUEST['action'] == 'yith_load_product_quick_view' || $_REQUEST['action'] == 'yit_load_product_quick_view' );
636
- }
637
-
638
- /**
639
- * YITH FRAMEWORK
640
- */
641
-
642
- /**
643
- * Load plugin framework
644
- *
645
- * @since 1.0.0
646
- * @return void
647
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
648
- */
649
- public function plugin_fw_loader() {
650
- if ( ! defined( 'YIT_CORE_PLUGIN' ) ) {
651
- global $plugin_fw_data;
652
- if( ! empty( $plugin_fw_data ) ){
653
- $plugin_fw_file = array_shift( $plugin_fw_data );
654
- require_once( $plugin_fw_file );
655
- }
656
- }
657
- }
658
-
659
- /**
660
- * Premium Tab Template
661
- *
662
- * Load the premium tab template on admin page
663
- *
664
- * @since 1.0.0
665
- * @return void
666
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
667
- */
668
- public function premium_tab() {
669
- $premium_tab_template = YWCTM_TEMPLATE_PATH . '/admin/' . $this->_premium;
670
- if ( file_exists( $premium_tab_template ) ) {
671
- include_once( $premium_tab_template );
672
- }
673
- }
674
-
675
- /**
676
- * Get the premium landing uri
677
- *
678
- * @since 1.0.0
679
- * @return string The premium landing link
680
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
681
- */
682
- public function get_premium_landing_uri() {
683
- return defined( 'YITH_REFER_ID' ) ? $this->_premium_landing . '?refer_id=' . YITH_REFER_ID : $this->_premium_landing;
684
- }
685
-
686
- /**
687
- * Action Links
688
- *
689
- * add the action links to plugin admin page
690
- * @since 1.0.0
691
- *
692
- * @param $links | links plugin array
693
- *
694
- * @return mixed
695
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
696
- * @use plugin_action_links_{$plugin_file_name}
697
- */
698
- public function action_links( $links ) {
699
-
700
- $links[] = '<a href="' . admin_url( "admin.php?page={$this->_panel_page}" ) . '">' . __( 'Settings', 'yith-woocommerce-catalog-mode' ) . '</a>';
701
-
702
- if ( defined( 'YWCTM_FREE_INIT' ) ) {
703
- $links[] = '<a href="' . $this->get_premium_landing_uri() . '" target="_blank">' . __( 'Premium Version', 'yith-woocommerce-catalog-mode' ) . '</a>';
704
- }
705
-
706
- return $links;
707
- }
708
-
709
- /**
710
- * Plugin row meta
711
- *
712
- * add the action links to plugin admin page
713
- *
714
- * @since 1.0.0
715
- *
716
- * @param $plugin_meta
717
- * @param $plugin_file
718
- * @param $plugin_data
719
- * @param $status
720
- *
721
- * @return Array
722
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
723
- * @use plugin_row_meta
724
- */
725
- public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
726
- if ( ( defined( 'YWCTM_INIT' ) && ( YWCTM_INIT == $plugin_file ) ) ||
727
- ( defined( 'YWCTM_FREE_INIT' ) && ( YWCTM_FREE_INIT == $plugin_file ) )
728
- ) {
729
-
730
- $plugin_meta[] = '<a href="' . $this->_official_documentation . '" target="_blank">' . __( 'Plugin Documentation', 'yith-woocommerce-catalog-mode' ) . '</a>';
731
- }
732
-
733
- return $plugin_meta;
734
- }
735
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
736
  }
1
+ <?php
2
+
3
+ if ( !defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ } // Exit if accessed directly
6
+
7
+ /**
8
+ * Implements features of YITH WooCommerce Catalog Mode plugin
9
+ *
10
+ * @class YITH_WC_Catalog_Mode
11
+ * @package Yithemes
12
+ * @since 1.0.0
13
+ * @author Your Inspiration Themes
14
+ */
15
+ class YITH_WC_Catalog_Mode {
16
+
17
+ /**
18
+ * Panel object
19
+ *
20
+ * @var /Yit_Plugin_Panel object
21
+ * @since 1.0.0
22
+ * @see plugin-fw/lib/yit-plugin-panel.php
23
+ */
24
+ protected $_panel;
25
+
26
+ /**
27
+ * @var $_premium string Premium tab template file name
28
+ */
29
+ protected $_premium = 'premium.php';
30
+
31
+ /**
32
+ * @var string Premium version landing link
33
+ */
34
+ protected $_premium_landing = 'http://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode/';
35
+
36
+ /**
37
+ * @var string Plugin official documentation
38
+ */
39
+ protected $_official_documentation = 'http://yithemes.com/docs-plugins/yith-woocommerce-catalog-mode/';
40
+
41
+ /**
42
+ * @var string Yith WooCommerce Catalog Mode panel page
43
+ */
44
+ protected $_panel_page = 'yith_wc_catalog_mode_panel';
45
+
46
+ /**
47
+ * Constructor
48
+ *
49
+ * Initialize plugin and registers actions and filters to be used
50
+ *
51
+ * @since 1.0.0
52
+ * @return mixed
53
+ * @author Alberto Ruggiero
54
+ */
55
+ public function __construct() {
56
+ if ( !function_exists( 'WC' ) ) {
57
+ return;
58
+ }
59
+
60
+ // Load Plugin Framework
61
+ add_action( 'plugins_loaded', array( $this, 'plugin_fw_loader' ), 12 );
62
+
63
+ //Add action links
64
+ add_filter( 'plugin_action_links_' . plugin_basename( YWCTM_DIR . '/' . basename( YWCTM_FILE ) ), array( $this, 'action_links' ) );
65
+ add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 4 );
66
+
67
+ // Add stylesheets and scripts files
68
+ add_action( 'admin_menu', array( $this, 'add_menu_page' ), 5 );
69
+ add_action( 'yith_catalog_mode_premium', array( $this, 'premium_tab' ) );
70
+
71
+ if ( get_option( 'ywctm_enable_plugin' ) == 'yes' ) {
72
+
73
+ if ( $this->check_user_admin_enable() ) {
74
+
75
+ if ( !is_admin() || $this->is_quick_view() ) {
76
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
77
+
78
+ $priority = has_action( 'wp_loaded', array( 'WC_Form_Handler', 'add_to_cart_action' ) );
79
+ remove_action( 'wp_loaded', array( 'WC_Form_Handler', 'add_to_cart_action' ), $priority );
80
+
81
+ }
82
+
83
+ add_action( 'wp', array( $this, 'check_pages_redirect' ) );
84
+ add_action( 'get_pages', array( $this, 'hide_cart_checkout_pages' ) );
85
+ add_action( 'woocommerce_single_product_summary', array( $this, 'hide_add_to_cart_single' ), 10 );
86
+ add_action( 'woocommerce_before_shop_loop_item_title', array( $this, 'hide_add_to_cart_loop' ), 5 );
87
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
88
+
89
+ add_filter( 'woocommerce_add_to_cart_validation', array( $this, 'avoid_add_to_cart' ), 10, 2 );
90
+
91
+ }
92
+
93
+ }
94
+
95
+ }
96
+
97
+ }
98
+
99
+ /**
100
+ * ADMIN FUNCTIONS
101
+ */
102
+
103
+ /**
104
+ * Add a panel under YITH Plugins tab
105
+ *
106
+ * @since 1.0.0
107
+ * @return void
108
+ * @author Alberto Ruggiero
109
+ * @use /Yit_Plugin_Panel class
110
+ * @see plugin-fw/lib/yit-plugin-panel.php
111
+ */
112
+ public function add_menu_page() {
113
+
114
+ if ( !empty( $this->_panel ) ) {
115
+ return;
116
+ }
117
+
118
+ $admin_tabs = array();
119
+
120
+ if ( defined( 'YWCTM_PREMIUM' ) ) {
121
+ $admin_tabs['premium-settings'] = __( 'Settings', 'yith-woocommerce-catalog-mode' );
122
+ $admin_tabs['exclusions'] = __( 'Exclusion List', 'yith-woocommerce-catalog-mode' );
123
+ $admin_tabs['custom-url'] = __( 'Custom Button Url List', 'yith-woocommerce-catalog-mode' );
124
+ }
125
+ else {
126
+ $admin_tabs['settings'] = __( 'Settings', 'yith-woocommerce-catalog-mode' );
127
+ $admin_tabs['premium-landing'] = __( 'Premium Version', 'yith-woocommerce-catalog-mode' );
128
+ }
129
+
130
+ $args = array(
131
+ 'create_menu_page' => true,
132
+ 'parent_slug' => '',
133
+ 'page_title' => __( 'Catalog Mode', 'yith-woocommerce-catalog-mode' ),
134
+ 'menu_title' => __( 'Catalog Mode', 'yith-woocommerce-catalog-mode' ),
135
+ 'capability' => 'manage_options',
136
+ 'parent' => '',
137
+ 'parent_page' => 'yit_plugin_panel',
138
+ 'page' => $this->_panel_page,
139
+ 'admin-tabs' => $admin_tabs,
140
+ 'options-path' => YWCTM_DIR . '/plugin-options'
141
+ );
142
+
143
+ $this->_panel = new YIT_Plugin_Panel_WooCommerce( $args );
144
+ }
145
+
146
+ /**
147
+ * FRONTEND FUNCTIONS
148
+ */
149
+
150
+ /**
151
+ * Check if catalog mode is enabled for administrator
152
+ *
153
+ * @since 1.0.2
154
+ * @return bool
155
+ * @author Alberto Ruggiero
156
+ */
157
+ public function check_user_admin_enable() {
158
+
159
+ return !( current_user_can( 'administrator' ) && is_user_logged_in() && get_option( 'ywctm_admin_view' ) == 'no' );
160
+
161
+ }
162
+
163
+ /**
164
+ * Checks if "Cart & Checkout pages" needs to be hidden
165
+ *
166
+ * @since 1.0.2
167
+ * @return bool
168
+ * @author Alberto Ruggiero
169
+ */
170
+ public function check_hide_cart_checkout_pages() {
171
+
172
+ return get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() && get_option( 'ywctm_hide_cart_header' ) == 'yes';
173
+
174
+ }
175
+
176
+ /**
177
+ * Hides "Add to cart" button from single product page
178
+ *
179
+ * @since 1.0.0
180
+ *
181
+ * @param $action
182
+ *
183
+ * @return void
184
+ * @author Alberto Ruggiero
185
+ */
186
+ public function hide_add_to_cart_single( $action = '' ) {
187
+
188
+ if ( $action == '' ) {
189
+ $action = 'woocommerce_single_product_summary';
190
+ }
191
+
192
+ $priority = has_action( $action, 'woocommerce_template_single_add_to_cart' );
193
+
194
+ if ( $this->check_add_to_cart_single( $priority ) ) {
195
+
196
+ add_action( 'woocommerce_before_add_to_cart_button', array( $this, 'hide_add_to_cart_quick_view' ), 10 );
197
+
198
+ }
199
+
200
+ }
201
+
202
+ /**
203
+ * Hide add to cart button in quick view
204
+ *
205
+ * @since 1.0.7
206
+ * @return mixed
207
+ * @author Francesco Licandro
208
+ */
209
+ public function hide_add_to_cart_quick_view() {
210
+
211
+ $hide_variations = get_option( 'ywctm_hide_variations' );
212
+ ob_start();
213
+
214
+ $args = array(
215
+ 'form.cart button.single_add_to_cart_button'
216
+ );
217
+
218
+ if ( !class_exists( 'YITH_YWRAQ_Frontend' ) ) {
219
+
220
+ $args[] = 'form.cart .quantity';
221
+
222
+ }
223
+
224
+ if ( $hide_variations == 'yes' ) {
225
+
226
+ $args[] = 'table.variations';
227
+ $args[] = 'form.variations_form';
228
+ $args[] = '.single_variation_wrap .variations_button';
229
+
230
+ }
231
+
232
+ $classes = implode( ', ', apply_filters( 'ywctm_catalog_classes', $args ) );
233
+
234
+ ?>
235
+ <style>
236
+
237
+ <?php echo $classes; ?>
238
+ {
239
+ display: none !important
240
+ }
241
+
242
+ </style>
243
+ <?php
244
+ echo ob_get_clean();
245
+
246
+ }
247
+
248
+ /**
249
+ * Check if price is hidden to hide add to cart button
250
+ *
251
+ * @since 1.0.4
252
+ *
253
+ * @param $post_id
254
+ *
255
+ * @return bool
256
+ * @author Alberto Ruggiero
257
+ */
258
+ public function check_price_hidden( $post_id ) {
259
+
260
+ $hide = false;
261
+
262
+ if ( get_option( 'ywctm_hide_price' ) == 'yes' ) {
263
+
264
+ $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
265
+ $user_logged = is_user_logged_in();
266
+
267
+ if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
268
+
269
+ $exclude_catalog = get_post_meta( $post_id, '_ywctm_exclude_hide_price', true );
270
+ $enable_exclusion = get_option( 'ywctm_exclude_hide_price' );
271
+
272
+ if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
273
+
274
+ $hide = true;
275
+
276
+ }
277
+ else {
278
+
279
+ if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
280
+
281
+ $hide = true;
282
+
283
+ }
284
+
285
+ }
286
+
287
+ $reverse_criteria = get_option( 'ywctm_exclude_hide_price_reverse' );
288
+
289
+ if ( $reverse_criteria == 'yes' ) {
290
+
291
+ $hide = !$hide;
292
+
293
+ }
294
+
295
+ }
296
+
297
+ }
298
+
299
+ return $hide;
300
+
301
+ }
302
+
303
+ /**
304
+ * Checks if "Add to cart" needs to be hidden
305
+ *
306
+ * @since 1.0.2
307
+ *
308
+ * @param $priority
309
+ * @param $product_id
310
+ *
311
+ * @return bool
312
+ * @author Alberto Ruggiero
313
+ */
314
+ public function check_add_to_cart_single( $priority = true, $product_id = false ) {
315
+
316
+ $hide = false;
317
+
318
+ if ( get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() ) {
319
+
320
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
321
+
322
+ $hide = true;
323
+
324
+ }
325
+ else {
326
+
327
+ global $post;
328
+
329
+ if ( !$product_id && !isset( $post ) ) {
330
+ return false;
331
+ }
332
+
333
+ $post_id = ( $product_id ) ? $product_id : $post->ID;
334
+
335
+ if ( get_option( 'ywctm_hide_add_to_cart_single' ) == 'yes' ) {
336
+
337
+ $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
338
+ $user_logged = is_user_logged_in();
339
+
340
+ if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
341
+
342
+ $exclude_catalog = get_post_meta( $post_id, '_ywctm_exclude_catalog_mode', true );
343
+ $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
344
+
345
+ if ( $priority ) {
346
+
347
+ if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
348
+
349
+ $hide = true;
350
+
351
+ }
352
+ else {
353
+
354
+ if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
355
+
356
+ $hide = true;
357
+
358
+ }
359
+
360
+ }
361
+
362
+ }
363
+
364
+ $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
365
+
366
+ if ( $reverse_criteria == 'yes' ) {
367
+
368
+ $hide = !$hide;
369
+
370
+ }
371
+
372
+ }
373
+
374
+ }
375
+
376
+ if ( $this->check_price_hidden( $post_id ) ) {
377
+
378
+ $hide = true;
379
+
380
+ }
381
+
382
+ }
383
+
384
+ }
385
+
386
+ return $hide;
387
+ }
388
+
389
+ /**
390
+ * Checks if "Add to cart" needs to be avoided
391
+ *
392
+ * @since 1.0.5
393
+ *
394
+ * @param $passed
395
+ * @param $product_id
396
+ *
397
+ * @return bool
398
+ * @author Alberto Ruggiero
399
+ */
400
+ public function avoid_add_to_cart( $passed, $product_id ) {
401
+
402
+ if ( get_option( 'ywctm_enable_plugin' ) == 'yes' && $this->check_user_admin_enable() ) {
403
+
404
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
405
+
406
+ $passed = false;
407
+
408
+ }
409
+ else {
410
+
411
+ if ( get_option( 'ywctm_hide_add_to_cart_single' ) == 'yes' ) {
412
+
413
+ $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
414
+ $user_logged = is_user_logged_in();
415
+
416
+ if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
417
+
418
+ $exclude_catalog = get_post_meta( $product_id, '_ywctm_exclude_catalog_mode', true );
419
+ $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
420
+
421
+ if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
422
+
423
+ $passed = false;
424
+
425
+ }
426
+ else {
427
+
428
+ if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
429
+
430
+ $passed = false;
431
+
432
+ }
433
+
434
+ }
435
+
436
+ $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
437
+
438
+ if ( $reverse_criteria == 'yes' ) {
439
+
440
+ $passed = !$passed;
441
+
442
+ }
443
+
444
+ }
445
+
446
+ }
447
+
448
+ if ( $this->check_price_hidden( $product_id ) ) {
449
+
450
+ $passed = false;
451
+
452
+ }
453
+
454
+ }
455
+
456
+ }
457
+
458
+ return $passed;
459
+ }
460
+
461
+ /**
462
+ * Checks if "Add to cart" needs to be hidden from loop page
463
+ *
464
+ * @since 1.0.6
465
+ * @return bool
466
+ * @author Alberto Ruggiero
467
+ */
468
+ public function check_hide_add_cart_loop() {
469
+
470
+ $remove = false;
471
+
472
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
473
+
474
+ $remove = true;
475
+
476
+ }
477
+ else {
478
+
479
+ global $post;
480
+
481
+ if ( get_option( 'ywctm_hide_add_to_cart_loop' ) == 'yes' ) {
482
+
483
+ $ywctm_hide_price_users = ( get_option( 'ywctm_hide_price_users' ) != 'unregistered' ) ? true : false;
484
+ $user_logged = is_user_logged_in();
485
+
486
+ if ( !( !$ywctm_hide_price_users && $user_logged ) ) {
487
+
488
+ $exclude_catalog = get_post_meta( $post->ID, '_ywctm_exclude_catalog_mode', true );
489
+ $enable_exclusion = get_option( 'ywctm_exclude_hide_add_to_cart' );
490
+
491
+ if ( $enable_exclusion == '' || $enable_exclusion == 'no' ) {
492
+
493
+ $remove = true;
494
+
495
+ }
496
+ else {
497
+
498
+ if ( $exclude_catalog == '' || $exclude_catalog == 'no' ) {
499
+
500
+ $remove = true;
501
+
502
+ }
503
+ else {
504
+
505
+ $remove = false;
506
+
507
+ }
508
+
509
+ }
510
+
511
+ $product = wc_get_product( $post );
512
+
513
+ if ( $product->product_type == 'variable' ) {
514
+
515
+ if ( get_option( 'ywctm_hide_variations' ) == 'yes' ) {
516
+
517
+ $remove = true;
518
+
519
+ }
520
+ else {
521
+
522
+ $remove = false;
523
+
524
+ }
525
+
526
+ }
527
+
528
+ $reverse_criteria = get_option( 'ywctm_exclude_hide_add_to_cart_reverse' );
529
+
530
+ if ( $reverse_criteria == 'yes' ) {
531
+
532
+ $remove = !$remove;
533
+
534
+ }
535
+
536
+ }
537
+
538
+ }
539
+
540
+ if ( $this->check_price_hidden( $post->ID ) ) {
541
+
542
+ $remove = true;
543
+
544
+ }
545
+
546
+
547
+ }
548
+
549
+ return $remove;
550
+ }
551
+
552
+ /**
553
+ * Hides "Add to cart" button, if not excluded, from loop page
554
+ *
555
+ * @since 1.0.0
556
+ * @return void
557
+ * @author Alberto Ruggiero
558
+ */
559
+ public function hide_add_to_cart_loop() {
560
+
561
+ if ( $this->check_hide_add_cart_loop() ) {
562
+
563
+ remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
564
+ add_filter( 'woocommerce_loop_add_to_cart_link', '__return_empty_string', 10 );
565
+
566
+ }
567
+ else {
568
+
569
+ add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
570
+ remove_filter( 'woocommerce_loop_add_to_cart_link', '__return_empty_string', 10 );
571
+
572
+ }
573
+
574
+ }
575
+
576
+ /**
577
+ * Enqueue css file
578
+ *
579
+ * @since 1.0.0
580
+ * @return void
581
+ * @author Alberto Ruggiero
582
+ */
583
+ public function enqueue_styles() {
584
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
585
+ wp_enqueue_style( 'ywctm-style', YWCTM_ASSETS_URL . '/css/yith-catalog-mode.css' );
586
+ }
587
+
588
+ }
589
+
590
+ /**
591
+ * Avoid Cart and Checkout Pages to be visited
592
+ *
593
+ * @since 1.0.4
594
+ * @return void
595
+ * @author Alberto Ruggiero
596
+ */
597
+ public function check_pages_redirect() {
598
+
599
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
600
+
601
+ $cart = is_page( wc_get_page_id( 'cart' ) );
602
+ $checkout = is_page( wc_get_page_id( 'checkout' ) );
603
+
604
+ wp_reset_query();
605
+
606
+ if ( $cart || $checkout ) {
607
+
608
+ wp_redirect( home_url() );
609
+ exit;
610
+
611
+ }
612
+
613
+ }
614
+
615
+ }
616
+
617
+ /**
618
+ * Removes Cart and checkout pages from menu
619
+ *
620
+ * @since 1.0.4
621
+ *
622
+ * @param $pages
623
+ *
624
+ * @return mixed
625
+ * @author Alberto Ruggiero
626
+ */
627
+ public function hide_cart_checkout_pages( $pages ) {
628
+
629
+ if ( get_option( 'ywctm_hide_cart_header' ) == 'yes' ) {
630
+
631
+ $excluded_pages = array(
632
+ wc_get_page_id( 'cart' ),
633
+ wc_get_page_id( 'checkout' )
634
+ );
635
+
636
+ for ( $i = 0; $i < count( $pages ); $i ++ ) {
637
+ $page = &$pages[$i];
638
+
639
+ if ( in_array( $page->ID, $excluded_pages ) ) {
640
+
641
+ unset( $pages[$i] );
642
+
643
+ }
644
+
645
+ }
646
+
647
+ }
648
+
649
+ return $pages;
650
+
651
+ }
652
+
653
+ /**
654
+ * Say if the code is execute by quick view
655
+ *
656
+ * @since 1.0.7
657
+ * @return bool
658
+ * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
659
+ */
660
+ public function is_quick_view() {
661
+ return defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_REQUEST['action'] ) && ( $_REQUEST['action'] == 'yith_load_product_quick_view' || $_REQUEST['action'] == 'yit_load_product_quick_view' );
662
+ }
663
+
664
+ /**
665
+ * YITH FRAMEWORK
666
+ */
667
+
668
+ /**
669
+ * Load plugin framework
670
+ *
671
+ * @since 1.0.0
672
+ * @return void
673
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
674
+ */
675
+ public function plugin_fw_loader() {
676
+ if ( !defined( 'YIT_CORE_PLUGIN' ) ) {
677
+ global $plugin_fw_data;
678
+ if ( !empty( $plugin_fw_data ) ) {
679
+ $plugin_fw_file = array_shift( $plugin_fw_data );
680
+ require_once( $plugin_fw_file );
681
+ }
682
+ }
683
+ }
684
+
685
+ /**
686
+ * Premium Tab Template
687
+ *
688
+ * Load the premium tab template on admin page
689
+ *
690
+ * @since 1.0.0
691
+ * @return void
692
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
693
+ */
694
+ public function premium_tab() {
695
+ $premium_tab_template = YWCTM_TEMPLATE_PATH . '/admin/' . $this->_premium;
696
+ if ( file_exists( $premium_tab_template ) ) {
697
+ include_once( $premium_tab_template );
698
+ }
699
+ }
700
+
701
+ /**
702
+ * Get the premium landing uri
703
+ *
704
+ * @since 1.0.0
705
+ * @return string The premium landing link
706
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
707
+ */
708
+ public function get_premium_landing_uri() {
709
+ return defined( 'YITH_REFER_ID' ) ? $this->_premium_landing . '?refer_id=' . YITH_REFER_ID : $this->_premium_landing;
710
+ }
711
+
712
+ /**
713
+ * Action Links
714
+ *
715
+ * add the action links to plugin admin page
716
+ * @since 1.0.0
717
+ *
718
+ * @param $links | links plugin array
719
+ *
720
+ * @return mixed
721
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
722
+ * @use plugin_action_links_{$plugin_file_name}
723
+ */
724
+ public function action_links( $links ) {
725
+
726
+ $links[] = '<a href="' . admin_url( "admin.php?page={$this->_panel_page}" ) . '">' . __( 'Settings', 'yith-woocommerce-catalog-mode' ) . '</a>';
727
+
728
+ if ( defined( 'YWCTM_FREE_INIT' ) ) {
729
+ $links[] = '<a href="' . $this->get_premium_landing_uri() . '" target="_blank">' . __( 'Premium Version', 'yith-woocommerce-catalog-mode' ) . '</a>';
730
+ }
731
+
732
+ return $links;
733
+ }
734
+
735
+ /**
736
+ * Plugin row meta
737
+ *
738
+ * add the action links to plugin admin page
739
+ *
740
+ * @since 1.0.0
741
+ *
742
+ * @param $plugin_meta
743
+ * @param $plugin_file
744
+ * @param $plugin_data
745
+ * @param $status
746
+ *
747
+ * @return Array
748
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
749
+ * @use plugin_row_meta
750
+ */
751
+ public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data, $status ) {
752
+ if ( ( defined( 'YWCTM_INIT' ) && ( YWCTM_INIT == $plugin_file ) ) ||
753
+ ( defined( 'YWCTM_FREE_INIT' ) && ( YWCTM_FREE_INIT == $plugin_file ) )
754
+ ) {
755
+
756
+ $plugin_meta[] = '<a href="' . $this->_official_documentation . '" target="_blank">' . __( 'Plugin Documentation', 'yith-woocommerce-catalog-mode' ) . '</a>';
757
+ }
758
+
759
+ return $plugin_meta;
760
+ }
761
+
762
  }
init.php CHANGED
@@ -1,129 +1,129 @@
1
- <?php
2
- /*
3
- Plugin Name: YITH WooCommerce Catalog Mode
4
- Plugin URI: http://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode/
5
- Description: YITH Woocommerce Catalog Mode allows you to disable shop functions.
6
- Author: Yithemes
7
- Text Domain: yith-woocommerce-catalog-mode
8
- Version: 1.2.0
9
- Author URI: http://yithemes.com/
10
- */
11
-
12
- if ( !defined( 'ABSPATH' ) ) {
13
- exit;
14
- } // Exit if accessed directly
15
-
16
- if ( !function_exists( 'is_plugin_active' ) ) {
17
- require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
18
- }
19
-
20
- function ywctm_install_woocommerce_admin_notice() {
21
- ?>
22
- <div class="error">
23
- <p><?php _e( 'YITH WooCommerce Catalog Mode is enabled but not effective. It requires WooCommerce in order to work.', 'yith-woocommerce-catalog-mode' ); ?></p>
24
- </div>
25
- <?php
26
- }
27
-
28
- function ywctm_install_free_admin_notice() {
29
- ?>
30
- <div class="error">
31
- <p><?php _e( 'You can\'t activate the free version of YITH WooCommerce Catalog Mode while you are using the premium one.', 'yith-woocommerce-catalog-mode' ); ?></p>
32
- </div>
33
- <?php
34
- }
35
-
36
- if ( !defined( 'YWCTM_VERSION' ) ) {
37
- define( 'YWCTM_VERSION', '1.2.0' );
38
- }
39
-
40
- if ( !defined( 'YWCTM_FREE_INIT' ) ) {
41
- define( 'YWCTM_FREE_INIT', plugin_basename( __FILE__ ) );
42
- }
43
-
44
- if ( !defined( 'YWCTM_FILE' ) ) {
45
- define( 'YWCTM_FILE', __FILE__ );
46
- }
47
-
48
- if ( !defined( 'YWCTM_DIR' ) ) {
49
- define( 'YWCTM_DIR', plugin_dir_path( __FILE__ ) );
50
- }
51
-
52
- if ( !defined( 'YWCTM_URL' ) ) {
53
- define( 'YWCTM_URL', plugins_url( '/', __FILE__ ) );
54
- }
55
-
56
- if ( !defined( 'YWCTM_ASSETS_URL' ) ) {
57
- define( 'YWCTM_ASSETS_URL', YWCTM_URL . 'assets/' );
58
- }
59
-
60
- if ( !defined( 'YWCTM_TEMPLATE_PATH' ) ) {
61
- define( 'YWCTM_TEMPLATE_PATH', YWCTM_DIR . 'templates/' );
62
- }
63
-
64
- /* Plugin Framework Version Check */
65
- if ( !function_exists( 'yit_maybe_plugin_fw_loader' ) && file_exists( YWCTM_DIR . 'plugin-fw/init.php' ) ) {
66
- require_once( YWCTM_DIR . 'plugin-fw/init.php' );
67
- }
68
- yit_maybe_plugin_fw_loader( YWCTM_DIR );
69
-
70
- function ywctm_init() {
71
-
72
- /* Load YWCTM text domain */
73
- load_plugin_textdomain( 'yith-woocommerce-catalog-mode', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
74
-
75
- global $YITH_WC_Catalog_Mode;
76
- $YITH_WC_Catalog_Mode = new YITH_WC_Catalog_Mode();
77
- }
78
-
79
- add_action( 'ywctm_init', 'ywctm_init' );
80
-
81
- function ywctm_install() {
82
-
83
- require_once( YWCTM_DIR . 'class.yith-woocommerce-catalog-mode.php' );
84
-
85
- if ( !function_exists( 'WC' ) ) {
86
- add_action( 'admin_notices', 'ywctm_install_woocommerce_admin_notice' );
87
- }
88
- elseif ( defined( 'YWCTM_PREMIUM' ) ) {
89
- add_action( 'admin_notices', 'ywctm_install_free_admin_notice' );
90
- deactivate_plugins( plugin_basename( __FILE__ ) );
91
- }
92
- else {
93
- do_action( 'ywctm_init' );
94
- }
95
- }
96
-
97
- add_action( 'plugins_loaded', 'ywctm_install', 11 );
98
-
99
- /**
100
- * Init default plugin settings
101
- */
102
- if ( !function_exists( 'yith_plugin_registration_hook' ) ) {
103
- require_once 'plugin-fw/yit-plugin-registration-hook.php';
104
- }
105
-
106
- register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
107
- register_activation_hook( __FILE__, 'ywctm_plugin_activation' );
108
-
109
- function ywctm_plugin_activation() {
110
-
111
- $pages_to_check = array(
112
- get_option( 'woocommerce_cart_page_id' ),
113
- get_option( 'woocommerce_checkout_page_id' )
114
- );
115
-
116
- foreach ( $pages_to_check as $page_id ) {
117
- if ( get_post_status( $page_id ) != 'publish' ) {
118
- $page = array(
119
- 'ID' => $page_id,
120
- 'post_status' => 'publish'
121
- );
122
-
123
- wp_update_post( $page );
124
- }
125
- }
126
- }
127
-
128
-
129
-
1
+ <?php
2
+ /*
3
+ Plugin Name: YITH WooCommerce Catalog Mode
4
+ Plugin URI: http://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode/
5
+ Description: YITH WooCommerce Catalog Mode allows you to disable shop functions.
6
+ Author: YIThemes
7
+ Text Domain: yith-woocommerce-catalog-mode
8
+ Version: 1.2.1
9
+ Author URI: http://yithemes.com/
10
+ */
11
+
12
+ if ( !defined( 'ABSPATH' ) ) {
13
+ exit;
14
+ } // Exit if accessed directly
15
+
16
+ if ( !function_exists( 'is_plugin_active' ) ) {
17
+ require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
18
+ }
19
+
20
+ function ywctm_install_woocommerce_admin_notice() {
21
+ ?>
22
+ <div class="error">
23
+ <p><?php _e( 'YITH WooCommerce Catalog Mode is enabled but not effective. It requires WooCommerce in order to work.', 'yith-woocommerce-catalog-mode' ); ?></p>
24
+ </div>
25
+ <?php
26
+ }
27
+
28
+ function ywctm_install_free_admin_notice() {
29
+ ?>
30
+ <div class="error">
31
+ <p><?php _e( 'You can\'t activate the free version of YITH WooCommerce Catalog Mode while you are using the premium one.', 'yith-woocommerce-catalog-mode' ); ?></p>
32
+ </div>
33
+ <?php
34
+ }
35
+
36
+ if ( !defined( 'YWCTM_VERSION' ) ) {
37
+ define( 'YWCTM_VERSION', '1.2.1' );
38
+ }
39
+
40
+ if ( !defined( 'YWCTM_FREE_INIT' ) ) {
41
+ define( 'YWCTM_FREE_INIT', plugin_basename( __FILE__ ) );
42
+ }
43
+
44
+ if ( !defined( 'YWCTM_FILE' ) ) {
45
+ define( 'YWCTM_FILE', __FILE__ );
46
+ }
47
+
48
+ if ( !defined( 'YWCTM_DIR' ) ) {
49
+ define( 'YWCTM_DIR', plugin_dir_path( __FILE__ ) );
50
+ }
51
+
52
+ if ( !defined( 'YWCTM_URL' ) ) {
53
+ define( 'YWCTM_URL', plugins_url( '/', __FILE__ ) );
54
+ }
55
+
56
+ if ( !defined( 'YWCTM_ASSETS_URL' ) ) {
57
+ define( 'YWCTM_ASSETS_URL', YWCTM_URL . 'assets/' );
58
+ }
59
+
60
+ if ( !defined( 'YWCTM_TEMPLATE_PATH' ) ) {
61
+ define( 'YWCTM_TEMPLATE_PATH', YWCTM_DIR . 'templates/' );
62
+ }
63
+
64
+ /* Plugin Framework Version Check */
65
+ if ( !function_exists( 'yit_maybe_plugin_fw_loader' ) && file_exists( YWCTM_DIR . 'plugin-fw/init.php' ) ) {
66
+ require_once( YWCTM_DIR . 'plugin-fw/init.php' );
67
+ }
68
+ yit_maybe_plugin_fw_loader( YWCTM_DIR );
69
+
70
+ function ywctm_init() {
71
+
72
+ /* Load YWCTM text domain */
73
+ load_plugin_textdomain( 'yith-woocommerce-catalog-mode', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
74
+
75
+ global $YITH_WC_Catalog_Mode;
76
+ $YITH_WC_Catalog_Mode = new YITH_WC_Catalog_Mode();
77
+ }
78
+
79
+ add_action( 'ywctm_init', 'ywctm_init' );
80
+
81
+ function ywctm_install() {
82
+
83
+ require_once( YWCTM_DIR . 'class.yith-woocommerce-catalog-mode.php' );
84
+
85
+ if ( !function_exists( 'WC' ) ) {
86
+ add_action( 'admin_notices', 'ywctm_install_woocommerce_admin_notice' );
87
+ }
88
+ elseif ( defined( 'YWCTM_PREMIUM' ) ) {
89
+ add_action( 'admin_notices', 'ywctm_install_free_admin_notice' );
90
+ deactivate_plugins( plugin_basename( __FILE__ ) );
91
+ }
92
+ else {
93
+ do_action( 'ywctm_init' );
94
+ }
95
+ }
96
+
97
+ add_action( 'plugins_loaded', 'ywctm_install', 11 );
98
+
99
+ /**
100
+ * Init default plugin settings
101
+ */
102
+ if ( !function_exists( 'yith_plugin_registration_hook' ) ) {
103
+ require_once 'plugin-fw/yit-plugin-registration-hook.php';
104
+ }
105
+
106
+ register_activation_hook( __FILE__, 'yith_plugin_registration_hook' );
107
+ register_activation_hook( __FILE__, 'ywctm_plugin_activation' );
108
+
109
+ function ywctm_plugin_activation() {
110
+
111
+ $pages_to_check = array(
112
+ get_option( 'woocommerce_cart_page_id' ),
113
+ get_option( 'woocommerce_checkout_page_id' )
114
+ );
115
+
116
+ foreach ( $pages_to_check as $page_id ) {
117
+ if ( get_post_status( $page_id ) != 'publish' ) {
118
+ $page = array(
119
+ 'ID' => $page_id,
120
+ 'post_status' => 'publish'
121
+ );
122
+
123
+ wp_update_post( $page );
124
+ }
125
+ }
126
+ }
127
+
128
+
129
+
languages/yith-woocommerce-catalog-mode-nl_NL.po CHANGED
@@ -1,294 +1,294 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: YITH WooCommerce Catalog Mode\n"
4
- "Report-Msgid-Bugs-To: \n"
5
- "POT-Creation-Date: 2015-10-02 09:48+0100\n"
6
- "PO-Revision-Date: Sun Oct 18 2015 12:56:28 GMT+0200 (West-Europa "
7
- "(zomertijd))\n"
8
- "Last-Translator: admin <admin@localhost.local>\n"
9
- "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
10
- "Language: Dutch\n"
11
- "Plural-Forms: nplurals=2; plural=n != 1\n"
12
- "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=UTF-8\n"
14
- "Content-Transfer-Encoding: 8bit\n"
15
- "X-Poedit-SourceCharset: UTF-8\n"
16
- "X-Generator: Loco - https://localise.biz/\n"
17
- "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
- "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
- "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
- "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
- "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
- "X-Poedit-Basepath: .\n"
23
- "X-Poedit-SearchPath-0: ..\n"
24
- "X-Poedit-SearchPathExcluded-0: ../plugin-fw\n"
25
- "X-Loco-Target-Locale: nl_NL"
26
-
27
- #: ../class.yith-woocommerce-catalog-mode.php:602
28
- #: ../class.yith-woocommerce-catalog-mode.php:671
29
- msgid "Settings"
30
- msgstr "Instellingen"
31
-
32
- #: ../class.yith-woocommerce-catalog-mode.php:606
33
- msgid "Premium Settings"
34
- msgstr "Geavanceerde Instellingen"
35
-
36
- #: ../class.yith-woocommerce-catalog-mode.php:607
37
- msgid "Exclusion List"
38
- msgstr "UItsluitingslijst"
39
-
40
- #: ../class.yith-woocommerce-catalog-mode.php:610
41
- #: ../class.yith-woocommerce-catalog-mode.php:674
42
- msgid "Premium Version"
43
- msgstr "Premium Versie"
44
-
45
- #: ../class.yith-woocommerce-catalog-mode.php:616
46
- #: ../class.yith-woocommerce-catalog-mode.php:617
47
- msgid "Catalog Mode"
48
- msgstr "Cataloog mode"
49
-
50
- #: ../class.yith-woocommerce-catalog-mode.php:700
51
- msgid "Plugin Documentation"
52
- msgstr "Plugin Documentatie"
53
-
54
- #: ../init.php:23
55
- msgid ""
56
- "YITH WooCommerce Catalog Mode is enabled but not effective. It requires "
57
- "WooCommerce in order to work."
58
- msgstr ""
59
- "YITH WooCommerce Catalog Mode is ingeschakeld maar niet werkzaam. "
60
- "WooCommerce is nodig om te werken."
61
-
62
- #: ../init.php:31
63
- msgid ""
64
- "You can't activate the free version of YITH WooCommerce Catalog Mode while "
65
- "you are using the premium one."
66
- msgstr ""
67
- "U kunt het gratis versie vanYITH WooCommerce Catalog Mode niet activeren als "
68
- "u het premium versie gebruikt."
69
-
70
- #: ../plugin-options/settings-options.php:18
71
- msgid "Upgrade to the PREMIUM VERSION"
72
- msgstr "Upgrade naar het PREMIUM VERSIE"
73
-
74
- #: ../plugin-options/settings-options.php:21
75
- #: ../plugin-options/settings-options.php:27
76
- msgid "YITH WooCommerce Catalog Mode"
77
- msgstr "YITH WooCommerce Catalog Mode"
78
-
79
- #: ../plugin-options/settings-options.php:22
80
- msgid "Discover the Advanced Features"
81
- msgstr "Ontdek de Speciale Eigenschappen"
82
-
83
- #: ../plugin-options/settings-options.php:23
84
- msgid ""
85
- "Upgrade to the PREMIUM VERSION of YITH WooCommerce Catalog Mode to benefit "
86
- "from all features!"
87
- msgstr ""
88
- "Upgrade naar het PREMIUM VERSIE van YITH WooCommerce Catalog Mode om van "
89
- "alle functies te profiteren."
90
-
91
- #: ../plugin-options/settings-options.php:29
92
- msgid "Get Support and Pro Features"
93
- msgstr "Krijg Support en Pro functies"
94
-
95
- #: ../plugin-options/settings-options.php:30
96
- msgid ""
97
- "By purchasing the premium version of the plugin, you will take advantage of "
98
- "the advanced features of the product and you will get one year of free "
99
- "updates and support through our platform available 24h/24."
100
- msgstr ""
101
- "Door de aankoop van de premium-versie van de plugin, zult u profiteren van "
102
- "de geavanceerde functies van het product en u zult een jaar gratis updates "
103
- "ontvangen en de ondersteuning door middel van ons beschikbaar platform 24u / "
104
- "24."
105
-
106
- #: ../plugin-options/settings-options.php:40
107
- #: ../plugin-options/settings-options.php:49
108
- #: ../plugin-options/settings-options.php:99
109
- #: ../plugin-options/settings-options.php:107
110
- msgid "\"Add to cart\" button"
111
- msgstr "\"Toevoegen aan winkelwagen\" button"
112
-
113
- #: ../plugin-options/settings-options.php:42
114
- msgid "Exclude selected products (See \"Exclusions\" tab)"
115
- msgstr "Uitsluiten geselecteerde producten ( zie \"Uitsluitings\" tab)"
116
-
117
- #: ../plugin-options/settings-options.php:51
118
- msgid "Reverse Exclusion List (Restrict Catalog Mode to selected items only)"
119
- msgstr ""
120
- "Omgekeerde Uitsluitingslijst ( Alleen Restrict Catalog Mode geselecteerde "
121
- "items)"
122
-
123
- #: ../plugin-options/settings-options.php:58
124
- msgid "Variable products"
125
- msgstr "Variabele producten"
126
-
127
- #: ../plugin-options/settings-options.php:60
128
- msgid "Hide product variations"
129
- msgstr "Verberg product variaties"
130
-
131
- #: ../plugin-options/settings-options.php:71
132
- msgid "General Settings"
133
- msgstr "Algemene instellingen"
134
-
135
- #: ../plugin-options/settings-options.php:76
136
- msgid "Enable YITH Woocommerce Catalog Mode"
137
- msgstr "YITH Woocommerce Catalog Mode inschakelen"
138
-
139
- #: ../plugin-options/settings-options.php:83
140
- msgid "Admin View"
141
- msgstr "Admin weergave"
142
-
143
- #: ../plugin-options/settings-options.php:85
144
- msgid "Enable Catalog Mode also for administrators"
145
- msgstr "Catalog Mode ook voor beheerders inschakelen"
146
-
147
- #: ../plugin-options/settings-options.php:94
148
- msgid "Catalog Mode Settings"
149
- msgstr "Catalog Mode instellingen"
150
-
151
- #: ../plugin-options/settings-options.php:101
152
- msgid "Hide in product details page"
153
- msgstr "Verberg in productdetail pagina"
154
-
155
- #: ../plugin-options/settings-options.php:109
156
- msgid "Hide in other pages"
157
- msgstr "Verberg in andere pagina's"
158
-
159
- #: ../plugin-options/settings-options.php:118
160
- msgid "\"Cart\" and \"Checkout\" pages"
161
- msgstr "\"Winkelwagen\" en \"afrekenen\" pagina's"
162
-
163
- #: ../plugin-options/settings-options.php:120
164
- msgid "Hide and disable all shop features"
165
- msgstr "Verberg en schakel alle winkel functies uit"
166
-
167
- #: ../templates/admin/premium.php:226 ../templates/admin/premium.php:352
168
- #, php-format
169
- msgid ""
170
- "Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s "
171
- "to benefit from all features!"
172
- msgstr ""
173
- "Upgrade naar %1$spremium version%2$s of %1$sYITH WooCommerce Catalog "
174
- "Mode%2$s om te profiteren van alle functies!"
175
-
176
- #: ../templates/admin/premium.php:229 ../templates/admin/premium.php:355
177
- msgid "UPGRADE"
178
- msgstr "UPGRADE"
179
-
180
- #: ../templates/admin/premium.php:230 ../templates/admin/premium.php:356
181
- msgid "to the premium version"
182
- msgstr "naar het premium versie"
183
-
184
- #: ../templates/admin/premium.php:236
185
- msgid "Premium Features"
186
- msgstr "Premium Functies"
187
-
188
- #: ../templates/admin/premium.php:244
189
- msgid "Hide price"
190
- msgstr "Verberg prijs"
191
-
192
- #: ../templates/admin/premium.php:247
193
- #, php-format
194
- msgid ""
195
- "Hide the price of products in your shop and replace it with a text. Decide "
196
- "if some of the products have to be excluded and if %1$shiding price%2$s has "
197
- "to be applied to all or restricted only to unlogged users."
198
- msgstr ""
199
- "Verberg de prijs van de producten in uw winkel en vervang deze door een "
200
- "tekst. Beslis of sommige van de producten worden uitgesloten en indien "
201
- "%1$shiding price%2$s moet worden toegepast op alle of beperkt tot niet "
202
- "ingelogde gebruikers."
203
-
204
- #: ../templates/admin/premium.php:257
205
- msgid "Inquiry form"
206
- msgstr "Aanvraagformulier"
207
-
208
- #: ../templates/admin/premium.php:260
209
- #, php-format
210
- msgid ""
211
- "Improve single product page by adding a tab with an %1$sinquiry form%2$s "
212
- "explicitly thought to let them send messages to site administrator."
213
- msgstr ""
214
- "Verbeter de enkel product pagina door het toevoegen van een tab met "
215
- "%1$sinquiry form%2$s expliciet bedacht om hun berichten te laten sturen naar "
216
- "de websitebeheerder."
217
-
218
- #: ../templates/admin/premium.php:276
219
- msgid "Custom button"
220
- msgstr "Aangepaste button"
221
-
222
- #: ../templates/admin/premium.php:279
223
- #, php-format
224
- msgid ""
225
- "Add a button in single product page to call users to a specific "
226
- "%1$saction%2$s, depending on the specified %1$slink%2$s (email sending, "
227
- "skype call, telephone call)."
228
- msgstr ""
229
- "Voeg een button toe in de enkel product pagina om gebruikers te laten bellen "
230
- "voor een specifieke %1$saction%2$s, afhankelijk van de opgegeven "
231
- "%1$slink%2$s (email sending, skype call, telephone call)."
232
-
233
- #: ../templates/admin/premium.php:289
234
- msgid "Product reviews"
235
- msgstr "Product beoordeling"
236
-
237
- #: ../templates/admin/premium.php:292
238
- #, php-format
239
- msgid ""
240
- "You can disable product %1$sreviewing system%2$s of your shop and decide if "
241
- "applying it to all users or just to unlogged ones."
242
- msgstr ""
243
- "U kunt uw product %1$sreviewing system%2$s uitschakelen in uw winkel en "
244
- "beslissen of dit voor alle gebruikers is of alleen voor niet ingelogde "
245
- "gebruikers."
246
-
247
- #: ../templates/admin/premium.php:308
248
- msgid "Exclusion list"
249
- msgstr "Uitgesloten lijst"
250
-
251
- #: ../templates/admin/premium.php:311
252
- #, php-format
253
- msgid ""
254
- "Set plugin options, but if you want that options concerning price visibility "
255
- "and ‘Add to cart’ do not apply to specific products, add them to "
256
- "%1$sexclusion list%2$s and, voilà, problem solved."
257
- msgstr ""
258
- "Stel plugin opties in, maar als je wilt dat de opties met betrekking tot "
259
- "prijs zichtbaarheid en 'Bestellen' niet van toepassing zijn op specifieke "
260
- "producten, voeg ze toe aan %1$sexclusion list%2$s en, voilà probleem "
261
- "opgelost."
262
-
263
- #: ../templates/admin/premium.php:321
264
- msgid "REVERSE EXCLUSION LIST"
265
- msgstr "OMGEKEERDE UITSLUITINGSLIJST"
266
-
267
- #: ../templates/admin/premium.php:324
268
- #, php-format
269
- msgid ""
270
- "Apply Catalog Mode to some items only: add them to the \"Exclusion List\" and "
271
- "%1$smake it work in the opposite way as usual%2$s. All items in the shop "
272
- "show price and “Add to Cart” button, while items in the list don’t."
273
- msgstr ""
274
- "Catalog Mode toepassing voor slechts enkele items: voeg ze toe aan de "
275
- "\"Uitsluitingslijst\" en %1$smake it work in the opposite way as usual%2$s. "
276
- "Van alle items in de winkel de prijs tonen en de \"Toevoegen aan winkelwagen\" "
277
- "button, terwijl items niet in de lijst staan."
278
-
279
- #: ../templates/admin/premium.php:340
280
- msgid "Source page of the request"
281
- msgstr "Bronpagina van de aanvraag"
282
-
283
- #: ../templates/admin/premium.php:343
284
- #, php-format
285
- msgid ""
286
- "Thanks to the %1$s\"Product Permalink\"%2$s option you will be able to know "
287
- "from which page your users have generated the request.%3$sThe email "
288
- "generated from the request form will include the address of the page: "
289
- "another important information that can be really useful for you."
290
- msgstr ""
291
- "Met dank aan de %1$s\"Product Permalink\"%2$s optie is het mogelijk om te "
292
- "weten welke pagina je gebruiker heeft gemaakt de aanvraag %3$s De e-mail "
293
- "gegenereerd op basis van het aanvraagformulier zal het adres van de pagina: "
294
- "en andere belangrijke informatie die kan nuttig zijn voor jou."
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: YITH WooCommerce Catalog Mode\n"
4
+ "Report-Msgid-Bugs-To: \n"
5
+ "POT-Creation-Date: 2015-10-02 09:48+0100\n"
6
+ "PO-Revision-Date: Sun Oct 18 2015 12:56:28 GMT+0200 (West-Europa "
7
+ "(zomertijd))\n"
8
+ "Last-Translator: admin <admin@localhost.local>\n"
9
+ "Language-Team: Your Inspiration Themes <plugins@yithemes.com>\n"
10
+ "Language: Dutch\n"
11
+ "Plural-Forms: nplurals=2; plural=n != 1\n"
12
+ "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
+ "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Poedit-SourceCharset: UTF-8\n"
16
+ "X-Generator: Loco - https://localise.biz/\n"
17
+ "X-Poedit-KeywordsList: _:1;gettext:1;dgettext:2;ngettext:1,2;dngettext:2,3;"
18
+ "__:1;_e:1;_c:1;_n:1,2;_n_noop:1,2;_nc:1,2;__ngettext:1,2;__ngettext_noop:1,2;"
19
+ "_x:1,2c;_ex:1,2c;_nx:1,2,4c;_nx_noop:1,2,3c;_n_js:1,2;_nx_js:1,2,3c;"
20
+ "esc_attr__:1;esc_html__:1;esc_attr_e:1;esc_html_e:1;esc_attr_x:1,2c;"
21
+ "esc_html_x:1,2c;comments_number_link:2,3;t:1;st:1;trans:1;transChoice:1,2\n"
22
+ "X-Poedit-Basepath: .\n"
23
+ "X-Poedit-SearchPath-0: ..\n"
24
+ "X-Poedit-SearchPathExcluded-0: ../plugin-fw\n"
25
+ "X-Loco-Target-Locale: nl_NL"
26
+
27
+ #: ../class.yith-woocommerce-catalog-mode.php:602
28
+ #: ../class.yith-woocommerce-catalog-mode.php:671
29
+ msgid "Settings"
30
+ msgstr "Instellingen"
31
+
32
+ #: ../class.yith-woocommerce-catalog-mode.php:606
33
+ msgid "Premium Settings"
34
+ msgstr "Geavanceerde Instellingen"
35
+
36
+ #: ../class.yith-woocommerce-catalog-mode.php:607
37
+ msgid "Exclusion List"
38
+ msgstr "UItsluitingslijst"
39
+
40
+ #: ../class.yith-woocommerce-catalog-mode.php:610
41
+ #: ../class.yith-woocommerce-catalog-mode.php:674
42
+ msgid "Premium Version"
43
+ msgstr "Premium Versie"
44
+
45
+ #: ../class.yith-woocommerce-catalog-mode.php:616
46
+ #: ../class.yith-woocommerce-catalog-mode.php:617
47
+ msgid "Catalog Mode"
48
+ msgstr "Cataloog mode"
49
+
50
+ #: ../class.yith-woocommerce-catalog-mode.php:700
51
+ msgid "Plugin Documentation"
52
+ msgstr "Plugin Documentatie"
53
+
54
+ #: ../init.php:23
55
+ msgid ""
56
+ "YITH WooCommerce Catalog Mode is enabled but not effective. It requires "
57
+ "WooCommerce in order to work."
58
+ msgstr ""
59
+ "YITH WooCommerce Catalog Mode is ingeschakeld maar niet werkzaam. "
60
+ "WooCommerce is nodig om te werken."
61
+
62
+ #: ../init.php:31
63
+ msgid ""
64
+ "You can't activate the free version of YITH WooCommerce Catalog Mode while "
65
+ "you are using the premium one."
66
+ msgstr ""
67
+ "U kunt het gratis versie vanYITH WooCommerce Catalog Mode niet activeren als "
68
+ "u het premium versie gebruikt."
69
+
70
+ #: ../plugin-options/settings-options.php:18
71
+ msgid "Upgrade to the PREMIUM VERSION"
72
+ msgstr "Upgrade naar het PREMIUM VERSIE"
73
+
74
+ #: ../plugin-options/settings-options.php:21
75
+ #: ../plugin-options/settings-options.php:27
76
+ msgid "YITH WooCommerce Catalog Mode"
77
+ msgstr "YITH WooCommerce Catalog Mode"
78
+
79
+ #: ../plugin-options/settings-options.php:22
80
+ msgid "Discover the Advanced Features"
81
+ msgstr "Ontdek de Speciale Eigenschappen"
82
+
83
+ #: ../plugin-options/settings-options.php:23
84
+ msgid ""
85
+ "Upgrade to the PREMIUM VERSION of YITH WooCommerce Catalog Mode to benefit "
86
+ "from all features!"
87
+ msgstr ""
88
+ "Upgrade naar het PREMIUM VERSIE van YITH WooCommerce Catalog Mode om van "
89
+ "alle functies te profiteren."
90
+
91
+ #: ../plugin-options/settings-options.php:29
92
+ msgid "Get Support and Pro Features"
93
+ msgstr "Krijg Support en Pro functies"
94
+
95
+ #: ../plugin-options/settings-options.php:30
96
+ msgid ""
97
+ "By purchasing the premium version of the plugin, you will take advantage of "
98
+ "the advanced features of the product and you will get one year of free "
99
+ "updates and support through our platform available 24h/24."
100
+ msgstr ""
101
+ "Door de aankoop van de premium-versie van de plugin, zult u profiteren van "
102
+ "de geavanceerde functies van het product en u zult een jaar gratis updates "
103
+ "ontvangen en de ondersteuning door middel van ons beschikbaar platform 24u / "
104
+ "24."
105
+
106
+ #: ../plugin-options/settings-options.php:40
107
+ #: ../plugin-options/settings-options.php:49
108
+ #: ../plugin-options/settings-options.php:99
109
+ #: ../plugin-options/settings-options.php:107
110
+ msgid "\"Add to cart\" button"
111
+ msgstr "\"Toevoegen aan winkelwagen\" button"
112
+
113
+ #: ../plugin-options/settings-options.php:42
114
+ msgid "Exclude selected products (See \"Exclusions\" tab)"
115
+ msgstr "Uitsluiten geselecteerde producten ( zie \"Uitsluitings\" tab)"
116
+
117
+ #: ../plugin-options/settings-options.php:51
118
+ msgid "Reverse Exclusion List (Restrict Catalog Mode to selected items only)"
119
+ msgstr ""
120
+ "Omgekeerde Uitsluitingslijst ( Alleen Restrict Catalog Mode geselecteerde "
121
+ "items)"
122
+
123
+ #: ../plugin-options/settings-options.php:58
124
+ msgid "Variable products"
125
+ msgstr "Variabele producten"
126
+
127
+ #: ../plugin-options/settings-options.php:60
128
+ msgid "Hide product variations"
129
+ msgstr "Verberg product variaties"
130
+
131
+ #: ../plugin-options/settings-options.php:71
132
+ msgid "General Settings"
133
+ msgstr "Algemene instellingen"
134
+
135
+ #: ../plugin-options/settings-options.php:76
136
+ msgid "Enable YITH Woocommerce Catalog Mode"
137
+ msgstr "YITH Woocommerce Catalog Mode inschakelen"
138
+
139
+ #: ../plugin-options/settings-options.php:83
140
+ msgid "Admin View"
141
+ msgstr "Admin weergave"
142
+
143
+ #: ../plugin-options/settings-options.php:85
144
+ msgid "Enable Catalog Mode also for administrators"
145
+ msgstr "Catalog Mode ook voor beheerders inschakelen"
146
+
147
+ #: ../plugin-options/settings-options.php:94
148
+ msgid "Catalog Mode Settings"
149
+ msgstr "Catalog Mode instellingen"
150
+
151
+ #: ../plugin-options/settings-options.php:101
152
+ msgid "Hide in product details page"
153
+ msgstr "Verberg in productdetail pagina"
154
+
155
+ #: ../plugin-options/settings-options.php:109
156
+ msgid "Hide in other pages"
157
+ msgstr "Verberg in andere pagina's"
158
+
159
+ #: ../plugin-options/settings-options.php:118
160
+ msgid "\"Cart\" and \"Checkout\" pages"
161
+ msgstr "\"Winkelwagen\" en \"afrekenen\" pagina's"
162
+
163
+ #: ../plugin-options/settings-options.php:120
164
+ msgid "Hide and disable all shop features"
165
+ msgstr "Verberg en schakel alle winkel functies uit"
166
+
167
+ #: ../templates/admin/premium.php:226 ../templates/admin/premium.php:352
168
+ #, php-format
169
+ msgid ""
170
+ "Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s "
171
+ "to benefit from all features!"
172
+ msgstr ""
173
+ "Upgrade naar %1$spremium version%2$s of %1$sYITH WooCommerce Catalog "
174
+ "Mode%2$s om te profiteren van alle functies!"
175
+
176
+ #: ../templates/admin/premium.php:229 ../templates/admin/premium.php:355
177
+ msgid "UPGRADE"
178
+ msgstr "UPGRADE"
179
+
180
+ #: ../templates/admin/premium.php:230 ../templates/admin/premium.php:356
181
+ msgid "to the premium version"
182
+ msgstr "naar het premium versie"
183
+
184
+ #: ../templates/admin/premium.php:236
185
+ msgid "Premium Features"
186
+ msgstr "Premium Functies"
187
+
188
+ #: ../templates/admin/premium.php:244
189
+ msgid "Hide price"
190
+ msgstr "Verberg prijs"
191
+
192
+ #: ../templates/admin/premium.php:247
193
+ #, php-format
194
+ msgid ""
195
+ "Hide the price of products in your shop and replace it with a text. Decide "
196
+ "if some of the products have to be excluded and if %1$shiding price%2$s has "
197
+ "to be applied to all or restricted only to unlogged users."
198
+ msgstr ""
199
+ "Verberg de prijs van de producten in uw winkel en vervang deze door een "
200
+ "tekst. Beslis of sommige van de producten worden uitgesloten en indien "
201
+ "%1$shiding price%2$s moet worden toegepast op alle of beperkt tot niet "
202
+ "ingelogde gebruikers."
203
+
204
+ #: ../templates/admin/premium.php:257
205
+ msgid "Inquiry form"
206
+ msgstr "Aanvraagformulier"
207
+
208
+ #: ../templates/admin/premium.php:260
209
+ #, php-format
210
+ msgid ""
211
+ "Improve single product page by adding a tab with an %1$sinquiry form%2$s "
212
+ "explicitly thought to let them send messages to site administrator."
213
+ msgstr ""
214
+ "Verbeter de enkel product pagina door het toevoegen van een tab met "
215
+ "%1$sinquiry form%2$s expliciet bedacht om hun berichten te laten sturen naar "
216
+ "de websitebeheerder."
217
+
218
+ #: ../templates/admin/premium.php:276
219
+ msgid "Custom button"
220
+ msgstr "Aangepaste button"
221
+
222
+ #: ../templates/admin/premium.php:279
223
+ #, php-format
224
+ msgid ""
225
+ "Add a button in single product page to call users to a specific "
226
+ "%1$saction%2$s, depending on the specified %1$slink%2$s (email sending, "
227
+ "skype call, telephone call)."
228
+ msgstr ""
229
+ "Voeg een button toe in de enkel product pagina om gebruikers te laten bellen "
230
+ "voor een specifieke %1$saction%2$s, afhankelijk van de opgegeven "
231
+ "%1$slink%2$s (email sending, skype call, telephone call)."
232
+
233
+ #: ../templates/admin/premium.php:289
234
+ msgid "Product reviews"
235
+ msgstr "Product beoordeling"
236
+
237
+ #: ../templates/admin/premium.php:292
238
+ #, php-format
239
+ msgid ""
240
+ "You can disable product %1$sreviewing system%2$s of your shop and decide if "
241
+ "applying it to all users or just to unlogged ones."
242
+ msgstr ""
243
+ "U kunt uw product %1$sreviewing system%2$s uitschakelen in uw winkel en "
244
+ "beslissen of dit voor alle gebruikers is of alleen voor niet ingelogde "
245
+ "gebruikers."
246
+
247
+ #: ../templates/admin/premium.php:308
248
+ msgid "Exclusion list"
249
+ msgstr "Uitgesloten lijst"
250
+
251
+ #: ../templates/admin/premium.php:311
252
+ #, php-format
253
+ msgid ""
254
+ "Set plugin options, but if you want that options concerning price visibility "
255
+ "and ‘Add to cart’ do not apply to specific products, add them to "
256
+ "%1$sexclusion list%2$s and, voilà, problem solved."
257
+ msgstr ""
258
+ "Stel plugin opties in, maar als je wilt dat de opties met betrekking tot "
259
+ "prijs zichtbaarheid en 'Bestellen' niet van toepassing zijn op specifieke "
260
+ "producten, voeg ze toe aan %1$sexclusion list%2$s en, voilà probleem "
261
+ "opgelost."
262
+
263
+ #: ../templates/admin/premium.php:321
264
+ msgid "REVERSE EXCLUSION LIST"
265
+ msgstr "OMGEKEERDE UITSLUITINGSLIJST"
266
+
267
+ #: ../templates/admin/premium.php:324
268
+ #, php-format
269
+ msgid ""
270
+ "Apply Catalog Mode to some items only: add them to the \"Exclusion List\" and "
271
+ "%1$smake it work in the opposite way as usual%2$s. All items in the shop "
272
+ "show price and “Add to Cart” button, while items in the list don’t."
273
+ msgstr ""
274
+ "Catalog Mode toepassing voor slechts enkele items: voeg ze toe aan de "
275
+ "\"Uitsluitingslijst\" en %1$smake it work in the opposite way as usual%2$s. "
276
+ "Van alle items in de winkel de prijs tonen en de \"Toevoegen aan winkelwagen\" "
277
+ "button, terwijl items niet in de lijst staan."
278
+
279
+ #: ../templates/admin/premium.php:340
280
+ msgid "Source page of the request"
281
+ msgstr "Bronpagina van de aanvraag"
282
+
283
+ #: ../templates/admin/premium.php:343
284
+ #, php-format
285
+ msgid ""
286
+ "Thanks to the %1$s\"Product Permalink\"%2$s option you will be able to know "
287
+ "from which page your users have generated the request.%3$sThe email "
288
+ "generated from the request form will include the address of the page: "
289
+ "another important information that can be really useful for you."
290
+ msgstr ""
291
+ "Met dank aan de %1$s\"Product Permalink\"%2$s optie is het mogelijk om te "
292
+ "weten welke pagina je gebruiker heeft gemaakt de aanvraag %3$s De e-mail "
293
+ "gegenereerd op basis van het aanvraagformulier zal het adres van de pagina: "
294
+ "en andere belangrijke informatie die kan nuttig zijn voor jou."
plugin-fw/assets/css/metaboxes.css CHANGED
@@ -237,6 +237,27 @@
237
  .chosen .select_wrapper .chosen-container .chosen-drop .chosen-search input{
238
  width: 100%!important;
239
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
 
241
  /* typography */
242
  .the-metabox.typography .select_wrapper.font-family { width:200px; }
237
  .chosen .select_wrapper .chosen-container .chosen-drop .chosen-search input{
238
  width: 100%!important;
239
  }
240
+ .select_wrapper span {
241
+ height: 26px;
242
+ line-height: 26px;
243
+ padding-left: 6px;
244
+ position: absolute;
245
+ z-index: 2;
246
+ overflow: hidden;
247
+ }
248
+
249
+ .the-metabox .select_wrapper select {
250
+ cursor: pointer;
251
+ height: 28px;
252
+ margin: 0;
253
+ opacity: 0;
254
+ padding: 0;
255
+ position: relative;
256
+ width: inherit;
257
+ z-index: 4;
258
+ background-color: #FAFAFA;
259
+ }
260
+
261
 
262
  /* typography */
263
  .the-metabox.typography .select_wrapper.font-family { width:200px; }
plugin-fw/assets/css/yit-plugin-panel.css CHANGED
@@ -631,6 +631,10 @@
631
  width: 6em;
632
  }
633
 
 
 
 
 
634
  /* === YIT FRAMEWORK === */
635
  .plugin-card .plugin-icon img {
636
  max-width: 100%;
631
  width: 6em;
632
  }
633
 
634
+ #wpwrap h2.nav-tab-wrapper {
635
+ border-bottom: 1px solid #ccc;
636
+ }
637
+
638
  /* === YIT FRAMEWORK === */
639
  .plugin-card .plugin-icon img {
640
  max-width: 100%;
plugin-fw/assets/js/yit-plugin-panel.js CHANGED
@@ -177,6 +177,16 @@
177
  //Open the uploader dialog
178
  custom_uploader.open();
179
  });
 
 
 
 
 
 
 
 
 
 
180
  }
181
 
182
  $('.plugin-option .add_media').on('click', function () {
177
  //Open the uploader dialog
178
  custom_uploader.open();
179
  });
180
+
181
+ $( document).on( 'click', '.plugin-option .upload_button_reset', function(e){
182
+ var t = $(this),
183
+ id = t.attr('id'),
184
+ input_id = t.attr('id').replace(/-button_reset$/, ''),
185
+ default_value = $('#' + id).data('default');
186
+
187
+ $("#" + input_id).val( default_value );
188
+ $('.plugin-option .upload_img_url').trigger('change');
189
+ } );
190
  }
191
 
192
  $('.plugin-option .add_media').on('click', function () {
plugin-fw/assets/js/yit-plugin-panel.min.js CHANGED
@@ -1 +1,10 @@
1
- !function(e){function t(t,i,n){var a=!0;if("string"==typeof i){":radio"==i.substr(0,6)&&(i+=":checked");for(var n=n.split(","),o=0;o<n.length;o++){if(e(i).val()==n[o]){a=!0;break}a=!1}}a?e(t+"-container").closest("tr").show():e(t+"-container").closest("tr").hide()}var i=function(){var t="";e(this).attr("multiple")?(e(this).children("option:selected").each(function(i,n){0!=i&&(t+=", "),t+=e(n).text()}),""==t&&e(this).children().children("option:selected").each(function(i,n){0!=i&&(t+=", "),t+=e(n).text()})):(t=e(this).children("option:selected").text(),""==t&&(t=e(this).children().children("option:selected").text())),e(this).parent().find("span").length<=0&&e(this).before("<span></span>"),e(this).parent().children("span").replaceWith("<span>"+t+"</span>")};if(e(".plugin-option .select_wrapper select").not(".chosen").each(i).change(i),e(".plugin-option .select_wrapper").click(function(t){t.stopPropagation(),e(this).find("select[multiple]").not(".chosen").toggle()}),e(".plugin-option .select_wrapper select[multiple]").not(".chosen").click(function(e){e.stopPropagation()}),e(window).click(function(){e(".plugin-option .select_wrapper select[multiple]").not(".chosen").hide()}),e(".plugin-option .chosen .select_wrapper select").chosen(),e(".plugin-option .on_off_container span").on("click",function(){var t=e(this).prev("input"),i=t.prop("checked");i?t.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):t.prop("checked",!0).attr("value","yes").addClass("onoffchecked"),t.change()}),e(".plugin-option .slider_container .ui-slider-horizontal").each(function(){var t=e(this).data("val"),i=e(this).data("min"),n=e(this).data("max"),a=e(this).data("step"),o=e(this).data("labels");e(this).slider({value:t,min:i,max:n,range:"min",step:a,slide:function(t,i){e(this).find("input").val(i.value),e(this).siblings(".feedback").find("strong").text(i.value+o)}})}),"undefined"!=typeof wp&&"undefined"!=typeof wp.media){{var n=!0;wp.media.editor.send.attachment}e(".plugin-option .upload_img_url").change(function(){var t=e(this).val(),i=new RegExp("(http|ftp|https)://[a-zA-Z0-9@?^=%&:/~+#-_.]*.(gif|jpg|jpeg|png|ico)"),n=e(this).parents().siblings(".upload_img_preview");n.html(i.test(t)?'<img src="'+t+'" style="max-width:600px; max-height:300px;" />':"")}).trigger("change"),e(document).on("click",".plugin-option .upload_button",function(t){t.preventDefault();var i,n=e(this),a=n.attr("id").replace(/-button$/,"");if(i)return void i.open();var o=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})];i=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:o}),i.on("select",function(){var t=i.state().get("selection").first().toJSON();e("#"+a).val(t.url),e("#"+a+"-yith-attachment-id")&&e("#"+a+"-yith-attachment-id").val(t.id),e(".plugin-option .upload_img_url").trigger("change")}),i.open()})}e(".plugin-option .add_media").on("click",function(){n=!1}),e("[data-field]").each(function(){var i=e(this),n="#"+i.data("field"),a="#"+i.data("dep"),o=i.data("value");e(a).on("change",function(){t(n,a,o.toString())}).change()}),e(".rm_connectedlist").each(function(){{var t=e(this).find("ul"),i=e(this).find(":hidden");t.sortable({connectWith:t,update:function(){var n={};t.each(function(){var t={};e(this).children().each(function(){t[e(this).data("option")]=e(this).text()}),n[e(this).data("list")]=t}),i.val(JSON.stringify(n).replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()}}),e(document).ready(function(){e(".yith-video-link").click(function(t){t.preventDefault();var i=e(this).data("video-id");e("."+i).dialog({dialogClass:"wp-dialog yit-dialog yit-video-dialog",modal:!0,closeOnEscape:!0,width:"auto",resizable:!1,draggable:!1,create:function(){e(this).css("maxWidth","853px")},open:function(){e(".ui-widget-overlay").bind("click",function(){e(this).siblings(".ui-dialog").find(".ui-dialog-content").dialog("close")})}}),e(".ui-dialog :button").blur()})}),e(document).ready(function(){e(".codemirror").each(function(t,i){var n=CodeMirror.fromTextArea(i,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});e(i).data("codemirrorInstance",n)})}),e(document).ready(function(){e(".google-analytic-generate").click(function(){var t=e("#"+e(this).data("textarea")).data("codemirrorInstance"),i=e("#"+e(this).data("input")).val(),n=e(this).data("basename"),a="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n";a+="(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\n",a+="m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n",a+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n",a+="ga('create', '"+i+"', '"+n+"');\n",a+="ga('send', 'pageview');\n",t.replaceRange(a,t.getCursor("start"),t.getCursor("end"))})})}(jQuery);
 
 
 
 
 
 
 
 
 
1
+ (function(a){var l=function(){var b="";a(this).attr("multiple")?(a(this).children("option:selected").each(function(c,d){0!=c&&(b+=", ");b+=a(d).text()}),""==b&&a(this).children().children("option:selected").each(function(c,d){0!=c&&(b+=", ");b+=a(d).text()})):(b=a(this).children("option:selected").text(),""==b&&(b=a(this).children().children("option:selected").text()));0>=a(this).parent().find("span").length&&a(this).before("<span></span>");a(this).parent().children("span").replaceWith("<span>"+b+
2
+ "</span>")};a(".plugin-option .select_wrapper select").not(".chosen").each(l).change(l);a(".plugin-option .select_wrapper").click(function(b){b.stopPropagation();a(this).find("select[multiple]").not(".chosen").toggle()});a(".plugin-option .select_wrapper select[multiple]").not(".chosen").click(function(a){a.stopPropagation()});a(window).click(function(){a(".plugin-option .select_wrapper select[multiple]").not(".chosen").hide()});a(".plugin-option .chosen .select_wrapper select").chosen();a(".plugin-option .on_off_container span").on("click",
3
+ function(){var b=a(this).prev("input");b.prop("checked")?b.prop("checked",!1).attr("value","no").removeClass("onoffchecked"):b.prop("checked",!0).attr("value","yes").addClass("onoffchecked");b.change()});a(".plugin-option .slider_container .ui-slider-horizontal").each(function(){var b=a(this).data("val"),c=a(this).data("min"),d=a(this).data("max"),e=a(this).data("step"),f=a(this).data("labels");a(this).slider({value:b,min:c,max:d,range:"min",step:e,slide:function(b,c){a(this).find("input").val(c.value);
4
+ a(this).siblings(".feedback").find("strong").text(c.value+f)}})});"undefined"!==typeof wp&&"undefined"!==typeof wp.media&&(a(".plugin-option .upload_img_url").change(function(){var b=a(this).val(),c=a(this).parents().siblings(".upload_img_preview");/(http|ftp|https):\/\/[a-zA-Z0-9@?^=%&amp;:/~+#-_.]*.(gif|jpg|jpeg|png|ico)/.test(b)?c.html('<img src="'+b+'" style="max-width:600px; max-height:300px;" />'):c.html("")}).trigger("change"),a(document).on("click",".plugin-option .upload_button",function(b){b.preventDefault();
5
+ var c,d=a(this).attr("id").replace(/-button$/,"");c||(b=[new wp.media.controller.Library({library:wp.media.query(),multiple:!1,title:"Choose Image",priority:20,filterable:"uploaded"})],c=wp.media.frames.downloadable_file=wp.media({title:"Choose Image",library:{type:""},button:{text:"Choose Image"},multiple:!1,states:b}),c.on("select",function(){var b=c.state().get("selection").first().toJSON();a("#"+d).val(b.url);a("#"+d+"-yith-attachment-id")&&a("#"+d+"-yith-attachment-id").val(b.id);a(".plugin-option .upload_img_url").trigger("change")}));
6
+ c.open()}),a(document).on("click",".plugin-option .upload_button_reset",function(b){var c=a(this);b=c.attr("id");c=c.attr("id").replace(/-button_reset$/,"");b=a("#"+b).data("default");a("#"+c).val(b);a(".plugin-option .upload_img_url").trigger("change")}));a(".plugin-option .add_media").on("click",function(){});a("[data-field]").each(function(){var b=a(this),c="#"+b.data("field"),d="#"+b.data("dep"),e=b.data("value");a(d).on("change",function(){var b=d,g=e.toString(),h=!0;if("string"==typeof b){":radio"==
7
+ b.substr(0,6)&&(b+=":checked");for(var g=g.split(","),k=0;k<g.length;k++)if(a(b).val()!=g[k])h=!1;else{h=!0;break}}h?a(c+"-container").closest("tr").show():a(c+"-container").closest("tr").hide()}).change()});a(".rm_connectedlist").each(function(){var b=a(this).find("ul"),c=a(this).find(":hidden");b.sortable({connectWith:b,update:function(d,e){var f={};b.each(function(){var b={};a(this).children().each(function(){b[a(this).data("option")]=a(this).text()});f[a(this).data("list")]=b});c.val(JSON.stringify(f).replace(/[\\"']/g,
8
+ "\\$&").replace(/\u0000/g,"\\0"))}}).disableSelection()});a(document).ready(function(){a(".yith-video-link").click(function(b){b.preventDefault();b=a(this).data("video-id");a("."+b).dialog({dialogClass:"wp-dialog yit-dialog yit-video-dialog",modal:!0,closeOnEscape:!0,width:"auto",resizable:!1,draggable:!1,create:function(b,d){a(this).css("maxWidth","853px")},open:function(b,d){a(".ui-widget-overlay").bind("click",function(){a(this).siblings(".ui-dialog").find(".ui-dialog-content").dialog("close")})}});
9
+ a(".ui-dialog :button").blur()})});a(document).ready(function(){a(".codemirror").each(function(b,c){var d=CodeMirror.fromTextArea(c,{lineNumbers:1,mode:"javascript",showCursorWhenSelecting:!0});a(c).data("codemirrorInstance",d)})});a(document).ready(function(){a(".google-analytic-generate").click(function(){var b=a("#"+a(this).data("textarea")).data("codemirrorInstance"),c=a("#"+a(this).data("input")).val(),d=a(this).data("basename"),e;e="(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement( o ),\nm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)\n";
10
+ e+="})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n\n";e+="ga('create', '"+c+"', '"+d+"');\n";e+="ga('send', 'pageview');\n";b.replaceRange(e,b.getCursor("start"),b.getCursor("end"))})})})(jQuery);
plugin-fw/init.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
- * Version: 2.1
5
  * Author: Yithemes
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
@@ -20,20 +20,20 @@
20
  */
21
 
22
 
23
- if ( ! defined( 'ABSPATH' ) ) {
24
  exit;
25
  } // Exit if accessed directly
26
 
27
- if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) ) {
28
  /**
29
  * YITH WooCommerce Ajax Navigation
30
  *
31
  * @since 1.0.0
32
  */
33
- function yit_maybe_plugin_fw_loader( $plugin_path ) {
34
  global $plugin_fw_data;
35
 
36
- $default_headers = array(
37
  'Name' => 'Framework Name',
38
  'Version' => 'Version',
39
  'Author' => 'Author',
@@ -41,19 +41,17 @@ if ( ! function_exists( 'yit_maybe_plugin_fw_loader' ) ) {
41
  'DomainPath' => 'Domain Path',
42
  );
43
 
44
- $framework_data = get_file_data( trailingslashit( $plugin_path ) .'plugin-fw/init.php', $default_headers );
45
- $plugin_fw_main_file = trailingslashit( $plugin_path ) . 'plugin-fw/yit-plugin.php';
46
 
47
- if( ! empty( $plugin_fw_data ) ){
48
- foreach( $plugin_fw_data as $version => $path ){
49
- if( version_compare( $version, $framework_data['Version'], '<' ) ){
50
- $plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
51
  }
52
  }
53
- }
54
-
55
- else {
56
- $plugin_fw_data = array( $framework_data['Version'] => $plugin_fw_main_file );
57
  }
58
  }
59
  }
1
  <?php
2
  /**
3
  * Framework Name: YIT Plugin Framework
4
+ * Version: 2.9.5
5
  * Author: Yithemes
6
  * Text Domain: yith-plugin-fw
7
  * Domain Path: /languages/
20
  */
21
 
22
 
23
+ if ( ! defined ( 'ABSPATH' ) ) {
24
  exit;
25
  } // Exit if accessed directly
26
 
27
+ if ( ! function_exists ( 'yit_maybe_plugin_fw_loader' ) ) {
28
  /**
29
  * YITH WooCommerce Ajax Navigation
30
  *
31
  * @since 1.0.0
32
  */
33
+ function yit_maybe_plugin_fw_loader ( $plugin_path ) {
34
  global $plugin_fw_data;
35
 
36
+ $default_headers = array (
37
  'Name' => 'Framework Name',
38
  'Version' => 'Version',
39
  'Author' => 'Author',
41
  'DomainPath' => 'Domain Path',
42
  );
43
 
44
+ $framework_data = get_file_data ( trailingslashit ( $plugin_path ) . 'plugin-fw/init.php', $default_headers );
45
+ $plugin_fw_main_file = trailingslashit ( $plugin_path ) . 'plugin-fw/yit-plugin.php';
46
 
47
+ if ( ! empty( $plugin_fw_data ) ) {
48
+ foreach ( $plugin_fw_data as $version => $path ) {
49
+ if ( version_compare ( $version, $framework_data[ 'Version' ], '<' ) ) {
50
+ $plugin_fw_data = array ( $framework_data[ 'Version' ] => $plugin_fw_main_file );
51
  }
52
  }
53
+ } else {
54
+ $plugin_fw_data = array ( $framework_data[ 'Version' ] => $plugin_fw_main_file );
 
 
55
  }
56
  }
57
  }
plugin-fw/languages/yith-plugin-fw-it_IT.mo CHANGED
Binary file
plugin-fw/languages/yith-plugin-fw-it_IT.po CHANGED
@@ -4,15 +4,15 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2015-05-11 17:13+0100\n"
8
- "PO-Revision-Date: 2015-07-24 16:13+0100\n"
9
  "Last-Translator: \n"
10
- "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
11
- "Language: en\n"
12
  "MIME-Version: 1.0\n"
13
- "Content-Type: text/plain; charset=utf-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.8\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c\n"
@@ -136,8 +136,9 @@ msgid "Type"
136
  msgstr "Tipologia"
137
 
138
  #: lib/yit-cpt-unlimited.php:1052
139
- msgid "Layout for this "
140
- msgstr "Layout per questo"
 
141
 
142
  #: lib/yit-cpt-unlimited.php:1058
143
  msgid "Rewrite"
@@ -220,10 +221,10 @@ msgid "Add %s from images"
220
  msgstr "Aggiungi %s dalla immagini"
221
 
222
  #: lib/yit-cpt-unlimited.php:1633
223
- msgid "Add with multiupload"
224
- msgstr "Aggiungi con caricamento multiplo"
225
 
226
- #: lib/yit-plugin-panel-wc.php:295
227
  msgid "The changes you have made will be lost if you leave this page."
228
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
229
 
@@ -231,71 +232,71 @@ msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
231
  msgid "Plugin Settings"
232
  msgstr "Impostazioni plugin"
233
 
234
- #: lib/yit-plugin-panel.php:95 lib/yit-plugin-subpanel.php:101
235
  msgid "YIT Plugins"
236
  msgstr "YIT Plugins"
237
 
238
- #: lib/yit-plugin-panel.php:292 lib/yit-plugin-subpanel.php:142
239
  #: templates/panel/woocommerce/woocommerce-form.php:5
240
  msgid "Save Changes"
241
  msgstr "Salva modifiche"
242
 
243
- #: lib/yit-plugin-panel.php:295 templates/panel/woocommerce/woocommerce-form.php:8
244
  msgid "If you continue with this action, you will reset all options in this page."
245
  msgstr ""
246
  "Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
247
  "reimpostate."
248
 
249
- #: lib/yit-plugin-panel.php:297 lib/yit-plugin-subpanel.php:147
250
- msgid "Reset to Default"
251
- msgstr "Ripristina impostazioni iniziali"
252
 
253
- #: lib/yit-plugin-panel.php:297 lib/yit-plugin-subpanel.php:147
254
- #: templates/panel/woocommerce/woocommerce-form.php:10
255
  msgid "Are you sure?"
256
  msgstr "Sei sicuro?"
257
 
258
- #: lib/yit-plugin-panel.php:431
259
  msgid "The element you have entered already exists. Please, enter another name."
260
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
261
 
262
- #: lib/yit-plugin-panel.php:432
263
  msgid "Settings saved"
264
  msgstr "Impostazioni salvate"
265
 
266
- #: lib/yit-plugin-panel.php:433
267
  msgid "Settings reset"
268
  msgstr "Impostazioni azzerate"
269
 
270
- #: lib/yit-plugin-panel.php:434
271
  msgid "Element deleted correctly."
272
  msgstr "Elemento rimosso correttamente."
273
 
274
- #: lib/yit-plugin-panel.php:435 lib/yit-plugin-panel.php:436
275
  msgid "Element updated correctly."
276
  msgstr "Elemento aggiornato correttamente."
277
 
278
- #: lib/yit-plugin-panel.php:437
279
  msgid "Database imported correctly."
280
  msgstr "Database importato correttamente."
281
 
282
- #: lib/yit-plugin-panel.php:438
283
  msgid "An error has occurred during import. Please try again."
284
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
285
 
286
- #: lib/yit-plugin-panel.php:439
287
  msgid "The added file is not valid."
288
  msgstr "Il file aggiunto non è valido."
289
 
290
- #: lib/yit-plugin-panel.php:440
291
  msgid "Sorry, import is disabled."
292
  msgstr "Ci dispiace, l'importazione è disabilitata."
293
 
294
- #: lib/yit-plugin-panel.php:441
295
  msgid "Sorting successful."
296
  msgstr "Ordinamento effettuato con successo."
297
 
298
- #: lib/yit-plugin-subpanel.php:145
299
  msgid ""
300
  "If you continue with this action, you will reset all the options in this page."
301
  msgstr ""
@@ -367,19 +368,19 @@ msgstr ""
367
  msgid "Update now."
368
  msgstr "Aggiorna adesso."
369
 
370
- #: lib/yit-upgrade.php:230
371
  msgid "Yithemes Repository"
372
  msgstr "Repository YIThemes"
373
 
374
- #: lib/yit-upgrade.php:264
375
  msgid "Invalid URL Provided."
376
  msgstr "L'URL inserito non è valido."
377
 
378
- #: lib/yit-upgrade.php:277
379
  msgid "Could not create Temporary file."
380
  msgstr "Non è stato possibile creare il file temporaneo."
381
 
382
- #: lib/yit-upgrade.php:419
383
  #, php-format
384
  msgid ""
385
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
@@ -388,7 +389,7 @@ msgstr ""
388
  "È disponibile una nuova versione di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
389
  "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>."
390
 
391
- #: lib/yit-upgrade.php:421
392
  #, php-format
393
  msgid ""
394
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
@@ -401,21 +402,16 @@ msgstr ""
401
  "<em>Per poter usufruire degli aggiornamenti automatici è necessario attivare il "
402
  "plugin su un solo sito.</em>"
403
 
404
- #: lib/yit-upgrade.php:423
405
  #, php-format
406
  msgid ""
407
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
408
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
409
- "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"Licence "
410
  "activation\">activate</a> your copy of %6s.</em>"
411
  msgstr ""
412
- "È disponibile una nuova versioni di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
413
- "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>. "
414
- "<em>Gli aggiornamenti automatici non sono disponibili per questo plugi, per "
415
- "favore, <a href=\"%5$s\" title=\"Licence activation\">attiva</a> la tua copia di "
416
- "%6s.</em>"
417
 
418
- #: lib/yit-upgrade.php:425
419
  #, php-format
420
  msgid ""
421
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
@@ -426,83 +422,111 @@ msgstr ""
426
  "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a> "
427
  "oppure <a href=\"%5$s\">aggiorna adesso</a>."
428
 
429
- #: lib/yit-upgrade.php:498
430
  msgid "You can't update the plugins for this site."
431
  msgstr "Non è possibile aggiornare i plugin per questo sito."
432
 
433
- #: lib/yit-upgrade.php:502
434
  msgid "You do not have sufficient permissions to update the plugins for this site."
435
  msgstr ""
436
  "Non sei in possesso delle autorizzazioni necessarie per aggiornare i plugin in "
437
  "questo sito."
438
 
439
- #: lib/yit-upgrade.php:509
440
  msgid "Update Plugin"
441
  msgstr "Aggiorna plugin"
442
 
443
- #: licence/lib/yit-licence.php:161
444
  #, php-format
445
  msgctxt "%s = field name"
446
  msgid "%s field cannot be empty"
447
  msgstr "Il campo %s non può essere vuoto"
448
 
449
- #: licence/lib/yit-licence.php:162
450
  #, php-format
451
  msgid "%s and %s fields cannot be empty"
452
  msgstr "I campi %s e %s non possono essere vuoti"
453
 
454
- #: licence/lib/yit-licence.php:163
455
  msgid "Unable to contact the remote server, please try again later. Thanks!"
456
  msgstr "Impossibile contattare il server remoto, prova più tardi. Grazie!"
457
 
458
- #: licence/lib/yit-licence.php:548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
459
  msgid "Invalid Request"
460
  msgstr "Richiesta non valida"
461
 
462
- #: licence/lib/yit-licence.php:549
463
- msgid "Invalid licence key"
464
- msgstr "Chiave di licenza non valida"
465
 
466
- #: licence/lib/yit-licence.php:550
467
  msgid "Software has been deactivated"
468
  msgstr "Il software è stato disattivato"
469
 
470
- #: licence/lib/yit-licence.php:551
471
  msgid "Maximum number of activations exceeded"
472
  msgstr "Hai raggiunto il numero massimo di attivazioni"
473
 
474
- #: licence/lib/yit-licence.php:552
475
  msgid "Invalid instance ID"
476
  msgstr "Istanza ID non valida"
477
 
478
- #: licence/lib/yit-licence.php:553
479
  msgid "Invalid security key"
480
  msgstr "Chiave di sicurezza non valida"
481
 
482
- #: licence/lib/yit-licence.php:554
483
- msgid "Licence key has expired"
484
- msgstr "Questa chiave di licenza è scaduta"
 
 
 
 
 
 
 
 
 
 
 
 
485
 
486
- #: licence/lib/yit-licence.php:555
487
- msgid "Licence key has been banned"
488
- msgstr "Questa chiave di licenza è stata bloccata"
489
 
490
- #: licence/lib/yit-plugin-licence.php:64 licence/lib/yit-plugin-licence.php:65
491
- #: licence/lib/yit-theme-licence.php:64 licence/lib/yit-theme-licence.php:65
492
- #: licence/lib/yit-theme-licence.php:107 licence/lib/yit-theme-licence.php:108
493
- msgid "Licence Activation"
494
- msgstr "Attivazione licenza"
495
 
496
- #: licence/lib/yit-theme-licence.php:115 licence/lib/yit-theme-licence.php:116
497
  #, php-format
498
  msgid "%s"
499
  msgstr "%s"
500
 
501
- #: licence/templates/panel/activation/activation-panel.php:19
502
- msgid "Yithemes Licence Activation"
503
- msgstr "Attivazione licenza YIThemes"
504
-
505
- #: licence/templates/panel/activation/activation-panel.php:23
506
  msgid ""
507
  "I cannot find the license key for activating the theme I have bought some time "
508
  "ago. Where can I find it?"
@@ -510,30 +534,25 @@ msgstr ""
510
  "Non riesco a trovare la chiave di licenza per l'attivazione del tema che ho "
511
  "acquistato diverso tempo fa. Dove posso trovarla?"
512
 
513
- #: licence/templates/panel/activation/activation-panel.php:26
514
  msgid ""
515
  "If you have purchased one of our products before 27 January 2015, you can benefit "
516
  "from support and updates (the services offered with the license)\n"
517
- " until 27 January 2016 and you do not have to purchase it again to get "
518
- "a new license key, because, before this date, your license used to be activated "
519
- "automatically by our system.\n"
520
- " After 27 January 2016, instead, if you want to benefit from support "
521
- "and updates you have to buy a new license and activate it through the license key "
522
- "you will be\n"
523
- " provided with and that you can find in your YIThemes account, in "
524
- "section \"My licenses\"."
525
- msgstr ""
526
- "Se hai acquistato un nostro prodotto prima del 27 gennaio 2015 potrai accedere al "
527
- "supporto e scaricare gli aggiornamenti fino al 27 gennaio 2016 e non avrai bisogno "
528
- "di una chiave di licenza,\n"
529
- "in quanto la tua licenza prima di questa data veniva attivata in modo automatico "
530
- "dal nostro sistema.\n"
531
- "Dopo il 27 gennaio 2016, invece, per poter usufruire del servizio di supporto e "
532
- "degli aggiornamenti dovrai riacquistare il prodotto e\n"
533
- "attivarlo con la chiave di licenza che ti sarà fornita e che puoi trovare sul tuo "
534
- "account YIThemes, alla voce \"Le mie licenze\"."
535
-
536
- #: licence/templates/panel/activation/activation-panel.php:37
537
  msgid ""
538
  "Have you updated your licenses? Have you asked for an extension? Update "
539
  "information concerning your products."
@@ -541,71 +560,75 @@ msgstr ""
541
  "Hai aggiornato la tua licenza? Hai richiesto un'estensione? Aggiorna le "
542
  "informazioni dei tuoi prodotti."
543
 
544
- #: licence/templates/panel/activation/activation-panel.php:39
545
- msgid "Update licence information"
546
- msgstr "Aggiorna le informazioni di licenza"
547
 
548
- #: licence/templates/panel/activation/activation-panel.php:49
549
- msgid "Products to be activated"
550
- msgstr "Prodotti da attivare"
 
 
551
 
552
- #: licence/templates/panel/activation/activation-panel.php:68
553
  msgid "Activate"
554
  msgstr "Attiva"
555
 
556
- #: licence/templates/panel/activation/activation-panel.php:87
557
  msgid "Activated"
558
  msgstr "Attivato"
559
 
560
- #: licence/templates/panel/activation/activation-panel.php:91
561
- #: licence/templates/panel/activation/activation-panel.php:123
562
- #: licence/templates/panel/activation/activation-panel.php:147
563
  msgid "Product Name"
564
  msgstr "Nome prodotto"
565
 
566
- #: licence/templates/panel/activation/activation-panel.php:92
567
- #: licence/templates/panel/activation/activation-panel.php:124
568
- #: licence/templates/panel/activation/activation-panel.php:148
569
- #: templates/metaboxes/types/contactform.php:148
570
- #: templates/metaboxes/types/contactform.php:340
571
- msgid "Email"
572
- msgstr "Email"
573
-
574
  #: licence/templates/panel/activation/activation-panel.php:93
575
- #: licence/templates/panel/activation/activation-panel.php:125
576
- #: licence/templates/panel/activation/activation-panel.php:149
577
- msgid "Licence Key"
578
- msgstr "Chiave di licenza"
579
-
580
- #: licence/templates/panel/activation/activation-panel.php:94
581
- #: licence/templates/panel/activation/activation-panel.php:150
582
  msgid "Expires"
583
  msgstr "Scadenza"
584
 
585
- #: licence/templates/panel/activation/activation-panel.php:95
586
  msgid "Remaining"
587
  msgstr "Tempo rimanente"
588
 
589
- #: licence/templates/panel/activation/activation-panel.php:96
590
- #: licence/templates/panel/activation/activation-panel.php:109
591
- #: licence/templates/panel/activation/activation-panel.php:151
592
- #: licence/templates/panel/activation/activation-panel.php:161
593
- msgid "Renew"
594
- msgstr "Rinnova"
595
 
596
- #: licence/templates/panel/activation/activation-panel.php:107
 
 
 
 
597
  #, php-format
598
  msgid "%1s out of %2s"
599
  msgstr "%1s di %2s"
600
 
601
- #: licence/templates/panel/activation/activation-panel.php:119
 
 
 
 
 
 
 
 
 
 
602
  msgid "Banned"
603
  msgstr "Bloccato"
604
 
605
- #: licence/templates/panel/activation/activation-panel.php:143
606
  msgid "Expired"
607
  msgstr "Non più valido"
608
 
 
 
 
 
609
  #: templates/metaboxes/types/ajax-products.php:23
610
  msgid "Search for a product"
611
  msgstr "Cerca un prodotto"
@@ -802,7 +825,7 @@ msgstr "Icona"
802
  #: templates/metaboxes/types/icon-list.php:69
803
  #: templates/metaboxes/types/select-icon.php:33
804
  #: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
805
- #: templates/panel/woocommerce/woocommerce-upload.php:35
806
  msgid "Upload"
807
  msgstr "Carica"
808
 
@@ -970,10 +993,77 @@ msgstr "Corsivo"
970
  msgid "Italic bold"
971
  msgstr "Grassetto corsivo"
972
 
973
- #: templates/panel/woocommerce/woocommerce-form.php:10
974
  msgid "Reset Defaults"
975
  msgstr "Ripristina impostazioni iniziali"
976
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
977
  #~ msgid "%field_1% and %field_2% fields cannot be empty"
978
  #~ msgstr "I campi %field_1% e %field_2% non possono essere vuoti"
979
 
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
7
+ "POT-Creation-Date: 2015-11-16 12:23+0100\n"
8
+ "PO-Revision-Date: 2015-11-16 12:24+0100\n"
9
  "Last-Translator: \n"
10
+ "Language-Team: YIThemes <plugins@yithemes.com>\n"
11
+ "Language: it_IT\n"
12
  "MIME-Version: 1.0\n"
13
+ "Content-Type: text/plain; charset=UTF-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
+ "X-Generator: Poedit 1.8.1\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c\n"
136
  msgstr "Tipologia"
137
 
138
  #: lib/yit-cpt-unlimited.php:1052
139
+ #, php-format
140
+ msgid "Layout for this %s"
141
+ msgstr ""
142
 
143
  #: lib/yit-cpt-unlimited.php:1058
144
  msgid "Rewrite"
221
  msgstr "Aggiungi %s dalla immagini"
222
 
223
  #: lib/yit-cpt-unlimited.php:1633
224
+ msgid "Upload multiple files"
225
+ msgstr ""
226
 
227
+ #: lib/yit-plugin-panel-wc.php:336
228
  msgid "The changes you have made will be lost if you leave this page."
229
  msgstr "Perderai tutti i cambiamenti effettuati se lasci questa pagina."
230
 
232
  msgid "Plugin Settings"
233
  msgstr "Impostazioni plugin"
234
 
235
+ #: lib/yit-plugin-panel.php:96 lib/yit-plugin-subpanel.php:101
236
  msgid "YIT Plugins"
237
  msgstr "YIT Plugins"
238
 
239
+ #: lib/yit-plugin-panel.php:288 lib/yit-plugin-subpanel.php:143
240
  #: templates/panel/woocommerce/woocommerce-form.php:5
241
  msgid "Save Changes"
242
  msgstr "Salva modifiche"
243
 
244
+ #: lib/yit-plugin-panel.php:291 templates/panel/woocommerce/woocommerce-form.php:8
245
  msgid "If you continue with this action, you will reset all options in this page."
246
  msgstr ""
247
  "Se prosegui con questa azione, tutte le opzioni di questa pagina saranno "
248
  "reimpostate."
249
 
250
+ #: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
251
+ msgid "Reset to default"
252
+ msgstr ""
253
 
254
+ #: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
255
+ #: templates/panel/woocommerce/woocommerce-form.php:11
256
  msgid "Are you sure?"
257
  msgstr "Sei sicuro?"
258
 
259
+ #: lib/yit-plugin-panel.php:427
260
  msgid "The element you have entered already exists. Please, enter another name."
261
  msgstr "L'elemento inserito esiste già. Per favore, inserisci un altro nome."
262
 
263
+ #: lib/yit-plugin-panel.php:428
264
  msgid "Settings saved"
265
  msgstr "Impostazioni salvate"
266
 
267
+ #: lib/yit-plugin-panel.php:429
268
  msgid "Settings reset"
269
  msgstr "Impostazioni azzerate"
270
 
271
+ #: lib/yit-plugin-panel.php:430
272
  msgid "Element deleted correctly."
273
  msgstr "Elemento rimosso correttamente."
274
 
275
+ #: lib/yit-plugin-panel.php:431 lib/yit-plugin-panel.php:432
276
  msgid "Element updated correctly."
277
  msgstr "Elemento aggiornato correttamente."
278
 
279
+ #: lib/yit-plugin-panel.php:433
280
  msgid "Database imported correctly."
281
  msgstr "Database importato correttamente."
282
 
283
+ #: lib/yit-plugin-panel.php:434
284
  msgid "An error has occurred during import. Please try again."
285
  msgstr "Si è verificato un errore durante l'importazione. Prova di nuovo."
286
 
287
+ #: lib/yit-plugin-panel.php:435
288
  msgid "The added file is not valid."
289
  msgstr "Il file aggiunto non è valido."
290
 
291
+ #: lib/yit-plugin-panel.php:436
292
  msgid "Sorry, import is disabled."
293
  msgstr "Ci dispiace, l'importazione è disabilitata."
294
 
295
+ #: lib/yit-plugin-panel.php:437
296
  msgid "Sorting successful."
297
  msgstr "Ordinamento effettuato con successo."
298
 
299
+ #: lib/yit-plugin-subpanel.php:146
300
  msgid ""
301
  "If you continue with this action, you will reset all the options in this page."
302
  msgstr ""
368
  msgid "Update now."
369
  msgstr "Aggiorna adesso."
370
 
371
+ #: lib/yit-upgrade.php:250
372
  msgid "Yithemes Repository"
373
  msgstr "Repository YIThemes"
374
 
375
+ #: lib/yit-upgrade.php:284
376
  msgid "Invalid URL Provided."
377
  msgstr "L'URL inserito non è valido."
378
 
379
+ #: lib/yit-upgrade.php:297
380
  msgid "Could not create Temporary file."
381
  msgstr "Non è stato possibile creare il file temporaneo."
382
 
383
+ #: lib/yit-upgrade.php:439
384
  #, php-format
385
  msgid ""
386
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
389
  "È disponibile una nuova versione di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
390
  "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a>."
391
 
392
+ #: lib/yit-upgrade.php:441
393
  #, php-format
394
  msgid ""
395
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
402
  "<em>Per poter usufruire degli aggiornamenti automatici è necessario attivare il "
403
  "plugin su un solo sito.</em>"
404
 
405
+ #: lib/yit-upgrade.php:443
406
  #, php-format
407
  msgid ""
408
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
409
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
410
+ "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"License "
411
  "activation\">activate</a> your copy of %6s.</em>"
412
  msgstr ""
 
 
 
 
 
413
 
414
+ #: lib/yit-upgrade.php:445
415
  #, php-format
416
  msgid ""
417
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
422
  "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</a> "
423
  "oppure <a href=\"%5$s\">aggiorna adesso</a>."
424
 
425
+ #: lib/yit-upgrade.php:518
426
  msgid "You can't update the plugins for this site."
427
  msgstr "Non è possibile aggiornare i plugin per questo sito."
428
 
429
+ #: lib/yit-upgrade.php:522
430
  msgid "You do not have sufficient permissions to update the plugins for this site."
431
  msgstr ""
432
  "Non sei in possesso delle autorizzazioni necessarie per aggiornare i plugin in "
433
  "questo sito."
434
 
435
+ #: lib/yit-upgrade.php:529
436
  msgid "Update Plugin"
437
  msgstr "Aggiorna plugin"
438
 
439
+ #: licence/lib/yit-licence.php:170
440
  #, php-format
441
  msgctxt "%s = field name"
442
  msgid "%s field cannot be empty"
443
  msgstr "Il campo %s non può essere vuoto"
444
 
445
+ #: licence/lib/yit-licence.php:171
446
  #, php-format
447
  msgid "%s and %s fields cannot be empty"
448
  msgstr "I campi %s e %s non possono essere vuoti"
449
 
450
+ #: licence/lib/yit-licence.php:172
451
  msgid "Unable to contact the remote server, please try again later. Thanks!"
452
  msgstr "Impossibile contattare il server remoto, prova più tardi. Grazie!"
453
 
454
+ #: licence/lib/yit-licence.php:173
455
+ #: licence/templates/panel/activation/activation-panel.php:89
456
+ #: licence/templates/panel/activation/activation-panel.php:164
457
+ #: licence/templates/panel/activation/activation-panel.php:195
458
+ #: templates/metaboxes/types/contactform.php:148
459
+ #: templates/metaboxes/types/contactform.php:340
460
+ msgid "Email"
461
+ msgstr "Email"
462
+
463
+ #: licence/lib/yit-licence.php:174
464
+ #: licence/templates/panel/activation/activation-panel.php:90
465
+ #: licence/templates/panel/activation/activation-panel.php:165
466
+ #: licence/templates/panel/activation/activation-panel.php:196
467
+ msgid "License Key"
468
+ msgstr ""
469
+
470
+ #: licence/lib/yit-licence.php:175
471
+ msgid "Are you sure you want to deactivate the license for current site?"
472
+ msgstr ""
473
+
474
+ #: licence/lib/yit-licence.php:638
475
  msgid "Invalid Request"
476
  msgstr "Richiesta non valida"
477
 
478
+ #: licence/lib/yit-licence.php:639
479
+ msgid "Invalid license key"
480
+ msgstr ""
481
 
482
+ #: licence/lib/yit-licence.php:640
483
  msgid "Software has been deactivated"
484
  msgstr "Il software è stato disattivato"
485
 
486
+ #: licence/lib/yit-licence.php:641
487
  msgid "Maximum number of activations exceeded"
488
  msgstr "Hai raggiunto il numero massimo di attivazioni"
489
 
490
+ #: licence/lib/yit-licence.php:642
491
  msgid "Invalid instance ID"
492
  msgstr "Istanza ID non valida"
493
 
494
+ #: licence/lib/yit-licence.php:643
495
  msgid "Invalid security key"
496
  msgstr "Chiave di sicurezza non valida"
497
 
498
+ #: licence/lib/yit-licence.php:644
499
+ msgid "License key has expired"
500
+ msgstr ""
501
+
502
+ #: licence/lib/yit-licence.php:645
503
+ msgid "License key has been banned"
504
+ msgstr ""
505
+
506
+ #: licence/lib/yit-licence.php:646
507
+ msgid "Great"
508
+ msgstr ""
509
+
510
+ #: licence/lib/yit-licence.php:646
511
+ msgid "License successfully activated"
512
+ msgstr ""
513
 
514
+ #: licence/lib/yit-licence.php:647
515
+ msgid "License key deactivated for website"
516
+ msgstr ""
517
 
518
+ #: licence/lib/yit-plugin-licence.php:68 licence/lib/yit-plugin-licence.php:69
519
+ #: licence/lib/yit-theme-licence.php:70 licence/lib/yit-theme-licence.php:71
520
+ #: licence/lib/yit-theme-licence.php:110 licence/lib/yit-theme-licence.php:111
521
+ msgid "License Activation"
522
+ msgstr ""
523
 
524
+ #: licence/lib/yit-theme-licence.php:118 licence/lib/yit-theme-licence.php:119
525
  #, php-format
526
  msgid "%s"
527
  msgstr "%s"
528
 
529
+ #: licence/lib/yit-theme-licence.php:160
 
 
 
 
530
  msgid ""
531
  "I cannot find the license key for activating the theme I have bought some time "
532
  "ago. Where can I find it?"
534
  "Non riesco a trovare la chiave di licenza per l'attivazione del tema che ho "
535
  "acquistato diverso tempo fa. Dove posso trovarla?"
536
 
537
+ #: licence/lib/yit-theme-licence.php:163
538
  msgid ""
539
  "If you have purchased one of our products before 27 January 2015, you can benefit "
540
  "from support and updates (the services offered with the license)\n"
541
+ " until 27 January 2016 and you do not have to purchase it again "
542
+ "to get a new license key, because, before this date, your license used to be "
543
+ "activated automatically by our system.\n"
544
+ " After 27 January 2016, instead, if you want to benefit from "
545
+ "support and updates you have to buy a new license and activate it through the "
546
+ "license key you will be\n"
547
+ " provided with and that you can find in your YIThemes account, "
548
+ "in section \"My licenses\"."
549
+ msgstr ""
550
+
551
+ #: licence/templates/panel/activation/activation-panel.php:22
552
+ msgid "Yithemes License Activation"
553
+ msgstr ""
554
+
555
+ #: licence/templates/panel/activation/activation-panel.php:28
 
 
 
 
 
556
  msgid ""
557
  "Have you updated your licenses? Have you asked for an extension? Update "
558
  "information concerning your products."
560
  "Hai aggiornato la tua licenza? Hai richiesto un'estensione? Aggiorna le "
561
  "informazioni dei tuoi prodotti."
562
 
563
+ #: licence/templates/panel/activation/activation-panel.php:30
564
+ msgid "Update license information"
565
+ msgstr ""
566
 
567
+ #: licence/templates/panel/activation/activation-panel.php:43
568
+ msgid "Product to activate"
569
+ msgid_plural "Products to activate"
570
+ msgstr[0] ""
571
+ msgstr[1] ""
572
 
573
+ #: licence/templates/panel/activation/activation-panel.php:62
574
  msgid "Activate"
575
  msgstr "Attiva"
576
 
577
+ #: licence/templates/panel/activation/activation-panel.php:81
578
  msgid "Activated"
579
  msgstr "Attivato"
580
 
581
+ #: licence/templates/panel/activation/activation-panel.php:87
582
+ #: licence/templates/panel/activation/activation-panel.php:162
583
+ #: licence/templates/panel/activation/activation-panel.php:192
584
  msgid "Product Name"
585
  msgstr "Nome prodotto"
586
 
 
 
 
 
 
 
 
 
587
  #: licence/templates/panel/activation/activation-panel.php:93
588
+ #: licence/templates/panel/activation/activation-panel.php:199
 
 
 
 
 
 
589
  msgid "Expires"
590
  msgstr "Scadenza"
591
 
592
+ #: licence/templates/panel/activation/activation-panel.php:96
593
  msgid "Remaining"
594
  msgstr "Tempo rimanente"
595
 
596
+ #: licence/templates/panel/activation/activation-panel.php:97
597
+ #: licence/templates/panel/activation/activation-panel.php:223
598
+ msgid "Membership"
599
+ msgstr ""
 
 
600
 
601
+ #: licence/templates/panel/activation/activation-panel.php:100
602
+ msgid "License Actions"
603
+ msgstr ""
604
+
605
+ #: licence/templates/panel/activation/activation-panel.php:125
606
  #, php-format
607
  msgid "%1s out of %2s"
608
  msgstr "%1s di %2s"
609
 
610
+ #: licence/templates/panel/activation/activation-panel.php:140
611
+ msgid "Deactivate"
612
+ msgstr ""
613
+
614
+ #: licence/templates/panel/activation/activation-panel.php:145
615
+ #: licence/templates/panel/activation/activation-panel.php:202
616
+ #: licence/templates/panel/activation/activation-panel.php:223
617
+ msgid "Renew"
618
+ msgstr "Rinnova"
619
+
620
+ #: licence/templates/panel/activation/activation-panel.php:158
621
  msgid "Banned"
622
  msgstr "Bloccato"
623
 
624
+ #: licence/templates/panel/activation/activation-panel.php:188
625
  msgid "Expired"
626
  msgstr "Non più valido"
627
 
628
+ #: licence/templates/panel/activation/activation-panel.php:223
629
+ msgid "License"
630
+ msgstr ""
631
+
632
  #: templates/metaboxes/types/ajax-products.php:23
633
  msgid "Search for a product"
634
  msgstr "Cerca un prodotto"
825
  #: templates/metaboxes/types/icon-list.php:69
826
  #: templates/metaboxes/types/select-icon.php:33
827
  #: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
828
+ #: templates/panel/woocommerce/woocommerce-upload.php:40
829
  msgid "Upload"
830
  msgstr "Carica"
831
 
993
  msgid "Italic bold"
994
  msgstr "Grassetto corsivo"
995
 
996
+ #: templates/panel/woocommerce/woocommerce-form.php:11
997
  msgid "Reset Defaults"
998
  msgstr "Ripristina impostazioni iniziali"
999
 
1000
+ #~ msgid "Layout for this "
1001
+ #~ msgstr "Layout per questo"
1002
+
1003
+ #~ msgid "Add with multiupload"
1004
+ #~ msgstr "Aggiungi con caricamento multiplo"
1005
+
1006
+ #~ msgid "Reset to Default"
1007
+ #~ msgstr "Ripristina impostazioni iniziali"
1008
+
1009
+ #~ msgid ""
1010
+ #~ "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
1011
+ #~ "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
1012
+ #~ "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"Licence "
1013
+ #~ "activation\">activate</a> your copy of %6s.</em>"
1014
+ #~ msgstr ""
1015
+ #~ "È disponibile una nuova versioni di %1$s. <a href=\"%2$s\" class=\"thickbox yit-"
1016
+ #~ "changelog-button\" title=\"%3$s\">Visualizza i dettagli della versione %4$s</"
1017
+ #~ "a>. <em>Gli aggiornamenti automatici non sono disponibili per questo plugi, per "
1018
+ #~ "favore, <a href=\"%5$s\" title=\"Licence activation\">attiva</a> la tua copia "
1019
+ #~ "di %6s.</em>"
1020
+
1021
+ #~ msgid "Invalid licence key"
1022
+ #~ msgstr "Chiave di licenza non valida"
1023
+
1024
+ #~ msgid "Licence key has expired"
1025
+ #~ msgstr "Questa chiave di licenza è scaduta"
1026
+
1027
+ #~ msgid "Licence key has been banned"
1028
+ #~ msgstr "Questa chiave di licenza è stata bloccata"
1029
+
1030
+ #~ msgid "Licence Activation"
1031
+ #~ msgstr "Attivazione licenza"
1032
+
1033
+ #~ msgid "Yithemes Licence Activation"
1034
+ #~ msgstr "Attivazione licenza YIThemes"
1035
+
1036
+ #~ msgid ""
1037
+ #~ "If you have purchased one of our products before 27 January 2015, you can "
1038
+ #~ "benefit from support and updates (the services offered with the license)\n"
1039
+ #~ " until 27 January 2016 and you do not have to purchase it again to "
1040
+ #~ "get a new license key, because, before this date, your license used to be "
1041
+ #~ "activated automatically by our system.\n"
1042
+ #~ " After 27 January 2016, instead, if you want to benefit from support "
1043
+ #~ "and updates you have to buy a new license and activate it through the license "
1044
+ #~ "key you will be\n"
1045
+ #~ " provided with and that you can find in your YIThemes account, in "
1046
+ #~ "section \"My licenses\"."
1047
+ #~ msgstr ""
1048
+ #~ "Se hai acquistato un nostro prodotto prima del 27 gennaio 2015 potrai accedere "
1049
+ #~ "al supporto e scaricare gli aggiornamenti fino al 27 gennaio 2016 e non avrai "
1050
+ #~ "bisogno di una chiave di licenza,\n"
1051
+ #~ "in quanto la tua licenza prima di questa data veniva attivata in modo "
1052
+ #~ "automatico dal nostro sistema.\n"
1053
+ #~ "Dopo il 27 gennaio 2016, invece, per poter usufruire del servizio di supporto e "
1054
+ #~ "degli aggiornamenti dovrai riacquistare il prodotto e\n"
1055
+ #~ "attivarlo con la chiave di licenza che ti sarà fornita e che puoi trovare sul "
1056
+ #~ "tuo account YIThemes, alla voce \"Le mie licenze\"."
1057
+
1058
+ #~ msgid "Update licence information"
1059
+ #~ msgstr "Aggiorna le informazioni di licenza"
1060
+
1061
+ #~ msgid "Products to be activated"
1062
+ #~ msgstr "Prodotti da attivare"
1063
+
1064
+ #~ msgid "Licence Key"
1065
+ #~ msgstr "Chiave di licenza"
1066
+
1067
  #~ msgid "%field_1% and %field_2% fields cannot be empty"
1068
  #~ msgstr "I campi %field_1% e %field_2% non possono essere vuoti"
1069
 
plugin-fw/languages/yith-plugin-fw.pot CHANGED
@@ -1,10 +1,11 @@
1
  # Copyright (C) 2015 YIThemes
2
  # This file is distributed under the same license as the YITH Plugin Starter package.
 
3
  msgid ""
4
  msgstr ""
5
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
6
  "Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
7
- "POT-Creation-Date: 2015-05-05 10:38+0100\n"
8
  "PO-Revision-Date: 2015-05-05 10:38+0100\n"
9
  "Last-Translator: \n"
10
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
@@ -12,7 +13,7 @@ msgstr ""
12
  "MIME-Version: 1.0\n"
13
  "Content-Type: text/plain; charset=utf-8\n"
14
  "Content-Transfer-Encoding: 8bit\n"
15
- "X-Generator: Poedit 1.7.6\n"
16
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
17
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
18
  "esc_html_x:1,2c\n"
@@ -136,7 +137,8 @@ msgid "Type"
136
  msgstr ""
137
 
138
  #: lib/yit-cpt-unlimited.php:1052
139
- msgid "Layout for this "
 
140
  msgstr ""
141
 
142
  #: lib/yit-cpt-unlimited.php:1058
@@ -215,10 +217,10 @@ msgid "Add %s from images"
215
  msgstr ""
216
 
217
  #: lib/yit-cpt-unlimited.php:1633
218
- msgid "Add with multiupload"
219
  msgstr ""
220
 
221
- #: lib/yit-plugin-panel-wc.php:295
222
  msgid "The changes you have made will be lost if you leave this page."
223
  msgstr ""
224
 
@@ -226,69 +228,69 @@ msgstr ""
226
  msgid "Plugin Settings"
227
  msgstr ""
228
 
229
- #: lib/yit-plugin-panel.php:95 lib/yit-plugin-subpanel.php:101
230
  msgid "YIT Plugins"
231
  msgstr ""
232
 
233
- #: lib/yit-plugin-panel.php:292 lib/yit-plugin-subpanel.php:142
234
  #: templates/panel/woocommerce/woocommerce-form.php:5
235
  msgid "Save Changes"
236
  msgstr ""
237
 
238
- #: lib/yit-plugin-panel.php:295 templates/panel/woocommerce/woocommerce-form.php:8
239
  msgid "If you continue with this action, you will reset all options in this page."
240
  msgstr ""
241
 
242
- #: lib/yit-plugin-panel.php:297 lib/yit-plugin-subpanel.php:147
243
- msgid "Reset to Default"
244
  msgstr ""
245
 
246
- #: lib/yit-plugin-panel.php:297 lib/yit-plugin-subpanel.php:147
247
- #: templates/panel/woocommerce/woocommerce-form.php:10
248
  msgid "Are you sure?"
249
  msgstr ""
250
 
251
- #: lib/yit-plugin-panel.php:431
252
  msgid "The element you have entered already exists. Please, enter another name."
253
  msgstr ""
254
 
255
- #: lib/yit-plugin-panel.php:432
256
  msgid "Settings saved"
257
  msgstr ""
258
 
259
- #: lib/yit-plugin-panel.php:433
260
  msgid "Settings reset"
261
  msgstr ""
262
 
263
- #: lib/yit-plugin-panel.php:434
264
  msgid "Element deleted correctly."
265
  msgstr ""
266
 
267
- #: lib/yit-plugin-panel.php:435 lib/yit-plugin-panel.php:436
268
  msgid "Element updated correctly."
269
  msgstr ""
270
 
271
- #: lib/yit-plugin-panel.php:437
272
  msgid "Database imported correctly."
273
  msgstr ""
274
 
275
- #: lib/yit-plugin-panel.php:438
276
  msgid "An error has occurred during import. Please try again."
277
  msgstr ""
278
 
279
- #: lib/yit-plugin-panel.php:439
280
  msgid "The added file is not valid."
281
  msgstr ""
282
 
283
- #: lib/yit-plugin-panel.php:440
284
  msgid "Sorry, import is disabled."
285
  msgstr ""
286
 
287
- #: lib/yit-plugin-panel.php:441
288
  msgid "Sorting successful."
289
  msgstr ""
290
 
291
- #: lib/yit-plugin-subpanel.php:145
292
  msgid ""
293
  "If you continue with this action, you will reset all the options in this page."
294
  msgstr ""
@@ -347,26 +349,26 @@ msgstr ""
347
  msgid "Update now."
348
  msgstr ""
349
 
350
- #: lib/yit-upgrade.php:230
351
  msgid "Yithemes Repository"
352
  msgstr ""
353
 
354
- #: lib/yit-upgrade.php:264
355
  msgid "Invalid URL Provided."
356
  msgstr ""
357
 
358
- #: lib/yit-upgrade.php:277
359
  msgid "Could not create Temporary file."
360
  msgstr ""
361
 
362
- #: lib/yit-upgrade.php:419
363
  #, php-format
364
  msgid ""
365
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
366
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>."
367
  msgstr ""
368
 
369
- #: lib/yit-upgrade.php:421
370
  #, php-format
371
  msgid ""
372
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
@@ -375,16 +377,16 @@ msgid ""
375
  "updates.</em>"
376
  msgstr ""
377
 
378
- #: lib/yit-upgrade.php:423
379
  #, php-format
380
  msgid ""
381
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
382
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
383
- "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"Licence "
384
  "activation\">activate</a> your copy of %6s.</em>"
385
  msgstr ""
386
 
387
- #: lib/yit-upgrade.php:425
388
  #, php-format
389
  msgid ""
390
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
@@ -392,169 +394,207 @@ msgid ""
392
  "\">update now</a>."
393
  msgstr ""
394
 
395
- #: lib/yit-upgrade.php:498
396
  msgid "You can't update the plugins for this site."
397
  msgstr ""
398
 
399
- #: lib/yit-upgrade.php:502
400
  msgid "You do not have sufficient permissions to update the plugins for this site."
401
  msgstr ""
402
 
403
- #: lib/yit-upgrade.php:509
404
  msgid "Update Plugin"
405
  msgstr ""
406
 
407
- #: licence/lib/yit-licence.php:161
408
  #, php-format
409
- msgid "%field% field cannot be empty"
 
410
  msgstr ""
411
 
412
- #: licence/lib/yit-licence.php:162
413
- msgid "%field_1% and %field_2% fields cannot be empty"
 
414
  msgstr ""
415
 
416
- #: licence/lib/yit-licence.php:163
417
  msgid "Unable to contact the remote server, please try again later. Thanks!"
418
  msgstr ""
419
 
420
- #: licence/lib/yit-licence.php:548
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
  msgid "Invalid Request"
422
  msgstr ""
423
 
424
- #: licence/lib/yit-licence.php:549
425
- msgid "Invalid licence key"
426
  msgstr ""
427
 
428
- #: licence/lib/yit-licence.php:550
429
  msgid "Software has been deactivated"
430
  msgstr ""
431
 
432
- #: licence/lib/yit-licence.php:551
433
  msgid "Maximum number of activations exceeded"
434
  msgstr ""
435
 
436
- #: licence/lib/yit-licence.php:552
437
  msgid "Invalid instance ID"
438
  msgstr ""
439
 
440
- #: licence/lib/yit-licence.php:553
441
  msgid "Invalid security key"
442
  msgstr ""
443
 
444
- #: licence/lib/yit-licence.php:554
445
- msgid "Licence key has expired"
446
  msgstr ""
447
 
448
- #: licence/lib/yit-licence.php:555
449
- msgid "Licence key has been banned"
450
  msgstr ""
451
 
452
- #: licence/lib/yit-plugin-licence.php:64 licence/lib/yit-plugin-licence.php:65
453
- #: licence/lib/yit-theme-licence.php:64 licence/lib/yit-theme-licence.php:65
454
- #: licence/lib/yit-theme-licence.php:107 licence/lib/yit-theme-licence.php:108
455
- msgid "Licence Activation"
456
  msgstr ""
457
 
458
- #: licence/lib/yit-theme-licence.php:115 licence/lib/yit-theme-licence.php:116
459
- #, php-format
460
- msgid "%s"
461
  msgstr ""
462
 
463
- #: licence/templates/panel/activation/activation-panel.php:19
464
- msgid "Yithemes Licence Activation"
465
  msgstr ""
466
 
467
- #: licence/templates/panel/activation/activation-panel.php:23
 
 
 
 
 
 
 
 
 
 
 
468
  msgid ""
469
  "I cannot find the license key for activating the theme I have bought some time "
470
  "ago. Where can I find it?"
471
  msgstr ""
472
 
473
- #: licence/templates/panel/activation/activation-panel.php:26
474
  msgid ""
475
  "If you have purchased one of our products before 27 January 2015, you can benefit "
476
  "from support and updates (the services offered with the license)\n"
477
- " until 27 January 2016 and you do not have to purchase it again to get "
478
- "a new license key, because, before this date, your license used to be activated "
479
- "automatically by our system.\n"
480
- " After 27 January 2016, instead, if you want to benefit from support "
481
- "and updates you have to buy a new license and activate it through the license key "
482
- "you will be\n"
483
- " provided with and that you can find in your YIThemes account, in "
484
- "section \"My licenses\"."
485
  msgstr ""
486
 
487
- #: licence/templates/panel/activation/activation-panel.php:37
 
 
 
 
488
  msgid ""
489
  "Have you updated your licenses? Have you asked for an extension? Update "
490
  "information concerning your products."
491
  msgstr ""
492
 
493
- #: licence/templates/panel/activation/activation-panel.php:39
494
- msgid "Update licence information"
495
  msgstr ""
496
 
497
- #: licence/templates/panel/activation/activation-panel.php:49
498
- msgid "Products to be activated"
499
- msgstr ""
 
 
500
 
501
- #: licence/templates/panel/activation/activation-panel.php:68
502
  msgid "Activate"
503
  msgstr ""
504
 
505
- #: licence/templates/panel/activation/activation-panel.php:87
506
  msgid "Activated"
507
  msgstr ""
508
 
509
- #: licence/templates/panel/activation/activation-panel.php:91
510
- #: licence/templates/panel/activation/activation-panel.php:123
511
- #: licence/templates/panel/activation/activation-panel.php:147
512
  msgid "Product Name"
513
  msgstr ""
514
 
515
- #: licence/templates/panel/activation/activation-panel.php:92
516
- #: licence/templates/panel/activation/activation-panel.php:124
517
- #: licence/templates/panel/activation/activation-panel.php:148
518
- #: templates/metaboxes/types/contactform.php:148
519
- #: templates/metaboxes/types/contactform.php:340
520
- msgid "Email"
521
- msgstr ""
522
-
523
  #: licence/templates/panel/activation/activation-panel.php:93
524
- #: licence/templates/panel/activation/activation-panel.php:125
525
- #: licence/templates/panel/activation/activation-panel.php:149
526
- msgid "Licence Key"
527
- msgstr ""
528
-
529
- #: licence/templates/panel/activation/activation-panel.php:94
530
- #: licence/templates/panel/activation/activation-panel.php:150
531
  msgid "Expires"
532
  msgstr ""
533
 
534
- #: licence/templates/panel/activation/activation-panel.php:95
535
  msgid "Remaining"
536
  msgstr ""
537
 
538
- #: licence/templates/panel/activation/activation-panel.php:96
539
- #: licence/templates/panel/activation/activation-panel.php:109
540
- #: licence/templates/panel/activation/activation-panel.php:151
541
- #: licence/templates/panel/activation/activation-panel.php:161
542
- msgid "Renew"
 
 
543
  msgstr ""
544
 
545
- #: licence/templates/panel/activation/activation-panel.php:107
546
  #, php-format
547
  msgid "%1s out of %2s"
548
  msgstr ""
549
 
550
- #: licence/templates/panel/activation/activation-panel.php:119
 
 
 
 
 
 
 
 
 
 
551
  msgid "Banned"
552
  msgstr ""
553
 
554
- #: licence/templates/panel/activation/activation-panel.php:143
555
  msgid "Expired"
556
  msgstr ""
557
 
 
 
 
 
558
  #: templates/metaboxes/types/ajax-products.php:23
559
  msgid "Search for a product"
560
  msgstr ""
@@ -630,7 +670,7 @@ msgstr ""
630
 
631
  #: templates/metaboxes/types/contactform.php:77
632
  #: templates/metaboxes/types/contactform.php:269
633
- msgid "Title Field"
634
  msgstr ""
635
 
636
  #: templates/metaboxes/types/contactform.php:81
@@ -652,7 +692,7 @@ msgstr ""
652
 
653
  #: templates/metaboxes/types/contactform.php:95
654
  #: templates/metaboxes/types/contactform.php:287
655
- msgid "Type field"
656
  msgstr ""
657
 
658
  #: templates/metaboxes/types/contactform.php:103
@@ -747,7 +787,7 @@ msgstr ""
747
  #: templates/metaboxes/types/icon-list.php:69
748
  #: templates/metaboxes/types/select-icon.php:33
749
  #: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
750
- #: templates/panel/woocommerce/woocommerce-upload.php:35
751
  msgid "Upload"
752
  msgstr ""
753
 
@@ -915,6 +955,6 @@ msgstr ""
915
  msgid "Italic bold"
916
  msgstr ""
917
 
918
- #: templates/panel/woocommerce/woocommerce-form.php:10
919
  msgid "Reset Defaults"
920
  msgstr ""
1
  # Copyright (C) 2015 YIThemes
2
  # This file is distributed under the same license as the YITH Plugin Starter package.
3
+ #, fuzzy
4
  msgid ""
5
  msgstr ""
6
  "Project-Id-Version: YITH Plugin Starter 1.0.0 Plugin FW\n"
7
  "Report-Msgid-Bugs-To: Your Inspiration Themes <plugins@yithemes.com>\n"
8
+ "POT-Creation-Date: 2015-11-16 12:23+0100\n"
9
  "PO-Revision-Date: 2015-05-05 10:38+0100\n"
10
  "Last-Translator: \n"
11
  "Language-Team: Your Inspiration Themes <info@yithemes.com>\n"
13
  "MIME-Version: 1.0\n"
14
  "Content-Type: text/plain; charset=utf-8\n"
15
  "Content-Transfer-Encoding: 8bit\n"
16
+ "X-Generator: Poedit 1.8.1\n"
17
  "X-Poedit-KeywordsList: __;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;"
18
  "_nx_noop:1,2,3c;esc_attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;"
19
  "esc_html_x:1,2c\n"
137
  msgstr ""
138
 
139
  #: lib/yit-cpt-unlimited.php:1052
140
+ #, php-format
141
+ msgid "Layout for this %s"
142
  msgstr ""
143
 
144
  #: lib/yit-cpt-unlimited.php:1058
217
  msgstr ""
218
 
219
  #: lib/yit-cpt-unlimited.php:1633
220
+ msgid "Upload multiple files"
221
  msgstr ""
222
 
223
+ #: lib/yit-plugin-panel-wc.php:336
224
  msgid "The changes you have made will be lost if you leave this page."
225
  msgstr ""
226
 
228
  msgid "Plugin Settings"
229
  msgstr ""
230
 
231
+ #: lib/yit-plugin-panel.php:96 lib/yit-plugin-subpanel.php:101
232
  msgid "YIT Plugins"
233
  msgstr ""
234
 
235
+ #: lib/yit-plugin-panel.php:288 lib/yit-plugin-subpanel.php:143
236
  #: templates/panel/woocommerce/woocommerce-form.php:5
237
  msgid "Save Changes"
238
  msgstr ""
239
 
240
+ #: lib/yit-plugin-panel.php:291 templates/panel/woocommerce/woocommerce-form.php:8
241
  msgid "If you continue with this action, you will reset all options in this page."
242
  msgstr ""
243
 
244
+ #: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
245
+ msgid "Reset to default"
246
  msgstr ""
247
 
248
+ #: lib/yit-plugin-panel.php:293 lib/yit-plugin-subpanel.php:148
249
+ #: templates/panel/woocommerce/woocommerce-form.php:11
250
  msgid "Are you sure?"
251
  msgstr ""
252
 
253
+ #: lib/yit-plugin-panel.php:427
254
  msgid "The element you have entered already exists. Please, enter another name."
255
  msgstr ""
256
 
257
+ #: lib/yit-plugin-panel.php:428
258
  msgid "Settings saved"
259
  msgstr ""
260
 
261
+ #: lib/yit-plugin-panel.php:429
262
  msgid "Settings reset"
263
  msgstr ""
264
 
265
+ #: lib/yit-plugin-panel.php:430
266
  msgid "Element deleted correctly."
267
  msgstr ""
268
 
269
+ #: lib/yit-plugin-panel.php:431 lib/yit-plugin-panel.php:432
270
  msgid "Element updated correctly."
271
  msgstr ""
272
 
273
+ #: lib/yit-plugin-panel.php:433
274
  msgid "Database imported correctly."
275
  msgstr ""
276
 
277
+ #: lib/yit-plugin-panel.php:434
278
  msgid "An error has occurred during import. Please try again."
279
  msgstr ""
280
 
281
+ #: lib/yit-plugin-panel.php:435
282
  msgid "The added file is not valid."
283
  msgstr ""
284
 
285
+ #: lib/yit-plugin-panel.php:436
286
  msgid "Sorry, import is disabled."
287
  msgstr ""
288
 
289
+ #: lib/yit-plugin-panel.php:437
290
  msgid "Sorting successful."
291
  msgstr ""
292
 
293
+ #: lib/yit-plugin-subpanel.php:146
294
  msgid ""
295
  "If you continue with this action, you will reset all the options in this page."
296
  msgstr ""
349
  msgid "Update now."
350
  msgstr ""
351
 
352
+ #: lib/yit-upgrade.php:250
353
  msgid "Yithemes Repository"
354
  msgstr ""
355
 
356
+ #: lib/yit-upgrade.php:284
357
  msgid "Invalid URL Provided."
358
  msgstr ""
359
 
360
+ #: lib/yit-upgrade.php:297
361
  msgid "Could not create Temporary file."
362
  msgstr ""
363
 
364
+ #: lib/yit-upgrade.php:439
365
  #, php-format
366
  msgid ""
367
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
368
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>."
369
  msgstr ""
370
 
371
+ #: lib/yit-upgrade.php:441
372
  #, php-format
373
  msgid ""
374
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
377
  "updates.</em>"
378
  msgstr ""
379
 
380
+ #: lib/yit-upgrade.php:443
381
  #, php-format
382
  msgid ""
383
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
384
  "changelog-button\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic "
385
+ "update is unavailable for this plugin, please <a href=\"%5$s\" title=\"License "
386
  "activation\">activate</a> your copy of %6s.</em>"
387
  msgstr ""
388
 
389
+ #: lib/yit-upgrade.php:445
390
  #, php-format
391
  msgid ""
392
  "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox yit-"
394
  "\">update now</a>."
395
  msgstr ""
396
 
397
+ #: lib/yit-upgrade.php:518
398
  msgid "You can't update the plugins for this site."
399
  msgstr ""
400
 
401
+ #: lib/yit-upgrade.php:522
402
  msgid "You do not have sufficient permissions to update the plugins for this site."
403
  msgstr ""
404
 
405
+ #: lib/yit-upgrade.php:529
406
  msgid "Update Plugin"
407
  msgstr ""
408
 
409
+ #: licence/lib/yit-licence.php:170
410
  #, php-format
411
+ msgctxt "%s = field name"
412
+ msgid "%s field cannot be empty"
413
  msgstr ""
414
 
415
+ #: licence/lib/yit-licence.php:171
416
+ #, php-format
417
+ msgid "%s and %s fields cannot be empty"
418
  msgstr ""
419
 
420
+ #: licence/lib/yit-licence.php:172
421
  msgid "Unable to contact the remote server, please try again later. Thanks!"
422
  msgstr ""
423
 
424
+ #: licence/lib/yit-licence.php:173
425
+ #: licence/templates/panel/activation/activation-panel.php:89
426
+ #: licence/templates/panel/activation/activation-panel.php:164
427
+ #: licence/templates/panel/activation/activation-panel.php:195
428
+ #: templates/metaboxes/types/contactform.php:148
429
+ #: templates/metaboxes/types/contactform.php:340
430
+ msgid "Email"
431
+ msgstr ""
432
+
433
+ #: licence/lib/yit-licence.php:174
434
+ #: licence/templates/panel/activation/activation-panel.php:90
435
+ #: licence/templates/panel/activation/activation-panel.php:165
436
+ #: licence/templates/panel/activation/activation-panel.php:196
437
+ msgid "License Key"
438
+ msgstr ""
439
+
440
+ #: licence/lib/yit-licence.php:175
441
+ msgid "Are you sure you want to deactivate the license for current site?"
442
+ msgstr ""
443
+
444
+ #: licence/lib/yit-licence.php:638
445
  msgid "Invalid Request"
446
  msgstr ""
447
 
448
+ #: licence/lib/yit-licence.php:639
449
+ msgid "Invalid license key"
450
  msgstr ""
451
 
452
+ #: licence/lib/yit-licence.php:640
453
  msgid "Software has been deactivated"
454
  msgstr ""
455
 
456
+ #: licence/lib/yit-licence.php:641
457
  msgid "Maximum number of activations exceeded"
458
  msgstr ""
459
 
460
+ #: licence/lib/yit-licence.php:642
461
  msgid "Invalid instance ID"
462
  msgstr ""
463
 
464
+ #: licence/lib/yit-licence.php:643
465
  msgid "Invalid security key"
466
  msgstr ""
467
 
468
+ #: licence/lib/yit-licence.php:644
469
+ msgid "License key has expired"
470
  msgstr ""
471
 
472
+ #: licence/lib/yit-licence.php:645
473
+ msgid "License key has been banned"
474
  msgstr ""
475
 
476
+ #: licence/lib/yit-licence.php:646
477
+ msgid "Great"
 
 
478
  msgstr ""
479
 
480
+ #: licence/lib/yit-licence.php:646
481
+ msgid "License successfully activated"
 
482
  msgstr ""
483
 
484
+ #: licence/lib/yit-licence.php:647
485
+ msgid "License key deactivated for website"
486
  msgstr ""
487
 
488
+ #: licence/lib/yit-plugin-licence.php:68 licence/lib/yit-plugin-licence.php:69
489
+ #: licence/lib/yit-theme-licence.php:70 licence/lib/yit-theme-licence.php:71
490
+ #: licence/lib/yit-theme-licence.php:110 licence/lib/yit-theme-licence.php:111
491
+ msgid "License Activation"
492
+ msgstr ""
493
+
494
+ #: licence/lib/yit-theme-licence.php:118 licence/lib/yit-theme-licence.php:119
495
+ #, php-format
496
+ msgid "%s"
497
+ msgstr ""
498
+
499
+ #: licence/lib/yit-theme-licence.php:160
500
  msgid ""
501
  "I cannot find the license key for activating the theme I have bought some time "
502
  "ago. Where can I find it?"
503
  msgstr ""
504
 
505
+ #: licence/lib/yit-theme-licence.php:163
506
  msgid ""
507
  "If you have purchased one of our products before 27 January 2015, you can benefit "
508
  "from support and updates (the services offered with the license)\n"
509
+ " until 27 January 2016 and you do not have to purchase it again "
510
+ "to get a new license key, because, before this date, your license used to be "
511
+ "activated automatically by our system.\n"
512
+ " After 27 January 2016, instead, if you want to benefit from "
513
+ "support and updates you have to buy a new license and activate it through the "
514
+ "license key you will be\n"
515
+ " provided with and that you can find in your YIThemes account, "
516
+ "in section \"My licenses\"."
517
  msgstr ""
518
 
519
+ #: licence/templates/panel/activation/activation-panel.php:22
520
+ msgid "Yithemes License Activation"
521
+ msgstr ""
522
+
523
+ #: licence/templates/panel/activation/activation-panel.php:28
524
  msgid ""
525
  "Have you updated your licenses? Have you asked for an extension? Update "
526
  "information concerning your products."
527
  msgstr ""
528
 
529
+ #: licence/templates/panel/activation/activation-panel.php:30
530
+ msgid "Update license information"
531
  msgstr ""
532
 
533
+ #: licence/templates/panel/activation/activation-panel.php:43
534
+ msgid "Product to activate"
535
+ msgid_plural "Products to activate"
536
+ msgstr[0] ""
537
+ msgstr[1] ""
538
 
539
+ #: licence/templates/panel/activation/activation-panel.php:62
540
  msgid "Activate"
541
  msgstr ""
542
 
543
+ #: licence/templates/panel/activation/activation-panel.php:81
544
  msgid "Activated"
545
  msgstr ""
546
 
547
+ #: licence/templates/panel/activation/activation-panel.php:87
548
+ #: licence/templates/panel/activation/activation-panel.php:162
549
+ #: licence/templates/panel/activation/activation-panel.php:192
550
  msgid "Product Name"
551
  msgstr ""
552
 
 
 
 
 
 
 
 
 
553
  #: licence/templates/panel/activation/activation-panel.php:93
554
+ #: licence/templates/panel/activation/activation-panel.php:199
 
 
 
 
 
 
555
  msgid "Expires"
556
  msgstr ""
557
 
558
+ #: licence/templates/panel/activation/activation-panel.php:96
559
  msgid "Remaining"
560
  msgstr ""
561
 
562
+ #: licence/templates/panel/activation/activation-panel.php:97
563
+ #: licence/templates/panel/activation/activation-panel.php:223
564
+ msgid "Membership"
565
+ msgstr ""
566
+
567
+ #: licence/templates/panel/activation/activation-panel.php:100
568
+ msgid "License Actions"
569
  msgstr ""
570
 
571
+ #: licence/templates/panel/activation/activation-panel.php:125
572
  #, php-format
573
  msgid "%1s out of %2s"
574
  msgstr ""
575
 
576
+ #: licence/templates/panel/activation/activation-panel.php:140
577
+ msgid "Deactivate"
578
+ msgstr ""
579
+
580
+ #: licence/templates/panel/activation/activation-panel.php:145
581
+ #: licence/templates/panel/activation/activation-panel.php:202
582
+ #: licence/templates/panel/activation/activation-panel.php:223
583
+ msgid "Renew"
584
+ msgstr ""
585
+
586
+ #: licence/templates/panel/activation/activation-panel.php:158
587
  msgid "Banned"
588
  msgstr ""
589
 
590
+ #: licence/templates/panel/activation/activation-panel.php:188
591
  msgid "Expired"
592
  msgstr ""
593
 
594
+ #: licence/templates/panel/activation/activation-panel.php:223
595
+ msgid "License"
596
+ msgstr ""
597
+
598
  #: templates/metaboxes/types/ajax-products.php:23
599
  msgid "Search for a product"
600
  msgstr ""
670
 
671
  #: templates/metaboxes/types/contactform.php:77
672
  #: templates/metaboxes/types/contactform.php:269
673
+ msgid "Field Title"
674
  msgstr ""
675
 
676
  #: templates/metaboxes/types/contactform.php:81
692
 
693
  #: templates/metaboxes/types/contactform.php:95
694
  #: templates/metaboxes/types/contactform.php:287
695
+ msgid "Field Type"
696
  msgstr ""
697
 
698
  #: templates/metaboxes/types/contactform.php:103
787
  #: templates/metaboxes/types/icon-list.php:69
788
  #: templates/metaboxes/types/select-icon.php:33
789
  #: templates/metaboxes/types/upload.php:21 templates/panel/types/upload.php:31
790
+ #: templates/panel/woocommerce/woocommerce-upload.php:40
791
  msgid "Upload"
792
  msgstr ""
793
 
955
  msgid "Italic bold"
956
  msgstr ""
957
 
958
+ #: templates/panel/woocommerce/woocommerce-form.php:11
959
  msgid "Reset Defaults"
960
  msgstr ""
plugin-fw/lib/yit-plugin-panel-wc.php CHANGED
@@ -319,22 +319,27 @@ if ( ! class_exists( 'YIT_Plugin_Panel_WooCommerce' ) ) {
319
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
320
  */
321
  public function admin_enqueue_scripts() {
322
- global $woocommerce;
323
 
324
  wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
325
 
326
  wp_enqueue_media();
327
  wp_enqueue_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce->version );
328
- wp_enqueue_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $woocommerce->version );
329
  wp_enqueue_style ( 'wp-jquery-ui-dialog' );
330
 
331
  wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
332
  wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
333
  wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', array( 'jquery', 'jquery-ui-datepicker','jquery-ui-dialog', 'jquery-ui-sortable', 'iris', 'chosen' ), $woocommerce->version, true );
334
- wp_enqueue_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.min.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
335
  wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
336
  'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
337
  ) );
 
 
 
 
 
338
  }
339
 
340
  /**
319
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
320
  */
321
  public function admin_enqueue_scripts() {
322
+ global $woocommerce, $pagenow;
323
 
324
  wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
325
 
326
  wp_enqueue_media();
327
  wp_enqueue_style( 'woocommerce_admin_styles', $woocommerce->plugin_url() . '/assets/css/admin.css', array(), $woocommerce->version );
328
+ wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $woocommerce->version );
329
  wp_enqueue_style ( 'wp-jquery-ui-dialog' );
330
 
331
  wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
332
  wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
333
  wp_enqueue_script( 'woocommerce_settings', $woocommerce->plugin_url() . '/assets/js/admin/settings.min.js', array( 'jquery', 'jquery-ui-datepicker','jquery-ui-dialog', 'jquery-ui-sortable', 'iris', 'chosen' ), $woocommerce->version, true );
334
+ wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.min.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
335
  wp_localize_script( 'woocommerce_settings', 'woocommerce_settings_params', array(
336
  'i18n_nav_warning' => __( 'The changes you have made will be lost if you leave this page.', 'yith-plugin-fw' )
337
  ) );
338
+
339
+ if( 'admin.php' == $pagenow && strpos( get_current_screen()->id, 'yit-plugins_page' ) !== false ){
340
+ wp_enqueue_style( 'yit-plugin-style' );
341
+ wp_enqueue_script( 'yit-plugin-panel' );
342
+ }
343
  }
344
 
345
  /**
plugin-fw/lib/yit-plugin-panel.php CHANGED
@@ -92,8 +92,12 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
92
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
93
  */
94
  public function add_menu_page() {
95
- $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
96
- add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'manage_options', 'yit_plugin_panel', NULL, YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png', $position );
 
 
 
 
97
  }
98
 
99
  /**
@@ -121,27 +125,32 @@ if ( ! class_exists( 'YIT_Plugin_Panel' ) ) {
121
  */
122
  public function admin_enqueue_scripts() {
123
 
124
- global $wp_scripts, $pagenow;
125
 
126
  //scripts
127
- wp_enqueue_media();
128
- wp_enqueue_script( 'jquery-ui' );
129
- wp_enqueue_script( 'jquery-ui-core' );
130
- wp_enqueue_script( 'jquery-ui-slider' );
131
- wp_enqueue_script( 'jquery-ui-dialog' );
132
- wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
133
- wp_enqueue_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
134
- wp_register_script( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/codemirror.js', array( 'jquery' ), $this->version, true );
135
- wp_register_script( 'codemirror-javascript', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/javascript.js', array( 'jquery', 'codemirror' ), $this->version, true );
136
 
137
  //styles
138
- $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
139
  wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
140
  wp_enqueue_style( 'jquery-ui-overcast', YIT_CORE_PLUGIN_URL . '/assets/css/overcast/jquery-ui-1.8.9.custom.css', false, '1.8.9', 'all' );
141
- wp_enqueue_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $this->version );
142
  wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
143
  wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
144
  wp_enqueue_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
 
 
 
 
 
145
  }
146
 
147
  /**
92
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
93
  */
94
  public function add_menu_page() {
95
+ global $admin_page_hooks;
96
+
97
+ if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ){
98
+ $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
99
+ add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'manage_options', 'yit_plugin_panel', NULL, YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png', $position );
100
+ }
101
  }
102
 
103
  /**
125
  */
126
  public function admin_enqueue_scripts() {
127
 
128
+ global $wp_scripts, $pagenow;
129
 
130
  //scripts
131
+ wp_enqueue_media();
132
+ wp_enqueue_script( 'jquery-ui' );
133
+ wp_enqueue_script( 'jquery-ui-core' );
134
+ wp_enqueue_script( 'jquery-ui-slider' );
135
+ wp_enqueue_script( 'jquery-ui-dialog' );
136
+ wp_enqueue_script( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/js/chosen/chosen.jquery.js', array( 'jquery' ), '1.1.0', true );
137
+ wp_register_script( 'yit-plugin-panel', YIT_CORE_PLUGIN_URL . '/assets/js/yit-plugin-panel.js', array( 'jquery', 'jquery-chosen' ), $this->version, true );
138
+ wp_register_script( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/codemirror.js', array( 'jquery' ), $this->version, true );
139
+ wp_register_script( 'codemirror-javascript', YIT_CORE_PLUGIN_URL . '/assets/js/codemirror/javascript.js', array( 'jquery', 'codemirror' ), $this->version, true );
140
 
141
  //styles
142
+ $jquery_version = isset( $wp_scripts->registered['jquery-ui-core']->ver ) ? $wp_scripts->registered['jquery-ui-core']->ver : '1.9.2';
143
  wp_register_style( 'codemirror', YIT_CORE_PLUGIN_URL . '/assets/css/codemirror/codemirror.css' );
144
  wp_enqueue_style( 'jquery-ui-overcast', YIT_CORE_PLUGIN_URL . '/assets/css/overcast/jquery-ui-1.8.9.custom.css', false, '1.8.9', 'all' );
145
+ wp_register_style( 'yit-plugin-style', YIT_CORE_PLUGIN_URL . '/assets/css/yit-plugin-panel.css', $this->version );
146
  wp_enqueue_style( 'raleway-font', '//fonts.googleapis.com/css?family=Raleway:400,500,600,700,800,100,200,300,900' );
147
  wp_enqueue_style( 'jquery-chosen', YIT_CORE_PLUGIN_URL . '/assets/css/chosen/chosen.css' );
148
  wp_enqueue_style( 'yit-jquery-ui-style', '//code.jquery.com/ui/' . $jquery_version . '/themes/smoothness/jquery-ui.css', array(), $jquery_version );
149
+
150
+ if( 'admin.php' == $pagenow && strpos('yit-plugins_page',get_current_screen()->id ) !== false ){
151
+ wp_enqueue_style( 'yit-plugin-style' );
152
+ wp_enqueue_script( 'yit-plugin-panel' );
153
+ }
154
  }
155
 
156
  /**
plugin-fw/lib/yit-plugin-subpanel.php CHANGED
@@ -88,22 +88,25 @@ if ( ! class_exists( 'YIT_Plugin_SubPanel' ) ) {
88
  * @since 1.0
89
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
90
  */
91
- public function add_setting_page() {
 
 
92
 
93
- $logo = YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png';
94
 
95
- $admin_logo = function_exists( 'yit_get_option' ) ? yit_get_option( 'admin-logo-menu' ) : '';
 
 
96
 
97
- if ( isset( $admin_logo ) && ! empty( $admin_logo ) && $admin_logo != '' && $admin_logo) {
98
- $logo = $admin_logo;
99
- }
100
  $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
101
  add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'nosuchcapability', 'yit_plugin_panel', NULL, $logo, $position );
 
102
 
103
- add_submenu_page( 'yit_plugin_panel', $this->settings['label'], $this->settings['label'], 'manage_options', $this->settings['page'], array( $this, 'yit_panel' ) );
104
- remove_submenu_page( 'yit_plugin_panel', 'yit_plugin_panel' );
105
 
106
- }
107
 
108
  /**
109
  * Show a tabbed panel to setting page
88
  * @since 1.0
89
  * @author Emanuela Castorina <emanuela.castorina@yithemes.it>
90
  */
91
+ public function add_setting_page() {
92
+ global $admin_page_hooks;
93
+ $logo = YIT_CORE_PLUGIN_URL . '/assets/images/yithemes-icon.png';
94
 
95
+ $admin_logo = function_exists( 'yit_get_option' ) ? yit_get_option( 'admin-logo-menu' ) : '';
96
 
97
+ if ( isset( $admin_logo ) && !empty( $admin_logo ) && $admin_logo != '' && $admin_logo ) {
98
+ $logo = $admin_logo;
99
+ }
100
 
101
+ if( ! isset( $admin_page_hooks['yit_plugin_panel'] ) ) {
 
 
102
  $position = apply_filters( 'yit_plugins_menu_item_position', '62.32' );
103
  add_menu_page( 'yit_plugin_panel', __( 'YIT Plugins', 'yith-plugin-fw' ), 'nosuchcapability', 'yit_plugin_panel', NULL, $logo, $position );
104
+ }
105
 
106
+ add_submenu_page( 'yit_plugin_panel', $this->settings['label'], $this->settings['label'], 'manage_options', $this->settings['page'], array( $this, 'yit_panel' ) );
107
+ remove_submenu_page( 'yit_plugin_panel', 'yit_plugin_panel' );
108
 
109
+ }
110
 
111
  /**
112
  * Show a tabbed panel to setting page
plugin-fw/lib/yit-upgrade.php CHANGED
@@ -60,8 +60,10 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
60
  add_action( 'admin_enqueue_scripts', array( $this, 'network_admin_enqueue_scripts' ) );
61
  }
62
 
63
- if( defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG ){
64
- $this->_package_url = 'http://dev.yithemes.com';
 
 
65
  }
66
  }
67
 
@@ -129,7 +131,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
129
  );
130
 
131
  foreach( $this->_plugins as $init => $info ){
132
- YIT_Plugin_Licence()->check( $init );
133
 
134
  $update_url[ $init ] = wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin-multisite&plugin=') . $init, 'upgrade-plugin-multisite_' . $init );
135
  $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
@@ -157,24 +159,6 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
157
  yit_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
158
  }
159
 
160
- /**
161
- * Call the protected method _upgrader_pre_download to retrive the zip package file
162
- *
163
- * @param bool $reply Whether to bail without returning the package. Default false.
164
- * @param string $package The package file name.
165
- * @param \WP_Upgrader $upgrader WP_Upgrader instance.
166
- *
167
- * @return string | The download file
168
- *
169
- * @since 1.0
170
- * @see wp-admin/includes/class-wp-upgrader.php
171
- * @access public
172
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
173
- */
174
- public function upgrader_pre_download( $reply, $package, $upgrader ){
175
- return $this->_upgrader_pre_download( $reply, $package, $upgrader );
176
- }
177
-
178
  /**
179
  * Retrive the zip package file
180
  *
@@ -186,10 +170,10 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
186
  *
187
  * @since 1.0
188
  * @see wp-admin/includes/class-wp-upgrader.php
189
- * @access protected
190
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
191
  */
192
- protected function _upgrader_pre_download( $reply, $package, $upgrader ) {
193
  $plugin = false;
194
  $is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
195
 
@@ -247,7 +231,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
247
  return new WP_Error( 'no_package', $upgrader->strings['no_package'] );
248
  }
249
 
250
- $upgrader->skin->feedback( 'downloading_package', __( 'Yithemes Repository', 'yith-plugin-fw' ) );
251
 
252
  $download_file = $this->_download_url( $package, $args );
253
 
@@ -440,7 +424,7 @@ if ( ! class_exists( 'YIT_Upgrade' ) ) {
440
  }elseif( is_plugin_active_for_network( $init ) ){
441
  printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
442
  }elseif ( empty( $r->package ) ) {
443
- printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="Licence activation">activate</a> your copy of %6s.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
444
  } else {
445
  printf( __('There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw'), $this->_plugins[ $init ]['info']['Name'], esc_url($details_url), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin&plugin=') . $init, 'upgrade-plugin_' . $init ) );
446
  }
60
  add_action( 'admin_enqueue_scripts', array( $this, 'network_admin_enqueue_scripts' ) );
61
  }
62
 
63
+ $is_debug_enabled = defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG;
64
+ if ( $is_debug_enabled ) {
65
+ $this->_package_url = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
66
+ add_filter( 'block_local_requests', '__return_false' );
67
  }
68
  }
69
 
131
  );
132
 
133
  foreach( $this->_plugins as $init => $info ){
134
+ YIT_Plugin_Licence()->check( $init, false );
135
 
136
  $update_url[ $init ] = wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin-multisite&plugin=') . $init, 'upgrade-plugin-multisite_' . $init );
137
  $changelog_id = str_replace( array( '/', '.php', '.' ), array( '-', '', '-' ), $init );
159
  yit_enqueue_style( 'yit-upgrader', YIT_CORE_PLUGIN_URL . '/assets/css/yit-upgrader.css' );
160
  }
161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  /**
163
  * Retrive the zip package file
164
  *
170
  *
171
  * @since 1.0
172
  * @see wp-admin/includes/class-wp-upgrader.php
173
+ * @access public
174
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
175
  */
176
+ public function upgrader_pre_download( $reply, $package, $upgrader ) {
177
  $plugin = false;
178
  $is_bulk = $upgrader->skin instanceof Bulk_Plugin_Upgrader_Skin;
179
 
231
  return new WP_Error( 'no_package', $upgrader->strings['no_package'] );
232
  }
233
 
234
+ $upgrader->skin->feedback( 'downloading_package', __( 'YIThemes Repository', 'yith-plugin-fw' ) );
235
 
236
  $download_file = $this->_download_url( $package, $args );
237
 
424
  }elseif( is_plugin_active_for_network( $init ) ){
425
  printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>You have to activate the plugin on a single site of the network to benefit from automatic updates.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version );
426
  }elseif ( empty( $r->package ) ) {
427
+ printf( __( 'There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin, please <a href="%5$s" title="License activation">activate</a> your copy of %6s.</em>', 'yith-plugin-fw' ), $this->_plugins[ $init ]['info']['Name'], esc_url( $details_url ), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, YIT_Plugin_Licence()->get_licence_activation_page_url(), $this->_plugins[ $init ]['info']['Name'] );
428
  } else {
429
  printf( __('There is a new version of %1$s available. <a href="%2$s" class="thickbox yit-changelog-button" title="%3$s">View version %4$s details</a> or <a href="%5$s">update now</a>.', 'yith-plugin-fw'), $this->_plugins[ $init ]['info']['Name'], esc_url($details_url), esc_attr( $this->_plugins[ $init ]['info']['Name'] ), $r->new_version, wp_nonce_url( self_admin_url('update.php?action=upgrade-plugin&plugin=') . $init, 'upgrade-plugin_' . $init ) );
430
  }
plugin-fw/licence/assets/css/yit-licence.css CHANGED
@@ -23,6 +23,7 @@
23
 
24
  .yit-container.product-licence-activation .to-active-wrapper {
25
  margin-bottom: 60px;
 
26
  }
27
 
28
  .yit-container.product-licence-activation .to-active-wrapper form.to-active-form {
@@ -121,17 +122,13 @@
121
  vertical-align: top;
122
  }
123
 
124
- .yit-container.product-licence-activation .spinner.show{
125
- display: inline-block;
126
- vertical-align: middle;
127
  float: none;
128
  }
129
 
130
- .yit-container.product-licence-activation h3.to-active > .spinner.show {
131
- display: inline-block;
132
- float: none;
133
- top: -3px;
134
- position: relative;
135
  }
136
 
137
  .yit-container.product-licence-activation .licence-check-section{
@@ -176,18 +173,24 @@
176
  padding: 12px 19px;
177
  }
178
 
 
179
  .yit-container.product-licence-activation .button-licence.licence-renew {
180
  text-decoration: none;
181
  padding: 7px 12px;
182
  font-size: 9px;
183
  }
184
 
 
 
 
 
 
185
  .yit-container.product-licence-activation .button-licence.licence-renew:focus {
186
  box-shadow: none;
187
  }
188
 
189
  .yit-container.product-licence-activation table:not(.to-active-table) {
190
- width: 100%;
191
  border: 1px solid #dcdcdc;
192
  border-spacing: 0;
193
  border-radius: 5px;
@@ -197,12 +200,18 @@
197
 
198
  .yit-container.product-licence-activation table:not(.to-active-table) th {
199
  border-bottom: 1px solid #dcdcdc;
 
 
 
 
 
200
  }
201
 
202
  .yit-container.product-licence-activation table:not(.to-active-table) td,
203
  .yit-container.product-licence-activation table:not(.to-active-table) th {
204
  border-right: 1px solid #dcdcdc;
205
  }
 
206
  .yit-container.product-licence-activation table td:last-child,
207
  .yit-container.product-licence-activation table th:last-child {
208
  border-right: 0;
@@ -216,8 +225,12 @@
216
  background-color: #ffffff;
217
  }
218
 
 
 
 
 
219
  .yit-container.product-licence-activation table thead tr th {
220
- font-size: 13px;
221
  color: #313131;
222
  text-transform: uppercase;
223
  font-weight: bold;
@@ -228,6 +241,14 @@
228
  line-height: 60px;
229
  }
230
 
 
 
 
 
 
 
 
 
231
  .yit-container.product-licence-activation table tbody tr td{
232
  text-align: center;
233
  line-height: 20px;
@@ -260,15 +281,17 @@
260
  width: 33%;
261
  }
262
 
263
-
264
- .yit-container.product-licence-activation .to-active-table td.product-name {
265
  color: #808a97;
266
  font-size: 12px;
267
  text-transform: uppercase;
268
  font-weight: bold;
269
  line-height: 20px;
 
 
 
 
270
  width: 20%;
271
- padding-left: 20px;
272
  }
273
 
274
  .yit-container.product-licence-activation .to-active-table td.activate-button {
@@ -302,15 +325,12 @@
302
  box-shadow: 0 0 1px rgba(30,140,190,.8);
303
  }
304
 
305
- .yit-container.product-licence-activation input[type=text]{
 
306
  text-transform: uppercase;
307
  text-align: center;
308
  }
309
 
310
- .yit-container.product-licence-activation input[type=email] {
311
- text-align: left;
312
- }
313
-
314
  .yit-container.product-licence-activation input[type=submit]:focus{
315
  outline: 0;
316
  }
@@ -328,19 +348,88 @@
328
  color: #808a97;
329
  }
330
 
 
 
 
 
 
 
 
 
 
 
331
  /* === Responsive === */
332
 
333
- @media (max-width: 767px) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
 
335
- @media (max-width: 480px) {}
 
 
336
 
337
- @media (min-width: 768px) and (max-width: 992px) {}
 
 
338
 
339
- @media (min-width: 980px) and (max-width: 1199px) {}
 
 
 
340
 
341
  @media (min-width: 1200px) {
342
  .yit-container.product-licence-activation{
343
- width: 900px;
 
 
 
 
344
  }
345
  }
346
 
23
 
24
  .yit-container.product-licence-activation .to-active-wrapper {
25
  margin-bottom: 60px;
26
+ max-width: 900px;
27
  }
28
 
29
  .yit-container.product-licence-activation .to-active-wrapper form.to-active-form {
122
  vertical-align: top;
123
  }
124
 
125
+ .yit-container.product-licence-activation .spinner{
126
+ vertical-align: -5px;
 
127
  float: none;
128
  }
129
 
130
+ .yit-container.product-licence-activation .spinner.show{
131
+ visibility: visible;
 
 
 
132
  }
133
 
134
  .yit-container.product-licence-activation .licence-check-section{
173
  padding: 12px 19px;
174
  }
175
 
176
+ .yit-container.product-licence-activation .button-licence.licence-deactive,
177
  .yit-container.product-licence-activation .button-licence.licence-renew {
178
  text-decoration: none;
179
  padding: 7px 12px;
180
  font-size: 9px;
181
  }
182
 
183
+ .yit-container.product-licence-activation table:not(.expired-table) .button-licence.licence-renew {
184
+ margin-left: 10px;
185
+ }
186
+
187
+ .yit-container.product-licence-activation .button-licence.licence-deactive:focus,
188
  .yit-container.product-licence-activation .button-licence.licence-renew:focus {
189
  box-shadow: none;
190
  }
191
 
192
  .yit-container.product-licence-activation table:not(.to-active-table) {
193
+ width: auto;
194
  border: 1px solid #dcdcdc;
195
  border-spacing: 0;
196
  border-radius: 5px;
200
 
201
  .yit-container.product-licence-activation table:not(.to-active-table) th {
202
  border-bottom: 1px solid #dcdcdc;
203
+ padding: 0 10px;
204
+ }
205
+
206
+ .yit-container.product-licence-activation table tbody tr td.product-licence-key {
207
+ text-transform: lowercase;
208
  }
209
 
210
  .yit-container.product-licence-activation table:not(.to-active-table) td,
211
  .yit-container.product-licence-activation table:not(.to-active-table) th {
212
  border-right: 1px solid #dcdcdc;
213
  }
214
+
215
  .yit-container.product-licence-activation table td:last-child,
216
  .yit-container.product-licence-activation table th:last-child {
217
  border-right: 0;
225
  background-color: #ffffff;
226
  }
227
 
228
+ .yit-container.product-licence-activation table tbody tr:nth-child(2n) {
229
+ background-color: #f4f4f4;
230
+ }
231
+
232
  .yit-container.product-licence-activation table thead tr th {
233
+ font-size: 11px;
234
  color: #313131;
235
  text-transform: uppercase;
236
  font-weight: bold;
241
  line-height: 60px;
242
  }
243
 
244
+ .yit-container.product-licence-activation table tbody tr td.product-licence-membership .dashicons-no-alt {
245
+ color: #b20015;
246
+ }
247
+
248
+ .yit-container.product-licence-activation table tbody tr td.product-licence-membership .dashicons-yes {
249
+ color: #1ca800;
250
+ }
251
+
252
  .yit-container.product-licence-activation table tbody tr td{
253
  text-align: center;
254
  line-height: 20px;
281
  width: 33%;
282
  }
283
 
284
+ .yit-container.product-licence-activation td.product-name {
 
285
  color: #808a97;
286
  font-size: 12px;
287
  text-transform: uppercase;
288
  font-weight: bold;
289
  line-height: 20px;
290
+ padding: 10px 20px;
291
+ }
292
+
293
+ .yit-container.product-licence-activation .to-active-table td.product-name {
294
  width: 20%;
 
295
  }
296
 
297
  .yit-container.product-licence-activation .to-active-table td.activate-button {
325
  box-shadow: 0 0 1px rgba(30,140,190,.8);
326
  }
327
 
328
+ .yit-container.product-licence-activation input[type=text],
329
+ .yit-container.product-licence-activation input[type=email]{
330
  text-transform: uppercase;
331
  text-align: center;
332
  }
333
 
 
 
 
 
334
  .yit-container.product-licence-activation input[type=submit]:focus{
335
  outline: 0;
336
  }
348
  color: #808a97;
349
  }
350
 
351
+ #yith-licence-notice {
352
+ margin-left: 0;
353
+ visibility: hidden;
354
+ min-height: 38px;
355
+ }
356
+
357
+ #yith-licence-notice.visible {
358
+ visibility: visible;
359
+ }
360
+
361
  /* === Responsive === */
362
 
363
+ @media (max-width: 767px) {
364
+ .yit-container.product-licence-activation .activation-faq {
365
+ margin-right: 5px;
366
+ }
367
+ }
368
+
369
+ @media (max-width: 480px) {
370
+ .yit-container.product-licence-activation .activation-faq {
371
+ margin-right: 5px;
372
+ }
373
+ }
374
+
375
+ @media (min-width: 768px) and (max-width: 992px) {
376
+ .yit-container.product-licence-activation .button-licence.licence-deactive,
377
+ .yit-container.product-licence-activation .button-licence.licence-renew {
378
+ margin-bottom: 10px;
379
+ display: block;
380
+ margin-left: 0;
381
+ padding: 5px 7px;
382
+ }
383
+
384
+ .yit-container.product-licence-activation .button-licence.licence-deactive {
385
+ margin-bottom: 10px;
386
+ }
387
+
388
+ .yit-container.product-licence-activation table:not(.to-active-table) th {
389
+ line-height: 20px;
390
+ }
391
+
392
+ .yit-container.product-licence-activation table tbody tr td {
393
+ padding: 5px;
394
+ }
395
+
396
+ .yit-container.product-licence-activation .activation-faq {
397
+ margin-right: 20px;
398
+ }
399
+ }
400
+
401
+ @media (min-width: 980px) and (max-width: 1199px) {
402
+ .yit-container.product-licence-activation .button-licence.licence-deactive,
403
+ .yit-container.product-licence-activation .button-licence.licence-renew {
404
+ display: block;
405
+ margin-left: 0;
406
+ padding: 5px 7px;
407
+ }
408
+
409
+ .yit-container.product-licence-activation .button-licence.licence-renew {
410
+ margin-top: 10px;
411
+ }
412
 
413
+ .yit-container.product-licence-activation table:not(.to-active-table) th {
414
+ line-height: 20px;
415
+ }
416
 
417
+ .yit-container.product-licence-activation table tbody tr td {
418
+ padding: 5px;
419
+ }
420
 
421
+ .yit-container.product-licence-activation .activation-faq {
422
+ width: 75%;
423
+ }
424
+ }
425
 
426
  @media (min-width: 1200px) {
427
  .yit-container.product-licence-activation{
428
+ width: auto;
429
+ }
430
+
431
+ .yit-container.product-licence-activation .activation-faq {
432
+ width: 50%;
433
  }
434
  }
435
 
plugin-fw/licence/assets/js/yit-licence.js CHANGED
@@ -16,20 +16,21 @@
16
  button.on('click', function (e, button) {
17
  e.preventDefault();
18
 
19
- var t = $(this),
20
- form_id = t.data('formid'),
21
- form = $('#' + form_id),
22
- data = form.serialize(),
23
- message = $(form).find('.message'),
24
- message_wrapper = $(form).find('.message-wrapper'),
25
- email = form.find('.user-email'),
26
- licence_key = form.find('.licence-key'),
27
- email_val = form.find('.user-email').val(),
28
- licence_key_val = form.find('.licence-key').val(),
29
- error = false,
30
- error_fields = new Array(),
31
- product_row = form.find('.product-row'),
32
- spinner = $('h3.to-active').find('.spinner');
 
33
 
34
  /* Init Input Fields */
35
  message.empty();
@@ -38,17 +39,17 @@
38
  licence_key.removeClass('require');
39
  product_row.removeClass('error');
40
  spinner.addClass('show');
41
- t.prop("disabled", true).addClass('clicked');
42
 
43
  if ('' == email_val) {
44
  error = true;
45
- error_fields[ error_fields.length ] = 'Email';
46
  email.addClass('require');
47
  }
48
 
49
  if ('' == licence_key_val) {
50
  error = true;
51
- error_fields[ error_fields.length ] = 'Licence Key';
52
  licence_key.addClass('require');
53
  }
54
 
@@ -60,7 +61,7 @@
60
  success: function (response) {
61
 
62
  spinner.removeClass('show');
63
- t.prop("disabled", false).removeClass('clicked');
64
 
65
  if (true == response.activated) {
66
  $('.product-licence-activation').empty().replaceWith(response.template);
@@ -93,10 +94,10 @@
93
  }
94
 
95
  spinner.removeClass('show');
96
- t.prop("disabled", false).removeClass('clicked');
97
  }
98
  });
99
- }
100
 
101
  var licence_update = function (button) {
102
  button.on('click', function (e) {
@@ -119,21 +120,77 @@
119
  }
120
  });
121
  });
122
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
  var licence_api = function () {
125
- var button = $('.licence-activation'),
126
- check = $('.licence-check');
 
127
 
128
  licence_activation(button);
129
  licence_update(check);
130
- }
 
131
 
132
  licence_api();
133
 
134
  $('body').on('click', '.yit-changelog-button', function (e) {
135
  $('#TB_window').remove();
136
-
137
  });
138
 
139
  })(jQuery);
16
  button.on('click', function (e, button) {
17
  e.preventDefault();
18
 
19
+ var t = $(this),
20
+ form_id = t.data('formid'),
21
+ form = $('#' + form_id),
22
+ data = form.serialize(),
23
+ message = $(form).find('.message'),
24
+ message_wrapper = $(form).find('.message-wrapper'),
25
+ email = form.find('.user-email'),
26
+ licence_key = form.find('.licence-key'),
27
+ email_val = form.find('.user-email').val(),
28
+ licence_key_val = form.find('.licence-key').val(),
29
+ error = false,
30
+ error_fields = new Array(),
31
+ product_row = form.find('.product-row'),
32
+ licence_activation = $('.licence-activation'),
33
+ spinner = $('#products-to-active').find('.spinner');
34
 
35
  /* Init Input Fields */
36
  message.empty();
39
  licence_key.removeClass('require');
40
  product_row.removeClass('error');
41
  spinner.addClass('show');
42
+ t.add(licence_activation).prop("disabled", true).addClass('clicked');
43
 
44
  if ('' == email_val) {
45
  error = true;
46
+ error_fields[ error_fields.length ] = licence_message.email;
47
  email.addClass('require');
48
  }
49
 
50
  if ('' == licence_key_val) {
51
  error = true;
52
+ error_fields[ error_fields.length ] = licence_message.license_key;
53
  licence_key.addClass('require');
54
  }
55
 
61
  success: function (response) {
62
 
63
  spinner.removeClass('show');
64
+ t.add(licence_activation).prop("disabled", false).removeClass('clicked');
65
 
66
  if (true == response.activated) {
67
  $('.product-licence-activation').empty().replaceWith(response.template);
94
  }
95
 
96
  spinner.removeClass('show');
97
+ t.add(licence_activation).prop("disabled", false).removeClass('clicked');
98
  }
99
  });
100
+ };
101
 
102
  var licence_update = function (button) {
103
  button.on('click', function (e) {
120
  }
121
  });
122
  });
123
+ };
124
+
125
+ var licence_deactivate = function (button) {
126
+ button.on('click', function (e) {
127
+ e.preventDefault();
128
+
129
+ var check = script_info.is_debug == true ? true : confirm( licence_message.are_you_sure );
130
+
131
+ if( check == true ){
132
+ var t = $(this),
133
+ licence_key = t.data('licence-key'),
134
+ licence_email = t.data('licence-email'),
135
+ product_init = t.data('product-init'),
136
+ action = t.data('action'),
137
+ renew = $('.licence-renew'),
138
+ deactive = $('.licence-deactive'),
139
+ message = $('#yith-licence-notice'),
140
+ activated_table = $('.activated-table');
141
+
142
+ t.add(renew).add(deactive).prop("disabled", true).addClass('clicked');
143
+ $('#activated-products').find('.spinner').addClass('show');
144
+
145
+ jQuery.ajax({
146
+ type : 'POST',
147
+ url : ajaxurl,
148
+ data : {
149
+ action: action,
150
+ licence_key: licence_key,
151
+ email: licence_email,
152
+ product_init: product_init
153
+ },
154
+ success: function (response) {
155
+ message.css( 'maxWidth', activated_table.width() );
156
+ if (false == response.activated && typeof response.error == 'undefined') {
157
+ $('.product-licence-activation').empty().replaceWith(response.template);
158
+ licence_api();
159
+ }
160
+
161
+ if (false == response.activated && typeof response.error != 'undefined') {
162
+ message.find('p.yith-licence-notice-message').html(response.error);
163
+ message.removeClass('notice-success').addClass('notice-error visible');
164
+ t.add(renew).add(deactive).add(renew).prop("disabled", false).removeClass('clicked');
165
+ $('#activated-products').find('.spinner').removeClass('show');
166
+ }
167
+
168
+ else if (false == response) {
169
+ message.find('p.yith-licence-notice-message').html(licence_message.server);
170
+ message.removeClass('notice-success').addClass('notice-error visible');
171
+ t.add(renew).add(deactive).add(renew).prop("disabled", false).removeClass('clicked');
172
+ $('#activated-products').find('.spinner').removeClass('show');
173
+ }
174
+ }
175
+ });
176
+ }
177
+ });
178
+ };
179
 
180
  var licence_api = function () {
181
+ var button = $('.licence-activation'),
182
+ check = $('.licence-check'),
183
+ deactivated = $('.licence-deactive');
184
 
185
  licence_activation(button);
186
  licence_update(check);
187
+ licence_deactivate(deactivated);
188
+ };
189
 
190
  licence_api();
191
 
192
  $('body').on('click', '.yit-changelog-button', function (e) {
193
  $('#TB_window').remove();
 
194
  });
195
 
196
  })(jQuery);
plugin-fw/licence/lib/yit-licence.php CHANGED
@@ -56,17 +56,48 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
56
  */
57
  protected $_api_uri_query_args = '?wc-api=software-api&request=%request%';
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  /**
60
  * Constructor
61
  *
62
  * @since 1.0
63
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
64
  */
65
- public function __construct(){
66
-
67
- if( defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG ){
68
- $this->_api_uri = 'http://dev.yithemes.com';
 
 
 
 
 
 
 
 
 
 
 
 
 
69
  }
 
 
 
 
 
70
  }
71
 
72
  /**
@@ -114,7 +145,6 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
114
  return $home_url;
115
  }
116
 
117
-
118
  /**
119
  * Check if the request is ajax
120
  *
@@ -146,21 +176,20 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
146
 
147
  wp_enqueue_script( 'yit-licence', $script_path . '/licence/assets/js/' . $filename, array( 'jquery' ), '1.0.0', true );
148
  wp_enqueue_style( 'yit-theme-licence', $style_path . '/licence/assets/css/yit-licence.css' );
149
- }
150
 
151
- /**
152
- * Localize Scripts
153
- *
154
- * @return void
155
- *
156
- * @since 1.0
157
- * @author Andrea Grillo <andrea.grillo@yithemes.com>
158
- */
159
- public function localize_script() {
160
  wp_localize_script( 'yit-licence', 'licence_message', array(
161
- 'error' => sprintf( _x( '%s field cannot be empty', '%s = field name', 'yith-plugin-fw' ), '%field%' ), // sprintf must be used to avoid errors with '%field%' string in translation in .po file
162
- 'errors' => sprintf( __( '%s and %s fields cannot be empty', 'yith-plugin-fw' ), '%field_1%', '%field_2%' ),
163
- 'server' => __( 'Unable to contact the remote server, please try again later. Thanks!', 'yith-plugin-fw' )
 
 
 
 
 
 
 
 
164
  )
165
  );
166
  }
@@ -177,7 +206,6 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
177
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
178
  */
179
  public function activate() {
180
-
181
  $product_init = $_REQUEST['product_init'];
182
  $product = $this->get_product( $product_init );
183
 
@@ -190,7 +218,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
190
  );
191
 
192
  $api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'activation' ) ) );
193
- $response = wp_remote_get( $api_uri );
194
 
195
  if ( is_wp_error( $response ) ) {
196
  $body = false;
@@ -203,13 +231,14 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
203
  if ( $body && is_array( $body ) && isset( $body['activated'] ) && $body['activated'] ) {
204
 
205
  $option[$product['product_id']] = array(
206
- 'email' => urldecode( $args['email'] ),
207
- 'licence_key' => $args['licence_key'],
208
- 'licence_expires' => $body['licence_expires'],
209
- 'message' => $body['message'],
210
- 'activated' => true,
211
- 'activation_limit' => $body['activation_limit'],
212
- 'activation_remaining' => $body['activation_remaining'],
 
213
  );
214
 
215
  /* === Check for other plugins activation === */
@@ -222,7 +251,74 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
222
  YIT_Upgrade()->force_regenerate_update_transient();
223
 
224
  /* === Licence Activation Template === */
225
- $body['template'] = $this->show_activation_panel();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
226
  }
227
 
228
  wp_send_json( $body );
@@ -240,7 +336,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
240
  * @since 1.0
241
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
242
  */
243
- public function check( $product_init ) {
244
 
245
  $status = false;
246
  $body = false;
@@ -261,7 +357,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
261
  );
262
 
263
  $api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'check' ) ) );
264
- $response = wp_remote_get( $api_uri );
265
 
266
  if ( ! is_wp_error( $response ) ) {
267
  $body = json_decode( $response['body'] );
@@ -279,6 +375,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
279
  $licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
280
  $licence[ $product_id ]['activation_remaining'] = $body['activation_remaining'];
281
  $licence[ $product_id ]['activation_limit'] = $body['activation_limit'];
 
282
  $status = (bool) $body['activated'];
283
  }
284
  elseif ( isset( $body['code'] ) ) {
@@ -297,7 +394,8 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
297
  * 106 -> Licence key has expired
298
  * 107 -> Licence key has be banned
299
  *
300
- * Only code 101, 106 and 107 have effect on DB
 
301
  *
302
  */
303
 
@@ -308,15 +406,17 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
308
 
309
  case '106':
310
  $licence[ $product_id ]['activated'] = false;
311
- $licence[ $product_id ]['message'] = $body['additional_info'];
312
  $licence[ $product_id ]['status_code'] = $body['code'];
313
  $licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
 
314
  break;
315
 
316
  case '107':
317
- $licence[ $product_id ]['activated'] = false;
318
- $licence[ $product_id ]['message'] = $body['additional_info'];
319
- $licence[ $product_id ]['status_code'] = $body['code'];
 
320
  break;
321
  }
322
  }
@@ -325,11 +425,28 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
325
  update_option( $this->_licence_option, $licence );
326
 
327
  /* === Update Plugin Licence Information === */
328
- YIT_Upgrade()->force_regenerate_update_transient();
 
 
329
  }
330
  return $status;
331
  }
332
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  /**
334
  * Update Plugins Information
335
  *
@@ -342,17 +459,18 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
342
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
343
  */
344
  public function update_licence_information() {
345
- foreach ( $this->_products as $init => $info ) {
346
- $this->check( $init );
347
- }
348
 
349
  /* === Regenerate Update Plugins Transient === */
350
  YIT_Upgrade()->force_regenerate_update_transient();
351
 
352
  do_action( 'yit_licence_after_check' );
353
 
354
- $response['template'] = $this->show_activation_panel();
355
- wp_send_json( $response );
 
 
356
  }
357
 
358
  /**
@@ -363,7 +481,7 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
363
  * @since 1.0
364
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
365
  */
366
- public function show_activation_panel() {
367
 
368
  $path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
369
 
@@ -542,20 +660,49 @@ if ( ! class_exists( 'YIT_Licence' ) ) {
542
  * @since 1.0
543
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
544
  */
545
- public function get_error_code_message( $code ) {
546
-
547
- $error_strings = array(
548
- '100' => __( 'Invalid Request', 'yith-plugin-fw' ),
549
- '101' => __( 'Invalid licence key', 'yith-plugin-fw' ),
550
- '102' => __( 'Software has been deactivated', 'yith-plugin-fw' ),
551
- '103' => __( 'Maximum number of activations exceeded', 'yith-plugin-fw' ),
552
- '104' => __( 'Invalid instance ID', 'yith-plugin-fw' ),
553
- '105' => __( 'Invalid security key', 'yith-plugin-fw' ),
554
- '106' => __( 'Licence key has expired', 'yith-plugin-fw' ),
555
- '107' => __( 'Licence key has been banned', 'yith-plugin-fw' )
 
 
 
 
556
  );
557
 
558
- return isset( $error_strings[$code] ) ? $error_strings[$code] : false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
559
  }
560
 
561
  }
56
  */
57
  protected $_api_uri_query_args = '?wc-api=software-api&request=%request%';
58
 
59
+
60
+ /**
61
+ * @var string check for show extra info
62
+ * @since 1.0
63
+ */
64
+ public $show_extra_info = false;
65
+
66
+ /**
67
+ * @var string check for show extra info
68
+ * @since 1.0
69
+ */
70
+ public $show_renew_button = true;
71
+
72
  /**
73
  * Constructor
74
  *
75
  * @since 1.0
76
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
77
  */
78
+ public function __construct() {
79
+ $is_debug_enabled = defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG;
80
+ if ( $is_debug_enabled ) {
81
+ $this->_api_uri = defined( 'YIT_LICENCE_DEBUG_LOCALHOST' ) ? YIT_LICENCE_DEBUG_LOCALHOST : 'http://dev.yithemes.com';
82
+ add_filter( 'block_local_requests', '__return_false' );
83
+ }
84
+
85
+ /* Style adn Script */
86
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
87
+ if( $is_debug_enabled ) {
88
+ //show extra info and renew button in debug mode
89
+ $this->show_extra_info = $this->show_renew_button = true;
90
+ }
91
+
92
+ else {
93
+ $this->show_extra_info = defined( 'YIT_SHOW_EXTRA_LICENCE_INFO' ) && YIT_SHOW_EXTRA_LICENCE_INFO;
94
+ $this->show_renew_button = ! ( defined( 'YIT_HIDE_LICENCE_RENEW_BUTTON' ) && YIT_HIDE_LICENCE_RENEW_BUTTON );
95
  }
96
+
97
+ /* Update Licence Information */
98
+ add_action( 'core_upgrade_preamble', array( $this, 'check_all' ) );
99
+ add_action( 'wp_maybe_auto_update', array( $this, 'check_all' ) );
100
+
101
  }
102
 
103
  /**
145
  return $home_url;
146
  }
147
 
 
148
  /**
149
  * Check if the request is ajax
150
  *
176
 
177
  wp_enqueue_script( 'yit-licence', $script_path . '/licence/assets/js/' . $filename, array( 'jquery' ), '1.0.0', true );
178
  wp_enqueue_style( 'yit-theme-licence', $style_path . '/licence/assets/css/yit-licence.css' );
 
179
 
180
+ /* Localize Scripts */
 
 
 
 
 
 
 
 
181
  wp_localize_script( 'yit-licence', 'licence_message', array(
182
+ 'error' => sprintf( _x( '%s field cannot be empty', '%s = field name', 'yith-plugin-fw' ), '%field%' ), // sprintf must be used to avoid errors with '%field%' string in translation in .po file
183
+ 'errors' => sprintf( __( '%s and %s fields cannot be empty', 'yith-plugin-fw' ), '%field_1%', '%field_2%' ),
184
+ 'server' => __( 'Unable to contact the remote server, please try again later. Thanks!', 'yith-plugin-fw' ),
185
+ 'email' => __( 'Email', 'yith-plugin-fw' ),
186
+ 'license_key' => __( 'License Key', 'yith-plugin-fw' ),
187
+ 'are_you_sure' => __( 'Are you sure you want to deactivate the license for current site?', 'yith-plugin-fw' )
188
+ )
189
+ );
190
+
191
+ wp_localize_script( 'yit-licence', 'script_info', array(
192
+ 'is_debug' => defined( 'YIT_LICENCE_DEBUG' ) && YIT_LICENCE_DEBUG
193
  )
194
  );
195
  }
206
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
207
  */
208
  public function activate() {
 
209
  $product_init = $_REQUEST['product_init'];
210
  $product = $this->get_product( $product_init );
211
 
218
  );
219
 
220
  $api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'activation' ) ) );
221
+ $response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
222
 
223
  if ( is_wp_error( $response ) ) {
224
  $body = false;
231
  if ( $body && is_array( $body ) && isset( $body['activated'] ) && $body['activated'] ) {
232
 
233
  $option[$product['product_id']] = array(
234
+ 'email' => urldecode( $args['email'] ),
235
+ 'licence_key' => $args['licence_key'],
236
+ 'licence_expires' => $body['licence_expires'],
237
+ 'message' => $body['message'],
238
+ 'activated' => true,
239
+ 'activation_limit' => $body['activation_limit'],
240
+ 'activation_remaining' => $body['activation_remaining'],
241
+ 'is_membership' => isset( $body['is_membership'] ) ? $body['is_membership'] : false,
242
  );
243
 
244
  /* === Check for other plugins activation === */
251
  YIT_Upgrade()->force_regenerate_update_transient();
252
 
253
  /* === Licence Activation Template === */
254
+ $body['template'] = $this->show_activation_panel( $this->get_response_code_message( 200 ) );
255
+ }
256
+
257
+ wp_send_json( $body );
258
+ }
259
+
260
+ /**
261
+ * Deactivate Plugins
262
+ *
263
+ * Send a request to API server to activate plugins
264
+ *
265
+ * @return void
266
+ * @use wp_send_json
267
+ *
268
+ * @since 1.0
269
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
270
+ */
271
+ public function deactivate() {
272
+ $product_init = $_REQUEST['product_init'];
273
+ $product = $this->get_product( $product_init );
274
+
275
+ $args = array(
276
+ 'email' => urlencode( sanitize_email( $_REQUEST['email'] ) ),
277
+ 'licence_key' => sanitize_text_field( $_REQUEST['licence_key'] ),
278
+ 'product_id' => sanitize_text_field( $product['product_id'] ),
279
+ 'secret_key' => sanitize_text_field( $product['secret_key'] ),
280
+ 'instance' => $this->get_home_url()
281
+ );
282
+
283
+ $api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'deactivation' ) ) );
284
+ $response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
285
+
286
+ if ( is_wp_error( $response ) ) {
287
+ $body = false;
288
+ }
289
+ else {
290
+ $body = json_decode( $response['body'] );
291
+ $body = is_object( $body ) ? get_object_vars( $body ) : false;
292
+ }
293
+
294
+ if ( $body && is_array( $body ) && isset( $body['activated'] ) && ! $body['activated'] && ! isset( $body['error'] ) ) {
295
+
296
+ $option[$product['product_id']] = array(
297
+ 'activated' => false,
298
+ 'email' => urldecode( $args['email'] ),
299
+ 'licence_key' => $args['licence_key'],
300
+ 'licence_expires' => $body['licence_expires'],
301
+ 'message' => $body['message'],
302
+ 'activation_limit' => $body['activation_limit'],
303
+ 'activation_remaining' => $body['activation_remaining'],
304
+ 'is_membership' => isset( $body['is_membership'] ) ? $body['is_membership'] : false,
305
+ );
306
+
307
+ /* === Check for other plugins activation === */
308
+ $options = $this->get_licence();
309
+ $options[$product['product_id']] = $option[$product['product_id']];
310
+
311
+ update_option( $this->_licence_option, $options );
312
+
313
+ /* === Update Plugin Licence Information === */
314
+ YIT_Upgrade()->force_regenerate_update_transient();
315
+
316
+ /* === Licence Activation Template === */
317
+ $body['template'] = $this->show_activation_panel( $this->get_response_code_message( 'deactivated', array( 'instance' => $body['instance'] ) ) );
318
+ }
319
+
320
+ else {
321
+ $body['error'] = $this->get_response_code_message( $body['code'] );
322
  }
323
 
324
  wp_send_json( $body );
336
  * @since 1.0
337
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
338
  */
339
+ public function check( $product_init, $regenerate_transient = true ) {
340
 
341
  $status = false;
342
  $body = false;
357
  );
358
 
359
  $api_uri = esc_url_raw( add_query_arg( $args, $this->get_api_uri( 'check' ) ) );
360
+ $response = wp_remote_get( $api_uri, array( 'timeout' => 30 ) );
361
 
362
  if ( ! is_wp_error( $response ) ) {
363
  $body = json_decode( $response['body'] );
375
  $licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
376
  $licence[ $product_id ]['activation_remaining'] = $body['activation_remaining'];
377
  $licence[ $product_id ]['activation_limit'] = $body['activation_limit'];
378
+ $licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
379
  $status = (bool) $body['activated'];
380
  }
381
  elseif ( isset( $body['code'] ) ) {
394
  * 106 -> Licence key has expired
395
  * 107 -> Licence key has be banned
396
  *
397
+ * Only code 101, 106 and 107 have effect on DB during activation
398
+ * All error code have effect on DB during deactivation
399
  *
400
  */
401
 
406
 
407
  case '106':
408
  $licence[ $product_id ]['activated'] = false;
409
+ $licence[ $product_id ]['message'] = $body['error'];
410
  $licence[ $product_id ]['status_code'] = $body['code'];
411
  $licence[ $product_id ]['licence_expires'] = $body['licence_expires'];
412
+ //$licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
413
  break;
414
 
415
  case '107':
416
+ $licence[ $product_id ]['activated'] = false;
417
+ $licence[ $product_id ]['message'] = $body['error'];
418
+ $licence[ $product_id ]['status_code'] = $body['code'];
419
+ //$licence[ $product_id ]['is_membership'] = isset( $body['is_membership'] ) ? $body['is_membership'] : false;
420
  break;
421
  }
422
  }
425
  update_option( $this->_licence_option, $licence );
426
 
427
  /* === Update Plugin Licence Information === */
428
+ if( $regenerate_transient ) {
429
+ YIT_Upgrade()->force_regenerate_update_transient();
430
+ }
431
  }
432
  return $status;
433
  }
434
 
435
+ /**
436
+ * Check for licence update
437
+ *
438
+ * @return void
439
+ * @since 2.5
440
+ *
441
+ * @use YIT_Theme_Licence->check()
442
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
443
+ */
444
+ public function check_all(){
445
+ foreach ( $this->_products as $init => $info ) {
446
+ $this->check( $init );
447
+ }
448
+ }
449
+
450
  /**
451
  * Update Plugins Information
452
  *
459
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
460
  */
461
  public function update_licence_information() {
462
+ /* Check licence information for alla products */
463
+ $this->check_all();
 
464
 
465
  /* === Regenerate Update Plugins Transient === */
466
  YIT_Upgrade()->force_regenerate_update_transient();
467
 
468
  do_action( 'yit_licence_after_check' );
469
 
470
+ if( $this->is_ajax() ) {
471
+ $response['template'] = $this->show_activation_panel();
472
+ wp_send_json( $response );
473
+ }
474
  }
475
 
476
  /**
481
  * @since 1.0
482
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
483
  */
484
+ public function show_activation_panel( $notice = '' ) {
485
 
486
  $path = defined( 'YIT_CORE_PLUGIN_PATH' ) ? YIT_CORE_PLUGIN_PATH : get_template_directory() . '/core/plugin-fw/';
487
 
660
  * @since 1.0
661
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
662
  */
663
+ public function get_response_code_message( $code, $args = array() ) {
664
+ extract( $args );
665
+
666
+ $messages = array(
667
+ '100' => __( 'Invalid Request', 'yith-plugin-fw' ),
668
+ '101' => __( 'Invalid license key', 'yith-plugin-fw' ),
669
+ '102' => __( 'Software has been deactivated', 'yith-plugin-fw' ),
670
+ '103' => __( 'Maximum number of activations exceeded', 'yith-plugin-fw' ),
671
+ '104' => __( 'Invalid instance ID', 'yith-plugin-fw' ),
672
+ '105' => __( 'Invalid security key', 'yith-plugin-fw' ),
673
+ '106' => __( 'License key has expired', 'yith-plugin-fw' ),
674
+ '107' => __( 'License key has been banned', 'yith-plugin-fw' ),
675
+ '108' => __( 'Current product is not included with your membership key', 'woocommerce-software-add-on' ),
676
+ '200' => sprintf( '<strong>%s</strong>! %s',__( 'Great', 'yith-plugin-fw' ), __( 'License successfully activated', 'yith-plugin-fw' ) ),
677
+ 'deactivated' => sprintf( '%s <strong>%s</strong>', __( 'License key deactivated for website', 'woocommerce-software-add-on' ), isset( $instance ) ? $instance : '' )
678
  );
679
 
680
+ return isset( $messages[$code] ) ? $messages[$code] : false;
681
+ }
682
+
683
+ /**
684
+ * Get the product name to display
685
+ *
686
+ * @param $product_name
687
+ *
688
+ * @return string the product name
689
+ *
690
+ * @since 2.2
691
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
692
+ */
693
+ public function display_product_name( $product_name ){
694
+ return str_replace( array( 'YITH', 'WooCommerce', 'Premium', 'Theme' ), '', $product_name );
695
+ }
696
+
697
+ public function get_number_of_membership_products(){
698
+ $activated_products = $this->get_activated_products();
699
+ $num_members_products_activate = 0;
700
+ foreach( $activated_products as $activated_product ){
701
+ if( isset( $activated_product['licence']['is_membership'] ) && $activated_product['licence']['is_membership'] ){
702
+ $num_members_products_activate++;
703
+ }
704
+ }
705
+ return $num_members_products_activate;
706
  }
707
 
708
  }
plugin-fw/licence/lib/yit-plugin-licence.php CHANGED
@@ -8,11 +8,11 @@
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
- if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
- if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
16
  /**
17
  * YIT Plugin Licence Panel
18
  *
@@ -23,7 +23,6 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
23
  * @since 1.0
24
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
25
  */
26
-
27
  class YIT_Plugin_Licence extends YIT_Licence {
28
 
29
  /**
@@ -59,27 +58,26 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
59
  public function __construct() {
60
  parent::__construct();
61
 
62
- if ( ! is_admin() ) {
63
- return;
64
- }
65
 
66
  $this->_settings = array(
67
  'parent_page' => 'yit_plugin_panel',
68
- 'page_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
69
- 'menu_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
70
  'capability' => 'manage_options',
71
  'page' => 'yith_plugins_activation',
72
  );
73
 
74
  add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
75
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
76
- add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 15 );
77
  add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
 
78
  add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
79
  add_action( 'yit_licence_after_check', array( $this, 'licence_after_check' ) );
80
  }
81
 
82
-
83
  public function licence_after_check() {
84
  /* === Regenerate Update Plugins Transient === */
85
  YIT_Upgrade()->force_regenerate_update_transient();
@@ -133,16 +131,20 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
133
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
134
  */
135
  public function register( $plugin_init, $secret_key, $product_id ) {
136
- if ( ! function_exists( 'get_plugins' ) ) {
137
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
138
  }
139
 
140
  $plugins = get_plugins();
141
  $plugins[$plugin_init]['secret_key'] = $secret_key;
142
  $plugins[$plugin_init]['product_id'] = $product_id;
143
- $this->_products[$plugin_init] = $plugins[$plugin_init];
144
  }
145
- }
 
 
 
 
146
  }
147
 
148
  /**
@@ -152,7 +154,7 @@ if ( ! class_exists( 'YIT_Plugin_Licence' ) ) {
152
  * @since 1.0
153
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
154
  */
155
- if( ! function_exists( 'YIT_Plugin_Licence' ) ){
156
  function YIT_Plugin_Licence() {
157
  return YIT_Plugin_Licence::instance();
158
  }
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
+ if ( !defined( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
+ if ( !class_exists( 'YIT_Plugin_Licence' ) ) {
16
  /**
17
  * YIT Plugin Licence Panel
18
  *
23
  * @since 1.0
24
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
25
  */
 
26
  class YIT_Plugin_Licence extends YIT_Licence {
27
 
28
  /**
58
  public function __construct() {
59
  parent::__construct();
60
 
61
+ if ( !is_admin() ) {
62
+ return;
63
+ }
64
 
65
  $this->_settings = array(
66
  'parent_page' => 'yit_plugin_panel',
67
+ 'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
68
+ 'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
69
  'capability' => 'manage_options',
70
  'page' => 'yith_plugins_activation',
71
  );
72
 
73
  add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
 
 
74
  add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
75
+ add_action( "wp_ajax_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
76
  add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
77
  add_action( 'yit_licence_after_check', array( $this, 'licence_after_check' ) );
78
  }
79
 
80
+
81
  public function licence_after_check() {
82
  /* === Regenerate Update Plugins Transient === */
83
  YIT_Upgrade()->force_regenerate_update_transient();
131
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
132
  */
133
  public function register( $plugin_init, $secret_key, $product_id ) {
134
+ if ( !function_exists( 'get_plugins' ) ) {
135
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
136
  }
137
 
138
  $plugins = get_plugins();
139
  $plugins[$plugin_init]['secret_key'] = $secret_key;
140
  $plugins[$plugin_init]['product_id'] = $product_id;
141
+ $this->_products[$plugin_init] = $plugins[$plugin_init];
142
  }
143
+
144
+ public function get_product_type() {
145
+ return $this->_product_type;
146
+ }
147
+ }
148
  }
149
 
150
  /**
154
  * @since 1.0
155
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
156
  */
157
+ if ( !function_exists( 'YIT_Plugin_Licence' ) ) {
158
  function YIT_Plugin_Licence() {
159
  return YIT_Plugin_Licence::instance();
160
  }
plugin-fw/licence/lib/yit-theme-licence.php CHANGED
@@ -8,11 +8,11 @@
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
- if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
- if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
16
  /**
17
  * YIT Plugin Licence Panel
18
  *
@@ -23,7 +23,6 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
23
  * @since 1.0
24
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
25
  */
26
-
27
  class YIT_Theme_Licence extends YIT_Licence {
28
 
29
  /**
@@ -50,6 +49,12 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
50
  */
51
  protected $_product_type = 'theme';
52
 
 
 
 
 
 
 
53
  /**
54
  * Constructor
55
  *
@@ -61,16 +66,15 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
61
 
62
  $this->_settings = array(
63
  'parent_page' => 'yit_product_panel',
64
- 'page_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
65
- 'menu_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
66
  'capability' => 'manage_options',
67
  'page' => 'yith_plugins_activation',
68
  );
69
 
70
  add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
71
- add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
72
- add_action( 'admin_enqueue_scripts', array( $this, 'localize_script' ), 15 );
73
  add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
 
74
  add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
75
  }
76
 
@@ -101,15 +105,15 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
101
  public function add_submenu_page() {
102
 
103
  $admin_tree = array(
104
- 'parent_slug' => apply_filters( 'yit_licence_parent_slug', 'yit_panel'),
105
- 'page_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
106
- 'menu_title' => __( 'Licence Activation', 'yith-plugin-fw' ),
107
- 'capability' => 'manage_options',
108
- 'menu_slug' => 'yit_panel_licence',
109
- 'function' => 'show_activation_panel'
110
- );
111
-
112
- add_submenu_page( $admin_tree['parent_slug'],
113
  sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['page_title'] ),
114
  sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['menu_title'] ),
115
  $admin_tree['capability'],
@@ -122,8 +126,8 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
122
  * Premium product registration
123
  *
124
  * @param $product_init | string | The product init file
125
- * @param $secret_key | string | The product secret key
126
- * @param $product_id | string | The product slug (product_id)
127
  *
128
  * @return void
129
  *
@@ -131,11 +135,44 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
131
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
132
  */
133
  public function register( $product_init, $secret_key, $product_id ) {
134
- $theme = wp_get_theme();
135
- $products[$product_init]['Name'] = $theme->Name;
136
- $products[$product_init]['secret_key'] = $secret_key;
137
- $products[$product_init]['product_id'] = $product_id;
138
- $this->_products[$product_init] = $products[$product_init];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  }
140
  }
141
  }
@@ -147,7 +184,7 @@ if ( ! class_exists( 'YIT_Theme_Licence' ) ) {
147
  * @since 1.0
148
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
149
  */
150
- if( ! function_exists( 'YIT_Theme_Licence' ) ){
151
  function YIT_Theme_Licence() {
152
  return YIT_Theme_Licence::instance();
153
  }
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
+ if ( !defined( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
+ if ( !class_exists( 'YIT_Theme_Licence' ) ) {
16
  /**
17
  * YIT Plugin Licence Panel
18
  *
23
  * @since 1.0
24
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
25
  */
 
26
  class YIT_Theme_Licence extends YIT_Licence {
27
 
28
  /**
49
  */
50
  protected $_product_type = 'theme';
51
 
52
+ /**
53
+ * @var string Old theme licence works until 28 January 2016
54
+ * @since 1.0
55
+ */
56
+ protected $_old_licence_expires = 1453939200; //28 January 2016
57
+
58
  /**
59
  * Constructor
60
  *
66
 
67
  $this->_settings = array(
68
  'parent_page' => 'yit_product_panel',
69
+ 'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
70
+ 'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
71
  'capability' => 'manage_options',
72
  'page' => 'yith_plugins_activation',
73
  );
74
 
75
  add_action( 'admin_menu', array( $this, 'add_submenu_page' ), 99 );
 
 
76
  add_action( "wp_ajax_activate-{$this->_product_type}", array( $this, 'activate' ) );
77
+ add_action( "wp_ajax_deactivate-{$this->_product_type}", array( $this, 'deactivate' ) );
78
  add_action( "wp_ajax_update_licence_information-{$this->_product_type}", array( $this, 'update_licence_information' ) );
79
  }
80
 
105
  public function add_submenu_page() {
106
 
107
  $admin_tree = array(
108
+ 'parent_slug' => apply_filters( 'yit_licence_parent_slug', 'yit_panel' ),
109
+ 'page_title' => __( 'License Activation', 'yith-plugin-fw' ),
110
+ 'menu_title' => __( 'License Activation', 'yith-plugin-fw' ),
111
+ 'capability' => 'manage_options',
112
+ 'menu_slug' => 'yit_panel_license',
113
+ 'function' => 'show_activation_panel'
114
+ );
115
+
116
+ add_submenu_page( $admin_tree['parent_slug'],
117
  sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['page_title'] ),
118
  sprintf( __( '%s', 'yith-plugin-fw' ), $admin_tree['menu_title'] ),
119
  $admin_tree['capability'],
126
  * Premium product registration
127
  *
128
  * @param $product_init | string | The product init file
129
+ * @param $secret_key | string | The product secret key
130
+ * @param $product_id | string | The product slug (product_id)
131
  *
132
  * @return void
133
  *
135
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
136
  */
137
  public function register( $product_init, $secret_key, $product_id ) {
138
+ $theme = wp_get_theme();
139
+ $products[$product_init]['Name'] = $theme->Name;
140
+ $products[$product_init]['secret_key'] = $secret_key;
141
+ $products[$product_init]['product_id'] = $product_id;
142
+ $this->_products[$product_init] = $products[$product_init];
143
+ }
144
+
145
+ /**
146
+ * Check for old licence
147
+ *
148
+ * @return bool True for old licence period, false otherwise
149
+ * @since 2.2
150
+ * @author Andrea Grillo <andrea.grillo@yithemes.com>
151
+ */
152
+ public function show_old_licence_message() {
153
+ return time() < $this->_old_licence_expires;
154
+ }
155
+
156
+ public function get_old_licence_message() {
157
+ ob_start(); ?>
158
+ <div class="activation-faq">
159
+ <h3><?php _e( 'I cannot find the license key for activating the theme I have bought some time ago. Where can I find it?', 'yith-plugin-fw' ) ?></h3>
160
+
161
+ <p>
162
+ <?php
163
+ _e( 'If you have purchased one of our products before 27 January 2015, you can benefit from support and updates (the services offered with the license)
164
+ until 27 January 2016 and you do not have to purchase it again to get a new license key, because, before this date, your license used to be activated automatically by our system.
165
+ After 27 January 2016, instead, if you want to benefit from support and updates you have to buy a new license and activate it through the license key you will be
166
+ provided with and that you can find in your YIThemes account, in section "My licenses".', 'yith-plugin-fw' )
167
+ ?>
168
+ </p>
169
+ </div>
170
+ <?php
171
+ echo ob_get_clean();
172
+ }
173
+
174
+ public function get_product_type() {
175
+ return $this->_product_type;
176
  }
177
  }
178
  }
184
  * @since 1.0
185
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
186
  */
187
+ if ( !function_exists( 'YIT_Theme_Licence' ) ) {
188
  function YIT_Theme_Licence() {
189
  return YIT_Theme_Licence::instance();
190
  }
plugin-fw/licence/templates/panel/activation/activation-panel.php CHANGED
@@ -8,45 +8,40 @@
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
- $to_active_products = $this->get_to_active_products();
12
- $activated_products = $this->get_activated_products();
13
- $no_active_products = $this->get_no_active_licence_key();
14
- $expired_products = isset( $no_active_products[ '106' ] ) ? $no_active_products[ '106' ] : array();
15
- $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_products[ '107' ] : array();
 
 
 
 
16
  ?>
17
 
18
  <div class="yit-container product-licence-activation">
19
- <h2><?php _e( 'Yithemes Licence Activation', 'yith-plugin-fw' ) ?></h2>
20
-
21
- <?php if( is_a( $this, 'YIT_Theme_Licence' ) ) : ?>
22
- <div class="activation-faq">
23
- <h3><?php _e( 'I cannot find the license key for activating the theme I have bought some time ago. Where can I find it?', 'yith-plugin-fw' ) ?></h3>
24
- <p>
25
- <?php
26
- _e( 'If you have purchased one of our products before 27 January 2015, you can benefit from support and updates (the services offered with the license)
27
- until 27 January 2016 and you do not have to purchase it again to get a new license key, because, before this date, your license used to be activated automatically by our system.
28
- After 27 January 2016, instead, if you want to benefit from support and updates you have to buy a new license and activate it through the license key you will be
29
- provided with and that you can find in your YIThemes account, in section "My licenses".', 'yith-plugin-fw' )
30
- ?>
31
- </p>
32
- </div>
33
- <?php endif; ?>
34
 
35
  <div class="licence-check-section">
36
  <form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
37
  <span class="licence-label" style="display: block;"><?php _e( 'Have you updated your licenses? Have you asked for an extension? Update information concerning your products.', 'yith-plugin-fw' ); ?></span>
38
- <input type="hidden" name="action" value="update_licence_information-<?php echo $this->_product_type ?>" />
39
- <input type="submit" name="submit" value="<?php _e( 'Update licence information', 'yith-plugin-fw' ) ?>" class="button-licence licence-check" />
40
  <div class="spinner"></div>
41
  </form>
42
  </div>
43
 
44
- <!-- To Active Products -->
 
 
45
 
 
46
 
47
  <?php if( ! empty( $to_active_products ) ) : ?>
48
- <h3 class="to-active">
49
- <?php _e( 'Products to be activated', 'yith-plugin-fw' ) ?>
50
  <span class="spinner"></span>
51
  </h3>
52
  <div class="to-active-wrapper">
@@ -56,23 +51,22 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
56
  <tbody>
57
  <tr class="product-row">
58
  <td class="product-name">
59
- <?php echo $info['Name'] ?>
60
  </td>
61
  <td>
62
  <input type="email" name="email" placeholder="Your email on Yithemes.com" value="" class="user-email" />
63
  </td>
64
  <td>
65
- <input type="text" name="licence_key" placeholder="Licence Key" value="" class="licence-key" />
66
  </td>
67
  <td class="activate-button">
68
  <input type="submit" name="submit" value="<?php _e( 'Activate', 'yith-plugin-fw' )?>" class="button-licence licence-activation" data-formid="<?php echo $info['product_id'] ?>"/>
69
  </td>
70
  </tr>
71
- <input type="hidden" name="action" value="activate-<?php echo $this->_product_type ?>" />
72
  <input type="hidden" name="product_init" value="<?php echo $init ?>" />
73
  </tbody>
74
  </table>
75
- <div class="spinner"></div>
76
  <div class="message-wrapper">
77
  <span class="message arrow-left"></span>
78
  </div>
@@ -84,29 +78,78 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
84
  <!-- Activated Products -->
85
 
86
  <?php if( ! empty( $activated_products ) ) : ?>
87
- <h3><?php _e( 'Activated', 'yith-plugin-fw' ) ?></h3>
88
- <table class="expired-table">
 
 
 
89
  <thead>
90
  <tr>
91
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
92
- <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
93
- <th><?php _e( 'Licence Key', 'yith-plugin-fw' ) ?></th>
 
 
 
94
  <th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
95
- <th><?php _e( 'Remaining', 'yith-plugin-fw' ) ?></th>
96
- <th><?php _e( 'Renew', 'yith-plugin-fw' ) ?></th>
 
 
 
 
 
 
 
97
  </tr>
98
  </thead>
99
  <tbody>
100
  <?php foreach( $activated_products as $init => $info ) : ?>
101
  <tr>
102
- <td class="product-name"><?php echo $info['Name'] ?></td>
103
- <td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
104
- <td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
105
- <td class="product-licence-expires"><?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?></td>
106
- <td class="product-licence-remaining">
107
- <?php printf( __( '%1s out of %2s', 'yith-plugin-fw' ), $info['licence']['activation_remaining'], $info['licence']['activation_limit'] ); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108
  </td>
109
- <td><a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank"><?php _e( 'Renew', 'yith-plugin-fw' ) ?></a></td>
110
  </tr>
111
  <?php endforeach; ?>
112
  </tbody>
@@ -121,16 +164,22 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
121
  <thead>
122
  <tr>
123
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
124
- <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
125
- <th><?php _e( 'Licence Key', 'yith-plugin-fw' ) ?></th>
 
 
126
  </tr>
127
  </thead>
128
  <tbody>
129
  <?php foreach( $banned_products as $init => $info ) : ?>
130
  <tr>
131
- <td class="product-name"><?php echo $info['Name'] ?></td>
132
- <td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
133
- <td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
 
 
 
 
134
  </tr>
135
  <?php endforeach; ?>
136
  </tbody>
@@ -145,20 +194,44 @@ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_produc
145
  <thead>
146
  <tr>
147
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
148
- <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
149
- <th><?php _e( 'Licence Key', 'yith-plugin-fw' ) ?></th>
 
 
 
 
150
  <th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
151
- <th><?php _e( 'Renew', 'yith-plugin-fw' ) ?></th>
 
 
 
152
  </tr>
153
  </thead>
154
  <tbody>
155
  <?php foreach( $expired_products as $init => $info ) : ?>
156
  <tr>
157
- <td class="product-name"><?php echo $info['Name'] ?></td>
158
- <td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
159
- <td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
 
 
 
 
 
 
160
  <td class="product-licence-expires"><?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?></td>
161
- <td><a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank"><?php _e( 'Renew', 'yith-plugin-fw' ) ?></a></td>
 
 
 
 
 
 
 
 
 
 
 
162
  </tr>
163
  <?php endforeach; ?>
164
  </tbody>
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
+ $to_active_products = $this->get_to_active_products();
12
+ $activated_products = $this->get_activated_products();
13
+ $no_active_products = $this->get_no_active_licence_key();
14
+ $expired_products = isset( $no_active_products[ '106' ] ) ? $no_active_products[ '106' ] : array();
15
+ $banned_products = isset( $no_active_products[ '107' ] ) ? $no_active_products[ '107' ] : array();
16
+ $notice = isset( $notice ) ? $notice : '';
17
+ $notice_class = ! empty( $notice ) ? 'notice notice-success visible' : 'notice notice-success';
18
+ $to_activate_check = $this instanceof YIT_Theme_Licence ? 1 : 2;
19
+ $num_members_products_activate = $this->get_number_of_membership_products();
20
  ?>
21
 
22
  <div class="yit-container product-licence-activation">
23
+ <h2><?php _e( 'Yithemes License Activation', 'yith-plugin-fw' ) ?></h2>
24
+
25
+ <?php $this instanceof YIT_Theme_Licence && $this->show_old_licence_message() && $this->get_old_licence_message(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
  <div class="licence-check-section">
28
  <form method="post" id="licence-check-update" action="<?php echo admin_url( 'admin-ajax.php' ) ?>">
29
  <span class="licence-label" style="display: block;"><?php _e( 'Have you updated your licenses? Have you asked for an extension? Update information concerning your products.', 'yith-plugin-fw' ); ?></span>
30
+ <input type="hidden" name="action" value="update_licence_information-<?php echo $this->get_product_type(); ?>" />
31
+ <input type="submit" name="submit" value="<?php _e( 'Update license information', 'yith-plugin-fw' ) ?>" class="button-licence licence-check" />
32
  <div class="spinner"></div>
33
  </form>
34
  </div>
35
 
36
+ <div id="yith-licence-notice" class="<?php echo $notice_class ?>">
37
+ <p class="yith-licence-notice-message"><?php echo $notice ?></p>
38
+ </div>
39
 
40
+ <!-- To Active Products -->
41
 
42
  <?php if( ! empty( $to_active_products ) ) : ?>
43
+ <h3 id="products-to-active" class="to-active">
44
+ <?php echo _n( 'Product to activate', 'Products to activate', $to_activate_check, 'yith-plugin-fw' ) ?>
45
  <span class="spinner"></span>
46
  </h3>
47
  <div class="to-active-wrapper">
51
  <tbody>
52
  <tr class="product-row">
53
  <td class="product-name">
54
+ <?php echo $this->display_product_name( $info['Name'] ) ?>
55
  </td>
56
  <td>
57
  <input type="email" name="email" placeholder="Your email on Yithemes.com" value="" class="user-email" />
58
  </td>
59
  <td>
60
+ <input type="text" name="licence_key" placeholder="License Key" value="" class="licence-key" />
61
  </td>
62
  <td class="activate-button">
63
  <input type="submit" name="submit" value="<?php _e( 'Activate', 'yith-plugin-fw' )?>" class="button-licence licence-activation" data-formid="<?php echo $info['product_id'] ?>"/>
64
  </td>
65
  </tr>
66
+ <input type="hidden" name="action" value="activate-<?php echo $this->get_product_type(); ?>" />
67
  <input type="hidden" name="product_init" value="<?php echo $init ?>" />
68
  </tbody>
69
  </table>
 
70
  <div class="message-wrapper">
71
  <span class="message arrow-left"></span>
72
  </div>
78
  <!-- Activated Products -->
79
 
80
  <?php if( ! empty( $activated_products ) ) : ?>
81
+ <h3 id="activated-products">
82
+ <?php _e( 'Activated', 'yith-plugin-fw' ) ?>
83
+ <span class="spinner"></span>
84
+ </h3>
85
+ <table class="activated-table">
86
  <thead>
87
  <tr>
88
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
89
+ <?php if( $this->show_extra_info ) : ?>
90
+ <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
91
+ <th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
92
+ <?php endif; ?>
93
+
94
  <th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
95
+
96
+ <?php if( $this->show_extra_info ) : ?>
97
+ <th><?php _e( 'Remaining', 'yith-plugin-fw' ) ?></th>
98
+ <?php if( $num_members_products_activate ) : ?>
99
+ <th><?php _e( 'Membership', 'yith-plugin-fw' ) ?></th>
100
+ <?php endif; ?>
101
+ <?php endif; ?>
102
+
103
+ <th><?php _e( 'License Actions', 'yith-plugin-fw' ) ?></th>
104
  </tr>
105
  </thead>
106
  <tbody>
107
  <?php foreach( $activated_products as $init => $info ) : ?>
108
  <tr>
109
+ <td class="product-name">
110
+ <?php echo $this->display_product_name( $info['Name'] ) ?>
111
+ </td>
112
+
113
+ <?php if( $this->show_extra_info ) : ?>
114
+ <td class="product-licence-email">
115
+ <?php echo $info['licence']['email'] ?>
116
+ </td>
117
+ <td class="product-licence-key">
118
+ <?php echo $info['licence']['licence_key'] ?>
119
+ </td>
120
+ <?php endif; ?>
121
+
122
+ <td class="product-licence-expires">
123
+ <?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?>
124
+ </td>
125
+
126
+ <?php if( $this->show_extra_info ) : ?>
127
+ <td class="product-licence-remaining">
128
+ <?php printf( __( '%1s out of %2s', 'yith-plugin-fw' ), $info['licence']['activation_remaining'], $info['licence']['activation_limit'] ); ?>
129
+ </td>
130
+ <?php if( $num_members_products_activate ) : ?>
131
+ <td class="product-licence-membership">
132
+ <span class="dashicons dashicons-<?php echo $info['licence']['is_membership'] ? 'yes' : 'no-alt' ?>"></span>
133
+ </td>
134
+ <?php endif; ?>
135
+ <?php endif; ?>
136
+
137
+ <td>
138
+ <a class="button-licence licence-deactive"
139
+ href="#"
140
+ data-licence-email="<?php echo $info['licence']['email'] ?>"
141
+ data-licence-key="<?php echo $info['licence']['licence_key'] ?>"
142
+ data-product-init="<?php echo $init ?>"
143
+ data-action="deactivate-<?php echo $this->get_product_type(); ?>">
144
+ <?php _e( 'Deactivate', 'yith-plugin-fw' ) ?>
145
+ </a>
146
+
147
+ <?php if( ! $info['licence']['is_membership'] && $this->show_renew_button ) : ?>
148
+ <a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank">
149
+ <?php _e( 'Renew', 'yith-plugin-fw' ) ?>
150
+ </a>
151
+ <?php endif; ?>
152
  </td>
 
153
  </tr>
154
  <?php endforeach; ?>
155
  </tbody>
164
  <thead>
165
  <tr>
166
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
167
+ <?php if( $this->show_extra_info ) : ?>
168
+ <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
169
+ <th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
170
+ <?php endif; ?>
171
  </tr>
172
  </thead>
173
  <tbody>
174
  <?php foreach( $banned_products as $init => $info ) : ?>
175
  <tr>
176
+ <td class="product-name">
177
+ <?php echo $this->display_product_name( $info['Name'] ) ?>
178
+ </td>
179
+ <?php if( $this->show_extra_info ) : ?>
180
+ <td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
181
+ <td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
182
+ <?php endif; ?>
183
  </tr>
184
  <?php endforeach; ?>
185
  </tbody>
194
  <thead>
195
  <tr>
196
  <th><?php _e( 'Product Name', 'yith-plugin-fw' ) ?></th>
197
+
198
+ <?php if( $this->show_extra_info ) : ?>
199
+ <th><?php _e( 'Email', 'yith-plugin-fw' ) ?></th>
200
+ <th><?php _e( 'License Key', 'yith-plugin-fw' ) ?></th>
201
+ <?php endif; ?>
202
+
203
  <th><?php _e( 'Expires', 'yith-plugin-fw' ) ?></th>
204
+
205
+ <?php if( $this->show_renew_button ) : ?>
206
+ <th><?php _e( 'Renew', 'yith-plugin-fw' ) ?></th>
207
+ <?php endif; ?>
208
  </tr>
209
  </thead>
210
  <tbody>
211
  <?php foreach( $expired_products as $init => $info ) : ?>
212
  <tr>
213
+ <td class="product-name">
214
+ <?php echo $this->display_product_name( $info['Name'] ) ?>
215
+ </td>
216
+
217
+ <?php if( $this->show_extra_info ) : ?>
218
+ <td class="product-licence-email"><?php echo $info['licence']['email'] ?></td>
219
+ <td class="product-licence-key"><?php echo $info['licence']['licence_key'] ?></td>
220
+ <?php endif; ?>
221
+
222
  <td class="product-licence-expires"><?php echo date("F j, Y", $info['licence']['licence_expires'] ); ?></td>
223
+
224
+ <?php if( $this->show_renew_button ) : ?>
225
+ <td>
226
+ <a class="button-licence licence-renew" href="<?php echo $this->get_renewing_uri( $info['licence']['licence_key'] ) ?>" target="_blank">
227
+ <?php if( $info['licence']['is_membership'] ) : ?>
228
+ <?php _e( 'Order again', 'yith-plugin-fw' ) ?>
229
+ <?php else : ?>
230
+ <?php __( 'Renew license', 'yith-plugin-fw' ) ?>
231
+ <?php endif; ?>
232
+ </a>
233
+ </td>
234
+ <?php endif; ?>
235
  </tr>
236
  <?php endforeach; ?>
237
  </tbody>
plugin-fw/templates/metaboxes/types/number.php CHANGED
@@ -14,12 +14,25 @@ if ( ! defined( 'ABSPATH' ) ) {
14
 
15
  extract( $args );
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  ?>
18
  <div id="<?php echo $id ?>-container" <?php if ( isset($deps) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $deps['ids'] ?>" data-value="<?php echo $deps['values'] ?>" <?php endif ?>>
19
  <div class="rm_number">
20
  <label for="<?php echo $id ?>"><?php echo $label ?></label>
21
  <span class="field">
22
- <input class="number" type="text" id="<?php echo $id ?>" name="<?php echo $name ?>" <?php echo $min.' '.$max ?> value="<?php echo esc_attr( $value ) ?>" <?php if( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?>" />
23
  <?php yit_string( '<span class="description">', $desc, '</span>' ); ?>
24
  </span>
25
  </div>
14
 
15
  extract( $args );
16
 
17
+ $min_max_attr = $step_attr = '';
18
+
19
+ if( isset( $min ) ){
20
+ $min_max_attr .= " min='{$min}'";
21
+ }
22
+
23
+ if( isset( $max ) ){
24
+ $min_max_attr .= " max='{$max}'";
25
+ }
26
+
27
+ if( isset( $step ) ){
28
+ $step_attr .= "step='{$step}'";
29
+ }
30
  ?>
31
  <div id="<?php echo $id ?>-container" <?php if ( isset($deps) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $deps['ids'] ?>" data-value="<?php echo $deps['values'] ?>" <?php endif ?>>
32
  <div class="rm_number">
33
  <label for="<?php echo $id ?>"><?php echo $label ?></label>
34
  <span class="field">
35
+ <input class="number" type="text" id="<?php echo $id ?>" name="<?php echo $name ?>" <?php echo $step_attr ?> <?php echo $min_max_attr ?> value="<?php echo esc_attr( $value ) ?>" <?php if( isset( $std ) ) : ?>data-std="<?php echo $std ?>"<?php endif ?>" />
36
  <?php yit_string( '<span class="description">', $desc, '</span>' ); ?>
37
  </span>
38
  </div>
plugin-fw/templates/panel/types/upload.php CHANGED
@@ -26,9 +26,10 @@ $name = $this->get_name_field( $option['id'] );
26
  ?>
27
  <div id="<?php echo $id ?>-container" >
28
  <div id="<?php echo $id ?>-container" class="yit_options rm_option rm_input rm_text rm_upload" <?php if ( isset( $option['deps'] ) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $this->get_id_field( $option['deps']['ids'] ) ?>" data-value="<?php echo $option['deps']['values'] ?>" <?php endif ?>>
29
- <div class="option">
30
  <input type="text" name="<?php echo $name ?>" id="<?php echo $id ?>" value="<?php echo $db_value == '1' ? '' : esc_attr( $db_value ) ?>" class="upload_img_url" />
31
  <input type="button" value="<?php _e( 'Upload', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button" class="upload_button button" />
 
32
  </div>
33
  <div class="clear"></div>
34
  <span class="description"><?php echo $option['desc'] ?></span>
26
  ?>
27
  <div id="<?php echo $id ?>-container" >
28
  <div id="<?php echo $id ?>-container" class="yit_options rm_option rm_input rm_text rm_upload" <?php if ( isset( $option['deps'] ) ): ?>data-field="<?php echo $id ?>" data-dep="<?php echo $this->get_id_field( $option['deps']['ids'] ) ?>" data-value="<?php echo $option['deps']['values'] ?>" <?php endif ?>>
29
+ <div class="option yit-upload">
30
  <input type="text" name="<?php echo $name ?>" id="<?php echo $id ?>" value="<?php echo $db_value == '1' ? '' : esc_attr( $db_value ) ?>" class="upload_img_url" />
31
  <input type="button" value="<?php _e( 'Upload', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button" class="upload_button button" />
32
+ <input type="button" value="<?php _e( 'Reset', 'yith-plugin-fw' ) ?>" id="<?php echo $id ?>-button_reset" class="upload_button_reset button" data-default="<?php echo $option['std'] ?>"/>
33
  </div>
34
  <div class="clear"></div>
35
  <span class="description"><?php echo $option['desc'] ?></span>
plugin-fw/yit-functions.php CHANGED
@@ -8,11 +8,11 @@
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
- if ( ! defined( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
- if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
16
  /**
17
  * Locate the templates and return the path of the file found
18
  *
@@ -23,12 +23,12 @@ if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
23
  * @return string
24
  * @since 2.0.0
25
  */
26
- function yit_plugin_locate_template( $plugin_basename, $path, $var = NULL ) {
27
 
28
  $template_path = '/theme/templates/' . $path;
29
 
30
- $located = locate_template( array(
31
- $template_path
32
  ) );
33
 
34
  if ( ! $located ) {
@@ -40,7 +40,7 @@ if ( ! function_exists( 'yit_plugin_locate_template' ) ) {
40
 
41
  }
42
 
43
- if ( ! function_exists( 'yit_plugin_get_template' ) ) {
44
  /**
45
  * Retrieve a template file.
46
  *
@@ -52,30 +52,30 @@ if ( ! function_exists( 'yit_plugin_get_template' ) ) {
52
  * @return string
53
  * @since 2.0.0
54
  */
55
- function yit_plugin_get_template( $plugin_basename, $path, $var = null, $return = false ) {
56
 
57
- $located = yit_plugin_locate_template( $plugin_basename, $path, $var );
58
 
59
- if ( $var && is_array( $var ) ) {
60
- extract( $var );
61
  }
62
 
63
  if ( $return ) {
64
- ob_start();
65
  }
66
 
67
  // include file located
68
- if( file_exists( $located ) ){
69
- include( $located );
70
  }
71
 
72
  if ( $return ) {
73
- return ob_get_clean();
74
  }
75
  }
76
  }
77
 
78
- if ( ! function_exists( 'yit_plugin_content' ) ) {
79
  /**
80
  * Return post content with read more link (if needed)
81
  *
@@ -88,85 +88,79 @@ if ( ! function_exists( 'yit_plugin_content' ) ) {
88
  * @return string
89
  * @since 2.0.0
90
  */
91
- function yit_plugin_content( $what = 'content', $limit = 25, $more_text = '', $split = '[...]', $in_paragraph = 'true' ) {
92
  if ( $what == 'content' ) {
93
- $content = get_the_content( $more_text );
94
- }
95
- else {
96
  if ( $what == 'excerpt' ) {
97
- $content = get_the_excerpt();
98
- }
99
- else {
100
  $content = $what;
101
  }
102
  }
103
 
104
  if ( $limit == 0 ) {
105
  if ( $what == 'excerpt' ) {
106
- $content = apply_filters( 'the_excerpt', $content );
107
- }
108
- else {
109
- $content = preg_replace( '/<img[^>]+./', '', $content ); //remove images
110
- $content = apply_filters( 'the_content', $content );
111
- $content = str_replace( ']]>', ']]&gt;', $content );
112
  }
113
 
114
  return $content;
115
  }
116
 
117
  // remove the tag more from the content
118
- if ( preg_match( "/<(a)[^>]*class\s*=\s*(['\"])more-link\\2[^>]*>(.*?)<\/\\1>/", $content, $matches ) ) {
119
 
120
- if ( strpos( $matches[0], '[button' ) ) {
121
- $more_link = str_replace( 'href="#"', 'href="' . get_permalink() . '"', do_shortcode( $matches[3] ) );
122
- }
123
- else {
124
- $more_link = $matches[0];
125
  }
126
 
127
- $content = str_replace( $more_link, '', $content );
128
  $split = '';
129
  }
130
 
131
  if ( empty( $content ) ) {
132
  return;
133
  }
134
- $content = explode( ' ', $content );
135
 
136
  if ( ! empty( $more_text ) && ! isset( $more_link ) ) {
137
  //array_pop( $content );
138
- $more_link = strpos( $more_text, '<a class="btn"' ) ? $more_text : '<a class="read-more' . apply_filters( 'yit_simple_read_more_classes', ' ' ) . '" href="' . get_permalink() . '">' . $more_text . '</a>';
139
  $split = '';
140
- }
141
- elseif ( ! isset( $more_link ) ) {
142
  $more_link = '';
143
  }
144
 
145
  // split
146
- if ( count( $content ) >= $limit ) {
147
  $split_content = '';
148
  for ( $i = 0; $i < $limit; $i ++ ) {
149
- $split_content .= $content[$i] . ' ';
150
  }
151
 
152
  $content = $split_content . $split;
153
- }
154
- else {
155
- $content = implode( " ", $content );
156
  }
157
 
158
  // TAGS UNCLOSED
159
- $tags = array();
160
  // get all tags opened
161
- preg_match_all( "/(<([\w]+)[^>]*>)/", $content, $tags_opened, PREG_SET_ORDER );
162
  foreach ( $tags_opened as $tag ) {
163
- $tags[] = $tag[2];
164
  }
165
 
166
  // get all tags closed and remove it from the tags opened.. the rest will be closed at the end of the content
167
- preg_match_all( "/(<\/([\w]+)[^>]*>)/", $content, $tags_closed, PREG_SET_ORDER );
168
  foreach ( $tags_closed as $tag ) {
169
- unset( $tags[array_search( $tag[2], $tags )] );
170
  }
171
 
172
  // close the tags
@@ -178,16 +172,16 @@ if ( ! function_exists( 'yit_plugin_content' ) ) {
178
 
179
  //$content = preg_replace( '/\[.+\]/', '', $content );
180
  if ( $in_paragraph == true ): $content .= $more_link; endif;
181
- $content = preg_replace( '/<img[^>]+./', '', $content ); //remove images
182
- $content = apply_filters( 'the_content', $content );
183
- $content = str_replace( ']]>', ']]&gt;', $content ); // echo str_replace( array( '<', '>' ), array( '&lt;', '&gt;' ), $content );
184
  if ( $in_paragraph == false ): $content .= $more_link; endif;
185
 
186
  return $content;
187
  }
188
  }
189
 
190
- if ( ! function_exists( 'yit_plugin_string' ) ) {
191
  /**
192
  * Simple echo a string, with a before and after string, only if the main string is not empty.
193
  *
@@ -199,10 +193,10 @@ if ( ! function_exists( 'yit_plugin_string' ) ) {
199
  * @return string The complete string, if the main string is not empty or null
200
  * @since 2.0.0
201
  */
202
- function yit_plugin_string( $before = '', $string = '', $after = '', $echo = true ) {
203
  $html = '';
204
 
205
- if ( $string != '' AND ! is_null( $string ) ) {
206
  $html = $before . $string . $after;
207
  }
208
 
@@ -214,7 +208,7 @@ if ( ! function_exists( 'yit_plugin_string' ) ) {
214
  }
215
  }
216
 
217
- if ( ! function_exists( 'yit_plugin_decode_title' ) ) {
218
  /**
219
  * Change some special characters to put easily html into a string
220
  *
@@ -228,14 +222,14 @@ if ( ! function_exists( 'yit_plugin_decode_title' ) ) {
228
  *
229
  * @since 1.0
230
  */
231
- function yit_plugin_decode_title( $title ) {
232
- $replaces = apply_filters( 'yit_title_special_characters', array() );
233
 
234
- return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
235
  }
236
  }
237
 
238
- if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
239
 
240
  /**
241
  * Return the ID of an attachment.
@@ -247,49 +241,49 @@ if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
247
  * @since 2.0.0
248
  */
249
 
250
- function yit_plugin_get_attachment_id( $url ) {
251
 
252
- $upload_dir = wp_upload_dir();
253
- $dir = trailingslashit( $upload_dir['baseurl'] );
254
 
255
- if ( false === strpos( $url, $dir ) ) {
256
  return false;
257
  }
258
 
259
- $file = basename( $url );
260
 
261
- $query = array(
262
  'post_type' => 'attachment',
263
  'fields' => 'ids',
264
- 'meta_query' => array(
265
- array(
266
  'value' => $file,
267
  'compare' => 'LIKE',
268
- )
269
- )
270
  );
271
 
272
- $query['meta_query'][0]['key'] = '_wp_attached_file';
273
- $ids = get_posts( $query );
274
 
275
  foreach ( $ids as $id ) {
276
- $attachment_image = wp_get_attachment_image_src( $id, 'full' );
277
- if ( $url == array_shift( $attachment_image ) || $url == str_replace( 'https://', 'http://', array_shift( $attachment_image ) ) ) {
278
  return $id;
279
  }
280
  }
281
- $query['meta_query'][0]['key'] = '_wp_attachment_metadata';
282
- $ids = get_posts( $query );
283
 
284
  foreach ( $ids as $id ) {
285
 
286
- $meta = wp_get_attachment_metadata( $id );
287
- if ( ! isset( $meta['sizes'] ) ) {
288
  continue;
289
  }
290
 
291
- foreach ( (array) $meta['sizes'] as $size => $values ) {
292
- if ( $values['file'] == $file && $url == str_replace( 'https://', 'http://', array_shift( wp_get_attachment_image_src( $id, $size ) ) ) ) {
293
 
294
  return $id;
295
  }
@@ -300,7 +294,7 @@ if ( ! function_exists( 'yit_plugin_get_attachment_id' ) ) {
300
  }
301
  }
302
 
303
- if ( ! function_exists( 'yit_enqueue_script' ) ) {
304
  /**
305
  * Enqueues script.
306
  *
@@ -310,19 +304,18 @@ if ( ! function_exists( 'yit_enqueue_script' ) ) {
310
  * @author Simone D'Amico <simone.damico@yithemes.com>
311
  * @see yit_register_script() For parameter information.
312
  */
313
- function yit_enqueue_script( $handle, $src, $deps = array(), $ver = false, $in_footer = true ) {
314
 
315
- if ( function_exists( 'YIT_Asset' ) && ! is_admin() ) {
316
  $enqueue = true;
317
- YIT_Asset()->set( 'script', $handle, compact( 'src', 'deps', 'ver', 'in_footer', 'enqueue' ) );
318
- }
319
- else {
320
- wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );
321
  }
322
  }
323
  }
324
 
325
- if ( ! function_exists( 'yit_enqueue_style' ) ) {
326
  /**
327
  * Enqueues style.
328
  *
@@ -332,54 +325,53 @@ if ( ! function_exists( 'yit_enqueue_style' ) ) {
332
  * @author Simone D'Amico <simone.damico@yithemes.com>
333
  * @see yit_register_style() For parameter information.
334
  */
335
- function yit_enqueue_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
336
 
337
- if ( function_exists( 'YIT_Asset' ) ) {
338
  $enqueue = true;
339
- $who = YIT_Asset()->get_stylesheet_handle( get_stylesheet_uri(), 'style' );
340
  $where = 'before';
341
 
342
- if( false == $who ){
343
  $who = '';
344
  }
345
 
346
- YIT_Asset()->set( 'style', $handle, compact( 'src', 'deps', 'ver', 'media', 'enqueue' ), $where, $who );
347
- }
348
- else {
349
- wp_enqueue_style( $handle, $src, $deps, $ver, $media );
350
  }
351
  }
352
  }
353
 
354
- if ( ! function_exists( 'yit_get_post_meta' ) ) {
355
  /**
356
  * Retrieve the value of a metabox.
357
  *
358
  * This function retrieve the value of a metabox attached to a post. It return either a single value or an array.
359
  *
360
- * @param int $id Post ID.
361
- * @param string $meta The meta key to retrieve.
362
  *
363
  * @return mixed Single value or array
364
  * @since 2.0.0
365
  */
366
- function yit_get_post_meta( $id, $meta ) {
367
- if ( ! strpos( $meta, '[' ) ) {
368
- return get_post_meta( $id, $meta, true );
369
  }
370
 
371
- $sub_meta = explode( '[', $meta );
372
 
373
- $meta = get_post_meta( $id, $meta, true );
374
- for ( $i = 0; $i < count( $sub_meta ); $i ++ ) {
375
- $meta = $meta[rtrim( $sub_meta[$i], ']' )];
376
  }
377
 
378
  return $meta;
379
  }
380
  }
381
 
382
- if ( ! function_exists( 'yit_string' ) ) {
383
  /**
384
  * Simple echo a string, with a before and after string, only if the main string is not empty.
385
  *
@@ -391,10 +383,10 @@ if ( ! function_exists( 'yit_string' ) ) {
391
  * @return string The complete string, if the main string is not empty or null
392
  * @since 2.0.0
393
  */
394
- function yit_string( $before = '', $string = '', $after = '', $echo = true ) {
395
  $html = '';
396
 
397
- if ( $string != '' AND ! is_null( $string ) ) {
398
  $html = $before . $string . $after;
399
  }
400
 
@@ -407,7 +399,7 @@ if ( ! function_exists( 'yit_string' ) ) {
407
  }
408
 
409
 
410
- if ( ! function_exists( 'yit_pagination' ) ) {
411
  /**
412
  * Print pagination
413
  *
@@ -417,12 +409,12 @@ if ( ! function_exists( 'yit_pagination' ) ) {
417
  * @return string
418
  * @since 2.0.0
419
  */
420
- function yit_pagination( $pages = '', $range = 10 ) {
421
  $showitems = ( $range * 2 ) + 1;
422
 
423
- $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : false;
424
  if ( $paged === false ) {
425
- $paged = ( get_query_var( 'page' ) ) ? get_query_var( 'page' ) : false;
426
  }
427
  if ( $paged === false ) {
428
  $paged = 1;
@@ -446,60 +438,60 @@ if ( ! function_exists( 'yit_pagination' ) ) {
446
  if ( 1 != $pages ) {
447
  $html .= "<div class='general-pagination clearfix'>";
448
  if ( $paged > 2 ) {
449
- $html .= sprintf( '<a class="%s" href="%s">&laquo;</a>', 'yit_pagination_first', get_pagenum_link( 1 ) );
450
  }
451
  if ( $paged > 1 ) {
452
- $html .= sprintf( '<a class="%s" href="%s">&lsaquo;</a>', 'yit_pagination_previous', get_pagenum_link( $paged - 1 ) );
453
  }
454
 
455
  for ( $i = 1; $i <= $pages; $i ++ ) {
456
  if ( 1 != $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
457
  $class = ( $paged == $i ) ? " class='selected'" : '';
458
- $html .= "<a href='" . get_pagenum_link( $i ) . "'$class >$i</a>";
459
  }
460
  }
461
 
462
  if ( $paged < $pages ) {
463
- $html .= sprintf( '<a class="%s" href="%s">&rsaquo;</a>', 'yit_pagination_next', get_pagenum_link( $paged + 1 ) );
464
  }
465
  if ( $paged < $pages - 1 ) {
466
- $html .= sprintf( '<a class="%s" href="%s">&raquo;</a>', 'yit_pagination_last', get_pagenum_link( $pages ) );
467
  }
468
 
469
  $html .= "</div>\n";
470
  }
471
 
472
- echo apply_filters( 'yit_pagination_html', $html );
473
  }
474
  }
475
 
476
- if ( ! function_exists( 'yit_registered_sidebars' ) ) {
477
  /**
478
  * Retrieve all registered sidebars
479
  *
480
  * @return array
481
  * @since 2.0.0
482
  */
483
- function yit_registered_sidebars() {
484
  global $wp_registered_sidebars;
485
 
486
- $return = array();
487
 
488
  if ( empty( $wp_registered_sidebars ) ) {
489
- $return = array( '' => '' );
490
  }
491
 
492
- foreach ( ( array ) $wp_registered_sidebars as $the_ ) {
493
- $return[$the_['name']] = $the_['name'];
494
  }
495
 
496
- ksort( $return );
497
 
498
  return $return;
499
  }
500
  }
501
 
502
- if ( ! function_exists( 'yit_layout_option' ) ) {
503
  /**
504
  * Retrieve a layout option
505
  *
@@ -511,20 +503,18 @@ if ( ! function_exists( 'yit_layout_option' ) ) {
511
  * @return array
512
  * @since 2.0.0
513
  */
514
- function yit_layout_option( $key, $id = false, $type = "post", $model = "post_type" ) {
515
 
516
  $option = '';
517
 
518
- if ( defined( 'YIT' ) ) {
519
- $option = YIT_Layout_Panel()->get_option( $key, $id, $type, $model );
520
- }
521
- else {
522
- if ( ! $id && ( is_single() || is_page() ) ) {
523
  global $post;
524
  $id = $post->ID;
525
- }
526
- elseif ( $id != 'all' ) {
527
- $option = get_post_meta( $id, $key );
528
  }
529
  }
530
 
@@ -532,32 +522,31 @@ if ( ! function_exists( 'yit_layout_option' ) ) {
532
  }
533
  }
534
 
535
- if ( ! function_exists( 'yit_curPageURL' ) ) {
536
  /**
537
  * Retrieve the current complete url
538
  *
539
  * @since 1.0
540
  */
541
- function yit_curPageURL() {
542
  $pageURL = 'http';
543
- if ( isset( $_SERVER["HTTPS"] ) AND $_SERVER["HTTPS"] == "on" ) {
544
  $pageURL .= "s";
545
  }
546
 
547
  $pageURL .= "://";
548
 
549
- if ( isset( $_SERVER["SERVER_PORT"] ) AND $_SERVER["SERVER_PORT"] != "80" ) {
550
- $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"];
551
- }
552
- else {
553
- $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
554
  }
555
 
556
  return $pageURL;
557
  }
558
  }
559
 
560
- if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
561
  /**
562
  *
563
  * Retrieve the escluded categories, set on Theme Options
@@ -569,7 +558,7 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
569
  * @since 2.0.0
570
  */
571
 
572
- function yit_get_excluded_categories( $k = 1 ) {
573
 
574
  global $post;
575
 
@@ -577,20 +566,20 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
577
  return;
578
  }
579
 
580
- $cf_cats = get_post_meta( $post->ID, 'blog-cats', true);
581
 
582
- if ( ! empty( $cf_cats ) ){
583
  return $cf_cats;
584
  }
585
 
586
- $cats = function_exists( 'yit_get_option' ) ? yit_get_option( 'blog-excluded-cats' ) : '';
587
 
588
 
589
- if ( ! is_array( $cats ) || empty( $cats ) || ! isset( $cats[$k] ) ) {
590
  return;
591
  }
592
 
593
- $cats = array_map( 'trim', $cats[$k] );
594
 
595
  $i = 0;
596
  $query = '';
@@ -600,15 +589,15 @@ if ( ! function_exists( 'yit_get_excluded_categories' ) ) {
600
  $i ++;
601
  }
602
 
603
- ltrim( ',', $query );
604
 
605
  return $query;
606
  }
607
  }
608
 
609
 
610
- if ( ! function_exists( 'yit_add_extra_theme_headers' ) ) {
611
- add_filter( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
612
 
613
  /**
614
  * Check the framework core version
@@ -619,13 +608,14 @@ if ( ! function_exists( 'yit_add_extra_theme_headers' ) ) {
619
  * @since 2.0.0
620
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
621
  */
622
- function yit_add_extra_theme_headers( $headers ) {
623
  $headers[] = 'Core Framework Version';
 
624
  return $headers;
625
  }
626
  }
627
 
628
- if ( ! function_exists( 'yit_check_plugin_support' ) ) {
629
  /**
630
  * Check the framework core version
631
  *
@@ -633,75 +623,76 @@ if ( ! function_exists( 'yit_check_plugin_support' ) ) {
633
  * @since 2.0.0
634
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
635
  */
636
- function yit_check_plugin_support() {
637
 
638
- $headers['core'] = wp_get_theme()->get( 'Core Framework Version' );
639
- $headers['author'] = wp_get_theme()->get( 'Author' );
640
 
641
- if( ! $headers['core'] && defined( 'YIT_CORE_VERSION' ) ) {
642
- $headers['core'] = YIT_CORE_VERSION;
643
  }
644
 
645
- if ( ( ! empty( $headers['core'] ) && version_compare( $headers['core'], '2.0.0', '<=' ) ) || $headers['author'] != 'Your Inspiration Themes' ) {
646
  return true;
647
- }
648
- else {
649
  return false;
650
  }
651
  }
652
  }
653
 
654
- if( !function_exists( 'yit_ie_version' ) ) {
655
  /**
656
  * Retrieve IE version.
657
  *
658
  * @return int|float
659
- * @since 1.0.0
660
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
661
  */
662
- function yit_ie_version() {
663
- preg_match('/MSIE ([0-9]\.[0-9])/',$_SERVER['HTTP_USER_AGENT'],$reg);
664
- if ( ! isset( $reg[1] ) )
665
- { return -1; }
666
- else
667
- { return floatval( $reg[1] ); }
 
668
  }
669
  }
670
 
671
- if( ! function_exists( 'yit_avoid_duplicate' ) ) {
672
  /**
673
  * Check if something exists. If yes, add a -N to the value where N is a number.
674
  *
675
- * @param mixed $value
676
- * @param array $array
677
  * @param string $check
 
678
  * @return mixed
679
- * @since 2.0.0
680
  * @author Antonino Scarf� <antonino.scarfi@yithemes.com>
681
  */
682
- function yit_avoid_duplicate( $value, $array, $check = 'value' ) {
683
- $match = array();
684
 
685
- if( !is_array( $array ) ) {
686
  return $value;
687
  }
688
 
689
- if ( ( $check == 'value' && ! in_array( $value, $array ) ) || ( $check == 'key' && ! isset( $array[$value] ) ) ) {
690
  return $value;
691
  } else {
692
- if ( ! preg_match( '/([a-z]+)-([0-9]+)/', $value, $match ) ) {
693
  $i = 2;
694
  } else {
695
- $i = intval( $match[2] ) + 1;
696
- $value = $match[1];
697
  }
698
 
699
- return yit_avoid_duplicate( $value . '-' . $i, $array, $check );
700
  }
701
  }
702
  }
703
 
704
- if( !function_exists( 'yit_title_special_characters' ) ) {
705
  /**
706
  * The chars used in yit_decode_title() and yit_encode_title()
707
  *
@@ -709,22 +700,23 @@ if( !function_exists( 'yit_title_special_characters' ) ) {
709
  * string: This is [my title] with | a new line
710
  * return: This is <span class="highlight">my title</span> with <br /> a new line
711
  *
712
- * @param string $title The string to convert
 
713
  * @return string The html
714
  *
715
  * @since 1.0
716
  */
717
- function yit_title_special_characters( $chars )
718
- {
719
- return array_merge( $chars, array(
720
  '/[=\[](.*?)[=\]]/' => '<span class="title-highlight">$1</span>',
721
- '/\|/' => '<br />',
722
  ) );
723
  }
724
- add_filter( 'yit_title_special_characters', 'yit_title_special_characters' );
 
725
  }
726
 
727
- if( !function_exists( 'yit_decode_title' ) ) {
728
  /**
729
  * Change some special characters to put easily html into a string
730
  *
@@ -732,20 +724,20 @@ if( !function_exists( 'yit_decode_title' ) ) {
732
  * string: This is [my title] with | a new line
733
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
734
  *
735
- * @param string $title The string to convert
 
736
  * @return string The html
737
  *
738
  * @since 1.0
739
  */
740
- function yit_decode_title( $title )
741
- {
742
- $replaces = apply_filters( 'yit_title_special_characters', array() );
743
 
744
- return preg_replace( array_keys( $replaces ), array_values( $replaces ), $title );
745
  }
746
  }
747
 
748
- if( !function_exists( 'yit_encode_title' ) ) {
749
  /**
750
  * Change some special characters to put easily html into a string
751
  *
@@ -753,20 +745,20 @@ if( !function_exists( 'yit_encode_title' ) ) {
753
  * string: This is [my title] with | a new line
754
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
755
  *
756
- * @param string $title The string to convert
 
757
  * @return string The html
758
  *
759
  * @since 1.0
760
  */
761
- function yit_encode_title( $title )
762
- {
763
- $replaces = apply_filters( 'yit_title_special_characters', array() );
764
 
765
- return preg_replace( array_values( $replaces ), array_keys( $replaces ), $title );
766
  }
767
  }
768
 
769
- if( !function_exists( 'yit_remove_chars_title' ) ) {
770
  /**
771
  * Change some special characters to put easily html into a string
772
  *
@@ -774,30 +766,30 @@ if( !function_exists( 'yit_remove_chars_title' ) ) {
774
  * string: This is [my title] with | a new line
775
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
776
  *
777
- * @param string $title The string to convert
 
778
  * @return string The html
779
  *
780
  * @since 1.0
781
  */
782
- function yit_remove_chars_title( $title )
783
- {
784
- $replaces = apply_filters( 'yit_title_special_characters', array() );
785
 
786
- return preg_replace( array_keys( $replaces ), '$1', $title );
787
  }
788
  }
789
 
790
- if( ! function_exists( 'is_shop_installed' ) ) {
791
  /**
792
  * Detect if there is a shop plugin installed
793
  *
794
  * @return bool
795
- * @since 2.0.0
796
  * @author Francesco Grasso <francesco.grasso@yithemes.com
797
  */
798
- function is_shop_installed() {
799
  global $woocommerce;
800
- if( isset( $woocommerce ) || defined( 'JIGOSHOP_VERSION' ) ) {
801
  return true;
802
  } else {
803
  return false;
@@ -805,7 +797,7 @@ if( ! function_exists( 'is_shop_installed' ) ) {
805
  }
806
  }
807
 
808
- if ( ! function_exists( 'yit_load_js_file' ) ) {
809
  /**
810
  * Load .min.js file if WP_Debug is not defined
811
  *
@@ -815,52 +807,52 @@ if ( ! function_exists( 'yit_load_js_file' ) ) {
815
  * @since 2.0.0
816
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
817
  */
818
- function yit_load_js_file( $filename ) {
819
 
820
- if ( ! ( ( defined( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) ) {
821
- $filename = str_replace( '.js', '.min.js', $filename );
822
  }
823
 
824
  return $filename;
825
  }
826
  }
827
 
828
- if ( ! function_exists( 'yit_wpml_register_string' ) ) {
829
  /**
830
  * Register a string in wpml trnslation
831
  *
832
  * @param $contenxt context name
833
- * @param $name string name
834
- * @param $value value to translate
835
  *
836
  * @since 2.0.0
837
  * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
838
  */
839
- function yit_wpml_register_string( $contenxt , $name , $value ) {
840
  // wpml string translation
841
- do_action( 'wpml_register_single_string', $contenxt, $name, $value );
842
  }
843
  }
844
 
845
- if ( ! function_exists( 'yit_wpml_string_translate' ) ) {
846
  /**
847
  * Get a string translation
848
  *
849
- * @param $contenxt context name
850
- * @param $name string name
851
  * @param $default_value value to translate
852
  *
853
  * @return string the string translated
854
  * @since 2.0.0
855
  * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
856
  */
857
- function yit_wpml_string_translate( $contenxt, $name, $default_value ) {
858
- return apply_filters( 'wpml_translate_single_string', $default_value, $contenxt, $name );
859
  }
860
 
861
  }
862
 
863
- if ( ! function_exists( 'yit_wpml_object_id' ) ) {
864
  /**
865
  * Get id of post translation in current language
866
  *
@@ -873,16 +865,49 @@ if ( ! function_exists( 'yit_wpml_object_id' ) ) {
873
  * @since 2.0.0
874
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
875
  */
876
- function yit_wpml_object_id( $element_id, $element_type = 'post', $return_original_if_missing = false, $ulanguage_code = null ) {
877
- if( function_exists( 'wpml_object_id' ) ){
878
- return wpml_object_id( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
879
- }
880
- elseif( function_exists( 'icl_object_id' ) ){
881
- return icl_object_id( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
882
- }
883
- else{
884
  return $element_id;
885
  }
886
  }
887
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
888
  }
8
  * http://www.gnu.org/licenses/gpl-3.0.txt
9
  */
10
 
11
+ if ( ! defined ( 'ABSPATH' ) ) {
12
  exit;
13
  } // Exit if accessed directly
14
 
15
+ if ( ! function_exists ( 'yit_plugin_locate_template' ) ) {
16
  /**
17
  * Locate the templates and return the path of the file found
18
  *
23
  * @return string
24
  * @since 2.0.0
25
  */
26
+ function yit_plugin_locate_template ( $plugin_basename, $path, $var = NULL ) {
27
 
28
  $template_path = '/theme/templates/' . $path;
29
 
30
+ $located = locate_template ( array (
31
+ $template_path,
32
  ) );
33
 
34
  if ( ! $located ) {
40
 
41
  }
42
 
43
+ if ( ! function_exists ( 'yit_plugin_get_template' ) ) {
44
  /**
45
  * Retrieve a template file.
46
  *
52
  * @return string
53
  * @since 2.0.0
54
  */
55
+ function yit_plugin_get_template ( $plugin_basename, $path, $var = null, $return = false ) {
56
 
57
+ $located = yit_plugin_locate_template ( $plugin_basename, $path, $var );
58
 
59
+ if ( $var && is_array ( $var ) ) {
60
+ extract ( $var );
61
  }
62
 
63
  if ( $return ) {
64
+ ob_start ();
65
  }
66
 
67
  // include file located
68
+ if ( file_exists ( $located ) ) {
69
+ include ( $located );
70
  }
71
 
72
  if ( $return ) {
73
+ return ob_get_clean ();
74
  }
75
  }
76
  }
77
 
78
+ if ( ! function_exists ( 'yit_plugin_content' ) ) {
79
  /**
80
  * Return post content with read more link (if needed)
81
  *
88
  * @return string
89
  * @since 2.0.0
90
  */
91
+ function yit_plugin_content ( $what = 'content', $limit = 25, $more_text = '', $split = '[...]', $in_paragraph = 'true' ) {
92
  if ( $what == 'content' ) {
93
+ $content = get_the_content ( $more_text );
94
+ } else {
 
95
  if ( $what == 'excerpt' ) {
96
+ $content = get_the_excerpt ();
97
+ } else {
 
98
  $content = $what;
99
  }
100
  }
101
 
102
  if ( $limit == 0 ) {
103
  if ( $what == 'excerpt' ) {
104
+ $content = apply_filters ( 'the_excerpt', $content );
105
+ } else {
106
+ $content = preg_replace ( '/<img[^>]+./', '', $content ); //remove images
107
+ $content = apply_filters ( 'the_content', $content );
108
+ $content = str_replace ( ']]>', ']]&gt;', $content );
 
109
  }
110
 
111
  return $content;
112
  }
113
 
114
  // remove the tag more from the content
115
+ if ( preg_match ( "/<(a)[^>]*class\s*=\s*(['\"])more-link\\2[^>]*>(.*?)<\/\\1>/", $content, $matches ) ) {
116
 
117
+ if ( strpos ( $matches[ 0 ], '[button' ) ) {
118
+ $more_link = str_replace ( 'href="#"', 'href="' . get_permalink () . '"', do_shortcode ( $matches[ 3 ] ) );
119
+ } else {
120
+ $more_link = $matches[ 0 ];
 
121
  }
122
 
123
+ $content = str_replace ( $more_link, '', $content );
124
  $split = '';
125
  }
126
 
127
  if ( empty( $content ) ) {
128
  return;
129
  }
130
+ $content = explode ( ' ', $content );
131
 
132
  if ( ! empty( $more_text ) && ! isset( $more_link ) ) {
133
  //array_pop( $content );
134
+ $more_link = strpos ( $more_text, '<a class="btn"' ) ? $more_text : '<a class="read-more' . apply_filters ( 'yit_simple_read_more_classes', ' ' ) . '" href="' . get_permalink () . '">' . $more_text . '</a>';
135
  $split = '';
136
+ } elseif ( ! isset( $more_link ) ) {
 
137
  $more_link = '';
138
  }
139
 
140
  // split
141
+ if ( count ( $content ) >= $limit ) {
142
  $split_content = '';
143
  for ( $i = 0; $i < $limit; $i ++ ) {
144
+ $split_content .= $content[ $i ] . ' ';
145
  }
146
 
147
  $content = $split_content . $split;
148
+ } else {
149
+ $content = implode ( " ", $content );
 
150
  }
151
 
152
  // TAGS UNCLOSED
153
+ $tags = array ();
154
  // get all tags opened
155
+ preg_match_all ( "/(<([\w]+)[^>]*>)/", $content, $tags_opened, PREG_SET_ORDER );
156
  foreach ( $tags_opened as $tag ) {
157
+ $tags[] = $tag[ 2 ];
158
  }
159
 
160
  // get all tags closed and remove it from the tags opened.. the rest will be closed at the end of the content
161
+ preg_match_all ( "/(<\/([\w]+)[^>]*>)/", $content, $tags_closed, PREG_SET_ORDER );
162
  foreach ( $tags_closed as $tag ) {
163
+ unset( $tags[ array_search ( $tag[ 2 ], $tags ) ] );
164
  }
165
 
166
  // close the tags
172
 
173
  //$content = preg_replace( '/\[.+\]/', '', $content );
174
  if ( $in_paragraph == true ): $content .= $more_link; endif;
175
+ $content = preg_replace ( '/<img[^>]+./', '', $content ); //remove images
176
+ $content = apply_filters ( 'the_content', $content );
177
+ $content = str_replace ( ']]>', ']]&gt;', $content ); // echo str_replace( array( '<', '>' ), array( '&lt;', '&gt;' ), $content );
178
  if ( $in_paragraph == false ): $content .= $more_link; endif;
179
 
180
  return $content;
181
  }
182
  }
183
 
184
+ if ( ! function_exists ( 'yit_plugin_string' ) ) {
185
  /**
186
  * Simple echo a string, with a before and after string, only if the main string is not empty.
187
  *
193
  * @return string The complete string, if the main string is not empty or null
194
  * @since 2.0.0
195
  */
196
+ function yit_plugin_string ( $before = '', $string = '', $after = '', $echo = true ) {
197
  $html = '';
198
 
199
+ if ( $string != '' AND ! is_null ( $string ) ) {
200
  $html = $before . $string . $after;
201
  }
202
 
208
  }
209
  }
210
 
211
+ if ( ! function_exists ( 'yit_plugin_decode_title' ) ) {
212
  /**
213
  * Change some special characters to put easily html into a string
214
  *
222
  *
223
  * @since 1.0
224
  */
225
+ function yit_plugin_decode_title ( $title ) {
226
+ $replaces = apply_filters ( 'yit_title_special_characters', array () );
227
 
228
+ return preg_replace ( array_keys ( $replaces ), array_values ( $replaces ), $title );
229
  }
230
  }
231
 
232
+ if ( ! function_exists ( 'yit_plugin_get_attachment_id' ) ) {
233
 
234
  /**
235
  * Return the ID of an attachment.
241
  * @since 2.0.0
242
  */
243
 
244
+ function yit_plugin_get_attachment_id ( $url ) {
245
 
246
+ $upload_dir = wp_upload_dir ();
247
+ $dir = trailingslashit ( $upload_dir[ 'baseurl' ] );
248
 
249
+ if ( false === strpos ( $url, $dir ) ) {
250
  return false;
251
  }
252
 
253
+ $file = basename ( $url );
254
 
255
+ $query = array (
256
  'post_type' => 'attachment',
257
  'fields' => 'ids',
258
+ 'meta_query' => array (
259
+ array (
260
  'value' => $file,
261
  'compare' => 'LIKE',
262
+ ),
263
+ ),
264
  );
265
 
266
+ $query[ 'meta_query' ][ 0 ][ 'key' ] = '_wp_attached_file';
267
+ $ids = get_posts ( $query );
268
 
269
  foreach ( $ids as $id ) {
270
+ $attachment_image = wp_get_attachment_image_src ( $id, 'full' );
271
+ if ( $url == array_shift ( $attachment_image ) || $url == str_replace ( 'https://', 'http://', array_shift ( $attachment_image ) ) ) {
272
  return $id;
273
  }
274
  }
275
+ $query[ 'meta_query' ][ 0 ][ 'key' ] = '_wp_attachment_metadata';
276
+ $ids = get_posts ( $query );
277
 
278
  foreach ( $ids as $id ) {
279
 
280
+ $meta = wp_get_attachment_metadata ( $id );
281
+ if ( ! isset( $meta[ 'sizes' ] ) ) {
282
  continue;
283
  }
284
 
285
+ foreach ( (array)$meta[ 'sizes' ] as $size => $values ) {
286
+ if ( $values[ 'file' ] == $file && $url == str_replace ( 'https://', 'http://', array_shift ( wp_get_attachment_image_src ( $id, $size ) ) ) ) {
287
 
288
  return $id;
289
  }
294
  }
295
  }
296
 
297
+ if ( ! function_exists ( 'yit_enqueue_script' ) ) {
298
  /**
299
  * Enqueues script.
300
  *
304
  * @author Simone D'Amico <simone.damico@yithemes.com>
305
  * @see yit_register_script() For parameter information.
306
  */
307
+ function yit_enqueue_script ( $handle, $src, $deps = array (), $ver = false, $in_footer = true ) {
308
 
309
+ if ( function_exists ( 'YIT_Asset' ) && ! is_admin () ) {
310
  $enqueue = true;
311
+ YIT_Asset ()->set ( 'script', $handle, compact ( 'src', 'deps', 'ver', 'in_footer', 'enqueue' ) );
312
+ } else {
313
+ wp_enqueue_script ( $handle, $src, $deps, $ver, $in_footer );
 
314
  }
315
  }
316
  }
317
 
318
+ if ( ! function_exists ( 'yit_enqueue_style' ) ) {
319
  /**
320
  * Enqueues style.
321
  *
325
  * @author Simone D'Amico <simone.damico@yithemes.com>
326
  * @see yit_register_style() For parameter information.
327
  */
328
+ function yit_enqueue_style ( $handle, $src, $deps = array (), $ver = false, $media = 'all' ) {
329
 
330
+ if ( function_exists ( 'YIT_Asset' ) ) {
331
  $enqueue = true;
332
+ $who = YIT_Asset ()->get_stylesheet_handle ( get_stylesheet_uri (), 'style' );
333
  $where = 'before';
334
 
335
+ if ( false == $who ) {
336
  $who = '';
337
  }
338
 
339
+ YIT_Asset ()->set ( 'style', $handle, compact ( 'src', 'deps', 'ver', 'media', 'enqueue' ), $where, $who );
340
+ } else {
341
+ wp_enqueue_style ( $handle, $src, $deps, $ver, $media );
 
342
  }
343
  }
344
  }
345
 
346
+ if ( ! function_exists ( 'yit_get_post_meta' ) ) {
347
  /**
348
  * Retrieve the value of a metabox.
349
  *
350
  * This function retrieve the value of a metabox attached to a post. It return either a single value or an array.
351
  *
352
+ * @param int $id Post ID.
353
+ * @param string $meta The meta key to retrieve.
354
  *
355
  * @return mixed Single value or array
356
  * @since 2.0.0
357
  */
358
+ function yit_get_post_meta ( $id, $meta ) {
359
+ if ( ! strpos ( $meta, '[' ) ) {
360
+ return get_post_meta ( $id, $meta, true );
361
  }
362
 
363
+ $sub_meta = explode ( '[', $meta );
364
 
365
+ $meta = get_post_meta ( $id, $meta, true );
366
+ for ( $i = 0; $i < count ( $sub_meta ); $i ++ ) {
367
+ $meta = $meta[ rtrim ( $sub_meta[ $i ], ']' ) ];
368
  }
369
 
370
  return $meta;
371
  }
372
  }
373
 
374
+ if ( ! function_exists ( 'yit_string' ) ) {
375
  /**
376
  * Simple echo a string, with a before and after string, only if the main string is not empty.
377
  *
383
  * @return string The complete string, if the main string is not empty or null
384
  * @since 2.0.0
385
  */
386
+ function yit_string ( $before = '', $string = '', $after = '', $echo = true ) {
387
  $html = '';
388
 
389
+ if ( $string != '' AND ! is_null ( $string ) ) {
390
  $html = $before . $string . $after;
391
  }
392
 
399
  }
400
 
401
 
402
+ if ( ! function_exists ( 'yit_pagination' ) ) {
403
  /**
404
  * Print pagination
405
  *
409
  * @return string
410
  * @since 2.0.0
411
  */
412
+ function yit_pagination ( $pages = '', $range = 10 ) {
413
  $showitems = ( $range * 2 ) + 1;
414
 
415
+ $paged = ( get_query_var ( 'paged' ) ) ? get_query_var ( 'paged' ) : false;
416
  if ( $paged === false ) {
417
+ $paged = ( get_query_var ( 'page' ) ) ? get_query_var ( 'page' ) : false;
418
  }
419
  if ( $paged === false ) {
420
  $paged = 1;
438
  if ( 1 != $pages ) {
439
  $html .= "<div class='general-pagination clearfix'>";
440
  if ( $paged > 2 ) {
441
+ $html .= sprintf ( '<a class="%s" href="%s">&laquo;</a>', 'yit_pagination_first', get_pagenum_link ( 1 ) );
442
  }
443
  if ( $paged > 1 ) {
444
+ $html .= sprintf ( '<a class="%s" href="%s">&lsaquo;</a>', 'yit_pagination_previous', get_pagenum_link ( $paged - 1 ) );
445
  }
446
 
447
  for ( $i = 1; $i <= $pages; $i ++ ) {
448
  if ( 1 != $pages && ( ! ( $i >= $paged + $range + 1 || $i <= $paged - $range - 1 ) || $pages <= $showitems ) ) {
449
  $class = ( $paged == $i ) ? " class='selected'" : '';
450
+ $html .= "<a href='" . get_pagenum_link ( $i ) . "'$class >$i</a>";
451
  }
452
  }
453
 
454
  if ( $paged < $pages ) {
455
+ $html .= sprintf ( '<a class="%s" href="%s">&rsaquo;</a>', 'yit_pagination_next', get_pagenum_link ( $paged + 1 ) );
456
  }
457
  if ( $paged < $pages - 1 ) {
458
+ $html .= sprintf ( '<a class="%s" href="%s">&raquo;</a>', 'yit_pagination_last', get_pagenum_link ( $pages ) );
459
  }
460
 
461
  $html .= "</div>\n";
462
  }
463
 
464
+ echo apply_filters ( 'yit_pagination_html', $html );
465
  }
466
  }
467
 
468
+ if ( ! function_exists ( 'yit_registered_sidebars' ) ) {
469
  /**
470
  * Retrieve all registered sidebars
471
  *
472
  * @return array
473
  * @since 2.0.0
474
  */
475
+ function yit_registered_sidebars () {
476
  global $wp_registered_sidebars;
477
 
478
+ $return = array ();
479
 
480
  if ( empty( $wp_registered_sidebars ) ) {
481
+ $return = array ( '' => '' );
482
  }
483
 
484
+ foreach ( ( array )$wp_registered_sidebars as $the_ ) {
485
+ $return[ $the_[ 'name' ] ] = $the_[ 'name' ];
486
  }
487
 
488
+ ksort ( $return );
489
 
490
  return $return;
491
  }
492
  }
493
 
494
+ if ( ! function_exists ( 'yit_layout_option' ) ) {
495
  /**
496
  * Retrieve a layout option
497
  *
503
  * @return array
504
  * @since 2.0.0
505
  */
506
+ function yit_layout_option ( $key, $id = false, $type = "post", $model = "post_type" ) {
507
 
508
  $option = '';
509
 
510
+ if ( defined ( 'YIT' ) ) {
511
+ $option = YIT_Layout_Panel ()->get_option ( $key, $id, $type, $model );
512
+ } else {
513
+ if ( ! $id && ( is_single () || is_page () ) ) {
 
514
  global $post;
515
  $id = $post->ID;
516
+ } elseif ( $id != 'all' ) {
517
+ $option = get_post_meta ( $id, $key );
 
518
  }
519
  }
520
 
522
  }
523
  }
524
 
525
+ if ( ! function_exists ( 'yit_curPageURL' ) ) {
526
  /**
527
  * Retrieve the current complete url
528
  *
529
  * @since 1.0
530
  */
531
+ function yit_curPageURL () {
532
  $pageURL = 'http';
533
+ if ( isset( $_SERVER[ "HTTPS" ] ) AND $_SERVER[ "HTTPS" ] == "on" ) {
534
  $pageURL .= "s";
535
  }
536
 
537
  $pageURL .= "://";
538
 
539
+ if ( isset( $_SERVER[ "SERVER_PORT" ] ) AND $_SERVER[ "SERVER_PORT" ] != "80" ) {
540
+ $pageURL .= $_SERVER[ "SERVER_NAME" ] . ":" . $_SERVER[ "SERVER_PORT" ] . $_SERVER[ "REQUEST_URI" ];
541
+ } else {
542
+ $pageURL .= $_SERVER[ "SERVER_NAME" ] . $_SERVER[ "REQUEST_URI" ];
 
543
  }
544
 
545
  return $pageURL;
546
  }
547
  }
548
 
549
+ if ( ! function_exists ( 'yit_get_excluded_categories' ) ) {
550
  /**
551
  *
552
  * Retrieve the escluded categories, set on Theme Options
558
  * @since 2.0.0
559
  */
560
 
561
+ function yit_get_excluded_categories ( $k = 1 ) {
562
 
563
  global $post;
564
 
566
  return;
567
  }
568
 
569
+ $cf_cats = get_post_meta ( $post->ID, 'blog-cats', true );
570
 
571
+ if ( ! empty( $cf_cats ) ) {
572
  return $cf_cats;
573
  }
574
 
575
+ $cats = function_exists ( 'yit_get_option' ) ? yit_get_option ( 'blog-excluded-cats' ) : '';
576
 
577
 
578
+ if ( ! is_array ( $cats ) || empty( $cats ) || ! isset( $cats[ $k ] ) ) {
579
  return;
580
  }
581
 
582
+ $cats = array_map ( 'trim', $cats[ $k ] );
583
 
584
  $i = 0;
585
  $query = '';
589
  $i ++;
590
  }
591
 
592
+ ltrim ( ',', $query );
593
 
594
  return $query;
595
  }
596
  }
597
 
598
 
599
+ if ( ! function_exists ( 'yit_add_extra_theme_headers' ) ) {
600
+ add_filter ( 'extra_theme_headers', 'yit_add_extra_theme_headers' );
601
 
602
  /**
603
  * Check the framework core version
608
  * @since 2.0.0
609
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
610
  */
611
+ function yit_add_extra_theme_headers ( $headers ) {
612
  $headers[] = 'Core Framework Version';
613
+
614
  return $headers;
615
  }
616
  }
617
 
618
+ if ( ! function_exists ( 'yit_check_plugin_support' ) ) {
619
  /**
620
  * Check the framework core version
621
  *
623
  * @since 2.0.0
624
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
625
  */
626
+ function yit_check_plugin_support () {
627
 
628
+ $headers[ 'core' ] = wp_get_theme ()->get ( 'Core Framework Version' );
629
+ $headers[ 'author' ] = wp_get_theme ()->get ( 'Author' );
630
 
631
+ if ( ! $headers[ 'core' ] && defined ( 'YIT_CORE_VERSION' ) ) {
632
+ $headers[ 'core' ] = YIT_CORE_VERSION;
633
  }
634
 
635
+ if ( ( ! empty( $headers[ 'core' ] ) && version_compare ( $headers[ 'core' ], '2.0.0', '<=' ) ) || $headers[ 'author' ] != 'Your Inspiration Themes' ) {
636
  return true;
637
+ } else {
 
638
  return false;
639
  }
640
  }
641
  }
642
 
643
+ if ( ! function_exists ( 'yit_ie_version' ) ) {
644
  /**
645
  * Retrieve IE version.
646
  *
647
  * @return int|float
648
+ * @since 1.0.0
649
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
650
  */
651
+ function yit_ie_version () {
652
+ preg_match ( '/MSIE ([0-9]\.[0-9])/', $_SERVER[ 'HTTP_USER_AGENT' ], $reg );
653
+ if ( ! isset( $reg[ 1 ] ) ) {
654
+ return - 1;
655
+ } else {
656
+ return floatval ( $reg[ 1 ] );
657
+ }
658
  }
659
  }
660
 
661
+ if ( ! function_exists ( 'yit_avoid_duplicate' ) ) {
662
  /**
663
  * Check if something exists. If yes, add a -N to the value where N is a number.
664
  *
665
+ * @param mixed $value
666
+ * @param array $array
667
  * @param string $check
668
+ *
669
  * @return mixed
670
+ * @since 2.0.0
671
  * @author Antonino Scarf� <antonino.scarfi@yithemes.com>
672
  */
673
+ function yit_avoid_duplicate ( $value, $array, $check = 'value' ) {
674
+ $match = array ();
675
 
676
+ if ( ! is_array ( $array ) ) {
677
  return $value;
678
  }
679
 
680
+ if ( ( $check == 'value' && ! in_array ( $value, $array ) ) || ( $check == 'key' && ! isset( $array[ $value ] ) ) ) {
681
  return $value;
682
  } else {
683
+ if ( ! preg_match ( '/([a-z]+)-([0-9]+)/', $value, $match ) ) {
684
  $i = 2;
685
  } else {
686
+ $i = intval ( $match[ 2 ] ) + 1;
687
+ $value = $match[ 1 ];
688
  }
689
 
690
+ return yit_avoid_duplicate ( $value . '-' . $i, $array, $check );
691
  }
692
  }
693
  }
694
 
695
+ if ( ! function_exists ( 'yit_title_special_characters' ) ) {
696
  /**
697
  * The chars used in yit_decode_title() and yit_encode_title()
698
  *
700
  * string: This is [my title] with | a new line
701
  * return: This is <span class="highlight">my title</span> with <br /> a new line
702
  *
703
+ * @param string $title The string to convert
704
+ *
705
  * @return string The html
706
  *
707
  * @since 1.0
708
  */
709
+ function yit_title_special_characters ( $chars ) {
710
+ return array_merge ( $chars, array (
 
711
  '/[=\[](.*?)[=\]]/' => '<span class="title-highlight">$1</span>',
712
+ '/\|/' => '<br />',
713
  ) );
714
  }
715
+
716
+ add_filter ( 'yit_title_special_characters', 'yit_title_special_characters' );
717
  }
718
 
719
+ if ( ! function_exists ( 'yit_decode_title' ) ) {
720
  /**
721
  * Change some special characters to put easily html into a string
722
  *
724
  * string: This is [my title] with | a new line
725
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
726
  *
727
+ * @param string $title The string to convert
728
+ *
729
  * @return string The html
730
  *
731
  * @since 1.0
732
  */
733
+ function yit_decode_title ( $title ) {
734
+ $replaces = apply_filters ( 'yit_title_special_characters', array () );
 
735
 
736
+ return preg_replace ( array_keys ( $replaces ), array_values ( $replaces ), $title );
737
  }
738
  }
739
 
740
+ if ( ! function_exists ( 'yit_encode_title' ) ) {
741
  /**
742
  * Change some special characters to put easily html into a string
743
  *
745
  * string: This is [my title] with | a new line
746
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
747
  *
748
+ * @param string $title The string to convert
749
+ *
750
  * @return string The html
751
  *
752
  * @since 1.0
753
  */
754
+ function yit_encode_title ( $title ) {
755
+ $replaces = apply_filters ( 'yit_title_special_characters', array () );
 
756
 
757
+ return preg_replace ( array_values ( $replaces ), array_keys ( $replaces ), $title );
758
  }
759
  }
760
 
761
+ if ( ! function_exists ( 'yit_remove_chars_title' ) ) {
762
  /**
763
  * Change some special characters to put easily html into a string
764
  *
766
  * string: This is [my title] with | a new line
767
  * return: This is <span class="title-highlight">my title</span> with <br /> a new line
768
  *
769
+ * @param string $title The string to convert
770
+ *
771
  * @return string The html
772
  *
773
  * @since 1.0
774
  */
775
+ function yit_remove_chars_title ( $title ) {
776
+ $replaces = apply_filters ( 'yit_title_special_characters', array () );
 
777
 
778
+ return preg_replace ( array_keys ( $replaces ), '$1', $title );
779
  }
780
  }
781
 
782
+ if ( ! function_exists ( 'is_shop_installed' ) ) {
783
  /**
784
  * Detect if there is a shop plugin installed
785
  *
786
  * @return bool
787
+ * @since 2.0.0
788
  * @author Francesco Grasso <francesco.grasso@yithemes.com
789
  */
790
+ function is_shop_installed () {
791
  global $woocommerce;
792
+ if ( isset( $woocommerce ) || defined ( 'JIGOSHOP_VERSION' ) ) {
793
  return true;
794
  } else {
795
  return false;
797
  }
798
  }
799
 
800
+ if ( ! function_exists ( 'yit_load_js_file' ) ) {
801
  /**
802
  * Load .min.js file if WP_Debug is not defined
803
  *
807
  * @since 2.0.0
808
  * @author Andrea Grillo <andrea.grillo@yithemes.com>
809
  */
810
+ function yit_load_js_file ( $filename ) {
811
 
812
+ if ( ! ( ( defined ( 'WP_DEBUG' ) && WP_DEBUG ) || ( defined ( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ) ) {
813
+ $filename = str_replace ( '.js', '.min.js', $filename );
814
  }
815
 
816
  return $filename;
817
  }
818
  }
819
 
820
+ if ( ! function_exists ( 'yit_wpml_register_string' ) ) {
821
  /**
822
  * Register a string in wpml trnslation
823
  *
824
  * @param $contenxt context name
825
+ * @param $name string name
826
+ * @param $value value to translate
827
  *
828
  * @since 2.0.0
829
  * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
830
  */
831
+ function yit_wpml_register_string ( $contenxt, $name, $value ) {
832
  // wpml string translation
833
+ do_action ( 'wpml_register_single_string', $contenxt, $name, $value );
834
  }
835
  }
836
 
837
+ if ( ! function_exists ( 'yit_wpml_string_translate' ) ) {
838
  /**
839
  * Get a string translation
840
  *
841
+ * @param $contenxt context name
842
+ * @param $name string name
843
  * @param $default_value value to translate
844
  *
845
  * @return string the string translated
846
  * @since 2.0.0
847
  * @author Andrea Frascaspata <andrea.frascaspata@yithemes.com>
848
  */
849
+ function yit_wpml_string_translate ( $contenxt, $name, $default_value ) {
850
+ return apply_filters ( 'wpml_translate_single_string', $default_value, $contenxt, $name );
851
  }
852
 
853
  }
854
 
855
+ if ( ! function_exists ( 'yit_wpml_object_id' ) ) {
856
  /**
857
  * Get id of post translation in current language
858
  *
865
  * @since 2.0.0
866
  * @author Antonio La Rocca <antonio.larocca@yithemes.com>
867
  */
868
+ function yit_wpml_object_id ( $element_id, $element_type = 'post', $return_original_if_missing = false, $ulanguage_code = null ) {
869
+ if ( function_exists ( 'wpml_object_id_filter' ) ) {
870
+ return wpml_object_id_filter( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
871
+ } elseif ( function_exists ( 'icl_object_id' ) ) {
872
+ return icl_object_id ( $element_id, $element_type, $return_original_if_missing, $ulanguage_code );
873
+ } else {
 
 
874
  return $element_id;
875
  }
876
  }
877
 
878
+ }
879
+
880
+
881
+ if ( ! function_exists ( 'yith_get_formatted_price' ) ) {
882
+ /**
883
+ * Format the price with a currency symbol.
884
+ *
885
+ * @param float $price
886
+ * @param array $args (default: array())
887
+ *
888
+ * @return string
889
+ */
890
+ function yith_get_formatted_price ( $price, $args = array () ) {
891
+ extract ( apply_filters ( 'wc_price_args', wp_parse_args ( $args, array (
892
+ 'ex_tax_label' => false,
893
+ 'currency' => '',
894
+ 'decimal_separator' => wc_get_price_decimal_separator (),
895
+ 'thousand_separator' => wc_get_price_thousand_separator (),
896
+ 'decimals' => wc_get_price_decimals (),
897
+ 'price_format' => get_woocommerce_price_format (),
898
+ ) ) ) );
899
+
900
+ $negative = $price < 0;
901
+ $price = apply_filters ( 'raw_woocommerce_price', floatval ( $negative ? $price * - 1 : $price ) );
902
+ $price = apply_filters ( 'formatted_woocommerce_price', number_format ( $price, $decimals, $decimal_separator, $thousand_separator ), $price, $decimals, $decimal_separator, $thousand_separator );
903
+
904
+ if ( apply_filters ( 'woocommerce_price_trim_zeros', false ) && $decimals > 0 ) {
905
+ $price = wc_trim_zeros ( $price );
906
+ }
907
+
908
+ $formatted_price = ( $negative ? '-' : '' ) . sprintf ( $price_format, get_woocommerce_currency_symbol ( $currency ), $price );
909
+ $return = $formatted_price;
910
+
911
+ return apply_filters ( 'wc_price', $return, $price, $args );
912
+ }
913
  }
plugin-options/premium-landing-options.php CHANGED
@@ -1,23 +1,23 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- */
10
-
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- } // Exit if accessed directly
14
-
15
-
16
- return array(
17
- 'premium-landing' => array(
18
- 'home' => array(
19
- 'type' => 'custom_tab',
20
- 'action' => 'yith_catalog_mode_premium'
21
- )
22
- )
23
  );
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ */
10
+
11
+ if ( !defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ } // Exit if accessed directly
14
+
15
+
16
+ return array(
17
+ 'premium-landing' => array(
18
+ 'home' => array(
19
+ 'type' => 'custom_tab',
20
+ 'action' => 'yith_catalog_mode_premium'
21
+ )
22
+ )
23
  );
plugin-options/settings-options.php CHANGED
@@ -1,104 +1,104 @@
1
- <?php
2
- /**
3
- * This file belongs to the YIT Plugin Framework.
4
- *
5
- * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
- * that is bundled with this package in the file LICENSE.txt.
7
- * It is also available through the world-wide-web at this URL:
8
- * http://www.gnu.org/licenses/gpl-3.0.txt
9
- */
10
-
11
- if ( !defined( 'ABSPATH' ) ) {
12
- exit;
13
- } // Exit if accessed directly
14
-
15
- global $YITH_WC_Catalog_Mode;
16
-
17
- return array(
18
- 'settings' => array(
19
- 'ywctm_videobox' => array(
20
- 'name' => __( 'Upgrade to the PREMIUM VERSION', 'yith-woocommerce-catalog-mode' ),
21
- 'type' => 'videobox',
22
- 'default' => array(
23
- 'plugin_name' => __( 'YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
24
- 'title_first_column' => __( 'Discover the Advanced Features', 'yith-woocommerce-catalog-mode' ),
25
- 'description_first_column' => __( 'Upgrade to the PREMIUM VERSION of YITH WooCommerce Catalog Mode to benefit from all features!', 'yith-woocommerce-catalog-mode' ),
26
- 'video' => array(
27
- 'video_id' => '120697979',
28
- 'video_image_url' => YWCTM_ASSETS_URL . 'images/yith-woocommerce-catalog-mode.jpg',
29
- 'video_description' => __( 'YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
30
- ),
31
- 'title_second_column' => __( 'Get Support and Pro Features', 'yith-woocommerce-catalog-mode' ),
32
- 'description_second_column' => __( 'By purchasing the premium version of the plugin, you will take advantage of the advanced features of the product and you will get one year of free updates and support through our platform available 24h/24.', 'yith-woocommerce-catalog-mode' ),
33
- 'button' => array(
34
- 'href' => $YITH_WC_Catalog_Mode->get_premium_landing_uri(),
35
- 'title' => 'Get Support and Pro Features'
36
- )
37
- ),
38
- 'id' => 'ywctm_general_videobox'
39
- ),
40
-
41
- 'ywctm_general_title' => array(
42
- 'name' => __( 'General Settings', 'yith-woocommerce-catalog-mode' ),
43
- 'type' => 'title',
44
- ),
45
- 'ywctm_enable_plugin' => array(
46
- 'name' => __( 'Enable YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
47
- 'type' => 'checkbox',
48
- 'desc' => '',
49
- 'id' => 'ywctm_enable_plugin',
50
- 'default' => 'yes',
51
- ),
52
- 'ywctm_general_end' => array(
53
- 'type' => 'sectionend',
54
- ),
55
-
56
- 'ywctm_catalog_mode_title' => array(
57
- 'name' => __( 'Catalog Mode Settings', 'yith-woocommerce-catalog-mode' ),
58
- 'type' => 'title',
59
- ),
60
- 'ywctm_catalog_mode_disable_add_to_cart_single' => array(
61
- 'name' => __( '"Add to cart" button', 'yith-woocommerce-catalog-mode' ),
62
- 'type' => 'checkbox',
63
- 'desc' => __( 'Hide in product detail page', 'yith-woocommerce-catalog-mode' ),
64
- 'id' => 'ywctm_hide_add_to_cart_single',
65
- 'default' => 'no',
66
- 'checkboxgroup' => 'start'
67
- ),
68
- 'ywctm_catalog_mode_disable_add_to_cart_loop' => array(
69
- 'type' => 'checkbox',
70
- 'desc' => __( 'Hide in other shop pages', 'yith-woocommerce-catalog-mode' ),
71
- 'id' => 'ywctm_hide_add_to_cart_loop',
72
- 'default' => 'no',
73
- 'checkboxgroup' => ''
74
-
75
- ),
76
- 'ywctm_catalog_mode_admin_view' => array(
77
- 'name' => __( 'Admin View', 'yith-woocommerce-catalog-mode' ),
78
- 'type' => 'checkbox',
79
- 'desc' => __( 'Enable Catalog Mode also for administrators', 'yith-woocommerce-catalog-mode' ),
80
- 'id' => 'ywctm_admin_view',
81
- 'default' => 'yes',
82
- ),
83
- 'ywctm_catalog_mode_section_end' => array(
84
- 'type' => 'sectionend',
85
- ),
86
-
87
- 'ywctm_other_section_title' => array(
88
- 'name' => __( 'Other Settings', 'yith-woocommerce-catalog-mode' ),
89
- 'type' => 'title',
90
- 'desc' => '',
91
- ),
92
- 'ywctm_other_disable_cart_in_header' => array(
93
- 'name' => __( 'Disable shop', 'yith-woocommerce-catalog-mode' ),
94
- 'type' => 'checkbox',
95
- 'desc' => __( 'Hide and disable "Cart" page, "Checkout" page and all "Add to Cart" buttons', 'yith-woocommerce-catalog-mode' ),
96
- 'id' => 'ywctm_hide_cart_header',
97
- 'default' => 'no',
98
- ),
99
- 'ywctm_other_section_end' => array(
100
- 'type' => 'sectionend',
101
- )
102
- )
103
-
104
  );
1
+ <?php
2
+ /**
3
+ * This file belongs to the YIT Plugin Framework.
4
+ *
5
+ * This source file is subject to the GNU GENERAL PUBLIC LICENSE (GPL 3.0)
6
+ * that is bundled with this package in the file LICENSE.txt.
7
+ * It is also available through the world-wide-web at this URL:
8
+ * http://www.gnu.org/licenses/gpl-3.0.txt
9
+ */
10
+
11
+ if ( !defined( 'ABSPATH' ) ) {
12
+ exit;
13
+ } // Exit if accessed directly
14
+
15
+ global $YITH_WC_Catalog_Mode;
16
+
17
+ return array(
18
+ 'settings' => array(
19
+ 'ywctm_videobox' => array(
20
+ 'name' => __( 'Upgrade to the PREMIUM VERSION', 'yith-woocommerce-catalog-mode' ),
21
+ 'type' => 'videobox',
22
+ 'default' => array(
23
+ 'plugin_name' => __( 'YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
24
+ 'title_first_column' => __( 'Discover the Advanced Features', 'yith-woocommerce-catalog-mode' ),
25
+ 'description_first_column' => __( 'Upgrade to the PREMIUM VERSION of YITH WooCommerce Catalog Mode to benefit from all features!', 'yith-woocommerce-catalog-mode' ),
26
+ 'video' => array(
27
+ 'video_id' => '120697979',
28
+ 'video_image_url' => YWCTM_ASSETS_URL . 'images/yith-woocommerce-catalog-mode.jpg',
29
+ 'video_description' => __( 'YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
30
+ ),
31
+ 'title_second_column' => __( 'Get Support and Pro Features', 'yith-woocommerce-catalog-mode' ),
32
+ 'description_second_column' => __( 'By purchasing the premium version of the plugin, you will take advantage of the advanced features of the product and you will get one year of free updates and support through our platform available 24h/24.', 'yith-woocommerce-catalog-mode' ),
33
+ 'button' => array(
34
+ 'href' => $YITH_WC_Catalog_Mode->get_premium_landing_uri(),
35
+ 'title' => 'Get Support and Pro Features'
36
+ )
37
+ ),
38
+ 'id' => 'ywctm_general_videobox'
39
+ ),
40
+
41
+ 'ywctm_general_title' => array(
42
+ 'name' => __( 'General Settings', 'yith-woocommerce-catalog-mode' ),
43
+ 'type' => 'title',
44
+ ),
45
+ 'ywctm_enable_plugin' => array(
46
+ 'name' => __( 'Enable YITH WooCommerce Catalog Mode', 'yith-woocommerce-catalog-mode' ),
47
+ 'type' => 'checkbox',
48
+ 'desc' => '',
49
+ 'id' => 'ywctm_enable_plugin',
50
+ 'default' => 'yes',
51
+ ),
52
+ 'ywctm_general_end' => array(
53
+ 'type' => 'sectionend',
54
+ ),
55
+
56
+ 'ywctm_catalog_mode_title' => array(
57
+ 'name' => __( 'Catalog Mode Settings', 'yith-woocommerce-catalog-mode' ),
58
+ 'type' => 'title',
59
+ ),
60
+ 'ywctm_catalog_mode_disable_add_to_cart_single' => array(
61
+ 'name' => __( '"Add to cart" button', 'yith-woocommerce-catalog-mode' ),
62
+ 'type' => 'checkbox',
63
+ 'desc' => __( 'Hide in product detail page', 'yith-woocommerce-catalog-mode' ),
64
+ 'id' => 'ywctm_hide_add_to_cart_single',
65
+ 'default' => 'no',
66
+ 'checkboxgroup' => 'start'
67
+ ),
68
+ 'ywctm_catalog_mode_disable_add_to_cart_loop' => array(
69
+ 'type' => 'checkbox',
70
+ 'desc' => __( 'Hide in other shop pages', 'yith-woocommerce-catalog-mode' ),
71
+ 'id' => 'ywctm_hide_add_to_cart_loop',
72
+ 'default' => 'no',
73
+ 'checkboxgroup' => ''
74
+
75
+ ),
76
+ 'ywctm_catalog_mode_admin_view' => array(
77
+ 'name' => __( 'Admin View', 'yith-woocommerce-catalog-mode' ),
78
+ 'type' => 'checkbox',
79
+ 'desc' => __( 'Enable Catalog Mode also for administrators', 'yith-woocommerce-catalog-mode' ),
80
+ 'id' => 'ywctm_admin_view',
81
+ 'default' => 'yes',
82
+ ),
83
+ 'ywctm_catalog_mode_section_end' => array(
84
+ 'type' => 'sectionend',
85
+ ),
86
+
87
+ 'ywctm_other_section_title' => array(
88
+ 'name' => __( 'Other Settings', 'yith-woocommerce-catalog-mode' ),
89
+ 'type' => 'title',
90
+ 'desc' => '',
91
+ ),
92
+ 'ywctm_other_disable_cart_in_header' => array(
93
+ 'name' => __( 'Disable shop', 'yith-woocommerce-catalog-mode' ),
94
+ 'type' => 'checkbox',
95
+ 'desc' => __( 'Hide and disable "Cart" page, "Checkout" page and all "Add to Cart" buttons', 'yith-woocommerce-catalog-mode' ),
96
+ 'id' => 'ywctm_hide_cart_header',
97
+ 'default' => 'no',
98
+ ),
99
+ 'ywctm_other_section_end' => array(
100
+ 'type' => 'sectionend',
101
+ )
102
+ )
103
+
104
  );
readme.txt CHANGED
@@ -1,208 +1,212 @@
1
- === YITH WooCommerce Catalog Mode ===
2
-
3
- Contributors: yithemes
4
- Tags: woocommerce catalog mode plugin, woocommerce catalog only, woocommerce, products, themes, yit, yith, yithemes, e-commerce, shop, catalog mode, catalogue mode, remove add to cart, ask for price, ask price, asking for price, asking price, button remove, call, call for price, call me, call us, contact, email, hide add to cart, hide price
5
- Requires at least: 4.0
6
- Tested up to: 4.3.1
7
- Stable tag: 1.2.0
8
- License: GPLv2 or later
9
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
-
11
- YITH WooCommerce Catalog Mode, a plugin for disabling sales in your e-commerce and turn it into an e-commerce into an online catalogue.
12
-
13
- == Description ==
14
-
15
- YITH WooCommerce Catalog Mode is one of our most appealing plugins for WordPress and WooCommerce users who need to switch their WooCommerce site into an online catalogue for some time. Reasons for this switch may be a thousand, but most common ones are concerned with the need of users to perform maintenance actions in their warehouse without putting their site offline. Is it ever happened to you to take inventory and have to put your WooCommerce shop down? How many potential customers lost! A catalogue gives you the opportunity to leave your WooCommerce products online and to let your customers contact you anyway for whatever question they might have. This increases customers' loyalty and you do not lose visibility online.
16
-
17
- = Features of YITH WooCommerce Catalog Mode: =
18
-
19
- * Enable/disable YITH WooCommerce Catalog Mode from option panel
20
- * Choose if admin sees the store as catalog (when set) Mode settings for administrators also
21
- * Hide "Add to Cart" button in WooCommerce product detail page
22
- * Hide "Add to Cart" button in the other pages of the site (catalog, shop etc.)
23
- * Hide WooCommerce "Cart" and "Checkout" pages and any reference to them
24
-
25
- = Official documentation of YITH WooCommerce Catalog Mode =
26
-
27
- For a more detailed description of options and features of YITH WooCommerce Catalog Mode, please, read the [official documentation](http://yithemes.com/docs-plugins/yith-woocommerce-catalog-mode/).
28
-
29
- = Compatibility with WooCommerce plugins =
30
-
31
- YITH WooCommerce Catalog Mode has been tested and compatibility is certain with the following WooCommerce plugins that you can add to your site:
32
-
33
- * [YITH WooCommerce Request A Quote](https://wordpress.org/plugins/yith-woocommerce-request-a-quote/)
34
- * [YITH WooCommerce Quick View](https://wordpress.org/plugins/yith-woocommerce-quick-view/)
35
- * [YITH WooCommerce Badge Management](https://wordpress.org/plugins/yith-woocommerce-badges-management/)
36
- * [YITH WooCommerce Tab Manager](https://wordpress.org/plugins/yith-woocommerce-tab-manager/)
37
-
38
- = An essential kit for your WooCommerce site? =
39
-
40
- YITH WooCommerce Catalog Mode is available in combination with many other plugins in [**YITH Essential Kit for WooCommerce #1**](https://wordpress.org/plugins/yith-essential-kit-for-woocommerce-1/), a bundle of indispensable tools to make your WooCommerce site look more professional and be more user-friendly. Learn more about all WooCommerce plugins included and boost your WooCommerce site with a simple click!
41
-
42
- = Premium features of YITH WooCommerce Catalog Mode =
43
-
44
- * All features of the free version
45
- * Enable/disable catalog mode without having to disable YITH WooCommerce Catalog Mode.
46
- * Do not apply catalog mode to selected WooCommerce products added in the “Exclusion list”. Exclusions are managed from “Exclusions” tab
47
- * Set options for WooCommerce products in “Exclusion list”, to which catalog mode is not applied
48
- * Reverse functioning of “Exclusion list”, by applying catalog mode only to WooCommerce products added in the list
49
- * Hide WooCommerce “Cart” and “Checkout” pages and any other possible reference to them
50
- * Hide WooCommerce product price
51
- * Enter an alternative text to replace WooCommerce product price (e.g. “Register to see price”)
52
- * Hide WooCommerce price to all users or to unregistered users only
53
- * Add a tab with an inquiry form for each WooCommerce product to let your users contact you and ask about it
54
- * Include the link of the WooCommerce product page from which the inquiry email has been sent
55
- * Custom button in WooCommerce product page
56
- * Select an action for the button added by YITH Woocommerce Catalog Mode (generic URL, email address, phone number, Skype contact)
57
- * Disable WooCommerce “Reviews” tab in product page for all users or for unregistered users only
58
-
59
-
60
- == Installation ==
61
-
62
- = Installation =
63
-
64
- Important: before of all you have to download and activate WooCommerce plugin, which is mandatory for YITH WooCommerce Catalog Mode to be working. If WooCommerce plugin is active, you just need to activate the YITH WooCommerce Catalog Mode plugin.
65
-
66
- 1. Unzip the downloaded zip file.
67
- 2. Upload the plugin folder into the `wp-content/plugins/` directory of your WordPress site.
68
- 3. Activate `YITH WooCommerce Catalog Mode` from Plugins page.
69
-
70
- = Configuration =
71
-
72
- YITH WooCommerce Catalog Mode will add a new tab called "Catalog Mode" inside the YIT Plugins menu item. There you are able to configure all plugin settings.
73
-
74
- == Frequently Asked Questions ==
75
-
76
- = Is it compatible with all WordPress themes? =
77
-
78
- Compatibility with all themes is impossible, because they are too many, but generally if themes are developed according to WordPress and WooCommerce guidelines, YITH plugins are compatible with them.
79
- Yet, we can grant compatibility with themes developed by YIThemes, because they are constantly updated and tested with our plugins. Sometimes, especially when new versions are released, it might only require some time for them to be all updated, but you can be sure that they will be tested and will be working in a few days.
80
-
81
- = How can I get support if my WooCommerce plugin is not working? =
82
-
83
- If you have problems with our plugins or something is not working as it should, first follow this preliminary steps:
84
-
85
- * Test the plugin with a WordPress default theme, to be sure that the error is not caused by the theme you are currently using.
86
- * Deactivate all plugins you are using and check if the problem is still occurring.
87
- * Ensure that you plugin version, your theme version and your WordPress and WooCommerce version (if required) are updated and that the problem you are experiencing has not already been solved in a later plugin update.
88
-
89
- If none of the previous listed actions helps you solve the problem, then, submit a ticket in the forum and describe your problem accurately, specify WordPress and WooCommerce versions you are using and any other information that might help us solve your problem as quickly as possible. Thanks!
90
-
91
- = How can I get more features for my WooCommerce plugin? =
92
- You can get more features with the premium version of YITH WooCommerce Catalog Mode, available on [YIThemes page](https://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode). Here you can read more about the premium features of the plugin and make it give it its best shot!
93
-
94
- = How can I try the full-featured plugin? =
95
-
96
- If you want to see a demonstration version of the premium plugin, you can see that in [this page](http://plugins.yithemes.com/yith-woocommerce-catalog-mode). Browse it and try all options available so that you can see how your plugin looks like.
97
-
98
- = What are the main changes in plugin translation? =
99
- Recently YITH WooCommerce Catalog Mode has been selected to be included in the "translate.wordpress.org" translate programme.
100
- In order to import correctly the plugin strings in the new system, we had to change the text domain form 'ywctm' to 'yith-woocommerce-catalog-mode'.
101
- Once the plugin will be imported in the translate.wordpress.org system, the translations of other languages will be downloaded directly from WordPress, without using any .po and .mo files. Moreover, users will be able to participate in a more direct way to plugin translations, suggesting texts in their languages in the dedicated tab on translate.wordpress.org.
102
- During this transition step, .po and .mo files will be used as always, but in order to be recognized by WordPress, they will need to have a new nomenclature, renaming them in:
103
- yith-woocommerce-catalog-mode-<WORDPRESS LOCALE>.po
104
- yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
105
-
106
- == Screenshots ==
107
-
108
- 1. This is the settings page of YITH WooCommerce Catalog Mode, you can find it in YIT Plugins menu item. You can hide WooCommerce "Add to Cart" buttons and WooCommerce Cart and Checkout pages.
109
-
110
- 2. This image shows the shop page as it appears when WooCommerce "Add to Cart" button is hidden and WooCommerce Cart and Checkout page are deactivated.
111
-
112
- 3. This image shows WooCommerce product detail page as it appears when WooCommerce "Add to Cart" button is hidden and WooCommerce Cart and Checkout page are deactivated.
113
-
114
- == Changelog ==
115
-
116
- = 1.2.0 =
117
-
118
- * Added: Dutch translation (by Bart Verkerk)
119
- * Fixed: options panel more user friendly
120
-
121
- = 1.1.5 =
122
-
123
- * Updated: plugin core framework
124
-
125
- = 1.1.4 =
126
-
127
- * Updated: changed text domain from ywctm to yith-woocommerce-catalog-mode
128
- * Updated: changed all language file for the new text domain
129
-
130
- = 1.1.3 =
131
-
132
- * Various code improvements
133
- * Updated language file
134
-
135
- = 1.1.2 =
136
-
137
- * Added: compatibility with YITH Essential Kit for WooCommerce #1
138
-
139
- = 1.1.1 =
140
-
141
- * Fixed: Minor bugs
142
-
143
- = 1.1.0 =
144
-
145
- * Added: Support to WooCommerce 2.4
146
- * Updated: Plugin core framework
147
-
148
- = 1.0.9 =
149
-
150
- * Fixed: YITH WooCommerce Colors and Labels Variations compatibility
151
-
152
- = 1.0.8 =
153
-
154
- * Updated language file
155
- * Fixed: YITH WooCommerce Quick View compatibility
156
-
157
- = 1.0.7 =
158
-
159
- * Fixed: Added functions for themes and plugins compatibility
160
-
161
- = 1.0.6 =
162
-
163
- * Fixed: Added functions for themes compatibility
164
-
165
- = 1.0.5 =
166
-
167
- * Fixed: Product variations bug
168
- * Fixed: Custom button bug
169
-
170
- = 1.0.4 =
171
-
172
- * Fixed: Minor bugs
173
-
174
- = 1.0.3 =
175
-
176
- * Fixed: Improved code performance
177
-
178
- = 1.0.2 =
179
-
180
- * Fixed: Added functions for themes compatibility
181
-
182
- = 1.0.1 =
183
-
184
- * Fixed: Minor bugs
185
-
186
- = 1.0.0 =
187
-
188
- * Initial release
189
-
190
- == Upgrade Notice ==
191
-
192
- Last Stable Tag 1.2.0
193
-
194
- == Suggestions ==
195
-
196
- If you have suggestions about how to improve YITH WooCommerce Catalog Mode, you can [write us](mailto:plugins@yithemes.com "Your Inspiration Themes") so we can bundle them into YITH WooCommerce Catalog Mode.
197
-
198
- == Translators ==
199
-
200
- = Available Languages =
201
-
202
- **NOTE: The translation process of this plugin has been changed by WordPress. Please, read the correlated FAQ to be updated about the news changes.**
203
-
204
- * English
205
- * Dutch (by Bart Verkerk)
206
-
207
- If you have created your own language pack, or have an update for an existing one, you can send [gettext PO and MO file](http://codex.wordpress.org/Translating_WordPress "Translating WordPress")
208
- [use](http://yithemes.com/contact/ "Your Inspiration Themes") so we can bundle it into YITH WooCommerce Catalog Mode languages.
 
 
 
 
1
+ === YITH WooCommerce Catalog Mode ===
2
+
3
+ Contributors: yithemes
4
+ Tags: woocommerce catalog mode plugin, woocommerce catalog only, woocommerce, products, themes, yit, yith, yithemes, e-commerce, shop, catalog mode, catalogue mode, remove add to cart, ask for price, ask price, asking for price, asking price, button remove, call, call for price, call me, call us, contact, email, hide add to cart, hide price
5
+ Requires at least: 4.0
6
+ Tested up to: 4.4
7
+ Stable tag: 1.2.1
8
+ License: GPLv2 or later
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
+
11
+ YITH WooCommerce Catalog Mode, a plugin for disabling sales in your e-commerce and turn it into an e-commerce into an online catalogue.
12
+
13
+ == Description ==
14
+
15
+ YITH WooCommerce Catalog Mode is one of our most appealing plugins for WordPress and WooCommerce users who need to switch their WooCommerce site into an online catalogue for some time. Reasons for this switch may be a thousand, but most common ones are concerned with the need of users to perform maintenance actions in their warehouse without putting their site offline. Is it ever happened to you to take inventory and have to put your WooCommerce shop down? How many potential customers lost! A catalogue gives you the opportunity to leave your WooCommerce products online and to let your customers contact you anyway for whatever question they might have. This increases customers' loyalty and you do not lose visibility online.
16
+
17
+ = Features of YITH WooCommerce Catalog Mode: =
18
+
19
+ * Enable/disable YITH WooCommerce Catalog Mode from option panel
20
+ * Choose if admin sees the store as catalog (when set) Mode settings for administrators also
21
+ * Hide "Add to Cart" button in WooCommerce product detail page
22
+ * Hide "Add to Cart" button in the other pages of the site (catalog, shop etc.)
23
+ * Hide WooCommerce "Cart" and "Checkout" pages and any reference to them
24
+
25
+ = Official documentation of YITH WooCommerce Catalog Mode =
26
+
27
+ For a more detailed description of options and features of YITH WooCommerce Catalog Mode, please, read the [official documentation](http://yithemes.com/docs-plugins/yith-woocommerce-catalog-mode/).
28
+
29
+ = Compatibility with WooCommerce plugins =
30
+
31
+ YITH WooCommerce Catalog Mode has been tested and compatibility is certain with the following WooCommerce plugins that you can add to your site:
32
+
33
+ * [YITH WooCommerce Request A Quote](https://wordpress.org/plugins/yith-woocommerce-request-a-quote/)
34
+ * [YITH WooCommerce Quick View](https://wordpress.org/plugins/yith-woocommerce-quick-view/)
35
+ * [YITH WooCommerce Badge Management](https://wordpress.org/plugins/yith-woocommerce-badges-management/)
36
+ * [YITH WooCommerce Tab Manager](https://wordpress.org/plugins/yith-woocommerce-tab-manager/)
37
+
38
+ = An essential kit for your WooCommerce site? =
39
+
40
+ YITH WooCommerce Catalog Mode is available in combination with many other plugins in [**YITH Essential Kit for WooCommerce #1**](https://wordpress.org/plugins/yith-essential-kit-for-woocommerce-1/), a bundle of indispensable tools to make your WooCommerce site look more professional and be more user-friendly. Learn more about all WooCommerce plugins included and boost your WooCommerce site with a simple click!
41
+
42
+ = Premium features of YITH WooCommerce Catalog Mode =
43
+
44
+ * All features of the free version
45
+ * Enable/disable catalog mode without having to disable YITH WooCommerce Catalog Mode.
46
+ * Do not apply catalog mode to selected WooCommerce products added in the “Exclusion list”. Exclusions are managed from “Exclusions” tab
47
+ * Set options for WooCommerce products in “Exclusion list”, to which catalog mode is not applied
48
+ * Reverse functioning of “Exclusion list”, by applying catalog mode only to WooCommerce products added in the list
49
+ * Hide WooCommerce “Cart” and “Checkout” pages and any other possible reference to them
50
+ * Hide WooCommerce product price
51
+ * Enter an alternative text to replace WooCommerce product price (e.g. “Register to see price”)
52
+ * Hide WooCommerce price to all users or to unregistered users only
53
+ * Add a tab with an inquiry form for each WooCommerce product to let your users contact you and ask about it
54
+ * Include the link of the WooCommerce product page from which the inquiry email has been sent
55
+ * Custom button in WooCommerce product page
56
+ * Select an action for the button added by YITH Woocommerce Catalog Mode (generic URL, email address, phone number, Skype contact)
57
+ * Disable WooCommerce “Reviews” tab in product page for all users or for unregistered users only
58
+
59
+
60
+ == Installation ==
61
+
62
+ = Installation =
63
+
64
+ Important: before of all you have to download and activate WooCommerce plugin, which is mandatory for YITH WooCommerce Catalog Mode to be working. If WooCommerce plugin is active, you just need to activate the YITH WooCommerce Catalog Mode plugin.
65
+
66
+ 1. Unzip the downloaded zip file.
67
+ 2. Upload the plugin folder into the `wp-content/plugins/` directory of your WordPress site.
68
+ 3. Activate `YITH WooCommerce Catalog Mode` from Plugins page.
69
+
70
+ = Configuration =
71
+
72
+ YITH WooCommerce Catalog Mode will add a new tab called "Catalog Mode" inside the YIT Plugins menu item. There you are able to configure all plugin settings.
73
+
74
+ == Frequently Asked Questions ==
75
+
76
+ = Is it compatible with all WordPress themes? =
77
+
78
+ Compatibility with all themes is impossible, because they are too many, but generally if themes are developed according to WordPress and WooCommerce guidelines, YITH plugins are compatible with them.
79
+ Yet, we can grant compatibility with themes developed by YIThemes, because they are constantly updated and tested with our plugins. Sometimes, especially when new versions are released, it might only require some time for them to be all updated, but you can be sure that they will be tested and will be working in a few days.
80
+
81
+ = How can I get support if my WooCommerce plugin is not working? =
82
+
83
+ If you have problems with our plugins or something is not working as it should, first follow this preliminary steps:
84
+
85
+ * Test the plugin with a WordPress default theme, to be sure that the error is not caused by the theme you are currently using.
86
+ * Deactivate all plugins you are using and check if the problem is still occurring.
87
+ * Ensure that you plugin version, your theme version and your WordPress and WooCommerce version (if required) are updated and that the problem you are experiencing has not already been solved in a later plugin update.
88
+
89
+ If none of the previous listed actions helps you solve the problem, then, submit a ticket in the forum and describe your problem accurately, specify WordPress and WooCommerce versions you are using and any other information that might help us solve your problem as quickly as possible. Thanks!
90
+
91
+ = How can I get more features for my WooCommerce plugin? =
92
+ You can get more features with the premium version of YITH WooCommerce Catalog Mode, available on [YIThemes page](https://yithemes.com/themes/plugins/yith-woocommerce-catalog-mode). Here you can read more about the premium features of the plugin and make it give it its best shot!
93
+
94
+ = How can I try the full-featured plugin? =
95
+
96
+ If you want to see a demonstration version of the premium plugin, you can see that in [this page](http://plugins.yithemes.com/yith-woocommerce-catalog-mode). Browse it and try all options available so that you can see how your plugin looks like.
97
+
98
+ = What are the main changes in plugin translation? =
99
+ Recently YITH WooCommerce Catalog Mode has been selected to be included in the "translate.wordpress.org" translate programme.
100
+ In order to import correctly the plugin strings in the new system, we had to change the text domain form 'ywctm' to 'yith-woocommerce-catalog-mode'.
101
+ Once the plugin will be imported in the translate.wordpress.org system, the translations of other languages will be downloaded directly from WordPress, without using any .po and .mo files. Moreover, users will be able to participate in a more direct way to plugin translations, suggesting texts in their languages in the dedicated tab on translate.wordpress.org.
102
+ During this transition step, .po and .mo files will be used as always, but in order to be recognized by WordPress, they will need to have a new nomenclature, renaming them in:
103
+ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE>.po
104
+ yith-woocommerce-catalog-mode-<WORDPRESS LOCALE >.mo
105
+
106
+ == Screenshots ==
107
+
108
+ 1. This is the settings page of YITH WooCommerce Catalog Mode, you can find it in YIT Plugins menu item. You can hide WooCommerce "Add to Cart" buttons and WooCommerce Cart and Checkout pages.
109
+
110
+ 2. This image shows the shop page as it appears when WooCommerce "Add to Cart" button is hidden and WooCommerce Cart and Checkout page are deactivated.
111
+
112
+ 3. This image shows WooCommerce product detail page as it appears when WooCommerce "Add to Cart" button is hidden and WooCommerce Cart and Checkout page are deactivated.
113
+
114
+ == Changelog ==
115
+
116
+ = 1.2.1 =
117
+
118
+ * Updated: plugin core framework
119
+
120
+ = 1.2.0 =
121
+
122
+ * Added: Dutch translation (by Bart Verkerk)
123
+ * Fixed: options panel more user friendly
124
+
125
+ = 1.1.5 =
126
+
127
+ * Updated: plugin core framework
128
+
129
+ = 1.1.4 =
130
+
131
+ * Updated: changed text domain from ywctm to yith-woocommerce-catalog-mode
132
+ * Updated: changed all language file for the new text domain
133
+
134
+ = 1.1.3 =
135
+
136
+ * Various code improvements
137
+ * Updated language file
138
+
139
+ = 1.1.2 =
140
+
141
+ * Added: compatibility with YITH Essential Kit for WooCommerce #1
142
+
143
+ = 1.1.1 =
144
+
145
+ * Fixed: Minor bugs
146
+
147
+ = 1.1.0 =
148
+
149
+ * Added: Support to WooCommerce 2.4
150
+ * Updated: Plugin core framework
151
+
152
+ = 1.0.9 =
153
+
154
+ * Fixed: YITH WooCommerce Colors and Labels Variations compatibility
155
+
156
+ = 1.0.8 =
157
+
158
+ * Updated language file
159
+ * Fixed: YITH WooCommerce Quick View compatibility
160
+
161
+ = 1.0.7 =
162
+
163
+ * Fixed: Added functions for themes and plugins compatibility
164
+
165
+ = 1.0.6 =
166
+
167
+ * Fixed: Added functions for themes compatibility
168
+
169
+ = 1.0.5 =
170
+
171
+ * Fixed: Product variations bug
172
+ * Fixed: Custom button bug
173
+
174
+ = 1.0.4 =
175
+
176
+ * Fixed: Minor bugs
177
+
178
+ = 1.0.3 =
179
+
180
+ * Fixed: Improved code performance
181
+
182
+ = 1.0.2 =
183
+
184
+ * Fixed: Added functions for themes compatibility
185
+
186
+ = 1.0.1 =
187
+
188
+ * Fixed: Minor bugs
189
+
190
+ = 1.0.0 =
191
+
192
+ * Initial release
193
+
194
+ == Upgrade Notice ==
195
+
196
+ Last Stable Tag 1.2.1
197
+
198
+ == Suggestions ==
199
+
200
+ If you have suggestions about how to improve YITH WooCommerce Catalog Mode, you can [write us](mailto:plugins@yithemes.com "Your Inspiration Themes") so we can bundle them into YITH WooCommerce Catalog Mode.
201
+
202
+ == Translators ==
203
+
204
+ = Available Languages =
205
+
206
+ **NOTE: The translation process of this plugin has been changed by WordPress. Please, read the correlated FAQ to be updated about the news changes.**
207
+
208
+ * English
209
+ * Dutch (by Bart Verkerk)
210
+
211
+ If you have created your own language pack, or have an update for an existing one, you can send [gettext PO and MO file](http://codex.wordpress.org/Translating_WordPress "Translating WordPress")
212
+ [use](http://yithemes.com/contact/ "Your Inspiration Themes") so we can bundle it into YITH WooCommerce Catalog Mode languages.
screenshot-1.jpg CHANGED
Binary file
templates/admin/premium.php CHANGED
@@ -1,361 +1,361 @@
1
- <style>
2
- .section{
3
- margin-left: -20px;
4
- margin-right: -20px;
5
- font-family: "Raleway",san-serif;
6
- }
7
- .section h1{
8
- text-align: center;
9
- text-transform: uppercase;
10
- color: #808a97;
11
- font-size: 35px;
12
- font-weight: 700;
13
- line-height: normal;
14
- display: inline-block;
15
- width: 100%;
16
- margin: 50px 0 0;
17
- }
18
- .section ul{
19
- list-style-type: disc;
20
- padding-left: 15px;
21
- }
22
- .section:nth-child(even){
23
- background-color: #fff;
24
- }
25
- .section:nth-child(odd){
26
- background-color: #f1f1f1;
27
- }
28
- .section .section-title img{
29
- display: table-cell;
30
- vertical-align: middle;
31
- width: auto;
32
- margin-right: 15px;
33
- }
34
- .section h2,
35
- .section h3 {
36
- display: inline-block;
37
- vertical-align: middle;
38
- padding: 0;
39
- font-size: 24px;
40
- font-weight: 700;
41
- color: #808a97;
42
- text-transform: uppercase;
43
- }
44
-
45
- .section .section-title h2{
46
- display: table-cell;
47
- vertical-align: middle;
48
- line-height: 25px;
49
- }
50
-
51
- .section-title{
52
- display: table;
53
- }
54
-
55
- .section h3 {
56
- font-size: 14px;
57
- line-height: 28px;
58
- margin-bottom: 0;
59
- display: block;
60
- }
61
-
62
- .section p{
63
- font-size: 13px;
64
- margin: 25px 0;
65
- }
66
- .section ul li{
67
- margin-bottom: 4px;
68
- }
69
- .landing-container{
70
- max-width: 750px;
71
- margin-left: auto;
72
- margin-right: auto;
73
- padding: 50px 0 30px;
74
- }
75
- .landing-container:after{
76
- display: block;
77
- clear: both;
78
- content: '';
79
- }
80
- .landing-container .col-1,
81
- .landing-container .col-2{
82
- float: left;
83
- box-sizing: border-box;
84
- padding: 0 15px;
85
- }
86
- .landing-container .col-1 img{
87
- width: 100%;
88
- }
89
- .landing-container .col-1{
90
- width: 55%;
91
- }
92
- .landing-container .col-2{
93
- width: 45%;
94
- }
95
- .premium-cta{
96
- background-color: #808a97;
97
- color: #fff;
98
- border-radius: 6px;
99
- padding: 20px 15px;
100
- }
101
- .premium-cta:after{
102
- content: '';
103
- display: block;
104
- clear: both;
105
- }
106
- .premium-cta p{
107
- margin: 7px 0;
108
- font-size: 14px;
109
- font-weight: 500;
110
- display: inline-block;
111
- width: 60%;
112
- }
113
- .premium-cta a.button{
114
- border-radius: 6px;
115
- height: 60px;
116
- float: right;
117
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/upgrade.png) #ff643f no-repeat 13px 13px;
118
- border-color: #ff643f;
119
- box-shadow: none;
120
- outline: none;
121
- color: #fff;
122
- position: relative;
123
- padding: 9px 50px 9px 70px;
124
- }
125
- .premium-cta a.button:hover,
126
- .premium-cta a.button:active,
127
- .premium-cta a.button:focus{
128
- color: #fff;
129
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/upgrade.png) #971d00 no-repeat 13px 13px;
130
- border-color: #971d00;
131
- box-shadow: none;
132
- outline: none;
133
- }
134
- .premium-cta a.button:focus{
135
- top: 1px;
136
- }
137
- .premium-cta a.button span{
138
- line-height: 13px;
139
- }
140
- .premium-cta a.button .highlight{
141
- display: block;
142
- font-size: 20px;
143
- font-weight: 700;
144
- line-height: 20px;
145
- }
146
- .premium-cta .highlight{
147
- text-transform: uppercase;
148
- background: none;
149
- font-weight: 800;
150
- color: #fff;
151
- }
152
-
153
- .section.one{
154
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/01-bg.png) no-repeat #fff; background-position: 85% 75%
155
- }
156
- .section.two{
157
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/02-bg.png) no-repeat #fff; background-position: 85% 75%
158
- }
159
- .section.three{
160
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/03-bg.png) no-repeat #fff; background-position: 85% 75%
161
- }
162
- .section.four{
163
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/04-bg.png) no-repeat #fff; background-position: 85% 75%
164
- }
165
- .section.five{
166
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/05-bg.png) no-repeat #fff; background-position: 85% 75%
167
- }
168
- .section.six{
169
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/06-bg.png) no-repeat #fff; background-position: 85% 75%
170
- }
171
-
172
- .section.seven{
173
- background: url(<?php echo YWCTM_ASSETS_URL?>/images/07-bg.png) no-repeat #fff; background-position: 85% 75%
174
- }
175
-
176
- @media (max-width: 768px) {
177
- .section{margin: 0}
178
- .premium-cta p{
179
- width: 100%;
180
- }
181
- .premium-cta{
182
- text-align: center;
183
- }
184
- .premium-cta a.button{
185
- float: none;
186
- }
187
- }
188
-
189
- @media (max-width: 480px){
190
- .wrap{
191
- margin-right: 0;
192
- }
193
- .section{
194
- margin: 0;
195
- }
196
- .landing-container .col-1,
197
- .landing-container .col-2{
198
- width: 100%;
199
- padding: 0 15px;
200
- }
201
- .section-odd .col-1 {
202
- float: left;
203
- margin-right: -100%;
204
- }
205
- .section-odd .col-2 {
206
- float: right;
207
- margin-top: 65%;
208
- }
209
- }
210
-
211
- @media (max-width: 320px){
212
- .premium-cta a.button{
213
- padding: 9px 20px 9px 70px;
214
- }
215
-
216
- .section .section-title img{
217
- display: none;
218
- }
219
- }
220
- </style>
221
- <div class="landing">
222
- <div class="section section-cta section-odd">
223
- <div class="landing-container">
224
- <div class="premium-cta">
225
- <p>
226
- <?php echo sprintf( __('Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s to benefit from all features!','yith-woocommerce-catalog-mode'),'<span class="highlight">','</span>' );?>
227
- </p>
228
- <a href="<?php echo $this->get_premium_landing_uri() ?>" target="_blank" class="premium-cta-button button btn">
229
- <span class="highlight"><?php _e('UPGRADE','yith-woocommerce-catalog-mode');?></span>
230
- <span><?php _e('to the premium version','yith-woocommerce-catalog-mode');?></span>
231
- </a>
232
- </div>
233
- </div>
234
- </div>
235
- <div class="one section section-even clear">
236
- <h1><?php _e('Premium Features','yith-woocommerce-catalog-mode');?></h1>
237
- <div class="landing-container">
238
- <div class="col-1">
239
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/01.png" alt="Hide price" />
240
- </div>
241
- <div class="col-2">
242
- <div class="section-title">
243
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/01-icon.png" alt="icon 01"/>
244
- <h2><?php _e('Hide price','yith-woocommerce-catalog-mode');?></h2>
245
- </div>
246
- <p>
247
- <?php echo sprintf(__('Hide the price of products in your shop and replace it with a text. Decide if some of the products have to be excluded and if %1$shiding price%2$s has to be applied to all or restricted only to unlogged users.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
248
- </p>
249
- </div>
250
- </div>
251
- </div>
252
- <div class="two section section-odd clear">
253
- <div class="landing-container">
254
- <div class="col-2">
255
- <div class="section-title">
256
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/02-icon.png" alt="icon 02" />
257
- <h2><?php _e('Inquiry form','yith-woocommerce-catalog-mode');?></h2>
258
- </div>
259
- <p>
260
- <?php echo sprintf(__('Improve single product page by adding a tab with an %1$sinquiry form%2$s explicitly thought to let them send messages to site administrator.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
261
- </p>
262
- </div>
263
- <div class="col-1">
264
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/02.png" alt="Inquiry form" />
265
- </div>
266
- </div>
267
- </div>
268
- <div class="three section section-even clear">
269
- <div class="landing-container">
270
- <div class="col-1">
271
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/03.png" alt="Custom button" />
272
- </div>
273
- <div class="col-2">
274
- <div class="section-title">
275
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/03-icon.png" alt="icon 03" />
276
- <h2><?php _e( 'Custom button','yith-woocommerce-catalog-mode');?></h2>
277
- </div>
278
- <p>
279
- <?php echo sprintf(__('Add a button in single product page to call users to a specific %1$saction%2$s, depending on the specified %1$slink%2$s (email sending, skype call, telephone call).', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
280
- </p>
281
- </div>
282
- </div>
283
- </div>
284
- <div class="four section section-odd clear">
285
- <div class="landing-container">
286
- <div class="col-2">
287
- <div class="section-title">
288
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/04-icon.png" alt="icon 04" />
289
- <h2><?php _e('Product reviews','yith-woocommerce-catalog-mode');?></h2>
290
- </div>
291
- <p>
292
- <?php echo sprintf(__('You can disable product %1$sreviewing system%2$s of your shop and decide if applying it to all users or just to unlogged ones.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
293
- </p>
294
- </div>
295
- <div class="col-1">
296
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/04.png" alt="Product reviews" />
297
- </div>
298
- </div>
299
- </div>
300
- <div class="five section section-even clear">
301
- <div class="landing-container">
302
- <div class="col-1">
303
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/05.png" alt="Exclusion list" />
304
- </div>
305
- <div class="col-2">
306
- <div class="section-title">
307
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/05-icon.png" alt="icon 05" />
308
- <h2><?php _e('Exclusion list','yith-woocommerce-catalog-mode');?></h2>
309
- </div>
310
- <p>
311
- <?php echo sprintf( __('Set plugin options, but if you want that options concerning price visibility and ‘Add to cart’ do not apply to specific products, add them to %1$sexclusion list%2$s and, voilà, problem solved.','yith-woocommerce-catalog-mode'),'<b>','</b>'); ?>
312
- </p>
313
- </div>
314
- </div>
315
- </div>
316
- <div class="six section section-odd clear">
317
- <div class="landing-container">
318
- <div class="col-2">
319
- <div class="section-title">
320
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/06-icon.png" alt="icon 06" />
321
- <h2><?php _e('REVERSE EXCLUSION LIST','yith-woocommerce-catalog-mode');?></h2>
322
- </div>
323
- <p>
324
- <?php echo sprintf( __( 'Apply Catalog Mode to some items only: add them to the "Exclusion List" and %1$smake it work in the opposite way as usual%2$s. All items in the shop show price and “Add to Cart” button, while items in the list don’t.','yith-woocommerce-catalog-mode' ),'<b>','</b>' ) ?>
325
- </p>
326
- </div>
327
- <div class="col-1">
328
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/06.png" alt="REVERSE EXCLUSION LIST" />
329
- </div>
330
- </div>
331
- </div>
332
- <div class="seven section section-even clear">
333
- <div class="landing-container">
334
- <div class="col-1">
335
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/07.png" alt="Source page of the request" />
336
- </div>
337
- <div class="col-2">
338
- <div class="section-title">
339
- <img src="<?php echo YWCTM_ASSETS_URL?>/images/07-icon.png" alt="icon 05" />
340
- <h2><?php _e('Source page of the request','yith-woocommerce-catalog-mode');?></h2>
341
- </div>
342
- <p>
343
- <?php echo sprintf( __('Thanks to the %1$s"Product Permalink"%2$s option you will be able to know from which page your users have generated the request.%3$sThe email generated from the request form will include the address of the page: another important information that can be really useful for you.','yith-woocommerce-catalog-mode'),'<b>','</b>','<br>'); ?>
344
- </p>
345
- </div>
346
- </div>
347
- </div>
348
- <div class="section section-cta section-odd">
349
- <div class="landing-container">
350
- <div class="premium-cta">
351
- <p>
352
- <?php echo sprintf( __('Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s to benefit from all features!','yith-woocommerce-catalog-mode'),'<span class="highlight">','</span>' );?>
353
- </p>
354
- <a href="<?php echo $this->get_premium_landing_uri() ?>" target="_blank" class="premium-cta-button button btn">
355
- <span class="highlight"><?php _e('UPGRADE','yith-woocommerce-catalog-mode');?></span>
356
- <span><?php _e('to the premium version','yith-woocommerce-catalog-mode');?></span>
357
- </a>
358
- </div>
359
- </div>
360
- </div>
361
  </div>
1
+ <style>
2
+ .section{
3
+ margin-left: -20px;
4
+ margin-right: -20px;
5
+ font-family: "Raleway",san-serif;
6
+ }
7
+ .section h1{
8
+ text-align: center;
9
+ text-transform: uppercase;
10
+ color: #808a97;
11
+ font-size: 35px;
12
+ font-weight: 700;
13
+ line-height: normal;
14
+ display: inline-block;
15
+ width: 100%;
16
+ margin: 50px 0 0;
17
+ }
18
+ .section ul{
19
+ list-style-type: disc;
20
+ padding-left: 15px;
21
+ }
22
+ .section:nth-child(even){
23
+ background-color: #fff;
24
+ }
25
+ .section:nth-child(odd){
26
+ background-color: #f1f1f1;
27
+ }
28
+ .section .section-title img{
29
+ display: table-cell;
30
+ vertical-align: middle;
31
+ width: auto;
32
+ margin-right: 15px;
33
+ }
34
+ .section h2,
35
+ .section h3 {
36
+ display: inline-block;
37
+ vertical-align: middle;
38
+ padding: 0;
39
+ font-size: 24px;
40
+ font-weight: 700;
41
+ color: #808a97;
42
+ text-transform: uppercase;
43
+ }
44
+
45
+ .section .section-title h2{
46
+ display: table-cell;
47
+ vertical-align: middle;
48
+ line-height: 25px;
49
+ }
50
+
51
+ .section-title{
52
+ display: table;
53
+ }
54
+
55
+ .section h3 {
56
+ font-size: 14px;
57
+ line-height: 28px;
58
+ margin-bottom: 0;
59
+ display: block;
60
+ }
61
+
62
+ .section p{
63
+ font-size: 13px;
64
+ margin: 25px 0;
65
+ }
66
+ .section ul li{
67
+ margin-bottom: 4px;
68
+ }
69
+ .landing-container{
70
+ max-width: 750px;
71
+ margin-left: auto;
72
+ margin-right: auto;
73
+ padding: 50px 0 30px;
74
+ }
75
+ .landing-container:after{
76
+ display: block;
77
+ clear: both;
78
+ content: '';
79
+ }
80
+ .landing-container .col-1,
81
+ .landing-container .col-2{
82
+ float: left;
83
+ box-sizing: border-box;
84
+ padding: 0 15px;
85
+ }
86
+ .landing-container .col-1 img{
87
+ width: 100%;
88
+ }
89
+ .landing-container .col-1{
90
+ width: 55%;
91
+ }
92
+ .landing-container .col-2{
93
+ width: 45%;
94
+ }
95
+ .premium-cta{
96
+ background-color: #808a97;
97
+ color: #fff;
98
+ border-radius: 6px;
99
+ padding: 20px 15px;
100
+ }
101
+ .premium-cta:after{
102
+ content: '';
103
+ display: block;
104
+ clear: both;
105
+ }
106
+ .premium-cta p{
107
+ margin: 7px 0;
108
+ font-size: 14px;
109
+ font-weight: 500;
110
+ display: inline-block;
111
+ width: 60%;
112
+ }
113
+ .premium-cta a.button{
114
+ border-radius: 6px;
115
+ height: 60px;
116
+ float: right;
117
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/upgrade.png) #ff643f no-repeat 13px 13px;
118
+ border-color: #ff643f;
119
+ box-shadow: none;
120
+ outline: none;
121
+ color: #fff;
122
+ position: relative;
123
+ padding: 9px 50px 9px 70px;
124
+ }
125
+ .premium-cta a.button:hover,
126
+ .premium-cta a.button:active,
127
+ .premium-cta a.button:focus{
128
+ color: #fff;
129
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/upgrade.png) #971d00 no-repeat 13px 13px;
130
+ border-color: #971d00;
131
+ box-shadow: none;
132
+ outline: none;
133
+ }
134
+ .premium-cta a.button:focus{
135
+ top: 1px;
136
+ }
137
+ .premium-cta a.button span{
138
+ line-height: 13px;
139
+ }
140
+ .premium-cta a.button .highlight{
141
+ display: block;
142
+ font-size: 20px;
143
+ font-weight: 700;
144
+ line-height: 20px;
145
+ }
146
+ .premium-cta .highlight{
147
+ text-transform: uppercase;
148
+ background: none;
149
+ font-weight: 800;
150
+ color: #fff;
151
+ }
152
+
153
+ .section.one{
154
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/01-bg.png) no-repeat #fff; background-position: 85% 75%
155
+ }
156
+ .section.two{
157
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/02-bg.png) no-repeat #fff; background-position: 85% 75%
158
+ }
159
+ .section.three{
160
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/03-bg.png) no-repeat #fff; background-position: 85% 75%
161
+ }
162
+ .section.four{
163
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/04-bg.png) no-repeat #fff; background-position: 85% 75%
164
+ }
165
+ .section.five{
166
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/05-bg.png) no-repeat #fff; background-position: 85% 75%
167
+ }
168
+ .section.six{
169
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/06-bg.png) no-repeat #fff; background-position: 85% 75%
170
+ }
171
+
172
+ .section.seven{
173
+ background: url(<?php echo YWCTM_ASSETS_URL?>/images/07-bg.png) no-repeat #fff; background-position: 85% 75%
174
+ }
175
+
176
+ @media (max-width: 768px) {
177
+ .section{margin: 0}
178
+ .premium-cta p{
179
+ width: 100%;
180
+ }
181
+ .premium-cta{
182
+ text-align: center;
183
+ }
184
+ .premium-cta a.button{
185
+ float: none;
186
+ }
187
+ }
188
+
189
+ @media (max-width: 480px){
190
+ .wrap{
191
+ margin-right: 0;
192
+ }
193
+ .section{
194
+ margin: 0;
195
+ }
196
+ .landing-container .col-1,
197
+ .landing-container .col-2{
198
+ width: 100%;
199
+ padding: 0 15px;
200
+ }
201
+ .section-odd .col-1 {
202
+ float: left;
203
+ margin-right: -100%;
204
+ }
205
+ .section-odd .col-2 {
206
+ float: right;
207
+ margin-top: 65%;
208
+ }
209
+ }
210
+
211
+ @media (max-width: 320px){
212
+ .premium-cta a.button{
213
+ padding: 9px 20px 9px 70px;
214
+ }
215
+
216
+ .section .section-title img{
217
+ display: none;
218
+ }
219
+ }
220
+ </style>
221
+ <div class="landing">
222
+ <div class="section section-cta section-odd">
223
+ <div class="landing-container">
224
+ <div class="premium-cta">
225
+ <p>
226
+ <?php echo sprintf( __('Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s to benefit from all features!','yith-woocommerce-catalog-mode'),'<span class="highlight">','</span>' );?>
227
+ </p>
228
+ <a href="<?php echo $this->get_premium_landing_uri() ?>" target="_blank" class="premium-cta-button button btn">
229
+ <span class="highlight"><?php _e('UPGRADE','yith-woocommerce-catalog-mode');?></span>
230
+ <span><?php _e('to the premium version','yith-woocommerce-catalog-mode');?></span>
231
+ </a>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ <div class="one section section-even clear">
236
+ <h1><?php _e('Premium Features','yith-woocommerce-catalog-mode');?></h1>
237
+ <div class="landing-container">
238
+ <div class="col-1">
239
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/01.png" alt="Hide price" />
240
+ </div>
241
+ <div class="col-2">
242
+ <div class="section-title">
243
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/01-icon.png" alt="icon 01"/>
244
+ <h2><?php _e('Hide price','yith-woocommerce-catalog-mode');?></h2>
245
+ </div>
246
+ <p>
247
+ <?php echo sprintf(__('Hide the price of products in your shop and replace it with a text. Decide if some of the products have to be excluded and if %1$shiding price%2$s has to be applied to all or restricted only to unlogged users.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
248
+ </p>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ <div class="two section section-odd clear">
253
+ <div class="landing-container">
254
+ <div class="col-2">
255
+ <div class="section-title">
256
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/02-icon.png" alt="icon 02" />
257
+ <h2><?php _e('Inquiry form','yith-woocommerce-catalog-mode');?></h2>
258
+ </div>
259
+ <p>
260
+ <?php echo sprintf(__('Improve single product page by adding a tab with an %1$sinquiry form%2$s explicitly thought to let them send messages to site administrator.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
261
+ </p>
262
+ </div>
263
+ <div class="col-1">
264
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/02.png" alt="Inquiry form" />
265
+ </div>
266
+ </div>
267
+ </div>
268
+ <div class="three section section-even clear">
269
+ <div class="landing-container">
270
+ <div class="col-1">
271
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/03.png" alt="Custom button" />
272
+ </div>
273
+ <div class="col-2">
274
+ <div class="section-title">
275
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/03-icon.png" alt="icon 03" />
276
+ <h2><?php _e( 'Custom button','yith-woocommerce-catalog-mode');?></h2>
277
+ </div>
278
+ <p>
279
+ <?php echo sprintf(__('Add a button in single product page to call users to a specific %1$saction%2$s, depending on the specified %1$slink%2$s (email sending, skype call, telephone call).', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
280
+ </p>
281
+ </div>
282
+ </div>
283
+ </div>
284
+ <div class="four section section-odd clear">
285
+ <div class="landing-container">
286
+ <div class="col-2">
287
+ <div class="section-title">
288
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/04-icon.png" alt="icon 04" />
289
+ <h2><?php _e('Product reviews','yith-woocommerce-catalog-mode');?></h2>
290
+ </div>
291
+ <p>
292
+ <?php echo sprintf(__('You can disable product %1$sreviewing system%2$s of your shop and decide if applying it to all users or just to unlogged ones.', 'yith-woocommerce-catalog-mode'), '<b>', '</b>');?>
293
+ </p>
294
+ </div>
295
+ <div class="col-1">
296
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/04.png" alt="Product reviews" />
297
+ </div>
298
+ </div>
299
+ </div>
300
+ <div class="five section section-even clear">
301
+ <div class="landing-container">
302
+ <div class="col-1">
303
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/05.png" alt="Exclusion list" />
304
+ </div>
305
+ <div class="col-2">
306
+ <div class="section-title">
307
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/05-icon.png" alt="icon 05" />
308
+ <h2><?php _e('Exclusion list','yith-woocommerce-catalog-mode');?></h2>
309
+ </div>
310
+ <p>
311
+ <?php echo sprintf( __('Set plugin options, but if you want that options concerning price visibility and ‘Add to cart’ do not apply to specific products, add them to %1$sexclusion list%2$s and, voilà, problem solved.','yith-woocommerce-catalog-mode'),'<b>','</b>'); ?>
312
+ </p>
313
+ </div>
314
+ </div>
315
+ </div>
316
+ <div class="six section section-odd clear">
317
+ <div class="landing-container">
318
+ <div class="col-2">
319
+ <div class="section-title">
320
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/06-icon.png" alt="icon 06" />
321
+ <h2><?php _e('REVERSE EXCLUSION LIST','yith-woocommerce-catalog-mode');?></h2>
322
+ </div>
323
+ <p>
324
+ <?php echo sprintf( __( 'Apply Catalog Mode to some items only: add them to the "Exclusion List" and %1$smake it work in the opposite way as usual%2$s. All items in the shop show price and “Add to Cart” button, while items in the list don’t.','yith-woocommerce-catalog-mode' ),'<b>','</b>' ) ?>
325
+ </p>
326
+ </div>
327
+ <div class="col-1">
328
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/06.png" alt="REVERSE EXCLUSION LIST" />
329
+ </div>
330
+ </div>
331
+ </div>
332
+ <div class="seven section section-even clear">
333
+ <div class="landing-container">
334
+ <div class="col-1">
335
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/07.png" alt="Source page of the request" />
336
+ </div>
337
+ <div class="col-2">
338
+ <div class="section-title">
339
+ <img src="<?php echo YWCTM_ASSETS_URL?>/images/07-icon.png" alt="icon 05" />
340
+ <h2><?php _e('Source page of the request','yith-woocommerce-catalog-mode');?></h2>
341
+ </div>
342
+ <p>
343
+ <?php echo sprintf( __('Thanks to the %1$s"Product Permalink"%2$s option you will be able to know from which page your users have generated the request.%3$sThe email generated from the request form will include the address of the page: another important information that can be really useful for you.','yith-woocommerce-catalog-mode'),'<b>','</b>','<br>'); ?>
344
+ </p>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ <div class="section section-cta section-odd">
349
+ <div class="landing-container">
350
+ <div class="premium-cta">
351
+ <p>
352
+ <?php echo sprintf( __('Upgrade to %1$spremium version%2$s of %1$sYITH WooCommerce Catalog Mode%2$s to benefit from all features!','yith-woocommerce-catalog-mode'),'<span class="highlight">','</span>' );?>
353
+ </p>
354
+ <a href="<?php echo $this->get_premium_landing_uri() ?>" target="_blank" class="premium-cta-button button btn">
355
+ <span class="highlight"><?php _e('UPGRADE','yith-woocommerce-catalog-mode');?></span>
356
+ <span><?php _e('to the premium version','yith-woocommerce-catalog-mode');?></span>
357
+ </a>
358
+ </div>
359
+ </div>
360
+ </div>
361
  </div>