Version Description
Release Date - 17 October 2018
- Fixed no cache issue for WooCommerce versions below 3.2.4
- Added redirect to a previous page after login when "Require Login" option is enabled
- Added an option to add the wishlist counter into a menu
- Improved compatibility with WooCommerce Subscriptions plugin
- Improved compatibility with WooCommerce Product Bundles plugin
- Improved compatibility with WooCommerce Composite Products plugin
Download this release
Release Info
Developer | templateinvaders |
Plugin | WooCommerce Wishlist Plugin |
Version | 1.9.0 |
Comparing to | |
See all releases |
Code changes from version 1.8.17 to 1.9.0
- admin/settings/general.class.php +90 -24
- admin/tinvwl.class.php +24 -21
- assets/css/admin-form.min.css +1 -11
- assets/css/admin-setup.min.css +1 -11
- assets/css/admin.min.css +1 -11
- assets/css/public.css +10 -10
- assets/css/public.min.css +2 -12
- assets/css/theme.min.css +1 -11
- assets/img/upgrade_to_pro.jpg +0 -0
- assets/js/admin.min.js +1 -11
- assets/js/public.js +2 -1
- assets/js/public.min.js +2 -12
- includes/form.helper.php +234 -156
- languages/ti-woocommerce-wishlist.pot +189 -139
- public/addtowishlist.class.php +29 -8
- public/tinvwl.class.php +1 -1
- public/wishlist/buttons.class.php +1 -0
- public/wishlist/view.class.php +31 -3
- public/{topwishlist.class.php → wishlistcounter.class.php} +123 -6
- readme.txt +11 -1
- templates/ti-wishlist-product-counter.php +4 -3
- templates/ti-wishlist-social.php +2 -1
- templates/ti-wishlist-user.php +9 -5
- templates/ti-wishlist.php +167 -161
- ti-woocommerce-wishlist.php +2 -2
- tinv-wishlists-function-integration.php +32 -12
- tinv-wishlists-function.php +1 -1
admin/settings/general.class.php
CHANGED
@@ -38,6 +38,21 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
38 |
);
|
39 |
}
|
40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
/**
|
42 |
* Create sections for this settings
|
43 |
*
|
@@ -47,11 +62,12 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
47 |
add_action( $this->_name . '_section_before', array( $this, 'premium_features' ), 9 );
|
48 |
$lists = get_pages( array( 'number' => 999999 ) ); // @codingStandardsIgnoreLine WordPress.VIP.RestrictedFunctions.get_pages
|
49 |
$page_list = array( '' => '' );
|
|
|
50 |
foreach ( $lists as $list ) {
|
51 |
$page_list[ $list->ID ] = $list->post_title;
|
52 |
}
|
53 |
|
54 |
-
|
55 |
array(
|
56 |
'id' => 'general',
|
57 |
'title' => __( 'General Settings', 'ti-woocommerce-wishlist' ),
|
@@ -636,14 +652,14 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
636 |
),
|
637 |
array(
|
638 |
'id' => 'topline',
|
639 |
-
'title' => __( 'Wishlist
|
640 |
'desc' => sprintf( __( 'Add this shortcode <code>[ti_wishlist_products_counter]</code> anywhere into a page content to show Wishlist Counter.<br/><br/>It can be also added as a widget <code>Wishlist Products Counter</code> under the <a href="%s">Appearance -> Widgets</a> section.', 'ti-woocommerce-wishlist' ), esc_url( admin_url( 'widgets.php' ) ) ),
|
641 |
'show_names' => true,
|
642 |
'fields' => array(
|
643 |
array(
|
644 |
'type' => 'select',
|
645 |
'name' => 'icon',
|
646 |
-
'text' => __( '"Wishlist" Icon', 'ti-woocommerce-wishlist' ),
|
647 |
'std' => 'heart',
|
648 |
'options' => array(
|
649 |
'' => __( 'None', 'ti-woocommerce-wishlist' ),
|
@@ -675,7 +691,7 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
675 |
'type' => 'select',
|
676 |
'name' => 'icon_style',
|
677 |
'std' => '',
|
678 |
-
'text' => __( '"Wishlist" Icon Color', 'ti-woocommerce-wishlist' ),
|
679 |
'options' => array(
|
680 |
'' => __( 'Use font color', 'ti-woocommerce-wishlist' ),
|
681 |
'black' => __( 'Black', 'ti-woocommerce-wishlist' ),
|
@@ -686,7 +702,7 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
686 |
array(
|
687 |
'type' => 'checkboxonoff',
|
688 |
'name' => 'show_text',
|
689 |
-
'text' => __( 'Show
|
690 |
'std' => true,
|
691 |
'extra' => array(
|
692 |
'tiwl-show' => '.tiwl-dropdown-text',
|
@@ -695,37 +711,87 @@ class TInvWL_Admin_Settings_General extends TInvWL_Admin_BaseSection {
|
|
695 |
array(
|
696 |
'type' => 'text',
|
697 |
'name' => 'text',
|
698 |
-
'text' => __( 'Counter Text', 'ti-woocommerce-wishlist' ),
|
699 |
'std' => __( 'Wishlist - ', 'ti-woocommerce-wishlist' ),
|
700 |
'class' => 'tiwl-dropdown-text',
|
701 |
),
|
702 |
-
),
|
703 |
-
),
|
704 |
-
array(
|
705 |
-
'id' => 'save_buttons',
|
706 |
-
'class' => 'only-button',
|
707 |
-
'noform' => true,
|
708 |
-
'fields' => array(
|
709 |
array(
|
710 |
-
'type'
|
711 |
-
'name'
|
712 |
-
'
|
713 |
-
'
|
|
|
|
|
|
|
|
|
|
|
714 |
),
|
715 |
array(
|
716 |
-
'type' => '
|
717 |
-
'name' => '
|
718 |
-
'
|
719 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
720 |
),
|
721 |
array(
|
722 |
-
'type' => '
|
723 |
-
'name' => '
|
724 |
-
'
|
|
|
725 |
),
|
726 |
),
|
727 |
),
|
728 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
729 |
}
|
730 |
|
731 |
/**
|
38 |
);
|
39 |
}
|
40 |
|
41 |
+
/**
|
42 |
+
* Get WP menus
|
43 |
+
*
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function get_wp_menus() {
|
47 |
+
$menus = array( esc_html__( 'Select Your Menu', 'ti-woocommerce-wishlist' ) );
|
48 |
+
$get_menus = get_terms( 'nav_menu', array( 'hide_empty' => true ) );
|
49 |
+
foreach ( $get_menus as $menu ) {
|
50 |
+
$menus[ $menu->term_id ] = $menu->name;
|
51 |
+
}
|
52 |
+
|
53 |
+
return $menus;
|
54 |
+
}
|
55 |
+
|
56 |
/**
|
57 |
* Create sections for this settings
|
58 |
*
|
62 |
add_action( $this->_name . '_section_before', array( $this, 'premium_features' ), 9 );
|
63 |
$lists = get_pages( array( 'number' => 999999 ) ); // @codingStandardsIgnoreLine WordPress.VIP.RestrictedFunctions.get_pages
|
64 |
$page_list = array( '' => '' );
|
65 |
+
$menus = $this->get_wp_menus();
|
66 |
foreach ( $lists as $list ) {
|
67 |
$page_list[ $list->ID ] = $list->post_title;
|
68 |
}
|
69 |
|
70 |
+
$settings = array(
|
71 |
array(
|
72 |
'id' => 'general',
|
73 |
'title' => __( 'General Settings', 'ti-woocommerce-wishlist' ),
|
652 |
),
|
653 |
array(
|
654 |
'id' => 'topline',
|
655 |
+
'title' => __( 'Wishlist Product Counter', 'ti-woocommerce-wishlist' ),
|
656 |
'desc' => sprintf( __( 'Add this shortcode <code>[ti_wishlist_products_counter]</code> anywhere into a page content to show Wishlist Counter.<br/><br/>It can be also added as a widget <code>Wishlist Products Counter</code> under the <a href="%s">Appearance -> Widgets</a> section.', 'ti-woocommerce-wishlist' ), esc_url( admin_url( 'widgets.php' ) ) ),
|
657 |
'show_names' => true,
|
658 |
'fields' => array(
|
659 |
array(
|
660 |
'type' => 'select',
|
661 |
'name' => 'icon',
|
662 |
+
'text' => __( '"Wishlist" Counter Icon', 'ti-woocommerce-wishlist' ),
|
663 |
'std' => 'heart',
|
664 |
'options' => array(
|
665 |
'' => __( 'None', 'ti-woocommerce-wishlist' ),
|
691 |
'type' => 'select',
|
692 |
'name' => 'icon_style',
|
693 |
'std' => '',
|
694 |
+
'text' => __( '"Wishlist" Counter Icon Color', 'ti-woocommerce-wishlist' ),
|
695 |
'options' => array(
|
696 |
'' => __( 'Use font color', 'ti-woocommerce-wishlist' ),
|
697 |
'black' => __( 'Black', 'ti-woocommerce-wishlist' ),
|
702 |
array(
|
703 |
'type' => 'checkboxonoff',
|
704 |
'name' => 'show_text',
|
705 |
+
'text' => __( 'Show "Wishlist" Counter Text', 'ti-woocommerce-wishlist' ),
|
706 |
'std' => true,
|
707 |
'extra' => array(
|
708 |
'tiwl-show' => '.tiwl-dropdown-text',
|
711 |
array(
|
712 |
'type' => 'text',
|
713 |
'name' => 'text',
|
714 |
+
'text' => __( '"Wishlist" Counter Text', 'ti-woocommerce-wishlist' ),
|
715 |
'std' => __( 'Wishlist - ', 'ti-woocommerce-wishlist' ),
|
716 |
'class' => 'tiwl-dropdown-text',
|
717 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
718 |
array(
|
719 |
+
'type' => 'select',
|
720 |
+
'name' => 'menu',
|
721 |
+
'text' => __( 'Add counter to menu', 'ti-woocommerce-wishlist' ),
|
722 |
+
'options' => $menus,
|
723 |
+
'desc' => __( 'You can add a wishlist products counter as item to the selected menu.', 'ti-woocommerce-wishlist' ),
|
724 |
+
'extra' => array(
|
725 |
+
'tiwl-value' => '0',
|
726 |
+
'tiwl-hide' => '.tiwl-menu-position',
|
727 |
+
),
|
728 |
),
|
729 |
array(
|
730 |
+
'type' => 'number',
|
731 |
+
'name' => 'menu_order',
|
732 |
+
'text' => __( 'Counter position (Menu item order)', 'ti-woocommerce-wishlist' ),
|
733 |
+
'desc' => __( 'Allows you to add the wishlist counter as a menu item and apply its position.', 'ti-woocommerce-wishlist' ),
|
734 |
+
'std' => 100,
|
735 |
+
'class' => 'tiwl-menu-position',
|
736 |
+
'extra' => array(
|
737 |
+
'step' => '1',
|
738 |
+
'min' => '1',
|
739 |
+
),
|
740 |
),
|
741 |
array(
|
742 |
+
'type' => 'checkboxonoff',
|
743 |
+
'name' => 'show_counter',
|
744 |
+
'text' => __( 'Show number of products in counter', 'ti-woocommerce-wishlist' ),
|
745 |
+
'std' => true,
|
746 |
),
|
747 |
),
|
748 |
),
|
749 |
);
|
750 |
+
|
751 |
+
if ( ! empty( $_GET['chat'] ) ) {
|
752 |
+
$settings[] = array(
|
753 |
+
'id' => 'chat',
|
754 |
+
'title' => __( 'Support chat settings', 'ti-woocommerce-wishlist' ),
|
755 |
+
'desc' => '',
|
756 |
+
'show_names' => true,
|
757 |
+
'fields' => array(
|
758 |
+
array(
|
759 |
+
'type' => 'checkboxonoff',
|
760 |
+
'name' => 'disabled',
|
761 |
+
'text' => __( 'Disable support chat', 'ti-woocommerce-wishlist' ),
|
762 |
+
'std' => false,
|
763 |
+
),
|
764 |
+
),
|
765 |
+
);
|
766 |
+
}
|
767 |
+
|
768 |
+
// Buttons.
|
769 |
+
$settings[] = array(
|
770 |
+
'id' => 'save_buttons',
|
771 |
+
'class' => 'only-button',
|
772 |
+
'noform' => true,
|
773 |
+
'fields' => array(
|
774 |
+
array(
|
775 |
+
'type' => 'button_submit',
|
776 |
+
'name' => 'setting_save',
|
777 |
+
'std' => '<span><i class="ftinvwl ftinvwl-check"></i></span>' . __( 'Save Settings', 'ti-woocommerce-wishlist' ),
|
778 |
+
'extra' => array( 'class' => 'tinvwl-btn split status-btn-ok' ),
|
779 |
+
),
|
780 |
+
array(
|
781 |
+
'type' => 'button_submit',
|
782 |
+
'name' => 'setting_reset',
|
783 |
+
'std' => '<span><i class="ftinvwl ftinvwl-times"></i></span>' . __( 'Reset', 'ti-woocommerce-wishlist' ),
|
784 |
+
'extra' => array( 'class' => 'tinvwl-btn split status-btn-ok tinvwl-confirm-reset' ),
|
785 |
+
),
|
786 |
+
array(
|
787 |
+
'type' => 'button_submit_quick',
|
788 |
+
'name' => 'setting_save_quick',
|
789 |
+
'std' => '<span><i class="ftinvwl ftinvwl-floppy-o"></i></span>' . __( 'Save', 'ti-woocommerce-wishlist' ),
|
790 |
+
),
|
791 |
+
),
|
792 |
+
);
|
793 |
+
|
794 |
+
return $settings;
|
795 |
}
|
796 |
|
797 |
/**
|
admin/tinvwl.class.php
CHANGED
@@ -186,13 +186,15 @@ class TInvWL_Admin_TInvWL extends TInvWL_Admin_Base {
|
|
186 |
) );
|
187 |
wp_enqueue_script( $this->_name );
|
188 |
|
189 |
-
|
190 |
-
$user_info = get_userdata( $user_id );
|
191 |
-
$current_theme = wp_get_theme();
|
192 |
|
193 |
-
|
|
|
|
|
194 |
|
195 |
-
|
|
|
|
|
196 |
app_id: "zyh6v0pc",
|
197 |
"Website": "' . get_site_url() . '",
|
198 |
"Plugin name": "WooCommerce Wishlist Plugin",
|
@@ -207,22 +209,23 @@ class TInvWL_Admin_TInvWL extends TInvWL_Admin_Base {
|
|
207 |
"Parent theme URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : '' ) . '",
|
208 |
"Parent theme author":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : '' ) . '",
|
209 |
"Parent theme author URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : '' ) . '",
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
|
|
226 |
}
|
227 |
|
228 |
/**
|
186 |
) );
|
187 |
wp_enqueue_script( $this->_name );
|
188 |
|
189 |
+
if ( ! tinv_get_option( 'chat', 'disabled' ) ) {
|
|
|
|
|
190 |
|
191 |
+
$user_id = get_current_user_id();
|
192 |
+
$user_info = get_userdata( $user_id );
|
193 |
+
$current_theme = wp_get_theme();
|
194 |
|
195 |
+
$parent_theme = $current_theme->parent();
|
196 |
+
|
197 |
+
wp_add_inline_script( $this->_name, 'window.intercomSettings = {
|
198 |
app_id: "zyh6v0pc",
|
199 |
"Website": "' . get_site_url() . '",
|
200 |
"Plugin name": "WooCommerce Wishlist Plugin",
|
209 |
"Parent theme URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : '' ) . '",
|
210 |
"Parent theme author":"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : '' ) . '",
|
211 |
"Parent theme author URI":"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : '' ) . '",
|
212 |
+
};
|
213 |
+
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic("reattach_activator");ic("update",intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement("script");s.type="text/javascript";s.async=true;s.src="https://widget.intercom.io/widget/zyh6v0pc";var x=d.getElementsByTagName("script")[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent("onload",l);}else{w.addEventListener("load",l,false);}}})();
|
214 |
+
Intercom("trackEvent", "wishlist-free-install", {
|
215 |
+
theme_name:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Name' ) : $current_theme->get( 'Name' ) ) . '",
|
216 |
+
theme_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'ThemeURI' ) : $current_theme->get( 'ThemeURI' ) ) . '",
|
217 |
+
theme_author:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Author' ) : $current_theme->get( 'Author' ) ) . '",
|
218 |
+
theme_author_uri:"' . ( ( $parent_theme ) ? $parent_theme->get( 'AuthorURI' ) : $current_theme->get( 'AuthorURI' ) ) . '",
|
219 |
+
theme_version:"' . ( ( $parent_theme ) ? $parent_theme->get( 'Version' ) : $current_theme->get( 'Version' ) ) . '",
|
220 |
+
website:"' . get_site_url() . '",
|
221 |
+
user:"' . $user_info->user_email . '",
|
222 |
+
user_name:"' . $user_info->user_nicename . '",
|
223 |
+
plugin_name:"WooCommerce Wishlist Plugin",
|
224 |
+
plugin_version:"' . TINVWL_FVERSION . '",
|
225 |
+
partner:"' . TINVWL_UTM_SOURCE . '"
|
226 |
+
});
|
227 |
+
' );
|
228 |
+
}
|
229 |
}
|
230 |
|
231 |
/**
|
assets/css/admin-form.min.css
CHANGED
@@ -1,14 +1,4 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
-
* Copyright (c) 2018;
|
4 |
-
* Licensed GPLv2+ */
|
5 |
-
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
* Copyright (c) 2018;
|
14 |
* Licensed GPLv2+ */
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
assets/css/admin-setup.min.css
CHANGED
@@ -1,14 +1,4 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
-
* Copyright (c) 2018;
|
4 |
-
* Licensed GPLv2+ */
|
5 |
-
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
* Copyright (c) 2018;
|
14 |
* Licensed GPLv2+ */
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
assets/css/admin.min.css
CHANGED
@@ -1,14 +1,4 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
-
* Copyright (c) 2018;
|
4 |
-
* Licensed GPLv2+ */
|
5 |
-
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
* Copyright (c) 2018;
|
14 |
* Licensed GPLv2+ */
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
assets/css/public.css
CHANGED
@@ -248,7 +248,7 @@ a.wishlist_products_counter {
|
|
248 |
text-decoration: none;
|
249 |
}
|
250 |
|
251 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button:before, a.wishlist_products_counter.top_wishlist-heart:before, a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart:before {
|
252 |
content: '\e909';
|
253 |
display: inline-block;
|
254 |
font-family: tinvwl-webfont !important;
|
@@ -265,7 +265,7 @@ a.wishlist_products_counter {
|
|
265 |
margin-right: 5px;
|
266 |
}
|
267 |
|
268 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, a.wishlist_products_counter.top_wishlist-heart-plus:before, a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart-plus:before {
|
269 |
content: '\e906';
|
270 |
display: inline-block;
|
271 |
font-family: tinvwl-webfont !important;
|
@@ -289,7 +289,7 @@ a.wishlist_products_counter {
|
|
289 |
vertical-align: sub;
|
290 |
}
|
291 |
|
292 |
-
a.wishlist_products_counter.top_wishlist-heart-plus.no-txt {
|
293 |
position: relative;
|
294 |
width: 36px;
|
295 |
height: 36px;
|
@@ -312,19 +312,19 @@ a.wishlist_products_counter.top_wishlist-heart-plus.no-txt {
|
|
312 |
content: '\e908';
|
313 |
}
|
314 |
|
315 |
-
.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before, a.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before {
|
316 |
content: '\e908';
|
317 |
}
|
318 |
|
319 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart-plus.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before, a.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before {
|
320 |
content: '\e907';
|
321 |
}
|
322 |
|
323 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-white:before, a.wishlist_products_counter.top_wishlist-white:before {
|
324 |
color: #FFF;
|
325 |
}
|
326 |
|
327 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-black:before, a.wishlist_products_counter.top_wishlist-black:before {
|
328 |
color: #000;
|
329 |
}
|
330 |
|
@@ -341,12 +341,12 @@ a.wishlist_products_counter.top_wishlist-heart-plus.no-txt {
|
|
341 |
line-height: 1;
|
342 |
}
|
343 |
|
344 |
-
a.wishlist_products_counter.top_wishlist-custom.no-txt {
|
345 |
padding: 10px 11px;
|
346 |
line-height: 1;
|
347 |
}
|
348 |
|
349 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom img, a.wishlist_products_counter.top_wishlist-custom img {
|
350 |
display: inline-block !important;
|
351 |
vertical-align: baseline;
|
352 |
width: auto !important;
|
@@ -356,7 +356,7 @@ a.wishlist_products_counter.top_wishlist-custom.no-txt {
|
|
356 |
margin: 0 6px 0 0 !important;
|
357 |
}
|
358 |
|
359 |
-
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt img, a.wishlist_products_counter.top_wishlist-custom.no-txt img {
|
360 |
margin-right: 0 !important;
|
361 |
}
|
362 |
|
248 |
text-decoration: none;
|
249 |
}
|
250 |
|
251 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button:before, a.wishlist_products_counter.top_wishlist-heart:before, span.wishlist_products_counter.top_wishlist-heart:before, a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart:before {
|
252 |
content: '\e909';
|
253 |
display: inline-block;
|
254 |
font-family: tinvwl-webfont !important;
|
265 |
margin-right: 5px;
|
266 |
}
|
267 |
|
268 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before, a.wishlist_products_counter.top_wishlist-heart-plus:before, span.wishlist_products_counter.top_wishlist-heart-plus:before, a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart-plus:before {
|
269 |
content: '\e906';
|
270 |
display: inline-block;
|
271 |
font-family: tinvwl-webfont !important;
|
289 |
vertical-align: sub;
|
290 |
}
|
291 |
|
292 |
+
a.wishlist_products_counter.top_wishlist-heart-plus.no-txt, span.wishlist_products_counter.top_wishlist-heart-plus.no-txt {
|
293 |
position: relative;
|
294 |
width: 36px;
|
295 |
height: 36px;
|
312 |
content: '\e908';
|
313 |
}
|
314 |
|
315 |
+
.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before, a.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before, span.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before {
|
316 |
content: '\e908';
|
317 |
}
|
318 |
|
319 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before, .woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before, .woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart-plus.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before, a.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before, span.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before {
|
320 |
content: '\e907';
|
321 |
}
|
322 |
|
323 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-white:before, a.wishlist_products_counter.top_wishlist-white:before, span.wishlist_products_counter.top_wishlist-white:before {
|
324 |
color: #FFF;
|
325 |
}
|
326 |
|
327 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-black:before, a.wishlist_products_counter.top_wishlist-black:before, span.wishlist_products_counter.top_wishlist-black:before {
|
328 |
color: #000;
|
329 |
}
|
330 |
|
341 |
line-height: 1;
|
342 |
}
|
343 |
|
344 |
+
a.wishlist_products_counter.top_wishlist-custom.no-txt, span.wishlist_products_counter.top_wishlist-custom.no-txt {
|
345 |
padding: 10px 11px;
|
346 |
line-height: 1;
|
347 |
}
|
348 |
|
349 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom img, a.wishlist_products_counter.top_wishlist-custom img, span.wishlist_products_counter.top_wishlist-custom img {
|
350 |
display: inline-block !important;
|
351 |
vertical-align: baseline;
|
352 |
width: auto !important;
|
356 |
margin: 0 6px 0 0 !important;
|
357 |
}
|
358 |
|
359 |
+
.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt img, a.wishlist_products_counter.top_wishlist-custom.no-txt img, span.wishlist_products_counter.top_wishlist-custom.no-txt img {
|
360 |
margin-right: 0 !important;
|
361 |
}
|
362 |
|
assets/css/public.min.css
CHANGED
@@ -1,16 +1,6 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
5 |
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
-
* Copyright (c) 2018;
|
14 |
-
* Licensed GPLv2+ */
|
15 |
-
|
16 |
-
@font-face{font-family:tinvwl-webfont;src:url(../fonts/tinvwl-webfont.eot?xu2uyi);src:url(../fonts/tinvwl-webfont.eot?xu2uyi#iefix) format("embedded-opentype"),url(../fonts/tinvwl-webfont.ttf?xu2uyi) format("truetype"),url(../fonts/tinvwl-webfont.woff?xu2uyi) format("woff"),url(../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont) format("svg");font-weight:400;font-style:normal}.ftinvwl{font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ftinvwl-twitter:before{content:"\f099"}.ftinvwl-facebook:before{content:"\f09a"}.ftinvwl-facebook-f:before{content:"\f09a"}.ftinvwl-google:before{content:"\f0d5"}.ftinvwl-email:before{content:"\f0e0"}.ftinvwl-pinterest:before{content:"\f231"}.ftinvwl-star:before{content:"\e912"}.ftinvwl-shopping-cart:before{content:"\e913"}.ftinvwl-magic:before{content:"\e914"}.ftinvwl-info:before{content:"\e915"}.ftinvwl-graduation-cap:before{content:"\e918"}.ftinvwl-floppy-o:before{content:"\e919"}.ftinvwl-eyedropper:before{content:"\e91a"}.ftinvwl-exclamation-triangle:before{content:"\e91b"}.ftinvwl-check:before{content:"\e91e"}.ftinvwl-arrow-left:before{content:"\e91f"}.ftinvwl-wrench:before{content:"\e920"}.ftinvwl-chevron-down:before{content:"\e900"}.ftinvwl-chevron-right:before{content:"\e901"}.ftinvwl-chevron-left:before{content:"\e902"}.ftinvwl-chevron-up:before{content:"\e903"}.ftinvwl-cancel:before{content:"\e904"}.ftinvwl-times:before{content:"\e905"}.ftinvwl-heart-plus:before{content:"\e906"}.ftinvwl-heart-mark-right:before{content:"\e907"}.ftinvwl-heart2:before{content:"\e908"}.ftinvwl-heart-o:before{content:"\e909"}.ftinvwl-heart-mark-left:before{content:"\e90a"}.ftinvwl-heart-mail:before{content:"\e90b"}.ftinvwl-heart-tinv:before{content:"\e90c"}.ftinvwl-key:before{content:"\e90d"}.ftinvwl-lock:before{content:"\e90e"}.ftinvwl-hearts:before{content:"\e90f"}.ftinvwl-user:before{content:"\e910"}@-webkit-keyframes ftinvwl-pulse{0%{-webkit-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes ftinvwl-pulse{0%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}}.ftinvwl-pulse.ftinvwl-animated::before{-webkit-animation:ftinvwl-pulse 2s linear infinite;animation:ftinvwl-pulse 2s linear infinite}.tinv-wishlist form,.tinv-wishlist p:last-child,.tinv-wishlist table{margin-bottom:0}.tinv-wishlist *{box-sizing:border-box}.tinvwl-wishlist :after,.tinvwl-wishlist :before{box-sizing:border-box}.tinv-wishlist select{width:140px}.tinv-wishlist ul{list-style:none;margin:0;padding:0}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt:before,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt:before{margin-top:-10px;margin-left:-10px}.woocommerce.tinv-wishlist #respond input#submit.alt,.woocommerce.tinv-wishlist a.button.alt,.woocommerce.tinv-wishlist button.button.alt,.woocommerce.tinv-wishlist input.button.alt{text-align:center}.tinv-wishlist .button i,.tinv-wishlist .navigation-button a i{margin-right:6px}.tinv-wishlist input[type=button] i,.tinv-wishlist input[type=reset] i,.tinv-wishlist input[type=submit] i{margin-right:6px}.tinv-wishlist a.tinv-close-modal i{margin-right:0}a.wishlist_products_counter{text-decoration:none}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button:before,a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart:before,a.wishlist_products_counter.top_wishlist-heart:before{content:'\e909';display:inline-block;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;vertical-align:sub;margin-right:5px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart-plus:before,a.wishlist_products_counter.top_wishlist-heart-plus:before{content:'\e906';display:inline-block;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;vertical-align:sub;margin-right:5px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt{position:relative;width:36px;height:36px;vertical-align:sub}a.wishlist_products_counter.top_wishlist-heart-plus.no-txt{position:relative;width:36px;height:36px;vertical-align:sub}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt:before,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt:before{position:absolute;top:50%;left:50%;margin-right:0}.tinv-wishlist .tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt,.tinv-wishlist .tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt{padding-left:1em;vertical-align:bottom}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before{content:'\e908'}.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before,a.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before{content:'\e908'}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart-plus.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before,a.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before{content:'\e907'}.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-white:before,a.wishlist_products_counter.top_wishlist-white:before{color:#fff}.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-black:before,a.wishlist_products_counter.top_wishlist-black:before{color:#000}.tinv-wishlist.tinvwl-before-add-to-cart .tinvwl_add_to_wishlist_button{margin-bottom:15px}.tinv-wishlist.tinvwl-after-add-to-cart .tinvwl_add_to_wishlist_button{margin-top:15px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt{padding:10px 11px;line-height:1}a.wishlist_products_counter.top_wishlist-custom.no-txt{padding:10px 11px;line-height:1}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom img,a.wishlist_products_counter.top_wishlist-custom img{display:inline-block!important;vertical-align:baseline;width:auto!important;max-width:16px;max-height:16px;margin-bottom:0;margin:0 6px 0 0!important}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt img,a.wishlist_products_counter.top_wishlist-custom.no-txt img{margin-right:0!important}.single-product div.product form.cart .tinvwl-button.tinvwl_add_to_wishlist_button,div.product form.cart .tinvwl_add_to_wishlist_button{float:none}ul.products li.product .tinvwl_add_to_wishlist_button{margin-top:1em}.tinvwl_add_to_wishlist_button{display:inline-block;cursor:pointer}.tinv-wishlist.woocommerce .stock.in-stock:before{content:none}.tinv-wraper.tinv-wishlist{font-size:100%}.tinv-create-list li input[type=radio]{margin-right:10px}.tinv-create-list li+li{margin-top:15px}.tinv-create-list .tinvwl-input-group+ul{margin-top:25px}.tinv-search-list{margin-bottom:36px}.tinv-wishlist .tinv-header{margin-bottom:30px}.tinv-wishlist table{position:relative;table-layout:auto;margin-bottom:30px;z-index:2}.tinv-overlay{top:0;left:0;position:fixed;transition:opacity .3s ease,visibility .3s ease}.tinv-wishlist .tinv-modal{top:0;left:0;position:fixed;transition:opacity .3s ease,visibility .3s ease}.tinv-wishlist table.tinvwl-table-manage-list{margin-bottom:27px;width:100%}.tinv-wishlist table input[type=checkbox]{margin-right:0}.tinv-wishlist table td,.tinv-wishlist table th{padding:1em;vertical-align:middle}.tinv-wishlist .tinvwl-table-manage-list .product-cb{width:35px;text-align:center}.tinv-wishlist .tinvwl-table-manage-list .product-remove{width:46px;text-align:center}.tinv-wishlist .product-remove button{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;margin:0 auto;width:27px;height:27px;border-radius:50%;padding:0;box-shadow:none;border:none;background-color:#f7f7f7;color:#000;font-size:20px;padding-left:3px}.tinv-wishlist .product-thumbnail{min-width:100px;width:100px}.tinv-wishlist .product-thumbnail .wp-post-image{margin-bottom:0}.tinv-wishlist td.product-name a+.variation{margin-top:2px}.tinv-wishlist .product-stock i{margin-right:15px}.tinv-wishlist .product-stock p{display:table}.tinv-wishlist .product-stock span{display:table-cell;vertical-align:middle}.tinv-wishlist .product-action>.button>i,.tinv-wishlist .tinvwl-table-manage-list .product-action button[name=tinvwl-remove],.tinv-wishlist table thead th .tinvwl-mobile{display:none}.tinv-wishlist.woocommerce .product-quantity{width:80px;text-align:center}.tinv-wishlist.woocommerce table .quantity .qty{max-width:100%;width:62px;text-align:left}.tinv-wishlist .product-action{width:135px;text-align:center}.tinv-wishlist .product-action .button{width:100%}.tinv-wishlist .product-action .tinvwl_move_product_button{margin-top:5px}.tinv-wishlist .tinvwl-table-manage-list .product-action>button[name=tinvwl-remove]>i{margin-right:0}.tinv-wishlist .wishlist-cb{width:33px;text-align:center}.tinv-wishlist .wishlist-name .tinvwl-rename-input input{width:100%}.tinv-wishlist .wishlist-name .tinvwl-rename-button{float:right}.tinv-wishlist .wishlist-name .tinvwl-rename-button>i{margin-right:10px}.tinv-wishlist .wishlist-privacy,.tinv-wishlist table:not(.tinvwl-public) .wishlist-date{width:18%}.tinv-wishlist .wishlist-privacy select{width:100%}.tinv-wishlist .wishlist-name{width:45%}.tinv-wishlist .wishlist-action{width:120px;text-align:center}.tinv-wishlist .wishlist-action button[value=manage_remove]>i{display:none;margin-right:0}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list{display:inline-block;vertical-align:middle}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list>a.button{margin-right:0}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:-10px}.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){float:left;width:35%;margin-right:2%}.tinv-wishlist tfoot .tinvwl-to-right{float:left;width:63%;text-align:right}.tinv-wishlist tfoot .tinvwl-to-right>*{margin:10px 0 0;vertical-align:middle}.tinv-wishlist tfoot .tinvwl-to-right>*+*{margin-left:10px}.tinv-wishlist tfoot .tinvwl-to-left:empty+.tinvwl-to-right{width:100%}.tinv-wishlist .social-buttons+.tinv-wishlist-clear+.navigation-button{margin-top:16px}.tinv-wishlist .navigation-button{margin-top:-10px}.tinv-wishlist .navigation-button>li{float:left}.tinv-wishlist .navigation-button>li>.tinv-create-list>a,.tinv-wishlist .navigation-button>li>a{margin-right:30px;margin-top:10px;display:inline-block}.tinv-wishlist .navigation-button>li>.tinv-create-list>a.button,.tinv-wishlist .navigation-button>li>a.button{margin-right:10px}.tinv-wishlist .navigation-button>li:last-child>.tinv-create-list>a,.tinv-wishlist .navigation-button>li:last-child>a{margin-right:0}.tinv-wishlist .social-buttons{float:right}.tinv-wishlist .social-buttons>span,.tinv-wishlist .social-buttons>ul{display:inline-block;vertical-align:middle}.tinv-wishlist .social-buttons>span{margin-right:27px}.tinv-wishlist .social-buttons li{float:left;margin-right:5px;list-style:none}.tinv-wishlist .social-buttons li:last-child{margin-right:0}.tinv-wishlist .social-buttons li a{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:2em;height:2em;border-radius:50%;text-align:center;box-shadow:none;border:0;font-size:20px}.tinv-wishlist .social-buttons li a.white{color:#fff}.tinv-wishlist .social-buttons li a.dark{color:#000}.tinv-wishlist .social-buttons li a i{line-height:2em}.tinv-wishlist .navigation-button .tinv-create-list>a.tinvwl-no-icon>i,.tinv-wishlist .navigation-button li>a.tinvwl-no-icon>i{display:none}.tinv-wishlist .tinv-lists-nav{margin-bottom:35px}.tinv-wishlist .tinv-next{display:inline-block;float:left}.tinv-wishlist .tinv-prev{display:inline-block;float:left;margin-right:35px!important}.tinv-wishlist .tinv-prev i{margin-left:0;margin-right:18px}.tinv-wishlist .tinv-next i{margin-left:18px;margin-right:0}@media only screen and (max-width:1024px){.tinv-wishlist .tinvwl-table-manage-lists:not(.tinvwl-public){margin-top:0}.tinv-wishlist .tinvwl-table-manage-list .product-remove{display:none}.tinv-wishlist .tinvwl-table-manage-list .product-action button[name=tinvwl-remove]{display:inline-block;margin-top:5px}.tinv-wishlist .product-action{width:60px}}@media only screen and (max-width:1024px) and (min-width:641px){.tinv-wishlist .tinvwl-table-manage-list td.product-stock p{display:block;text-align:center}.tinv-wishlist .product-stock span{display:block}.tinv-wishlist .tinvwl-table-manage-list td.product-stock i{margin-right:0}.tinv-wishlist .tinvwl-table-manage-list td.product-stock .tinvwl-txt{display:none}.tinv-wishlist .product-thumbnail{max-width:76px;width:76px}.tinv-wishlist .product-action .button>i{display:inline-block;margin-right:0}.tinv-wishlist .product-action .button .tinvwl-txt{display:none}}@media only screen and (max-width:640px){.tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove,.tinv-wishlist table.tinvwl-table-manage-list thead th:not(.product-name){display:none}.tinv-wishlist table.tinvwl-table-manage-lists thead th:not(.wishlist-name){display:none}.tinv-wishlist thead th .tinvwl-full{display:none}.tinv-wishlist table.tinvwl-table-manage-list thead th.product-name,.tinv-wishlist table.tinvwl-table-manage-lists thead th.wishlist-name{display:block;width:100%;text-align:center}.tinv-wishlist table thead th .tinvwl-mobile{display:block}.tinv-wishlist table.tinvwl-table-manage-list tbody td{display:block;width:100%!important;text-align:center}.tinv-wishlist table.tinvwl-table-manage-lists tbody td,.tinv-wishlist table.tinvwl-table-manage-lists.tinvwl-public tbody td{display:block;width:100%!important;text-align:center}.tinv-wishlist table.tinvwl-table-manage-list tbody td:not(:last-child){border-bottom:0}.tinv-wishlist table.tinvwl-table-manage-lists tbody td:not(:last-child),.tinv-wishlist table.tinvwl-table-manage-lists.tinvwl-public tbody td:not(:last-child){border-bottom:0}.tinv-wishlist .product-stock p{margin:0 auto}.tinv-wishlist .product-thumbnail img{margin:0 auto;max-width:80px}.tinv-wishlist.woocommerce table .quantity .qty{text-align:center;width:100%}.tinv-wishlist .product-action .tinvwl_move_product_button{margin-top:10px}.tinv-wishlist table.tinvwl-table-manage-list tfoot td{display:block;width:100%}.tinv-wishlist table.tinvwl-table-manage-lists .wishlist-action button[value=manage_remove]{width:100%}.tinv-wishlist table.tinvwl-table-manage-lists .wishlist-name .tinvwl-rename-button{float:none}}@media only screen and (max-width:1024px){.tinv-wishlist .wishlist-name .tinvwl-rename-button>i,.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){margin-right:0}.tinv-wishlist .wishlist-name .tinvwl-rename-button span{display:none}.tinv-wishlist .wishlist-action{width:60px}.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){float:none;width:auto}.tinv-wishlist tfoot .tinvwl-to-right{float:none;width:auto;text-align:left}}@media only screen and (max-width:1024px) and (min-width:641px){.tinv-wishlist .wishlist-action button[value=manage_remove] span{display:none}.tinv-wishlist .wishlist-action button[value=manage_remove]>i{display:inline-block}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:0}}@media only screen and (max-width:640px){.tinv-wishlist button[value=manage_apply] .tinvwl-mobile,.tinv-wishlist button[value=product_apply] .tinvwl-mobile{display:none}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list{display:block}.tinv-wishlist .tinvwl-table-manage-list tfoot .tinvwl-to-right .button,.tinv-wishlist .tinvwl-table-manage-list tfoot .tinvwl-to-right button{width:100%;margin:10px 0 0}.tinv-wishlist .tinvwl-table-manage-lists tfoot .tinvwl-to-right .button,.tinv-wishlist .tinvwl-table-manage-lists tfoot .tinvwl-to-right button{width:100%;margin:10px 0 0}.tinv-wishlist tfoot .tinvwl-to-right>*{margin:10px 0 0}.tinv-wishlist tfoot .tinvwl-to-right .button:first-child,.tinv-wishlist tfoot .tinvwl-to-right button:first-child{margin-top:0!important}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:20px}}@media only screen and (max-width:1024px){.tinv-wishlist .social-buttons{float:none;width:auto;text-align:left;margin-top:20px}.tinv-wishlist .social-buttons+.tinv-wishlist-clear+.navigation-button{margin-top:30px}.tinv-wishlist .tinv-login form input[name=login]{min-width:auto}}@media only screen and (max-width:640px){.tinv-wishlist .social-buttons{text-align:center}.tinv-wishlist .navigation-button>li{width:20%;text-align:center}.tinv-wishlist .navigation-button.tinvwl-btns-count-1>li{width:100%}.tinv-wishlist .navigation-button.tinvwl-btns-count-2>li{width:50%}.tinv-wishlist .navigation-button.tinvwl-btns-count-3>li{width:33%}.tinv-wishlist .navigation-button.tinvwl-btns-count-4>li{width:25%}.tinv-wishlist .navigation-button>li+li{width:20%}.tinv-wishlist .navigation-button.tinvwl-btns-count-1>li+li{width:100%}.tinv-wishlist .navigation-button.tinvwl-btns-count-2>li+li{width:50%}.tinv-wishlist .navigation-button.tinvwl-btns-count-3>li+li{width:33%}.tinv-wishlist .navigation-button.tinvwl-btns-count-4>li+li{width:25%}.tinv-wishlist .navigation-button>li>.tinv-create-list>a,.tinv-wishlist .navigation-button>li>a{width:calc(100% - 10px);margin-right:0}.tinv-wishlist .navigation-button .tinv-create-list>a .tinvwl-txt,.tinv-wishlist .navigation-button li>a .tinvwl-txt{display:none}.tinv-wishlist .navigation-button .tinv-create-list>a>i,.tinv-wishlist .navigation-button li>a>i{display:inline-block!important;margin-right:0}.tinv-wishlist .social-buttons>span{display:block;margin-top:0;margin-right:0;margin-bottom:5px}}@media only screen and (max-width:667px){.tinv-wishlist.woocommerce .tinv-login form .form-row-first,.tinv-wishlist.woocommerce .tinv-login form .form-row-last{float:none;width:100%}.tinv-wishlist.woocommerce .tinv-login form .form-row-first{padding:0}.tinv-wishlist.woocommerce .tinv-login form .form-row-last{padding:0;margin-top:10px}.tinv-wishlist.woocommerce .tinv-login form .tinvwl-input-group-btn{display:block;padding:0;width:auto;margin-top:10px}}.tinv-overlay{width:100%;height:100%;visibility:hidden;opacity:0;background:#191919}.tinv-modal.tinv-modal-open .tinv-overlay{visibility:visible;opacity:.5}.admin-bar .tinv-wishlist .tinv-modal{padding-top:32px!important}.tinv-wishlist .tinv-modal{overflow-y:auto;overflow-x:hidden;width:0;height:0;z-index:9999;outline:0!important;-webkit-backface-visibility:hidden;visibility:hidden;opacity:0;text-align:left}.tinv-wishlist .tinv-modal .tinv-modal-inner{position:relative;margin:0 auto;background-color:#fff;max-width:360px;padding:40px}.tinv-wishlist .tinv-modal.tinv-modal-open{visibility:visible;opacity:1;width:100%;height:100%}.tinv-wishlist .tinv-modal .tinv-close-modal{display:inline-block;position:absolute;top:17px;right:14px;width:26px;height:26px;line-height:26px;font-size:12px;text-align:center;border-radius:50%;border-bottom:0;box-shadow:none!important;background-color:#ebe9eb}.tinv-wishlist .tinv-modal .icon_big_heart_check,.tinv-wishlist .tinv-modal .icon_big_times,.tinv-wishlist .tinv-modal img{display:block;margin:0 auto;margin-bottom:25px;opacity:1!important}.tinv-wishlist .tinv-modal ul{overflow:visible;list-style:disc;margin:10px 0 0 20px}.tinv-wishlist .tinv-modal li{list-style:disc!important}.tinv-wishlist .tinv-create-list .tinv-modal ul,.tinv-wishlist.tinv-create-list form ul{list-style:none!important;margin:25px 0 0}.tinv-wishlist .tinv-create-list .tinv-modal li,.tinv-wishlist.tinv-create-list form li{list-style:none!important}.tinv-wishlist .tinv-modal .already-in{margin-bottom:35px}.tinv-wishlist .tinv-modal .delete-notification{margin-bottom:25px}.tinv-wishlist .tinv-modal .already-in ul{overflow:visible;margin:12px 0 27px 17px}.tinv-wishlist .tinv-modal select{width:100%}.tinv-wishlist .tinv-modal button+.button,.tinv-wishlist .tinv-modal button+button{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal input+button{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal label+button,.tinv-wishlist .tinv-modal label+input{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal select+button,.tinv-wishlist .tinv-modal select+input{margin-top:12px;width:100%}@media screen and (max-width:782px){.admin-bar .tinv-wishlist .tinv-modal{padding-top:46px!important}}@media screen and (max-width:600px){.admin-bar .tinv-wishlist .tinv-modal{padding-top:0!important}.tinv-wishlist .tinv-modal .tinv-close-modal{position:static;display:block;margin:0 auto 20px}}.tinv-wishlist .tinv-modal .already-in+label{display:block;margin-top:6px}.tinv-wishlist .tinv-modal label select{margin-top:8px}.tinv-wishlist .tinv-modal .delete-notification+button{width:100%}.tinv-wishlist .tinvwl_added_to_wishlist,.tinv-wishlist .tinvwl_created_wishlist{text-align:center}.tinv-wishlist .tinvwl_added_to_wishlist .tinv-txt{margin-bottom:25px}.tinv-wishlist .tinvwl_created_wishlist .tinv-txt{margin-bottom:25px}.tinv-wishlist .tinvwl_created_wishlist button{margin-top:0;margin-bottom:10px}.woocommerce .tinv-wishlist .tinvwl_added_to_wishlist.tinv-modal button.button{margin-top:0;margin-bottom:10px}.tinv-wishlist .tinv-modal .tinvwl-buttons-group{margin-top:20px}.tinv-wishlist .tinvwl-buttons-group button{width:100%}.tinv-wishlist .tinvwl-buttons-group button+button{margin-top:7px}.tinv-wishlist .tinvwl-buttons-group button i{position:relative}.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-heart-o,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-key,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-times{font-size:20px}.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-heart-o::before,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-key::before,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-times::before{position:relative;top:3px}.tinv-wishlist .tinvwl-buttons-group+button{width:100%;margin-top:7px}.tinv-wishlist .tinv-modal h2{text-align:center;margin:0 0 35px}.tinv-wishlist .tinv-create-list .tinv-modal-inner{max-width:778px;padding:30px}.tinv-wishlist .tinvwl-has-error:not(.tinvwl-input-group),.tinv-wishlist .tinvwl-input-group.tinvwl-has-error .form-control{border:2px solid red}.tinv-wishlist .tinvwl-has-error+.tinvwl-error{padding:5px 0 0 5px;color:red}@media only screen and (max-width:640px){.navigation-button,.social-buttons,.tinv-lists-nav{margin-left:12px;margin-right:12px}}.tinvwl-tooltip{display:none}.tinvwl-input-group{position:relative;display:table;border-collapse:separate}.tinvwl-input-group .form-control{position:relative;z-index:1;float:left;height:38px;width:100%;margin-bottom:0}.tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:15px}.tinv-wishlist .tinvwl-to-left .tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:10px}.tinv-wishlist .tinv-search-form .tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:9px}.tinvwl-input-group .form-control,.tinvwl-input-group-addon,.tinvwl-input-group-btn{display:table-cell}.tinvwl-input-group-addon,.tinvwl-input-group-btn{width:1%;white-space:nowrap;vertical-align:top}@media only screen and (max-width:640px){.tinvwl-input-group{width:100%}}@media only screen and (max-width:667px){.tinvwl-input-group:not(.tinvwl-no-full){display:block}.tinvwl-input-group:not(.tinvwl-no-full) .form-control,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn{display:block}.tinvwl-input-group:not(.tinvwl-no-full) .form-control{float:none}.tinv-wishlist .tinv-search-form .tinvwl-input-group:not(.tinvwl-no-full) .form-control+.tinvwl-input-group-btn{padding-top:10px;padding-left:0}.tinvwl-input-group:not(.tinvwl-no-full) .form-control+.tinvwl-input-group-btn{padding-top:10px;padding-left:0}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon>button,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon>input{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn>button,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn>input{width:100%}}.tinv-table{display:table;width:100%;height:100%}.tinv-cell{display:table-cell;vertical-align:middle}.tinv-wishlist-clear:after,.tinv-wishlist-clear:before{content:" ";display:table}.tinv-wishlist .tinv-wishlist-clear{visibility:visible;width:auto;height:auto}.tinv-wishlist-clear:after{clear:both}.icon_big_heart_check{display:inline-block;width:46px;height:46px;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:60px}.icon_big_times{display:inline-block;width:46px;height:46px;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:60px}.icon_big_times::before{content:"\e904";top:-7px;left:-7px;position:relative}.icon_big_heart_check::before{content:"\e90a";top:-7px;left:-7px;position:relative}.tinvwl_add_to_wishlist_button.disabled-add-wishlist,.tinvwl_add_to_wishlist_button.tinvwl-button.disabled-add-wishlist{opacity:.5!important;cursor:not-allowed}.empty-name-wishlist{border-color:red!important}.tinvwl_remove_from_wishlist-text{display:none}.tinvwl-product-in-list.tinvwl-product-make-remove .tinvwl_remove_from_wishlist-text{display:inline}.tinvwl-product-in-list.tinvwl-product-make-remove .tinvwl_add_to_wishlist-text{display:none}@media only screen and (max-width:1024px){.tinv-wishlist .tinvwl-table-manage-list .product-remove{display:table-cell}}@media only screen and (max-width:640px){.tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove{display:block}}
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
5 |
|
6 |
+
@font-face{font-family:tinvwl-webfont;src:url(../fonts/tinvwl-webfont.eot?xu2uyi);src:url(../fonts/tinvwl-webfont.eot?xu2uyi#iefix) format("embedded-opentype"),url(../fonts/tinvwl-webfont.ttf?xu2uyi) format("truetype"),url(../fonts/tinvwl-webfont.woff?xu2uyi) format("woff"),url(../fonts/tinvwl-webfont.svg?xu2uyi#tinvwl-webfont) format("svg");font-weight:400;font-style:normal}.ftinvwl{font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ftinvwl-twitter:before{content:"\f099"}.ftinvwl-facebook:before{content:"\f09a"}.ftinvwl-facebook-f:before{content:"\f09a"}.ftinvwl-google:before{content:"\f0d5"}.ftinvwl-email:before{content:"\f0e0"}.ftinvwl-pinterest:before{content:"\f231"}.ftinvwl-star:before{content:"\e912"}.ftinvwl-shopping-cart:before{content:"\e913"}.ftinvwl-magic:before{content:"\e914"}.ftinvwl-info:before{content:"\e915"}.ftinvwl-graduation-cap:before{content:"\e918"}.ftinvwl-floppy-o:before{content:"\e919"}.ftinvwl-eyedropper:before{content:"\e91a"}.ftinvwl-exclamation-triangle:before{content:"\e91b"}.ftinvwl-check:before{content:"\e91e"}.ftinvwl-arrow-left:before{content:"\e91f"}.ftinvwl-wrench:before{content:"\e920"}.ftinvwl-chevron-down:before{content:"\e900"}.ftinvwl-chevron-right:before{content:"\e901"}.ftinvwl-chevron-left:before{content:"\e902"}.ftinvwl-chevron-up:before{content:"\e903"}.ftinvwl-cancel:before{content:"\e904"}.ftinvwl-times:before{content:"\e905"}.ftinvwl-heart-plus:before{content:"\e906"}.ftinvwl-heart-mark-right:before{content:"\e907"}.ftinvwl-heart2:before{content:"\e908"}.ftinvwl-heart-o:before{content:"\e909"}.ftinvwl-heart-mark-left:before{content:"\e90a"}.ftinvwl-heart-mail:before{content:"\e90b"}.ftinvwl-heart-tinv:before{content:"\e90c"}.ftinvwl-key:before{content:"\e90d"}.ftinvwl-lock:before{content:"\e90e"}.ftinvwl-hearts:before{content:"\e90f"}.ftinvwl-user:before{content:"\e910"}@-webkit-keyframes ftinvwl-pulse{0%{-webkit-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);transform:scale(1.1)}}@keyframes ftinvwl-pulse{0%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}50%{-webkit-transform:scale(.8);-ms-transform:scale(.8);transform:scale(.8)}100%{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}}.ftinvwl-pulse.ftinvwl-animated::before{-webkit-animation:ftinvwl-pulse 2s linear infinite;animation:ftinvwl-pulse 2s linear infinite}.tinv-wishlist form,.tinv-wishlist p:last-child,.tinv-wishlist table{margin-bottom:0}.tinv-wishlist *{box-sizing:border-box}.tinvwl-wishlist :after,.tinvwl-wishlist :before{box-sizing:border-box}.tinv-wishlist select{width:140px}.tinv-wishlist ul{list-style:none;margin:0;padding:0}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt:before,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt:before{margin-top:-10px;margin-left:-10px}.woocommerce.tinv-wishlist #respond input#submit.alt,.woocommerce.tinv-wishlist a.button.alt,.woocommerce.tinv-wishlist button.button.alt,.woocommerce.tinv-wishlist input.button.alt{text-align:center}.tinv-wishlist .button i,.tinv-wishlist .navigation-button a i{margin-right:6px}.tinv-wishlist input[type=button] i,.tinv-wishlist input[type=reset] i,.tinv-wishlist input[type=submit] i{margin-right:6px}.tinv-wishlist a.tinv-close-modal i{margin-right:0}a.wishlist_products_counter{text-decoration:none}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button:before,a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart:before,a.wishlist_products_counter.top_wishlist-heart:before,span.wishlist_products_counter.top_wishlist-heart:before{content:'\e909';display:inline-block;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;vertical-align:sub;margin-right:5px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus:before,a.sidr-class-wishlist_products_counter.sidr-class-top_wishlist-heart-plus:before,a.wishlist_products_counter.top_wishlist-heart-plus:before,span.wishlist_products_counter.top_wishlist-heart-plus:before{content:'\e906';display:inline-block;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:20px;vertical-align:sub;margin-right:5px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt{position:relative;width:36px;height:36px;vertical-align:sub}a.wishlist_products_counter.top_wishlist-heart-plus.no-txt,span.wishlist_products_counter.top_wishlist-heart-plus.no-txt{position:relative;width:36px;height:36px;vertical-align:sub}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt:before,.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt:before{position:absolute;top:50%;left:50%;margin-right:0}.tinv-wishlist .tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.no-txt,.tinv-wishlist .tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.no-txt{padding-left:1em;vertical-align:bottom}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before{content:'\e908'}.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart.tinvwl-product-in-list:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before,a.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before,span.wishlist_products_counter.top_wishlist-heart.wishlist-counter-with-products:before{content:'\e908'}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before,.woocommerce ul.products li.product a.tinvwl-button.tinvwl_add_to_wishlist_button.tinvwl-icon-heart-plus.tinvwl-product-in-list:before,.woocommerce-page ul.products li.product a.tinvwl-button.tinvwl-icon-heart-plus.tinvwl_add_to_wishlist_button.tinvwl-product-in-list:before,a.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before,span.wishlist_products_counter.top_wishlist-heart-plus.wishlist-counter-with-products:before{content:'\e907'}.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-white:before,a.wishlist_products_counter.top_wishlist-white:before,span.wishlist_products_counter.top_wishlist-white:before{color:#fff}.tinv-wishlist .tinvwl_add_to_wishlist_button.icon-black:before,a.wishlist_products_counter.top_wishlist-black:before,span.wishlist_products_counter.top_wishlist-black:before{color:#000}.tinv-wishlist.tinvwl-before-add-to-cart .tinvwl_add_to_wishlist_button{margin-bottom:15px}.tinv-wishlist.tinvwl-after-add-to-cart .tinvwl_add_to_wishlist_button{margin-top:15px}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt{padding:10px 11px;line-height:1}a.wishlist_products_counter.top_wishlist-custom.no-txt,span.wishlist_products_counter.top_wishlist-custom.no-txt{padding:10px 11px;line-height:1}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom img,a.wishlist_products_counter.top_wishlist-custom img,span.wishlist_products_counter.top_wishlist-custom img{display:inline-block!important;vertical-align:baseline;width:auto!important;max-width:16px;max-height:16px;margin-bottom:0;margin:0 6px 0 0!important}.tinv-wishlist .tinvwl_add_to_wishlist_button.tinvwl-icon-custom.no-txt img,a.wishlist_products_counter.top_wishlist-custom.no-txt img,span.wishlist_products_counter.top_wishlist-custom.no-txt img{margin-right:0!important}.single-product div.product form.cart .tinvwl-button.tinvwl_add_to_wishlist_button,div.product form.cart .tinvwl_add_to_wishlist_button{float:none}ul.products li.product .tinvwl_add_to_wishlist_button{margin-top:1em}.tinvwl_add_to_wishlist_button{display:inline-block;cursor:pointer}.tinv-wishlist.woocommerce .stock.in-stock:before{content:none}.tinv-wraper.tinv-wishlist{font-size:100%}.tinv-create-list li input[type=radio]{margin-right:10px}.tinv-create-list li+li{margin-top:15px}.tinv-create-list .tinvwl-input-group+ul{margin-top:25px}.tinv-search-list{margin-bottom:36px}.tinv-wishlist .tinv-header{margin-bottom:30px}.tinv-wishlist table{position:relative;table-layout:auto;margin-bottom:30px;z-index:2}.tinv-overlay{top:0;left:0;position:fixed;transition:opacity .3s ease,visibility .3s ease}.tinv-wishlist .tinv-modal{top:0;left:0;position:fixed;transition:opacity .3s ease,visibility .3s ease}.tinv-wishlist table.tinvwl-table-manage-list{margin-bottom:27px;width:100%}.tinv-wishlist table input[type=checkbox]{margin-right:0}.tinv-wishlist table td,.tinv-wishlist table th{padding:1em;vertical-align:middle}.tinv-wishlist .tinvwl-table-manage-list .product-cb{width:35px;text-align:center}.tinv-wishlist .tinvwl-table-manage-list .product-remove{width:46px;text-align:center}.tinv-wishlist .product-remove button{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;margin:0 auto;width:27px;height:27px;border-radius:50%;padding:0;box-shadow:none;border:none;background-color:#f7f7f7;color:#000;font-size:20px;padding-left:3px}.tinv-wishlist .product-thumbnail{min-width:100px;width:100px}.tinv-wishlist .product-thumbnail .wp-post-image{margin-bottom:0}.tinv-wishlist td.product-name a+.variation{margin-top:2px}.tinv-wishlist .product-stock i{margin-right:15px}.tinv-wishlist .product-stock p{display:table}.tinv-wishlist .product-stock span{display:table-cell;vertical-align:middle}.tinv-wishlist .product-action>.button>i,.tinv-wishlist .tinvwl-table-manage-list .product-action button[name=tinvwl-remove],.tinv-wishlist table thead th .tinvwl-mobile{display:none}.tinv-wishlist.woocommerce .product-quantity{width:80px;text-align:center}.tinv-wishlist.woocommerce table .quantity .qty{max-width:100%;width:62px;text-align:left}.tinv-wishlist .product-action{width:135px;text-align:center}.tinv-wishlist .product-action .button{width:100%}.tinv-wishlist .product-action .tinvwl_move_product_button{margin-top:5px}.tinv-wishlist .tinvwl-table-manage-list .product-action>button[name=tinvwl-remove]>i{margin-right:0}.tinv-wishlist .wishlist-cb{width:33px;text-align:center}.tinv-wishlist .wishlist-name .tinvwl-rename-input input{width:100%}.tinv-wishlist .wishlist-name .tinvwl-rename-button{float:right}.tinv-wishlist .wishlist-name .tinvwl-rename-button>i{margin-right:10px}.tinv-wishlist .wishlist-privacy,.tinv-wishlist table:not(.tinvwl-public) .wishlist-date{width:18%}.tinv-wishlist .wishlist-privacy select{width:100%}.tinv-wishlist .wishlist-name{width:45%}.tinv-wishlist .wishlist-action{width:120px;text-align:center}.tinv-wishlist .wishlist-action button[value=manage_remove]>i{display:none;margin-right:0}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list{display:inline-block;vertical-align:middle}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list>a.button{margin-right:0}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:-10px}.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){float:left;width:35%;margin-right:2%}.tinv-wishlist tfoot .tinvwl-to-right{float:left;width:63%;text-align:right}.tinv-wishlist tfoot .tinvwl-to-right>*{margin:10px 0 0;vertical-align:middle}.tinv-wishlist tfoot .tinvwl-to-right>*+*{margin-left:10px}.tinv-wishlist tfoot .tinvwl-to-left:empty+.tinvwl-to-right{width:100%}.tinv-wishlist .social-buttons+.tinv-wishlist-clear+.navigation-button{margin-top:16px}.tinv-wishlist .navigation-button{margin-top:-10px}.tinv-wishlist .navigation-button>li{float:left}.tinv-wishlist .navigation-button>li>.tinv-create-list>a,.tinv-wishlist .navigation-button>li>a{margin-right:30px;margin-top:10px;display:inline-block}.tinv-wishlist .navigation-button>li>.tinv-create-list>a.button,.tinv-wishlist .navigation-button>li>a.button{margin-right:10px}.tinv-wishlist .navigation-button>li:last-child>.tinv-create-list>a,.tinv-wishlist .navigation-button>li:last-child>a{margin-right:0}.tinv-wishlist .social-buttons{float:right}.tinv-wishlist .social-buttons>span,.tinv-wishlist .social-buttons>ul{display:inline-block;vertical-align:middle}.tinv-wishlist .social-buttons>span{margin-right:27px}.tinv-wishlist .social-buttons li{float:left;margin-right:5px;list-style:none}.tinv-wishlist .social-buttons li:last-child{margin-right:0}.tinv-wishlist .social-buttons li a{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;width:2em;height:2em;border-radius:50%;text-align:center;box-shadow:none;border:0;font-size:20px}.tinv-wishlist .social-buttons li a.white{color:#fff}.tinv-wishlist .social-buttons li a.dark{color:#000}.tinv-wishlist .social-buttons li a i{line-height:2em}.tinv-wishlist .navigation-button .tinv-create-list>a.tinvwl-no-icon>i,.tinv-wishlist .navigation-button li>a.tinvwl-no-icon>i{display:none}.tinv-wishlist .tinv-lists-nav{margin-bottom:35px}.tinv-wishlist .tinv-next{display:inline-block;float:left}.tinv-wishlist .tinv-prev{display:inline-block;float:left;margin-right:35px!important}.tinv-wishlist .tinv-prev i{margin-left:0;margin-right:18px}.tinv-wishlist .tinv-next i{margin-left:18px;margin-right:0}@media only screen and (max-width:1024px){.tinv-wishlist .tinvwl-table-manage-lists:not(.tinvwl-public){margin-top:0}.tinv-wishlist .tinvwl-table-manage-list .product-remove{display:none}.tinv-wishlist .tinvwl-table-manage-list .product-action button[name=tinvwl-remove]{display:inline-block;margin-top:5px}.tinv-wishlist .product-action{width:60px}}@media only screen and (max-width:1024px) and (min-width:641px){.tinv-wishlist .tinvwl-table-manage-list td.product-stock p{display:block;text-align:center}.tinv-wishlist .product-stock span{display:block}.tinv-wishlist .tinvwl-table-manage-list td.product-stock i{margin-right:0}.tinv-wishlist .tinvwl-table-manage-list td.product-stock .tinvwl-txt{display:none}.tinv-wishlist .product-thumbnail{max-width:76px;width:76px}.tinv-wishlist .product-action .button>i{display:inline-block;margin-right:0}.tinv-wishlist .product-action .button .tinvwl-txt{display:none}}@media only screen and (max-width:640px){.tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove,.tinv-wishlist table.tinvwl-table-manage-list thead th:not(.product-name){display:none}.tinv-wishlist table.tinvwl-table-manage-lists thead th:not(.wishlist-name){display:none}.tinv-wishlist thead th .tinvwl-full{display:none}.tinv-wishlist table.tinvwl-table-manage-list thead th.product-name,.tinv-wishlist table.tinvwl-table-manage-lists thead th.wishlist-name{display:block;width:100%;text-align:center}.tinv-wishlist table thead th .tinvwl-mobile{display:block}.tinv-wishlist table.tinvwl-table-manage-list tbody td{display:block;width:100%!important;text-align:center}.tinv-wishlist table.tinvwl-table-manage-lists tbody td,.tinv-wishlist table.tinvwl-table-manage-lists.tinvwl-public tbody td{display:block;width:100%!important;text-align:center}.tinv-wishlist table.tinvwl-table-manage-list tbody td:not(:last-child){border-bottom:0}.tinv-wishlist table.tinvwl-table-manage-lists tbody td:not(:last-child),.tinv-wishlist table.tinvwl-table-manage-lists.tinvwl-public tbody td:not(:last-child){border-bottom:0}.tinv-wishlist .product-stock p{margin:0 auto}.tinv-wishlist .product-thumbnail img{margin:0 auto;max-width:80px}.tinv-wishlist.woocommerce table .quantity .qty{text-align:center;width:100%}.tinv-wishlist .product-action .tinvwl_move_product_button{margin-top:10px}.tinv-wishlist table.tinvwl-table-manage-list tfoot td{display:block;width:100%}.tinv-wishlist table.tinvwl-table-manage-lists .wishlist-action button[value=manage_remove]{width:100%}.tinv-wishlist table.tinvwl-table-manage-lists .wishlist-name .tinvwl-rename-button{float:none}}@media only screen and (max-width:1024px){.tinv-wishlist .wishlist-name .tinvwl-rename-button>i,.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){margin-right:0}.tinv-wishlist .wishlist-name .tinvwl-rename-button span{display:none}.tinv-wishlist .wishlist-action{width:60px}.tinv-wishlist tfoot .tinvwl-to-left:not(:empty){float:none;width:auto}.tinv-wishlist tfoot .tinvwl-to-right{float:none;width:auto;text-align:left}}@media only screen and (max-width:1024px) and (min-width:641px){.tinv-wishlist .wishlist-action button[value=manage_remove] span{display:none}.tinv-wishlist .wishlist-action button[value=manage_remove]>i{display:inline-block}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:0}}@media only screen and (max-width:640px){.tinv-wishlist button[value=manage_apply] .tinvwl-mobile,.tinv-wishlist button[value=product_apply] .tinvwl-mobile{display:none}.tinv-wishlist tfoot .tinvwl-to-right .tinv-create-list{display:block}.tinv-wishlist .tinvwl-table-manage-list tfoot .tinvwl-to-right .button,.tinv-wishlist .tinvwl-table-manage-list tfoot .tinvwl-to-right button{width:100%;margin:10px 0 0}.tinv-wishlist .tinvwl-table-manage-lists tfoot .tinvwl-to-right .button,.tinv-wishlist .tinvwl-table-manage-lists tfoot .tinvwl-to-right button{width:100%;margin:10px 0 0}.tinv-wishlist tfoot .tinvwl-to-right>*{margin:10px 0 0}.tinv-wishlist tfoot .tinvwl-to-right .button:first-child,.tinv-wishlist tfoot .tinvwl-to-right button:first-child{margin-top:0!important}.tinv-wishlist tfoot .tinvwl-to-left+.tinvwl-to-right{margin-top:20px}}@media only screen and (max-width:1024px){.tinv-wishlist .social-buttons{float:none;width:auto;text-align:left;margin-top:20px}.tinv-wishlist .social-buttons+.tinv-wishlist-clear+.navigation-button{margin-top:30px}.tinv-wishlist .tinv-login form input[name=login]{min-width:auto}}@media only screen and (max-width:640px){.tinv-wishlist .social-buttons{text-align:center}.tinv-wishlist .navigation-button>li{width:20%;text-align:center}.tinv-wishlist .navigation-button.tinvwl-btns-count-1>li{width:100%}.tinv-wishlist .navigation-button.tinvwl-btns-count-2>li{width:50%}.tinv-wishlist .navigation-button.tinvwl-btns-count-3>li{width:33%}.tinv-wishlist .navigation-button.tinvwl-btns-count-4>li{width:25%}.tinv-wishlist .navigation-button>li+li{width:20%}.tinv-wishlist .navigation-button.tinvwl-btns-count-1>li+li{width:100%}.tinv-wishlist .navigation-button.tinvwl-btns-count-2>li+li{width:50%}.tinv-wishlist .navigation-button.tinvwl-btns-count-3>li+li{width:33%}.tinv-wishlist .navigation-button.tinvwl-btns-count-4>li+li{width:25%}.tinv-wishlist .navigation-button>li>.tinv-create-list>a,.tinv-wishlist .navigation-button>li>a{width:calc(100% - 10px);margin-right:0}.tinv-wishlist .navigation-button .tinv-create-list>a .tinvwl-txt,.tinv-wishlist .navigation-button li>a .tinvwl-txt{display:none}.tinv-wishlist .navigation-button .tinv-create-list>a>i,.tinv-wishlist .navigation-button li>a>i{display:inline-block!important;margin-right:0}.tinv-wishlist .social-buttons>span{display:block;margin-top:0;margin-right:0;margin-bottom:5px}}@media only screen and (max-width:667px){.tinv-wishlist.woocommerce .tinv-login form .form-row-first,.tinv-wishlist.woocommerce .tinv-login form .form-row-last{float:none;width:100%}.tinv-wishlist.woocommerce .tinv-login form .form-row-first{padding:0}.tinv-wishlist.woocommerce .tinv-login form .form-row-last{padding:0;margin-top:10px}.tinv-wishlist.woocommerce .tinv-login form .tinvwl-input-group-btn{display:block;padding:0;width:auto;margin-top:10px}}.tinv-overlay{width:100%;height:100%;visibility:hidden;opacity:0;background:#191919}.tinv-modal.tinv-modal-open .tinv-overlay{visibility:visible;opacity:.5}.admin-bar .tinv-wishlist .tinv-modal{padding-top:32px!important}.tinv-wishlist .tinv-modal{overflow-y:auto;overflow-x:hidden;width:0;height:0;z-index:9999;outline:0!important;-webkit-backface-visibility:hidden;visibility:hidden;opacity:0;text-align:left}.tinv-wishlist .tinv-modal .tinv-modal-inner{position:relative;margin:0 auto;background-color:#fff;max-width:360px;padding:40px}.tinv-wishlist .tinv-modal.tinv-modal-open{visibility:visible;opacity:1;width:100%;height:100%}.tinv-wishlist .tinv-modal .tinv-close-modal{display:inline-block;position:absolute;top:17px;right:14px;width:26px;height:26px;line-height:26px;font-size:12px;text-align:center;border-radius:50%;border-bottom:0;box-shadow:none!important;background-color:#ebe9eb}.tinv-wishlist .tinv-modal .icon_big_heart_check,.tinv-wishlist .tinv-modal .icon_big_times,.tinv-wishlist .tinv-modal img{display:block;margin:0 auto;margin-bottom:25px;opacity:1!important}.tinv-wishlist .tinv-modal ul{overflow:visible;list-style:disc;margin:10px 0 0 20px}.tinv-wishlist .tinv-modal li{list-style:disc!important}.tinv-wishlist .tinv-create-list .tinv-modal ul,.tinv-wishlist.tinv-create-list form ul{list-style:none!important;margin:25px 0 0}.tinv-wishlist .tinv-create-list .tinv-modal li,.tinv-wishlist.tinv-create-list form li{list-style:none!important}.tinv-wishlist .tinv-modal .already-in{margin-bottom:35px}.tinv-wishlist .tinv-modal .delete-notification{margin-bottom:25px}.tinv-wishlist .tinv-modal .already-in ul{overflow:visible;margin:12px 0 27px 17px}.tinv-wishlist .tinv-modal select{width:100%}.tinv-wishlist .tinv-modal button+.button,.tinv-wishlist .tinv-modal button+button{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal input+button{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal label+button,.tinv-wishlist .tinv-modal label+input{margin-top:12px;width:100%}.tinv-wishlist .tinv-modal select+button,.tinv-wishlist .tinv-modal select+input{margin-top:12px;width:100%}@media screen and (max-width:782px){.admin-bar .tinv-wishlist .tinv-modal{padding-top:46px!important}}@media screen and (max-width:600px){.admin-bar .tinv-wishlist .tinv-modal{padding-top:0!important}.tinv-wishlist .tinv-modal .tinv-close-modal{position:static;display:block;margin:0 auto 20px}}.tinv-wishlist .tinv-modal .already-in+label{display:block;margin-top:6px}.tinv-wishlist .tinv-modal label select{margin-top:8px}.tinv-wishlist .tinv-modal .delete-notification+button{width:100%}.tinv-wishlist .tinvwl_added_to_wishlist,.tinv-wishlist .tinvwl_created_wishlist{text-align:center}.tinv-wishlist .tinvwl_added_to_wishlist .tinv-txt{margin-bottom:25px}.tinv-wishlist .tinvwl_created_wishlist .tinv-txt{margin-bottom:25px}.tinv-wishlist .tinvwl_created_wishlist button{margin-top:0;margin-bottom:10px}.woocommerce .tinv-wishlist .tinvwl_added_to_wishlist.tinv-modal button.button{margin-top:0;margin-bottom:10px}.tinv-wishlist .tinv-modal .tinvwl-buttons-group{margin-top:20px}.tinv-wishlist .tinvwl-buttons-group button{width:100%}.tinv-wishlist .tinvwl-buttons-group button+button{margin-top:7px}.tinv-wishlist .tinvwl-buttons-group button i{position:relative}.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-heart-o,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-key,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-times{font-size:20px}.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-heart-o::before,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-key::before,.tinv-wishlist .tinvwl-buttons-group button i.ftinvwl-times::before{position:relative;top:3px}.tinv-wishlist .tinvwl-buttons-group+button{width:100%;margin-top:7px}.tinv-wishlist .tinv-modal h2{text-align:center;margin:0 0 35px}.tinv-wishlist .tinv-create-list .tinv-modal-inner{max-width:778px;padding:30px}.tinv-wishlist .tinvwl-has-error:not(.tinvwl-input-group),.tinv-wishlist .tinvwl-input-group.tinvwl-has-error .form-control{border:2px solid red}.tinv-wishlist .tinvwl-has-error+.tinvwl-error{padding:5px 0 0 5px;color:red}@media only screen and (max-width:640px){.navigation-button,.social-buttons,.tinv-lists-nav{margin-left:12px;margin-right:12px}}.tinvwl-tooltip{display:none}.tinvwl-input-group{position:relative;display:table;border-collapse:separate}.tinvwl-input-group .form-control{position:relative;z-index:1;float:left;height:38px;width:100%;margin-bottom:0}.tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:15px}.tinv-wishlist .tinvwl-to-left .tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:10px}.tinv-wishlist .tinv-search-form .tinvwl-input-group .form-control+.tinvwl-input-group-btn{padding-left:9px}.tinvwl-input-group .form-control,.tinvwl-input-group-addon,.tinvwl-input-group-btn{display:table-cell}.tinvwl-input-group-addon,.tinvwl-input-group-btn{width:1%;white-space:nowrap;vertical-align:top}@media only screen and (max-width:640px){.tinvwl-input-group{width:100%}}@media only screen and (max-width:667px){.tinvwl-input-group:not(.tinvwl-no-full){display:block}.tinvwl-input-group:not(.tinvwl-no-full) .form-control,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn{display:block}.tinvwl-input-group:not(.tinvwl-no-full) .form-control{float:none}.tinv-wishlist .tinv-search-form .tinvwl-input-group:not(.tinvwl-no-full) .form-control+.tinvwl-input-group-btn{padding-top:10px;padding-left:0}.tinvwl-input-group:not(.tinvwl-no-full) .form-control+.tinvwl-input-group-btn{padding-top:10px;padding-left:0}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon>button,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-addon>input{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn{width:100%}.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn>button,.tinvwl-input-group:not(.tinvwl-no-full) .tinvwl-input-group-btn>input{width:100%}}.tinv-table{display:table;width:100%;height:100%}.tinv-cell{display:table-cell;vertical-align:middle}.tinv-wishlist-clear:after,.tinv-wishlist-clear:before{content:" ";display:table}.tinv-wishlist .tinv-wishlist-clear{visibility:visible;width:auto;height:auto}.tinv-wishlist-clear:after{clear:both}.icon_big_heart_check{display:inline-block;width:46px;height:46px;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:60px}.icon_big_times{display:inline-block;width:46px;height:46px;font-family:tinvwl-webfont!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:60px}.icon_big_times::before{content:"\e904";top:-7px;left:-7px;position:relative}.icon_big_heart_check::before{content:"\e90a";top:-7px;left:-7px;position:relative}.tinvwl_add_to_wishlist_button.disabled-add-wishlist,.tinvwl_add_to_wishlist_button.tinvwl-button.disabled-add-wishlist{opacity:.5!important;cursor:not-allowed}.empty-name-wishlist{border-color:red!important}.tinvwl_remove_from_wishlist-text{display:none}.tinvwl-product-in-list.tinvwl-product-make-remove .tinvwl_remove_from_wishlist-text{display:inline}.tinvwl-product-in-list.tinvwl-product-make-remove .tinvwl_add_to_wishlist-text{display:none}@media only screen and (max-width:1024px){.tinv-wishlist .tinvwl-table-manage-list .product-remove{display:table-cell}}@media only screen and (max-width:640px){.tinv-wishlist table.tinvwl-table-manage-list tbody td.product-remove{display:block}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/css/theme.min.css
CHANGED
@@ -1,14 +1,4 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
-
* Copyright (c) 2018;
|
4 |
-
* Licensed GPLv2+ */
|
5 |
-
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
* Copyright (c) 2018;
|
14 |
* Licensed GPLv2+ */
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
assets/img/upgrade_to_pro.jpg
CHANGED
Binary file
|
assets/js/admin.min.js
CHANGED
@@ -1,14 +1,4 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
-
* Copyright (c) 2018;
|
4 |
-
* Licensed GPLv2+ */
|
5 |
-
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
* Copyright (c) 2018;
|
14 |
* Licensed GPLv2+ */
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
assets/js/public.js
CHANGED
@@ -208,7 +208,8 @@
|
|
208 |
product_type: $(this).attr('data-tinv-wl-producttype'),
|
209 |
product_id: $(this).attr('data-tinv-wl-product') || 0,
|
210 |
product_variation: $(this).attr('data-tinv-wl-productvariation') || 0,
|
211 |
-
product_action: $(this).attr('data-tinv-wl-action') || 'addto'
|
|
|
212 |
},
|
213 |
a = this;
|
214 |
$(a).closest('form.cart[method=post], .tinvwl-loop-button-wrapper').find('input, select, textarea').each(function () {
|
208 |
product_type: $(this).attr('data-tinv-wl-producttype'),
|
209 |
product_id: $(this).attr('data-tinv-wl-product') || 0,
|
210 |
product_variation: $(this).attr('data-tinv-wl-productvariation') || 0,
|
211 |
+
product_action: $(this).attr('data-tinv-wl-action') || 'addto',
|
212 |
+
redirect: window.location.href
|
213 |
},
|
214 |
a = this;
|
215 |
$(a).closest('form.cart[method=post], .tinvwl-loop-button-wrapper').find('input, select, textarea').each(function () {
|
assets/js/public.min.js
CHANGED
@@ -1,16 +1,6 @@
|
|
1 |
-
/*! WooCommerce Wishlist Plugin - version 1.
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
5 |
|
6 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
7 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
8 |
-
* Copyright (c) 2018;
|
9 |
-
* Licensed GPLv2+ */
|
10 |
-
|
11 |
-
/*! WooCommerce Wishlist Plugin - version 1.8.17
|
12 |
-
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
13 |
-
* Copyright (c) 2018;
|
14 |
-
* Licensed GPLv2+ */
|
15 |
-
|
16 |
-
function update_cart_hash(){jQuery(document.body).on("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist",function(){if("undefined"==typeof wc_cart_fragments_params)return!1;cart_hash_key=wc_cart_fragments_params.cart_hash_key,localStorage.setItem(cart_hash_key,localStorage.getItem(cart_hash_key)+(new Date).getTime()),sessionStorage.setItem(cart_hash_key,sessionStorage.getItem(cart_hash_key)+(new Date).getTime()),jQuery(document.body).off("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist")})}!function(r){r.fn.tinvwl_to_wishlist=function(t){var i={api_url:window.location.href,text_create:window.tinvwl_add_to_wishlist.text_create,text_already_in:window.tinvwl_add_to_wishlist.text_already_in,class:{dialogbox:".tinvwl_add_to_select_wishlist",select:".tinvwl_wishlist",newtitle:".tinvwl_new_input",dialogbutton:".tinvwl_button_add"},redirectTimer:null,onPrepareList:function(){},onGetDialogBox:function(){},onPrepareDialogBox:function(){r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r(this).appendTo("body > .tinv-wishlist")},onCreateWishList:function(t){r(this).append(r("<option>").html(t.title).val(t.ID).toggleClass("tinv_in_wishlist",t.in))},onSelectWishList:function(){},onDialogShow:function(t){r(t).addClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onDialogHide:function(t){r(t).removeClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onInited:function(){},onClick:function(){if(r(this).is(".disabled-add-wishlist"))return!1;r(this).is(".ftinvwl-animated")&&r(this).addClass("ftinvwl-pulse"),this.tinvwl_dialog?this.tinvwl_dialog.show_list.call(this):a.onActionProduct.call(this),update_cart_hash()},onPrepareDataAction:function(){},filterProductAlreadyIn:function(t){t=t||[];var n={};return r("form.cart[method=post], .woocommerce-variation-add-to-cart").find("input, select").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val();"checkbox"===i||"radio"===i?r(this).is(":checked")&&(n["form"+t]=e):n["form"+t]=e}),n=n.formvariation_id,t.filter(function(t){if("object"==typeof t.in&&"string"==typeof n){var i=parseInt(n);return 0<=t.in.indexOf(i)}return t.in})},onMultiProductAlreadyIn:function(t){t=t||[];t=a.onPrepareList.call(t)||t,t=a.filterProductAlreadyIn.call(this,t)||t,r(this).parent().parent().find(".already-in").remove();var e="";switch(t.length){case 0:break;default:e=r("<ul>");r.each(t,function(t,i){e.append(r("<li>").html(r("<a>").html(i.title).attr({href:i.url})).val(i.ID))})}e.length&&r(this).closest(".tinv-modal-inner").find("img").after(r("<div>").addClass("already-in").html(a.text_already_in+" ").append(e))},onAction:{redirect:function(t){a.redirectTimer&&clearTimeout(a.redirectTimer),a.redirectTimer=window.setTimeout(function(){window.location.href=t},4e3)},force_redirect:function(t){window.location.href=t},wishlists:function(t){r(this).attr("data-tinv-wl-list",t)},msg:function(t){if(!t)return!1;var i=r(t).eq(0);r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r("body > .tinv-wishlist").append(i),i.on("click",".tinv-close-modal, .tinvwl_button_close, .tinv-overlay",function(t){t.preventDefault(),i.remove(),a.redirectTimer&&clearTimeout(a.redirectTimer)})},status:function(t){t&&r(this).addClass("tinvwl-product-in-list")},removed:function(t){t&&r(this).removeClass("tinvwl-product-in-list").removeClass("tinvwl-product-make-remove").attr("data-tinv-wl-action","addto")},make_remove:function(t){r(this).toggleClass("tinvwl-product-make-remove",t).attr("data-tinv-wl-action",t?"remove":"addto")},fragments:function(t){if("undefined"==typeof wc_cart_fragments_params)return r.each(t,function(t,i){r(t).replaceWith(i)}),!1;var i;try{i="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(t){i=!1}if(i)try{var e=r.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),n=wc_cart_fragments_params.ajax_url.toString()+"-wc_cart_hash",a=sessionStorage.getItem(n),o=Cookies.get("woocommerce_cart_hash"),l=sessionStorage.getItem("wc_cart_created");if(null!=a&&""!==a||(a=""),null!=o&&""!==o||(o=""),a&&(null==l||""===l))throw"No cart_created";if(r.each(t,function(t,i){e[t]=i}),localStorage.setItem(n,localStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(n,sessionStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(e)),!e||!e["div.widget_shopping_cart_content"]||a!==o)throw"No fragment";r.each(e,function(t,i){r(t).replaceWith(i)}),r(document.body).trigger("wc_fragments_loaded")}catch(t){r(document.body).trigger("wc_fragment_refresh")}}},onActionProduct:function(t,i){var s={form:{},tinv_wishlist_id:t||"",tinv_wishlist_name:i||"",product_type:r(this).attr("data-tinv-wl-producttype"),product_id:r(this).attr("data-tinv-wl-product")||0,product_variation:r(this).attr("data-tinv-wl-productvariation")||0,product_action:r(this).attr("data-tinv-wl-action")||"addto"},e=this;r(e).closest("form.cart[method=post], .tinvwl-loop-button-wrapper").find("input, select, textarea").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val(),n=10,a=function(t,i){if("object"==typeof i){for(var e in void 0===t&&(t={}),i)if(""===e){var n=-1;for(n in t)n=n;t[n=parseInt(n)+1]=a(t[e],i[e])}else t[e]=a(t[e],i[e]);return t}return i};if("button"!==i&&void 0!==t&&"attribute_"!=t.substr(0,10)){for(;/^(.+)\[([^\[\]]*?)\]$/.test(t)&&0<n;){var o=t.match(/^(.+)\[([^\[\]]*?)\]$/);if(3===o.length){var l={};l[o[2]]=e,e=l}t=o[1],n--}"checkbox"===i||"radio"===i?r(this).is(":checked")&&(e.length||"object"==typeof e||(e=!0),s.form[t]=a(s.form[t],e)):s.form[t]=a(s.form[t],e)}}),s=a.onPrepareDataAction.call(e,s)||s,r.post(a.api_url,s,function(t){if(a.onDialogHide.call(e.tinvwl_dialog,e),"object"==typeof t)for(var i in t)"function"==typeof a.onAction[i]&&a.onAction[i].call(e,t[i]);else"function"==typeof a.onAction.msg&&a.onAction.msg.call(e,t)})}},a=r.extend(!0,{},i,t);return r(this).each(function(){if(!r(this).attr("data-tinv-wl-list"))return!1;if(a.dialogbox&&a.dialogbox.length&&(this.tinvwl_dialog=a.dialogbox),this.tinvwl_dialog||(this.tinvwl_dialog=a.onGetDialogBox.call(this)),!this.tinvwl_dialog){var t=r(this).nextAll(a.class.dialogbox).eq(0);t.length&&(this.tinvwl_dialog=t)}if(this.tinvwl_dialog){a.onPrepareDialogBox.call(this.tinvwl_dialog),"function"!=typeof this.tinvwl_dialog.update_list&&(this.tinvwl_dialog.update_list=function(t){var e=r(this).find(a.class.select).eq(0);r(this).find(a.class.newtitle).hide().val(""),e.html(""),r.each(t,function(t,i){a.onCreateWishList.call(e,i)}),a.text_create&&a.onCreateWishList.call(e,{ID:"",title:a.text_create,in:!1}),a.onMultiProductAlreadyIn.call(e,t),a.onSelectWishList.call(e,t),r(this).find(a.class.newtitle).toggle(""===e.val())}),"function"!=typeof this.tinvwl_dialog.show_list&&(this.tinvwl_dialog.show_list=function(){var t=r.parseJSON(r(this).attr("data-tinv-wl-list"))||[];t.length?(t=a.onPrepareList.call(t)||t,this.tinvwl_dialog.update_list(t),a.onDialogShow.call(this.tinvwl_dialog,this)):a.onActionProduct.call(this)});var n=this;r(this.tinvwl_dialog).find(a.class.dialogbutton).off("click").on("click",function(){var t,i=r(n.tinvwl_dialog).find(a.class.select),e=r(n.tinvwl_dialog).find(a.class.newtitle);i.val()||e.val()?a.onActionProduct.call(n,i.val(),e.val()):((t=e.is(":visible")?e:i).addClass("empty-name-wishlist"),window.setTimeout(function(){t.removeClass("empty-name-wishlist")},1e3))})}r(this).off("click").on("click",a.onClick),a.onInited.call(this,a)})},r(document).ready(function(){r("body").on("click",".tinvwl_add_to_wishlist_button",function(t){if(r(this).is(".disabled-add-wishlist"))return t.preventDefault(),void window.alert(tinvwl_add_to_wishlist.i18n_make_a_selection_text);r(this).is(".inited-add-wishlist")||r(this).tinvwl_to_wishlist({onInited:function(t){r(this).addClass("inited-add-wishlist"),t.onClick.call(this)}})}),r(".variations_form").each(function(){var t=r(this),s=t.find(".tinvwl_add_to_wishlist_button");s.length&&t.on("hide_variation",function(t){t.preventDefault(),s.addClass("disabled-add-wishlist")}).on("show_variation",function(t,i,e){var n=JSON.parse(s.attr("data-tinv-wl-list")),a=!1,o="1"==window.tinvwl_add_to_wishlist.simple_flow;for(var l in n)n[l].hasOwnProperty("in")&&Array.isArray(n[l].in)&&-1<(n[l].in||[]).indexOf(i.variation_id)&&(a=!0);s.toggleClass("tinvwl-product-in-list",a).toggleClass("tinvwl-product-make-remove",a&&o).attr("data-tinv-wl-action",a&&o?"remove":"addto"),t.preventDefault(),s.removeClass("disabled-add-wishlist")})})})}(jQuery),function(n){n.fn.tinvwl_break_submit=function(t){var i={selector:"input, select, textarea",ifempty:!0,invert:!1,validate:function(){return n(this).val()},rule:function(){var t=n(this).parents("form").eq(0).find(e.selector),i=e.invert;return 0===t.length?e.ifempty:(t.each(function(){i&&!e.invert||!i&&e.invert||(i=Boolean(e.validate.call(n(this))))}),i)}},e=n.extend(!0,{},i,t);return n(this).each(function(){n(this).on("click",function(t){e.rule.call(n(this))||(alert(window.tinvwl_add_to_wishlist.tinvwl_break_submit),t.preventDefault())})})},n(document).ready(function(){n(".tinvwl-break-input").tinvwl_break_submit({selector:".tinvwl-break-input-filed"}),n(".tinvwl-break-checkbox").tinvwl_break_submit({selector:"table td input[type=checkbox]",validate:function(){return n(this).is(":checked")}}),n(".global-cb").on("click",function(){n(this).closest("table").eq(0).find(".product-cb input[type=checkbox], .wishlist-cb input[type=checkbox]").prop("checked",n(this).is(":checked"))})})}(jQuery),function(e){e(document).ready(function(){e("#tinvwl_manage_actions, #tinvwl_product_actions").addClass("form-control").parent().wrapInner('<div class="tinvwl-input-group tinvwl-no-full">').find("button").wrap('<span class="tinvwl-input-group-btn">'),e(".tinv-lists-nav").each(function(){e.trim(e(this).html()).length||e(this).remove()}),e("body").on("click",".social-buttons .social[title!=email]",function(t){var i=window.open(e(this).attr("href"),e(this).attr("title"),"width=420,height=320,resizable=yes,scrollbars=yes,status=yes");i&&(i.focus(),t.preventDefault())}),e("body").on("click",".tinv-wishlist .tinv-overlay, .tinv-wishlist .tinv-close-modal, .tinv-wishlist .tinvwl_button_close",function(t){t.preventDefault(),e(this).parents(".tinv-modal:first").removeClass("tinv-modal-open")}),e("body").on("click",".tinv-wishlist .tinvwl-btn-onclick",function(t){e(this).data("url")&&(t.preventDefault(),window.location=e(this).data("url"))});var t=e(".tinv-wishlist .navigation-button");t.length&&t.each(function(){var t=e(this).find("> li");t.length<5&&t.parent().addClass("tinvwl-btns-count-"+t.length)}),e(".tinv-login .showlogin").unbind("click").on("click",function(t){t.preventDefault(),e(this).closest(".tinv-login").find(".login").toggle()}),e(".tinv-wishlist table.tinvwl-table-manage-list tfoot td").each(function(){e(this).toggle(!!e(this).children().not(".look_in").length||!!e(this).children(".look_in").children().length)})}),e(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){e(".wishlist_products_counter").toggleClass("wishlist-counter-with-products","0"!=e(".wishlist_products_counter_number").html())}),update_cart_hash()}(jQuery);
|
1 |
+
/*! WooCommerce Wishlist Plugin - version 1.9.0
|
2 |
* https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
3 |
* Copyright (c) 2018;
|
4 |
* Licensed GPLv2+ */
|
5 |
|
6 |
+
function update_cart_hash(){jQuery(document.body).on("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist",function(){if("undefined"==typeof wc_cart_fragments_params)return!1;cart_hash_key=wc_cart_fragments_params.cart_hash_key,localStorage.setItem(cart_hash_key,localStorage.getItem(cart_hash_key)+(new Date).getTime()),sessionStorage.setItem(cart_hash_key,sessionStorage.getItem(cart_hash_key)+(new Date).getTime()),jQuery(document.body).off("wc_fragments_loaded.wishlist wc_fragments_refreshed.wishlist")})}!function(r){r.fn.tinvwl_to_wishlist=function(t){var i={api_url:window.location.href,text_create:window.tinvwl_add_to_wishlist.text_create,text_already_in:window.tinvwl_add_to_wishlist.text_already_in,class:{dialogbox:".tinvwl_add_to_select_wishlist",select:".tinvwl_wishlist",newtitle:".tinvwl_new_input",dialogbutton:".tinvwl_button_add"},redirectTimer:null,onPrepareList:function(){},onGetDialogBox:function(){},onPrepareDialogBox:function(){r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r(this).appendTo("body > .tinv-wishlist")},onCreateWishList:function(t){r(this).append(r("<option>").html(t.title).val(t.ID).toggleClass("tinv_in_wishlist",t.in))},onSelectWishList:function(){},onDialogShow:function(t){r(t).addClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onDialogHide:function(t){r(t).removeClass("tinv-modal-open"),r(t).removeClass("ftinvwl-pulse")},onInited:function(){},onClick:function(){if(r(this).is(".disabled-add-wishlist"))return!1;r(this).is(".ftinvwl-animated")&&r(this).addClass("ftinvwl-pulse"),this.tinvwl_dialog?this.tinvwl_dialog.show_list.call(this):a.onActionProduct.call(this),update_cart_hash()},onPrepareDataAction:function(){},filterProductAlreadyIn:function(t){t=t||[];var n={};return r("form.cart[method=post], .woocommerce-variation-add-to-cart").find("input, select").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val();"checkbox"===i||"radio"===i?r(this).is(":checked")&&(n["form"+t]=e):n["form"+t]=e}),n=n.formvariation_id,t.filter(function(t){if("object"!=typeof t.in||"string"!=typeof n)return t.in;var i=parseInt(n);return 0<=t.in.indexOf(i)})},onMultiProductAlreadyIn:function(t){t=t||[];t=a.onPrepareList.call(t)||t,t=a.filterProductAlreadyIn.call(this,t)||t,r(this).parent().parent().find(".already-in").remove();var e="";switch(t.length){case 0:break;default:e=r("<ul>");r.each(t,function(t,i){e.append(r("<li>").html(r("<a>").html(i.title).attr({href:i.url})).val(i.ID))})}e.length&&r(this).closest(".tinv-modal-inner").find("img").after(r("<div>").addClass("already-in").html(a.text_already_in+" ").append(e))},onAction:{redirect:function(t){a.redirectTimer&&clearTimeout(a.redirectTimer),a.redirectTimer=window.setTimeout(function(){window.location.href=t},4e3)},force_redirect:function(t){window.location.href=t},wishlists:function(t){r(this).attr("data-tinv-wl-list",t)},msg:function(t){if(!t)return!1;var i=r(t).eq(0);r("body > .tinv-wishlist").length||r("body").append(r("<div>").addClass("tinv-wishlist")),r("body > .tinv-wishlist").append(i),i.on("click",".tinv-close-modal, .tinvwl_button_close, .tinv-overlay",function(t){t.preventDefault(),i.remove(),a.redirectTimer&&clearTimeout(a.redirectTimer)})},status:function(t){t&&r(this).addClass("tinvwl-product-in-list")},removed:function(t){t&&r(this).removeClass("tinvwl-product-in-list").removeClass("tinvwl-product-make-remove").attr("data-tinv-wl-action","addto")},make_remove:function(t){r(this).toggleClass("tinvwl-product-make-remove",t).attr("data-tinv-wl-action",t?"remove":"addto")},fragments:function(t){if("undefined"==typeof wc_cart_fragments_params)return r.each(t,function(t,i){r(t).replaceWith(i)}),!1;var i;try{i="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(t){i=!1}if(i)try{var e=r.parseJSON(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),n=wc_cart_fragments_params.ajax_url.toString()+"-wc_cart_hash",a=sessionStorage.getItem(n),o=Cookies.get("woocommerce_cart_hash"),l=sessionStorage.getItem("wc_cart_created");if(null!=a&&""!==a||(a=""),null!=o&&""!==o||(o=""),a&&(null==l||""===l))throw"No cart_created";if(r.each(t,function(t,i){e[t]=i}),localStorage.setItem(n,localStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(n,sessionStorage.getItem(n)+(new Date).getTime()),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(e)),!e||!e["div.widget_shopping_cart_content"]||a!==o)throw"No fragment";r.each(e,function(t,i){r(t).replaceWith(i)}),r(document.body).trigger("wc_fragments_loaded")}catch(t){r(document.body).trigger("wc_fragment_refresh")}}},onActionProduct:function(t,i){var s={form:{},tinv_wishlist_id:t||"",tinv_wishlist_name:i||"",product_type:r(this).attr("data-tinv-wl-producttype"),product_id:r(this).attr("data-tinv-wl-product")||0,product_variation:r(this).attr("data-tinv-wl-productvariation")||0,product_action:r(this).attr("data-tinv-wl-action")||"addto",redirect:window.location.href},e=this;r(e).closest("form.cart[method=post], .tinvwl-loop-button-wrapper").find("input, select, textarea").each(function(){var t=r(this).attr("name"),i=r(this).attr("type"),e=r(this).val(),n=10,a=function(t,i){if("object"!=typeof i)return i;for(var e in void 0===t&&(t={}),i)if(""===e){var n=-1;for(n in t)n=n;t[n=parseInt(n)+1]=a(t[e],i[e])}else t[e]=a(t[e],i[e]);return t};if("button"!==i&&void 0!==t&&"attribute_"!=t.substr(0,10)){for(;/^(.+)\[([^\[\]]*?)\]$/.test(t)&&0<n;){var o=t.match(/^(.+)\[([^\[\]]*?)\]$/);if(3===o.length){var l={};l[o[2]]=e,e=l}t=o[1],n--}"checkbox"===i||"radio"===i?r(this).is(":checked")&&(e.length||"object"==typeof e||(e=!0),s.form[t]=a(s.form[t],e)):s.form[t]=a(s.form[t],e)}}),s=a.onPrepareDataAction.call(e,s)||s,r.post(a.api_url,s,function(t){if(a.onDialogHide.call(e.tinvwl_dialog,e),"object"==typeof t)for(var i in t)"function"==typeof a.onAction[i]&&a.onAction[i].call(e,t[i]);else"function"==typeof a.onAction.msg&&a.onAction.msg.call(e,t)})}},a=r.extend(!0,{},i,t);return r(this).each(function(){if(!r(this).attr("data-tinv-wl-list"))return!1;if(a.dialogbox&&a.dialogbox.length&&(this.tinvwl_dialog=a.dialogbox),this.tinvwl_dialog||(this.tinvwl_dialog=a.onGetDialogBox.call(this)),!this.tinvwl_dialog){var t=r(this).nextAll(a.class.dialogbox).eq(0);t.length&&(this.tinvwl_dialog=t)}if(this.tinvwl_dialog){a.onPrepareDialogBox.call(this.tinvwl_dialog),"function"!=typeof this.tinvwl_dialog.update_list&&(this.tinvwl_dialog.update_list=function(t){var e=r(this).find(a.class.select).eq(0);r(this).find(a.class.newtitle).hide().val(""),e.html(""),r.each(t,function(t,i){a.onCreateWishList.call(e,i)}),a.text_create&&a.onCreateWishList.call(e,{ID:"",title:a.text_create,in:!1}),a.onMultiProductAlreadyIn.call(e,t),a.onSelectWishList.call(e,t),r(this).find(a.class.newtitle).toggle(""===e.val())}),"function"!=typeof this.tinvwl_dialog.show_list&&(this.tinvwl_dialog.show_list=function(){var t=r.parseJSON(r(this).attr("data-tinv-wl-list"))||[];t.length?(t=a.onPrepareList.call(t)||t,this.tinvwl_dialog.update_list(t),a.onDialogShow.call(this.tinvwl_dialog,this)):a.onActionProduct.call(this)});var n=this;r(this.tinvwl_dialog).find(a.class.dialogbutton).off("click").on("click",function(){var t,i=r(n.tinvwl_dialog).find(a.class.select),e=r(n.tinvwl_dialog).find(a.class.newtitle);i.val()||e.val()?a.onActionProduct.call(n,i.val(),e.val()):((t=e.is(":visible")?e:i).addClass("empty-name-wishlist"),window.setTimeout(function(){t.removeClass("empty-name-wishlist")},1e3))})}r(this).off("click").on("click",a.onClick),a.onInited.call(this,a)})},r(document).ready(function(){r("body").on("click",".tinvwl_add_to_wishlist_button",function(t){if(r(this).is(".disabled-add-wishlist"))return t.preventDefault(),void window.alert(tinvwl_add_to_wishlist.i18n_make_a_selection_text);r(this).is(".inited-add-wishlist")||r(this).tinvwl_to_wishlist({onInited:function(t){r(this).addClass("inited-add-wishlist"),t.onClick.call(this)}})}),r(".variations_form").each(function(){var t=r(this),s=t.find(".tinvwl_add_to_wishlist_button");s.length&&t.on("hide_variation",function(t){t.preventDefault(),s.addClass("disabled-add-wishlist")}).on("show_variation",function(t,i,e){var n=JSON.parse(s.attr("data-tinv-wl-list")),a=!1,o="1"==window.tinvwl_add_to_wishlist.simple_flow;for(var l in n)n[l].hasOwnProperty("in")&&Array.isArray(n[l].in)&&-1<(n[l].in||[]).indexOf(i.variation_id)&&(a=!0);s.toggleClass("tinvwl-product-in-list",a).toggleClass("tinvwl-product-make-remove",a&&o).attr("data-tinv-wl-action",a&&o?"remove":"addto"),t.preventDefault(),s.removeClass("disabled-add-wishlist")})})})}(jQuery),function(n){n.fn.tinvwl_break_submit=function(t){var i={selector:"input, select, textarea",ifempty:!0,invert:!1,validate:function(){return n(this).val()},rule:function(){var t=n(this).parents("form").eq(0).find(e.selector),i=e.invert;return 0===t.length?e.ifempty:(t.each(function(){i&&!e.invert||!i&&e.invert||(i=Boolean(e.validate.call(n(this))))}),i)}},e=n.extend(!0,{},i,t);return n(this).each(function(){n(this).on("click",function(t){e.rule.call(n(this))||(alert(window.tinvwl_add_to_wishlist.tinvwl_break_submit),t.preventDefault())})})},n(document).ready(function(){n(".tinvwl-break-input").tinvwl_break_submit({selector:".tinvwl-break-input-filed"}),n(".tinvwl-break-checkbox").tinvwl_break_submit({selector:"table td input[type=checkbox]",validate:function(){return n(this).is(":checked")}}),n(".global-cb").on("click",function(){n(this).closest("table").eq(0).find(".product-cb input[type=checkbox], .wishlist-cb input[type=checkbox]").prop("checked",n(this).is(":checked"))})})}(jQuery),function(e){e(document).ready(function(){e("#tinvwl_manage_actions, #tinvwl_product_actions").addClass("form-control").parent().wrapInner('<div class="tinvwl-input-group tinvwl-no-full">').find("button").wrap('<span class="tinvwl-input-group-btn">'),e(".tinv-lists-nav").each(function(){e.trim(e(this).html()).length||e(this).remove()}),e("body").on("click",".social-buttons .social[title!=email]",function(t){var i=window.open(e(this).attr("href"),e(this).attr("title"),"width=420,height=320,resizable=yes,scrollbars=yes,status=yes");i&&(i.focus(),t.preventDefault())}),e("body").on("click",".tinv-wishlist .tinv-overlay, .tinv-wishlist .tinv-close-modal, .tinv-wishlist .tinvwl_button_close",function(t){t.preventDefault(),e(this).parents(".tinv-modal:first").removeClass("tinv-modal-open")}),e("body").on("click",".tinv-wishlist .tinvwl-btn-onclick",function(t){e(this).data("url")&&(t.preventDefault(),window.location=e(this).data("url"))});var t=e(".tinv-wishlist .navigation-button");t.length&&t.each(function(){var t=e(this).find("> li");t.length<5&&t.parent().addClass("tinvwl-btns-count-"+t.length)}),e(".tinv-login .showlogin").unbind("click").on("click",function(t){t.preventDefault(),e(this).closest(".tinv-login").find(".login").toggle()}),e(".tinv-wishlist table.tinvwl-table-manage-list tfoot td").each(function(){e(this).toggle(!!e(this).children().not(".look_in").length||!!e(this).children(".look_in").children().length)})}),e(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){e(".wishlist_products_counter").toggleClass("wishlist-counter-with-products","0"!=e(".wishlist_products_counter_number").html())}),update_cart_hash()}(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/form.helper.php
CHANGED
@@ -50,22 +50,23 @@ class TInvWL_Form {
|
|
50 |
* Call method for returm or output
|
51 |
*
|
52 |
* @param string $name Name function.
|
53 |
-
* @param array
|
|
|
54 |
* @return mixed
|
55 |
*/
|
56 |
public function __call( $name, $arg ) {
|
57 |
$_arg = array(
|
58 |
-
0
|
59 |
-
1
|
60 |
-
2
|
61 |
-
3
|
62 |
);
|
63 |
foreach ( $_arg as $key => $value ) {
|
64 |
$_arg[ $key ] = array_shift( $arg );
|
65 |
}
|
66 |
-
$arg
|
67 |
-
$glue
|
68 |
-
$method
|
69 |
if ( false === strpos( $name, $glue ) ) {
|
70 |
if ( method_exists( __CLASS__, $method ) ) {
|
71 |
$data = call_user_func( array( __CLASS__, $method ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
@@ -76,6 +77,7 @@ class TInvWL_Form {
|
|
76 |
return call_user_func( array( __CLASS__, $name ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
77 |
}
|
78 |
}
|
|
|
79 |
return '';
|
80 |
}
|
81 |
|
@@ -83,7 +85,8 @@ class TInvWL_Form {
|
|
83 |
* Call method for returm or output
|
84 |
*
|
85 |
* @param string $name Name function.
|
86 |
-
* @param array
|
|
|
87 |
* @return mixed
|
88 |
*/
|
89 |
public static function __callStatic( $name, $arg ) {
|
@@ -91,17 +94,17 @@ class TInvWL_Form {
|
|
91 |
self::$_name = TINVWL_PREFIX;
|
92 |
}
|
93 |
$_arg = array(
|
94 |
-
0
|
95 |
-
1
|
96 |
-
2
|
97 |
-
3
|
98 |
);
|
99 |
foreach ( $_arg as $key => $value ) {
|
100 |
$_arg[ $key ] = array_shift( $arg );
|
101 |
}
|
102 |
-
$arg
|
103 |
-
$glue
|
104 |
-
$method
|
105 |
if ( false === strpos( $name, $glue ) ) {
|
106 |
if ( method_exists( __CLASS__, $method ) ) {
|
107 |
$data = call_user_func( array( __CLASS__, $method ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
@@ -112,15 +115,17 @@ class TInvWL_Form {
|
|
112 |
return call_user_func( array( __CLASS__, $name ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
113 |
}
|
114 |
}
|
|
|
115 |
return '';
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
* Create input html element
|
120 |
*
|
121 |
-
* @param mixed
|
122 |
* @param string $value Value.
|
123 |
-
* @param mixed
|
|
|
124 |
* @return string
|
125 |
*/
|
126 |
public static function _text( $data, $value = '', $extra = '' ) {
|
@@ -132,22 +137,24 @@ class TInvWL_Form {
|
|
132 |
}
|
133 |
}
|
134 |
if ( $load ) {
|
135 |
-
$value = self::getvalue( (is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
136 |
}
|
137 |
$defaults = array(
|
138 |
-
'type'
|
139 |
-
'name'
|
140 |
-
'value'
|
141 |
);
|
|
|
142 |
return sprintf( '<input %s%s />', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
143 |
}
|
144 |
|
145 |
/**
|
146 |
* Create input html element with type number
|
147 |
*
|
148 |
-
* @param mixed
|
149 |
* @param integer|float $value Value.
|
150 |
-
* @param mixed
|
|
|
151 |
* @return string
|
152 |
*/
|
153 |
public static function _number( $data, $value = 0, $extra = '' ) {
|
@@ -161,6 +168,11 @@ class TInvWL_Form {
|
|
161 |
} else {
|
162 |
$extra .= sprintf( ' class="%s" ', $class );
|
163 |
}
|
|
|
|
|
|
|
|
|
|
|
164 |
return self::_text( $data, $value, $extra );
|
165 |
}
|
166 |
|
@@ -168,14 +180,16 @@ class TInvWL_Form {
|
|
168 |
* Create color picker
|
169 |
*
|
170 |
* @see colorpicker
|
171 |
-
*
|
|
|
172 |
* @param string $value Value.
|
173 |
-
* @param mixed
|
|
|
174 |
* @return string
|
175 |
*/
|
176 |
public static function _color( $data = '', $value = '', $extra = '' ) {
|
177 |
$class = sprintf( ' %s-form-color', self::$_name );
|
178 |
-
$load
|
179 |
if ( is_array( $extra ) ) {
|
180 |
if ( isset( $extra['class'] ) ) {
|
181 |
$extra['class'] .= $class;
|
@@ -190,13 +204,14 @@ class TInvWL_Form {
|
|
190 |
$extra .= sprintf( ' class="%s" ', $class );
|
191 |
}
|
192 |
if ( $load ) {
|
193 |
-
$value = self::getvalue( (is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
194 |
}
|
195 |
$defaults = array(
|
196 |
-
'type'
|
197 |
-
'name'
|
198 |
-
'value'
|
199 |
);
|
|
|
200 |
return sprintf( '<div class="tinvwl-color-picker"><div class="tinvwl-input-group tinvwl-no-full"><input %s%s /><div class="tinvwl-input-group-btn"><div class="tinvwl-eyedropper"><a href="javascript:void(0);"><i class="ftinvwl ftinvwl-eyedropper"></i></a></div></div></div></div>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
201 |
}
|
202 |
|
@@ -204,18 +219,20 @@ class TInvWL_Form {
|
|
204 |
* Create date input
|
205 |
*
|
206 |
* @see jquery-ui-datepicker
|
207 |
-
*
|
|
|
208 |
* @param string $value Value.
|
209 |
-
* @param mixed
|
|
|
210 |
* @return string
|
211 |
*/
|
212 |
public static function _date( $data = '', $value = '', $extra = '' ) {
|
213 |
if ( ! is_array( $data ) ) {
|
214 |
$data = array( 'name' => $data );
|
215 |
}
|
216 |
-
$extra_js
|
217 |
-
$value
|
218 |
-
$class
|
219 |
if ( is_array( $extra ) ) {
|
220 |
if ( isset( $extra['class'] ) ) {
|
221 |
$extra['class'] .= $class;
|
@@ -233,15 +250,17 @@ class TInvWL_Form {
|
|
233 |
}
|
234 |
|
235 |
$data['id'] = self::__createid( $data['name'] );
|
|
|
236 |
return sprintf( "%s<script type=\"text/javascript\">jQuery(document).ready(function($){ $('#%s').datepicker({%s})});</script>", self::_text( $data, $value, $extra ), $data['id'], self::__atrtostrjs( $extra_js ) );
|
237 |
}
|
238 |
|
239 |
/**
|
240 |
* Create select html element with time period
|
241 |
*
|
242 |
-
* @param mixed
|
243 |
* @param intger $value Value.
|
244 |
-
* @param mixed
|
|
|
245 |
* @return string
|
246 |
*/
|
247 |
public static function _time( $data = '', $value = '', $extra = '' ) {
|
@@ -256,54 +275,58 @@ class TInvWL_Form {
|
|
256 |
$extra .= sprintf( ' class="%s"', $class );
|
257 |
}
|
258 |
$options = array();
|
259 |
-
for ( $i = 0; $i < 24; $i++ ) {
|
260 |
$options[ $i ] = sprintf( '%02d:00', $i );
|
261 |
}
|
|
|
262 |
return self::_select( $data, intval( $value ), $extra, $options );
|
263 |
}
|
264 |
|
265 |
/**
|
266 |
* Create textarea html element
|
267 |
*
|
268 |
-
* @param mixed
|
269 |
* @param string $value Value.
|
270 |
-
* @param mixed
|
|
|
271 |
* @return string
|
272 |
*/
|
273 |
public static function _textarea( $data = '', $value = '', $extra = '' ) {
|
274 |
-
$value
|
275 |
-
$defaults
|
276 |
-
'name'
|
277 |
-
'cols'
|
278 |
-
'rows'
|
279 |
);
|
|
|
280 |
return sprintf( '<textarea %s%s>%s</textarea>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ), esc_textarea( $value ) );
|
281 |
}
|
282 |
|
283 |
/**
|
284 |
* Output wysiwyg editor
|
285 |
*
|
286 |
-
* @param mixed
|
287 |
* @param string $value Value.
|
288 |
-
* @param array
|
289 |
*/
|
290 |
public static function editor( $data = '', $value = '', $extra = array() ) {
|
291 |
if ( ! is_array( $data ) ) {
|
292 |
$data = array( 'name' => $data );
|
293 |
}
|
294 |
-
$value
|
295 |
-
$data['id']
|
296 |
-
$extra['textarea_name']
|
297 |
wp_editor( $value, $data['id'], $extra );
|
298 |
}
|
299 |
|
300 |
/**
|
301 |
* Create input html element with type checkbox
|
302 |
*
|
303 |
-
* @param mixed
|
304 |
* @param boolean $checked Value.
|
305 |
-
* @param mixed
|
306 |
-
* @param string
|
|
|
307 |
* @return string
|
308 |
*/
|
309 |
public static function _checkbox( $data = '', $checked = false, $extra = '', $value = '' ) {
|
@@ -315,20 +338,20 @@ class TInvWL_Form {
|
|
315 |
}
|
316 |
}
|
317 |
if ( $load ) {
|
318 |
-
$checked = self::getvalue( (is_array( $data ) ? @$data['name'] : $data ), $checked ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
319 |
-
$value
|
320 |
}
|
321 |
if ( is_array( $value ) ) {
|
322 |
$value = array_shift( $value );
|
323 |
}
|
324 |
if ( ! is_bool( $checked ) ) {
|
325 |
-
$checked = ($checked == $value) ? true : false; // WPCS: loose comparison ok.
|
326 |
}
|
327 |
|
328 |
$defaults = array(
|
329 |
-
'type'
|
330 |
-
'name'
|
331 |
-
'value'
|
332 |
);
|
333 |
if ( is_array( $data ) && array_key_exists( 'checked', $data ) ) {
|
334 |
$checked = $data['checked'];
|
@@ -344,16 +367,18 @@ class TInvWL_Form {
|
|
344 |
} else {
|
345 |
unset( $defaults['checked'] );
|
346 |
}
|
|
|
347 |
return sprintf( '<input %s%s />', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
348 |
}
|
349 |
|
350 |
/**
|
351 |
* Create input html element with type radio
|
352 |
*
|
353 |
-
* @param mixed
|
354 |
* @param boolean $checked Value.
|
355 |
-
* @param mixed
|
356 |
-
* @param string
|
|
|
357 |
* @return string
|
358 |
*/
|
359 |
public static function _radio( $data = '', $checked = false, $extra = '', $value = '' ) {
|
@@ -361,6 +386,7 @@ class TInvWL_Form {
|
|
361 |
$data = array( 'name' => $data );
|
362 |
}
|
363 |
$data['type'] = 'radio';
|
|
|
364 |
return self::_checkbox( $data, $checked, $extra, $value );
|
365 |
}
|
366 |
|
@@ -371,13 +397,14 @@ class TInvWL_Form {
|
|
371 |
* @param mixed $value Value.
|
372 |
* @param mixed $extra Styling or Custom variable.
|
373 |
* @param array $options Options for form.
|
|
|
374 |
* @return string
|
375 |
*/
|
376 |
public static function _select( $data = '', $value = array(), $extra = '', $options = array() ) {
|
377 |
$defaults = array();
|
378 |
if ( ! is_array( $data ) ) {
|
379 |
-
$data
|
380 |
-
$defaults
|
381 |
}
|
382 |
$load = true;
|
383 |
if ( is_array( $extra ) ) {
|
@@ -397,9 +424,9 @@ class TInvWL_Form {
|
|
397 |
$options = array( $options );
|
398 |
}
|
399 |
|
400 |
-
$extra
|
401 |
-
$multiple
|
402 |
-
$form
|
403 |
foreach ( $options as $key => $val ) {
|
404 |
$key = (string) $key;
|
405 |
if ( is_array( $val ) ) {
|
@@ -413,7 +440,7 @@ class TInvWL_Form {
|
|
413 |
}
|
414 |
$form .= sprintf( '<optgroup label="%s" >%s</optgroup>', esc_attr( $key ), esc_html( $opt ) );
|
415 |
} else {
|
416 |
-
$sel
|
417 |
$form .= sprintf( '<option value="%s"%s>%s</option>', esc_attr( $key ), $sel, esc_html( $val ) );
|
418 |
}
|
419 |
}
|
@@ -424,21 +451,22 @@ class TInvWL_Form {
|
|
424 |
/**
|
425 |
* Create select html element
|
426 |
*
|
427 |
-
* @param mixed
|
428 |
* @param string $value Value.
|
429 |
-
* @param mixed
|
430 |
-
* @param array
|
|
|
431 |
* @return string
|
432 |
*/
|
433 |
public static function _previewselect( $data = '', $value = '', $extra = '', $options = array() ) {
|
434 |
if ( ! is_array( $data ) ) {
|
435 |
$data = array( 'name' => $data );
|
436 |
}
|
437 |
-
$class
|
438 |
-
$extra_select
|
439 |
-
$extra_button
|
440 |
-
$extra_url
|
441 |
-
$load
|
442 |
if ( is_array( $extra ) ) {
|
443 |
if ( isset( $extra['load'] ) ) {
|
444 |
$load = (bool) $extra['load'];
|
@@ -472,10 +500,11 @@ class TInvWL_Form {
|
|
472 |
}
|
473 |
if ( is_array( $extra_button ) ) {
|
474 |
$extra_button['class'] = 'tinvwl-btn smaller';
|
475 |
-
$extra_button['href']
|
476 |
} else {
|
477 |
$extra_button .= ' class="tinvwl-btn smaller" href="' . sprintf( $extra_url, $value );
|
478 |
}
|
|
|
479 |
return sprintf( '<div class="tinvwl-input-group %s">%s<div class="tinvwl-input-group-btn">%s</div></div>', $class, self::_select( $data, $value, $extra_select, $options ), self::_button( $data, __( 'Preview', 'ti-woocommerce-wishlist' ), $extra_button ) );
|
480 |
}
|
481 |
|
@@ -484,18 +513,19 @@ class TInvWL_Form {
|
|
484 |
*
|
485 |
* @param string $data Name field or array attributes.
|
486 |
* @param string $value Value.
|
487 |
-
* @param mixed
|
|
|
488 |
* @return string
|
489 |
*/
|
490 |
public static function _uploadfile( $data = '', $value = '', $extra = '' ) {
|
491 |
if ( ! is_array( $data ) ) {
|
492 |
$data = array( 'name' => $data );
|
493 |
}
|
494 |
-
$value
|
495 |
-
$extra_field
|
496 |
-
$extra_button
|
497 |
-
$value_button
|
498 |
-
$mimefiles
|
499 |
if ( is_array( $extra ) ) {
|
500 |
if ( isset( $extra['type'] ) ) {
|
501 |
$mimefiles = $extra['type'];
|
@@ -533,20 +563,21 @@ class TInvWL_Form {
|
|
533 |
$extra_button .= self::__atrtostr( $extra );
|
534 |
}
|
535 |
} else {
|
536 |
-
$extra_button
|
537 |
} // End if().
|
538 |
if ( ! is_array( $mimefiles ) ) {
|
539 |
$mimefiles = array( $mimefiles );
|
540 |
}
|
541 |
-
$mimefiles
|
542 |
-
$mimefiles
|
543 |
|
544 |
wp_enqueue_media();
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
'
|
549 |
-
'
|
|
|
550 |
), $value_button, $extra_button ),
|
551 |
$data['name']
|
552 |
);
|
@@ -559,6 +590,7 @@ class TInvWL_Form {
|
|
559 |
* @param mixed $value Value.
|
560 |
* @param mixed $extra Styling or Custom variable.
|
561 |
* @param array $options Options for form.
|
|
|
562 |
* @return string
|
563 |
*/
|
564 |
public static function _multiselect( $data = '', $value = array(), $extra = '', $options = array() ) {
|
@@ -566,6 +598,7 @@ class TInvWL_Form {
|
|
566 |
if ( stripos( $extra, 'multiple' ) === false ) {
|
567 |
$extra .= ' multiple="multiple"';
|
568 |
}
|
|
|
569 |
return self::_select( $data, $value, $extra, $options );
|
570 |
}
|
571 |
|
@@ -576,6 +609,7 @@ class TInvWL_Form {
|
|
576 |
* @param mixed $value Value.
|
577 |
* @param mixed $extra Styling or Custom variable.
|
578 |
* @param array $options Options for form.
|
|
|
579 |
* @return string
|
580 |
*/
|
581 |
public static function _multicheckbox( $data = '', $value = array(), $extra = '', $options = array() ) {
|
@@ -593,7 +627,7 @@ class TInvWL_Form {
|
|
593 |
if ( ! is_array( $data ) ) {
|
594 |
$data = array( 'name' => $data );
|
595 |
}
|
596 |
-
$value
|
597 |
$options = self::getoption( $data['name'], $options );
|
598 |
if ( ! is_array( $value ) ) {
|
599 |
$value = array( $value );
|
@@ -602,8 +636,8 @@ class TInvWL_Form {
|
|
602 |
if ( ! is_array( $options ) ) {
|
603 |
$options = array( $options );
|
604 |
}
|
605 |
-
$before
|
606 |
-
$after
|
607 |
if ( is_array( $extra ) ) {
|
608 |
if ( isset( $extra['before'] ) ) {
|
609 |
$before = sprintf( '<div class="%s-before">%s</div>', self::$_name, $extra['before'] );
|
@@ -614,18 +648,19 @@ class TInvWL_Form {
|
|
614 |
unset( $extra['after'] );
|
615 |
}
|
616 |
}
|
617 |
-
$i
|
618 |
-
$name
|
619 |
foreach ( $options as $key => $_data ) {
|
620 |
-
$data['name']
|
621 |
-
$i++;
|
622 |
-
$data['id']
|
623 |
-
$_form
|
624 |
-
$options [ $key ]
|
625 |
'before' => $_form,
|
626 |
) );
|
627 |
}
|
628 |
$glue = '</li><li>';
|
|
|
629 |
return sprintf( '<div %s >%s<ul class="list"><li>%s</li></ul>%s</div>', self::__atrtostr( $extra ), $before, implode( $glue, $options ), $after );
|
630 |
}
|
631 |
|
@@ -636,13 +671,14 @@ class TInvWL_Form {
|
|
636 |
* @param mixed $value Value.
|
637 |
* @param mixed $extra Styling or Custom variable.
|
638 |
* @param array $options Options for form.
|
|
|
639 |
* @return string
|
640 |
*/
|
641 |
public static function _multiradio( $data = '', $value = '', $extra = '', $options = array() ) {
|
642 |
if ( ! is_array( $data ) ) {
|
643 |
$data = array( 'name' => $data );
|
644 |
}
|
645 |
-
$value
|
646 |
$options = self::getoption( $data['name'], $options );
|
647 |
if ( ! is_array( $value ) ) {
|
648 |
$value = array( $value );
|
@@ -663,13 +699,14 @@ class TInvWL_Form {
|
|
663 |
}
|
664 |
$form = '';
|
665 |
foreach ( $options as $key => $_data ) {
|
666 |
-
$data['id']
|
667 |
-
$_form
|
668 |
-
$form
|
669 |
'before' => $_form,
|
670 |
) );
|
671 |
-
$form
|
672 |
}
|
|
|
673 |
return $form;
|
674 |
}
|
675 |
|
@@ -679,16 +716,17 @@ class TInvWL_Form {
|
|
679 |
* @param mixed $data Name field or array attributes.
|
680 |
* @param array $value Value.
|
681 |
* @param array $extra Styling or Custom variable.
|
|
|
682 |
* @return string
|
683 |
*/
|
684 |
public static function _timeperiod( $data = '', $value = array(), $extra = array() ) {
|
685 |
if ( ! is_array( $data ) ) {
|
686 |
$data = array( 'name' => $data );
|
687 |
}
|
688 |
-
$label
|
689 |
$label_extra = array( '', '' );
|
690 |
-
$value
|
691 |
-
$separator
|
692 |
if ( is_array( $extra ) ) {
|
693 |
if ( isset( $extra['separator'] ) ) {
|
694 |
$separator = $extra['separator'];
|
@@ -697,7 +735,7 @@ class TInvWL_Form {
|
|
697 |
if ( isset( $extra['label'] ) ) {
|
698 |
$label_extra = $extra['label'];
|
699 |
unset( $extra['label'] );
|
700 |
-
for ( $i = 0; $i < count( $label ); $i++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
701 |
if ( isset( $label_extra[ $i ]['text'] ) ) {
|
702 |
$label[ $i ] = $label_extra[ $i ]['text'];
|
703 |
unset( $label_extra[ $i ]['text'] );
|
@@ -709,13 +747,14 @@ class TInvWL_Form {
|
|
709 |
$extra = array( 'load' => false );
|
710 |
}
|
711 |
$form = array();
|
712 |
-
for ( $i = 0; $i < count( $label ); $i++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
713 |
-
$_data
|
714 |
-
$_data['name']
|
715 |
-
$label_extra[ $i ]['after']
|
716 |
-
$form[]
|
717 |
}
|
718 |
$form = sprintf( '<div class="%s-timeperiod">%s</div>', self::$_name, implode( $separator, $form ) );
|
|
|
719 |
return $form;
|
720 |
}
|
721 |
|
@@ -725,16 +764,17 @@ class TInvWL_Form {
|
|
725 |
* @param mixed $data Name field or array attributes.
|
726 |
* @param array $value Value.
|
727 |
* @param array $extra Styling or Custom variable.
|
|
|
728 |
* @return string
|
729 |
*/
|
730 |
public static function _dateperiod( $data = '', $value = array(), $extra = array() ) {
|
731 |
if ( ! is_array( $data ) ) {
|
732 |
$data = array( 'name' => $data );
|
733 |
}
|
734 |
-
$label
|
735 |
$label_extra = array( '', '' );
|
736 |
-
$value
|
737 |
-
$separator
|
738 |
if ( is_array( $extra ) ) {
|
739 |
if ( isset( $extra['separator'] ) ) {
|
740 |
$separator = $extra['separator'];
|
@@ -743,7 +783,7 @@ class TInvWL_Form {
|
|
743 |
if ( isset( $extra['label'] ) ) {
|
744 |
$label_extra = $extra['label'];
|
745 |
unset( $extra['label'] );
|
746 |
-
for ( $i = 0; $i < count( $label ); $i++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
747 |
if ( isset( $label_extra[ $i ]['text'] ) ) {
|
748 |
$label[ $i ] = $label_extra[ $i ]['text'];
|
749 |
unset( $label_extra[ $i ]['text'] );
|
@@ -755,15 +795,16 @@ class TInvWL_Form {
|
|
755 |
$extra = array( 'load' => false );
|
756 |
}
|
757 |
$form = array();
|
758 |
-
for ( $i = 0; $i < count( $label ); $i++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
759 |
-
$_data
|
760 |
-
$_data['name']
|
761 |
-
$_data['id']
|
762 |
-
$extra['date']['onClose']
|
763 |
-
$label_extra[ $i ]['after']
|
764 |
-
$form[]
|
765 |
}
|
766 |
$form = sprintf( '<div class="%s-dateperiod">%s</div>', self::$_name, implode( $separator, $form ) );
|
|
|
767 |
return $form;
|
768 |
}
|
769 |
|
@@ -772,7 +813,8 @@ class TInvWL_Form {
|
|
772 |
*
|
773 |
* @param string $data Name field or array attributes.
|
774 |
* @param string $html HTML text.
|
775 |
-
* @param mixed
|
|
|
776 |
* @return string
|
777 |
*/
|
778 |
public static function _html( $data = '', $html = '', $extra = '' ) {
|
@@ -781,32 +823,36 @@ class TInvWL_Form {
|
|
781 |
$html = str_replace( '{' . $key . '}', (string) $value, $html );
|
782 |
}
|
783 |
}
|
|
|
784 |
return $html;
|
785 |
}
|
786 |
|
787 |
/**
|
788 |
* Create button html element
|
789 |
*
|
790 |
-
* @param mixed
|
791 |
* @param string $value Value.
|
792 |
-
* @param mixed
|
|
|
793 |
* @return type
|
794 |
*/
|
795 |
public static function _button( $data = '', $value = '', $extra = '' ) {
|
796 |
$defaults = array(
|
797 |
-
'type'
|
798 |
-
'name'
|
799 |
-
'value'
|
800 |
);
|
|
|
801 |
return sprintf( '<button %s%s>%s</button>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ), $value );
|
802 |
}
|
803 |
|
804 |
/**
|
805 |
* Create quick submit button html element
|
806 |
*
|
807 |
-
* @param mixed
|
808 |
* @param string $value Value.
|
809 |
-
* @param mixed
|
|
|
810 |
* @return type
|
811 |
*/
|
812 |
public static function _button_submit_quick( $data = '', $value = '', $extra = '' ) {
|
@@ -816,9 +862,10 @@ class TInvWL_Form {
|
|
816 |
/**
|
817 |
* Create submit button html element
|
818 |
*
|
819 |
-
* @param mixed
|
820 |
* @param string $value Value.
|
821 |
-
* @param mixed
|
|
|
822 |
* @return type
|
823 |
*/
|
824 |
public static function _button_submit( $data = '', $value = '', $extra = '' ) {
|
@@ -826,6 +873,7 @@ class TInvWL_Form {
|
|
826 |
$data = array( 'name' => $data );
|
827 |
}
|
828 |
$data['type'] = 'submit';
|
|
|
829 |
return self::_button( $data, $value, $extra );
|
830 |
}
|
831 |
|
@@ -834,7 +882,8 @@ class TInvWL_Form {
|
|
834 |
*
|
835 |
* @param string $data Name field or array attributes.
|
836 |
* @param string $value Value.
|
837 |
-
* @param array
|
|
|
838 |
* @return string
|
839 |
*/
|
840 |
public static function _label( $data = '', $value = '', $extra = array() ) {
|
@@ -860,6 +909,7 @@ class TInvWL_Form {
|
|
860 |
$attr .= sprintf( ' %s="%s"', $key, $val );
|
861 |
}
|
862 |
}
|
|
|
863 |
return sprintf( '<label %s>%s%s%s</label>', $attr, $before, $value, $after );
|
864 |
}
|
865 |
|
@@ -868,6 +918,7 @@ class TInvWL_Form {
|
|
868 |
*
|
869 |
* @param string $name Name field.
|
870 |
* @param string $separator Separator name.
|
|
|
871 |
* @return string
|
872 |
*/
|
873 |
private static function __createid( $name = '', $separator = '_' ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
@@ -875,6 +926,7 @@ class TInvWL_Form {
|
|
875 |
if ( false === strpos( $name, self::$_name ) ) {
|
876 |
$name = self::$_name . $separator . $name;
|
877 |
}
|
|
|
878 |
return $name;
|
879 |
}
|
880 |
|
@@ -884,6 +936,7 @@ class TInvWL_Form {
|
|
884 |
*
|
885 |
* @param mixed $attributes New attributes for element.
|
886 |
* @param array $default Default attributes for element.
|
|
|
887 |
* @return string
|
888 |
*/
|
889 |
private static function __parseatr( $attributes, $default ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
@@ -913,6 +966,7 @@ class TInvWL_Form {
|
|
913 |
}
|
914 |
$att .= sprintf( '%s="%s" ', $key, $val );
|
915 |
}
|
|
|
916 |
return $att;
|
917 |
}
|
918 |
|
@@ -921,6 +975,7 @@ class TInvWL_Form {
|
|
921 |
* Create attribute string for html element
|
922 |
*
|
923 |
* @param mixed $attributes New attributes for element.
|
|
|
924 |
* @return string
|
925 |
*/
|
926 |
static function __atrtostr( $attributes ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
@@ -941,8 +996,10 @@ class TInvWL_Form {
|
|
941 |
}
|
942 |
$atts .= sprintf( '%s="%s" ', $key, $val );
|
943 |
}
|
|
|
944 |
return $atts;
|
945 |
}
|
|
|
946 |
return '';
|
947 |
}
|
948 |
|
@@ -951,6 +1008,7 @@ class TInvWL_Form {
|
|
951 |
* Create attribute string for javascript object.
|
952 |
*
|
953 |
* @param mixed $attributes New attributes for element.
|
|
|
954 |
* @return string
|
955 |
*/
|
956 |
static function __atrtostrjs( $attributes ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
@@ -971,8 +1029,10 @@ class TInvWL_Form {
|
|
971 |
}
|
972 |
$atts .= sprintf( '%s: %s,', $key, $val );
|
973 |
}
|
|
|
974 |
return $atts;
|
975 |
}
|
|
|
976 |
return '';
|
977 |
}
|
978 |
|
@@ -982,12 +1042,13 @@ class TInvWL_Form {
|
|
982 |
* @return string
|
983 |
*/
|
984 |
private static function __rndmane() { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
985 |
-
$characters
|
986 |
-
$data
|
987 |
-
$length
|
988 |
-
for ( $i = 0; $i < $length; $i++ ) {
|
989 |
$data .= $characters[ rand( 0, strlen( $characters ) - 1 ) ];
|
990 |
}
|
|
|
991 |
return $data;
|
992 |
}
|
993 |
|
@@ -995,7 +1056,8 @@ class TInvWL_Form {
|
|
995 |
* Using for get value for element
|
996 |
*
|
997 |
* @param string $data Name value or array values.
|
998 |
-
* @param mixed
|
|
|
999 |
* @return mixed
|
1000 |
*/
|
1001 |
static function getvalue( $data, $value = '' ) {
|
@@ -1015,7 +1077,8 @@ class TInvWL_Form {
|
|
1015 |
* Set value for form element
|
1016 |
*
|
1017 |
* @param string $data Name value or array values.
|
1018 |
-
* @param mixed
|
|
|
1019 |
* @return mixed
|
1020 |
*/
|
1021 |
public static function setvalue( $data, $value = '' ) {
|
@@ -1033,6 +1096,7 @@ class TInvWL_Form {
|
|
1033 |
} else {
|
1034 |
self::$value[ $data ] = $value;
|
1035 |
}
|
|
|
1036 |
return $_value;
|
1037 |
}
|
1038 |
|
@@ -1040,7 +1104,8 @@ class TInvWL_Form {
|
|
1040 |
* Remove value for element
|
1041 |
*
|
1042 |
* @param string $data Name value or array values.
|
1043 |
-
* @param void
|
|
|
1044 |
* @return mixed
|
1045 |
*/
|
1046 |
public static function removevalue( $data, $value = '' ) {
|
@@ -1053,6 +1118,7 @@ class TInvWL_Form {
|
|
1053 |
} else {
|
1054 |
unset( self::$value[ $data ] );
|
1055 |
}
|
|
|
1056 |
return $value;
|
1057 |
}
|
1058 |
|
@@ -1060,13 +1126,15 @@ class TInvWL_Form {
|
|
1060 |
* Using for get options for element
|
1061 |
*
|
1062 |
* @param string $data Name value or array values.
|
1063 |
-
* @param array
|
|
|
1064 |
* @return array
|
1065 |
*/
|
1066 |
static function getoption( $data, $option = array() ) {
|
1067 |
if ( isset( self::$option[ $data ] ) ) {
|
1068 |
return self::$option[ $data ];
|
1069 |
}
|
|
|
1070 |
return $option;
|
1071 |
}
|
1072 |
|
@@ -1074,7 +1142,8 @@ class TInvWL_Form {
|
|
1074 |
* Set options for form element
|
1075 |
*
|
1076 |
* @param string $data Name value or array values.
|
1077 |
-
* @param array
|
|
|
1078 |
* @return array
|
1079 |
*/
|
1080 |
public static function setoptions( $data, $option = array() ) {
|
@@ -1092,6 +1161,7 @@ class TInvWL_Form {
|
|
1092 |
} else {
|
1093 |
self::$option[ $data ] = $option;
|
1094 |
}
|
|
|
1095 |
return $_option;
|
1096 |
}
|
1097 |
|
@@ -1099,7 +1169,8 @@ class TInvWL_Form {
|
|
1099 |
* Remove options for element
|
1100 |
*
|
1101 |
* @param string $data Name value or array values.
|
1102 |
-
* @param void
|
|
|
1103 |
* @return mixed
|
1104 |
*/
|
1105 |
public static function removeoptions( $data, $option = array() ) {
|
@@ -1112,16 +1183,18 @@ class TInvWL_Form {
|
|
1112 |
} else {
|
1113 |
unset( self::$option[ $data ] );
|
1114 |
}
|
|
|
1115 |
return $option;
|
1116 |
}
|
1117 |
|
1118 |
/**
|
1119 |
* Create input html element with type checkbox and class on/off
|
1120 |
*
|
1121 |
-
* @param mixed
|
1122 |
* @param boolean $checked Value.
|
1123 |
-
* @param mixed
|
1124 |
-
* @param string
|
|
|
1125 |
* @return string
|
1126 |
*/
|
1127 |
public static function _checkboxonoff( $data = '', $checked = false, $extra = '', $value = 'on' ) {
|
@@ -1135,6 +1208,7 @@ class TInvWL_Form {
|
|
1135 |
} else {
|
1136 |
$extra .= sprintf( ' class="%s" ', $class );
|
1137 |
}
|
|
|
1138 |
return self::_checkbox( $data, $checked, $extra, $value );
|
1139 |
}
|
1140 |
|
@@ -1145,6 +1219,7 @@ class TInvWL_Form {
|
|
1145 |
* @param mixed $value Value.
|
1146 |
* @param mixed $extra Styling or Custom variable.
|
1147 |
* @param array $options Options for form.
|
|
|
1148 |
* @return string
|
1149 |
*/
|
1150 |
public static function _multiradiobox( $data = '', $value = '', $extra = '', $options = array() ) {
|
@@ -1152,7 +1227,7 @@ class TInvWL_Form {
|
|
1152 |
$data = array( 'name' => $data );
|
1153 |
}
|
1154 |
$extra_input = '';
|
1155 |
-
$class
|
1156 |
if ( is_array( $extra ) ) {
|
1157 |
if ( isset( $extra['class'] ) ) {
|
1158 |
$extra['class'] .= $class;
|
@@ -1166,23 +1241,25 @@ class TInvWL_Form {
|
|
1166 |
} else {
|
1167 |
$extra .= sprintf( ' class="%s" ', $class );
|
1168 |
}
|
|
|
1169 |
return sprintf( '<div id="%s" %s >%s</div>', self::__createid( $data['name'] ), self::__atrtostr( $extra ), self::_multiradio( $data, $value, $extra_input, $options ) );
|
1170 |
}
|
1171 |
|
1172 |
/**
|
1173 |
* Create input html element with type range
|
1174 |
*
|
1175 |
-
* @param mixed
|
1176 |
* @param integer|float $value Value.
|
1177 |
-
* @param mixed
|
|
|
1178 |
* @return string
|
1179 |
*/
|
1180 |
public static function _numberrange( $data = '', $value = 0, $extra = array() ) {
|
1181 |
if ( ! is_array( $data ) ) {
|
1182 |
$data = array( 'name' => $data );
|
1183 |
}
|
1184 |
-
$data['type']
|
1185 |
-
$class
|
1186 |
if ( is_array( $extra ) ) {
|
1187 |
if ( isset( $extra['class'] ) ) {
|
1188 |
$extra['class'] = $class;
|
@@ -1192,6 +1269,7 @@ class TInvWL_Form {
|
|
1192 |
} else {
|
1193 |
$extra .= sprintf( ' class="%s" ', $class );
|
1194 |
}
|
|
|
1195 |
return self::_text( $data, $value, $extra );
|
1196 |
}
|
1197 |
}
|
50 |
* Call method for returm or output
|
51 |
*
|
52 |
* @param string $name Name function.
|
53 |
+
* @param array $arg Parameter function.
|
54 |
+
*
|
55 |
* @return mixed
|
56 |
*/
|
57 |
public function __call( $name, $arg ) {
|
58 |
$_arg = array(
|
59 |
+
0 => null,
|
60 |
+
1 => null,
|
61 |
+
2 => null,
|
62 |
+
3 => null,
|
63 |
);
|
64 |
foreach ( $_arg as $key => $value ) {
|
65 |
$_arg[ $key ] = array_shift( $arg );
|
66 |
}
|
67 |
+
$arg = $_arg;
|
68 |
+
$glue = '_';
|
69 |
+
$method = sprintf( '%s%s', $glue, $name );
|
70 |
if ( false === strpos( $name, $glue ) ) {
|
71 |
if ( method_exists( __CLASS__, $method ) ) {
|
72 |
$data = call_user_func( array( __CLASS__, $method ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
77 |
return call_user_func( array( __CLASS__, $name ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
78 |
}
|
79 |
}
|
80 |
+
|
81 |
return '';
|
82 |
}
|
83 |
|
85 |
* Call method for returm or output
|
86 |
*
|
87 |
* @param string $name Name function.
|
88 |
+
* @param array $arg Parameter function.
|
89 |
+
*
|
90 |
* @return mixed
|
91 |
*/
|
92 |
public static function __callStatic( $name, $arg ) {
|
94 |
self::$_name = TINVWL_PREFIX;
|
95 |
}
|
96 |
$_arg = array(
|
97 |
+
0 => null,
|
98 |
+
1 => null,
|
99 |
+
2 => null,
|
100 |
+
3 => null,
|
101 |
);
|
102 |
foreach ( $_arg as $key => $value ) {
|
103 |
$_arg[ $key ] = array_shift( $arg );
|
104 |
}
|
105 |
+
$arg = $_arg;
|
106 |
+
$glue = '_';
|
107 |
+
$method = sprintf( '%s%s', $glue, $name );
|
108 |
if ( false === strpos( $name, $glue ) ) {
|
109 |
if ( method_exists( __CLASS__, $method ) ) {
|
110 |
$data = call_user_func( array( __CLASS__, $method ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
115 |
return call_user_func( array( __CLASS__, $name ), $arg[0], $arg[1], $arg[2], $arg[3] );
|
116 |
}
|
117 |
}
|
118 |
+
|
119 |
return '';
|
120 |
}
|
121 |
|
122 |
/**
|
123 |
* Create input html element
|
124 |
*
|
125 |
+
* @param mixed $data Name field or array attributes.
|
126 |
* @param string $value Value.
|
127 |
+
* @param mixed $extra Styling or Custom variable.
|
128 |
+
*
|
129 |
* @return string
|
130 |
*/
|
131 |
public static function _text( $data, $value = '', $extra = '' ) {
|
137 |
}
|
138 |
}
|
139 |
if ( $load ) {
|
140 |
+
$value = self::getvalue( ( is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
141 |
}
|
142 |
$defaults = array(
|
143 |
+
'type' => is_array( $data ) ? @$data['type'] : 'text',
|
144 |
+
'name' => is_array( $data ) ? @$data['name'] : $data,
|
145 |
+
'value' => $value,
|
146 |
);
|
147 |
+
|
148 |
return sprintf( '<input %s%s />', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
149 |
}
|
150 |
|
151 |
/**
|
152 |
* Create input html element with type number
|
153 |
*
|
154 |
+
* @param mixed $data Name field or array attributes.
|
155 |
* @param integer|float $value Value.
|
156 |
+
* @param mixed $extra Styling or Custom variable.
|
157 |
+
*
|
158 |
* @return string
|
159 |
*/
|
160 |
public static function _number( $data, $value = 0, $extra = '' ) {
|
168 |
} else {
|
169 |
$extra .= sprintf( ' class="%s" ', $class );
|
170 |
}
|
171 |
+
if ( ! is_array( $data ) ) {
|
172 |
+
$data = array( 'name' => $data );
|
173 |
+
}
|
174 |
+
$data['type'] = 'number';
|
175 |
+
|
176 |
return self::_text( $data, $value, $extra );
|
177 |
}
|
178 |
|
180 |
* Create color picker
|
181 |
*
|
182 |
* @see colorpicker
|
183 |
+
*
|
184 |
+
* @param mixed $data Name field or array attributes.
|
185 |
* @param string $value Value.
|
186 |
+
* @param mixed $extra Styling or Custom variable.
|
187 |
+
*
|
188 |
* @return string
|
189 |
*/
|
190 |
public static function _color( $data = '', $value = '', $extra = '' ) {
|
191 |
$class = sprintf( ' %s-form-color', self::$_name );
|
192 |
+
$load = true;
|
193 |
if ( is_array( $extra ) ) {
|
194 |
if ( isset( $extra['class'] ) ) {
|
195 |
$extra['class'] .= $class;
|
204 |
$extra .= sprintf( ' class="%s" ', $class );
|
205 |
}
|
206 |
if ( $load ) {
|
207 |
+
$value = self::getvalue( ( is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
208 |
}
|
209 |
$defaults = array(
|
210 |
+
'type' => 'text',
|
211 |
+
'name' => is_array( $data ) ? '' : $data,
|
212 |
+
'value' => $value,
|
213 |
);
|
214 |
+
|
215 |
return sprintf( '<div class="tinvwl-color-picker"><div class="tinvwl-input-group tinvwl-no-full"><input %s%s /><div class="tinvwl-input-group-btn"><div class="tinvwl-eyedropper"><a href="javascript:void(0);"><i class="ftinvwl ftinvwl-eyedropper"></i></a></div></div></div></div>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
216 |
}
|
217 |
|
219 |
* Create date input
|
220 |
*
|
221 |
* @see jquery-ui-datepicker
|
222 |
+
*
|
223 |
+
* @param mixed $data Name field or array attributes.
|
224 |
* @param string $value Value.
|
225 |
+
* @param mixed $extra Styling or Custom variable.
|
226 |
+
*
|
227 |
* @return string
|
228 |
*/
|
229 |
public static function _date( $data = '', $value = '', $extra = '' ) {
|
230 |
if ( ! is_array( $data ) ) {
|
231 |
$data = array( 'name' => $data );
|
232 |
}
|
233 |
+
$extra_js = '';
|
234 |
+
$value = self::getvalue( $data['name'], $value );
|
235 |
+
$class = sprintf( ' %s-date', self::$_name );
|
236 |
if ( is_array( $extra ) ) {
|
237 |
if ( isset( $extra['class'] ) ) {
|
238 |
$extra['class'] .= $class;
|
250 |
}
|
251 |
|
252 |
$data['id'] = self::__createid( $data['name'] );
|
253 |
+
|
254 |
return sprintf( "%s<script type=\"text/javascript\">jQuery(document).ready(function($){ $('#%s').datepicker({%s})});</script>", self::_text( $data, $value, $extra ), $data['id'], self::__atrtostrjs( $extra_js ) );
|
255 |
}
|
256 |
|
257 |
/**
|
258 |
* Create select html element with time period
|
259 |
*
|
260 |
+
* @param mixed $data Name field or array attributes.
|
261 |
* @param intger $value Value.
|
262 |
+
* @param mixed $extra Styling or Custom variable.
|
263 |
+
*
|
264 |
* @return string
|
265 |
*/
|
266 |
public static function _time( $data = '', $value = '', $extra = '' ) {
|
275 |
$extra .= sprintf( ' class="%s"', $class );
|
276 |
}
|
277 |
$options = array();
|
278 |
+
for ( $i = 0; $i < 24; $i ++ ) {
|
279 |
$options[ $i ] = sprintf( '%02d:00', $i );
|
280 |
}
|
281 |
+
|
282 |
return self::_select( $data, intval( $value ), $extra, $options );
|
283 |
}
|
284 |
|
285 |
/**
|
286 |
* Create textarea html element
|
287 |
*
|
288 |
+
* @param mixed $data Name field or array attributes.
|
289 |
* @param string $value Value.
|
290 |
+
* @param mixed $extra Styling or Custom variable.
|
291 |
+
*
|
292 |
* @return string
|
293 |
*/
|
294 |
public static function _textarea( $data = '', $value = '', $extra = '' ) {
|
295 |
+
$value = self::getvalue( ( is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
296 |
+
$defaults = array(
|
297 |
+
'name' => is_array( $data ) ? '' : $data,
|
298 |
+
'cols' => '40',
|
299 |
+
'rows' => '20',
|
300 |
);
|
301 |
+
|
302 |
return sprintf( '<textarea %s%s>%s</textarea>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ), esc_textarea( $value ) );
|
303 |
}
|
304 |
|
305 |
/**
|
306 |
* Output wysiwyg editor
|
307 |
*
|
308 |
+
* @param mixed $data Name field or array attributes.
|
309 |
* @param string $value Value.
|
310 |
+
* @param array $extra Styling or Custom variable.
|
311 |
*/
|
312 |
public static function editor( $data = '', $value = '', $extra = array() ) {
|
313 |
if ( ! is_array( $data ) ) {
|
314 |
$data = array( 'name' => $data );
|
315 |
}
|
316 |
+
$value = self::getvalue( $data['name'], $value );
|
317 |
+
$data['id'] = self::__createid( $data['name'] );
|
318 |
+
$extra['textarea_name'] = $data['name'];
|
319 |
wp_editor( $value, $data['id'], $extra );
|
320 |
}
|
321 |
|
322 |
/**
|
323 |
* Create input html element with type checkbox
|
324 |
*
|
325 |
+
* @param mixed $data Name field or array attributes.
|
326 |
* @param boolean $checked Value.
|
327 |
+
* @param mixed $extra Styling or Custom variable.
|
328 |
+
* @param string $value Value for form.
|
329 |
+
*
|
330 |
* @return string
|
331 |
*/
|
332 |
public static function _checkbox( $data = '', $checked = false, $extra = '', $value = '' ) {
|
338 |
}
|
339 |
}
|
340 |
if ( $load ) {
|
341 |
+
$checked = self::getvalue( ( is_array( $data ) ? @$data['name'] : $data ), $checked ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
342 |
+
$value = self::getoption( ( is_array( $data ) ? @$data['name'] : $data ), $value ); // @codingStandardsIgnoreLine Generic.PHP.NoSilencedErrors.Discouraged
|
343 |
}
|
344 |
if ( is_array( $value ) ) {
|
345 |
$value = array_shift( $value );
|
346 |
}
|
347 |
if ( ! is_bool( $checked ) ) {
|
348 |
+
$checked = ( $checked == $value ) ? true : false; // WPCS: loose comparison ok.
|
349 |
}
|
350 |
|
351 |
$defaults = array(
|
352 |
+
'type' => 'checkbox',
|
353 |
+
'name' => ( ! is_array( $data ) ? $data : '' ),
|
354 |
+
'value' => esc_html( $value ),
|
355 |
);
|
356 |
if ( is_array( $data ) && array_key_exists( 'checked', $data ) ) {
|
357 |
$checked = $data['checked'];
|
367 |
} else {
|
368 |
unset( $defaults['checked'] );
|
369 |
}
|
370 |
+
|
371 |
return sprintf( '<input %s%s />', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ) );
|
372 |
}
|
373 |
|
374 |
/**
|
375 |
* Create input html element with type radio
|
376 |
*
|
377 |
+
* @param mixed $data Name field or array attributes.
|
378 |
* @param boolean $checked Value.
|
379 |
+
* @param mixed $extra Styling or Custom variable.
|
380 |
+
* @param string $value Value for form.
|
381 |
+
*
|
382 |
* @return string
|
383 |
*/
|
384 |
public static function _radio( $data = '', $checked = false, $extra = '', $value = '' ) {
|
386 |
$data = array( 'name' => $data );
|
387 |
}
|
388 |
$data['type'] = 'radio';
|
389 |
+
|
390 |
return self::_checkbox( $data, $checked, $extra, $value );
|
391 |
}
|
392 |
|
397 |
* @param mixed $value Value.
|
398 |
* @param mixed $extra Styling or Custom variable.
|
399 |
* @param array $options Options for form.
|
400 |
+
*
|
401 |
* @return string
|
402 |
*/
|
403 |
public static function _select( $data = '', $value = array(), $extra = '', $options = array() ) {
|
404 |
$defaults = array();
|
405 |
if ( ! is_array( $data ) ) {
|
406 |
+
$data = array( 'name' => $data );
|
407 |
+
$defaults = array( 'name' => $data );
|
408 |
}
|
409 |
$load = true;
|
410 |
if ( is_array( $extra ) ) {
|
424 |
$options = array( $options );
|
425 |
}
|
426 |
|
427 |
+
$extra = self::__atrtostr( $extra );
|
428 |
+
$multiple = ( count( $value ) > 1 && false === stripos( $extra, 'multiple' ) ) ? ' multiple="multiple"' : '';
|
429 |
+
$form = '';
|
430 |
foreach ( $options as $key => $val ) {
|
431 |
$key = (string) $key;
|
432 |
if ( is_array( $val ) ) {
|
440 |
}
|
441 |
$form .= sprintf( '<optgroup label="%s" >%s</optgroup>', esc_attr( $key ), esc_html( $opt ) );
|
442 |
} else {
|
443 |
+
$sel = in_array( $key, $value ) ? ' selected="selected"' : ''; // @codingStandardsIgnoreLine WordPress.PHP.StrictInArray.MissingTrueStrict
|
444 |
$form .= sprintf( '<option value="%s"%s>%s</option>', esc_attr( $key ), $sel, esc_html( $val ) );
|
445 |
}
|
446 |
}
|
451 |
/**
|
452 |
* Create select html element
|
453 |
*
|
454 |
+
* @param mixed $data Name field or array attributes.
|
455 |
* @param string $value Value.
|
456 |
+
* @param mixed $extra Styling or Custom variable.
|
457 |
+
* @param array $options Options for form.
|
458 |
+
*
|
459 |
* @return string
|
460 |
*/
|
461 |
public static function _previewselect( $data = '', $value = '', $extra = '', $options = array() ) {
|
462 |
if ( ! is_array( $data ) ) {
|
463 |
$data = array( 'name' => $data );
|
464 |
}
|
465 |
+
$class = sprintf( ' %s-form-preview-select', self::$_name );
|
466 |
+
$extra_select = array( 'class' => 'form-control' );
|
467 |
+
$extra_button = array();
|
468 |
+
$extra_url = '';
|
469 |
+
$load = true;
|
470 |
if ( is_array( $extra ) ) {
|
471 |
if ( isset( $extra['load'] ) ) {
|
472 |
$load = (bool) $extra['load'];
|
500 |
}
|
501 |
if ( is_array( $extra_button ) ) {
|
502 |
$extra_button['class'] = 'tinvwl-btn smaller';
|
503 |
+
$extra_button['href'] = sprintf( $extra_url, $value );
|
504 |
} else {
|
505 |
$extra_button .= ' class="tinvwl-btn smaller" href="' . sprintf( $extra_url, $value );
|
506 |
}
|
507 |
+
|
508 |
return sprintf( '<div class="tinvwl-input-group %s">%s<div class="tinvwl-input-group-btn">%s</div></div>', $class, self::_select( $data, $value, $extra_select, $options ), self::_button( $data, __( 'Preview', 'ti-woocommerce-wishlist' ), $extra_button ) );
|
509 |
}
|
510 |
|
513 |
*
|
514 |
* @param string $data Name field or array attributes.
|
515 |
* @param string $value Value.
|
516 |
+
* @param mixed $extra Styling or Custom variable.
|
517 |
+
*
|
518 |
* @return string
|
519 |
*/
|
520 |
public static function _uploadfile( $data = '', $value = '', $extra = '' ) {
|
521 |
if ( ! is_array( $data ) ) {
|
522 |
$data = array( 'name' => $data );
|
523 |
}
|
524 |
+
$value = self::getvalue( $data['name'], $value );
|
525 |
+
$extra_field = '';
|
526 |
+
$extra_button = '';
|
527 |
+
$value_button = '';
|
528 |
+
$mimefiles = '';
|
529 |
if ( is_array( $extra ) ) {
|
530 |
if ( isset( $extra['type'] ) ) {
|
531 |
$mimefiles = $extra['type'];
|
563 |
$extra_button .= self::__atrtostr( $extra );
|
564 |
}
|
565 |
} else {
|
566 |
+
$extra_button = $extra_field = $extra;
|
567 |
} // End if().
|
568 |
if ( ! is_array( $mimefiles ) ) {
|
569 |
$mimefiles = array( $mimefiles );
|
570 |
}
|
571 |
+
$mimefiles = array_filter( $mimefiles );
|
572 |
+
$mimefiles = wp_json_encode( $mimefiles );
|
573 |
|
574 |
wp_enqueue_media();
|
575 |
+
|
576 |
+
return sprintf( "<div class='tinvwl-input-group'>%s%s<div class='tinvwl-input-group-btn'>%s</div></div><script type=\"text/javascript\">jQuery(document).ready(function($){var nn='%s';" . ( empty( $value ) ? "$('.' + nn + '-preview').hide();" : "" ) . "$('input[name=\"'+nn+'-btn\"]').click(function(e){e.preventDefault();var i=wp.media({multiple:false, library:{type:{$mimefiles}}}).open().on('select',function(e){var u=i.state().get('selection').first();var iu=u.toJSON().url;$('input[name=\"'+nn+'\"]').val(iu);$('.' + nn + '-preview').show();$('.' + nn + '-preview span img').attr('src', iu);});});});</script>", // @codingStandardsIgnoreLine Squiz.Strings.DoubleQuoteUsage.NotRequired
|
577 |
+
'<div class="' . $data['name'] . '-preview tinvwl-input-group-btn"><div class="tinvwl-icon-preview"><span>' . ( ! empty( $value ) ? '<img src="' . $value . '" />' : '' ) . '</span></div></div>', self::_text( $data, $value, $extra_field ), self::_text( array(
|
578 |
+
'name' => $data['name'] . '-btn',
|
579 |
+
'type' => 'button',
|
580 |
+
'class' => 'tinvwl-btn white smaller',
|
581 |
), $value_button, $extra_button ),
|
582 |
$data['name']
|
583 |
);
|
590 |
* @param mixed $value Value.
|
591 |
* @param mixed $extra Styling or Custom variable.
|
592 |
* @param array $options Options for form.
|
593 |
+
*
|
594 |
* @return string
|
595 |
*/
|
596 |
public static function _multiselect( $data = '', $value = array(), $extra = '', $options = array() ) {
|
598 |
if ( stripos( $extra, 'multiple' ) === false ) {
|
599 |
$extra .= ' multiple="multiple"';
|
600 |
}
|
601 |
+
|
602 |
return self::_select( $data, $value, $extra, $options );
|
603 |
}
|
604 |
|
609 |
* @param mixed $value Value.
|
610 |
* @param mixed $extra Styling or Custom variable.
|
611 |
* @param array $options Options for form.
|
612 |
+
*
|
613 |
* @return string
|
614 |
*/
|
615 |
public static function _multicheckbox( $data = '', $value = array(), $extra = '', $options = array() ) {
|
627 |
if ( ! is_array( $data ) ) {
|
628 |
$data = array( 'name' => $data );
|
629 |
}
|
630 |
+
$value = self::getvalue( $data['name'], $value );
|
631 |
$options = self::getoption( $data['name'], $options );
|
632 |
if ( ! is_array( $value ) ) {
|
633 |
$value = array( $value );
|
636 |
if ( ! is_array( $options ) ) {
|
637 |
$options = array( $options );
|
638 |
}
|
639 |
+
$before = '';
|
640 |
+
$after = '';
|
641 |
if ( is_array( $extra ) ) {
|
642 |
if ( isset( $extra['before'] ) ) {
|
643 |
$before = sprintf( '<div class="%s-before">%s</div>', self::$_name, $extra['before'] );
|
648 |
unset( $extra['after'] );
|
649 |
}
|
650 |
}
|
651 |
+
$i = 0;
|
652 |
+
$name = $data['name'];
|
653 |
foreach ( $options as $key => $_data ) {
|
654 |
+
$data['name'] = $name . '[' . $i . ']';
|
655 |
+
$i ++;
|
656 |
+
$data['id'] = self::__createid( $data['name'] . $key );
|
657 |
+
$_form = self::_checkbox( $data, in_array( $key, $value ), array( 'load' => false ), esc_html( $key ) ); // @codingStandardsIgnoreLine WordPress.PHP.StrictInArray.MissingTrueStrict
|
658 |
+
$options [ $key ] = self::_label( $data['id'], $_data, array(
|
659 |
'before' => $_form,
|
660 |
) );
|
661 |
}
|
662 |
$glue = '</li><li>';
|
663 |
+
|
664 |
return sprintf( '<div %s >%s<ul class="list"><li>%s</li></ul>%s</div>', self::__atrtostr( $extra ), $before, implode( $glue, $options ), $after );
|
665 |
}
|
666 |
|
671 |
* @param mixed $value Value.
|
672 |
* @param mixed $extra Styling or Custom variable.
|
673 |
* @param array $options Options for form.
|
674 |
+
*
|
675 |
* @return string
|
676 |
*/
|
677 |
public static function _multiradio( $data = '', $value = '', $extra = '', $options = array() ) {
|
678 |
if ( ! is_array( $data ) ) {
|
679 |
$data = array( 'name' => $data );
|
680 |
}
|
681 |
+
$value = self::getvalue( $data['name'], $value );
|
682 |
$options = self::getoption( $data['name'], $options );
|
683 |
if ( ! is_array( $value ) ) {
|
684 |
$value = array( $value );
|
699 |
}
|
700 |
$form = '';
|
701 |
foreach ( $options as $key => $_data ) {
|
702 |
+
$data['id'] = self::__createid( $data['name'] . $key );
|
703 |
+
$_form = self::_radio( $data, in_array( $key, $value ), $extra, esc_html( $key ) ); // @codingStandardsIgnoreLine WordPress.PHP.StrictInArray.MissingTrueStrict
|
704 |
+
$form .= self::_label( $data['id'], $_data, array(
|
705 |
'before' => $_form,
|
706 |
) );
|
707 |
+
$form .= $separator;
|
708 |
}
|
709 |
+
|
710 |
return $form;
|
711 |
}
|
712 |
|
716 |
* @param mixed $data Name field or array attributes.
|
717 |
* @param array $value Value.
|
718 |
* @param array $extra Styling or Custom variable.
|
719 |
+
*
|
720 |
* @return string
|
721 |
*/
|
722 |
public static function _timeperiod( $data = '', $value = array(), $extra = array() ) {
|
723 |
if ( ! is_array( $data ) ) {
|
724 |
$data = array( 'name' => $data );
|
725 |
}
|
726 |
+
$label = array( '', '' );
|
727 |
$label_extra = array( '', '' );
|
728 |
+
$value = (array) self::getvalue( $data['name'], $value );
|
729 |
+
$separator = ' ';
|
730 |
if ( is_array( $extra ) ) {
|
731 |
if ( isset( $extra['separator'] ) ) {
|
732 |
$separator = $extra['separator'];
|
735 |
if ( isset( $extra['label'] ) ) {
|
736 |
$label_extra = $extra['label'];
|
737 |
unset( $extra['label'] );
|
738 |
+
for ( $i = 0; $i < count( $label ); $i ++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
739 |
if ( isset( $label_extra[ $i ]['text'] ) ) {
|
740 |
$label[ $i ] = $label_extra[ $i ]['text'];
|
741 |
unset( $label_extra[ $i ]['text'] );
|
747 |
$extra = array( 'load' => false );
|
748 |
}
|
749 |
$form = array();
|
750 |
+
for ( $i = 0; $i < count( $label ); $i ++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
751 |
+
$_data = $data;
|
752 |
+
$_data['name'] .= "[$i]";
|
753 |
+
$label_extra[ $i ]['after'] = self::_time( $_data, ( isset( $value[ $i ] ) ? $value[ $i ] : '' ), $extra );
|
754 |
+
$form[] = self::_label( $_data['name'], $label[ $i ], $label_extra[ $i ] );
|
755 |
}
|
756 |
$form = sprintf( '<div class="%s-timeperiod">%s</div>', self::$_name, implode( $separator, $form ) );
|
757 |
+
|
758 |
return $form;
|
759 |
}
|
760 |
|
764 |
* @param mixed $data Name field or array attributes.
|
765 |
* @param array $value Value.
|
766 |
* @param array $extra Styling or Custom variable.
|
767 |
+
*
|
768 |
* @return string
|
769 |
*/
|
770 |
public static function _dateperiod( $data = '', $value = array(), $extra = array() ) {
|
771 |
if ( ! is_array( $data ) ) {
|
772 |
$data = array( 'name' => $data );
|
773 |
}
|
774 |
+
$label = array( '', '' );
|
775 |
$label_extra = array( '', '' );
|
776 |
+
$value = (array) self::getvalue( $data['name'], $value );
|
777 |
+
$separator = ' ';
|
778 |
if ( is_array( $extra ) ) {
|
779 |
if ( isset( $extra['separator'] ) ) {
|
780 |
$separator = $extra['separator'];
|
783 |
if ( isset( $extra['label'] ) ) {
|
784 |
$label_extra = $extra['label'];
|
785 |
unset( $extra['label'] );
|
786 |
+
for ( $i = 0; $i < count( $label ); $i ++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
787 |
if ( isset( $label_extra[ $i ]['text'] ) ) {
|
788 |
$label[ $i ] = $label_extra[ $i ]['text'];
|
789 |
unset( $label_extra[ $i ]['text'] );
|
795 |
$extra = array( 'load' => false );
|
796 |
}
|
797 |
$form = array();
|
798 |
+
for ( $i = 0; $i < count( $label ); $i ++ ) { // @codingStandardsIgnoreLine Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
|
799 |
+
$_data = $data;
|
800 |
+
$_data['name'] .= "[$i]";
|
801 |
+
$_data['id'] = self::__createid( $data['name'] . '[' . ( $i ? 0 : 1 ) . ']' );
|
802 |
+
$extra['date']['onClose'] = sprintf( "function(selectedDate){ $('#%s').datepicker('option','%sDate',selectedDate);}", $_data['id'], ( $i ? 'max' : 'min' ) );
|
803 |
+
$label_extra[ $i ]['after'] = self::_date( $_data, ( isset( $value[ $i ] ) ? $value[ $i ] : '' ), $extra );
|
804 |
+
$form[] = self::_label( $_data['name'], $label[ $i ], $label_extra[ $i ] );
|
805 |
}
|
806 |
$form = sprintf( '<div class="%s-dateperiod">%s</div>', self::$_name, implode( $separator, $form ) );
|
807 |
+
|
808 |
return $form;
|
809 |
}
|
810 |
|
813 |
*
|
814 |
* @param string $data Name field or array attributes.
|
815 |
* @param string $html HTML text.
|
816 |
+
* @param mixed $extra Styling or Custom variable.
|
817 |
+
*
|
818 |
* @return string
|
819 |
*/
|
820 |
public static function _html( $data = '', $html = '', $extra = '' ) {
|
823 |
$html = str_replace( '{' . $key . '}', (string) $value, $html );
|
824 |
}
|
825 |
}
|
826 |
+
|
827 |
return $html;
|
828 |
}
|
829 |
|
830 |
/**
|
831 |
* Create button html element
|
832 |
*
|
833 |
+
* @param mixed $data Name field or array attributes.
|
834 |
* @param string $value Value.
|
835 |
+
* @param mixed $extra Styling or Custom variable.
|
836 |
+
*
|
837 |
* @return type
|
838 |
*/
|
839 |
public static function _button( $data = '', $value = '', $extra = '' ) {
|
840 |
$defaults = array(
|
841 |
+
'type' => 'button',
|
842 |
+
'name' => is_array( $data ) ? '' : $data,
|
843 |
+
'value' => esc_attr( $value ),
|
844 |
);
|
845 |
+
|
846 |
return sprintf( '<button %s%s>%s</button>', self::__parseatr( $data, $defaults ), self::__atrtostr( $extra ), $value );
|
847 |
}
|
848 |
|
849 |
/**
|
850 |
* Create quick submit button html element
|
851 |
*
|
852 |
+
* @param mixed $data Name field or array attributes.
|
853 |
* @param string $value Value.
|
854 |
+
* @param mixed $extra Styling or Custom variable.
|
855 |
+
*
|
856 |
* @return type
|
857 |
*/
|
858 |
public static function _button_submit_quick( $data = '', $value = '', $extra = '' ) {
|
862 |
/**
|
863 |
* Create submit button html element
|
864 |
*
|
865 |
+
* @param mixed $data Name field or array attributes.
|
866 |
* @param string $value Value.
|
867 |
+
* @param mixed $extra Styling or Custom variable.
|
868 |
+
*
|
869 |
* @return type
|
870 |
*/
|
871 |
public static function _button_submit( $data = '', $value = '', $extra = '' ) {
|
873 |
$data = array( 'name' => $data );
|
874 |
}
|
875 |
$data['type'] = 'submit';
|
876 |
+
|
877 |
return self::_button( $data, $value, $extra );
|
878 |
}
|
879 |
|
882 |
*
|
883 |
* @param string $data Name field or array attributes.
|
884 |
* @param string $value Value.
|
885 |
+
* @param array $extra Styling or Custom variable.
|
886 |
+
*
|
887 |
* @return string
|
888 |
*/
|
889 |
public static function _label( $data = '', $value = '', $extra = array() ) {
|
909 |
$attr .= sprintf( ' %s="%s"', $key, $val );
|
910 |
}
|
911 |
}
|
912 |
+
|
913 |
return sprintf( '<label %s>%s%s%s</label>', $attr, $before, $value, $after );
|
914 |
}
|
915 |
|
918 |
*
|
919 |
* @param string $name Name field.
|
920 |
* @param string $separator Separator name.
|
921 |
+
*
|
922 |
* @return string
|
923 |
*/
|
924 |
private static function __createid( $name = '', $separator = '_' ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
926 |
if ( false === strpos( $name, self::$_name ) ) {
|
927 |
$name = self::$_name . $separator . $name;
|
928 |
}
|
929 |
+
|
930 |
return $name;
|
931 |
}
|
932 |
|
936 |
*
|
937 |
* @param mixed $attributes New attributes for element.
|
938 |
* @param array $default Default attributes for element.
|
939 |
+
*
|
940 |
* @return string
|
941 |
*/
|
942 |
private static function __parseatr( $attributes, $default ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
966 |
}
|
967 |
$att .= sprintf( '%s="%s" ', $key, $val );
|
968 |
}
|
969 |
+
|
970 |
return $att;
|
971 |
}
|
972 |
|
975 |
* Create attribute string for html element
|
976 |
*
|
977 |
* @param mixed $attributes New attributes for element.
|
978 |
+
*
|
979 |
* @return string
|
980 |
*/
|
981 |
static function __atrtostr( $attributes ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
996 |
}
|
997 |
$atts .= sprintf( '%s="%s" ', $key, $val );
|
998 |
}
|
999 |
+
|
1000 |
return $atts;
|
1001 |
}
|
1002 |
+
|
1003 |
return '';
|
1004 |
}
|
1005 |
|
1008 |
* Create attribute string for javascript object.
|
1009 |
*
|
1010 |
* @param mixed $attributes New attributes for element.
|
1011 |
+
*
|
1012 |
* @return string
|
1013 |
*/
|
1014 |
static function __atrtostrjs( $attributes ) { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
1029 |
}
|
1030 |
$atts .= sprintf( '%s: %s,', $key, $val );
|
1031 |
}
|
1032 |
+
|
1033 |
return $atts;
|
1034 |
}
|
1035 |
+
|
1036 |
return '';
|
1037 |
}
|
1038 |
|
1042 |
* @return string
|
1043 |
*/
|
1044 |
private static function __rndmane() { // @codingStandardsIgnoreLine WordPress.NamingConventions.ValidFunctionName.MethodDoubleUnderscore
|
1045 |
+
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
1046 |
+
$data = '';
|
1047 |
+
$length = rand( 4, 10 );
|
1048 |
+
for ( $i = 0; $i < $length; $i ++ ) {
|
1049 |
$data .= $characters[ rand( 0, strlen( $characters ) - 1 ) ];
|
1050 |
}
|
1051 |
+
|
1052 |
return $data;
|
1053 |
}
|
1054 |
|
1056 |
* Using for get value for element
|
1057 |
*
|
1058 |
* @param string $data Name value or array values.
|
1059 |
+
* @param mixed $value Value.
|
1060 |
+
*
|
1061 |
* @return mixed
|
1062 |
*/
|
1063 |
static function getvalue( $data, $value = '' ) {
|
1077 |
* Set value for form element
|
1078 |
*
|
1079 |
* @param string $data Name value or array values.
|
1080 |
+
* @param mixed $value Value.
|
1081 |
+
*
|
1082 |
* @return mixed
|
1083 |
*/
|
1084 |
public static function setvalue( $data, $value = '' ) {
|
1096 |
} else {
|
1097 |
self::$value[ $data ] = $value;
|
1098 |
}
|
1099 |
+
|
1100 |
return $_value;
|
1101 |
}
|
1102 |
|
1104 |
* Remove value for element
|
1105 |
*
|
1106 |
* @param string $data Name value or array values.
|
1107 |
+
* @param void $value Value.
|
1108 |
+
*
|
1109 |
* @return mixed
|
1110 |
*/
|
1111 |
public static function removevalue( $data, $value = '' ) {
|
1118 |
} else {
|
1119 |
unset( self::$value[ $data ] );
|
1120 |
}
|
1121 |
+
|
1122 |
return $value;
|
1123 |
}
|
1124 |
|
1126 |
* Using for get options for element
|
1127 |
*
|
1128 |
* @param string $data Name value or array values.
|
1129 |
+
* @param array $option Value.
|
1130 |
+
*
|
1131 |
* @return array
|
1132 |
*/
|
1133 |
static function getoption( $data, $option = array() ) {
|
1134 |
if ( isset( self::$option[ $data ] ) ) {
|
1135 |
return self::$option[ $data ];
|
1136 |
}
|
1137 |
+
|
1138 |
return $option;
|
1139 |
}
|
1140 |
|
1142 |
* Set options for form element
|
1143 |
*
|
1144 |
* @param string $data Name value or array values.
|
1145 |
+
* @param array $option Value.
|
1146 |
+
*
|
1147 |
* @return array
|
1148 |
*/
|
1149 |
public static function setoptions( $data, $option = array() ) {
|
1161 |
} else {
|
1162 |
self::$option[ $data ] = $option;
|
1163 |
}
|
1164 |
+
|
1165 |
return $_option;
|
1166 |
}
|
1167 |
|
1169 |
* Remove options for element
|
1170 |
*
|
1171 |
* @param string $data Name value or array values.
|
1172 |
+
* @param void $option Value.
|
1173 |
+
*
|
1174 |
* @return mixed
|
1175 |
*/
|
1176 |
public static function removeoptions( $data, $option = array() ) {
|
1183 |
} else {
|
1184 |
unset( self::$option[ $data ] );
|
1185 |
}
|
1186 |
+
|
1187 |
return $option;
|
1188 |
}
|
1189 |
|
1190 |
/**
|
1191 |
* Create input html element with type checkbox and class on/off
|
1192 |
*
|
1193 |
+
* @param mixed $data Name field or array attributes.
|
1194 |
* @param boolean $checked Value.
|
1195 |
+
* @param mixed $extra Styling or Custom variable.
|
1196 |
+
* @param string $value Value for form.
|
1197 |
+
*
|
1198 |
* @return string
|
1199 |
*/
|
1200 |
public static function _checkboxonoff( $data = '', $checked = false, $extra = '', $value = 'on' ) {
|
1208 |
} else {
|
1209 |
$extra .= sprintf( ' class="%s" ', $class );
|
1210 |
}
|
1211 |
+
|
1212 |
return self::_checkbox( $data, $checked, $extra, $value );
|
1213 |
}
|
1214 |
|
1219 |
* @param mixed $value Value.
|
1220 |
* @param mixed $extra Styling or Custom variable.
|
1221 |
* @param array $options Options for form.
|
1222 |
+
*
|
1223 |
* @return string
|
1224 |
*/
|
1225 |
public static function _multiradiobox( $data = '', $value = '', $extra = '', $options = array() ) {
|
1227 |
$data = array( 'name' => $data );
|
1228 |
}
|
1229 |
$extra_input = '';
|
1230 |
+
$class = sprintf( ' %s-form-multirbox', self::$_name );
|
1231 |
if ( is_array( $extra ) ) {
|
1232 |
if ( isset( $extra['class'] ) ) {
|
1233 |
$extra['class'] .= $class;
|
1241 |
} else {
|
1242 |
$extra .= sprintf( ' class="%s" ', $class );
|
1243 |
}
|
1244 |
+
|
1245 |
return sprintf( '<div id="%s" %s >%s</div>', self::__createid( $data['name'] ), self::__atrtostr( $extra ), self::_multiradio( $data, $value, $extra_input, $options ) );
|
1246 |
}
|
1247 |
|
1248 |
/**
|
1249 |
* Create input html element with type range
|
1250 |
*
|
1251 |
+
* @param mixed $data Name field or array attributes.
|
1252 |
* @param integer|float $value Value.
|
1253 |
+
* @param mixed $extra Styling or Custom variable.
|
1254 |
+
*
|
1255 |
* @return string
|
1256 |
*/
|
1257 |
public static function _numberrange( $data = '', $value = 0, $extra = array() ) {
|
1258 |
if ( ! is_array( $data ) ) {
|
1259 |
$data = array( 'name' => $data );
|
1260 |
}
|
1261 |
+
$data['type'] = 'range';
|
1262 |
+
$class = sprintf( ' %s-form-range', self::$_name );
|
1263 |
if ( is_array( $extra ) ) {
|
1264 |
if ( isset( $extra['class'] ) ) {
|
1265 |
$extra['class'] = $class;
|
1269 |
} else {
|
1270 |
$extra .= sprintf( ' class="%s" ', $class );
|
1271 |
}
|
1272 |
+
|
1273 |
return self::_text( $data, $value, $extra );
|
1274 |
}
|
1275 |
}
|
languages/ti-woocommerce-wishlist.pot
CHANGED
@@ -5,7 +5,7 @@ msgstr ""
|
|
5 |
"Project-Id-Version: WooCommerce Wishlist Plugin {{ VERSION }}\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/ti-woocommerce-wishlist\n"
|
8 |
-
"POT-Creation-Date: 2018-
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -41,296 +41,300 @@ msgstr ""
|
|
41 |
msgid "Template Custom CSS"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: admin/basestyle.helper.php:114 admin/settings/general.class.php:
|
45 |
msgid "Save Settings"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: admin/basestyle.helper.php:120 admin/settings/general.class.php:
|
49 |
msgid "Reset"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: admin/basestyle.helper.php:126 admin/settings/general.class.php:
|
53 |
msgid "Save"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: admin/settings/general.class.php:34 admin/settings/general.class.php:
|
57 |
msgid "General Settings"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: admin/settings/general.class.php:
|
|
|
|
|
|
|
|
|
61 |
msgid ""
|
62 |
"Wishlist page needs to be selected so the plugin knows where it is. This "
|
63 |
"page should be created upon installation of the plugin, if not you will "
|
64 |
"need to create it manually."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: admin/settings/general.class.php:
|
68 |
msgid "Default Wishlist Name"
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: admin/settings/general.class.php:
|
72 |
msgid "Wishlist Page"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: admin/settings/general.class.php:
|
76 |
msgid "Require Login"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: admin/settings/general.class.php:
|
80 |
msgid "Disallows guests to use Wishlist functionality until they sign-in."
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: admin/settings/general.class.php:
|
84 |
msgid "Redirect to Login Page"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: admin/settings/general.class.php:
|
88 |
msgid ""
|
89 |
"Currently this option could not be changed because \"Show successful notice "
|
90 |
"in popup\" is disabled. Guests will be redirected automatically to a login "
|
91 |
"page."
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: admin/settings/general.class.php:
|
95 |
msgid ""
|
96 |
"If enabled, guests will be redirected to a login page once clicking the "
|
97 |
"\"Add to Wishlist\" button or \"Wishlist Products Counter\" link. Otherwise "
|
98 |
"a popup with login required notice will appear."
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: admin/settings/general.class.php:
|
102 |
msgid "Show Link to Wishlist in my account"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: admin/settings/general.class.php:
|
106 |
msgid "Remove Product from Wishlist if added to cart"
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: admin/settings/general.class.php:
|
110 |
msgid "Redirect to the checkout page from Wishlist if added to cart"
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: admin/settings/general.class.php:
|
114 |
msgid "Remove by anyone"
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: admin/settings/general.class.php:
|
118 |
msgid "Remove product from Wishlist on second click"
|
119 |
msgstr ""
|
120 |
|
121 |
-
#: admin/settings/general.class.php:
|
122 |
msgid "Show successful notice in popup"
|
123 |
msgstr ""
|
124 |
|
125 |
-
#: admin/settings/general.class.php:
|
126 |
msgid ""
|
127 |
"This option allows to show/hide a popup with successful or error notices "
|
128 |
"after addition or removing products from a Wishlist."
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: admin/settings/general.class.php:
|
132 |
msgid "\"View Wishlist\" button Text"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: admin/settings/general.class.php:
|
136 |
msgid "Redirect to Wishlist"
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: admin/settings/general.class.php:
|
140 |
msgid ""
|
141 |
"If enabled, user will be redirected to wishlist page after 5 sec from "
|
142 |
"adding product to wishlist."
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: admin/settings/general.class.php:
|
146 |
msgid "\"Product added to Wishlist\" Text"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: admin/settings/general.class.php:
|
150 |
msgid "\"Product already in Wishlist\" Text"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: admin/settings/general.class.php:
|
154 |
msgid ""
|
155 |
"This notification will be shown if user will try to add a product that is "
|
156 |
"already in the wishlist."
|
157 |
msgstr ""
|
158 |
|
159 |
-
#: admin/settings/general.class.php:
|
160 |
msgid "\"Product removed from Wishlist\" Text"
|
161 |
msgstr ""
|
162 |
|
163 |
-
#: admin/settings/general.class.php:
|
164 |
msgid ""
|
165 |
"This notification will be shown once the product is removed from Wishlist "
|
166 |
"on a single or a catalog page."
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: admin/settings/general.class.php:
|
170 |
msgid "Wishlist Page Options"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: admin/settings/general.class.php:
|
174 |
msgid "Coming soon"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: admin/settings/general.class.php:
|
178 |
msgid "My Wishlist"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: admin/settings/general.class.php:
|
182 |
msgid "Wishlist Processing Options"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: admin/settings/general.class.php:
|
186 |
msgid "Automatic removal"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: admin/settings/general.class.php:
|
190 |
msgid "Remove condition"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: admin/settings/general.class.php:
|
194 |
msgid "Add to Cart"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: admin/settings/general.class.php:
|
198 |
msgid "Product page \"Add to Wishlist\" Button Settings"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: admin/settings/general.class.php:
|
202 |
#: views/wizard/step-button.php:32
|
203 |
msgid "Button position"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: admin/settings/general.class.php:
|
207 |
msgid ""
|
208 |
"Add this shortcode <code>[ti_wishlists_addtowishlist]</code> anywhere on "
|
209 |
"product page, if you have chosen custom position for product button. You "
|
210 |
"will have to do this for each product."
|
211 |
msgstr ""
|
212 |
|
213 |
-
#: admin/settings/general.class.php:
|
214 |
#: includes/wizard.class.php:406
|
215 |
msgid "After \"Add to Cart\" button"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: admin/settings/general.class.php:
|
219 |
#: includes/wizard.class.php:407
|
220 |
msgid "Before \"Add to Cart\" button"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: admin/settings/general.class.php:
|
224 |
#: includes/wizard.class.php:408
|
225 |
msgid "Custom position with code"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: admin/settings/general.class.php:
|
229 |
msgid "Button custom CSS class"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: admin/settings/general.class.php:
|
233 |
msgid ""
|
234 |
"You can add custom CSS classes to button markup separated by spaces. Most "
|
235 |
"of themes using <code>button</code> class for this type of buttons."
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: admin/settings/general.class.php:
|
239 |
msgid "\"Add to Wishlist\" Icon"
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: admin/settings/general.class.php:
|
243 |
msgid ""
|
244 |
"You can choose from our predefined icons or upload your custom icon. Custom "
|
245 |
"icon size is limited to 16x16 px."
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: admin/settings/general.class.php:
|
249 |
-
#: admin/settings/general.class.php:
|
250 |
msgid "None"
|
251 |
msgstr ""
|
252 |
|
253 |
-
#: admin/settings/general.class.php:
|
254 |
-
#: admin/settings/general.class.php:
|
255 |
msgid "Heart"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: admin/settings/general.class.php:
|
259 |
-
#: admin/settings/general.class.php:
|
260 |
msgid "Heart+"
|
261 |
msgstr ""
|
262 |
|
263 |
-
#: admin/settings/general.class.php:
|
264 |
-
#: admin/settings/general.class.php:
|
265 |
msgid "Custom"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: admin/settings/general.class.php:
|
269 |
-
#: admin/settings/general.class.php:
|
270 |
msgid "Upload"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: admin/settings/general.class.php:
|
274 |
msgid "\"Add to Wishlist\" Icon Color"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: admin/settings/general.class.php:
|
278 |
-
#: admin/settings/general.class.php:
|
279 |
msgid "Use font color"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: admin/settings/general.class.php:
|
283 |
-
#: admin/settings/general.class.php:
|
284 |
msgid "Black"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: admin/settings/general.class.php:
|
288 |
-
#: admin/settings/general.class.php:
|
289 |
msgid "White"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: admin/settings/general.class.php:
|
293 |
msgid "Show preloader"
|
294 |
msgstr ""
|
295 |
|
296 |
-
#: admin/settings/general.class.php:
|
297 |
msgid ""
|
298 |
"If enabled, applies animation for the button icon until product adding or "
|
299 |
"removing processed. (Usable for servers with slow connection mostly.)"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: admin/settings/general.class.php:
|
303 |
msgid "Show button text"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: admin/settings/general.class.php:
|
307 |
msgid "\"Add to Wishlist\" button Text"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: admin/settings/general.class.php:
|
311 |
msgid "\"Remove from Wishlist\" Button Text"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: admin/settings/general.class.php:
|
315 |
msgid "Product listing Button Settings"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: admin/settings/general.class.php:
|
319 |
msgid ""
|
320 |
"These are separate settings for the \"Add to Wishlist\" button on a product "
|
321 |
"listing (Shop page, categories, etc.). You can also adjust button and text "
|
322 |
"colors, size, etc. in a <code>TI Wishlist > Style Options.</code>"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: admin/settings/general.class.php:
|
326 |
msgid "Show in Product Listing"
|
327 |
msgstr ""
|
328 |
|
329 |
-
#: admin/settings/general.class.php:
|
330 |
msgid "Above Thumbnail"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: admin/settings/general.class.php:
|
334 |
msgid ""
|
335 |
"Note: if \"Custom position with code\" option is applied, the \"Add to "
|
336 |
"Wishlist\" button should be added into template using "
|
@@ -338,79 +342,79 @@ msgid ""
|
|
338 |
"/><code>do_shortcode(\"[ti_wishlists_addtowishlist loop=yes]\")</code>"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: admin/settings/general.class.php:
|
342 |
msgid "\"Add to Wishlist\" Text"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: admin/settings/general.class.php:
|
346 |
msgid "Wishlist Product Settings"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: admin/settings/general.class.php:
|
350 |
msgid ""
|
351 |
"Following options allows you to choose what information/functionality to "
|
352 |
"show/enable in wishlist table on wishlist page."
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: admin/settings/general.class.php:
|
356 |
msgid "Show \"Add to Cart\" button"
|
357 |
msgstr ""
|
358 |
|
359 |
-
#: admin/settings/general.class.php:
|
360 |
msgid "\"Add to Cart\" Text"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: admin/settings/general.class.php:
|
364 |
msgid "Show Unit price"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: admin/settings/general.class.php:
|
368 |
msgid "Show Stock status"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: admin/settings/general.class.php:
|
372 |
msgid "Show Date of addition"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: admin/settings/general.class.php:
|
376 |
msgid "Wishlist Table Settings"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: admin/settings/general.class.php:
|
380 |
msgid ""
|
381 |
"Following options will help user to manage and add products to cart from "
|
382 |
"wishlist table in bulk."
|
383 |
msgstr ""
|
384 |
|
385 |
-
#: admin/settings/general.class.php:
|
386 |
msgid "Show Checkboxes"
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: admin/settings/general.class.php:
|
390 |
msgid "Show Actions button"
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: admin/settings/general.class.php:
|
394 |
msgid "Bulk actions drop down at the bottom of wishlist table"
|
395 |
msgstr ""
|
396 |
|
397 |
-
#: admin/settings/general.class.php:
|
398 |
msgid "Show \"Add Selected to Cart\" button"
|
399 |
msgstr ""
|
400 |
|
401 |
-
#: admin/settings/general.class.php:
|
402 |
msgid "\"Add Selected to Cart\" Button Text"
|
403 |
msgstr ""
|
404 |
|
405 |
-
#: admin/settings/general.class.php:
|
406 |
msgid "Show \"Add All to Cart\" button"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: admin/settings/general.class.php:
|
410 |
msgid "\"Add All to Cart\" Button Text"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: admin/settings/general.class.php:
|
414 |
msgid ""
|
415 |
"Following options enable/disable Social share icons below wishlist table on "
|
416 |
"wishlist page. Wishlist owner can easily share their wishlists using this "
|
@@ -418,47 +422,47 @@ msgid ""
|
|
418 |
"shared status, private wishlists can't be shared."
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: admin/settings/general.class.php:
|
422 |
msgid "Social Networks Sharing Options"
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: admin/settings/general.class.php:
|
426 |
msgid "Show \"Facebook\" Button"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: admin/settings/general.class.php:
|
430 |
msgid "Show \"Twitter\" Button"
|
431 |
msgstr ""
|
432 |
|
433 |
-
#: admin/settings/general.class.php:
|
434 |
msgid "Show \"Pinterest\" Button"
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: admin/settings/general.class.php:
|
438 |
msgid "Show \"Google+\" Button"
|
439 |
msgstr ""
|
440 |
|
441 |
-
#: admin/settings/general.class.php:
|
442 |
msgid "Show \"Share by Email\" Button"
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: admin/settings/general.class.php:
|
446 |
msgid "\"Share on\" Text"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: admin/settings/general.class.php:
|
450 |
msgid "Social Icons Color"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: admin/settings/general.class.php:
|
454 |
msgid "Dark"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: admin/settings/general.class.php:
|
458 |
-
msgid "Wishlist
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: admin/settings/general.class.php:
|
462 |
msgid ""
|
463 |
"Add this shortcode <code>[ti_wishlist_products_counter]</code> anywhere "
|
464 |
"into a page content to show Wishlist Counter.<br/><br/>It can be also added "
|
@@ -466,26 +470,56 @@ msgid ""
|
|
466 |
"href=\"%s\">Appearance -> Widgets</a> section."
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: admin/settings/general.class.php:
|
470 |
-
msgid "\"Wishlist\" Icon"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: admin/settings/general.class.php:
|
474 |
-
msgid "\"Wishlist\" Icon Color"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: admin/settings/general.class.php:
|
478 |
-
msgid "Show
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: admin/settings/general.class.php:
|
482 |
-
msgid "Counter Text"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: admin/settings/general.class.php:
|
486 |
msgid "Wishlist - "
|
487 |
msgstr ""
|
488 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
#: admin/settings/style.class.php:34
|
490 |
msgid "Style Options"
|
491 |
msgstr ""
|
@@ -702,7 +736,7 @@ msgstr ""
|
|
702 |
msgid "Normal Buttons Text Hover Color"
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: admin/settings/upgrade.class.php:34 admin/tinvwl.class.php:
|
706 |
#: views/wizard/finish.php:31
|
707 |
msgid "Upgrade to Premium"
|
708 |
msgstr ""
|
@@ -763,13 +797,13 @@ msgstr ""
|
|
763 |
msgid "Are you sure you want to reset the settings?"
|
764 |
msgstr ""
|
765 |
|
766 |
-
#: admin/tinvwl.class.php:
|
767 |
msgid ""
|
768 |
"<code>%1$s</code> version <strong style=\"color:red\">%2$s</strong> is out "
|
769 |
"of date. The core version is <strong style=\"color:red\">%3$s</strong>"
|
770 |
msgstr ""
|
771 |
|
772 |
-
#: admin/tinvwl.class.php:
|
773 |
msgid ""
|
774 |
"<strong>Your theme (%1$s) contains outdated copies of some WooCommerce "
|
775 |
"Wishlist Plugin template files.</strong><br> These files may need updating "
|
@@ -810,7 +844,7 @@ msgstr ""
|
|
810 |
msgid "Register now »"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: includes/form.helper.php:
|
814 |
msgid "Preview"
|
815 |
msgstr ""
|
816 |
|
@@ -917,11 +951,11 @@ msgstr ""
|
|
917 |
msgid "Ready!"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: public/addtowishlist.class.php:
|
921 |
msgid "Please, login to add products to Wishlist"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: public/addtowishlist.class.php:
|
925 |
msgid "Login"
|
926 |
msgstr ""
|
927 |
|
@@ -955,6 +989,14 @@ msgstr ""
|
|
955 |
msgid "Show counter icon"
|
956 |
msgstr ""
|
957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
958 |
#: public/wishlist/buttons.class.php:60
|
959 |
msgid "Apply %s"
|
960 |
msgstr ""
|
@@ -963,7 +1005,7 @@ msgstr ""
|
|
963 |
msgid "Action"
|
964 |
msgstr ""
|
965 |
|
966 |
-
#: public/wishlist/buttons.class.php:
|
967 |
msgid ""
|
968 |
"Product %s could not be added to cart because some options are not "
|
969 |
"specified. Please, select some product options before adding the products "
|
@@ -975,41 +1017,41 @@ msgid_plural ""
|
|
975 |
msgstr[0] ""
|
976 |
msgstr[1] ""
|
977 |
|
978 |
-
#: public/wishlist/buttons.class.php:
|
979 |
msgid "Actions"
|
980 |
msgstr ""
|
981 |
|
982 |
-
#: public/wishlist/buttons.class.php:
|
983 |
msgid "Remove"
|
984 |
msgstr ""
|
985 |
|
986 |
-
#: public/wishlist/buttons.class.php:
|
987 |
msgid "“%s”"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: public/wishlist/buttons.class.php:
|
991 |
msgid "%s has been successfully removed from wishlist."
|
992 |
msgid_plural "%s have been successfully removed from wishlist."
|
993 |
msgstr[0] ""
|
994 |
msgstr[1] ""
|
995 |
|
996 |
-
#: public/wishlist/view.class.php:
|
997 |
msgid "%s has been removed from wishlist."
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: public/wishlist/view.class.php:
|
1001 |
msgid "%s has not been removed from wishlist."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: public/wishlist/view.class.php:
|
1005 |
msgid "Return to Wishlist"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: public/wishlist/view.class.php:
|
1009 |
msgid "Previous Page"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: public/wishlist/view.class.php:
|
1013 |
msgid "Next Page"
|
1014 |
msgstr ""
|
1015 |
|
@@ -1033,31 +1075,39 @@ msgstr ""
|
|
1033 |
msgid "Wishlist is not found!"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: templates/ti-wishlist-user.php:
|
|
|
|
|
|
|
|
|
1037 |
msgid "Product Name"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: templates/ti-wishlist-user.php:
|
1041 |
msgid "Product"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: templates/ti-wishlist-user.php:
|
1045 |
msgid "Unit Price"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: templates/ti-wishlist-user.php:
|
1049 |
msgid "Date Added"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: templates/ti-wishlist-user.php:
|
1053 |
msgid "Stock Status"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: templates/ti-wishlist-user.php:
|
|
|
|
|
|
|
|
|
1057 |
#: tinv-wishlists-function-integration.php:753
|
1058 |
-
#: tinv-wishlists-function-integration.php:
|
1059 |
-
#: tinv-wishlists-function-integration.php:
|
1060 |
-
#: tinv-wishlists-function-integration.php:
|
1061 |
msgid "In stock"
|
1062 |
msgstr ""
|
1063 |
|
@@ -1085,11 +1135,11 @@ msgstr ""
|
|
1085 |
msgid "Reload existing Gift Card"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: tinv-wishlists-function-integration.php:
|
1089 |
msgid "Out of stock"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: tinv-wishlists-function-integration.php:
|
1093 |
msgid "Base price"
|
1094 |
msgstr ""
|
1095 |
|
@@ -1339,7 +1389,7 @@ msgstr ""
|
|
1339 |
msgid "https://templateinvaders.com/"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: public/wishlist/buttons.class.php:
|
1343 |
msgctxt "Item name in quotes"
|
1344 |
msgid "“%s”"
|
1345 |
msgstr ""
|
5 |
"Project-Id-Version: WooCommerce Wishlist Plugin {{ VERSION }}\n"
|
6 |
"Report-Msgid-Bugs-To: "
|
7 |
"https://wordpress.org/support/plugin/ti-woocommerce-wishlist\n"
|
8 |
+
"POT-Creation-Date: 2018-10-17 16:23:30+00:00\n"
|
9 |
"MIME-Version: 1.0\n"
|
10 |
"Content-Type: text/plain; charset=utf-8\n"
|
11 |
"Content-Transfer-Encoding: 8bit\n"
|
41 |
msgid "Template Custom CSS"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: admin/basestyle.helper.php:114 admin/settings/general.class.php:777
|
45 |
msgid "Save Settings"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: admin/basestyle.helper.php:120 admin/settings/general.class.php:783
|
49 |
msgid "Reset"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: admin/basestyle.helper.php:126 admin/settings/general.class.php:789
|
53 |
msgid "Save"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: admin/settings/general.class.php:34 admin/settings/general.class.php:73
|
57 |
msgid "General Settings"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: admin/settings/general.class.php:47
|
61 |
+
msgid "Select Your Menu"
|
62 |
+
msgstr ""
|
63 |
+
|
64 |
+
#: admin/settings/general.class.php:74
|
65 |
msgid ""
|
66 |
"Wishlist page needs to be selected so the plugin knows where it is. This "
|
67 |
"page should be created upon installation of the plugin, if not you will "
|
68 |
"need to create it manually."
|
69 |
msgstr ""
|
70 |
|
71 |
+
#: admin/settings/general.class.php:80 views/wizard/step-page.php:27
|
72 |
msgid "Default Wishlist Name"
|
73 |
msgstr ""
|
74 |
|
75 |
+
#: admin/settings/general.class.php:86
|
76 |
msgid "Wishlist Page"
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: admin/settings/general.class.php:94
|
80 |
msgid "Require Login"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: admin/settings/general.class.php:95
|
84 |
msgid "Disallows guests to use Wishlist functionality until they sign-in."
|
85 |
msgstr ""
|
86 |
|
87 |
+
#: admin/settings/general.class.php:104
|
88 |
msgid "Redirect to Login Page"
|
89 |
msgstr ""
|
90 |
|
91 |
+
#: admin/settings/general.class.php:105
|
92 |
msgid ""
|
93 |
"Currently this option could not be changed because \"Show successful notice "
|
94 |
"in popup\" is disabled. Guests will be redirected automatically to a login "
|
95 |
"page."
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: admin/settings/general.class.php:105
|
99 |
msgid ""
|
100 |
"If enabled, guests will be redirected to a login page once clicking the "
|
101 |
"\"Add to Wishlist\" button or \"Wishlist Products Counter\" link. Otherwise "
|
102 |
"a popup with login required notice will appear."
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: admin/settings/general.class.php:112
|
106 |
msgid "Show Link to Wishlist in my account"
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: admin/settings/general.class.php:118
|
110 |
msgid "Remove Product from Wishlist if added to cart"
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: admin/settings/general.class.php:125 admin/settings/general.class.php:244
|
114 |
msgid "Redirect to the checkout page from Wishlist if added to cart"
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: admin/settings/general.class.php:131 admin/settings/general.class.php:251
|
118 |
msgid "Remove by anyone"
|
119 |
msgstr ""
|
120 |
|
121 |
+
#: admin/settings/general.class.php:138
|
122 |
msgid "Remove product from Wishlist on second click"
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: admin/settings/general.class.php:152
|
126 |
msgid "Show successful notice in popup"
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: admin/settings/general.class.php:153
|
130 |
msgid ""
|
131 |
"This option allows to show/hide a popup with successful or error notices "
|
132 |
"after addition or removing products from a Wishlist."
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: admin/settings/general.class.php:163
|
136 |
msgid "\"View Wishlist\" button Text"
|
137 |
msgstr ""
|
138 |
|
139 |
+
#: admin/settings/general.class.php:170
|
140 |
msgid "Redirect to Wishlist"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: admin/settings/general.class.php:171
|
144 |
msgid ""
|
145 |
"If enabled, user will be redirected to wishlist page after 5 sec from "
|
146 |
"adding product to wishlist."
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: admin/settings/general.class.php:178
|
150 |
msgid "\"Product added to Wishlist\" Text"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: admin/settings/general.class.php:185
|
154 |
msgid "\"Product already in Wishlist\" Text"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: admin/settings/general.class.php:186
|
158 |
msgid ""
|
159 |
"This notification will be shown if user will try to add a product that is "
|
160 |
"already in the wishlist."
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: admin/settings/general.class.php:193
|
164 |
msgid "\"Product removed from Wishlist\" Text"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: admin/settings/general.class.php:194
|
168 |
msgid ""
|
169 |
"This notification will be shown once the product is removed from Wishlist "
|
170 |
"on a single or a catalog page."
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: admin/settings/general.class.php:202
|
174 |
msgid "Wishlist Page Options"
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: admin/settings/general.class.php:203 admin/settings/general.class.php:220
|
178 |
msgid "Coming soon"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: admin/settings/general.class.php:210 views/wizard/step-page.php:36
|
182 |
msgid "My Wishlist"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: admin/settings/general.class.php:219
|
186 |
msgid "Wishlist Processing Options"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: admin/settings/general.class.php:227
|
190 |
msgid "Automatic removal"
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: admin/settings/general.class.php:234
|
194 |
msgid "Remove condition"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: admin/settings/general.class.php:237
|
198 |
msgid "Add to Cart"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: admin/settings/general.class.php:259
|
202 |
msgid "Product page \"Add to Wishlist\" Button Settings"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: admin/settings/general.class.php:265 admin/settings/general.class.php:389
|
206 |
#: views/wizard/step-button.php:32
|
207 |
msgid "Button position"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: admin/settings/general.class.php:266
|
211 |
msgid ""
|
212 |
"Add this shortcode <code>[ti_wishlists_addtowishlist]</code> anywhere on "
|
213 |
"product page, if you have chosen custom position for product button. You "
|
214 |
"will have to do this for each product."
|
215 |
msgstr ""
|
216 |
|
217 |
+
#: admin/settings/general.class.php:269 admin/settings/general.class.php:392
|
218 |
#: includes/wizard.class.php:406
|
219 |
msgid "After \"Add to Cart\" button"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: admin/settings/general.class.php:270 admin/settings/general.class.php:393
|
223 |
#: includes/wizard.class.php:407
|
224 |
msgid "Before \"Add to Cart\" button"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: admin/settings/general.class.php:271 admin/settings/general.class.php:395
|
228 |
#: includes/wizard.class.php:408
|
229 |
msgid "Custom position with code"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: admin/settings/general.class.php:277 admin/settings/general.class.php:402
|
233 |
msgid "Button custom CSS class"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: admin/settings/general.class.php:278 admin/settings/general.class.php:403
|
237 |
msgid ""
|
238 |
"You can add custom CSS classes to button markup separated by spaces. Most "
|
239 |
"of themes using <code>button</code> class for this type of buttons."
|
240 |
msgstr ""
|
241 |
|
242 |
+
#: admin/settings/general.class.php:287 admin/settings/general.class.php:412
|
243 |
msgid "\"Add to Wishlist\" Icon"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: admin/settings/general.class.php:288 admin/settings/general.class.php:670
|
247 |
msgid ""
|
248 |
"You can choose from our predefined icons or upload your custom icon. Custom "
|
249 |
"icon size is limited to 16x16 px."
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: admin/settings/general.class.php:291 admin/settings/general.class.php:415
|
253 |
+
#: admin/settings/general.class.php:665
|
254 |
msgid "None"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: admin/settings/general.class.php:292 admin/settings/general.class.php:416
|
258 |
+
#: admin/settings/general.class.php:666
|
259 |
msgid "Heart"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: admin/settings/general.class.php:293 admin/settings/general.class.php:417
|
263 |
+
#: admin/settings/general.class.php:667
|
264 |
msgid "Heart+"
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: admin/settings/general.class.php:294 admin/settings/general.class.php:418
|
268 |
+
#: admin/settings/general.class.php:668
|
269 |
msgid "Custom"
|
270 |
msgstr ""
|
271 |
|
272 |
+
#: admin/settings/general.class.php:311 admin/settings/general.class.php:434
|
273 |
+
#: admin/settings/general.class.php:685
|
274 |
msgid "Upload"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: admin/settings/general.class.php:320 admin/settings/general.class.php:443
|
278 |
msgid "\"Add to Wishlist\" Icon Color"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: admin/settings/general.class.php:322 admin/settings/general.class.php:445
|
282 |
+
#: admin/settings/general.class.php:645 admin/settings/general.class.php:696
|
283 |
msgid "Use font color"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: admin/settings/general.class.php:323 admin/settings/general.class.php:446
|
287 |
+
#: admin/settings/general.class.php:697
|
288 |
msgid "Black"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: admin/settings/general.class.php:324 admin/settings/general.class.php:447
|
292 |
+
#: admin/settings/general.class.php:647 admin/settings/general.class.php:698
|
293 |
msgid "White"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: admin/settings/general.class.php:331 admin/settings/general.class.php:454
|
297 |
msgid "Show preloader"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: admin/settings/general.class.php:332 admin/settings/general.class.php:455
|
301 |
msgid ""
|
302 |
"If enabled, applies animation for the button icon until product adding or "
|
303 |
"removing processed. (Usable for servers with slow connection mostly.)"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: admin/settings/general.class.php:338 admin/settings/general.class.php:461
|
307 |
msgid "Show button text"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: admin/settings/general.class.php:353
|
311 |
msgid "\"Add to Wishlist\" button Text"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: admin/settings/general.class.php:359 admin/settings/general.class.php:482
|
315 |
msgid "\"Remove from Wishlist\" Button Text"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: admin/settings/general.class.php:367
|
319 |
msgid "Product listing Button Settings"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: admin/settings/general.class.php:368
|
323 |
msgid ""
|
324 |
"These are separate settings for the \"Add to Wishlist\" button on a product "
|
325 |
"listing (Shop page, categories, etc.). You can also adjust button and text "
|
326 |
"colors, size, etc. in a <code>TI Wishlist > Style Options.</code>"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: admin/settings/general.class.php:374
|
330 |
msgid "Show in Product Listing"
|
331 |
msgstr ""
|
332 |
|
333 |
+
#: admin/settings/general.class.php:394
|
334 |
msgid "Above Thumbnail"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: admin/settings/general.class.php:397
|
338 |
msgid ""
|
339 |
"Note: if \"Custom position with code\" option is applied, the \"Add to "
|
340 |
"Wishlist\" button should be added into template using "
|
342 |
"/><code>do_shortcode(\"[ti_wishlists_addtowishlist loop=yes]\")</code>"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: admin/settings/general.class.php:476 views/wizard/step-button.php:41
|
346 |
msgid "\"Add to Wishlist\" Text"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: admin/settings/general.class.php:490
|
350 |
msgid "Wishlist Product Settings"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: admin/settings/general.class.php:491
|
354 |
msgid ""
|
355 |
"Following options allows you to choose what information/functionality to "
|
356 |
"show/enable in wishlist table on wishlist page."
|
357 |
msgstr ""
|
358 |
|
359 |
+
#: admin/settings/general.class.php:497
|
360 |
msgid "Show \"Add to Cart\" button"
|
361 |
msgstr ""
|
362 |
|
363 |
+
#: admin/settings/general.class.php:504
|
364 |
msgid "\"Add to Cart\" Text"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: admin/settings/general.class.php:511
|
368 |
msgid "Show Unit price"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: admin/settings/general.class.php:517
|
372 |
msgid "Show Stock status"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: admin/settings/general.class.php:523
|
376 |
msgid "Show Date of addition"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: admin/settings/general.class.php:530
|
380 |
msgid "Wishlist Table Settings"
|
381 |
msgstr ""
|
382 |
|
383 |
+
#: admin/settings/general.class.php:531
|
384 |
msgid ""
|
385 |
"Following options will help user to manage and add products to cart from "
|
386 |
"wishlist table in bulk."
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: admin/settings/general.class.php:537
|
390 |
msgid "Show Checkboxes"
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: admin/settings/general.class.php:549
|
394 |
msgid "Show Actions button"
|
395 |
msgstr ""
|
396 |
|
397 |
+
#: admin/settings/general.class.php:550
|
398 |
msgid "Bulk actions drop down at the bottom of wishlist table"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: admin/settings/general.class.php:556
|
402 |
msgid "Show \"Add Selected to Cart\" button"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: admin/settings/general.class.php:563
|
406 |
msgid "\"Add Selected to Cart\" Button Text"
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: admin/settings/general.class.php:574
|
410 |
msgid "Show \"Add All to Cart\" button"
|
411 |
msgstr ""
|
412 |
|
413 |
+
#: admin/settings/general.class.php:581
|
414 |
msgid "\"Add All to Cart\" Button Text"
|
415 |
msgstr ""
|
416 |
|
417 |
+
#: admin/settings/general.class.php:594
|
418 |
msgid ""
|
419 |
"Following options enable/disable Social share icons below wishlist table on "
|
420 |
"wishlist page. Wishlist owner can easily share their wishlists using this "
|
422 |
"shared status, private wishlists can't be shared."
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: admin/settings/general.class.php:600
|
426 |
msgid "Social Networks Sharing Options"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: admin/settings/general.class.php:606 views/wizard/step-social.php:26
|
430 |
msgid "Show \"Facebook\" Button"
|
431 |
msgstr ""
|
432 |
|
433 |
+
#: admin/settings/general.class.php:612 views/wizard/step-social.php:35
|
434 |
msgid "Show \"Twitter\" Button"
|
435 |
msgstr ""
|
436 |
|
437 |
+
#: admin/settings/general.class.php:618 views/wizard/step-social.php:44
|
438 |
msgid "Show \"Pinterest\" Button"
|
439 |
msgstr ""
|
440 |
|
441 |
+
#: admin/settings/general.class.php:624 views/wizard/step-social.php:53
|
442 |
msgid "Show \"Google+\" Button"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: admin/settings/general.class.php:630 views/wizard/step-social.php:62
|
446 |
msgid "Show \"Share by Email\" Button"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: admin/settings/general.class.php:636
|
450 |
msgid "\"Share on\" Text"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: admin/settings/general.class.php:642
|
454 |
msgid "Social Icons Color"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: admin/settings/general.class.php:646
|
458 |
msgid "Dark"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: admin/settings/general.class.php:655
|
462 |
+
msgid "Wishlist Product Counter"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: admin/settings/general.class.php:656
|
466 |
msgid ""
|
467 |
"Add this shortcode <code>[ti_wishlist_products_counter]</code> anywhere "
|
468 |
"into a page content to show Wishlist Counter.<br/><br/>It can be also added "
|
470 |
"href=\"%s\">Appearance -> Widgets</a> section."
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: admin/settings/general.class.php:662
|
474 |
+
msgid "\"Wishlist\" Counter Icon"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: admin/settings/general.class.php:694
|
478 |
+
msgid "\"Wishlist\" Counter Icon Color"
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: admin/settings/general.class.php:705
|
482 |
+
msgid "Show \"Wishlist\" Counter Text"
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: admin/settings/general.class.php:714
|
486 |
+
msgid "\"Wishlist\" Counter Text"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: admin/settings/general.class.php:715
|
490 |
msgid "Wishlist - "
|
491 |
msgstr ""
|
492 |
|
493 |
+
#: admin/settings/general.class.php:721
|
494 |
+
msgid "Add counter to menu"
|
495 |
+
msgstr ""
|
496 |
+
|
497 |
+
#: admin/settings/general.class.php:723
|
498 |
+
msgid "You can add a wishlist products counter as item to the selected menu."
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: admin/settings/general.class.php:732
|
502 |
+
msgid "Counter position (Menu item order)"
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: admin/settings/general.class.php:733
|
506 |
+
msgid ""
|
507 |
+
"Allows you to add the wishlist counter as a menu item and apply its "
|
508 |
+
"position."
|
509 |
+
msgstr ""
|
510 |
+
|
511 |
+
#: admin/settings/general.class.php:744
|
512 |
+
msgid "Show number of products in counter"
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: admin/settings/general.class.php:754
|
516 |
+
msgid "Support chat settings"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
+
#: admin/settings/general.class.php:761
|
520 |
+
msgid "Disable support chat"
|
521 |
+
msgstr ""
|
522 |
+
|
523 |
#: admin/settings/style.class.php:34
|
524 |
msgid "Style Options"
|
525 |
msgstr ""
|
736 |
msgid "Normal Buttons Text Hover Color"
|
737 |
msgstr ""
|
738 |
|
739 |
+
#: admin/settings/upgrade.class.php:34 admin/tinvwl.class.php:253
|
740 |
#: views/wizard/finish.php:31
|
741 |
msgid "Upgrade to Premium"
|
742 |
msgstr ""
|
797 |
msgid "Are you sure you want to reset the settings?"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: admin/tinvwl.class.php:292
|
801 |
msgid ""
|
802 |
"<code>%1$s</code> version <strong style=\"color:red\">%2$s</strong> is out "
|
803 |
"of date. The core version is <strong style=\"color:red\">%3$s</strong>"
|
804 |
msgstr ""
|
805 |
|
806 |
+
#: admin/tinvwl.class.php:318
|
807 |
msgid ""
|
808 |
"<strong>Your theme (%1$s) contains outdated copies of some WooCommerce "
|
809 |
"Wishlist Plugin template files.</strong><br> These files may need updating "
|
844 |
msgid "Register now »"
|
845 |
msgstr ""
|
846 |
|
847 |
+
#: includes/form.helper.php:508
|
848 |
msgid "Preview"
|
849 |
msgstr ""
|
850 |
|
951 |
msgid "Ready!"
|
952 |
msgstr ""
|
953 |
|
954 |
+
#: public/addtowishlist.class.php:172
|
955 |
msgid "Please, login to add products to Wishlist"
|
956 |
msgstr ""
|
957 |
|
958 |
+
#: public/addtowishlist.class.php:174
|
959 |
msgid "Login"
|
960 |
msgstr ""
|
961 |
|
989 |
msgid "Show counter icon"
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: public/widget/topwishlist.class.php:36
|
993 |
+
msgid "Show counter text"
|
994 |
+
msgstr ""
|
995 |
+
|
996 |
+
#: public/widget/topwishlist.class.php:41
|
997 |
+
msgid "Counter Text"
|
998 |
+
msgstr ""
|
999 |
+
|
1000 |
#: public/wishlist/buttons.class.php:60
|
1001 |
msgid "Apply %s"
|
1002 |
msgstr ""
|
1005 |
msgid "Action"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: public/wishlist/buttons.class.php:306 public/wishlist/buttons.class.php:431
|
1009 |
msgid ""
|
1010 |
"Product %s could not be added to cart because some options are not "
|
1011 |
"specified. Please, select some product options before adding the products "
|
1017 |
msgstr[0] ""
|
1018 |
msgstr[1] ""
|
1019 |
|
1020 |
+
#: public/wishlist/buttons.class.php:334
|
1021 |
msgid "Actions"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: public/wishlist/buttons.class.php:343 templates/ti-wishlist.php:72
|
1025 |
msgid "Remove"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: public/wishlist/buttons.class.php:485 public/wishlist/view.class.php:355
|
1029 |
msgid "“%s”"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
+
#: public/wishlist/buttons.class.php:498
|
1033 |
msgid "%s has been successfully removed from wishlist."
|
1034 |
msgid_plural "%s have been successfully removed from wishlist."
|
1035 |
msgstr[0] ""
|
1036 |
msgstr[1] ""
|
1037 |
|
1038 |
+
#: public/wishlist/view.class.php:365
|
1039 |
msgid "%s has been removed from wishlist."
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: public/wishlist/view.class.php:367
|
1043 |
msgid "%s has not been removed from wishlist."
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: public/wishlist/view.class.php:508
|
1047 |
msgid "Return to Wishlist"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: public/wishlist/view.class.php:603
|
1051 |
msgid "Previous Page"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: public/wishlist/view.class.php:612
|
1055 |
msgid "Next Page"
|
1056 |
msgstr ""
|
1057 |
|
1075 |
msgid "Wishlist is not found!"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: templates/ti-wishlist-user.php:26 templates/ti-wishlist.php:26
|
1079 |
+
msgid "Select all for bulk action"
|
1080 |
+
msgstr ""
|
1081 |
+
|
1082 |
+
#: templates/ti-wishlist-user.php:31 templates/ti-wishlist.php:32
|
1083 |
msgid "Product Name"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: templates/ti-wishlist-user.php:32 templates/ti-wishlist.php:33
|
1087 |
msgid "Product"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: templates/ti-wishlist-user.php:34 templates/ti-wishlist.php:35
|
1091 |
msgid "Unit Price"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: templates/ti-wishlist-user.php:37 templates/ti-wishlist.php:38
|
1095 |
msgid "Date Added"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: templates/ti-wishlist-user.php:40 templates/ti-wishlist.php:41
|
1099 |
msgid "Stock Status"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: templates/ti-wishlist-user.php:63 templates/ti-wishlist.php:64
|
1103 |
+
msgid "Select for bulk action"
|
1104 |
+
msgstr ""
|
1105 |
+
|
1106 |
+
#: templates/ti-wishlist-user.php:116 templates/ti-wishlist.php:124
|
1107 |
#: tinv-wishlists-function-integration.php:753
|
1108 |
+
#: tinv-wishlists-function-integration.php:910
|
1109 |
+
#: tinv-wishlists-function-integration.php:1072
|
1110 |
+
#: tinv-wishlists-function-integration.php:1286
|
1111 |
msgid "In stock"
|
1112 |
msgstr ""
|
1113 |
|
1135 |
msgid "Reload existing Gift Card"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: tinv-wishlists-function-integration.php:1225
|
1139 |
msgid "Out of stock"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: tinv-wishlists-function-integration.php:1631
|
1143 |
msgid "Base price"
|
1144 |
msgstr ""
|
1145 |
|
1389 |
msgid "https://templateinvaders.com/"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
+
#: public/wishlist/buttons.class.php:303 public/wishlist/buttons.class.php:428
|
1393 |
msgctxt "Item name in quotes"
|
1394 |
msgid "“%s”"
|
1395 |
msgstr ""
|
public/addtowishlist.class.php
CHANGED
@@ -145,6 +145,7 @@ class TInvWL_Public_AddToWishlist {
|
|
145 |
'product_variation' => FILTER_VALIDATE_INT,
|
146 |
'product_type' => FILTER_SANITIZE_STRING,
|
147 |
'product_action' => FILTER_SANITIZE_STRING,
|
|
|
148 |
) );
|
149 |
|
150 |
$wlp = null;
|
@@ -166,10 +167,10 @@ class TInvWL_Public_AddToWishlist {
|
|
166 |
$data['icon'] = 'icon_big_times';
|
167 |
if ( tinv_get_option( 'general', 'redirect_require_login' ) ) {
|
168 |
$data['msg'] = array();
|
169 |
-
$data['force_redirect'] = apply_filters( 'tinvwl_addtowishlist_login_page', wc_get_page_permalink( 'myaccount' ), $post );
|
170 |
} else {
|
171 |
$data['msg'][] = __( 'Please, login to add products to Wishlist', 'ti-woocommerce-wishlist' );
|
172 |
-
$data['dialog_custom_url'] = apply_filters( 'tinvwl_addtowishlist_login_page', wc_get_page_permalink( 'myaccount' ), $post );
|
173 |
$data['dialog_custom_html'] = '<i class="ftinvwl ftinvwl-key"></i>' . esc_html( __( 'Login', 'ti-woocommerce-wishlist' ) );
|
174 |
}
|
175 |
$data['msg'] = array_unique( $data['msg'] );
|
@@ -236,6 +237,7 @@ class TInvWL_Public_AddToWishlist {
|
|
236 |
break;
|
237 |
case 'variable' :
|
238 |
case 'variation' :
|
|
|
239 |
|
240 |
if ( $post['product_variation'] ) {
|
241 |
$variation_id = $post['product_variation'];
|
@@ -372,7 +374,11 @@ class TInvWL_Public_AddToWishlist {
|
|
372 |
*/
|
373 |
function user_wishlist( $product, $wlp = null ) {
|
374 |
$wishlists = $this->wishlist = array();
|
375 |
-
$vproduct =
|
|
|
|
|
|
|
|
|
376 |
$wlp = new TInvWL_Product();
|
377 |
$wishlists = $this->user_wishlists();
|
378 |
$ids = array();
|
@@ -441,7 +447,10 @@ class TInvWL_Public_AddToWishlist {
|
|
441 |
$allow = ( ( ! $product->is_purchasable() && '' == $product->get_price() ) || ( $product->is_purchasable() && ! $product->is_in_stock() ) );
|
442 |
}
|
443 |
|
444 |
-
if (
|
|
|
|
|
|
|
445 |
$get_variations = count( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );
|
446 |
$available_variations = $get_variations ? $product->get_available_variations() : false;
|
447 |
$allow = ( empty( $available_variations ) && false !== $available_variations );
|
@@ -495,7 +504,10 @@ class TInvWL_Public_AddToWishlist {
|
|
495 |
|
496 |
add_action( 'tinv_wishlist_addtowishlist_button', array( $this, 'button' ) );
|
497 |
|
498 |
-
if ( $this->is_loop &&
|
|
|
|
|
|
|
499 |
$this->variation_id = null;
|
500 |
$match_attributes = array();
|
501 |
|
@@ -516,7 +528,10 @@ class TInvWL_Public_AddToWishlist {
|
|
516 |
$data = array(
|
517 |
'class_postion' => sprintf( 'tinvwl-%s-add-to-cart', $this->is_loop ? tinv_get_option( 'add_to_wishlist_catalog', 'position' ) : $position ) . ( $this->is_loop ? ' tinvwl-loop-button-wrapper' : '' ),
|
518 |
'product' => $this->product,
|
519 |
-
'variation_id' => ( $this->is_loop &&
|
|
|
|
|
|
|
520 |
'TInvWishlist' => $wishlists,
|
521 |
'button_icon' => tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'icon' ),
|
522 |
'add_to_wishlist' => tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'text' ),
|
@@ -561,7 +576,10 @@ class TInvWL_Public_AddToWishlist {
|
|
561 |
}
|
562 |
}
|
563 |
$icon .= $icon_class;
|
564 |
-
$variation_id = ( ( $this->is_loop &&
|
|
|
|
|
|
|
565 |
foreach ( $this->wishlist as $value ) {
|
566 |
if ( $value['in'] && in_array( $variation_id, $value['in'] ) ) {
|
567 |
$icon .= ' tinvwl-product-in-list';
|
@@ -586,7 +604,10 @@ class TInvWL_Public_AddToWishlist {
|
|
586 |
|
587 |
$icon .= ( tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'show_preloader' ) ) ? ' ftinvwl-animated' : '';
|
588 |
|
589 |
-
$content .= sprintf( '<a class="tinvwl_add_to_wishlist_button %s" data-tinv-wl-list="%s" data-tinv-wl-product="%s" data-tinv-wl-productvariation="%s" data-tinv-wl-producttype="%s" data-tinv-wl-action="%s" rel="nofollow">%s</a>', $icon, htmlspecialchars( wp_json_encode( $this->wishlist ) ), ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->id : ( $this->product->is_type( 'variation' ) ? $this->product->get_parent_id() : $this->product->get_id() ) ), ( ( $this->is_loop &&
|
|
|
|
|
|
|
590 |
$content .= apply_filters( 'tinvwl_wishlist_button_after', '' );
|
591 |
|
592 |
if ( ! empty( $text ) ) {
|
145 |
'product_variation' => FILTER_VALIDATE_INT,
|
146 |
'product_type' => FILTER_SANITIZE_STRING,
|
147 |
'product_action' => FILTER_SANITIZE_STRING,
|
148 |
+
'redirect' => FILTER_SANITIZE_URL,
|
149 |
) );
|
150 |
|
151 |
$wlp = null;
|
167 |
$data['icon'] = 'icon_big_times';
|
168 |
if ( tinv_get_option( 'general', 'redirect_require_login' ) ) {
|
169 |
$data['msg'] = array();
|
170 |
+
$data['force_redirect'] = apply_filters( 'tinvwl_addtowishlist_login_page', add_query_arg( 'tinvwl_redirect', $post['redirect'], wc_get_page_permalink( 'myaccount' ) ), $post );
|
171 |
} else {
|
172 |
$data['msg'][] = __( 'Please, login to add products to Wishlist', 'ti-woocommerce-wishlist' );
|
173 |
+
$data['dialog_custom_url'] = apply_filters( 'tinvwl_addtowishlist_login_page', add_query_arg( 'tinvwl_redirect', $post['redirect'], wc_get_page_permalink( 'myaccount' ) ), $post );
|
174 |
$data['dialog_custom_html'] = '<i class="ftinvwl ftinvwl-key"></i>' . esc_html( __( 'Login', 'ti-woocommerce-wishlist' ) );
|
175 |
}
|
176 |
$data['msg'] = array_unique( $data['msg'] );
|
237 |
break;
|
238 |
case 'variable' :
|
239 |
case 'variation' :
|
240 |
+
case 'variable-subscription' :
|
241 |
|
242 |
if ( $post['product_variation'] ) {
|
243 |
$variation_id = $post['product_variation'];
|
374 |
*/
|
375 |
function user_wishlist( $product, $wlp = null ) {
|
376 |
$wishlists = $this->wishlist = array();
|
377 |
+
$vproduct = in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->product_type : $product->get_type() ), array(
|
378 |
+
'variable',
|
379 |
+
'variation',
|
380 |
+
'variable-subscription'
|
381 |
+
) );
|
382 |
$wlp = new TInvWL_Product();
|
383 |
$wishlists = $this->user_wishlists();
|
384 |
$ids = array();
|
447 |
$allow = ( ( ! $product->is_purchasable() && '' == $product->get_price() ) || ( $product->is_purchasable() && ! $product->is_in_stock() ) );
|
448 |
}
|
449 |
|
450 |
+
if ( in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->product_type : $product->get_type() ), array(
|
451 |
+
'variable',
|
452 |
+
'variable-subscription'
|
453 |
+
) ) ) {
|
454 |
$get_variations = count( $product->get_children() ) <= apply_filters( 'woocommerce_ajax_variation_threshold', 30, $product );
|
455 |
$available_variations = $get_variations ? $product->get_available_variations() : false;
|
456 |
$allow = ( empty( $available_variations ) && false !== $available_variations );
|
504 |
|
505 |
add_action( 'tinv_wishlist_addtowishlist_button', array( $this, 'button' ) );
|
506 |
|
507 |
+
if ( $this->is_loop && in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->product_type : $product->get_type() ), array(
|
508 |
+
'variable',
|
509 |
+
'variable-subscription'
|
510 |
+
) ) ) {
|
511 |
$this->variation_id = null;
|
512 |
$match_attributes = array();
|
513 |
|
528 |
$data = array(
|
529 |
'class_postion' => sprintf( 'tinvwl-%s-add-to-cart', $this->is_loop ? tinv_get_option( 'add_to_wishlist_catalog', 'position' ) : $position ) . ( $this->is_loop ? ' tinvwl-loop-button-wrapper' : '' ),
|
530 |
'product' => $this->product,
|
531 |
+
'variation_id' => ( $this->is_loop && in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->product_type : $this->product->get_type() ), array(
|
532 |
+
'variable',
|
533 |
+
'variable-subscription'
|
534 |
+
) ) ) ? $this->variation_id : ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->variation_id : ( $this->product->is_type( 'variation' ) ? $this->product->get_id() : 0 ) ),
|
535 |
'TInvWishlist' => $wishlists,
|
536 |
'button_icon' => tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'icon' ),
|
537 |
'add_to_wishlist' => tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'text' ),
|
576 |
}
|
577 |
}
|
578 |
$icon .= $icon_class;
|
579 |
+
$variation_id = ( ( $this->is_loop && in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->product_type : $this->product->get_type() ), array(
|
580 |
+
'variable',
|
581 |
+
'variable-subscription'
|
582 |
+
) ) ) ? $this->variation_id : ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->variation_id : ( $this->product->is_type( 'variation' ) ? $this->product->get_id() : 0 ) ) );
|
583 |
foreach ( $this->wishlist as $value ) {
|
584 |
if ( $value['in'] && in_array( $variation_id, $value['in'] ) ) {
|
585 |
$icon .= ' tinvwl-product-in-list';
|
604 |
|
605 |
$icon .= ( tinv_get_option( 'add_to_wishlist' . ( $this->is_loop ? '_catalog' : '' ), 'show_preloader' ) ) ? ' ftinvwl-animated' : '';
|
606 |
|
607 |
+
$content .= sprintf( '<a class="tinvwl_add_to_wishlist_button %s" data-tinv-wl-list="%s" data-tinv-wl-product="%s" data-tinv-wl-productvariation="%s" data-tinv-wl-producttype="%s" data-tinv-wl-action="%s" rel="nofollow">%s</a>', $icon, htmlspecialchars( wp_json_encode( $this->wishlist ) ), ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->id : ( $this->product->is_type( 'variation' ) ? $this->product->get_parent_id() : $this->product->get_id() ) ), ( ( $this->is_loop && in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->product_type : $this->product->get_type() ), array(
|
608 |
+
'variable',
|
609 |
+
'variable-subscription'
|
610 |
+
) ) ) ? $this->variation_id : ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->variation_id : ( $this->product->is_type( 'variation' ) ? $this->product->get_id() : 0 ) ) ), ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $this->product->product_type : $this->product->get_type() ), $action, $text );
|
611 |
$content .= apply_filters( 'tinvwl_wishlist_button_after', '' );
|
612 |
|
613 |
if ( ! empty( $text ) ) {
|
public/tinvwl.class.php
CHANGED
@@ -83,7 +83,7 @@ class TInvWL_Public_TInvWL {
|
|
83 |
$this->addto = TInvWL_Public_AddToWishlist::instance( $this->_name );
|
84 |
$this->view = TInvWL_Public_Wishlist_View::instance( $this->_name );
|
85 |
$this->cart = TInvWL_Public_Cart::instance( $this->_name );
|
86 |
-
$this->topwishlist =
|
87 |
}
|
88 |
|
89 |
/**
|
83 |
$this->addto = TInvWL_Public_AddToWishlist::instance( $this->_name );
|
84 |
$this->view = TInvWL_Public_Wishlist_View::instance( $this->_name );
|
85 |
$this->cart = TInvWL_Public_Cart::instance( $this->_name );
|
86 |
+
$this->topwishlist = TInvWL_Public_WishlistCounter::instance( $this->_name );
|
87 |
}
|
88 |
|
89 |
/**
|
public/wishlist/buttons.class.php
CHANGED
@@ -204,6 +204,7 @@ class TInvWL_Public_Wishlist_Buttons {
|
|
204 |
'class' => 'button',
|
205 |
'name' => 'tinvwl-action',
|
206 |
'value' => $value,
|
|
|
207 |
);
|
208 |
$attr = apply_filters( self::$_name . '_prepare_attr__button_' . $value, $attr );
|
209 |
foreach ( $attr as $key => &$value ) {
|
204 |
'class' => 'button',
|
205 |
'name' => 'tinvwl-action',
|
206 |
'value' => $value,
|
207 |
+
'title' => esc_attr( wp_strip_all_tags( $title ) ),
|
208 |
);
|
209 |
$attr = apply_filters( self::$_name . '_prepare_attr__button_' . $value, $attr );
|
210 |
foreach ( $attr as $key => &$value ) {
|
public/wishlist/view.class.php
CHANGED
@@ -74,6 +74,8 @@ class TInvWL_Public_Wishlist_View {
|
|
74 |
function define_hooks() {
|
75 |
add_action( 'template_redirect', array( $this, 'login_redirect' ) );
|
76 |
|
|
|
|
|
77 |
add_action( 'wp', array( $this, 'wishlist_action' ), 0 );
|
78 |
|
79 |
add_action( 'tinvwl_before_wishlist', array( $this, 'wishlist_header' ) );
|
@@ -88,13 +90,35 @@ class TInvWL_Public_Wishlist_View {
|
|
88 |
TInvWL_Public_Wishlist_Buttons::init( $this->_name );
|
89 |
}
|
90 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
|
92 |
/**
|
93 |
* Redirect guests to login page.
|
94 |
*/
|
95 |
public function login_redirect() {
|
96 |
if ( is_page( apply_filters( 'wpml_object_id', tinv_get_option( 'page', 'wishlist' ), 'page', true ) ) && ! is_user_logged_in() && tinv_get_option( 'general', 'require_login' ) ) {
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
exit;
|
99 |
}
|
100 |
}
|
@@ -142,7 +166,10 @@ class TInvWL_Public_Wishlist_View {
|
|
142 |
// override global product data.
|
143 |
$product = $_product;
|
144 |
if ( apply_filters( 'tinvwl_product_add_to_cart_need_redirect', false, $product, $product->get_permalink(), $wl_product )
|
145 |
-
&&
|
|
|
|
|
|
|
146 |
|
147 |
$text = $product->add_to_cart_text();
|
148 |
|
@@ -258,7 +285,8 @@ class TInvWL_Public_Wishlist_View {
|
|
258 |
define( 'DONOTCACHEDB', true );
|
259 |
}
|
260 |
} else {
|
261 |
-
WC_Cache_Helper::set_nocache_constants();
|
|
|
262 |
}
|
263 |
|
264 |
$is_owner = is_user_logged_in() ? ( get_current_user_id() === $wishlist['author'] ) : $wishlist['is_owner'];
|
74 |
function define_hooks() {
|
75 |
add_action( 'template_redirect', array( $this, 'login_redirect' ) );
|
76 |
|
77 |
+
add_action( 'wp_loaded', array( $this, 'login_post_redirect' ), 19 );
|
78 |
+
|
79 |
add_action( 'wp', array( $this, 'wishlist_action' ), 0 );
|
80 |
|
81 |
add_action( 'tinvwl_before_wishlist', array( $this, 'wishlist_header' ) );
|
90 |
TInvWL_Public_Wishlist_Buttons::init( $this->_name );
|
91 |
}
|
92 |
|
93 |
+
/**
|
94 |
+
* Redirect back after successful login.
|
95 |
+
*/
|
96 |
+
public function login_post_redirect() {
|
97 |
+
$nonce_value = wc_get_var( $_REQUEST['woocommerce-login-nonce'], wc_get_var( $_REQUEST['_wpnonce'], '' ) ); // @codingStandardsIgnoreLine.
|
98 |
+
if ( ! empty( $_POST['login'] ) && wp_verify_nonce( $nonce_value, 'woocommerce-login' ) && ! empty( $_GET['tinvwl_redirect'] ) ) {
|
99 |
+
$_POST['redirect'] = $_GET['tinvwl_redirect']; // Force WC Login form handler to do redirect.
|
100 |
+
}
|
101 |
+
}
|
102 |
|
103 |
/**
|
104 |
* Redirect guests to login page.
|
105 |
*/
|
106 |
public function login_redirect() {
|
107 |
if ( is_page( apply_filters( 'wpml_object_id', tinv_get_option( 'page', 'wishlist' ), 'page', true ) ) && ! is_user_logged_in() && tinv_get_option( 'general', 'require_login' ) ) {
|
108 |
+
$full_link = get_permalink();
|
109 |
+
$share_key = get_query_var( 'tinvwlID', null );
|
110 |
+
if ( ! empty( $share_key ) ) {
|
111 |
+
if ( get_option( 'permalink_structure' ) ) {
|
112 |
+
if ( ! preg_match( '/\/$/', $full_link ) ) {
|
113 |
+
$full_link .= '/';
|
114 |
+
}
|
115 |
+
$full_link .= $share_key . '/';
|
116 |
+
} else {
|
117 |
+
$full_link = add_query_arg( 'tinvwlID', $share_key, $full_link );
|
118 |
+
}
|
119 |
+
}
|
120 |
+
|
121 |
+
wp_safe_redirect( add_query_arg( 'tinvwl_redirect', esc_url( $full_link ), wc_get_page_permalink( 'myaccount' ) ) );
|
122 |
exit;
|
123 |
}
|
124 |
}
|
166 |
// override global product data.
|
167 |
$product = $_product;
|
168 |
if ( apply_filters( 'tinvwl_product_add_to_cart_need_redirect', false, $product, $product->get_permalink(), $wl_product )
|
169 |
+
&& in_array( ( version_compare( WC_VERSION, '3.0.0', '<' ) ? $product->product_type : $product->get_type() ), array(
|
170 |
+
'variable',
|
171 |
+
'variable-subscription'
|
172 |
+
) ) ) {
|
173 |
|
174 |
$text = $product->add_to_cart_text();
|
175 |
|
285 |
define( 'DONOTCACHEDB', true );
|
286 |
}
|
287 |
} else {
|
288 |
+
WC_Cache_Helper::set_nocache_constants( true );
|
289 |
+
nocache_headers();
|
290 |
}
|
291 |
|
292 |
$is_owner = is_user_logged_in() ? ( get_current_user_id() === $wishlist['author'] ) : $wishlist['is_owner'];
|
public/{topwishlist.class.php → wishlistcounter.class.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
*
|
4 |
*
|
5 |
* @since 1.4.0
|
6 |
* @package TInvWishlist\Public
|
@@ -14,7 +14,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
14 |
/**
|
15 |
* Drop down widget
|
16 |
*/
|
17 |
-
class
|
18 |
|
19 |
/**
|
20 |
* Plugin name
|
@@ -25,7 +25,7 @@ class TInvWL_Public_TopWishlist {
|
|
25 |
/**
|
26 |
* This class
|
27 |
*
|
28 |
-
* @var \
|
29 |
*/
|
30 |
protected static $_instance = null;
|
31 |
|
@@ -34,7 +34,7 @@ class TInvWL_Public_TopWishlist {
|
|
34 |
*
|
35 |
* @param string $plugin_name Plugin name.
|
36 |
*
|
37 |
-
* @return \
|
38 |
*/
|
39 |
public static function instance( $plugin_name = TINVWL_PREFIX ) {
|
40 |
if ( is_null( self::$_instance ) ) {
|
@@ -60,6 +60,123 @@ class TInvWL_Public_TopWishlist {
|
|
60 |
function define_hooks() {
|
61 |
add_filter( 'tinvwl_addtowishlist_return_ajax', array( __CLASS__, 'update_widget' ) );
|
62 |
add_filter( 'woocommerce_add_to_cart_fragments', array( __CLASS__, 'update_fragments' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
}
|
64 |
|
65 |
/**
|
@@ -138,7 +255,7 @@ class TInvWL_Public_TopWishlist {
|
|
138 |
}
|
139 |
}
|
140 |
|
141 |
-
return $count;
|
142 |
}
|
143 |
|
144 |
/**
|
@@ -153,7 +270,7 @@ class TInvWL_Public_TopWishlist {
|
|
153 |
'show_icon' => (bool) tinv_get_option( 'topline', 'icon' ),
|
154 |
'show_text' => tinv_get_option( 'topline', 'show_text' ),
|
155 |
'text' => apply_filters( 'tinvwl-topline-text', tinv_get_option( 'topline', 'text' ) ),
|
156 |
-
'show_counter' => '
|
157 |
);
|
158 |
$atts = filter_var_array( shortcode_atts( $default, $atts ), array(
|
159 |
'show_icon' => FILTER_VALIDATE_BOOLEAN,
|
1 |
<?php
|
2 |
/**
|
3 |
+
* Wishlist counter
|
4 |
*
|
5 |
* @since 1.4.0
|
6 |
* @package TInvWishlist\Public
|
14 |
/**
|
15 |
* Drop down widget
|
16 |
*/
|
17 |
+
class TInvWL_Public_WishlistCounter {
|
18 |
|
19 |
/**
|
20 |
* Plugin name
|
25 |
/**
|
26 |
* This class
|
27 |
*
|
28 |
+
* @var \TInvWL_Public_WishlistCounter
|
29 |
*/
|
30 |
protected static $_instance = null;
|
31 |
|
34 |
*
|
35 |
* @param string $plugin_name Plugin name.
|
36 |
*
|
37 |
+
* @return \TInvWL_Public_WishlistCounter
|
38 |
*/
|
39 |
public static function instance( $plugin_name = TINVWL_PREFIX ) {
|
40 |
if ( is_null( self::$_instance ) ) {
|
60 |
function define_hooks() {
|
61 |
add_filter( 'tinvwl_addtowishlist_return_ajax', array( __CLASS__, 'update_widget' ) );
|
62 |
add_filter( 'woocommerce_add_to_cart_fragments', array( __CLASS__, 'update_fragments' ) );
|
63 |
+
if ( tinv_get_option( 'topline', 'menu' ) ) {
|
64 |
+
add_filter( 'wp_get_nav_menu_items', array( __CLASS__, 'add_to_menu' ), 9, 3 );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Add to menu wishlist link
|
71 |
+
*
|
72 |
+
* @param array $items An array of menu item post objects.
|
73 |
+
* @param object $menu The menu object.
|
74 |
+
* @param array $args An array of arguments used to retrieve menu item objects.
|
75 |
+
*
|
76 |
+
* @return array
|
77 |
+
*/
|
78 |
+
public static function add_to_menu( $items, $menu, $args ) {
|
79 |
+
|
80 |
+
|
81 |
+
$menu_cnt = count( $items ) + 1;
|
82 |
+
$menu_id = tinv_get_option( 'topline', 'menu' );
|
83 |
+
|
84 |
+
if ( $menu_id == $menu->term_id ) {
|
85 |
+
|
86 |
+
$menu_order = tinv_get_option( 'topline', 'menu_order' ) ? tinv_get_option( 'topline', 'menu_order' ) : 100;
|
87 |
+
|
88 |
+
// Item title.
|
89 |
+
|
90 |
+
$show_icon = (bool) tinv_get_option( 'topline', 'icon' );
|
91 |
+
$icon_type = tinv_get_option( 'topline', 'icon' );
|
92 |
+
$icon_class = ( $show_icon && tinv_get_option( 'topline', 'icon' ) ) ? 'top_wishlist-' . tinv_get_option( 'topline', 'icon' ) : '';
|
93 |
+
$icon_style = ( $show_icon && tinv_get_option( 'topline', 'icon' ) ) ? esc_attr( 'top_wishlist-' . tinv_get_option( 'topline', 'icon_style' ) ) : '';
|
94 |
+
$icon_upload = tinv_get_option( 'topline', 'icon_upload' );
|
95 |
+
|
96 |
+
$counter = tinv_get_option( 'topline', 'show_counter' ) ? '<span class="wishlist_products_counter_number"></span>' : '';
|
97 |
+
|
98 |
+
$text = tinv_get_option( 'topline', 'show_text' ) ? apply_filters( 'tinvwl-topline-text', tinv_get_option( 'topline', 'text' ) ) : '';
|
99 |
+
|
100 |
+
$icon = '<span class="wishlist_products_counter ' . $icon_class . ' ' . $icon_style . ( empty( $text ) ? ' no-txt' : '' ) . ( 0 < $counter ? ' wishlist-counter-with-products' : '' ) . '" >';
|
101 |
+
|
102 |
+
if ( $icon_class && 'custom' === $icon_type && ! empty( $icon_upload ) ) {
|
103 |
+
$icon .= sprintf( '<img src="%s" />', esc_url( $icon_upload ) );
|
104 |
+
}
|
105 |
+
|
106 |
+
$icon .= '</span>';
|
107 |
+
|
108 |
+
$menu_title = apply_filters( 'tinvwl-menu-item-title', $icon . ' ' . $text . ' ' . $counter, $icon, $text, $counter );
|
109 |
+
|
110 |
+
if ( $menu_title ) {
|
111 |
+
|
112 |
+
$wishlist_item = (object) array(
|
113 |
+
'ID' => $menu_cnt + 100000,
|
114 |
+
'object_id' => $menu_cnt + 100000,
|
115 |
+
'db_id' => $menu_cnt + 100000,
|
116 |
+
'title' => $menu_title,
|
117 |
+
'post_title' => $menu_title,
|
118 |
+
'url' => esc_url( tinv_url_wishlist_default() ),
|
119 |
+
'guid' => esc_url( tinv_url_wishlist_default() ),
|
120 |
+
'post_date' => gmdate( 'Y-m-d H:i:s' ),
|
121 |
+
'post_date_gmt' => gmdate( 'Y-m-d H:i:s' ),
|
122 |
+
'post_modified' => gmdate( 'Y-m-d H:i:s' ),
|
123 |
+
'post_modified_gmt' => gmdate( 'Y-m-d H:i:s' ),
|
124 |
+
'menu_order' => $menu_order,
|
125 |
+
'menu_item_parent' => 0,
|
126 |
+
'type' => 'custom',
|
127 |
+
'post_status' => 'publish',
|
128 |
+
'post_author' => 1,
|
129 |
+
'comment_status' => 'closed',
|
130 |
+
'ping_status' => 'closed',
|
131 |
+
'post_name' => 'd',
|
132 |
+
'post_parent' => 0,
|
133 |
+
'post_type' => 'nav_menu_item',
|
134 |
+
'comment_count' => 0,
|
135 |
+
'filter' => 'raw',
|
136 |
+
'object' => 'custom',
|
137 |
+
'type_label' => '',
|
138 |
+
'target' => '',
|
139 |
+
'attr_title' => '',
|
140 |
+
'object' => '',
|
141 |
+
'classes' => '',
|
142 |
+
'post_content' => '',
|
143 |
+
'post_excerpt' => '',
|
144 |
+
'category_post' => '',
|
145 |
+
'nolink' => '',
|
146 |
+
'description' => '',
|
147 |
+
'xfn' => '',
|
148 |
+
'template' => '',
|
149 |
+
'mega_template' => '',
|
150 |
+
'megamenu' => '',
|
151 |
+
'megamenu_auto_width' => '',
|
152 |
+
'megamenu_col' => '',
|
153 |
+
'megamenu_heading' => '',
|
154 |
+
'megamenu_widgetarea' => '',
|
155 |
+
'icon' => '',
|
156 |
+
'post_password' => '',
|
157 |
+
'to_ping' => '',
|
158 |
+
'pinged' => '',
|
159 |
+
'post_content_filtered' => '',
|
160 |
+
'post_mime_type' => '',
|
161 |
+
);
|
162 |
+
|
163 |
+
|
164 |
+
foreach ( $items as $key => $item ) {
|
165 |
+
|
166 |
+
if ( $items[ $key ]->menu_order > ( $menu_order - 1 ) ) {
|
167 |
+
$items[ $key ]->menu_order = $items[ $key ]->menu_order + 1;
|
168 |
+
}
|
169 |
+
}
|
170 |
+
|
171 |
+
if ( $menu_order < $menu_cnt ) {
|
172 |
+
array_splice( $items, $menu_order - 1, 0, array( $wishlist_item ) );
|
173 |
+
} else {
|
174 |
+
$items[] = $wishlist_item;
|
175 |
+
}
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
return $items;
|
180 |
}
|
181 |
|
182 |
/**
|
255 |
}
|
256 |
}
|
257 |
|
258 |
+
return $count ? $count : false;
|
259 |
}
|
260 |
|
261 |
/**
|
270 |
'show_icon' => (bool) tinv_get_option( 'topline', 'icon' ),
|
271 |
'show_text' => tinv_get_option( 'topline', 'show_text' ),
|
272 |
'text' => apply_filters( 'tinvwl-topline-text', tinv_get_option( 'topline', 'text' ) ),
|
273 |
+
'show_counter' => tinv_get_option( 'topline', 'show_counter' ),
|
274 |
);
|
275 |
$atts = filter_var_array( shortcode_atts( $default, $atts ), array(
|
276 |
'show_icon' => FILTER_VALIDATE_BOOLEAN,
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: https://templateinvaders.com/product/ti-woocommerce-wishlist-wordpr
|
|
4 |
Tags: wishlist, woocommerce, woocommerce wishlist, e-commerce, ecommerce
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 4.9
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
@@ -130,6 +130,16 @@ If you get stuck, you can ask for help in the [Plugin Forum](https://wordpress.o
|
|
130 |
|
131 |
|
132 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
= 1.8.17 =
|
134 |
*Release Date - 16 September 2018*
|
135 |
|
4 |
Tags: wishlist, woocommerce, woocommerce wishlist, e-commerce, ecommerce
|
5 |
Requires at least: 4.5
|
6 |
Tested up to: 4.9
|
7 |
+
Stable tag: 1.9.0
|
8 |
License: GPLv3
|
9 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
10 |
|
130 |
|
131 |
|
132 |
== Changelog ==
|
133 |
+
= 1.9.0 =
|
134 |
+
*Release Date - 17 October 2018*
|
135 |
+
|
136 |
+
* Fixed no cache issue for WooCommerce versions below 3.2.4
|
137 |
+
* Added redirect to a previous page after login when "Require Login" option is enabled
|
138 |
+
* Added an option to add the wishlist counter into a menu
|
139 |
+
* Improved compatibility with [WooCommerce Subscriptions](https://woocommerce.com/products/woocommerce-subscriptions/?aff=3955) plugin
|
140 |
+
* Improved compatibility with [WooCommerce Product Bundles](https://woocommerce.com/products/product-bundles/?aff=3955) plugin
|
141 |
+
* Improved compatibility with [WooCommerce Composite Products](https://woocommerce.com/products/composite-products/?aff=3955) plugin
|
142 |
+
|
143 |
= 1.8.17 =
|
144 |
*Release Date - 16 September 2018*
|
145 |
|
templates/ti-wishlist-product-counter.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* The Template for displaying dropdown wishlist products.
|
4 |
*
|
5 |
-
* @version 1.
|
6 |
* @package TInvWishlist\Template
|
7 |
*/
|
8 |
|
@@ -10,11 +10,12 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
10 |
exit; // Exit if accessed directly.
|
11 |
}
|
12 |
wp_enqueue_script( 'tinvwl' );
|
13 |
-
if ( $icon_class && 'custom' === $icon && ! empty( $icon_upload )
|
14 |
$text = sprintf( '<img src="%s" /> %s', esc_url( $icon_upload ), $text );
|
15 |
}
|
16 |
?>
|
17 |
-
<a href="<?php echo esc_url(
|
|
|
18 |
<span class="wishlist_products_counter_text"><?php echo $text; // WPCS: xss ok. ?></span>
|
19 |
<?php if ( $show_counter ) : ?>
|
20 |
<span class="wishlist_products_counter_number"></span>
|
2 |
/**
|
3 |
* The Template for displaying dropdown wishlist products.
|
4 |
*
|
5 |
+
* @version 1.9.0
|
6 |
* @package TInvWishlist\Template
|
7 |
*/
|
8 |
|
10 |
exit; // Exit if accessed directly.
|
11 |
}
|
12 |
wp_enqueue_script( 'tinvwl' );
|
13 |
+
if ( $icon_class && 'custom' === $icon && ! empty( $icon_upload ) ) {
|
14 |
$text = sprintf( '<img src="%s" /> %s', esc_url( $icon_upload ), $text );
|
15 |
}
|
16 |
?>
|
17 |
+
<a href="<?php echo esc_url( tinv_url_wishlist_default() ); ?>"
|
18 |
+
class="wishlist_products_counter<?php echo ' ' . $icon_class . ' ' . $icon_style . ( empty( $text ) ? ' no-txt' : '' ) . ( 0 < $counter ? ' wishlist-counter-with-products' : '' ); // WPCS: xss ok. ?>">
|
19 |
<span class="wishlist_products_counter_text"><?php echo $text; // WPCS: xss ok. ?></span>
|
20 |
<?php if ( $show_counter ) : ?>
|
21 |
<span class="wishlist_products_counter_number"></span>
|
templates/ti-wishlist-social.php
CHANGED
@@ -19,7 +19,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
19 |
<?php foreach ( $social as $social_name => $social_url ) {
|
20 |
?>
|
21 |
<li><a href="<?php echo esc_url( $social_url ); ?>"
|
22 |
-
class="social social-<?php echo esc_attr( $social_name ) . ' ' . esc_attr( tinv_get_option( 'social', 'icon_style' ) ); ?>"
|
|
|
23 |
class="ftinvwl ftinvwl-<?php echo esc_attr( $social_name ); ?>"></i></a></li>
|
24 |
<?php } ?>
|
25 |
</ul>
|
19 |
<?php foreach ( $social as $social_name => $social_url ) {
|
20 |
?>
|
21 |
<li><a href="<?php echo esc_url( $social_url ); ?>"
|
22 |
+
class="social social-<?php echo esc_attr( $social_name ) . ' ' . esc_attr( tinv_get_option( 'social', 'icon_style' ) ); ?>"
|
23 |
+
title="<?php echo esc_attr( $social_name ); ?>"><i
|
24 |
class="ftinvwl ftinvwl-<?php echo esc_attr( $social_name ); ?>"></i></a></li>
|
25 |
<?php } ?>
|
26 |
</ul>
|
templates/ti-wishlist-user.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
-
* The Template for displaying user
|
4 |
*
|
5 |
-
* @version 1.
|
6 |
* @package TInvWishlist\Template
|
7 |
*/
|
8 |
|
@@ -22,7 +22,9 @@ wp_enqueue_script( 'tinvwl' );
|
|
22 |
<thead>
|
23 |
<tr>
|
24 |
<?php if ( isset( $wishlist_table['colm_checkbox'] ) && $wishlist_table['colm_checkbox'] ) { ?>
|
25 |
-
<th class="product-cb"><input type="checkbox" class="global-cb"
|
|
|
|
|
26 |
<?php } ?>
|
27 |
<th class="product-thumbnail"> </th>
|
28 |
<th class="product-name"><span
|
@@ -58,7 +60,7 @@ wp_enqueue_script( 'tinvwl' );
|
|
58 |
<td class="product-cb">
|
59 |
<?php
|
60 |
echo apply_filters( 'tinvwl_wishlist_item_cb', sprintf( // WPCS: xss ok.
|
61 |
-
'<input type="checkbox" name="wishlist_pr[]" value="%d">', esc_attr( $wl_product['ID'] )
|
62 |
), $wl_product, $product );
|
63 |
?>
|
64 |
</td>
|
@@ -123,7 +125,9 @@ wp_enqueue_script( 'tinvwl' );
|
|
123 |
if ( apply_filters( 'tinvwl_wishlist_item_action_add_to_cart', $wishlist_table_row['add_to_cart'], $wl_product, $product ) ) {
|
124 |
?>
|
125 |
<button class="button alt" name="tinvwl-add-to-cart"
|
126 |
-
value="<?php echo esc_attr( $wl_product['ID'] ); ?>"
|
|
|
|
|
127 |
class="ftinvwl ftinvwl-shopping-cart"></i><span
|
128 |
class="tinvwl-txt"><?php echo esc_html( apply_filters( 'tinvwl_wishlist_item_add_to_cart', $wishlist_table_row['text_add_to_cart'], $wl_product, $product ) ); ?></span>
|
129 |
</button>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* The Template for displaying wishlist for another user.
|
4 |
*
|
5 |
+
* @version 1.9.0
|
6 |
* @package TInvWishlist\Template
|
7 |
*/
|
8 |
|
22 |
<thead>
|
23 |
<tr>
|
24 |
<?php if ( isset( $wishlist_table['colm_checkbox'] ) && $wishlist_table['colm_checkbox'] ) { ?>
|
25 |
+
<th class="product-cb"><input type="checkbox" class="global-cb"
|
26 |
+
title="<?php _e( 'Select all for bulk action', 'ti-woocommerce-wishlist' ) ?>">
|
27 |
+
</th>
|
28 |
<?php } ?>
|
29 |
<th class="product-thumbnail"> </th>
|
30 |
<th class="product-name"><span
|
60 |
<td class="product-cb">
|
61 |
<?php
|
62 |
echo apply_filters( 'tinvwl_wishlist_item_cb', sprintf( // WPCS: xss ok.
|
63 |
+
'<input type="checkbox" name="wishlist_pr[]" value="%d" title="%s">', esc_attr( $wl_product['ID'] ), __( 'Select for bulk action', 'ti-woocommerce-wishlist' )
|
64 |
), $wl_product, $product );
|
65 |
?>
|
66 |
</td>
|
125 |
if ( apply_filters( 'tinvwl_wishlist_item_action_add_to_cart', $wishlist_table_row['add_to_cart'], $wl_product, $product ) ) {
|
126 |
?>
|
127 |
<button class="button alt" name="tinvwl-add-to-cart"
|
128 |
+
value="<?php echo esc_attr( $wl_product['ID'] ); ?>"
|
129 |
+
title="<?php echo esc_html( apply_filters( 'tinvwl_wishlist_item_add_to_cart', $wishlist_table_row['text_add_to_cart'], $wl_product, $product ) ); ?>">
|
130 |
+
<i
|
131 |
class="ftinvwl ftinvwl-shopping-cart"></i><span
|
132 |
class="tinvwl-txt"><?php echo esc_html( apply_filters( 'tinvwl_wishlist_item_add_to_cart', $wishlist_table_row['text_add_to_cart'], $wl_product, $product ) ); ?></span>
|
133 |
</button>
|
templates/ti-wishlist.php
CHANGED
@@ -1,161 +1,167 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* The Template for displaying wishlist.
|
4 |
-
*
|
5 |
-
* @version 1.
|
6 |
-
* @package TInvWishlist\Template
|
7 |
-
*/
|
8 |
-
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
exit; // Exit if accessed directly.
|
11 |
-
}
|
12 |
-
wp_enqueue_script( 'tinvwl' );
|
13 |
-
?>
|
14 |
-
<div class="tinv-wishlist woocommerce tinv-wishlist-clear">
|
15 |
-
<?php do_action( 'tinvwl_before_wishlist', $wishlist ); ?>
|
16 |
-
<?php if ( function_exists( 'wc_print_notices' ) ) {
|
17 |
-
wc_print_notices();
|
18 |
-
} ?>
|
19 |
-
<form action="<?php echo esc_url( tinv_url_wishlist() ); ?>" method="post" autocomplete="off">
|
20 |
-
<?php do_action( 'tinvwl_before_wishlist_table', $wishlist ); ?>
|
21 |
-
<table class="tinvwl-table-manage-list">
|
22 |
-
<thead>
|
23 |
-
<tr>
|
24 |
-
<?php if ( isset( $wishlist_table['colm_checkbox'] ) && $wishlist_table['colm_checkbox'] ) { ?>
|
25 |
-
<th class="product-cb"><input type="checkbox" class="global-cb"
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
<th class="product-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
<?php
|
35 |
-
|
36 |
-
|
37 |
-
<?php
|
38 |
-
|
39 |
-
|
40 |
-
<?php
|
41 |
-
|
42 |
-
|
43 |
-
<?php
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
<?php
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* The Template for displaying wishlist for owner.
|
4 |
+
*
|
5 |
+
* @version 1.9.0
|
6 |
+
* @package TInvWishlist\Template
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
exit; // Exit if accessed directly.
|
11 |
+
}
|
12 |
+
wp_enqueue_script( 'tinvwl' );
|
13 |
+
?>
|
14 |
+
<div class="tinv-wishlist woocommerce tinv-wishlist-clear">
|
15 |
+
<?php do_action( 'tinvwl_before_wishlist', $wishlist ); ?>
|
16 |
+
<?php if ( function_exists( 'wc_print_notices' ) ) {
|
17 |
+
wc_print_notices();
|
18 |
+
} ?>
|
19 |
+
<form action="<?php echo esc_url( tinv_url_wishlist() ); ?>" method="post" autocomplete="off">
|
20 |
+
<?php do_action( 'tinvwl_before_wishlist_table', $wishlist ); ?>
|
21 |
+
<table class="tinvwl-table-manage-list">
|
22 |
+
<thead>
|
23 |
+
<tr>
|
24 |
+
<?php if ( isset( $wishlist_table['colm_checkbox'] ) && $wishlist_table['colm_checkbox'] ) { ?>
|
25 |
+
<th class="product-cb"><input type="checkbox" class="global-cb"
|
26 |
+
title="<?php _e( 'Select all for bulk action', 'ti-woocommerce-wishlist' ) ?>">
|
27 |
+
</th>
|
28 |
+
<?php } ?>
|
29 |
+
<th class="product-remove"></th>
|
30 |
+
<th class="product-thumbnail"> </th>
|
31 |
+
<th class="product-name"><span
|
32 |
+
class="tinvwl-full"><?php esc_html_e( 'Product Name', 'ti-woocommerce-wishlist' ); ?></span><span
|
33 |
+
class="tinvwl-mobile"><?php esc_html_e( 'Product', 'ti-woocommerce-wishlist' ); ?></span></th>
|
34 |
+
<?php if ( isset( $wishlist_table_row['colm_price'] ) && $wishlist_table_row['colm_price'] ) { ?>
|
35 |
+
<th class="product-price"><?php esc_html_e( 'Unit Price', 'ti-woocommerce-wishlist' ); ?></th>
|
36 |
+
<?php } ?>
|
37 |
+
<?php if ( isset( $wishlist_table_row['colm_date'] ) && $wishlist_table_row['colm_date'] ) { ?>
|
38 |
+
<th class="product-date"><?php esc_html_e( 'Date Added', 'ti-woocommerce-wishlist' ); ?></th>
|
39 |
+
<?php } ?>
|
40 |
+
<?php if ( isset( $wishlist_table_row['colm_stock'] ) && $wishlist_table_row['colm_stock'] ) { ?>
|
41 |
+
<th class="product-stock"><?php esc_html_e( 'Stock Status', 'ti-woocommerce-wishlist' ); ?></th>
|
42 |
+
<?php } ?>
|
43 |
+
<?php if ( isset( $wishlist_table_row['add_to_cart'] ) && $wishlist_table_row['add_to_cart'] ) { ?>
|
44 |
+
<th class="product-action"> </th>
|
45 |
+
<?php } ?>
|
46 |
+
</tr>
|
47 |
+
</thead>
|
48 |
+
<tbody>
|
49 |
+
<?php do_action( 'tinvwl_wishlist_contents_before' ); ?>
|
50 |
+
|
51 |
+
<?php
|
52 |
+
foreach ( $products as $wl_product ) {
|
53 |
+
$product = apply_filters( 'tinvwl_wishlist_item', $wl_product['data'] );
|
54 |
+
unset( $wl_product['data'] );
|
55 |
+
if ( $wl_product['quantity'] > 0 && apply_filters( 'tinvwl_wishlist_item_visible', true, $wl_product, $product ) ) {
|
56 |
+
$product_url = apply_filters( 'tinvwl_wishlist_item_url', $product->get_permalink(), $wl_product, $product );
|
57 |
+
do_action( 'tinvwl_wishlist_row_before', $wl_product, $product );
|
58 |
+
?>
|
59 |
+
<tr class="<?php echo esc_attr( apply_filters( 'tinvwl_wishlist_item_class', 'wishlist_item', $wl_product, $product ) ); ?>">
|
60 |
+
<?php if ( isset( $wishlist_table['colm_checkbox'] ) && $wishlist_table['colm_checkbox'] ) { ?>
|
61 |
+
<td class="product-cb">
|
62 |
+
<?php
|
63 |
+
echo apply_filters( 'tinvwl_wishlist_item_cb', sprintf( // WPCS: xss ok.
|
64 |
+
'<input type="checkbox" name="wishlist_pr[]" value="%d" title="%s">', esc_attr( $wl_product['ID'] ), __( 'Select for bulk action', 'ti-woocommerce-wishlist' )
|
65 |
+
), $wl_product, $product );
|
66 |
+
?>
|
67 |
+
</td>
|
68 |
+
<?php } ?>
|
69 |
+
<td class="product-remove">
|
70 |
+
<button type="submit" name="tinvwl-remove"
|
71 |
+
value="<?php echo esc_attr( $wl_product['ID'] ); ?>"
|
72 |
+
title="<?php _e( 'Remove', 'ti-woocommerce-wishlist' ) ?>"><i
|
73 |
+
class="ftinvwl ftinvwl-times"></i>
|
74 |
+
</button>
|
75 |
+
</td>
|
76 |
+
<td class="product-thumbnail">
|
77 |
+
<?php
|
78 |
+
$thumbnail = apply_filters( 'tinvwl_wishlist_item_thumbnail', $product->get_image(), $wl_product, $product );
|
79 |
+
|
80 |
+
if ( ! $product->is_visible() ) {
|
81 |
+
echo $thumbnail; // WPCS: xss ok.
|
82 |
+
} else {
|
83 |
+
printf( '<a href="%s">%s</a>', esc_url( $product_url ), $thumbnail ); // WPCS: xss ok.
|
84 |
+
}
|
85 |
+
?>
|
86 |
+
</td>
|
87 |
+
<td class="product-name">
|
88 |
+
<?php
|
89 |
+
if ( ! $product->is_visible() ) {
|
90 |
+
echo apply_filters( 'tinvwl_wishlist_item_name', $product->get_title(), $wl_product, $product ) . ' '; // WPCS: xss ok.
|
91 |
+
} else {
|
92 |
+
echo apply_filters( 'tinvwl_wishlist_item_name', sprintf( '<a href="%s">%s</a>', esc_url( $product_url ), $product->get_title() ), $wl_product, $product ); // WPCS: xss ok.
|
93 |
+
}
|
94 |
+
|
95 |
+
echo apply_filters( 'tinvwl_wishlist_item_meta_data', tinv_wishlist_get_item_data( $product, $wl_product ), $wl_product, $product ); // WPCS: xss ok.
|
96 |
+
?>
|
97 |
+
</td>
|
98 |
+
<?php if ( isset( $wishlist_table_row['colm_price'] ) && $wishlist_table_row['colm_price'] ) { ?>
|
99 |
+
<td class="product-price">
|
100 |
+
<?php
|
101 |
+
echo apply_filters( 'tinvwl_wishlist_item_price', $product->get_price_html(), $wl_product, $product ); // WPCS: xss ok.
|
102 |
+
?>
|
103 |
+
</td>
|
104 |
+
<?php } ?>
|
105 |
+
<?php if ( isset( $wishlist_table_row['colm_date'] ) && $wishlist_table_row['colm_date'] ) { ?>
|
106 |
+
<td class="product-date">
|
107 |
+
<?php
|
108 |
+
echo apply_filters( 'tinvwl_wishlist_item_date', sprintf( // WPCS: xss ok.
|
109 |
+
'<time class="entry-date" datetime="%1$s">%2$s</time>', $wl_product['date'], mysql2date( get_option( 'date_format' ), $wl_product['date'] )
|
110 |
+
), $wl_product, $product );
|
111 |
+
?>
|
112 |
+
</td>
|
113 |
+
<?php } ?>
|
114 |
+
<?php if ( isset( $wishlist_table_row['colm_stock'] ) && $wishlist_table_row['colm_stock'] ) { ?>
|
115 |
+
<td class="product-stock">
|
116 |
+
<?php
|
117 |
+
$availability = (array) $product->get_availability();
|
118 |
+
if ( ! array_key_exists( 'availability', $availability ) ) {
|
119 |
+
$availability['availability'] = '';
|
120 |
+
}
|
121 |
+
if ( ! array_key_exists( 'class', $availability ) ) {
|
122 |
+
$availability['class'] = '';
|
123 |
+
}
|
124 |
+
$availability_html = empty( $availability['availability'] ) ? '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-check"></i></span><span class="tinvwl-txt">' . esc_html__( 'In stock', 'ti-woocommerce-wishlist' ) . '</span></p>' : '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-' . ( ( 'out-of-stock' === esc_attr( $availability['class'] ) ? 'times' : 'check' ) ) . '"></i></span><span>' . esc_html( $availability['availability'] ) . '</span></p>';
|
125 |
+
|
126 |
+
echo apply_filters( 'tinvwl_wishlist_item_status', $availability_html, $availability['availability'], $wl_product, $product ); // WPCS: xss ok.
|
127 |
+
?>
|
128 |
+
</td>
|
129 |
+
<?php } ?>
|
130 |
+
<?php if ( isset( $wishlist_table_row['add_to_cart'] ) && $wishlist_table_row['add_to_cart'] ) { ?>
|
131 |
+
<td class="product-action">
|
132 |
+
<?php
|
133 |
+
if ( apply_filters( 'tinvwl_wishlist_item_action_add_to_cart', $wishlist_table_row['add_to_cart'], $wl_product, $product ) ) {
|
134 |
+
?>
|
135 |
+
<button class="button alt" name="tinvwl-add-to-cart"
|
136 |
+
value="<?php echo esc_attr( $wl_product['ID'] ); ?>"
|
137 |
+
title="<?php echo esc_html( apply_filters( 'tinvwl_wishlist_item_add_to_cart', $wishlist_table_row['text_add_to_cart'], $wl_product, $product ) ); ?>">
|
138 |
+
<i
|
139 |
+
class="ftinvwl ftinvwl-shopping-cart"></i><span
|
140 |
+
class="tinvwl-txt"><?php echo esc_html( apply_filters( 'tinvwl_wishlist_item_add_to_cart', $wishlist_table_row['text_add_to_cart'], $wl_product, $product ) ); ?></span>
|
141 |
+
</button>
|
142 |
+
<?php } ?>
|
143 |
+
</td>
|
144 |
+
<?php } ?>
|
145 |
+
</tr>
|
146 |
+
<?php
|
147 |
+
do_action( 'tinvwl_wishlist_row_after', $wl_product, $product );
|
148 |
+
} // End if().
|
149 |
+
} // End foreach().
|
150 |
+
?>
|
151 |
+
<?php do_action( 'tinvwl_wishlist_contents_after' ); ?>
|
152 |
+
</tbody>
|
153 |
+
<tfoot>
|
154 |
+
<tr>
|
155 |
+
<td colspan="100">
|
156 |
+
<?php do_action( 'tinvwl_after_wishlist_table', $wishlist ); ?>
|
157 |
+
<?php wp_nonce_field( 'tinvwl_wishlist_owner', 'wishlist_nonce' ); ?>
|
158 |
+
</td>
|
159 |
+
</tr>
|
160 |
+
</tfoot>
|
161 |
+
</table>
|
162 |
+
</form>
|
163 |
+
<?php do_action( 'tinvwl_after_wishlist', $wishlist ); ?>
|
164 |
+
<div class="tinv-lists-nav tinv-wishlist-clear">
|
165 |
+
<?php do_action( 'tinvwl_pagenation_wishlist', $wishlist ); ?>
|
166 |
+
</div>
|
167 |
+
</div>
|
ti-woocommerce-wishlist.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Plugin Name: WooCommerce Wishlist Plugin
|
5 |
* Plugin URI: https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
6 |
* Description: Wishlist functionality for your WooCommerce store.
|
7 |
-
* Version: 1.
|
8 |
* Requires at least: 4.5
|
9 |
* Tested up to: 4.9
|
10 |
* WC requires at least: 2.6
|
@@ -41,7 +41,7 @@ if ( ! defined( 'TINVWL_DOMAIN' ) ) {
|
|
41 |
}
|
42 |
|
43 |
if ( ! defined( 'TINVWL_FVERSION' ) ) {
|
44 |
-
define( 'TINVWL_FVERSION', '1.
|
45 |
}
|
46 |
|
47 |
if ( ! defined( 'TINVWL_LOAD_FREE' ) ) {
|
4 |
* Plugin Name: WooCommerce Wishlist Plugin
|
5 |
* Plugin URI: https://wordpress.org/plugins/ti-woocommerce-wishlist/
|
6 |
* Description: Wishlist functionality for your WooCommerce store.
|
7 |
+
* Version: 1.9.0
|
8 |
* Requires at least: 4.5
|
9 |
* Tested up to: 4.9
|
10 |
* WC requires at least: 2.6
|
41 |
}
|
42 |
|
43 |
if ( ! defined( 'TINVWL_FVERSION' ) ) {
|
44 |
+
define( 'TINVWL_FVERSION', '1.9.0' );
|
45 |
}
|
46 |
|
47 |
if ( ! defined( 'TINVWL_LOAD_FREE' ) ) {
|
tinv-wishlists-function-integration.php
CHANGED
@@ -358,7 +358,7 @@ if ( ! function_exists( 'tinvwl_wpml_addtowishlist_prepare_form' ) ) {
|
|
358 |
if ( ! function_exists( 'tinvwl_wpml_filter_link' ) ) {
|
359 |
|
360 |
/**
|
361 |
-
*
|
362 |
*
|
363 |
* @param string $full_link Link for page.
|
364 |
* @param array $l Language.
|
@@ -752,7 +752,7 @@ if ( ! function_exists( 'tinvwl_row_woocommerce_composite_products' ) ) {
|
|
752 |
}
|
753 |
$availability_html = empty( $availability['availability'] ) ? '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-check"></i></span><span class="tinvwl-txt">' . esc_html__( 'In stock', 'ti-woocommerce-wishlist' ) . '</span></p>' : '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-times"></i></span><span>' . esc_html( $availability['availability'] ) . '</span></p>';
|
754 |
$row_string = '<tr>';
|
755 |
-
$row_string .= '<td colspan="2"></td
|
756 |
if ( tinv_get_option( 'product_table', 'colm_price' ) ) {
|
757 |
$row_string .= ( $product_price ) ? '<td class="product-price">%4$s × %6$s</td>' : '<td class="product-price">%4$s</td>';
|
758 |
}
|
@@ -860,14 +860,14 @@ if ( ! function_exists( 'tinvwl_row_woocommerce_product_bundles' ) ) {
|
|
860 |
$bundled_items = $product->get_bundled_items();
|
861 |
if ( ! empty( $bundled_items ) ) {
|
862 |
foreach ( $bundled_items as $bundled_item_id => $bundled_item ) {
|
863 |
-
|
864 |
$bundled_item_variation_id_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_variation_id_' . $bundled_item_id;
|
865 |
$bundled_variation_id = absint( isset( $wl_product['meta'][ $bundled_item_variation_id_request_key ] ) ? $wl_product['meta'][ $bundled_item_variation_id_request_key ] : 0 );
|
866 |
if ( ! empty( $bundled_variation_id ) ) {
|
867 |
$bundled_item->product = wc_get_product( $bundled_variation_id );
|
868 |
}
|
869 |
-
|
870 |
-
$is_optional
|
871 |
|
872 |
$bundled_item_quantity_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_quantity_' . $bundled_item_id;
|
873 |
$bundled_product_qty = isset( $wl_product['meta'][ $bundled_item_quantity_request_key ] ) ? absint( $wl_product['meta'][ $bundled_item_quantity_request_key ] ) : $bundled_item->get_quantity();
|
@@ -888,7 +888,12 @@ if ( ! function_exists( 'tinvwl_row_woocommerce_product_bundles' ) ) {
|
|
888 |
$product_url = $bundled_item->product->get_permalink();
|
889 |
$product_image = $bundled_item->product->get_image();
|
890 |
$product_title = $bundled_item->product->get_title();
|
891 |
-
|
|
|
|
|
|
|
|
|
|
|
892 |
if ( $bundled_item->product->is_visible() ) {
|
893 |
$product_image = sprintf( '<a href="%s">%s</a>', esc_url( $product_url ), $product_image );
|
894 |
$product_title = sprintf( '<a href="%s">%s</a>', esc_url( $product_url ), $product_title );
|
@@ -905,8 +910,10 @@ if ( ! function_exists( 'tinvwl_row_woocommerce_product_bundles' ) ) {
|
|
905 |
$availability_html = empty( $availability['availability'] ) ? '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-check"></i></span><span class="tinvwl-txt">' . esc_html__( 'In stock', 'ti-woocommerce-wishlist' ) . '</span></p>' : '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-times"></i></span><span>' . esc_html( $availability['availability'] ) . '</span></p>';
|
906 |
$row_string = '<tr>';
|
907 |
$row_string .= '<td colspan="2"> </td><td class="product-thumbnail">%1$s</td><td class="product-name">%2$s</td>';
|
908 |
-
if ( tinv_get_option( 'product_table', 'colm_price' ) ) {
|
909 |
$row_string .= '<td class="product-price">%3$s × %5$s</td>';
|
|
|
|
|
910 |
}
|
911 |
if ( tinv_get_option( 'product_table', 'colm_date' ) ) {
|
912 |
$row_string .= '<td class="product-date"> </td>';
|
@@ -952,6 +959,15 @@ if ( ! function_exists( 'tinvwl_item_price_woocommerce_product_bundles' ) ) {
|
|
952 |
$bundled_items_price = 0.0;
|
953 |
|
954 |
foreach ( $bundled_items as $bundled_item_id => $bundled_item ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
955 |
$is_optional = $bundled_item->is_optional();
|
956 |
|
957 |
$bundled_item_quantity_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_quantity_' . $bundled_item_id;
|
@@ -966,13 +982,17 @@ if ( ! function_exists( 'tinvwl_item_price_woocommerce_product_bundles' ) ) {
|
|
966 |
$bundled_product_qty = 0;
|
967 |
}
|
968 |
}
|
969 |
-
if ( 0 === $bundled_product_qty ) {
|
970 |
-
continue;
|
971 |
-
}
|
972 |
|
973 |
-
|
|
|
|
|
|
|
|
|
974 |
|
975 |
-
|
|
|
|
|
|
|
976 |
|
977 |
} // End foreach().
|
978 |
$price = wc_price( (double) $bundle_price + $bundled_items_price );
|
358 |
if ( ! function_exists( 'tinvwl_wpml_filter_link' ) ) {
|
359 |
|
360 |
/**
|
361 |
+
* Correct add wishlist key for WPML plugin.
|
362 |
*
|
363 |
* @param string $full_link Link for page.
|
364 |
* @param array $l Language.
|
752 |
}
|
753 |
$availability_html = empty( $availability['availability'] ) ? '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-check"></i></span><span class="tinvwl-txt">' . esc_html__( 'In stock', 'ti-woocommerce-wishlist' ) . '</span></p>' : '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-times"></i></span><span>' . esc_html( $availability['availability'] ) . '</span></p>';
|
754 |
$row_string = '<tr>';
|
755 |
+
$row_string .= ( ( ! is_user_logged_in() || get_current_user_id() !== $wl_product['author'] ) ? ( ( ! tinv_get_option( 'table', 'colm_checkbox' ) ) ? '' : '<td colspan="1"></td>' ) : '<td colspan="' . ( ( ! tinv_get_option( 'table', 'colm_checkbox' ) ) ? '1' : '2' ) . '"></td>' ) . ' <td class="product-thumbnail">%2$s</td><td class="product-name">%1$s:<br/>%3$s</td>';
|
756 |
if ( tinv_get_option( 'product_table', 'colm_price' ) ) {
|
757 |
$row_string .= ( $product_price ) ? '<td class="product-price">%4$s × %6$s</td>' : '<td class="product-price">%4$s</td>';
|
758 |
}
|
860 |
$bundled_items = $product->get_bundled_items();
|
861 |
if ( ! empty( $bundled_items ) ) {
|
862 |
foreach ( $bundled_items as $bundled_item_id => $bundled_item ) {
|
863 |
+
|
864 |
$bundled_item_variation_id_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_variation_id_' . $bundled_item_id;
|
865 |
$bundled_variation_id = absint( isset( $wl_product['meta'][ $bundled_item_variation_id_request_key ] ) ? $wl_product['meta'][ $bundled_item_variation_id_request_key ] : 0 );
|
866 |
if ( ! empty( $bundled_variation_id ) ) {
|
867 |
$bundled_item->product = wc_get_product( $bundled_variation_id );
|
868 |
}
|
869 |
+
|
870 |
+
$is_optional = $bundled_item->is_optional();
|
871 |
|
872 |
$bundled_item_quantity_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_quantity_' . $bundled_item_id;
|
873 |
$bundled_product_qty = isset( $wl_product['meta'][ $bundled_item_quantity_request_key ] ) ? absint( $wl_product['meta'][ $bundled_item_quantity_request_key ] ) : $bundled_item->get_quantity();
|
888 |
$product_url = $bundled_item->product->get_permalink();
|
889 |
$product_image = $bundled_item->product->get_image();
|
890 |
$product_title = $bundled_item->product->get_title();
|
891 |
+
|
892 |
+
$product_price = $bundled_item->product->get_price_html();
|
893 |
+
$product_price_raw = $bundled_item->product->get_regular_price();
|
894 |
+
$discount = $bundled_item->get_discount();
|
895 |
+
$product_price = empty( $discount ) ? $product_price : wc_price( WC_PB_Product_Prices::get_discounted_price( $product_price_raw, $discount ) );
|
896 |
+
|
897 |
if ( $bundled_item->product->is_visible() ) {
|
898 |
$product_image = sprintf( '<a href="%s">%s</a>', esc_url( $product_url ), $product_image );
|
899 |
$product_title = sprintf( '<a href="%s">%s</a>', esc_url( $product_url ), $product_title );
|
910 |
$availability_html = empty( $availability['availability'] ) ? '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-check"></i></span><span class="tinvwl-txt">' . esc_html__( 'In stock', 'ti-woocommerce-wishlist' ) . '</span></p>' : '<p class="stock ' . esc_attr( $availability['class'] ) . '"><span><i class="ftinvwl ftinvwl-times"></i></span><span>' . esc_html( $availability['availability'] ) . '</span></p>';
|
911 |
$row_string = '<tr>';
|
912 |
$row_string .= '<td colspan="2"> </td><td class="product-thumbnail">%1$s</td><td class="product-name">%2$s</td>';
|
913 |
+
if ( tinv_get_option( 'product_table', 'colm_price' ) && $bundled_item->is_priced_individually() ) {
|
914 |
$row_string .= '<td class="product-price">%3$s × %5$s</td>';
|
915 |
+
} elseif ( ! $bundled_item->is_priced_individually() ) {
|
916 |
+
$row_string .= '<td class="product-price"></td>';
|
917 |
}
|
918 |
if ( tinv_get_option( 'product_table', 'colm_date' ) ) {
|
919 |
$row_string .= '<td class="product-date"> </td>';
|
959 |
$bundled_items_price = 0.0;
|
960 |
|
961 |
foreach ( $bundled_items as $bundled_item_id => $bundled_item ) {
|
962 |
+
|
963 |
+
$bundled_item_variation_id_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_variation_id_' . $bundled_item_id;
|
964 |
+
$bundled_variation_id = absint( isset( $wl_product['meta'][ $bundled_item_variation_id_request_key ] ) ? $wl_product['meta'][ $bundled_item_variation_id_request_key ] : 0 );
|
965 |
+
if ( ! empty( $bundled_variation_id ) ) {
|
966 |
+
$_bundled_product = wc_get_product( $bundled_variation_id );
|
967 |
+
} else {
|
968 |
+
$_bundled_product = $bundled_item->product;
|
969 |
+
}
|
970 |
+
|
971 |
$is_optional = $bundled_item->is_optional();
|
972 |
|
973 |
$bundled_item_quantity_request_key = apply_filters( 'woocommerce_product_bundle_field_prefix', '', $product_id ) . 'bundle_quantity_' . $bundled_item_id;
|
982 |
$bundled_product_qty = 0;
|
983 |
}
|
984 |
}
|
|
|
|
|
|
|
985 |
|
986 |
+
if ( $bundled_item->is_priced_individually() ) {
|
987 |
+
$product_price = $_bundled_product->get_regular_price();
|
988 |
+
|
989 |
+
$discount = $bundled_item->get_discount();
|
990 |
+
$product_price = empty( $discount ) ? $product_price : WC_PB_Product_Prices::get_discounted_price( $product_price, $discount );
|
991 |
|
992 |
+
$bundled_item_price = $product_price * $bundled_product_qty;
|
993 |
+
|
994 |
+
$bundled_items_price += (double) $bundled_item_price;
|
995 |
+
}
|
996 |
|
997 |
} // End foreach().
|
998 |
$price = wc_price( (double) $bundle_price + $bundled_items_price );
|
tinv-wishlists-function.php
CHANGED
@@ -537,7 +537,7 @@ if ( ! function_exists( 'tinvwl_shortcode_products_counter' ) ) {
|
|
537 |
* @return string
|
538 |
*/
|
539 |
function tinvwl_shortcode_products_counter( $atts = array() ) {
|
540 |
-
$class =
|
541 |
|
542 |
return $class->shortcode( $atts );
|
543 |
}
|
537 |
* @return string
|
538 |
*/
|
539 |
function tinvwl_shortcode_products_counter( $atts = array() ) {
|
540 |
+
$class = TInvWL_Public_WishlistCounter::instance();
|
541 |
|
542 |
return $class->shortcode( $atts );
|
543 |
}
|