Version Description
(2020-03-16) = * Compatibility: Tested Upto WooCommerce 4.0 * Improve: Cleanup and minify assets (CSS & JS) * Improve: Add nice ui dropdown for Output Type Select * Fix: Return empty (previously returning zero) value if sale price is 0 * Fix: Support link on doc page * Fix: Default Output type for price attribute on Google, Facebook and Pinterest feed
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 3.3.8 |
Comparing to | |
See all releases |
Code changes from version 3.3.4 to 3.3.8
- README.txt +9 -1
- admin/class-woo-feed-admin.php +25 -18
- admin/css/fancy-select.css +187 -0
- admin/css/fancy-select.min.css +1 -0
- admin/css/selectize.css +0 -1
- admin/css/selectize.min.css +16 -0
- admin/css/slick-theme.min.css +1 -0
- admin/css/slick.min.css +1 -0
- admin/css/woo-feed-admin-pro.css +742 -0
- admin/css/woo-feed-admin-pro.min.css +1 -0
- admin/css/woo-feed-admin.css +612 -864
- admin/css/woo-feed-admin.min.css +1 -0
- admin/js/fancy-select.js +442 -0
- admin/js/fancy-select.min.js +7 -0
- admin/js/jquery-sortable.js +1 -1
- admin/js/jquery-sortable.min.js +29 -0
- admin/js/woo-feed-admin-pro.js +8 -0
- admin/js/woo-feed-admin-pro.min.js +8 -0
- admin/js/woo-feed-admin.js +184 -200
- admin/js/woo-feed-admin.min.js +8 -0
- admin/partials/templates/common_add-feed.php +10 -12
- admin/partials/templates/custom_add-feed.php +1 -3
- admin/partials/templates/facebook_add-feed.php +28 -54
- admin/partials/templates/google_add-feed.php +15 -41
- admin/partials/templates/pinterest_add-feed.php +28 -54
- admin/partials/woo-feed-edit-config.php +2 -4
- admin/partials/woo-feed-edit-tabs.php +1 -1
- includes/class-woo-feed-activator.php +0 -42
- includes/class-woo-feed-deactivator.php +0 -36
- includes/class-woo-feed-docs.php +59 -95
- includes/class-woo-feed-i18n.php +1 -1
- includes/class-woo-feed-loader.php +18 -18
- includes/class-woo-feed.php +231 -236
- includes/classes/class-woo-feed-admin-message.php +1 -0
- includes/classes/class-woo-feed-dropdown.php +10 -2
- includes/classes/class-woo-feed-list-table.php +11 -6
- includes/classes/class-woo-feed-products-v3.php +604 -465
- includes/classes/class-woo-feed-savefile.php +13 -13
- includes/feeds/class-woo-feed-custom.php +3 -10
- includes/feeds/class-woo-feed-facebook.php +1 -1
- includes/feeds/class-woo-feed-google.php +1 -2
- includes/feeds/class-woo-feed-pinterest.php +1 -1
- includes/helper.php +109 -69
- includes/hooks.php +2 -2
- libs/WebAppick/AppServices/License.php +42 -1
- libs/WebAppick/AppServices/Updater.php +14 -43
- uninstall.php +15 -15
- woo-feed.php +3 -3
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags:product feed,woocommerce product feed,google shopping feed,google shopping,
|
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.3.2
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 3.3.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -305,6 +305,14 @@ Using pro version:
|
|
305 |
|
306 |
== Changelog ==
|
307 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
= 3.3.4 (2020-03-10) =
|
309 |
* Template: Separate template for Trovaprezzi.it
|
310 |
* Fix: Dropdown on Facebook and Pinterest feed edit page.
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.3.2
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 3.3.8
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
305 |
|
306 |
== Changelog ==
|
307 |
|
308 |
+
= 3.3.8 (2020-03-16) =
|
309 |
+
* Compatibility: Tested Upto WooCommerce 4.0
|
310 |
+
* Improve: Cleanup and minify assets (CSS & JS)
|
311 |
+
* Improve: Add nice ui dropdown for Output Type Select
|
312 |
+
* Fix: Return empty (previously returning zero) value if sale price is 0
|
313 |
+
* Fix: Support link on doc page
|
314 |
+
* Fix: Default Output type for price attribute on Google, Facebook and Pinterest feed
|
315 |
+
|
316 |
= 3.3.4 (2020-03-10) =
|
317 |
* Template: Separate template for Trovaprezzi.it
|
318 |
* Fix: Dropdown on Facebook and Pinterest feed edit page.
|
admin/class-woo-feed-admin.php
CHANGED
@@ -66,17 +66,21 @@ class Woo_Feed_Admin {
|
|
66 |
* class.
|
67 |
*/
|
68 |
$mainDeps = array();
|
|
|
69 |
if ( false !== strpos( $hook, 'webappick' ) && false !== strpos( $hook, 'feed' ) ) {
|
70 |
-
wp_register_style( 'selectize', plugin_dir_url( __FILE__ ) . 'css/selectize.
|
71 |
-
|
72 |
-
wp_register_style( 'slick
|
73 |
-
|
|
|
74 |
if ( 'woo-feed_page_webappick-feed-pro-vs-free' == $hook ) {
|
75 |
$mainDeps = array_merge( $mainDeps, array( 'slick', 'slick-theme' ) );
|
76 |
}
|
77 |
}
|
78 |
-
wp_register_style( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'css/woo-feed-admin.
|
|
|
79 |
wp_enqueue_style( $this->woo_feed );
|
|
|
80 |
}
|
81 |
|
82 |
/**
|
@@ -98,13 +102,13 @@ class Woo_Feed_Admin {
|
|
98 |
* between the defined hooks and the functions defined in this
|
99 |
* class.
|
100 |
*/
|
101 |
-
|
102 |
-
wp_enqueue_script( 'wp-util' );
|
103 |
if ( false !== strpos( $hook, 'webappick' ) && false !== strpos( $hook, 'feed' ) ) {
|
104 |
wp_register_script( 'jquery-selectize', plugin_dir_url( __FILE__ ) . 'js/selectize.min.js', array( 'jquery' ), $this->version, false );
|
|
|
105 |
wp_register_script( 'jquery-validate', plugin_dir_url( __FILE__ ) . 'js/jquery.validate.min.js', array( 'jquery' ), $this->version, false );
|
106 |
wp_register_script( 'jquery-validate-additional-methods', plugin_dir_url( __FILE__ ) . 'js/additional-methods.min.js', array( 'jquery', 'jquery-validate' ), $this->version, false );
|
107 |
-
wp_register_script( 'jquery-sortable', plugin_dir_url( __FILE__ ) . 'js/jquery-sortable.
|
108 |
|
109 |
if ( ! wp_script_is( 'clipboard', 'registered' ) ) {
|
110 |
wp_register_script( 'clipboard', plugin_dir_url( __FILE__ ) . 'js/clipboard.min.js', [], '2.0.4', false );
|
@@ -124,9 +128,10 @@ class Woo_Feed_Admin {
|
|
124 |
'tags-box',
|
125 |
// 'underscore', 'word-count', 'jquery-ui-autocomplete',
|
126 |
'jquery-touch-punch',
|
|
|
127 |
];
|
128 |
|
129 |
-
wp_register_script( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'js/woo-feed-admin.
|
130 |
wp_localize_script(
|
131 |
$this->woo_feed,
|
132 |
'wpf_ajax_obj',
|
@@ -139,12 +144,14 @@ class Woo_Feed_Admin {
|
|
139 |
'regenerate' => esc_html__( 'Generating...', 'woo-feed' ),
|
140 |
'learn_more' => esc_html__( 'Learn More..', 'woo-feed' ),
|
141 |
'form' => array(
|
142 |
-
'
|
143 |
-
'
|
144 |
-
'
|
145 |
-
'
|
146 |
-
'
|
147 |
-
'
|
|
|
|
|
148 |
),
|
149 |
'ajax' => [
|
150 |
'url' => admin_url( 'admin-ajax.php' ),
|
@@ -156,9 +163,9 @@ class Woo_Feed_Admin {
|
|
156 |
wp_enqueue_script( $this->woo_feed );
|
157 |
|
158 |
if ( 'woo-feed_page_webappick-feed-pro-vs-free' === $hook ) {
|
159 |
-
wp_register_script( 'jquery-slick', plugin_dir_url( __FILE__ ) . 'js/slick.
|
160 |
-
wp_register_script( '
|
161 |
-
wp_enqueue_script( '
|
162 |
}
|
163 |
}
|
164 |
}
|
66 |
* class.
|
67 |
*/
|
68 |
$mainDeps = array();
|
69 |
+
$ext = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.css' : '.min.css';
|
70 |
if ( false !== strpos( $hook, 'webappick' ) && false !== strpos( $hook, 'feed' ) ) {
|
71 |
+
wp_register_style( 'selectize', plugin_dir_url( __FILE__ ) . 'css/selectize' . $ext, array(), $this->version );
|
72 |
+
wp_enqueue_style( 'fancy-select', plugin_dir_url( __FILE__ ) . 'css/fancy-select' . $ext, array(), $this->version );
|
73 |
+
wp_register_style( 'slick', plugin_dir_url( __FILE__ ) . 'css/slick' . $ext, array(), $this->version );
|
74 |
+
wp_register_style( 'slick-theme', plugin_dir_url( __FILE__ ) . 'css/slick-theme' . $ext, array(), $this->version );
|
75 |
+
$mainDeps = array( 'selectize', 'fancy-select', 'list-tables', 'edit' );
|
76 |
if ( 'woo-feed_page_webappick-feed-pro-vs-free' == $hook ) {
|
77 |
$mainDeps = array_merge( $mainDeps, array( 'slick', 'slick-theme' ) );
|
78 |
}
|
79 |
}
|
80 |
+
wp_register_style( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'css/woo-feed-admin' . $ext, $mainDeps, $this->version, 'all' );
|
81 |
+
wp_register_style( $this->woo_feed . '-pro', plugin_dir_url( __FILE__ ) . 'css/woo-feed-admin-pro' . $ext, [ $this->woo_feed ], $this->version, 'all' );
|
82 |
wp_enqueue_style( $this->woo_feed );
|
83 |
+
wp_enqueue_style( $this->woo_feed . '-pro' );
|
84 |
}
|
85 |
|
86 |
/**
|
102 |
* between the defined hooks and the functions defined in this
|
103 |
* class.
|
104 |
*/
|
105 |
+
$ext = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '.js' : '.min.js';
|
|
|
106 |
if ( false !== strpos( $hook, 'webappick' ) && false !== strpos( $hook, 'feed' ) ) {
|
107 |
wp_register_script( 'jquery-selectize', plugin_dir_url( __FILE__ ) . 'js/selectize.min.js', array( 'jquery' ), $this->version, false );
|
108 |
+
wp_register_script( 'fancy-select', plugin_dir_url( __FILE__ ) . 'js/fancy-select' . $ext, array( 'jquery' ), $this->version, false );
|
109 |
wp_register_script( 'jquery-validate', plugin_dir_url( __FILE__ ) . 'js/jquery.validate.min.js', array( 'jquery' ), $this->version, false );
|
110 |
wp_register_script( 'jquery-validate-additional-methods', plugin_dir_url( __FILE__ ) . 'js/additional-methods.min.js', array( 'jquery', 'jquery-validate' ), $this->version, false );
|
111 |
+
wp_register_script( 'jquery-sortable', plugin_dir_url( __FILE__ ) . 'js/jquery-sortable' . $ext, array( 'jquery' ), $this->version, false );
|
112 |
|
113 |
if ( ! wp_script_is( 'clipboard', 'registered' ) ) {
|
114 |
wp_register_script( 'clipboard', plugin_dir_url( __FILE__ ) . 'js/clipboard.min.js', [], '2.0.4', false );
|
128 |
'tags-box',
|
129 |
// 'underscore', 'word-count', 'jquery-ui-autocomplete',
|
130 |
'jquery-touch-punch',
|
131 |
+
'fancy-select',
|
132 |
];
|
133 |
|
134 |
+
wp_register_script( $this->woo_feed, plugin_dir_url( __FILE__ ) . 'js/woo-feed-admin' . $ext, $feedScriptDependency, $this->version, false );
|
135 |
wp_localize_script(
|
136 |
$this->woo_feed,
|
137 |
'wpf_ajax_obj',
|
144 |
'regenerate' => esc_html__( 'Generating...', 'woo-feed' ),
|
145 |
'learn_more' => esc_html__( 'Learn More..', 'woo-feed' ),
|
146 |
'form' => array(
|
147 |
+
'select_category' => esc_attr__( 'Select A Category', 'woo-feed' ),
|
148 |
+
'loading_tmpl' => esc_html__( 'Loading Template...', 'woo-feed' ),
|
149 |
+
'generate' => esc_html__( 'Delivering Configuration...', 'woo-feed' ),
|
150 |
+
'save' => esc_html__( 'Saving Configuration...', 'woo-feed' ),
|
151 |
+
'sftp_checking' => esc_html__( 'Wait! Checking Extensions ...', 'woo-feed' ),
|
152 |
+
'sftp_warning' => esc_html__( 'Warning! Enable PHP ssh2 extension to use SFTP. Contact your server administrator.', 'woo-feed' ),
|
153 |
+
'sftp_available' => esc_html__( 'SFTP Available!', 'woo-feed' ),
|
154 |
+
'one_item_required' => esc_html__( 'Please add one or more items to continue.', 'woo-feed' ),
|
155 |
),
|
156 |
'ajax' => [
|
157 |
'url' => admin_url( 'admin-ajax.php' ),
|
163 |
wp_enqueue_script( $this->woo_feed );
|
164 |
|
165 |
if ( 'woo-feed_page_webappick-feed-pro-vs-free' === $hook ) {
|
166 |
+
wp_register_script( 'jquery-slick', plugin_dir_url( __FILE__ ) . 'js/slick' . $ext, array( 'jquery' ), $this->version, false );
|
167 |
+
wp_register_script( $this->woo_feed . '-pro', plugin_dir_url( __FILE__ ) . 'js/woo-feed-admin-pro' . $ext, [ $this->woo_feed, 'jquery-slick' ], $this->version, false );
|
168 |
+
wp_enqueue_script( $this->woo_feed . '-pro' );
|
169 |
}
|
170 |
}
|
171 |
}
|
admin/css/fancy-select.css
ADDED
@@ -0,0 +1,187 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**!
|
2 |
+
* WooFeed Fancy Select
|
3 |
+
* @version 1.0.0
|
4 |
+
* @copyright 2020 Webappick
|
5 |
+
* @author Kudratullah <mhamudul.hk@gmail.com>
|
6 |
+
*/
|
7 |
+
.fancy-picker, .fancy-picker * {
|
8 |
+
box-sizing: border-box;
|
9 |
+
cursor: default;
|
10 |
+
user-select: none;
|
11 |
+
}
|
12 |
+
|
13 |
+
.fancy-picker {
|
14 |
+
position: relative;
|
15 |
+
display: block;
|
16 |
+
width: 100%;
|
17 |
+
height: 30px;
|
18 |
+
margin: 0 !important;
|
19 |
+
padding: 0 !important;
|
20 |
+
}
|
21 |
+
|
22 |
+
.fancy-picker-picked {
|
23 |
+
width: 100%;
|
24 |
+
height: 100%;
|
25 |
+
overflow: hidden;
|
26 |
+
display: block;
|
27 |
+
position: relative;
|
28 |
+
border: 1px solid #7e8993;
|
29 |
+
border-radius: 4px;
|
30 |
+
padding: 3.5px 0;
|
31 |
+
box-shadow: 0 0 4px -1px rgba(0, 0, 0, 0.45);
|
32 |
+
}
|
33 |
+
.fancy-picker-placeholder:empty,
|
34 |
+
.fancy-picker-count:empty {
|
35 |
+
display: none;
|
36 |
+
}
|
37 |
+
.fancy-picker-placeholder, .fancy-picker-data {
|
38 |
+
position: relative;
|
39 |
+
display: block;
|
40 |
+
width: calc( 100% - 25px );
|
41 |
+
float: left;
|
42 |
+
font-weight: 500;
|
43 |
+
padding: 1px 5px;
|
44 |
+
overflow: hidden;
|
45 |
+
text-overflow: ellipsis;
|
46 |
+
white-space: pre;
|
47 |
+
}
|
48 |
+
.fancy-picker-placeholder,
|
49 |
+
.fancy-picker-data > span {
|
50 |
+
display: inline;
|
51 |
+
top: -1px;
|
52 |
+
position: relative;
|
53 |
+
}
|
54 |
+
|
55 |
+
.fancy-picker-count:not(:empty) {
|
56 |
+
position: absolute;
|
57 |
+
display: block;
|
58 |
+
top: 50%;
|
59 |
+
transform: translateY(-50%);
|
60 |
+
right: 21px;
|
61 |
+
color: #ffffff;
|
62 |
+
background: #23282d;
|
63 |
+
z-index: 1;
|
64 |
+
padding: 1px 3px;
|
65 |
+
font-size: 12px;
|
66 |
+
line-height: normal;
|
67 |
+
border-radius: 5px;
|
68 |
+
opacity: 0.7;
|
69 |
+
}
|
70 |
+
.fancy-picker-option {
|
71 |
+
font-weight: 500;
|
72 |
+
width: 100%;
|
73 |
+
display: block;
|
74 |
+
float: left;
|
75 |
+
cursor: default;
|
76 |
+
padding: 2px 8px;
|
77 |
+
transition: background 300ms linear;
|
78 |
+
}
|
79 |
+
|
80 |
+
.fancy-picker-option.selected {
|
81 |
+
color: #000;
|
82 |
+
background: #acf;
|
83 |
+
font-weight: 700;
|
84 |
+
}
|
85 |
+
.fancy-picker-option.disabled {
|
86 |
+
color: #464646;
|
87 |
+
background: #e8e8e8;
|
88 |
+
font-weight: 700;
|
89 |
+
cursor: not-allowed;
|
90 |
+
}
|
91 |
+
.fancy-picker-option:not(.disabled):hover {
|
92 |
+
background: #00a1ff;
|
93 |
+
color: #FFF;
|
94 |
+
font-weight: 600;
|
95 |
+
}
|
96 |
+
.fancy-picker-option.disabled:hover,
|
97 |
+
.fancy-picker-option.selected:hover {
|
98 |
+
font-weight: 700;
|
99 |
+
}
|
100 |
+
|
101 |
+
.fancy-picker-ui {
|
102 |
+
position: absolute;
|
103 |
+
display: none;
|
104 |
+
background: #FFF;
|
105 |
+
z-index: 999;
|
106 |
+
border: 1px solid #7e8993;
|
107 |
+
top: 36px;
|
108 |
+
padding: 0;
|
109 |
+
margin: 0;
|
110 |
+
box-shadow: 0 0 10px -1px rgba(0, 0, 0, 0.96);
|
111 |
+
}
|
112 |
+
|
113 |
+
.fancy-picker.active .fancy-picker-ui {
|
114 |
+
display: block;
|
115 |
+
}
|
116 |
+
|
117 |
+
.fancy-picker-content {
|
118 |
+
overflow-y: auto;
|
119 |
+
overflow-x: hidden;
|
120 |
+
max-height: 200px;
|
121 |
+
width: 100%;
|
122 |
+
-webkit-overflow-scrolling: touch;
|
123 |
+
padding: 0;
|
124 |
+
background: #FFF;
|
125 |
+
}
|
126 |
+
|
127 |
+
.fancy-picker-ui:before {
|
128 |
+
content: "";
|
129 |
+
position: absolute;
|
130 |
+
width: 10px;
|
131 |
+
height: 10px;
|
132 |
+
border-top: 1px solid #4f555a;
|
133 |
+
border-left: 1px solid #4f555a;
|
134 |
+
top: -6px;
|
135 |
+
left: 10px;
|
136 |
+
transform: rotate(45deg);
|
137 |
+
z-index: -1;background: #4f555a;
|
138 |
+
}
|
139 |
+
|
140 |
+
.fancy-picker.active .fancy-picker-picked {
|
141 |
+
box-shadow: 0 0 3px -1px rgba(0, 0, 0, 0.45),
|
142 |
+
inset 0 0 4px -1px rgba(0, 0, 0, 0.27);
|
143 |
+
}
|
144 |
+
|
145 |
+
.fancy-picker-picked:after {
|
146 |
+
content: "";
|
147 |
+
display: block;
|
148 |
+
position: absolute;
|
149 |
+
width: 0;
|
150 |
+
height: 0;
|
151 |
+
float: right;
|
152 |
+
background: transparent;
|
153 |
+
border-style: solid;
|
154 |
+
border-color: #7e8993 transparent;
|
155 |
+
border-width: 7px 5px 0 5px;
|
156 |
+
top: 50%;
|
157 |
+
transform: translateY(-50%) rotate(0deg);
|
158 |
+
right: 5px;
|
159 |
+
transition: all 350ms linear;
|
160 |
+
cursor: pointer;
|
161 |
+
}
|
162 |
+
|
163 |
+
.fancy-picker-picked:before {
|
164 |
+
position: relative;
|
165 |
+
display: block;
|
166 |
+
content: "";
|
167 |
+
width: 5px;
|
168 |
+
height: 15px;
|
169 |
+
padding: 1px 0;
|
170 |
+
background: transparent;
|
171 |
+
border-left-width: 4px;
|
172 |
+
border-left-color: #7e8993;
|
173 |
+
border-left-style: dotted;
|
174 |
+
float: left;
|
175 |
+
left: 5px;
|
176 |
+
top: 2px;
|
177 |
+
transition: all 350ms linear;
|
178 |
+
}
|
179 |
+
.fancy-picker.active .fancy-picker-picked:after {
|
180 |
+
border-color: #31363a transparent;
|
181 |
+
transform:translateY(-50%) rotate3d(1, 0, 0, 180deg);
|
182 |
+
}
|
183 |
+
|
184 |
+
.fancy-picker.active .fancy-picker-picked:before,
|
185 |
+
.fancy-picker:hover .fancy-picker-picked:before {
|
186 |
+
border-left-color: #31363a;
|
187 |
+
}
|
admin/css/fancy-select.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.fancy-picker,.fancy-picker *{box-sizing:border-box;cursor:default;user-select:none}.fancy-picker{position:relative;display:block;width:100%;height:30px;margin:0!important;padding:0!important}.fancy-picker-picked{width:100%;height:100%;overflow:hidden;display:block;position:relative;border:1px solid #7e8993;border-radius:4px;padding:3.5px 0;box-shadow:0 0 4px -1px rgba(0,0,0,0.45)}.fancy-picker-placeholder:empty,.fancy-picker-count:empty{display:none}.fancy-picker-placeholder,.fancy-picker-data{position:relative;display:block;width:calc(100% - 25px);float:left;font-weight:500;padding:1px 5px;overflow:hidden;text-overflow:ellipsis;white-space:pre}.fancy-picker-placeholder,.fancy-picker-data > span{display:inline;top:-1px;position:relative}.fancy-picker-count:not(:empty){position:absolute;display:block;top:50%;transform:translateY(-50%);right:21px;color:#fff;background:#23282d;z-index:1;padding:1px 3px;font-size:12px;line-height:normal;border-radius:5px;opacity:.7}.fancy-picker-option{font-weight:500;width:100%;display:block;float:left;cursor:default;padding:2px 8px;transition:background 300ms linear}.fancy-picker-option.selected{color:#000;background:#acf;font-weight:700}.fancy-picker-option.disabled{color:#464646;background:#e8e8e8;font-weight:700;cursor:not-allowed}.fancy-picker-option:not(.disabled):hover{background:#00a1ff;color:#FFF;font-weight:600}.fancy-picker-option.disabled:hover,.fancy-picker-option.selected:hover{font-weight:700}.fancy-picker-ui{position:absolute;display:none;background:#FFF;z-index:999;border:1px solid #7e8993;top:36px;padding:0;margin:0;box-shadow:0 0 10px -1px rgba(0,0,0,0.96)}.fancy-picker.active .fancy-picker-ui{display:block}.fancy-picker-content{overflow-y:auto;overflow-x:hidden;max-height:200px;width:100%;-webkit-overflow-scrolling:touch;padding:0;background:#FFF}.fancy-picker-ui:before{content:"";position:absolute;width:10px;height:10px;border-top:1px solid #4f555a;border-left:1px solid #4f555a;top:-6px;left:10px;transform:rotate(45deg);z-index:-1;background:#4f555a}.fancy-picker.active .fancy-picker-picked{box-shadow:0 0 3px -1px rgba(0,0,0,0.45),inset 0 0 4px -1px rgba(0,0,0,0.27)}.fancy-picker-picked:after{content:"";display:block;position:absolute;width:0;height:0;float:right;background:transparent;border-style:solid;border-color:#7e8993 transparent;border-width:7px 5px 0;top:50%;transform:translateY(-50%) rotate(0deg);right:5px;transition:all 350ms linear;cursor:pointer}.fancy-picker-picked:before{position:relative;display:block;content:"";width:5px;height:15px;padding:1px 0;background:transparent;border-left-width:4px;border-left-color:#7e8993;border-left-style:dotted;float:left;left:5px;top:2px;transition:all 350ms linear}.fancy-picker.active .fancy-picker-picked:after{border-color:#31363a transparent;transform:translateY(-50%) rotate3d(1,0,0,180deg)}.fancy-picker.active .fancy-picker-picked:before,.fancy-picker:hover .fancy-picker-picked:before{border-left-color:#31363a}
|
admin/css/selectize.css
CHANGED
@@ -1,4 +1,3 @@
|
|
1 |
-
|
2 |
/**
|
3 |
* selectize.css (v0.12.6)
|
4 |
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
|
|
1 |
/**
|
2 |
* selectize.css (v0.12.6)
|
3 |
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
admin/css/selectize.min.css
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* selectize.css (v0.12.6)
|
3 |
+
* Copyright (c) 2013–2015 Brian Reavis & contributors
|
4 |
+
*
|
5 |
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
|
6 |
+
* file except in compliance with the License. You may obtain a copy of the License at:
|
7 |
+
* http://www.apache.org/licenses/LICENSE-2.0
|
8 |
+
*
|
9 |
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
10 |
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11 |
+
* ANY KIND, either express or implied. See the License for the specific language
|
12 |
+
* governing permissions and limitations under the License.
|
13 |
+
*
|
14 |
+
* @author Brian Reavis <brian@thirdroute.com>
|
15 |
+
*/
|
16 |
+
.selectize-control.plugin-drag_drop.multi > .selectize-input > div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,0.06)!important;border:0 none!important;-webkit-box-shadow:inset 0 0 12px 4px #fff;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:'!';visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{-webkit-box-shadow:0 2px 5px rgba(0,0,0,0.2);box-shadow:0 2px 5px rgba(0,0,0,0.2)}.selectize-dropdown-header{position:relative;padding:5px 8px;border-bottom:1px solid #d0d0d0;background:#f8f8f8;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-dropdown-header-close{position:absolute;right:8px;top:50%;color:#303030;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button [data-value]{position:relative;padding-right:24px!important}.selectize-control.plugin-remove_button [data-value] .remove{z-index:1;position:absolute;top:0;right:0;bottom:0;width:17px;text-align:center;font-weight:700;font-size:12px;color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:2px 0 0;border-left:1px solid #d0d0d0;-webkit-border-radius:0 2px 2px 0;-moz-border-radius:0 2px 2px 0;border-radius:0 2px 2px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.selectize-control.plugin-remove_button [data-value] .remove:hover{background:rgba(0,0,0,0.05)}.selectize-control.plugin-remove_button [data-value].active .remove{border-left-color:#cacaca}.selectize-control.plugin-remove_button .disabled [data-value] .remove:hover{background:none}.selectize-control.plugin-remove_button .disabled [data-value] .remove{border-left-color:#fff}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#303030;font-family:inherit;font-size:13px;line-height:18px;-webkit-font-smoothing:inherit}.selectize-input,.selectize-control.single .selectize-input.input-active{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #d0d0d0;padding:8px;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);box-shadow:inset 0 1px 1px rgba(0,0,0,0.1);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.selectize-control.multi .selectize-input.has-items{padding:6px 8px 3px}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.15)}.selectize-input.dropdown-active{-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.selectize-input > *{vertical-align:baseline;display:-moz-inline-stack;display:inline-block;zoom:1;*display:inline}.selectize-control.multi .selectize-input > div{cursor:pointer;margin:0 3px 3px 0;padding:2px 6px;background:#f2f2f2;color:#303030;border:0 solid #d0d0d0}.selectize-control.multi .selectize-input > div.active{background:#e8e8e8;color:#303030;border:0 solid #cacaca}.selectize-control.multi .selectize-input.disabled > div,.selectize-control.multi .selectize-input.disabled > div.active{color:#7d7d7d;background:#fff;border:0 solid #fff}.selectize-input > input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0 2px 0 0 !important;text-indent:0!important;border:0 none!important;background:none!important;line-height:inherit!important;-webkit-user-select:auto!important;-webkit-box-shadow:none!important;box-shadow:none!important}.selectize-input > input::-ms-clear{display:none}.selectize-input > input:focus{outline:none!important}.selectize-input::after{content:' ';display:block;clear:left}.selectize-input.dropdown-active::before{content:' ';display:block;position:absolute;background:#f0f0f0;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0;border-top:0 none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1);-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(125,168,208,0.2);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.selectize-dropdown .option,.selectize-dropdown .optgroup-header{padding:5px 8px}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#303030;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f5fafd;color:#495c68}.selectize-dropdown .active.create{color:#495c68}.selectize-dropdown .create{color:rgba(48,48,48,0.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;-webkit-overflow-scrolling:touch}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:' ';display:block;position:absolute;top:50%;right:15px;margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0;border-color:gray transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px;border-color:transparent transparent gray}.selectize-control.rtl.single .selectize-input:after{left:15px;right:auto}.selectize-control.rtl .selectize-input > input{margin:0 4px 0 -2px !important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fafafa}
|
admin/css/slick-theme.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@charset "UTF-8";.slick-loading .slick-list{background:#fff url(../images/ajax-loader.gif) center center no-repeat}@font-face{font-family:'slick';font-weight:400;font-style:normal;src:url(../fonts/slick.eot);src:url(../fonts/slick.eot?#iefix) format("embedded-opentype"),url(../fonts/slick.woff) format("woff"),url(../fonts/slick.ttf) format("truetype"),url(../fonts/slick.svg#slick) format("svg")}.slick-prev,.slick-next{font-size:0;line-height:0;position:absolute;top:50%;display:block;width:20px;height:20px;padding:0;-webkit-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);cursor:pointer;color:transparent;border:none;outline:none;background:transparent}.slick-prev:hover,.slick-prev:focus,.slick-next:hover,.slick-next:focus{color:transparent;outline:none;background:transparent}.slick-prev:hover:before,.slick-prev:focus:before,.slick-next:hover:before,.slick-next:focus:before{opacity:1}.slick-prev.slick-disabled:before,.slick-next.slick-disabled:before{opacity:.25}.slick-prev:before,.slick-next:before{font-family:'slick';font-size:20px;line-height:1;opacity:.75;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-prev{left:-25px}[dir='rtl'] .slick-prev{right:-25px;left:auto}.slick-prev:before{content:'←'}[dir='rtl'] .slick-prev:before{content:'→'}.slick-next{right:-25px}[dir='rtl'] .slick-next{right:auto;left:-25px}.slick-next:before{content:'→'}[dir='rtl'] .slick-next:before{content:'←'}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;bottom:-25px;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button{font-size:0;line-height:0;display:block;width:20px;height:20px;padding:5px;cursor:pointer;color:transparent;border:0;outline:none;background:transparent}.slick-dots li button:hover,.slick-dots li button:focus{outline:none}.slick-dots li button:hover:before,.slick-dots li button:focus:before{opacity:1}.slick-dots li button:before{font-family:'slick';font-size:6px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}
|
admin/css/slick.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:none}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir='rtl'] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
|
admin/css/woo-feed-admin-pro.css
ADDED
@@ -0,0 +1,742 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
table.wf-info-table th a,
|
2 |
+
table.wf-rate-table th strong {
|
3 |
+
font-weight: bold;
|
4 |
+
}
|
5 |
+
|
6 |
+
table.wf-info-table th a,
|
7 |
+
table.wf-rate-table a {
|
8 |
+
color: #0073aa;
|
9 |
+
}
|
10 |
+
|
11 |
+
table.wf-info-table th a.get-woo-feed-pro {
|
12 |
+
display: inline-block;
|
13 |
+
text-decoration: none;
|
14 |
+
background: #f3f5f6;
|
15 |
+
color: #ff3355;
|
16 |
+
vertical-align: top;
|
17 |
+
font-size: 14px;
|
18 |
+
line-height: 3.14285714;
|
19 |
+
box-sizing: border-box;
|
20 |
+
margin: 0;
|
21 |
+
border-radius: 35px;
|
22 |
+
box-shadow: 1px 2px 10px 1px rgba(255, 51, 85, 0.5);
|
23 |
+
}
|
24 |
+
|
25 |
+
table.wf-info-table th a.get-woo-feed-pro img {
|
26 |
+
display: block;
|
27 |
+
position: relative;
|
28 |
+
margin: -2px;
|
29 |
+
width: 180px;
|
30 |
+
height: auto;
|
31 |
+
}
|
32 |
+
|
33 |
+
table.wf-info-table th a.button {
|
34 |
+
border-color: #0073aa;
|
35 |
+
border-radius: 35px;
|
36 |
+
}
|
37 |
+
|
38 |
+
table.wf-info-table th a.documentation {
|
39 |
+
color: #0073aa;
|
40 |
+
}
|
41 |
+
|
42 |
+
table.wf-info-table th a.tutorial {
|
43 |
+
color: #ee264a;
|
44 |
+
}
|
45 |
+
|
46 |
+
table.wf-info-table th a.support {
|
47 |
+
color: #0DD41E;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Premium Page Design
|
52 |
+
*/
|
53 |
+
.wp-submenu li span.woo-feed-premium {
|
54 |
+
font-weight: bold;
|
55 |
+
color: #28e499;
|
56 |
+
}
|
57 |
+
|
58 |
+
.wp-submenu li:hover span.woo-feed-premium,
|
59 |
+
.wp-submenu li.current span.woo-feed-premium {
|
60 |
+
color: #1dc381;
|
61 |
+
}
|
62 |
+
|
63 |
+
.woo_feed_free_manage_attribute {
|
64 |
+
margin: 0 auto;
|
65 |
+
width: 100%;
|
66 |
+
}
|
67 |
+
|
68 |
+
.woo_feed_screenshort {
|
69 |
+
max-width: 100%;
|
70 |
+
width: 1000px;
|
71 |
+
border: 3px solid #00b9eb;
|
72 |
+
display: block;
|
73 |
+
margin: 0 auto;
|
74 |
+
}
|
75 |
+
|
76 |
+
.woo-feed-screen-shot-title {
|
77 |
+
font-size: 36px;
|
78 |
+
text-align: center;
|
79 |
+
box-sizing: content-box;
|
80 |
+
color: #00b9eb;
|
81 |
+
}
|
82 |
+
|
83 |
+
.woo_feed_screen {
|
84 |
+
background: #fff;
|
85 |
+
padding: 25px 20px;
|
86 |
+
margin-bottom: 20px;
|
87 |
+
}
|
88 |
+
|
89 |
+
.woo_feed_screen_des {
|
90 |
+
text-align: center;
|
91 |
+
margin: 20px 50px 20px 50px;
|
92 |
+
font-size: 16px;
|
93 |
+
color: #666;
|
94 |
+
}
|
95 |
+
|
96 |
+
.woo_feed_screen_des_2 {
|
97 |
+
text-align: center;
|
98 |
+
margin: 20px 50px 5px 50px;
|
99 |
+
font-size: 14px;
|
100 |
+
color: #32373c;
|
101 |
+
}
|
102 |
+
|
103 |
+
|
104 |
+
.wapk-admin .wapk-feed-upgrade {
|
105 |
+
font-family: 'Open Sans', sans-serif;
|
106 |
+
margin: -10px -20px 0 -22px;
|
107 |
+
}
|
108 |
+
|
109 |
+
.wapk-admin .wapk-feed-upgrade a {
|
110 |
+
transition: all 0.2s ease;
|
111 |
+
}
|
112 |
+
|
113 |
+
.wapk-admin .section-title {
|
114 |
+
text-align: center;
|
115 |
+
font-size: 30px;
|
116 |
+
line-height: 1.5em;
|
117 |
+
font-weight: 400;
|
118 |
+
position: relative;
|
119 |
+
margin: 0 0 58px;
|
120 |
+
}
|
121 |
+
|
122 |
+
.wapk-admin .section-title:after {
|
123 |
+
content: '';
|
124 |
+
position: absolute;
|
125 |
+
bottom: -21px;
|
126 |
+
left: 50%;
|
127 |
+
transform: translateX(-50%);
|
128 |
+
width: 38px;
|
129 |
+
height: 5px;
|
130 |
+
border-radius: 3px;
|
131 |
+
background-color: #00D4D4;
|
132 |
+
}
|
133 |
+
|
134 |
+
.wapk-admin .section-title .section-sub-title {
|
135 |
+
font-size: 22px;
|
136 |
+
font-weight: 300;
|
137 |
+
}
|
138 |
+
|
139 |
+
.wapk-admin .wapk-banner {
|
140 |
+
background-color: #f2f2f2;
|
141 |
+
font-size: 16px;
|
142 |
+
display: flex;
|
143 |
+
align-items: center;
|
144 |
+
padding: 50px 8%;
|
145 |
+
border-bottom: 1px solid #eee;
|
146 |
+
}
|
147 |
+
|
148 |
+
.wapk-admin .wapk-banner .wapk-banner__graphics {
|
149 |
+
width: 100%;
|
150 |
+
}
|
151 |
+
|
152 |
+
.wapk-admin .wapk-banner .wapk-banner__content h1 {
|
153 |
+
font-size: 27px;
|
154 |
+
line-height: 1.5em;
|
155 |
+
}
|
156 |
+
|
157 |
+
.wapk-admin .wapk-banner .wapk-banner__content p {
|
158 |
+
font-size: 16px;
|
159 |
+
line-height: 1.5em;
|
160 |
+
font-weight: 300;
|
161 |
+
margin: 0;
|
162 |
+
/*noinspection CssFloatPxLength*/
|
163 |
+
letter-spacing: 0.5px;
|
164 |
+
}
|
165 |
+
|
166 |
+
.wapk-admin .feed-features,
|
167 |
+
.wapk-admin .wapk-testimonial,
|
168 |
+
.wapk-admin .feed-pricing {
|
169 |
+
text-align: center;
|
170 |
+
padding: 75px 30px 85px;
|
171 |
+
background-color: #f7f8f9;
|
172 |
+
}
|
173 |
+
|
174 |
+
.wapk-admin .feed-features .feed-feature__list {
|
175 |
+
display: flex;
|
176 |
+
flex-wrap: wrap;
|
177 |
+
align-items: flex-start;
|
178 |
+
justify-content: center;
|
179 |
+
}
|
180 |
+
|
181 |
+
.wapk-admin .feed-features .feed-features__more {
|
182 |
+
margin-top: 25px;
|
183 |
+
}
|
184 |
+
|
185 |
+
.feed-feature__item {
|
186 |
+
flex: 0 0 28.9%;
|
187 |
+
margin: 0 2.2% 4.4% 2.2%;
|
188 |
+
text-align: center;
|
189 |
+
border-radius: 5px;
|
190 |
+
background-color: #ffffff;
|
191 |
+
transition: all 100ms linear;
|
192 |
+
overflow: hidden;
|
193 |
+
}
|
194 |
+
|
195 |
+
.feed-feature__item:hover {
|
196 |
+
box-shadow: 5px 4px 32px -16px rgba(0, 0, 0, 0.63);
|
197 |
+
}
|
198 |
+
|
199 |
+
.feed-feature__thumb {
|
200 |
+
overflow: hidden;
|
201 |
+
}
|
202 |
+
|
203 |
+
.feed-feature__item .feed-feature__thumb img {
|
204 |
+
border-radius: 5px 5px 0 0;
|
205 |
+
max-width: 100%;
|
206 |
+
width: 100%;
|
207 |
+
-webkit-transition: all 100ms linear;
|
208 |
+
-moz-transition: all 100ms linear;
|
209 |
+
-ms-transition: all 100ms linear;
|
210 |
+
-o-transition: all 100ms linear;
|
211 |
+
transition: all 100ms linear;
|
212 |
+
}
|
213 |
+
|
214 |
+
.feed-feature__item:hover .feed-feature__thumb img {
|
215 |
+
transform: scale(1.05);
|
216 |
+
}
|
217 |
+
|
218 |
+
.feed-feature__item .feed-feature__description {
|
219 |
+
padding: 20px 15px 25px;
|
220 |
+
}
|
221 |
+
|
222 |
+
.feed-feature__item .feed-feature__description h3 {
|
223 |
+
font-size: 15px;
|
224 |
+
line-height: 1.5em;
|
225 |
+
font-weight: 300;
|
226 |
+
margin: 0;
|
227 |
+
}
|
228 |
+
|
229 |
+
.wapk-admin .feed-pro-comparison {
|
230 |
+
background-color: #f1f1f1;
|
231 |
+
padding: 75px;
|
232 |
+
}
|
233 |
+
|
234 |
+
.wapk-admin .feed-features .section-title h2,
|
235 |
+
.wapk-admin .wapk-testimonial .section-title h2,
|
236 |
+
.wapk-admin .feed-pro-comparison .section-title h2,
|
237 |
+
.wapk-admin .feed-pricing .section-title h2 {
|
238 |
+
margin-top: 0;
|
239 |
+
margin-bottom: 0;
|
240 |
+
}
|
241 |
+
|
242 |
+
.wapk-admin .comparison-table {
|
243 |
+
display: flex;
|
244 |
+
justify-content: space-between;
|
245 |
+
}
|
246 |
+
|
247 |
+
.wapk-admin .comparison-table .comparison {
|
248 |
+
flex: 0 0 48%;
|
249 |
+
background-color: #fff;
|
250 |
+
border: 1px solid #e0e9ec;
|
251 |
+
border-radius: 5px;
|
252 |
+
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, .05);
|
253 |
+
padding: 50px;
|
254 |
+
box-sizing: border-box;
|
255 |
+
}
|
256 |
+
|
257 |
+
.wapk-admin .comparison .product-header {
|
258 |
+
margin-bottom: 58px;
|
259 |
+
position: relative;
|
260 |
+
}
|
261 |
+
|
262 |
+
.wapk-admin .comparison .product-header:after {
|
263 |
+
content: "";
|
264 |
+
position: absolute;
|
265 |
+
bottom: -23px;
|
266 |
+
left: 0;
|
267 |
+
width: 38px;
|
268 |
+
height: 5px;
|
269 |
+
border-radius: 3px;
|
270 |
+
background-color: #d7d7d7;
|
271 |
+
}
|
272 |
+
|
273 |
+
.wapk-admin .comparison .product-header img {
|
274 |
+
max-width: 160px;
|
275 |
+
width: 100%;
|
276 |
+
}
|
277 |
+
|
278 |
+
.wapk-admin .comparison .product-features {
|
279 |
+
margin: 0;
|
280 |
+
}
|
281 |
+
|
282 |
+
.wapk-admin .comparison li {
|
283 |
+
position: relative;
|
284 |
+
display: flex;
|
285 |
+
margin-bottom: 15px;
|
286 |
+
padding-left: 30px;
|
287 |
+
font-size: 14px;
|
288 |
+
line-height: 1.3em;
|
289 |
+
font-weight: 300;
|
290 |
+
align-items: center;
|
291 |
+
}
|
292 |
+
|
293 |
+
.wapk-admin .comparison li.unavailable {
|
294 |
+
color: #CED2D6;
|
295 |
+
}
|
296 |
+
|
297 |
+
.wapk-admin .comparison li span.dashicons {
|
298 |
+
position: absolute;
|
299 |
+
top: 1px;
|
300 |
+
left: 6px;
|
301 |
+
width: 18px;
|
302 |
+
height: 18px;
|
303 |
+
border-radius: 100%;
|
304 |
+
background: #00D4D4;
|
305 |
+
color: #FFF;
|
306 |
+
line-height: 22px;
|
307 |
+
font-size: 14px;
|
308 |
+
text-align: center;
|
309 |
+
}
|
310 |
+
|
311 |
+
.wapk-admin .comparison li.unavailable {
|
312 |
+
color: #CED2D6;
|
313 |
+
}
|
314 |
+
|
315 |
+
.wapk-admin .comparison li.unavailable span.dashicons {
|
316 |
+
background: #CED2D6;
|
317 |
+
}
|
318 |
+
|
319 |
+
.wapk-admin .comparison li span.dashicons-no {
|
320 |
+
font-size: 12px;
|
321 |
+
}
|
322 |
+
|
323 |
+
.wapk-admin .comparison li span.dashicons-no:before {
|
324 |
+
left: 0;
|
325 |
+
}
|
326 |
+
|
327 |
+
.wapk-admin .comparison li span.dashicons:before {
|
328 |
+
position: relative;
|
329 |
+
left: -0.5px;
|
330 |
+
top: -2px;
|
331 |
+
}
|
332 |
+
|
333 |
+
.wapk-admin .comparison li img {
|
334 |
+
width: 18px;
|
335 |
+
margin-right: 12px;
|
336 |
+
}
|
337 |
+
|
338 |
+
.wapk-admin .feed-pricing {
|
339 |
+
}
|
340 |
+
|
341 |
+
.wapk-pricing__table {
|
342 |
+
width: 100%;
|
343 |
+
display: -webkit-box;
|
344 |
+
display: -webkit-flex;
|
345 |
+
display: -ms-flexbox;
|
346 |
+
display: flex;
|
347 |
+
-webkit-flex-wrap: wrap;
|
348 |
+
-ms-flex-wrap: wrap;
|
349 |
+
flex-wrap: wrap;
|
350 |
+
-webkit-align-content: flex-start;
|
351 |
+
-ms-flex-line-pack: start;
|
352 |
+
align-content: flex-start;
|
353 |
+
justify-content: center;
|
354 |
+
}
|
355 |
+
|
356 |
+
.wapk-pricing__table__item {
|
357 |
+
position: relative;
|
358 |
+
flex: 0 0 23%;
|
359 |
+
}
|
360 |
+
|
361 |
+
.wapk-price__table__wrapper {
|
362 |
+
position: relative;
|
363 |
+
padding: 10px;
|
364 |
+
}
|
365 |
+
|
366 |
+
.wapk-price__table {
|
367 |
+
text-align: center;
|
368 |
+
display: block;
|
369 |
+
width: 100%;
|
370 |
+
padding: 10px;
|
371 |
+
background-color: #fff;
|
372 |
+
border-radius: 8px 8px 8px 8px;
|
373 |
+
box-shadow: 0 0 25px 0 rgba(0, 0, 0, .1);
|
374 |
+
overflow: hidden;
|
375 |
+
-webkit-transition: background .3s, border .3s, -webkit-border-radius .3s, -webkit-box-shadow .3s;
|
376 |
+
transition: background .3s, border .3s, -webkit-border-radius .3s, -webkit-box-shadow .3s;
|
377 |
+
-o-transition: background .3s, border .3s, border-radius .3s, box-shadow .3s;
|
378 |
+
transition: background .3s, border .3s, border-radius .3s, box-shadow .3s;
|
379 |
+
transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, -webkit-border-radius .3s, -webkit-box-shadow .3s;
|
380 |
+
}
|
381 |
+
|
382 |
+
.wapk-price__table__header {
|
383 |
+
background-color: #fff;
|
384 |
+
padding: 40px 0 0;
|
385 |
+
}
|
386 |
+
|
387 |
+
.wapk-price__table__heading {
|
388 |
+
color: #6d7882;
|
389 |
+
font-size: 17px;
|
390 |
+
font-weight: 500;
|
391 |
+
text-transform: uppercase;
|
392 |
+
letter-spacing: 10px;
|
393 |
+
font-family: sans-serif;
|
394 |
+
margin: 0;
|
395 |
+
padding: 0;
|
396 |
+
line-height: 1.2;
|
397 |
+
}
|
398 |
+
|
399 |
+
.wapk-price__table__price {
|
400 |
+
font-family: sans-serif;
|
401 |
+
font-weight: 600;
|
402 |
+
padding: 30px 0 10px;
|
403 |
+
display: -webkit-box;
|
404 |
+
display: -ms-flexbox;
|
405 |
+
display: flex;
|
406 |
+
-webkit-box-pack: center;
|
407 |
+
-ms-flex-pack: center;
|
408 |
+
justify-content: center;
|
409 |
+
-webkit-box-align: center;
|
410 |
+
-ms-flex-align: center;
|
411 |
+
align-items: center;
|
412 |
+
-ms-flex-wrap: wrap;
|
413 |
+
flex-wrap: wrap;
|
414 |
+
-webkit-box-orient: horizontal;
|
415 |
+
-webkit-box-direction: normal;
|
416 |
+
-ms-flex-direction: row;
|
417 |
+
flex-direction: row;
|
418 |
+
color: #434363;
|
419 |
+
font-size: 45px;
|
420 |
+
}
|
421 |
+
|
422 |
+
.wapk-price__table__amount {
|
423 |
+
}
|
424 |
+
|
425 |
+
.wapk-price__table__currency {
|
426 |
+
align-self: flex-start;
|
427 |
+
color: #434363;
|
428 |
+
line-height: 1;
|
429 |
+
font-size: .3em;
|
430 |
+
margin-right: 3px;
|
431 |
+
}
|
432 |
+
|
433 |
+
.wapk-price__table__amount .free,
|
434 |
+
.wapk-price__table__amount .integer-part {
|
435 |
+
color: #434363;
|
436 |
+
line-height: .8;
|
437 |
+
}
|
438 |
+
|
439 |
+
.wapk-price__table__amount .decimal-part {
|
440 |
+
font-size: 14px;
|
441 |
+
font-weight: 400;
|
442 |
+
}
|
443 |
+
|
444 |
+
.wapk-price__table__amount .period {
|
445 |
+
font-size: 14px;
|
446 |
+
font-weight: 400;
|
447 |
+
}
|
448 |
+
|
449 |
+
.wapk-price__table__amount___legend {
|
450 |
+
width: 100%;
|
451 |
+
color: #FF4B4B;
|
452 |
+
font-size: 18px;
|
453 |
+
font-weight: 500;
|
454 |
+
line-height: 2.5em;
|
455 |
+
}
|
456 |
+
|
457 |
+
.wapk-price__table__features {
|
458 |
+
list-style-type: none;
|
459 |
+
margin: 0;
|
460 |
+
padding: 0;
|
461 |
+
line-height: 1;
|
462 |
+
color: #697279;
|
463 |
+
text-align: left;
|
464 |
+
}
|
465 |
+
|
466 |
+
.wapk-price__table__features li.item {
|
467 |
+
list-style-type: none;
|
468 |
+
margin: 0;
|
469 |
+
padding: 0;
|
470 |
+
font-size: 13px;
|
471 |
+
line-height: 1.5em;
|
472 |
+
}
|
473 |
+
|
474 |
+
.wapk-price__table__features li:not(:first-child):before {
|
475 |
+
content: "";
|
476 |
+
display: block;
|
477 |
+
/* border: 0 solid hsla(0,0%,48%,.3); */
|
478 |
+
margin: 10px 12.5%;
|
479 |
+
}
|
480 |
+
|
481 |
+
.wapk-price__table__feature {
|
482 |
+
display: block;
|
483 |
+
margin-left: calc(((100% - 80%) / 2) + 20px);
|
484 |
+
margin-right: calc((100% - 80%) / 2);
|
485 |
+
}
|
486 |
+
|
487 |
+
span.wapk-price__table__feature span.dashicons {
|
488 |
+
margin-left: -20px;
|
489 |
+
top: 2px;
|
490 |
+
position: relative;
|
491 |
+
}
|
492 |
+
|
493 |
+
.wapk-price__table__footer {
|
494 |
+
padding: 40px 0;
|
495 |
+
}
|
496 |
+
|
497 |
+
.wapk-price__table__footer a {
|
498 |
+
font-size: 14px;
|
499 |
+
text-transform: uppercase;
|
500 |
+
letter-spacing: 3px;
|
501 |
+
border-radius: 100px 100px 100px 100px;
|
502 |
+
padding: 16px 42px;
|
503 |
+
transition: all 250ms;
|
504 |
+
}
|
505 |
+
|
506 |
+
.wapk-price__table__footer a:hover,
|
507 |
+
.wapk-price__table__footer a:focus,
|
508 |
+
.wapk-price__table__footer a:active {
|
509 |
+
transform: scale(1.02) !important;
|
510 |
+
}
|
511 |
+
|
512 |
+
.wapk-price__table__ribbon {
|
513 |
+
pointer-events: none;
|
514 |
+
touch-action: none;
|
515 |
+
-webkit-user-select: none;
|
516 |
+
-moz-user-select: none;
|
517 |
+
-ms-user-select: none;
|
518 |
+
user-select: none;
|
519 |
+
position: absolute;
|
520 |
+
top: 10px;
|
521 |
+
left: auto;
|
522 |
+
right: 10px;
|
523 |
+
-webkit-transform: rotate(90deg);
|
524 |
+
-ms-transform: rotate(90deg);
|
525 |
+
transform: rotate(90deg);
|
526 |
+
width: 150px;
|
527 |
+
overflow: hidden;
|
528 |
+
height: 150px;
|
529 |
+
}
|
530 |
+
|
531 |
+
.wapk-price__table__ribbon__inner {
|
532 |
+
background: #FF4B4B;
|
533 |
+
font-family: sans-serif;
|
534 |
+
font-weight: 500;
|
535 |
+
color: #fff;
|
536 |
+
font-size: 11px;
|
537 |
+
/*noinspection CssFloatPxLength*/
|
538 |
+
letter-spacing: 1.1px;
|
539 |
+
box-shadow: 0 0 30px 0 rgba(0, 0, 0, .21);
|
540 |
+
text-align: center;
|
541 |
+
left: 0;
|
542 |
+
width: 200%;
|
543 |
+
-webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
544 |
+
-ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
545 |
+
transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
546 |
+
margin-top: 35px;
|
547 |
+
line-height: 2;
|
548 |
+
text-transform: uppercase;
|
549 |
+
}
|
550 |
+
|
551 |
+
.wapk-admin .wapk-payment {
|
552 |
+
display: flex;
|
553 |
+
background: #fff;
|
554 |
+
justify-content: space-between;
|
555 |
+
padding: 85px 65px 85px;
|
556 |
+
align-items: center;
|
557 |
+
}
|
558 |
+
|
559 |
+
.wapk-payment .payment-guarantee {
|
560 |
+
display: flex;
|
561 |
+
flex: 0 0 63%;
|
562 |
+
align-content: center;
|
563 |
+
align-items: center;
|
564 |
+
position: relative;
|
565 |
+
}
|
566 |
+
|
567 |
+
.wapk-payment .payment-guarantee:after {
|
568 |
+
content: "";
|
569 |
+
position: absolute;
|
570 |
+
right: -18px;
|
571 |
+
top: 50%;
|
572 |
+
transform: translateY(-50%);
|
573 |
+
width: 5px;
|
574 |
+
height: 38px;
|
575 |
+
border-radius: 3px;
|
576 |
+
background: #00D4D4;
|
577 |
+
}
|
578 |
+
|
579 |
+
.wapk-payment .payment-guarantee .guarantee-seal img {
|
580 |
+
max-width: 100%;
|
581 |
+
width: 280px;
|
582 |
+
}
|
583 |
+
|
584 |
+
.wapk-payment .payment-guarantee .guarantee-detail {
|
585 |
+
padding-left: 25px;
|
586 |
+
}
|
587 |
+
|
588 |
+
.wapk-payment .payment-guarantee .guarantee-detail h2 {
|
589 |
+
font-size: 24px;
|
590 |
+
line-height: 1.5em;
|
591 |
+
font-weight: 400;
|
592 |
+
margin: 0;
|
593 |
+
}
|
594 |
+
|
595 |
+
.wapk-payment .payment-guarantee .guarantee-detail p {
|
596 |
+
font-size: 15px;
|
597 |
+
line-height: 1.5em;
|
598 |
+
font-weight: 300;
|
599 |
+
margin: 5px 0 20px;
|
600 |
+
}
|
601 |
+
|
602 |
+
.wapk-payment .payment-guarantee .guarantee-detail a {
|
603 |
+
color: #00D4D4;
|
604 |
+
font-size: 15px;
|
605 |
+
line-height: 1.5em;
|
606 |
+
text-decoration: none;
|
607 |
+
}
|
608 |
+
|
609 |
+
.wapk-payment .payment-guarantee .guarantee-detail a span.dashicons,
|
610 |
+
.wapk-payment .payment-guarantee .guarantee-detail a img {
|
611 |
+
width: 18px;
|
612 |
+
margin-right: 4px;
|
613 |
+
margin-top: 1px;
|
614 |
+
}
|
615 |
+
|
616 |
+
.wapk-payment .payment-options {
|
617 |
+
flex-grow: 0.5;
|
618 |
+
}
|
619 |
+
|
620 |
+
.wapk-payment .payment-options h3 {
|
621 |
+
font-size: 15px;
|
622 |
+
font-weight: 300;
|
623 |
+
margin: 0 0 17px;
|
624 |
+
}
|
625 |
+
|
626 |
+
.wapk-payment .payment-options .options {
|
627 |
+
}
|
628 |
+
|
629 |
+
.wapk-payment .payment-options .options h4 {
|
630 |
+
color: #CED2D6;
|
631 |
+
}
|
632 |
+
|
633 |
+
.wapk-payment .payment-options .options li {
|
634 |
+
float: left;
|
635 |
+
overflow: hidden;
|
636 |
+
}
|
637 |
+
|
638 |
+
.wapk-payment .payment-options .options li img {
|
639 |
+
height: 20px;
|
640 |
+
margin-right: 5px;
|
641 |
+
}
|
642 |
+
|
643 |
+
/** Testimonial **/
|
644 |
+
.wapk-admin .wapk-testimonials {
|
645 |
+
}
|
646 |
+
|
647 |
+
.wapk-admin .wapk-testimonial-wrapper:before {
|
648 |
+
content: '';
|
649 |
+
position: absolute;
|
650 |
+
left: 79px;
|
651 |
+
top: -15px;
|
652 |
+
width: 80px;
|
653 |
+
height: 56px;
|
654 |
+
border-radius: 3px;
|
655 |
+
background: transparent url(../images/block-quote.svg) no-repeat;
|
656 |
+
background-size: cover;
|
657 |
+
}
|
658 |
+
|
659 |
+
.wapk-admin .wapk-testimonial-wrapper {
|
660 |
+
position: relative;
|
661 |
+
display: block;
|
662 |
+
width: 80%;
|
663 |
+
margin: 0 auto;
|
664 |
+
padding: 0;
|
665 |
+
text-align: center;
|
666 |
+
}
|
667 |
+
|
668 |
+
.testimonial-item__user .avatar {
|
669 |
+
width: 100px;
|
670 |
+
height: 100px;
|
671 |
+
margin: 0 auto;
|
672 |
+
border-radius: 100%;
|
673 |
+
border: 3px solid #efefef;
|
674 |
+
overflow: hidden;
|
675 |
+
}
|
676 |
+
|
677 |
+
.testimonial-item {
|
678 |
+
margin-bottom: 25px;
|
679 |
+
}
|
680 |
+
|
681 |
+
.testimonial-item__user .avatar img {
|
682 |
+
max-width: 100%;
|
683 |
+
width: 100%;
|
684 |
+
margin: 0 auto;
|
685 |
+
padding: 0;
|
686 |
+
display: block;
|
687 |
+
}
|
688 |
+
|
689 |
+
.testimonial-item__comment {
|
690 |
+
position: relative;
|
691 |
+
display: block;
|
692 |
+
width: 70%;
|
693 |
+
margin: 0 auto 30px;
|
694 |
+
}
|
695 |
+
|
696 |
+
.testimonial-item__user h4.author-name {
|
697 |
+
font-size: 25px;
|
698 |
+
font-weight: 300;
|
699 |
+
margin: 10px auto;
|
700 |
+
}
|
701 |
+
|
702 |
+
.testimonial-item__user span.author-meta {
|
703 |
+
font-size: 16px;
|
704 |
+
font-weight: 300;
|
705 |
+
}
|
706 |
+
|
707 |
+
@media screen and (min-width: 1281px) {
|
708 |
+
.wapk-admin .wapk-banner,
|
709 |
+
.wapk-admin .feed-features {
|
710 |
+
padding-left: 20%;
|
711 |
+
padding-right: 20%;
|
712 |
+
}
|
713 |
+
|
714 |
+
.wapk-admin .wapk-payment {
|
715 |
+
padding-left: 15%;
|
716 |
+
padding-right: 15%;
|
717 |
+
}
|
718 |
+
|
719 |
+
.wapk-admin .feed-pro-comparison {
|
720 |
+
padding-left: 21.2%;
|
721 |
+
padding-right: 21.2%;
|
722 |
+
}
|
723 |
+
|
724 |
+
.wapk-admin .wapk-testimonial-wrapper {
|
725 |
+
width: 55%;
|
726 |
+
}
|
727 |
+
}
|
728 |
+
|
729 |
+
.wapk-feed-pro-upgrade .wapk-feed-cta,
|
730 |
+
.wapk-feed-docs .wapk-feed-cta,
|
731 |
+
.wapk-admin .feed-pro-comparison,
|
732 |
+
.wapk-admin .wapk-payment,
|
733 |
+
.wapk-admin .feed-features,
|
734 |
+
.wapk-admin .wapk-testimonial,
|
735 |
+
.wapk-admin .wapk-feed-banner {
|
736 |
+
margin: 0;
|
737 |
+
}
|
738 |
+
|
739 |
+
.wapk-feed-banner .wapk-banner {
|
740 |
+
margin: 0;
|
741 |
+
padding: 0;
|
742 |
+
}
|
admin/css/woo-feed-admin-pro.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
table.wf-info-table th a,table.wf-rate-table th strong{font-weight:700}table.wf-info-table th a,table.wf-rate-table a{color:#0073aa}table.wf-info-table th a.get-woo-feed-pro{display:inline-block;text-decoration:none;background:#f3f5f6;color:#f35;vertical-align:top;font-size:14px;line-height:3.14285714;box-sizing:border-box;margin:0;border-radius:35px;box-shadow:1px 2px 10px 1px rgba(255,51,85,0.5)}table.wf-info-table th a.get-woo-feed-pro img{display:block;position:relative;margin:-2px;width:180px;height:auto}table.wf-info-table th a.button{border-color:#0073aa;border-radius:35px}table.wf-info-table th a.documentation{color:#0073aa}table.wf-info-table th a.tutorial{color:#ee264a}table.wf-info-table th a.support{color:#0DD41E}.wp-submenu li span.woo-feed-premium{font-weight:700;color:#28e499}.wp-submenu li:hover span.woo-feed-premium,.wp-submenu li.current span.woo-feed-premium{color:#1dc381}.woo_feed_free_manage_attribute{margin:0 auto;width:100%}.woo_feed_screenshort{max-width:100%;width:1000px;border:3px solid #00b9eb;display:block;margin:0 auto}.woo-feed-screen-shot-title{font-size:36px;text-align:center;box-sizing:content-box;color:#00b9eb}.woo_feed_screen{background:#fff;padding:25px 20px;margin-bottom:20px}.woo_feed_screen_des{text-align:center;margin:20px 50px;font-size:16px;color:#666}.woo_feed_screen_des_2{text-align:center;margin:20px 50px 5px;font-size:14px;color:#32373c}.wapk-admin .wapk-feed-upgrade{font-family:'Open Sans',sans-serif;margin:-10px -20px 0 -22px}.wapk-admin .wapk-feed-upgrade a{transition:all .2s ease}.wapk-admin .section-title{text-align:center;font-size:30px;line-height:1.5em;font-weight:400;position:relative;margin:0 0 58px}.wapk-admin .section-title:after{content:'';position:absolute;bottom:-21px;left:50%;transform:translateX(-50%);width:38px;height:5px;border-radius:3px;background-color:#00D4D4}.wapk-admin .section-title .section-sub-title{font-size:22px;font-weight:300}.wapk-admin .wapk-banner{background-color:#f2f2f2;font-size:16px;display:flex;align-items:center;padding:50px 8%;border-bottom:1px solid #eee}.wapk-admin .wapk-banner .wapk-banner__graphics{width:100%}.wapk-admin .wapk-banner .wapk-banner__content h1{font-size:27px;line-height:1.5em}.wapk-admin .wapk-banner .wapk-banner__content p{font-size:16px;line-height:1.5em;font-weight:300;margin:0;letter-spacing:.5px}.wapk-admin .feed-features,.wapk-admin .wapk-testimonial,.wapk-admin .feed-pricing{text-align:center;padding:75px 30px 85px;background-color:#f7f8f9}.wapk-admin .feed-features .feed-feature__list{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center}.wapk-admin .feed-features .feed-features__more{margin-top:25px}.feed-feature__item{flex:0 0 28.9%;margin:0 2.2% 4.4%;text-align:center;border-radius:5px;background-color:#fff;transition:all 100ms linear;overflow:hidden}.feed-feature__item:hover{box-shadow:5px 4px 32px -16px rgba(0,0,0,0.63)}.feed-feature__thumb{overflow:hidden}.feed-feature__item .feed-feature__thumb img{border-radius:5px 5px 0 0;max-width:100%;width:100%;-webkit-transition:all 100ms linear;-moz-transition:all 100ms linear;-ms-transition:all 100ms linear;-o-transition:all 100ms linear;transition:all 100ms linear}.feed-feature__item:hover .feed-feature__thumb img{transform:scale(1.05)}.feed-feature__item .feed-feature__description{padding:20px 15px 25px}.feed-feature__item .feed-feature__description h3{font-size:15px;line-height:1.5em;font-weight:300;margin:0}.wapk-admin .feed-pro-comparison{background-color:#f1f1f1;padding:75px}.wapk-admin .feed-features .section-title h2,.wapk-admin .wapk-testimonial .section-title h2,.wapk-admin .feed-pro-comparison .section-title h2,.wapk-admin .feed-pricing .section-title h2{margin-top:0;margin-bottom:0}.wapk-admin .comparison-table{display:flex;justify-content:space-between}.wapk-admin .comparison-table .comparison{flex:0 0 48%;background-color:#fff;border:1px solid #e0e9ec;border-radius:5px;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);padding:50px;box-sizing:border-box}.wapk-admin .comparison .product-header{margin-bottom:58px;position:relative}.wapk-admin .comparison .product-header:after{content:"";position:absolute;bottom:-23px;left:0;width:38px;height:5px;border-radius:3px;background-color:#d7d7d7}.wapk-admin .comparison .product-header img{max-width:160px;width:100%}.wapk-admin .comparison .product-features{margin:0}.wapk-admin .comparison li{position:relative;display:flex;margin-bottom:15px;padding-left:30px;font-size:14px;line-height:1.3em;font-weight:300;align-items:center}.wapk-admin .comparison li.unavailable{color:#CED2D6}.wapk-admin .comparison li span.dashicons{position:absolute;top:1px;left:6px;width:18px;height:18px;border-radius:100%;background:#00D4D4;color:#FFF;line-height:22px;font-size:14px;text-align:center}.wapk-admin .comparison li.unavailable{color:#CED2D6}.wapk-admin .comparison li.unavailable span.dashicons{background:#CED2D6}.wapk-admin .comparison li span.dashicons-no{font-size:12px}.wapk-admin .comparison li span.dashicons-no:before{left:0}.wapk-admin .comparison li span.dashicons:before{position:relative;left:-.5px;top:-2px}.wapk-admin .comparison li img{width:18px;margin-right:12px}.wapk-pricing__table{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;justify-content:center}.wapk-pricing__table__item{position:relative;flex:0 0 23%}.wapk-price__table__wrapper{position:relative;padding:10px}.wapk-price__table{text-align:center;display:block;width:100%;padding:10px;background-color:#fff;border-radius:8px 8px 8px 8px;box-shadow:0 0 25px 0 rgba(0,0,0,.1);overflow:hidden;-webkit-transition:background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s;transition:background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s;-o-transition:background .3s,border .3s,border-radius .3s,box-shadow .3s;transition:background .3s,border .3s,border-radius .3s,box-shadow .3s;transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s}.wapk-price__table__header{background-color:#fff;padding:40px 0 0}.wapk-price__table__heading{color:#6d7882;font-size:17px;font-weight:500;text-transform:uppercase;letter-spacing:10px;font-family:sans-serif;margin:0;padding:0;line-height:1.2}.wapk-price__table__price{font-family:sans-serif;font-weight:600;padding:30px 0 10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;color:#434363;font-size:45px}.wapk-price__table__currency{align-self:flex-start;color:#434363;line-height:1;font-size:.3em;margin-right:3px}.wapk-price__table__amount .free,.wapk-price__table__amount .integer-part{color:#434363;line-height:.8}.wapk-price__table__amount .decimal-part{font-size:14px;font-weight:400}.wapk-price__table__amount .period{font-size:14px;font-weight:400}.wapk-price__table__amount___legend{width:100%;color:#FF4B4B;font-size:18px;font-weight:500;line-height:2.5em}.wapk-price__table__features{list-style-type:none;margin:0;padding:0;line-height:1;color:#697279;text-align:left}.wapk-price__table__features li.item{list-style-type:none;margin:0;padding:0;font-size:13px;line-height:1.5em}.wapk-price__table__features li:not(:first-child):before{content:"";display:block;margin:10px 12.5%}.wapk-price__table__feature{display:block;margin-left:calc(((100% - 80%) / 2) + 20px);margin-right:calc((100% - 80%) / 2)}span.wapk-price__table__feature span.dashicons{margin-left:-20px;top:2px;position:relative}.wapk-price__table__footer{padding:40px 0}.wapk-price__table__footer a{font-size:14px;text-transform:uppercase;letter-spacing:3px;border-radius:100px 100px 100px 100px;padding:16px 42px;transition:all 250ms}.wapk-price__table__footer a:hover,.wapk-price__table__footer a:focus,.wapk-price__table__footer a:active{transform:scale(1.02)!important}.wapk-price__table__ribbon{pointer-events:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;top:10px;left:auto;right:10px;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg);width:150px;overflow:hidden;height:150px}.wapk-price__table__ribbon__inner{background:#FF4B4B;font-family:sans-serif;font-weight:500;color:#fff;font-size:11px;letter-spacing:1.1px;box-shadow:0 0 30px 0 rgba(0,0,0,.21);text-align:center;left:0;width:200%;-webkit-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);-ms-transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);transform:translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);margin-top:35px;line-height:2;text-transform:uppercase}.wapk-admin .wapk-payment{display:flex;background:#fff;justify-content:space-between;padding:85px 65px;align-items:center}.wapk-payment .payment-guarantee{display:flex;flex:0 0 63%;align-content:center;align-items:center;position:relative}.wapk-payment .payment-guarantee:after{content:"";position:absolute;right:-18px;top:50%;transform:translateY(-50%);width:5px;height:38px;border-radius:3px;background:#00D4D4}.wapk-payment .payment-guarantee .guarantee-seal img{max-width:100%;width:280px}.wapk-payment .payment-guarantee .guarantee-detail{padding-left:25px}.wapk-payment .payment-guarantee .guarantee-detail h2{font-size:24px;line-height:1.5em;font-weight:400;margin:0}.wapk-payment .payment-guarantee .guarantee-detail p{font-size:15px;line-height:1.5em;font-weight:300;margin:5px 0 20px}.wapk-payment .payment-guarantee .guarantee-detail a{color:#00D4D4;font-size:15px;line-height:1.5em;text-decoration:none}.wapk-payment .payment-guarantee .guarantee-detail a span.dashicons,.wapk-payment .payment-guarantee .guarantee-detail a img{width:18px;margin-right:4px;margin-top:1px}.wapk-payment .payment-options{flex-grow:.5}.wapk-payment .payment-options h3{font-size:15px;font-weight:300;margin:0 0 17px}.wapk-payment .payment-options .options h4{color:#CED2D6}.wapk-payment .payment-options .options li{float:left;overflow:hidden}.wapk-payment .payment-options .options li img{height:20px;margin-right:5px}.wapk-admin .wapk-testimonial-wrapper:before{content:'';position:absolute;left:79px;top:-15px;width:80px;height:56px;border-radius:3px;background:transparent url(../images/block-quote.svg) no-repeat;background-size:cover}.wapk-admin .wapk-testimonial-wrapper{position:relative;display:block;width:80%;margin:0 auto;padding:0;text-align:center}.testimonial-item__user .avatar{width:100px;height:100px;margin:0 auto;border-radius:100%;border:3px solid #efefef;overflow:hidden}.testimonial-item{margin-bottom:25px}.testimonial-item__user .avatar img{max-width:100%;width:100%;margin:0 auto;padding:0;display:block}.testimonial-item__comment{position:relative;display:block;width:70%;margin:0 auto 30px}.testimonial-item__user h4.author-name{font-size:25px;font-weight:300;margin:10px auto}.testimonial-item__user span.author-meta{font-size:16px;font-weight:300}@media screen and (min-width: 1281px){.wapk-admin .wapk-banner,.wapk-admin .feed-features{padding-left:20%;padding-right:20%}.wapk-admin .wapk-payment{padding-left:15%;padding-right:15%}.wapk-admin .feed-pro-comparison{padding-left:21.2%;padding-right:21.2%}.wapk-admin .wapk-testimonial-wrapper{width:55%}}.wapk-feed-pro-upgrade .wapk-feed-cta,.wapk-feed-docs .wapk-feed-cta,.wapk-admin .feed-pro-comparison,.wapk-admin .wapk-payment,.wapk-admin .feed-features,.wapk-admin .wapk-testimonial,.wapk-admin .wapk-feed-banner{margin:0}.wapk-feed-banner .wapk-banner{margin:0;padding:0}
|
admin/css/woo-feed-admin.css
CHANGED
@@ -6,14 +6,17 @@
|
|
6 |
-webkit-animation: spin 1000ms infinite linear;
|
7 |
animation: spin 1000ms infinite linear;
|
8 |
}
|
|
|
9 |
.wpf_spin_reverse {
|
10 |
animation-direction: reverse;
|
11 |
}
|
|
|
12 |
.wpf_regenerate.disabled {
|
13 |
color: #737373;
|
14 |
box-shadow: none;
|
15 |
cursor: not-allowed;
|
16 |
}
|
|
|
17 |
@-webkit-keyframes spin {
|
18 |
0% {
|
19 |
-webkit-transform: rotate(0deg);
|
@@ -24,6 +27,7 @@
|
|
24 |
transform: rotate(359deg);
|
25 |
}
|
26 |
}
|
|
|
27 |
@keyframes spin {
|
28 |
0% {
|
29 |
-webkit-transform: rotate(0deg);
|
@@ -34,6 +38,7 @@
|
|
34 |
transform: rotate(359deg);
|
35 |
}
|
36 |
}
|
|
|
37 |
/*noinspection SpellCheckingInspection */
|
38 |
.wfbtn {
|
39 |
background: #3498db;
|
@@ -55,17 +60,19 @@
|
|
55 |
border: solid #2b698f 3px;
|
56 |
text-decoration: none;
|
57 |
}
|
|
|
58 |
/*noinspection SpellCheckingInspection */
|
59 |
.wftooltip {
|
60 |
-
display:none;
|
61 |
-
position:absolute;
|
62 |
-
border:1px solid #333;
|
63 |
-
background-color
|
64 |
-
border-radius:5px;
|
65 |
-
padding:10px;
|
66 |
-
color
|
67 |
-
font-size:12px;
|
68 |
}
|
|
|
69 |
/*noinspection SpellCheckingInspection */
|
70 |
.wfbtn:hover {
|
71 |
background: #3cb0fd;
|
@@ -77,7 +84,7 @@
|
|
77 |
text-decoration: none;
|
78 |
}
|
79 |
|
80 |
-
.makeFeedResponse{
|
81 |
width: 70%;
|
82 |
color: green;
|
83 |
}
|
@@ -94,6 +101,10 @@
|
|
94 |
width: 200px;
|
95 |
}
|
96 |
|
|
|
|
|
|
|
|
|
97 |
.error {
|
98 |
color: red;
|
99 |
}
|
@@ -106,6 +117,7 @@
|
|
106 |
#wf_newRow {
|
107 |
margin-left: 0;
|
108 |
}
|
|
|
109 |
/*noinspection SpellCheckingInspection */
|
110 |
.mtable tbody tr {
|
111 |
height: 25px;
|
@@ -114,42 +126,52 @@
|
|
114 |
align-items: baseline;
|
115 |
font-weight: bold;
|
116 |
}
|
|
|
117 |
/*noinspection SpellCheckingInspection */
|
118 |
.mtable th:nth-child(1) {
|
119 |
width: 17px;
|
120 |
}
|
|
|
121 |
/*noinspection SpellCheckingInspection */
|
122 |
.mtable th:nth-child(2) {
|
123 |
width: 160px;
|
124 |
}
|
|
|
125 |
/*noinspection SpellCheckingInspection */
|
126 |
.mtable th:nth-child(3) {
|
127 |
width: 100px;
|
128 |
}
|
|
|
129 |
/*noinspection SpellCheckingInspection */
|
130 |
.mtable th:nth-child(4) {
|
131 |
width: 100px;
|
132 |
}
|
|
|
133 |
/*noinspection SpellCheckingInspection */
|
134 |
.mtable th:nth-child(5) {
|
135 |
width: 150px;
|
136 |
}
|
|
|
137 |
/*noinspection SpellCheckingInspection */
|
138 |
.mtable th:nth-child(6) {
|
139 |
width: 100px;
|
140 |
}
|
|
|
141 |
/*noinspection SpellCheckingInspection */
|
142 |
.mtable th:nth-child(7) {
|
143 |
width: 150px;
|
144 |
}
|
|
|
145 |
/*noinspection SpellCheckingInspection */
|
146 |
.mtable th:nth-child(8) {
|
147 |
width: 90px;
|
148 |
}
|
|
|
149 |
/*noinspection SpellCheckingInspection */
|
150 |
.mtable th:nth-child(9) {
|
151 |
width: 29px;
|
152 |
}
|
|
|
153 |
/*noinspection SpellCheckingInspection */
|
154 |
.wp-admin select.wf_mattributes, .wf_mattributes {
|
155 |
width: 150px;
|
@@ -160,6 +182,7 @@
|
|
160 |
div#wf-tab-content1 select:not([name^="output_type"]), div#wf-tab-content1 input {
|
161 |
width: 100%;
|
162 |
}
|
|
|
163 |
div#wf-tab-content1 .dashicons {
|
164 |
vertical-align: middle;
|
165 |
}
|
@@ -168,6 +191,7 @@ div#wf-tab-content1 .dashicons {
|
|
168 |
width: 150px;
|
169 |
left: 0
|
170 |
}
|
|
|
171 |
.wf_compare {
|
172 |
max-width: 245px;
|
173 |
left: 0
|
@@ -177,23 +201,30 @@ div#wf-tab-content1 .dashicons {
|
|
177 |
width: 100px;
|
178 |
left: 0
|
179 |
}
|
|
|
180 |
/*noinspection SpellCheckingInspection */
|
181 |
.wf_sortedtable {
|
182 |
cursor: move;
|
183 |
}
|
184 |
|
|
|
|
|
|
|
|
|
185 |
.sorted_table .dragged {
|
186 |
position: absolute;
|
187 |
opacity: 0.8;
|
188 |
z-index: 9999;
|
189 |
background: #fff;
|
190 |
-
|
|
|
191 |
}
|
192 |
|
193 |
.sorted_table tbody tr.placeholder td {
|
194 |
border: 1px dashed #2cc185;
|
195 |
-
height:
|
196 |
}
|
|
|
197 |
/*noinspection SpellCheckingInspection */
|
198 |
.mtable2 tbody tr {
|
199 |
height: 25px;
|
@@ -202,37 +233,45 @@ div#wf-tab-content1 .dashicons {
|
|
202 |
align-items: baseline;
|
203 |
font-weight: bold;
|
204 |
}
|
|
|
205 |
/*noinspection SpellCheckingInspection */
|
206 |
.mtable2 th:nth-child(1) {
|
207 |
width: 30px;
|
208 |
}
|
|
|
209 |
/*noinspection SpellCheckingInspection */
|
210 |
.mtable2 th:nth-child(2) {
|
211 |
width: 150px;
|
212 |
}
|
|
|
213 |
/*noinspection SpellCheckingInspection */
|
214 |
.mtable2 th:nth-child(3) {
|
215 |
width: 230px;
|
216 |
}
|
|
|
217 |
/*noinspection SpellCheckingInspection */
|
218 |
.mtable2 th:nth-child(4) {
|
219 |
width: 220px;
|
220 |
}
|
|
|
221 |
/*noinspection SpellCheckingInspection */
|
222 |
.mtable2 th:nth-child(7) {
|
223 |
width: 50px;
|
224 |
}
|
|
|
225 |
/*noinspection SpellCheckingInspection */
|
226 |
.mtable2 th:nth-child(8) {
|
227 |
width: 50px;
|
228 |
}
|
|
|
229 |
/*noinspection SpellCheckingInspection */
|
230 |
.mtable2 th:nth-child(9) {
|
231 |
width: 29px;
|
232 |
}
|
|
|
233 |
/*noinspection SpellCheckingInspection */
|
234 |
-
.wfnoempty{
|
235 |
-
width:120px;
|
236 |
}
|
237 |
|
238 |
/*==================Tab Design=======================*/
|
@@ -263,11 +302,10 @@ p {
|
|
263 |
border: 2px solid #CCC;
|
264 |
}
|
265 |
|
266 |
-
.wf_tabs input[type="radio"] {
|
267 |
position: absolute;
|
268 |
-
top:auto;
|
269 |
left: -9999px;
|
270 |
-
/*overflow: hidden;*/
|
271 |
}
|
272 |
|
273 |
.wf-tab-name {
|
@@ -297,7 +335,6 @@ p {
|
|
297 |
.wf_tabs .wf-tab-content {
|
298 |
z-index: 2;
|
299 |
display: none;
|
300 |
-
overflow: hidden;
|
301 |
width: 100%;
|
302 |
font-size: 0.9rem;
|
303 |
position: absolute;
|
@@ -310,115 +347,145 @@ p {
|
|
310 |
display: block;
|
311 |
}
|
312 |
|
313 |
-
|
314 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
315 |
|
316 |
-
div#wf-tab-content2 table:first-child
|
317 |
-
|
318 |
-
|
319 |
|
320 |
table.feed-actions tr td:last-child {
|
321 |
text-align: right;
|
322 |
}
|
323 |
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
font-weight: bold !important;
|
328 |
-
border-color:#0073aa !important ;
|
329 |
}
|
330 |
-
|
331 |
-
.
|
332 |
-
|
333 |
-
.selectize-dropdown [data-selectable].option { cursor: default; }
|
334 |
-
/*noinspection SpellCheckingInspection */
|
335 |
-
.selectize-control.plugin-remove_button [data-value] .remove{
|
336 |
-
border-left: 1px solid #0073aa !important;
|
337 |
}
|
338 |
|
|
|
|
|
|
|
|
|
339 |
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
.column-url { color: #008779; font-weight: bold; }
|
344 |
|
345 |
-
/* Selectize */
|
346 |
-
select.selectize { display: none; }
|
347 |
-
body.no-js select.selectize { display: block !important; } /* fallback combat */
|
348 |
-
.selectize-dropdown .active { background-color: #edf9ff; }
|
349 |
.wapk-selectize-item {
|
350 |
background: #0073aa !important;
|
351 |
color: #f1f1f1 !important;
|
352 |
font-weight: bold !important;
|
353 |
-
border-color
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
}
|
355 |
-
|
356 |
-
.selectize-
|
357 |
-
.selectize-control.plugin-remove_button [data-value] .remove{
|
358 |
border-left: 1px solid #f1f1f1 !important;
|
359 |
}
|
360 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
/* Feed active and inactive button CSS */
|
362 |
-
.wf_status_wrap label{
|
363 |
-
width:50px;
|
364 |
-
height:25px;
|
365 |
-
box-sizing:border-box;
|
366 |
-
border
|
367 |
-
float:left;
|
368 |
-
border-radius:100px;
|
369 |
-
position:relative;
|
370 |
-
cursor:pointer;
|
371 |
-
transition
|
372 |
-
}
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
border-
|
|
|
|
|
|
|
392 |
}
|
|
|
393 |
/* list table style */
|
394 |
/*noinspection SpellCheckingInspection */
|
395 |
.widefat td.column-url, .widefat th.column-url,
|
396 |
-
.column-url {
|
|
|
|
|
|
|
397 |
|
398 |
/** Feed Progress **/
|
399 |
.feed-progress-container {
|
400 |
-
width:100%;
|
401 |
color: white;
|
402 |
text-align: center;
|
403 |
font-weight: 300;
|
404 |
}
|
405 |
|
406 |
.feed-progress-bar {
|
407 |
-
width:100%;
|
408 |
-
background
|
409 |
-
padding:3px;
|
410 |
-
border-radius:3px;
|
411 |
-
box-shadow:inset 0 1px 3px rgba(0,0,0
|
412 |
}
|
413 |
|
414 |
.feed-progress-bar-fill {
|
415 |
-
height:20px;
|
416 |
-
display:block;
|
417 |
-
background
|
418 |
-
width:0;
|
419 |
-
border-radius:3px;
|
420 |
-
-webkit-transition:width 0.8s ease;
|
421 |
-
transition:width 0.8s ease;
|
422 |
}
|
423 |
|
424 |
.feed-progress-status {
|
@@ -428,7 +495,7 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
428 |
}
|
429 |
|
430 |
.feed-progress-percentage {
|
431 |
-
text-align:right;
|
432 |
font-weight: bolder;
|
433 |
color: #41f49d;
|
434 |
font-family: 'Arial Black', sans-serif;
|
@@ -436,9 +503,10 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
436 |
}
|
437 |
|
438 |
/*noinspection SpellCheckingInspection */
|
439 |
-
#wpbody-content.woofeed-body-content{
|
440 |
-
overflow:visible!important;
|
441 |
}
|
|
|
442 |
/*noinspection SpellCheckingInspection */
|
443 |
.clippy {
|
444 |
position: relative;
|
@@ -447,10 +515,17 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
447 |
margin-left: 3px;
|
448 |
top: 3px;
|
449 |
}
|
|
|
450 |
/*noinspection SpellCheckingInspection */
|
451 |
-
.column-url .clippy {
|
|
|
|
|
|
|
452 |
/*noinspection SpellCheckingInspection */
|
453 |
-
.column-url:hover .clippy {
|
|
|
|
|
|
|
454 |
/**
|
455 |
* Primer Tooltip
|
456 |
* @TODO use node module
|
@@ -460,13 +535,14 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
460 |
.tooltipped {
|
461 |
position: relative
|
462 |
}
|
|
|
463 |
/*noinspection SpellCheckingInspection */
|
464 |
.tooltipped:after {
|
465 |
position: absolute;
|
466 |
z-index: 1000000;
|
467 |
display: none;
|
468 |
padding: 5px 8px;
|
469 |
-
font: normal normal 11px/1.5 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";
|
470 |
color: #fff;
|
471 |
text-align: center;
|
472 |
text-decoration: none;
|
@@ -477,10 +553,11 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
477 |
white-space: pre;
|
478 |
pointer-events: none;
|
479 |
content: attr(aria-label);
|
480 |
-
background: rgba(0,0,0
|
481 |
border-radius: 3px;
|
482 |
-webkit-font-smoothing: subpixel-antialiased
|
483 |
}
|
|
|
484 |
/*noinspection SpellCheckingInspection */
|
485 |
.tooltipped:before {
|
486 |
position: absolute;
|
@@ -488,74 +565,86 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
488 |
display: none;
|
489 |
width: 0;
|
490 |
height: 0;
|
491 |
-
color: rgba(0,0,0
|
492 |
pointer-events: none;
|
493 |
content: "";
|
494 |
border: 5px solid transparent
|
495 |
}
|
|
|
496 |
/*noinspection SpellCheckingInspection */
|
497 |
-
.tooltipped:hover:before
|
498 |
display: inline-block;
|
499 |
text-decoration: none
|
500 |
}
|
|
|
501 |
/*noinspection SpellCheckingInspection */
|
502 |
-
.tooltipped-multiline:hover:after
|
503 |
display: table-cell
|
504 |
}
|
|
|
505 |
/*noinspection SpellCheckingInspection */
|
506 |
-
.tooltipped-s:after
|
507 |
top: 100%;
|
508 |
right: 50%;
|
509 |
margin-top: 5px
|
510 |
}
|
|
|
511 |
/*noinspection SpellCheckingInspection */
|
512 |
-
.tooltipped-s:before
|
513 |
top: auto;
|
514 |
right: 50%;
|
515 |
bottom: -5px;
|
516 |
margin-right: -5px;
|
517 |
-
border-bottom-color: rgba(0,0,0
|
518 |
}
|
|
|
519 |
/*noinspection SpellCheckingInspection */
|
520 |
.tooltipped-se:after {
|
521 |
right: auto;
|
522 |
left: 50%;
|
523 |
margin-left: -15px
|
524 |
}
|
|
|
525 |
/*noinspection SpellCheckingInspection */
|
526 |
.tooltipped-sw:after {
|
527 |
margin-right: -15px
|
528 |
}
|
|
|
529 |
/*noinspection SpellCheckingInspection */
|
530 |
-
.tooltipped-n:after
|
531 |
right: 50%;
|
532 |
bottom: 100%;
|
533 |
margin-bottom: 5px
|
534 |
}
|
|
|
535 |
/*noinspection SpellCheckingInspection */
|
536 |
-
.tooltipped-n:before
|
537 |
top: -5px;
|
538 |
right: 50%;
|
539 |
bottom: auto;
|
540 |
margin-right: -5px;
|
541 |
-
border-top-color: rgba(0,0,0
|
542 |
}
|
|
|
543 |
/*noinspection SpellCheckingInspection */
|
544 |
.tooltipped-ne:after {
|
545 |
right: auto;
|
546 |
left: 50%;
|
547 |
margin-left: -15px
|
548 |
}
|
|
|
549 |
/*noinspection SpellCheckingInspection */
|
550 |
.tooltipped-nw:after {
|
551 |
margin-right: -15px
|
552 |
}
|
|
|
553 |
/*noinspection SpellCheckingInspection */
|
554 |
-
.tooltipped-s:after
|
555 |
-webkit-transform: translateX(50%);
|
556 |
-ms-transform: translateX(50%);
|
557 |
transform: translateX(50%)
|
558 |
}
|
|
|
559 |
/*noinspection SpellCheckingInspection */
|
560 |
.tooltipped-w:after {
|
561 |
right: 100%;
|
@@ -565,14 +654,16 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
565 |
-ms-transform: translateY(50%);
|
566 |
transform: translateY(50%)
|
567 |
}
|
|
|
568 |
/*noinspection SpellCheckingInspection */
|
569 |
.tooltipped-w:before {
|
570 |
top: 50%;
|
571 |
bottom: 50%;
|
572 |
left: -5px;
|
573 |
margin-top: -5px;
|
574 |
-
border-left-color: rgba(0,0,0
|
575 |
}
|
|
|
576 |
/*noinspection SpellCheckingInspection */
|
577 |
.tooltipped-e:after {
|
578 |
bottom: 50%;
|
@@ -582,13 +673,14 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
582 |
-ms-transform: translateY(50%);
|
583 |
transform: translateY(50%)
|
584 |
}
|
|
|
585 |
/*noinspection SpellCheckingInspection */
|
586 |
.tooltipped-e:before {
|
587 |
top: 50%;
|
588 |
right: -5px;
|
589 |
bottom: 50%;
|
590 |
margin-top: -5px;
|
591 |
-
border-right-color: rgba(0,0,0
|
592 |
}
|
593 |
|
594 |
/*noinspection SpellCheckingInspection,CssInvalidPropertyValue*/
|
@@ -602,74 +694,102 @@ input[class=woo_feed_status_input]:checked + label:before{
|
|
602 |
white-space: pre-line;
|
603 |
border-collapse: separate
|
604 |
}
|
|
|
605 |
/*noinspection SpellCheckingInspection */
|
606 |
-
.tooltipped-multiline.tooltipped-s:after
|
607 |
right: auto;
|
608 |
left: 50%;
|
609 |
-webkit-transform: translateX(-50%);
|
610 |
-ms-transform: translateX(-50%);
|
611 |
transform: translateX(-50%)
|
612 |
}
|
|
|
613 |
/*noinspection SpellCheckingInspection */
|
614 |
-
.tooltipped-multiline.tooltipped-w:after
|
615 |
right: 100%
|
616 |
}
|
617 |
-
|
|
|
|
|
618 |
/*noinspection SpellCheckingInspection */
|
619 |
.tooltipped-multiline:after {
|
620 |
width: 250px
|
621 |
}
|
622 |
}
|
|
|
623 |
/*noinspection SpellCheckingInspection */
|
624 |
-
.tooltipped-sticky:before
|
625 |
display: inline-block
|
626 |
}
|
|
|
627 |
/*noinspection SpellCheckingInspection */
|
628 |
.tooltipped-sticky.tooltipped-multiline:after {
|
629 |
display: table-cell
|
630 |
}
|
|
|
631 |
/*noinspection SpellCheckingInspection */
|
632 |
.fullscreen-overlay-enabled.dark-theme .tooltipped:after {
|
633 |
color: #000;
|
634 |
-
background: rgba(255,255,255
|
635 |
}
|
|
|
636 |
/*noinspection SpellCheckingInspection */
|
637 |
-
.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-s:before
|
638 |
-
border-bottom-color: rgba(255,255,255
|
639 |
}
|
|
|
640 |
/*noinspection SpellCheckingInspection */
|
641 |
-
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-n:before
|
642 |
-
border-top-color: rgba(255,255,255
|
643 |
}
|
|
|
644 |
/*noinspection SpellCheckingInspection */
|
645 |
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-e:before {
|
646 |
-
border-right-color: rgba(255,255,255
|
647 |
}
|
|
|
648 |
/*noinspection SpellCheckingInspection */
|
649 |
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-w:before {
|
650 |
-
border-left-color: rgba(255,255,255
|
651 |
}
|
652 |
|
653 |
-
ul.tracker_collection_list {
|
654 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
|
656 |
/** Info Message Table **/
|
657 |
table.wf-info-table th,
|
658 |
-
table.wf-rate-table th {
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
table.wf-info-table th
|
666 |
-
table.wf-
|
667 |
-
|
668 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
669 |
table.wf-rate-table a.review-star:after {
|
|
|
670 |
/*noinspection CssNoGenericFontName*/
|
671 |
font-family: dashicons;
|
672 |
-
content: "\f155\f155\f155\f155\f155" !important;
|
673 |
font-size: 10px;
|
674 |
font-weight: 100;
|
675 |
text-rendering: auto;
|
@@ -677,24 +797,8 @@ table.wf-rate-table a.review-star:after {
|
|
677 |
-moz-osx-font-smoothing: grayscale;
|
678 |
/*content: '★★★★★'; /*★★★★★*/
|
679 |
/*content: '\2605\2605\2605\2605\2605';*/
|
680 |
-
color
|
681 |
-
|
682 |
-
|
683 |
-
/** Admin Notices **/
|
684 |
-
|
685 |
-
.woo-feed-notice[data-which="rating"] [data-response] {
|
686 |
-
border-width: 2px;
|
687 |
-
font-weight: 600;
|
688 |
-
text-transform: capitalize;
|
689 |
-
}
|
690 |
-
.woo-feed-notice[data-which="rating"] [data-response="given"] {
|
691 |
-
background: #FFEB3B;
|
692 |
-
border-color: #464646;
|
693 |
-
color: #000000;
|
694 |
-
}
|
695 |
-
.woo-feed-notice[data-which="rating"] [data-response="given"]:hover {
|
696 |
-
background: #f6de09;
|
697 |
-
border-color: #2e2e2e;
|
698 |
}
|
699 |
|
700 |
/** Admin Menu Icon **/
|
@@ -705,6 +809,7 @@ table.wf-rate-table a.review-star:after {
|
|
705 |
opacity: 0.6;
|
706 |
filter: alpha(opacity=60);
|
707 |
}
|
|
|
708 |
#adminmenu #toplevel_page_webappick-manage-feeds:hover div.wp-menu-image::before,
|
709 |
#adminmenu #toplevel_page_webappick-manage-feeds.wp-has-current-submenu div.wp-menu-image::before {
|
710 |
opacity: 1;
|
@@ -717,6 +822,7 @@ table.wf-rate-table a.review-star:after {
|
|
717 |
-moz-box-sizing: border-box;
|
718 |
box-sizing: border-box;
|
719 |
}
|
|
|
720 |
.wapk-admin {
|
721 |
position: relative;
|
722 |
display: block;
|
@@ -727,60 +833,71 @@ table.wf-rate-table a.review-star:after {
|
|
727 |
/* reset .warp margin to use full width except menu area */
|
728 |
margin: 0 0 0 -10px;
|
729 |
}
|
|
|
730 |
@media screen and (min-width: 783px) {
|
731 |
.wapk-admin {
|
732 |
margin: 0 0 0 -20px;
|
733 |
}
|
734 |
}
|
735 |
-
|
736 |
-
.wapk-admin h2,
|
737 |
-
.wapk-admin h3,
|
738 |
-
.wapk-admin
|
739 |
-
.wapk-admin h5,
|
740 |
-
.wapk-admin h6,
|
741 |
.wapk-admin p {
|
742 |
color: #1B2730;
|
743 |
}
|
|
|
|
|
|
|
|
|
|
|
744 |
.wapk-admin sup {
|
745 |
vertical-align: baseline;
|
746 |
position: relative;
|
747 |
top: -6px;
|
748 |
}
|
|
|
749 |
.wapk-admin sub {
|
750 |
vertical-align: baseline;
|
751 |
position: relative;
|
752 |
top: 4px;
|
753 |
}
|
|
|
754 |
/* WP.Core.UI Compat */
|
755 |
-
.wapk-admin .wapk-section [class$=icon32]+h2,
|
756 |
.wapk-admin .wapk-section h1,
|
757 |
-
.wapk-admin .wapk-section>h2:first-child {
|
758 |
font-size: 23px;
|
759 |
font-weight: 400;
|
760 |
margin: 0;
|
761 |
padding: 9px 0 4px 0;
|
762 |
line-height: 1.3;
|
763 |
}
|
|
|
764 |
.wapk-admin .wapk-section,
|
765 |
-
.wapk-admin
|
766 |
/* Restore .warp margin */
|
767 |
-
margin:
|
768 |
position: relative;
|
769 |
display: block;
|
770 |
}
|
|
|
771 |
.clear:after {
|
772 |
content: "";
|
773 |
display: table;
|
774 |
clear: both;
|
775 |
}
|
|
|
776 |
.wapk-admin span.help {
|
777 |
-
|
778 |
-
|
|
|
779 |
font-size: 0.9em;
|
780 |
color: #636363;
|
781 |
-
|
782 |
-
|
783 |
}
|
|
|
784 |
.wapk-admin span.help .dashicons {
|
785 |
width: 11px;
|
786 |
height: 12px;
|
@@ -790,100 +907,232 @@ table.wf-rate-table a.review-star:after {
|
|
790 |
|
791 |
/*.wapk-admin .help a { color: inherit; text-decoration: underline; }*/
|
792 |
/** Extend WP Core UI PostBox For Docs **/
|
793 |
-
.wapk-feed-docs .postbox {
|
|
|
|
|
|
|
|
|
|
|
|
|
794 |
@media only screen and (max-width: 850px) {
|
795 |
-
.wapk-feed-docs .postbox {
|
|
|
|
|
|
|
|
|
|
|
796 |
}
|
797 |
-
.wapk-feed-docs .postbox .hndle { font-size: 14px; padding: 8px 12px; margin: 0; line-height: 1.4; }
|
798 |
-
.wapk-feed-docs .postbox .dashicons { color: #ccc }
|
799 |
-
.wapk-feed-docs .postbox a { text-decoration: none; }
|
800 |
-
.wapk-feed-docs .postbox .inside,
|
801 |
-
.wapk-feed-docs .postbox ul { margin-bottom: 0; }
|
802 |
-
.wapk-feed-docs .postbox .toggle-indicator:before { content: "\F142"; display: inline-block; font: 400 20px/1 dashicons; speak: none; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-decoration: none!important; }
|
803 |
-
.wapk-feed-docs .postbox.closed .toggle-indicator:before { content: "\F140"; }
|
804 |
|
805 |
-
.wapk-
|
806 |
-
|
|
|
|
|
|
|
|
|
807 |
}
|
808 |
-
#poststuff #feed_merchant_info .inside { margin: 0; padding: 0; }
|
809 |
-
#feed_merchant_info ul.data { margin-left: 24px; margin-top: 5px; }
|
810 |
-
#feed_merchant_info ul.data li { margin-bottom: 5px; }
|
811 |
-
.merchant-info-section { padding: 6px 10px 8px; }
|
812 |
-
.generateFeed table th { font-weight: bold; }
|
813 |
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
.wp-submenu li.current span.woo-feed-docs { color: #ce7304; }
|
818 |
-
.wapk-admin .wapk-feed-docs .postbox .hndle { cursor: default; }
|
819 |
|
|
|
|
|
|
|
820 |
|
821 |
-
|
822 |
-
.wapk-
|
823 |
-
|
824 |
-
.wapk-cta-content {width: 50%;}
|
825 |
-
.wapk-cta-content h2 { font-size: 2em; margin: 0.5em 0; }
|
826 |
-
.wapk-cta-action {}
|
827 |
-
.wapk-cta-action a.wapk-button { font-size: 24px; height: auto !important; padding: 10px 20px; }
|
828 |
-
@media (max-width: 600px) {
|
829 |
-
.wapk-cta { display: block; text-align: center; padding: 4em 0; }
|
830 |
-
.wapk-cta-content { width: 100%; margin: 2em 0; }
|
831 |
}
|
832 |
|
833 |
-
|
834 |
-
|
835 |
-
/* Button Skin */
|
836 |
-
.wapk-button,
|
837 |
-
.wapk-button-primary,
|
838 |
-
.wapk-button-secondary {
|
839 |
display: inline-block;
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
padding: 0 10px;
|
846 |
-
cursor: pointer;
|
847 |
-
border-width: 1px;
|
848 |
-
border-style: solid;
|
849 |
-
-webkit-appearance: none;
|
850 |
-
border-radius: 3px;
|
851 |
-
white-space: nowrap;
|
852 |
-
box-sizing: border-box;
|
853 |
}
|
854 |
-
|
855 |
-
.wapk-
|
856 |
-
|
857 |
-
border-color: #00D4D4;
|
858 |
-
text-decoration: none;
|
859 |
}
|
860 |
-
|
861 |
-
.wapk-
|
862 |
-
width:
|
863 |
-
|
864 |
-
|
865 |
}
|
866 |
-
|
867 |
-
.wapk-
|
868 |
-
|
|
|
869 |
}
|
870 |
-
|
871 |
-
.wapk-
|
872 |
-
|
873 |
-
.wapk-button.focus,
|
874 |
-
.wapk-button:focus,
|
875 |
-
.wapk-button-secondary:focus {
|
876 |
-
border-color: #00bbbb;
|
877 |
-
color: #00bbbb;
|
878 |
}
|
879 |
-
|
880 |
-
.wapk-
|
881 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
882 |
.wapk-button.focus > svg,
|
883 |
.wapk-button:focus > svg,
|
884 |
.wapk-button-secondary:focus > svg {
|
885 |
fill: #00bbbb;
|
886 |
}
|
|
|
887 |
.wapk-button.hover > .dashicons,
|
888 |
.wapk-button:hover > .dashicons,
|
889 |
.wapk-button-secondary:hover > .dashicons,
|
@@ -892,6 +1141,7 @@ table.wf-rate-table a.review-star:after {
|
|
892 |
.wapk-button-secondary:focus > .dashicons {
|
893 |
color: #00bbbb;
|
894 |
}
|
|
|
895 |
.wapk-button.focus,
|
896 |
.wapk-button:focus,
|
897 |
.wapk-button-secondary:focus {
|
@@ -899,20 +1149,24 @@ table.wf-rate-table a.review-star:after {
|
|
899 |
color: #00bbbb;
|
900 |
box-shadow: 0 0 0 1px #00D4D4;
|
901 |
}
|
|
|
902 |
.wapk-button.focus > svg,
|
903 |
.wapk-button:focus > svg,
|
904 |
.wapk-button-secondary:focus > svg {
|
905 |
fill: #00bbbb;
|
906 |
}
|
|
|
907 |
.wapk-button.focus > .dashicons,
|
908 |
.wapk-button:focus > .dashicons,
|
909 |
.wapk-button-secondary:focus > .dashicons {
|
910 |
color: #00bbbb;
|
911 |
}
|
|
|
912 |
.wapk-button:active {
|
913 |
background: #00bbbb;
|
914 |
border-color: #00bbbb;
|
915 |
}
|
|
|
916 |
.wapk-button.active,
|
917 |
.wapk-button.active:focus,
|
918 |
.wapk-button.active:hover {
|
@@ -920,88 +1174,89 @@ table.wf-rate-table a.review-star:after {
|
|
920 |
color: #00bbbb;
|
921 |
box-shadow: inset 0 2px 5px -3px #00bbbb;
|
922 |
}
|
|
|
923 |
.wapk-button.active > svg,
|
924 |
.wapk-button.active:focus > svg,
|
925 |
.wapk-button.active:hover > svg {
|
926 |
fill: #00bbbb;
|
927 |
}
|
|
|
928 |
.wapk-button.active > .dashicons,
|
929 |
.wapk-button.active:focus > .dashicons,
|
930 |
.wapk-button.active:hover > .dashicons {
|
931 |
color: #00bbbb;
|
932 |
}
|
|
|
933 |
.wapk-button-primary {
|
934 |
background: #00D4D4;
|
935 |
border-color: #00D4D4;
|
936 |
color: #fff;
|
937 |
-
text-decoration: none;
|
938 |
box-shadow: 0 1px 0 #00bbbb;
|
939 |
text-shadow: 0 -1px 1px #00bbbb, 1px 0 1px #00bbbb, 0 1px 1px #00bbbb, -1px 0 1px #00bbbb;
|
940 |
}
|
|
|
941 |
.wapk-button-primary > svg {
|
942 |
fill: #fff;
|
943 |
}
|
944 |
-
|
945 |
-
.wapk-button-primary:focus {
|
946 |
background: #00e3e3;
|
947 |
border-color: #00c5c5;
|
948 |
color: #fff;
|
949 |
}
|
950 |
-
|
951 |
-
.wapk-button-primary:focus > svg {
|
952 |
fill: #fff;
|
953 |
}
|
|
|
954 |
.wapk-button-primary:focus {
|
955 |
box-shadow: 0 0 0 1px #fff, 0 0 0 3px #00D4D4;
|
956 |
}
|
|
|
957 |
.wapk-button-primary:active {
|
958 |
background: #00bbbb;
|
959 |
border-color: #00bbbb;
|
960 |
color: #fff;
|
961 |
}
|
|
|
962 |
.wapk-button-primary:active > svg {
|
963 |
fill: #fff;
|
964 |
}
|
965 |
-
|
966 |
-
.wapk-button-primary.active:focus,
|
967 |
-
.wapk-button-primary.active:hover {
|
968 |
background: #00D4D4;
|
969 |
color: #fff;
|
970 |
border-color: #008888;
|
971 |
box-shadow: inset 0 2px 5px -3px black;
|
972 |
}
|
973 |
-
|
974 |
-
.wapk-button-primary.active:focus > svg,
|
975 |
-
.wapk-button-primary.active:hover > svg {
|
976 |
fill: #fff;
|
977 |
}
|
978 |
-
|
979 |
-
.wapk-button-primary:disabled,
|
980 |
-
.wapk-button-primary.wapk-button-primary-disabled,
|
981 |
-
.wapk-button-primary.disabled {
|
982 |
color: #c7d1d1 !important;
|
983 |
background: #22ffff !important;
|
984 |
border-color: #22ffff !important;
|
985 |
text-shadow: none !important;
|
986 |
}
|
987 |
-
|
988 |
-
.wapk-button-primary:disabled > svg,
|
989 |
-
.wapk-button-primary.wapk-button-primary-disabled > svg,
|
990 |
-
.wapk-button-primary.disabled > svg {
|
991 |
fill: #c7d1d1 !important;
|
992 |
}
|
|
|
993 |
.wapk-button.wapk-button-primary.wapk-button-hero {
|
994 |
box-shadow: 0 2px 0 #00bbbb;
|
995 |
}
|
|
|
996 |
.wapk-button.wapk-button-primary.wapk-button-hero:focus {
|
997 |
box-shadow: 0 2px 0 #00bbbb, 0 1px 0 #00c5c5, 0 0 2px 1px #00eeee;
|
998 |
}
|
999 |
-
|
1000 |
-
.wapk-button.wapk-button-primary.wapk-button-hero.active:hover,
|
1001 |
-
.wapk-button.wapk-button-primary.wapk-button-hero.active:focus,
|
1002 |
-
.wapk-button.wapk-button-primary.wapk-button-hero:active {
|
1003 |
box-shadow: inset 0 3px 0 #00a1a1;
|
1004 |
}
|
|
|
1005 |
.wapk-button-group > .wapk-button.active {
|
1006 |
border-color: #00D4D4;
|
1007 |
}
|
@@ -1013,6 +1268,7 @@ table.wf-rate-table a.review-star:after {
|
|
1013 |
line-height: 28px;
|
1014 |
padding: 0 12px 2px;
|
1015 |
}
|
|
|
1016 |
.wapk-button.wapk-button-hero,
|
1017 |
.wapk-button-group.wapk-button-hero .wapk-button {
|
1018 |
font-size: 18px;
|
@@ -1023,641 +1279,133 @@ table.wf-rate-table a.review-star:after {
|
|
1023 |
}
|
1024 |
|
1025 |
@media screen and (min-width: 782px) {
|
1026 |
-
th#status {
|
1027 |
-
|
1028 |
-
th#type { width: 50px; }
|
1029 |
-
th#option_name { width: 100px; }
|
1030 |
-
td.option_name.column-option_name >span:first-child { display: none; }
|
1031 |
-
th#last_updated { width: 90px; }
|
1032 |
-
th#view { width: 90px; }
|
1033 |
-
}
|
1034 |
-
@media screen and (min-width: 960px) {
|
1035 |
-
th#status, th#provider, th#view { width: 100px; }
|
1036 |
-
th#type { width: 80px; }
|
1037 |
-
th#option_name { width: 150px; }
|
1038 |
-
th#last_updated { width: 140px; }
|
1039 |
-
}
|
1040 |
-
@media screen and (max-width: 782px) {
|
1041 |
-
table.wf-info-table { margin-top: 10px; }
|
1042 |
-
table.wf-info-table th:first-child img { margin: 0 auto; display: block; }
|
1043 |
-
|
1044 |
-
.wapk-button.wapk-button-xl {
|
1045 |
-
padding: 6px 14px;
|
1046 |
-
line-height: normal;
|
1047 |
-
font-size: 14px;
|
1048 |
-
vertical-align: middle;
|
1049 |
-
height: auto;
|
1050 |
-
margin-bottom: 4px;
|
1051 |
}
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
|
1055 |
|
|
|
|
|
|
|
1056 |
|
|
|
|
|
|
|
1057 |
|
|
|
|
|
|
|
1058 |
|
|
|
|
|
|
|
1059 |
|
|
|
|
|
|
|
1060 |
|
|
|
|
|
|
|
|
|
1061 |
|
|
|
|
|
|
|
|
|
1062 |
|
|
|
|
|
|
|
1063 |
|
|
|
|
|
|
|
1064 |
|
1065 |
-
|
1066 |
-
|
1067 |
-
|
1068 |
-
.wp-submenu li span.woo-feed-premium { font-weight: bold; color: #28e499; }
|
1069 |
-
.wp-submenu li:hover span.woo-feed-premium,
|
1070 |
-
.wp-submenu li.current span.woo-feed-premium { color: #1dc381; }
|
1071 |
-
.woo_feed_free_manage_attribute {
|
1072 |
-
margin: 0 auto;
|
1073 |
-
width: 100%;
|
1074 |
-
}
|
1075 |
-
.woo_feed_screenshort{
|
1076 |
-
max-width: 100%;
|
1077 |
-
width: 1000px;
|
1078 |
-
border: 3px solid #00b9eb;
|
1079 |
-
display: block;
|
1080 |
-
margin: 0 auto;
|
1081 |
-
}
|
1082 |
-
.woo-feed-screen-shot-title{
|
1083 |
-
font-size: 36px;
|
1084 |
-
text-align: center;
|
1085 |
-
box-sizing: content-box;
|
1086 |
-
color: #00b9eb;
|
1087 |
-
}
|
1088 |
-
.woo_feed_screen {
|
1089 |
-
background: #fff;
|
1090 |
-
padding: 25px 20px;
|
1091 |
-
margin-bottom: 20px;
|
1092 |
-
}
|
1093 |
-
.woo_feed_screen_des{
|
1094 |
-
text-align: center;
|
1095 |
-
margin: 20px 50px 20px 50px;
|
1096 |
-
font-size: 16px;
|
1097 |
-
color: #666;
|
1098 |
-
}
|
1099 |
-
.woo_feed_screen_des_2{
|
1100 |
-
text-align: center;
|
1101 |
-
margin: 20px 50px 5px 50px;
|
1102 |
-
font-size: 14px;
|
1103 |
-
color: #32373c;
|
1104 |
}
|
1105 |
|
|
|
|
|
|
|
|
|
1106 |
|
1107 |
-
.
|
1108 |
-
|
1109 |
-
|
1110 |
-
}
|
1111 |
-
.wapk-admin .wapk-feed-upgrade a {
|
1112 |
-
transition: all 0.2s ease;
|
1113 |
-
}
|
1114 |
-
.wapk-admin .section-title {
|
1115 |
-
text-align: center;
|
1116 |
-
font-size: 30px;
|
1117 |
-
line-height: 1.5em;
|
1118 |
-
font-weight: 400;
|
1119 |
-
position: relative;
|
1120 |
-
margin: 0 0 58px;
|
1121 |
-
}
|
1122 |
-
.wapk-admin .section-title:after {
|
1123 |
-
content: '';
|
1124 |
-
position: absolute;
|
1125 |
-
bottom: -21px;
|
1126 |
-
left: 50%;
|
1127 |
-
transform: translateX(-50%);
|
1128 |
-
width: 38px;
|
1129 |
-
height: 5px;
|
1130 |
-
border-radius: 3px;
|
1131 |
-
background-color: #00D4D4;
|
1132 |
-
}
|
1133 |
-
.wapk-admin .section-title .section-sub-title {
|
1134 |
-
font-size: 22px;
|
1135 |
-
font-weight: 300;
|
1136 |
-
}
|
1137 |
|
1138 |
-
.wapk-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
}
|
1146 |
-
.wapk-admin .wapk-banner .wapk-banner__graphics {
|
1147 |
-
width: 100%;
|
1148 |
-
}
|
1149 |
-
.wapk-admin .wapk-banner .wapk-banner__content h1 {
|
1150 |
-
font-size: 27px;
|
1151 |
-
line-height: 1.5em;
|
1152 |
-
}
|
1153 |
-
.wapk-admin .wapk-banner .wapk-banner__content p {
|
1154 |
-
font-size: 16px;
|
1155 |
-
line-height: 1.5em;
|
1156 |
-
font-weight: 300;
|
1157 |
-
margin: 0;
|
1158 |
-
/*noinspection CssFloatPxLength*/
|
1159 |
-
letter-spacing: 0.5px;
|
1160 |
}
|
1161 |
|
1162 |
-
.wapk-
|
1163 |
-
.wapk-admin .wapk-testimonial,
|
1164 |
-
.wapk-admin .feed-pricing {
|
1165 |
-
text-align: center;
|
1166 |
-
padding: 75px 30px 85px;
|
1167 |
-
background-color: #f7f8f9;
|
1168 |
-
}
|
1169 |
-
.wapk-admin .feed-features .feed-feature__list {
|
1170 |
-
display: flex;
|
1171 |
-
flex-wrap: wrap;
|
1172 |
-
align-items: flex-start;
|
1173 |
-
justify-content: center;
|
1174 |
-
}
|
1175 |
-
.wapk-admin .feed-features .feed-features__more {
|
1176 |
-
margin-top: 25px;
|
1177 |
-
}
|
1178 |
-
.feed-feature__item {
|
1179 |
-
flex: 0 0 28.9%;
|
1180 |
-
margin: 0 2.2% 4.4% 2.2%;
|
1181 |
-
text-align: center;
|
1182 |
-
border-radius: 5px;
|
1183 |
-
background-color: #ffffff;
|
1184 |
-
transition: all 100ms linear;
|
1185 |
-
overflow: hidden;
|
1186 |
-
}
|
1187 |
-
.feed-feature__item:hover {
|
1188 |
-
box-shadow: 5px 4px 32px -16px rgba(0, 0, 0, 0.63 );
|
1189 |
-
}
|
1190 |
-
.feed-feature__thumb {
|
1191 |
-
overflow: hidden;
|
1192 |
-
}
|
1193 |
-
.feed-feature__item .feed-feature__thumb img {
|
1194 |
-
border-radius: 5px 5px 0 0;
|
1195 |
-
max-width: 100%;
|
1196 |
-
width: 100%;
|
1197 |
-
-webkit-transition: all 100ms linear;
|
1198 |
-
-moz-transition: all 100ms linear;
|
1199 |
-
-ms-transition: all 100ms linear;
|
1200 |
-
-o-transition: all 100ms linear;
|
1201 |
-
transition: all 100ms linear;
|
1202 |
-
}
|
1203 |
-
.feed-feature__item:hover .feed-feature__thumb img {
|
1204 |
-
transform: scale( 1.05 );
|
1205 |
-
}
|
1206 |
-
.feed-feature__item .feed-feature__description {
|
1207 |
-
padding: 20px 15px 25px;
|
1208 |
-
}
|
1209 |
-
.feed-feature__item .feed-feature__description h3 {
|
1210 |
-
font-size: 15px;
|
1211 |
-
line-height: 1.5em;
|
1212 |
-
font-weight: 300;
|
1213 |
margin: 0;
|
1214 |
}
|
1215 |
|
1216 |
-
.
|
1217 |
-
background
|
1218 |
-
padding:
|
1219 |
-
}
|
1220 |
-
.wapk-admin .feed-features .section-title h2,
|
1221 |
-
.wapk-admin .wapk-testimonial .section-title h2,
|
1222 |
-
.wapk-admin .feed-pro-comparison .section-title h2,
|
1223 |
-
.wapk-admin .feed-pricing .section-title h2 {
|
1224 |
-
margin-top: 0;
|
1225 |
-
margin-bottom: 0;
|
1226 |
-
}
|
1227 |
-
.wapk-admin .comparison-table {
|
1228 |
-
display: flex;
|
1229 |
-
justify-content: space-between;
|
1230 |
-
}
|
1231 |
-
.wapk-admin .comparison-table .comparison {
|
1232 |
-
flex: 0 0 48%;
|
1233 |
-
background-color: #fff;
|
1234 |
-
border: 1px solid #e0e9ec;
|
1235 |
-
border-radius: 5px;
|
1236 |
-
box-shadow: 0 1px 2px 0 rgba(0,0,0,.05);
|
1237 |
-
padding: 50px;
|
1238 |
-
box-sizing: border-box;
|
1239 |
-
}
|
1240 |
-
.wapk-admin .comparison .product-header {
|
1241 |
-
margin-bottom: 58px;
|
1242 |
-
position: relative;
|
1243 |
-
}
|
1244 |
-
.wapk-admin .comparison .product-header:after {
|
1245 |
-
content: "";
|
1246 |
-
position: absolute;
|
1247 |
-
bottom: -23px;
|
1248 |
-
left: 0;
|
1249 |
-
width: 38px;
|
1250 |
-
height: 5px;
|
1251 |
-
border-radius: 3px;
|
1252 |
-
background-color: #d7d7d7;
|
1253 |
-
}
|
1254 |
-
.wapk-admin .comparison .product-header img {
|
1255 |
-
max-width: 160px;
|
1256 |
-
width: 100%;
|
1257 |
-
}
|
1258 |
-
.wapk-admin .comparison .product-features {
|
1259 |
-
margin: 0;
|
1260 |
-
}
|
1261 |
-
.wapk-admin .comparison li {
|
1262 |
-
position: relative;
|
1263 |
-
display: flex;
|
1264 |
-
margin-bottom: 15px;
|
1265 |
-
padding-left: 30px;
|
1266 |
-
font-size: 14px;
|
1267 |
-
line-height: 1.3em;
|
1268 |
-
font-weight: 300;
|
1269 |
-
align-items: center;
|
1270 |
-
}
|
1271 |
-
.wapk-admin .comparison li.unavailable {
|
1272 |
-
color: #CED2D6;
|
1273 |
-
}
|
1274 |
-
.wapk-admin .comparison li span.dashicons {
|
1275 |
-
position: absolute;
|
1276 |
-
top: 1px;
|
1277 |
-
left: 6px;
|
1278 |
-
width: 18px;
|
1279 |
-
height: 18px;
|
1280 |
-
border-radius: 100%;
|
1281 |
-
background: #00D4D4;
|
1282 |
-
color: #FFF;
|
1283 |
-
line-height: 22px;
|
1284 |
-
font-size: 14px;
|
1285 |
-
text-align: center;
|
1286 |
-
}
|
1287 |
-
.wapk-admin .comparison li.unavailable {
|
1288 |
-
color: #CED2D6;
|
1289 |
-
}
|
1290 |
-
.wapk-admin .comparison li.unavailable span.dashicons {
|
1291 |
-
background: #CED2D6;
|
1292 |
-
}
|
1293 |
-
.wapk-admin .comparison li span.dashicons-no {
|
1294 |
-
font-size: 12px;
|
1295 |
-
}
|
1296 |
-
.wapk-admin .comparison li span.dashicons-no:before {
|
1297 |
-
left: 0;
|
1298 |
-
}
|
1299 |
-
.wapk-admin .comparison li span.dashicons:before {
|
1300 |
-
position: relative;
|
1301 |
-
left: -0.5px;
|
1302 |
-
top: -2px;
|
1303 |
-
}
|
1304 |
-
.wapk-admin .comparison li img {
|
1305 |
-
width: 18px;
|
1306 |
-
margin-right: 12px;
|
1307 |
-
}
|
1308 |
-
.wapk-admin .feed-pricing {}
|
1309 |
-
.wapk-pricing__table {
|
1310 |
-
width: 100%;
|
1311 |
-
display: -webkit-box;
|
1312 |
-
display: -webkit-flex;
|
1313 |
-
display: -ms-flexbox;
|
1314 |
-
display: flex;
|
1315 |
-
-webkit-flex-wrap: wrap;
|
1316 |
-
-ms-flex-wrap: wrap;
|
1317 |
-
flex-wrap: wrap;
|
1318 |
-
-webkit-align-content: flex-start;
|
1319 |
-
-ms-flex-line-pack: start;
|
1320 |
-
align-content: flex-start;
|
1321 |
-
justify-content: center;
|
1322 |
-
}
|
1323 |
-
.wapk-pricing__table__item {
|
1324 |
-
position: relative;
|
1325 |
-
flex: 0 0 23%;
|
1326 |
-
}
|
1327 |
-
.wapk-price__table__wrapper {
|
1328 |
-
position: relative;
|
1329 |
-
padding: 10px;
|
1330 |
-
}
|
1331 |
-
.wapk-price__table {
|
1332 |
-
text-align: center;
|
1333 |
-
display: block;
|
1334 |
-
width: 100%;
|
1335 |
-
padding: 10px;
|
1336 |
-
background-color: #fff;
|
1337 |
-
border-radius: 8px 8px 8px 8px;
|
1338 |
-
box-shadow: 0 0 25px 0 rgba(0,0,0,.1);
|
1339 |
-
overflow: hidden;
|
1340 |
-
-webkit-transition: background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s;
|
1341 |
-
transition: background .3s,border .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s;
|
1342 |
-
-o-transition: background .3s,border .3s,border-radius .3s,box-shadow .3s;
|
1343 |
-
transition: background .3s,border .3s,border-radius .3s,box-shadow .3s;
|
1344 |
-
transition: background .3s,border .3s,border-radius .3s,box-shadow .3s,-webkit-border-radius .3s,-webkit-box-shadow .3s;
|
1345 |
-
}
|
1346 |
-
.wapk-price__table__header {
|
1347 |
-
background-color: #fff;
|
1348 |
-
padding: 40px 0 0;
|
1349 |
-
}
|
1350 |
-
.wapk-price__table__heading {
|
1351 |
-
color: #6d7882;
|
1352 |
-
font-size: 17px;
|
1353 |
-
font-weight: 500;
|
1354 |
-
text-transform: uppercase;
|
1355 |
-
letter-spacing: 10px;
|
1356 |
-
font-family: sans-serif;
|
1357 |
-
margin: 0;
|
1358 |
-
padding: 0;
|
1359 |
-
line-height: 1.2;
|
1360 |
-
}
|
1361 |
-
.wapk-price__table__price {
|
1362 |
-
font-family: sans-serif;
|
1363 |
-
font-weight: 600;
|
1364 |
-
padding: 30px 0 10px;
|
1365 |
-
display: -webkit-box;
|
1366 |
-
display: -ms-flexbox;
|
1367 |
-
display: flex;
|
1368 |
-
-webkit-box-pack: center;
|
1369 |
-
-ms-flex-pack: center;
|
1370 |
-
justify-content: center;
|
1371 |
-
-webkit-box-align: center;
|
1372 |
-
-ms-flex-align: center;
|
1373 |
-
align-items: center;
|
1374 |
-
-ms-flex-wrap: wrap;
|
1375 |
-
flex-wrap: wrap;
|
1376 |
-
-webkit-box-orient: horizontal;
|
1377 |
-
-webkit-box-direction: normal;
|
1378 |
-
-ms-flex-direction: row;
|
1379 |
-
flex-direction: row;
|
1380 |
-
color: #434363;
|
1381 |
-
font-size: 45px;
|
1382 |
-
}
|
1383 |
-
.wapk-price__table__amount {}
|
1384 |
-
.wapk-price__table__currency {
|
1385 |
-
align-self: flex-start;
|
1386 |
-
color: #434363;
|
1387 |
-
line-height: 1;
|
1388 |
-
font-size: .3em;
|
1389 |
-
margin-right: 3px;
|
1390 |
-
}
|
1391 |
-
.wapk-price__table__amount .free,
|
1392 |
-
.wapk-price__table__amount .integer-part {
|
1393 |
-
color: #434363;
|
1394 |
-
line-height: .8;
|
1395 |
-
}
|
1396 |
-
.wapk-price__table__amount .decimal-part {
|
1397 |
-
font-size: 14px;
|
1398 |
-
font-weight: 400;
|
1399 |
-
}
|
1400 |
-
.wapk-price__table__amount .period {
|
1401 |
-
font-size: 14px;
|
1402 |
-
font-weight: 400;
|
1403 |
-
}
|
1404 |
-
.wapk-price__table__amount___legend {
|
1405 |
-
width: 100%;
|
1406 |
-
color: #FF4B4B;
|
1407 |
-
font-size: 18px;
|
1408 |
-
font-weight: 500;
|
1409 |
-
line-height: 2.5em;
|
1410 |
-
}
|
1411 |
-
.wapk-price__table__features {
|
1412 |
-
list-style-type: none;
|
1413 |
-
margin: 0;
|
1414 |
-
padding: 0;
|
1415 |
-
line-height: 1;
|
1416 |
-
color: #697279;
|
1417 |
-
text-align: left;
|
1418 |
-
}
|
1419 |
-
.wapk-price__table__features li.item {
|
1420 |
-
list-style-type: none;
|
1421 |
-
margin: 0;
|
1422 |
-
padding: 0;
|
1423 |
-
font-size: 13px;
|
1424 |
-
line-height: 1.5em;
|
1425 |
-
}
|
1426 |
-
.wapk-price__table__features li:not(:first-child):before {
|
1427 |
-
content: "";
|
1428 |
-
display: block;
|
1429 |
-
/* border: 0 solid hsla(0,0%,48%,.3); */
|
1430 |
-
margin: 10px 12.5%;
|
1431 |
-
}
|
1432 |
-
.wapk-price__table__feature {
|
1433 |
-
display: block;
|
1434 |
-
margin-left: calc(((100% - 80%)/2) + 20px );
|
1435 |
-
margin-right: calc((100% - 80%)/2);
|
1436 |
-
}
|
1437 |
-
span.wapk-price__table__feature span.dashicons {
|
1438 |
-
margin-left: -20px;
|
1439 |
-
top: 2px;
|
1440 |
-
position: relative;
|
1441 |
}
|
1442 |
|
1443 |
-
.
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
letter-spacing: 3px;
|
1450 |
-
border-radius: 100px 100px 100px 100px;
|
1451 |
-
padding: 16px 42px;
|
1452 |
-
transition: all 250ms;
|
1453 |
-
}
|
1454 |
-
.wapk-price__table__footer a:hover,
|
1455 |
-
.wapk-price__table__footer a:focus,
|
1456 |
-
.wapk-price__table__footer a:active {
|
1457 |
-
transform: scale(1.02) !important;
|
1458 |
-
}
|
1459 |
-
.wapk-price__table__ribbon {
|
1460 |
-
pointer-events: none;
|
1461 |
-
touch-action: none;
|
1462 |
-
-webkit-user-select: none;
|
1463 |
-
-moz-user-select: none;
|
1464 |
-
-ms-user-select: none;
|
1465 |
-
user-select: none;
|
1466 |
-
position: absolute;
|
1467 |
-
top: 10px;
|
1468 |
-
left: auto;
|
1469 |
-
right: 10px;
|
1470 |
-
-webkit-transform: rotate(90deg);
|
1471 |
-
-ms-transform: rotate(90deg);
|
1472 |
-
transform: rotate(90deg);
|
1473 |
-
width: 150px;
|
1474 |
-
overflow: hidden;
|
1475 |
-
height: 150px;
|
1476 |
-
}
|
1477 |
-
.wapk-price__table__ribbon__inner {
|
1478 |
-
background: #FF4B4B;
|
1479 |
-
font-family: sans-serif;
|
1480 |
-
font-weight: 500;
|
1481 |
-
color: #fff;
|
1482 |
-
font-size: 11px;
|
1483 |
-
/*noinspection CssFloatPxLength*/
|
1484 |
-
letter-spacing: 1.1px;
|
1485 |
-
box-shadow: 0 0 30px 0 rgba(0,0,0,.21);
|
1486 |
-
text-align: center;
|
1487 |
-
left: 0;
|
1488 |
-
width: 200%;
|
1489 |
-
-webkit-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
1490 |
-
-ms-transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
1491 |
-
transform: translateY(-50%) translateX(-50%) translateX(35px) rotate(-45deg);
|
1492 |
-
margin-top: 35px;
|
1493 |
-
line-height: 2;
|
1494 |
-
text-transform: uppercase;
|
1495 |
}
|
1496 |
|
1497 |
-
.
|
1498 |
-
|
1499 |
-
background: #fff;
|
1500 |
-
justify-content: space-between;
|
1501 |
-
padding: 85px 65px 85px;
|
1502 |
-
align-items: center;
|
1503 |
-
}
|
1504 |
-
.wapk-payment .payment-guarantee {
|
1505 |
-
display: flex;
|
1506 |
-
flex: 0 0 63%;
|
1507 |
-
align-content: center;
|
1508 |
-
align-items: center;
|
1509 |
-
position: relative;
|
1510 |
-
}
|
1511 |
-
.wapk-payment .payment-guarantee:after {
|
1512 |
-
content: "";
|
1513 |
-
position: absolute;
|
1514 |
-
right: -18px;
|
1515 |
-
top: 50%;
|
1516 |
-
transform: translateY(-50%);
|
1517 |
-
width: 5px;
|
1518 |
-
height: 38px;
|
1519 |
-
border-radius: 3px;
|
1520 |
-
background: #00D4D4;
|
1521 |
-
}
|
1522 |
-
.wapk-payment .payment-guarantee .guarantee-seal img {
|
1523 |
-
max-width: 100%;
|
1524 |
-
width: 280px;
|
1525 |
-
}
|
1526 |
-
.wapk-payment .payment-guarantee .guarantee-detail {
|
1527 |
-
padding-left: 25px;
|
1528 |
-
}
|
1529 |
-
.wapk-payment .payment-guarantee .guarantee-detail h2 {
|
1530 |
-
font-size: 24px;
|
1531 |
-
line-height: 1.5em;
|
1532 |
-
font-weight: 400;
|
1533 |
-
margin: 0;
|
1534 |
-
}
|
1535 |
-
.wapk-payment .payment-guarantee .guarantee-detail p {
|
1536 |
-
font-size: 15px;
|
1537 |
-
line-height: 1.5em;
|
1538 |
-
font-weight: 300;
|
1539 |
-
margin: 5px 0 20px;
|
1540 |
-
}
|
1541 |
-
.wapk-payment .payment-guarantee .guarantee-detail a {
|
1542 |
-
color: #00D4D4;
|
1543 |
-
font-size: 15px;
|
1544 |
-
line-height: 1.5em;
|
1545 |
-
text-decoration: none;
|
1546 |
-
}
|
1547 |
-
.wapk-payment .payment-guarantee .guarantee-detail a span.dashicons,
|
1548 |
-
.wapk-payment .payment-guarantee .guarantee-detail a img {
|
1549 |
-
width: 18px;
|
1550 |
-
margin-right: 4px;
|
1551 |
-
margin-top: 1px;
|
1552 |
-
}
|
1553 |
-
.wapk-payment .payment-options {
|
1554 |
-
flex-grow: 0.5;
|
1555 |
-
}
|
1556 |
-
.wapk-payment .payment-options h3 {
|
1557 |
-
font-size: 15px;
|
1558 |
-
font-weight: 300;
|
1559 |
-
margin: 0 0 17px;
|
1560 |
-
}
|
1561 |
-
.wapk-payment .payment-options .options {}
|
1562 |
-
.wapk-payment .payment-options .options h4{
|
1563 |
-
color: #CED2D6;
|
1564 |
-
}
|
1565 |
-
.wapk-payment .payment-options .options li {
|
1566 |
-
float: left;
|
1567 |
-
overflow: hidden;
|
1568 |
-
}
|
1569 |
-
.wapk-payment .payment-options .options li img {
|
1570 |
-
height: 20px;
|
1571 |
-
margin-right: 5px;
|
1572 |
}
|
1573 |
|
1574 |
-
|
1575 |
-
.
|
1576 |
-
|
1577 |
-
|
1578 |
-
position: absolute;
|
1579 |
-
left: 79px;
|
1580 |
-
top: -15px;
|
1581 |
-
width: 80px;
|
1582 |
-
height: 56px;
|
1583 |
-
border-radius: 3px;
|
1584 |
-
background: transparent url(../images/block-quote.svg) no-repeat;
|
1585 |
-
background-size: cover;
|
1586 |
-
}
|
1587 |
-
.wapk-admin .wapk-testimonial-wrapper {
|
1588 |
-
position: relative;
|
1589 |
-
display: block;
|
1590 |
-
width: 80%;
|
1591 |
-
margin: 0 auto;
|
1592 |
-
padding: 0;
|
1593 |
-
text-align: center;
|
1594 |
-
}
|
1595 |
-
.testimonial-item__user .avatar {
|
1596 |
-
width: 100px;
|
1597 |
-
height: 100px;
|
1598 |
-
margin: 0 auto;
|
1599 |
-
border-radius: 100%;
|
1600 |
-
border: 3px solid #efefef;
|
1601 |
-
overflow: hidden;
|
1602 |
-
}
|
1603 |
-
.testimonial-item {
|
1604 |
-
margin-bottom: 25px;
|
1605 |
-
}
|
1606 |
-
.testimonial-item__user .avatar img {
|
1607 |
-
max-width: 100%;
|
1608 |
-
width: 100%;
|
1609 |
-
margin: 0 auto;
|
1610 |
-
padding: 0;
|
1611 |
-
display: block;
|
1612 |
-
}
|
1613 |
|
1614 |
-
.
|
1615 |
-
|
1616 |
-
|
1617 |
-
|
1618 |
-
|
|
|
|
|
|
|
|
|
1619 |
}
|
1620 |
|
1621 |
-
|
1622 |
-
|
1623 |
-
|
1624 |
-
|
|
|
1625 |
}
|
1626 |
|
1627 |
-
.
|
1628 |
-
|
1629 |
-
|
1630 |
}
|
1631 |
|
1632 |
-
|
1633 |
-
|
1634 |
-
|
1635 |
-
padding-left: 20%;
|
1636 |
-
padding-right: 20%;
|
1637 |
-
}
|
1638 |
-
.wapk-admin .wapk-payment {
|
1639 |
-
padding-left: 15%;
|
1640 |
-
padding-right: 15%;
|
1641 |
-
}
|
1642 |
-
.wapk-admin .feed-pro-comparison {
|
1643 |
-
padding-left: 21.2%;
|
1644 |
-
padding-right: 21.2%;
|
1645 |
-
}
|
1646 |
-
.wapk-admin .wapk-testimonial-wrapper {
|
1647 |
-
width: 55%;
|
1648 |
-
}
|
1649 |
}
|
1650 |
|
1651 |
-
.
|
1652 |
-
|
1653 |
-
|
1654 |
-
.wapk-admin .wapk-payment,
|
1655 |
-
.wapk-admin .feed-features,
|
1656 |
-
.wapk-admin .wapk-testimonial,
|
1657 |
-
.wapk-admin .wapk-feed-banner {
|
1658 |
-
margin: 0;
|
1659 |
}
|
1660 |
-
|
1661 |
-
|
1662 |
-
|
|
|
1663 |
}
|
6 |
-webkit-animation: spin 1000ms infinite linear;
|
7 |
animation: spin 1000ms infinite linear;
|
8 |
}
|
9 |
+
|
10 |
.wpf_spin_reverse {
|
11 |
animation-direction: reverse;
|
12 |
}
|
13 |
+
|
14 |
.wpf_regenerate.disabled {
|
15 |
color: #737373;
|
16 |
box-shadow: none;
|
17 |
cursor: not-allowed;
|
18 |
}
|
19 |
+
|
20 |
@-webkit-keyframes spin {
|
21 |
0% {
|
22 |
-webkit-transform: rotate(0deg);
|
27 |
transform: rotate(359deg);
|
28 |
}
|
29 |
}
|
30 |
+
|
31 |
@keyframes spin {
|
32 |
0% {
|
33 |
-webkit-transform: rotate(0deg);
|
38 |
transform: rotate(359deg);
|
39 |
}
|
40 |
}
|
41 |
+
|
42 |
/*noinspection SpellCheckingInspection */
|
43 |
.wfbtn {
|
44 |
background: #3498db;
|
60 |
border: solid #2b698f 3px;
|
61 |
text-decoration: none;
|
62 |
}
|
63 |
+
|
64 |
/*noinspection SpellCheckingInspection */
|
65 |
.wftooltip {
|
66 |
+
display: none;
|
67 |
+
position: absolute;
|
68 |
+
border: 1px solid #333;
|
69 |
+
background-color: #161616;
|
70 |
+
border-radius: 5px;
|
71 |
+
padding: 10px;
|
72 |
+
color: #fff;
|
73 |
+
font-size: 12px;
|
74 |
}
|
75 |
+
|
76 |
/*noinspection SpellCheckingInspection */
|
77 |
.wfbtn:hover {
|
78 |
background: #3cb0fd;
|
84 |
text-decoration: none;
|
85 |
}
|
86 |
|
87 |
+
.makeFeedResponse {
|
88 |
width: 70%;
|
89 |
color: green;
|
90 |
}
|
101 |
width: 200px;
|
102 |
}
|
103 |
|
104 |
+
.generalInput:not(.selectize-control) {
|
105 |
+
margin: 5px auto;
|
106 |
+
}
|
107 |
+
|
108 |
.error {
|
109 |
color: red;
|
110 |
}
|
117 |
#wf_newRow {
|
118 |
margin-left: 0;
|
119 |
}
|
120 |
+
|
121 |
/*noinspection SpellCheckingInspection */
|
122 |
.mtable tbody tr {
|
123 |
height: 25px;
|
126 |
align-items: baseline;
|
127 |
font-weight: bold;
|
128 |
}
|
129 |
+
|
130 |
/*noinspection SpellCheckingInspection */
|
131 |
.mtable th:nth-child(1) {
|
132 |
width: 17px;
|
133 |
}
|
134 |
+
|
135 |
/*noinspection SpellCheckingInspection */
|
136 |
.mtable th:nth-child(2) {
|
137 |
width: 160px;
|
138 |
}
|
139 |
+
|
140 |
/*noinspection SpellCheckingInspection */
|
141 |
.mtable th:nth-child(3) {
|
142 |
width: 100px;
|
143 |
}
|
144 |
+
|
145 |
/*noinspection SpellCheckingInspection */
|
146 |
.mtable th:nth-child(4) {
|
147 |
width: 100px;
|
148 |
}
|
149 |
+
|
150 |
/*noinspection SpellCheckingInspection */
|
151 |
.mtable th:nth-child(5) {
|
152 |
width: 150px;
|
153 |
}
|
154 |
+
|
155 |
/*noinspection SpellCheckingInspection */
|
156 |
.mtable th:nth-child(6) {
|
157 |
width: 100px;
|
158 |
}
|
159 |
+
|
160 |
/*noinspection SpellCheckingInspection */
|
161 |
.mtable th:nth-child(7) {
|
162 |
width: 150px;
|
163 |
}
|
164 |
+
|
165 |
/*noinspection SpellCheckingInspection */
|
166 |
.mtable th:nth-child(8) {
|
167 |
width: 90px;
|
168 |
}
|
169 |
+
|
170 |
/*noinspection SpellCheckingInspection */
|
171 |
.mtable th:nth-child(9) {
|
172 |
width: 29px;
|
173 |
}
|
174 |
+
|
175 |
/*noinspection SpellCheckingInspection */
|
176 |
.wp-admin select.wf_mattributes, .wf_mattributes {
|
177 |
width: 150px;
|
182 |
div#wf-tab-content1 select:not([name^="output_type"]), div#wf-tab-content1 input {
|
183 |
width: 100%;
|
184 |
}
|
185 |
+
|
186 |
div#wf-tab-content1 .dashicons {
|
187 |
vertical-align: middle;
|
188 |
}
|
191 |
width: 150px;
|
192 |
left: 0
|
193 |
}
|
194 |
+
|
195 |
.wf_compare {
|
196 |
max-width: 245px;
|
197 |
left: 0
|
201 |
width: 100px;
|
202 |
left: 0
|
203 |
}
|
204 |
+
|
205 |
/*noinspection SpellCheckingInspection */
|
206 |
.wf_sortedtable {
|
207 |
cursor: move;
|
208 |
}
|
209 |
|
210 |
+
.sorted_table {
|
211 |
+
position: relative;
|
212 |
+
}
|
213 |
+
|
214 |
.sorted_table .dragged {
|
215 |
position: absolute;
|
216 |
opacity: 0.8;
|
217 |
z-index: 9999;
|
218 |
background: #fff;
|
219 |
+
width: 100%;
|
220 |
+
display: table;
|
221 |
}
|
222 |
|
223 |
.sorted_table tbody tr.placeholder td {
|
224 |
border: 1px dashed #2cc185;
|
225 |
+
height: 46px;
|
226 |
}
|
227 |
+
|
228 |
/*noinspection SpellCheckingInspection */
|
229 |
.mtable2 tbody tr {
|
230 |
height: 25px;
|
233 |
align-items: baseline;
|
234 |
font-weight: bold;
|
235 |
}
|
236 |
+
|
237 |
/*noinspection SpellCheckingInspection */
|
238 |
.mtable2 th:nth-child(1) {
|
239 |
width: 30px;
|
240 |
}
|
241 |
+
|
242 |
/*noinspection SpellCheckingInspection */
|
243 |
.mtable2 th:nth-child(2) {
|
244 |
width: 150px;
|
245 |
}
|
246 |
+
|
247 |
/*noinspection SpellCheckingInspection */
|
248 |
.mtable2 th:nth-child(3) {
|
249 |
width: 230px;
|
250 |
}
|
251 |
+
|
252 |
/*noinspection SpellCheckingInspection */
|
253 |
.mtable2 th:nth-child(4) {
|
254 |
width: 220px;
|
255 |
}
|
256 |
+
|
257 |
/*noinspection SpellCheckingInspection */
|
258 |
.mtable2 th:nth-child(7) {
|
259 |
width: 50px;
|
260 |
}
|
261 |
+
|
262 |
/*noinspection SpellCheckingInspection */
|
263 |
.mtable2 th:nth-child(8) {
|
264 |
width: 50px;
|
265 |
}
|
266 |
+
|
267 |
/*noinspection SpellCheckingInspection */
|
268 |
.mtable2 th:nth-child(9) {
|
269 |
width: 29px;
|
270 |
}
|
271 |
+
|
272 |
/*noinspection SpellCheckingInspection */
|
273 |
+
.wfnoempty {
|
274 |
+
width: 120px;
|
275 |
}
|
276 |
|
277 |
/*==================Tab Design=======================*/
|
302 |
border: 2px solid #CCC;
|
303 |
}
|
304 |
|
305 |
+
.wf_tabs li > input[type="radio"][name="wf_tabs"] {
|
306 |
position: absolute;
|
307 |
+
top: auto;
|
308 |
left: -9999px;
|
|
|
309 |
}
|
310 |
|
311 |
.wf-tab-name {
|
335 |
.wf_tabs .wf-tab-content {
|
336 |
z-index: 2;
|
337 |
display: none;
|
|
|
338 |
width: 100%;
|
339 |
font-size: 0.9rem;
|
340 |
position: absolute;
|
347 |
display: block;
|
348 |
}
|
349 |
|
350 |
+
[id^="wf-tab-content"] {
|
351 |
+
margin-bottom: 40px;
|
352 |
+
}
|
353 |
+
|
354 |
+
div#wf-tab-content2 table:first-child {
|
355 |
+
padding: 10px 0;
|
356 |
+
}
|
357 |
+
|
358 |
+
div#wf-tab-content2 table:first-child td:nth-child(1) {
|
359 |
+
width: 260px;
|
360 |
+
}
|
361 |
|
362 |
+
div#wf-tab-content2 table:first-child td:nth-child(2) {
|
363 |
+
width: 260px;
|
364 |
+
}
|
365 |
|
366 |
table.feed-actions tr td:last-child {
|
367 |
text-align: right;
|
368 |
}
|
369 |
|
370 |
+
/* Selectize */
|
371 |
+
select.selectize {
|
372 |
+
display: none;
|
|
|
|
|
373 |
}
|
374 |
+
|
375 |
+
body.no-js select.selectize {
|
376 |
+
display: block !important;
|
|
|
|
|
|
|
|
|
377 |
}
|
378 |
|
379 |
+
/* fallback combat */
|
380 |
+
.selectize-dropdown .active {
|
381 |
+
background-color: #edf9ff;
|
382 |
+
}
|
383 |
|
384 |
+
.selectize-dropdown .create {
|
385 |
+
padding: 5px 8px;
|
386 |
+
}
|
|
|
387 |
|
|
|
|
|
|
|
|
|
388 |
.wapk-selectize-item {
|
389 |
background: #0073aa !important;
|
390 |
color: #f1f1f1 !important;
|
391 |
font-weight: bold !important;
|
392 |
+
border-color: #0073aa !important;
|
393 |
+
padding-left: 5px;
|
394 |
+
padding-right: 5px;
|
395 |
+
}
|
396 |
+
|
397 |
+
.selectize-input.full #googleTaxonomyId-selectized {
|
398 |
+
opacity: 0;
|
399 |
+
position: absolute;
|
400 |
+
left: -10000px;
|
401 |
+
}
|
402 |
+
|
403 |
+
.selectize-dropdown [data-selectable].option {
|
404 |
+
cursor: default;
|
405 |
}
|
406 |
+
|
407 |
+
.selectize-control.plugin-remove_button [data-value] .remove {
|
|
|
408 |
border-left: 1px solid #f1f1f1 !important;
|
409 |
}
|
410 |
|
411 |
+
.selectize-dropdown .optgroup-header {
|
412 |
+
font-weight: 700;
|
413 |
+
background: #efefef;
|
414 |
+
color: #5a5a5a;
|
415 |
+
}
|
416 |
+
|
417 |
+
.selectize-dropdown [data-selectable].option {
|
418 |
+
cursor: pointer;
|
419 |
+
}
|
420 |
+
|
421 |
/* Feed active and inactive button CSS */
|
422 |
+
.wf_status_wrap label {
|
423 |
+
width: 50px;
|
424 |
+
height: 25px;
|
425 |
+
box-sizing: border-box;
|
426 |
+
border: 1px solid;
|
427 |
+
float: left;
|
428 |
+
border-radius: 100px;
|
429 |
+
position: relative;
|
430 |
+
cursor: pointer;
|
431 |
+
transition: .3s ease;
|
432 |
+
}
|
433 |
+
|
434 |
+
input[class=woo_feed_status_input]:checked + label {
|
435 |
+
background: #55e868;
|
436 |
+
}
|
437 |
+
|
438 |
+
input[class=woo_feed_status_input]:checked + label:before {
|
439 |
+
left: 25px;
|
440 |
+
}
|
441 |
+
|
442 |
+
.wf_status_wrap label:before {
|
443 |
+
transition: .3s ease;
|
444 |
+
content: '';
|
445 |
+
width: 20px;
|
446 |
+
height: 20px;
|
447 |
+
position: absolute;
|
448 |
+
background: white;
|
449 |
+
left: 2px;
|
450 |
+
top: 2px;
|
451 |
+
box-sizing: border-box;
|
452 |
+
border: 1px solid;
|
453 |
+
color: black;
|
454 |
+
border-radius: 100px;
|
455 |
}
|
456 |
+
|
457 |
/* list table style */
|
458 |
/*noinspection SpellCheckingInspection */
|
459 |
.widefat td.column-url, .widefat th.column-url,
|
460 |
+
.column-url {
|
461 |
+
color: #008779;
|
462 |
+
font-weight: bold;
|
463 |
+
}
|
464 |
|
465 |
/** Feed Progress **/
|
466 |
.feed-progress-container {
|
467 |
+
width: 100%;
|
468 |
color: white;
|
469 |
text-align: center;
|
470 |
font-weight: 300;
|
471 |
}
|
472 |
|
473 |
.feed-progress-bar {
|
474 |
+
width: 100%;
|
475 |
+
background: #eee;
|
476 |
+
padding: 3px;
|
477 |
+
border-radius: 3px;
|
478 |
+
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .2);
|
479 |
}
|
480 |
|
481 |
.feed-progress-bar-fill {
|
482 |
+
height: 20px;
|
483 |
+
display: block;
|
484 |
+
background: #3DC264;
|
485 |
+
width: 0;
|
486 |
+
border-radius: 3px;
|
487 |
+
-webkit-transition: width 0.8s ease;
|
488 |
+
transition: width 0.8s ease;
|
489 |
}
|
490 |
|
491 |
.feed-progress-status {
|
495 |
}
|
496 |
|
497 |
.feed-progress-percentage {
|
498 |
+
text-align: right;
|
499 |
font-weight: bolder;
|
500 |
color: #41f49d;
|
501 |
font-family: 'Arial Black', sans-serif;
|
503 |
}
|
504 |
|
505 |
/*noinspection SpellCheckingInspection */
|
506 |
+
#wpbody-content.woofeed-body-content {
|
507 |
+
overflow: visible !important;
|
508 |
}
|
509 |
+
|
510 |
/*noinspection SpellCheckingInspection */
|
511 |
.clippy {
|
512 |
position: relative;
|
515 |
margin-left: 3px;
|
516 |
top: 3px;
|
517 |
}
|
518 |
+
|
519 |
/*noinspection SpellCheckingInspection */
|
520 |
+
.column-url .clippy {
|
521 |
+
display: none;
|
522 |
+
}
|
523 |
+
|
524 |
/*noinspection SpellCheckingInspection */
|
525 |
+
.column-url:hover .clippy {
|
526 |
+
display: inline-block;
|
527 |
+
}
|
528 |
+
|
529 |
/**
|
530 |
* Primer Tooltip
|
531 |
* @TODO use node module
|
535 |
.tooltipped {
|
536 |
position: relative
|
537 |
}
|
538 |
+
|
539 |
/*noinspection SpellCheckingInspection */
|
540 |
.tooltipped:after {
|
541 |
position: absolute;
|
542 |
z-index: 1000000;
|
543 |
display: none;
|
544 |
padding: 5px 8px;
|
545 |
+
font: normal normal 11px/1.5 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Segoe UI Emoji", "Segoe UI Symbol";
|
546 |
color: #fff;
|
547 |
text-align: center;
|
548 |
text-decoration: none;
|
553 |
white-space: pre;
|
554 |
pointer-events: none;
|
555 |
content: attr(aria-label);
|
556 |
+
background: rgba(0, 0, 0, .8);
|
557 |
border-radius: 3px;
|
558 |
-webkit-font-smoothing: subpixel-antialiased
|
559 |
}
|
560 |
+
|
561 |
/*noinspection SpellCheckingInspection */
|
562 |
.tooltipped:before {
|
563 |
position: absolute;
|
565 |
display: none;
|
566 |
width: 0;
|
567 |
height: 0;
|
568 |
+
color: rgba(0, 0, 0, .8);
|
569 |
pointer-events: none;
|
570 |
content: "";
|
571 |
border: 5px solid transparent
|
572 |
}
|
573 |
+
|
574 |
/*noinspection SpellCheckingInspection */
|
575 |
+
.tooltipped:hover:before, .tooltipped:hover:after, .tooltipped:active:before, .tooltipped:active:after, .tooltipped:focus:before, .tooltipped:focus:after {
|
576 |
display: inline-block;
|
577 |
text-decoration: none
|
578 |
}
|
579 |
+
|
580 |
/*noinspection SpellCheckingInspection */
|
581 |
+
.tooltipped-multiline:hover:after, .tooltipped-multiline:active:after, .tooltipped-multiline:focus:after {
|
582 |
display: table-cell
|
583 |
}
|
584 |
+
|
585 |
/*noinspection SpellCheckingInspection */
|
586 |
+
.tooltipped-s:after, .tooltipped-se:after, .tooltipped-sw:after {
|
587 |
top: 100%;
|
588 |
right: 50%;
|
589 |
margin-top: 5px
|
590 |
}
|
591 |
+
|
592 |
/*noinspection SpellCheckingInspection */
|
593 |
+
.tooltipped-s:before, .tooltipped-se:before, .tooltipped-sw:before {
|
594 |
top: auto;
|
595 |
right: 50%;
|
596 |
bottom: -5px;
|
597 |
margin-right: -5px;
|
598 |
+
border-bottom-color: rgba(0, 0, 0, .8)
|
599 |
}
|
600 |
+
|
601 |
/*noinspection SpellCheckingInspection */
|
602 |
.tooltipped-se:after {
|
603 |
right: auto;
|
604 |
left: 50%;
|
605 |
margin-left: -15px
|
606 |
}
|
607 |
+
|
608 |
/*noinspection SpellCheckingInspection */
|
609 |
.tooltipped-sw:after {
|
610 |
margin-right: -15px
|
611 |
}
|
612 |
+
|
613 |
/*noinspection SpellCheckingInspection */
|
614 |
+
.tooltipped-n:after, .tooltipped-ne:after, .tooltipped-nw:after {
|
615 |
right: 50%;
|
616 |
bottom: 100%;
|
617 |
margin-bottom: 5px
|
618 |
}
|
619 |
+
|
620 |
/*noinspection SpellCheckingInspection */
|
621 |
+
.tooltipped-n:before, .tooltipped-ne:before, .tooltipped-nw:before {
|
622 |
top: -5px;
|
623 |
right: 50%;
|
624 |
bottom: auto;
|
625 |
margin-right: -5px;
|
626 |
+
border-top-color: rgba(0, 0, 0, .8)
|
627 |
}
|
628 |
+
|
629 |
/*noinspection SpellCheckingInspection */
|
630 |
.tooltipped-ne:after {
|
631 |
right: auto;
|
632 |
left: 50%;
|
633 |
margin-left: -15px
|
634 |
}
|
635 |
+
|
636 |
/*noinspection SpellCheckingInspection */
|
637 |
.tooltipped-nw:after {
|
638 |
margin-right: -15px
|
639 |
}
|
640 |
+
|
641 |
/*noinspection SpellCheckingInspection */
|
642 |
+
.tooltipped-s:after, .tooltipped-n:after {
|
643 |
-webkit-transform: translateX(50%);
|
644 |
-ms-transform: translateX(50%);
|
645 |
transform: translateX(50%)
|
646 |
}
|
647 |
+
|
648 |
/*noinspection SpellCheckingInspection */
|
649 |
.tooltipped-w:after {
|
650 |
right: 100%;
|
654 |
-ms-transform: translateY(50%);
|
655 |
transform: translateY(50%)
|
656 |
}
|
657 |
+
|
658 |
/*noinspection SpellCheckingInspection */
|
659 |
.tooltipped-w:before {
|
660 |
top: 50%;
|
661 |
bottom: 50%;
|
662 |
left: -5px;
|
663 |
margin-top: -5px;
|
664 |
+
border-left-color: rgba(0, 0, 0, .8)
|
665 |
}
|
666 |
+
|
667 |
/*noinspection SpellCheckingInspection */
|
668 |
.tooltipped-e:after {
|
669 |
bottom: 50%;
|
673 |
-ms-transform: translateY(50%);
|
674 |
transform: translateY(50%)
|
675 |
}
|
676 |
+
|
677 |
/*noinspection SpellCheckingInspection */
|
678 |
.tooltipped-e:before {
|
679 |
top: 50%;
|
680 |
right: -5px;
|
681 |
bottom: 50%;
|
682 |
margin-top: -5px;
|
683 |
+
border-right-color: rgba(0, 0, 0, .8)
|
684 |
}
|
685 |
|
686 |
/*noinspection SpellCheckingInspection,CssInvalidPropertyValue*/
|
694 |
white-space: pre-line;
|
695 |
border-collapse: separate
|
696 |
}
|
697 |
+
|
698 |
/*noinspection SpellCheckingInspection */
|
699 |
+
.tooltipped-multiline.tooltipped-s:after, .tooltipped-multiline.tooltipped-n:after {
|
700 |
right: auto;
|
701 |
left: 50%;
|
702 |
-webkit-transform: translateX(-50%);
|
703 |
-ms-transform: translateX(-50%);
|
704 |
transform: translateX(-50%)
|
705 |
}
|
706 |
+
|
707 |
/*noinspection SpellCheckingInspection */
|
708 |
+
.tooltipped-multiline.tooltipped-w:after, .tooltipped-multiline.tooltipped-e:after {
|
709 |
right: 100%
|
710 |
}
|
711 |
+
|
712 |
+
@media screen and (min-width: 0\0
|
713 |
+
) {
|
714 |
/*noinspection SpellCheckingInspection */
|
715 |
.tooltipped-multiline:after {
|
716 |
width: 250px
|
717 |
}
|
718 |
}
|
719 |
+
|
720 |
/*noinspection SpellCheckingInspection */
|
721 |
+
.tooltipped-sticky:before, .tooltipped-sticky:after {
|
722 |
display: inline-block
|
723 |
}
|
724 |
+
|
725 |
/*noinspection SpellCheckingInspection */
|
726 |
.tooltipped-sticky.tooltipped-multiline:after {
|
727 |
display: table-cell
|
728 |
}
|
729 |
+
|
730 |
/*noinspection SpellCheckingInspection */
|
731 |
.fullscreen-overlay-enabled.dark-theme .tooltipped:after {
|
732 |
color: #000;
|
733 |
+
background: rgba(255, 255, 255, .8)
|
734 |
}
|
735 |
+
|
736 |
/*noinspection SpellCheckingInspection */
|
737 |
+
.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-s:before, .fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-se:before, .fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-sw:before {
|
738 |
+
border-bottom-color: rgba(255, 255, 255, .8)
|
739 |
}
|
740 |
+
|
741 |
/*noinspection SpellCheckingInspection */
|
742 |
+
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-n:before, .fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-ne:before, .fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-nw:before {
|
743 |
+
border-top-color: rgba(255, 255, 255, .8)
|
744 |
}
|
745 |
+
|
746 |
/*noinspection SpellCheckingInspection */
|
747 |
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-e:before {
|
748 |
+
border-right-color: rgba(255, 255, 255, .8)
|
749 |
}
|
750 |
+
|
751 |
/*noinspection SpellCheckingInspection */
|
752 |
.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-w:before {
|
753 |
+
border-left-color: rgba(255, 255, 255, .8)
|
754 |
}
|
755 |
|
756 |
+
ul.tracker_collection_list {
|
757 |
+
list-style: initial;
|
758 |
+
padding: initial;
|
759 |
+
margin: -10px 0 0 30px;
|
760 |
+
font-size: 11px !important;
|
761 |
+
}
|
762 |
+
|
763 |
+
ul.tracker_collection_list li {
|
764 |
+
margin: 0;
|
765 |
+
}
|
766 |
|
767 |
/** Info Message Table **/
|
768 |
table.wf-info-table th,
|
769 |
+
table.wf-rate-table th {
|
770 |
+
vertical-align: middle;
|
771 |
+
text-align: center;
|
772 |
+
max-width: 100%;
|
773 |
+
font-weight: 500;
|
774 |
+
}
|
775 |
+
|
776 |
+
table.wf-info-table th strong,
|
777 |
+
table.wf-rate-table th strong {
|
778 |
+
font-weight: bold;
|
779 |
+
}
|
780 |
+
|
781 |
+
table.wf-info-table th:first-child img {
|
782 |
+
margin: 0 0 -5px 5px;
|
783 |
+
}
|
784 |
+
|
785 |
+
table.wf-rate-table a {
|
786 |
+
color: #0073aa;
|
787 |
+
}
|
788 |
+
|
789 |
table.wf-rate-table a.review-star:after {
|
790 |
+
content: "\f155\f155\f155\f155\f155" !important;
|
791 |
/*noinspection CssNoGenericFontName*/
|
792 |
font-family: dashicons;
|
|
|
793 |
font-size: 10px;
|
794 |
font-weight: 100;
|
795 |
text-rendering: auto;
|
797 |
-moz-osx-font-smoothing: grayscale;
|
798 |
/*content: '★★★★★'; /*★★★★★*/
|
799 |
/*content: '\2605\2605\2605\2605\2605';*/
|
800 |
+
color: #0073aa;
|
801 |
+
text-decoration: underline;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
}
|
803 |
|
804 |
/** Admin Menu Icon **/
|
809 |
opacity: 0.6;
|
810 |
filter: alpha(opacity=60);
|
811 |
}
|
812 |
+
|
813 |
#adminmenu #toplevel_page_webappick-manage-feeds:hover div.wp-menu-image::before,
|
814 |
#adminmenu #toplevel_page_webappick-manage-feeds.wp-has-current-submenu div.wp-menu-image::before {
|
815 |
opacity: 1;
|
822 |
-moz-box-sizing: border-box;
|
823 |
box-sizing: border-box;
|
824 |
}
|
825 |
+
|
826 |
.wapk-admin {
|
827 |
position: relative;
|
828 |
display: block;
|
833 |
/* reset .warp margin to use full width except menu area */
|
834 |
margin: 0 0 0 -10px;
|
835 |
}
|
836 |
+
|
837 |
@media screen and (min-width: 783px) {
|
838 |
.wapk-admin {
|
839 |
margin: 0 0 0 -20px;
|
840 |
}
|
841 |
}
|
842 |
+
|
843 |
+
.wapk-admin h1, .wapk-admin h2,
|
844 |
+
.wapk-admin h3, .wapk-admin h4,
|
845 |
+
.wapk-admin h5, .wapk-admin h6,
|
|
|
|
|
846 |
.wapk-admin p {
|
847 |
color: #1B2730;
|
848 |
}
|
849 |
+
|
850 |
+
.text-center {
|
851 |
+
text-align: center;
|
852 |
+
}
|
853 |
+
|
854 |
.wapk-admin sup {
|
855 |
vertical-align: baseline;
|
856 |
position: relative;
|
857 |
top: -6px;
|
858 |
}
|
859 |
+
|
860 |
.wapk-admin sub {
|
861 |
vertical-align: baseline;
|
862 |
position: relative;
|
863 |
top: 4px;
|
864 |
}
|
865 |
+
|
866 |
/* WP.Core.UI Compat */
|
867 |
+
.wapk-admin .wapk-section [class$=icon32] + h2,
|
868 |
.wapk-admin .wapk-section h1,
|
869 |
+
.wapk-admin .wapk-section > h2:first-child {
|
870 |
font-size: 23px;
|
871 |
font-weight: 400;
|
872 |
margin: 0;
|
873 |
padding: 9px 0 4px 0;
|
874 |
line-height: 1.3;
|
875 |
}
|
876 |
+
|
877 |
.wapk-admin .wapk-section,
|
878 |
+
.wapk-admin > .notice {
|
879 |
/* Restore .warp margin */
|
880 |
+
margin: 10px 20px 0 22px;
|
881 |
position: relative;
|
882 |
display: block;
|
883 |
}
|
884 |
+
|
885 |
.clear:after {
|
886 |
content: "";
|
887 |
display: table;
|
888 |
clear: both;
|
889 |
}
|
890 |
+
|
891 |
.wapk-admin span.help {
|
892 |
+
display: block;
|
893 |
+
float: left;
|
894 |
+
width: 100%;
|
895 |
font-size: 0.9em;
|
896 |
color: #636363;
|
897 |
+
margin-top: 5px;
|
898 |
+
font-weight: 500;
|
899 |
}
|
900 |
+
|
901 |
.wapk-admin span.help .dashicons {
|
902 |
width: 11px;
|
903 |
height: 12px;
|
907 |
|
908 |
/*.wapk-admin .help a { color: inherit; text-decoration: underline; }*/
|
909 |
/** Extend WP Core UI PostBox For Docs **/
|
910 |
+
.wapk-feed-docs .postbox {
|
911 |
+
width: 355px;
|
912 |
+
margin-right: 20px;
|
913 |
+
display: inline-block;
|
914 |
+
vertical-align: top;
|
915 |
+
}
|
916 |
+
|
917 |
@media only screen and (max-width: 850px) {
|
918 |
+
.wapk-feed-docs .postbox {
|
919 |
+
display: block;
|
920 |
+
width: auto;
|
921 |
+
float: none;
|
922 |
+
margin-right: auto;
|
923 |
+
}
|
924 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
925 |
|
926 |
+
.wapk-feed-docs .postbox .hndle {
|
927 |
+
font-size: 14px;
|
928 |
+
padding: 8px 12px;
|
929 |
+
margin: 0;
|
930 |
+
line-height: 1.4;
|
931 |
+
cursor: pointer;
|
932 |
}
|
|
|
|
|
|
|
|
|
|
|
933 |
|
934 |
+
.wapk-feed-docs .postbox .dashicons {
|
935 |
+
color: #ccc
|
936 |
+
}
|
|
|
|
|
937 |
|
938 |
+
.wapk-feed-docs .postbox a {
|
939 |
+
text-decoration: none;
|
940 |
+
}
|
941 |
|
942 |
+
.wapk-feed-docs .postbox .inside,
|
943 |
+
.wapk-feed-docs .postbox ul {
|
944 |
+
margin-bottom: 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
945 |
}
|
946 |
|
947 |
+
.wapk-feed-docs .postbox .toggle-indicator:before {
|
948 |
+
content: "\F142";
|
|
|
|
|
|
|
|
|
949 |
display: inline-block;
|
950 |
+
font: 400 20px/1 dashicons;
|
951 |
+
speak: none;
|
952 |
+
-webkit-font-smoothing: antialiased;
|
953 |
+
-moz-osx-font-smoothing: grayscale;
|
954 |
+
text-decoration: none !important;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
955 |
}
|
956 |
+
|
957 |
+
.wapk-feed-docs .postbox.closed .toggle-indicator:before {
|
958 |
+
content: "\F140";
|
|
|
|
|
959 |
}
|
960 |
+
|
961 |
+
.wapk-feed-docs .postbox li {
|
962 |
+
width: 100%;
|
963 |
+
display: block;
|
964 |
+
float: left;
|
965 |
}
|
966 |
+
|
967 |
+
.wapk-feed-docs .postbox li span, .wapk-feed-docs .postbox li a {
|
968 |
+
display: inline-block;
|
969 |
+
float: left;
|
970 |
}
|
971 |
+
|
972 |
+
.wapk-feed-docs .postbox li span {
|
973 |
+
margin-right: 4px;
|
|
|
|
|
|
|
|
|
|
|
974 |
}
|
975 |
+
|
976 |
+
.wapk-feed-docs .postbox li a {
|
977 |
+
width: calc(100% - 24px);
|
978 |
+
}
|
979 |
+
|
980 |
+
.wapk-section #post-body.columns-2 #side-sortables {
|
981 |
+
min-height: 196px;
|
982 |
+
}
|
983 |
+
|
984 |
+
#poststuff #feed_merchant_info .inside {
|
985 |
+
margin: 0;
|
986 |
+
padding: 0;
|
987 |
+
}
|
988 |
+
|
989 |
+
#feed_merchant_info ul.data {
|
990 |
+
margin-left: 24px;
|
991 |
+
margin-top: 5px;
|
992 |
+
}
|
993 |
+
|
994 |
+
#feed_merchant_info ul.data li {
|
995 |
+
margin-bottom: 5px;
|
996 |
+
}
|
997 |
+
|
998 |
+
.merchant-info-section {
|
999 |
+
padding: 6px 10px 8px;
|
1000 |
+
}
|
1001 |
+
|
1002 |
+
.generateFeed .wf-tab-content table:first-child {
|
1003 |
+
border: none;
|
1004 |
+
box-shadow: none;
|
1005 |
+
}
|
1006 |
+
|
1007 |
+
.generateFeed table th {
|
1008 |
+
font-weight: bold;
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
/** Admin Feed Help Docs **/
|
1012 |
+
.wp-submenu li span.woo-feed-docs {
|
1013 |
+
font-weight: bold;
|
1014 |
+
color: #f18500;
|
1015 |
+
}
|
1016 |
+
|
1017 |
+
.wp-submenu li:hover span.woo-feed-docs,
|
1018 |
+
.wp-submenu li.current span.woo-feed-docs {
|
1019 |
+
color: #ce7304;
|
1020 |
+
}
|
1021 |
+
|
1022 |
+
.wapk-admin .wapk-feed-docs .postbox .hndle {
|
1023 |
+
cursor: default;
|
1024 |
+
}
|
1025 |
+
|
1026 |
+
|
1027 |
+
/** Admin Call-To-Action **/
|
1028 |
+
.wapk-cta {
|
1029 |
+
position: relative;
|
1030 |
+
display: flex;
|
1031 |
+
width: 100%;
|
1032 |
+
padding: 100px 15px;
|
1033 |
+
background: linear-gradient(45deg, #6CD5FF 33%, #c2efef 100%);
|
1034 |
+
justify-content: center;
|
1035 |
+
align-items: center;
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
.wapk-cta-icon .dashicons {
|
1039 |
+
font-size: 100px;
|
1040 |
+
width: 100px;
|
1041 |
+
height: auto;
|
1042 |
+
margin: 0 10px -8px 0;
|
1043 |
+
color: #02658c;
|
1044 |
+
}
|
1045 |
+
|
1046 |
+
.wapk-cta-content {
|
1047 |
+
width: 50%;
|
1048 |
+
}
|
1049 |
+
|
1050 |
+
.wapk-cta-content h2 {
|
1051 |
+
font-size: 2em;
|
1052 |
+
margin: 0.5em 0;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
.wapk-cta-action {
|
1056 |
+
}
|
1057 |
+
|
1058 |
+
.wapk-cta-action a.wapk-button {
|
1059 |
+
font-size: 24px;
|
1060 |
+
height: auto !important;
|
1061 |
+
padding: 10px 20px;
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
@media (max-width: 600px) {
|
1065 |
+
.wapk-cta {
|
1066 |
+
display: block;
|
1067 |
+
text-align: center;
|
1068 |
+
padding: 4em 0;
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
.wapk-cta-content {
|
1072 |
+
width: 100%;
|
1073 |
+
margin: 2em 0;
|
1074 |
+
}
|
1075 |
+
}
|
1076 |
+
|
1077 |
+
/** Override .wp-core-ui .wapk-button styles with prefix .wapk-admin **/
|
1078 |
+
/* @TODO refactor with scss */
|
1079 |
+
/* Button Skin */
|
1080 |
+
.wapk-button,
|
1081 |
+
.wapk-button-secondary {
|
1082 |
+
color: #00D4D4;
|
1083 |
+
border-color: #00D4D4;
|
1084 |
+
}
|
1085 |
+
|
1086 |
+
.wapk-button,
|
1087 |
+
.wapk-button-primary,
|
1088 |
+
.wapk-button-secondary {
|
1089 |
+
display: inline-block;
|
1090 |
+
text-decoration: none;
|
1091 |
+
font-size: 13px;
|
1092 |
+
line-height: 2.15384615;
|
1093 |
+
min-height: 30px;
|
1094 |
+
margin: 0;
|
1095 |
+
padding: 0 10px;
|
1096 |
+
cursor: pointer;
|
1097 |
+
border-width: 1px;
|
1098 |
+
border-style: solid;
|
1099 |
+
-webkit-appearance: none;
|
1100 |
+
border-radius: 3px;
|
1101 |
+
white-space: nowrap;
|
1102 |
+
box-sizing: border-box;
|
1103 |
+
}
|
1104 |
+
|
1105 |
+
.wapk-button > svg,
|
1106 |
+
.wapk-button-secondary > svg {
|
1107 |
+
width: 15px;
|
1108 |
+
margin-left: 5px;
|
1109 |
+
fill: #00D4D4;
|
1110 |
+
}
|
1111 |
+
|
1112 |
+
.wapk-button > .dashicons,
|
1113 |
+
.wapk-button-secondary > .dashicons {
|
1114 |
+
color: #00D4D4;
|
1115 |
+
}
|
1116 |
+
|
1117 |
+
.wapk-button.hover,
|
1118 |
+
.wapk-button:hover,
|
1119 |
+
.wapk-button-secondary:hover,
|
1120 |
+
.wapk-button.focus,
|
1121 |
+
.wapk-button:focus,
|
1122 |
+
.wapk-button-secondary:focus {
|
1123 |
+
border-color: #00bbbb;
|
1124 |
+
color: #00bbbb;
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
.wapk-button.hover > svg,
|
1128 |
+
.wapk-button:hover > svg,
|
1129 |
+
.wapk-button-secondary:hover > svg,
|
1130 |
.wapk-button.focus > svg,
|
1131 |
.wapk-button:focus > svg,
|
1132 |
.wapk-button-secondary:focus > svg {
|
1133 |
fill: #00bbbb;
|
1134 |
}
|
1135 |
+
|
1136 |
.wapk-button.hover > .dashicons,
|
1137 |
.wapk-button:hover > .dashicons,
|
1138 |
.wapk-button-secondary:hover > .dashicons,
|
1141 |
.wapk-button-secondary:focus > .dashicons {
|
1142 |
color: #00bbbb;
|
1143 |
}
|
1144 |
+
|
1145 |
.wapk-button.focus,
|
1146 |
.wapk-button:focus,
|
1147 |
.wapk-button-secondary:focus {
|
1149 |
color: #00bbbb;
|
1150 |
box-shadow: 0 0 0 1px #00D4D4;
|
1151 |
}
|
1152 |
+
|
1153 |
.wapk-button.focus > svg,
|
1154 |
.wapk-button:focus > svg,
|
1155 |
.wapk-button-secondary:focus > svg {
|
1156 |
fill: #00bbbb;
|
1157 |
}
|
1158 |
+
|
1159 |
.wapk-button.focus > .dashicons,
|
1160 |
.wapk-button:focus > .dashicons,
|
1161 |
.wapk-button-secondary:focus > .dashicons {
|
1162 |
color: #00bbbb;
|
1163 |
}
|
1164 |
+
|
1165 |
.wapk-button:active {
|
1166 |
background: #00bbbb;
|
1167 |
border-color: #00bbbb;
|
1168 |
}
|
1169 |
+
|
1170 |
.wapk-button.active,
|
1171 |
.wapk-button.active:focus,
|
1172 |
.wapk-button.active:hover {
|
1174 |
color: #00bbbb;
|
1175 |
box-shadow: inset 0 2px 5px -3px #00bbbb;
|
1176 |
}
|
1177 |
+
|
1178 |
.wapk-button.active > svg,
|
1179 |
.wapk-button.active:focus > svg,
|
1180 |
.wapk-button.active:hover > svg {
|
1181 |
fill: #00bbbb;
|
1182 |
}
|
1183 |
+
|
1184 |
.wapk-button.active > .dashicons,
|
1185 |
.wapk-button.active:focus > .dashicons,
|
1186 |
.wapk-button.active:hover > .dashicons {
|
1187 |
color: #00bbbb;
|
1188 |
}
|
1189 |
+
|
1190 |
.wapk-button-primary {
|
1191 |
background: #00D4D4;
|
1192 |
border-color: #00D4D4;
|
1193 |
color: #fff;
|
|
|
1194 |
box-shadow: 0 1px 0 #00bbbb;
|
1195 |
text-shadow: 0 -1px 1px #00bbbb, 1px 0 1px #00bbbb, 0 1px 1px #00bbbb, -1px 0 1px #00bbbb;
|
1196 |
}
|
1197 |
+
|
1198 |
.wapk-button-primary > svg {
|
1199 |
fill: #fff;
|
1200 |
}
|
1201 |
+
|
1202 |
+
.wapk-button-primary:hover, .wapk-button-primary:focus {
|
1203 |
background: #00e3e3;
|
1204 |
border-color: #00c5c5;
|
1205 |
color: #fff;
|
1206 |
}
|
1207 |
+
|
1208 |
+
.wapk-button-primary:hover > svg, .wapk-button-primary:focus > svg {
|
1209 |
fill: #fff;
|
1210 |
}
|
1211 |
+
|
1212 |
.wapk-button-primary:focus {
|
1213 |
box-shadow: 0 0 0 1px #fff, 0 0 0 3px #00D4D4;
|
1214 |
}
|
1215 |
+
|
1216 |
.wapk-button-primary:active {
|
1217 |
background: #00bbbb;
|
1218 |
border-color: #00bbbb;
|
1219 |
color: #fff;
|
1220 |
}
|
1221 |
+
|
1222 |
.wapk-button-primary:active > svg {
|
1223 |
fill: #fff;
|
1224 |
}
|
1225 |
+
|
1226 |
+
.wapk-button-primary.active, .wapk-button-primary.active:focus, .wapk-button-primary.active:hover {
|
|
|
1227 |
background: #00D4D4;
|
1228 |
color: #fff;
|
1229 |
border-color: #008888;
|
1230 |
box-shadow: inset 0 2px 5px -3px black;
|
1231 |
}
|
1232 |
+
|
1233 |
+
.wapk-button-primary.active > svg, .wapk-button-primary.active:focus > svg, .wapk-button-primary.active:hover > svg {
|
|
|
1234 |
fill: #fff;
|
1235 |
}
|
1236 |
+
|
1237 |
+
.wapk-button-primary[disabled], .wapk-button-primary:disabled, .wapk-button-primary.wapk-button-primary-disabled, .wapk-button-primary.disabled {
|
|
|
|
|
1238 |
color: #c7d1d1 !important;
|
1239 |
background: #22ffff !important;
|
1240 |
border-color: #22ffff !important;
|
1241 |
text-shadow: none !important;
|
1242 |
}
|
1243 |
+
|
1244 |
+
.wapk-button-primary[disabled] > svg, .wapk-button-primary:disabled > svg, .wapk-button-primary.wapk-button-primary-disabled > svg, .wapk-button-primary.disabled > svg {
|
|
|
|
|
1245 |
fill: #c7d1d1 !important;
|
1246 |
}
|
1247 |
+
|
1248 |
.wapk-button.wapk-button-primary.wapk-button-hero {
|
1249 |
box-shadow: 0 2px 0 #00bbbb;
|
1250 |
}
|
1251 |
+
|
1252 |
.wapk-button.wapk-button-primary.wapk-button-hero:focus {
|
1253 |
box-shadow: 0 2px 0 #00bbbb, 0 1px 0 #00c5c5, 0 0 2px 1px #00eeee;
|
1254 |
}
|
1255 |
+
|
1256 |
+
.wapk-button.wapk-button-primary.wapk-button-hero.active, .wapk-button.wapk-button-primary.wapk-button-hero.active:hover, .wapk-button.wapk-button-primary.wapk-button-hero.active:focus, .wapk-button.wapk-button-primary.wapk-button-hero:active {
|
|
|
|
|
1257 |
box-shadow: inset 0 3px 0 #00a1a1;
|
1258 |
}
|
1259 |
+
|
1260 |
.wapk-button-group > .wapk-button.active {
|
1261 |
border-color: #00D4D4;
|
1262 |
}
|
1268 |
line-height: 28px;
|
1269 |
padding: 0 12px 2px;
|
1270 |
}
|
1271 |
+
|
1272 |
.wapk-button.wapk-button-hero,
|
1273 |
.wapk-button-group.wapk-button-hero .wapk-button {
|
1274 |
font-size: 18px;
|
1279 |
}
|
1280 |
|
1281 |
@media screen and (min-width: 782px) {
|
1282 |
+
th#status {
|
1283 |
+
width: 80px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1284 |
}
|
|
|
|
|
|
|
1285 |
|
1286 |
+
th#provider {
|
1287 |
+
width: 80px;
|
1288 |
+
}
|
1289 |
|
1290 |
+
th#type {
|
1291 |
+
width: 50px;
|
1292 |
+
}
|
1293 |
|
1294 |
+
th#option_name {
|
1295 |
+
width: 100px;
|
1296 |
+
}
|
1297 |
|
1298 |
+
td.option_name.column-option_name > span:first-child {
|
1299 |
+
display: none;
|
1300 |
+
}
|
1301 |
|
1302 |
+
th#last_updated {
|
1303 |
+
width: 90px;
|
1304 |
+
}
|
1305 |
|
1306 |
+
th#view {
|
1307 |
+
width: 90px;
|
1308 |
+
}
|
1309 |
+
}
|
1310 |
|
1311 |
+
@media screen and (min-width: 960px) {
|
1312 |
+
th#status, th#provider, th#view {
|
1313 |
+
width: 100px;
|
1314 |
+
}
|
1315 |
|
1316 |
+
th#type {
|
1317 |
+
width: 80px;
|
1318 |
+
}
|
1319 |
|
1320 |
+
th#option_name {
|
1321 |
+
width: 150px;
|
1322 |
+
}
|
1323 |
|
1324 |
+
th#last_updated {
|
1325 |
+
width: 140px;
|
1326 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1327 |
}
|
1328 |
|
1329 |
+
@media screen and (max-width: 782px) {
|
1330 |
+
table.wf-info-table {
|
1331 |
+
margin-top: 10px;
|
1332 |
+
}
|
1333 |
|
1334 |
+
table.wf-info-table th:first-child img {
|
1335 |
+
margin: 0 auto;
|
1336 |
+
display: block;
|
1337 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1338 |
|
1339 |
+
.wapk-button.wapk-button-xl {
|
1340 |
+
padding: 6px 14px;
|
1341 |
+
line-height: normal;
|
1342 |
+
font-size: 14px;
|
1343 |
+
vertical-align: middle;
|
1344 |
+
height: auto;
|
1345 |
+
margin-bottom: 4px;
|
1346 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1347 |
}
|
1348 |
|
1349 |
+
.wapk-feed-docs .wapk-feed-cta {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1350 |
margin: 0;
|
1351 |
}
|
1352 |
|
1353 |
+
form.campaign_configurator {
|
1354 |
+
background: #FFF;
|
1355 |
+
padding: 20px 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1356 |
}
|
1357 |
|
1358 |
+
.campaign_configurator table {
|
1359 |
+
margin: 0 auto;
|
1360 |
+
width: 51%;
|
1361 |
+
min-width: 574px;
|
1362 |
+
border: none;
|
1363 |
+
box-shadow: none;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1364 |
}
|
1365 |
|
1366 |
+
.campaign_configurator th {
|
1367 |
+
min-width: 120px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1368 |
}
|
1369 |
|
1370 |
+
@media screen and (max-width: 782px) {
|
1371 |
+
form.campaign_configurator {
|
1372 |
+
padding: 0;
|
1373 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1374 |
|
1375 |
+
.campaign_configurator table {
|
1376 |
+
width: auto;
|
1377 |
+
min-width: auto;
|
1378 |
+
max-width: 100%;
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
.campaign_configurator th {
|
1382 |
+
min-width: auto;
|
1383 |
+
}
|
1384 |
}
|
1385 |
|
1386 |
+
|
1387 |
+
#wf-tab-content-config td > input:not([type="checkbox"]):not([type="radio"]),
|
1388 |
+
#wf-tab-content-config td > select,
|
1389 |
+
#wf-tab-content-config td > textarea {
|
1390 |
+
width: 100% !important;
|
1391 |
}
|
1392 |
|
1393 |
+
.woo-feed-filters td > div:nth-child(2n):not(.clear):not(.selectize) {
|
1394 |
+
width: 120px;
|
1395 |
+
display: block;
|
1396 |
}
|
1397 |
|
1398 |
+
.woo-feed-filters,
|
1399 |
+
.woo-feed-ftp {
|
1400 |
+
margin: 15px auto 25px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1401 |
}
|
1402 |
|
1403 |
+
.woo-feed-filters tr > td:first-child {
|
1404 |
+
width: 290px;
|
1405 |
+
padding-left: 40px;
|
|
|
|
|
|
|
|
|
|
|
1406 |
}
|
1407 |
+
|
1408 |
+
.woo-feed-filters td > div:not(.clear) {
|
1409 |
+
float: left;
|
1410 |
+
margin-right: 10px;
|
1411 |
}
|
admin/css/woo-feed-admin.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.wpf_spin,.wpf_spin_reverse{-webkit-animation:spin 1000ms infinite linear;animation:spin 1000ms infinite linear}.wpf_spin_reverse{animation-direction:reverse}.wpf_regenerate.disabled{color:#737373;box-shadow:none;cursor:not-allowed}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.wfbtn{background:#3498db;background-image:-webkit-linear-gradient(top,#3498db,#2980b9);background-image:-moz-linear-gradient(top,#3498db,#2980b9);background-image:-ms-linear-gradient(top,#3498db,#2980b9);background-image:-o-linear-gradient(top,#3498db,#2980b9);background-image:linear-gradient(to bottom,#3498db,#2980b9);-webkit-border-radius:17px;-moz-border-radius:17px;border-radius:17px;-webkit-box-shadow:0 1px 3px #666;-moz-box-shadow:0 1px 3px #666;box-shadow:0 1px 3px #666;font-family:Arial,sans-serif;color:#fff;font-size:20px;padding:10px 20px;border:solid #2b698f 3px;text-decoration:none}.wftooltip{display:none;position:absolute;border:1px solid #333;background-color:#161616;border-radius:5px;padding:10px;color:#fff;font-size:12px}.wfbtn:hover{background:#3cb0fd;background-image:-webkit-linear-gradient(top,#3cb0fd,#3498db);background-image:-moz-linear-gradient(top,#3cb0fd,#3498db);background-image:-ms-linear-gradient(top,#3cb0fd,#3498db);background-image:-o-linear-gradient(top,#3cb0fd,#3498db);background-image:linear-gradient(to bottom,#3cb0fd,#3498db);text-decoration:none}.makeFeedResponse{width:70%;color:green}.woo-feed-mapping-input{width:100%}.requiredIn{color:red}.generalInput{width:200px}.generalInput:not(.selectize-control){margin:5px auto}.error{color:red}.widefat td select,.widefat td input{max-width:100%}#wf_newRow{margin-left:0}.mtable tbody tr{height:25px;border:1px solid #CCC;text-align:left;align-items:baseline;font-weight:700}.mtable th:nth-child(1){width:17px}.mtable th:nth-child(2){width:160px}.mtable th:nth-child(3){width:100px}.mtable th:nth-child(4){width:100px}.mtable th:nth-child(5){width:150px}.mtable th:nth-child(6){width:100px}.mtable th:nth-child(7){width:150px}.mtable th:nth-child(8){width:90px}.mtable th:nth-child(9){width:29px}.wp-admin select.wf_mattributes,.wf_mattributes{width:150px;left:0;height:25px}div#wf-tab-content1 select:not([name^="output_type"]),div#wf-tab-content1 input{width:100%}div#wf-tab-content1 .dashicons{vertical-align:middle}.wf_attributes{width:150px;left:0}.wf_compare{max-width:245px;left:0}.wf_ps{width:100px;left:0}.wf_sortedtable{cursor:move}.sorted_table{position:relative}.sorted_table .dragged{position:absolute;opacity:.8;z-index:9999;background:#fff;width:100%;display:table}.sorted_table tbody tr.placeholder td{border:1px dashed #2cc185;height:46px}.mtable2 tbody tr{height:25px;border:1px solid #CCC;text-align:left;align-items:baseline;font-weight:700}.mtable2 th:nth-child(1){width:30px}.mtable2 th:nth-child(2){width:150px}.mtable2 th:nth-child(3){width:230px}.mtable2 th:nth-child(4){width:220px}.mtable2 th:nth-child(7){width:50px}.mtable2 th:nth-child(8){width:50px}.mtable2 th:nth-child(9){width:29px}.wfnoempty{width:120px}p{color:#222}.wf_tabs{position:relative;margin:0 auto;width:100%;list-style:none}.wf_tabs:after{display:table;clear:both;content:""}.wf_tabs li{float:left;width:20%;display:block;border:2px solid #CCC}.wf_tabs li > input[type="radio"][name="wf_tabs"]{position:absolute;top:auto;left:-9999px}.wf-tab-name{display:block;padding:15px;font-size:15px;font-weight:700;line-height:1;background:#fff;cursor:pointer;position:relative;text-align:center;text-transform:uppercase;color:#2CC185}.wf-tab-name:hover{background:#2CC185;color:#fff}.wf_tabs [id^="tab"]:checked + label{background:#2CC185;color:#fff}.wf_tabs .wf-tab-content{z-index:2;display:none;width:100%;font-size:.9rem;position:absolute;left:0;background:#fff;border:2px solid #CCC}.wf_tabs [id^="tab"]:checked ~ [id^="wf-tab-content"]{display:block}[id^="wf-tab-content"]{margin-bottom:40px}div#wf-tab-content2 table:first-child{padding:10px 0}div#wf-tab-content2 table:first-child td:nth-child(1){width:260px}div#wf-tab-content2 table:first-child td:nth-child(2){width:260px}table.feed-actions tr td:last-child{text-align:right}select.selectize{display:none}body.no-js select.selectize{display:block!important}.selectize-dropdown .active{background-color:#edf9ff}.selectize-dropdown .create{padding:5px 8px}.wapk-selectize-item{background:#0073aa!important;color:#f1f1f1!important;font-weight:700!important;border-color:#0073aa!important;padding-left:5px;padding-right:5px}.selectize-input.full #googleTaxonomyId-selectized{opacity:0;position:absolute;left:-10000px}.selectize-dropdown [data-selectable].option{cursor:default}.selectize-control.plugin-remove_button [data-value] .remove{border-left:1px solid #f1f1f1!important}.selectize-dropdown .optgroup-header{font-weight:700;background:#efefef;color:#5a5a5a}.selectize-dropdown [data-selectable].option{cursor:pointer}.wf_status_wrap label{width:50px;height:25px;box-sizing:border-box;border:1px solid;float:left;border-radius:100px;position:relative;cursor:pointer;transition:.3s ease}input[class=woo_feed_status_input]:checked + label{background:#55e868}input[class=woo_feed_status_input]:checked + label:before{left:25px}.wf_status_wrap label:before{transition:.3s ease;content:'';width:20px;height:20px;position:absolute;background:#fff;left:2px;top:2px;box-sizing:border-box;border:1px solid;color:#000;border-radius:100px}.widefat td.column-url,.widefat th.column-url,.column-url{color:#008779;font-weight:700}.feed-progress-container{width:100%;color:#fff;text-align:center;font-weight:300}.feed-progress-bar{width:100%;background:#eee;padding:3px;border-radius:3px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.feed-progress-bar-fill{height:20px;display:block;background:#3DC264;width:0;border-radius:3px;-webkit-transition:width .8s ease;transition:width .8s ease}.feed-progress-status{float:left;font-weight:700;color:#00008b}.feed-progress-percentage{text-align:right;font-weight:bolder;color:#41f49d;font-family:'Arial Black',sans-serif;font-size:large}#wpbody-content.woofeed-body-content{overflow:visible!important}.clippy{position:relative;width:13px;margin-top:-3px;margin-left:3px;top:3px}.column-url .clippy{display:none}.column-url:hover .clippy{display:inline-block}.tooltipped{position:relative}.tooltipped:after{position:absolute;z-index:1000000;display:none;padding:5px 8px;font:normal normal 11px/1.5 Helvetica,arial,nimbussansl,liberationsans,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol";color:#fff;text-align:center;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:rgba(0,0,0,.8);border-radius:3px;-webkit-font-smoothing:subpixel-antialiased}.tooltipped:before{position:absolute;z-index:1000001;display:none;width:0;height:0;color:rgba(0,0,0,.8);pointer-events:none;content:"";border:5px solid transparent}.tooltipped:hover:before,.tooltipped:hover:after,.tooltipped:active:before,.tooltipped:active:after,.tooltipped:focus:before,.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after,.tooltipped-multiline:active:after,.tooltipped-multiline:focus:after{display:table-cell}.tooltipped-s:after,.tooltipped-se:after,.tooltipped-sw:after{top:100%;right:50%;margin-top:5px}.tooltipped-s:before,.tooltipped-se:before,.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-se:after{right:auto;left:50%;margin-left:-15px}.tooltipped-sw:after{margin-right:-15px}.tooltipped-n:after,.tooltipped-ne:after,.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px}.tooltipped-n:before,.tooltipped-ne:before,.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-ne:after{right:auto;left:50%;margin-left:-15px}.tooltipped-nw:after{margin-right:-15px}.tooltipped-s:after,.tooltipped-n:after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%)}.tooltipped-w:before{top:50%;bottom:50%;left:-5px;margin-top:-5px;border-left-color:rgba(0,0,0,.8)}.tooltipped-e:after{bottom:50%;left:100%;margin-left:5px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%)}.tooltipped-e:before{top:50%;right:-5px;bottom:50%;margin-top:-5px;border-right-color:rgba(0,0,0,.8)}.tooltipped-multiline:after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-break:break-word;word-wrap:normal;white-space:pre-line;border-collapse:separate}.tooltipped-multiline.tooltipped-s:after,.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after,.tooltipped-multiline.tooltipped-e:after{right:100%}@media screen and (min-width: 0\0){.tooltipped-multiline:after{width:250px}}.tooltipped-sticky:before,.tooltipped-sticky:after{display:inline-block}.tooltipped-sticky.tooltipped-multiline:after{display:table-cell}.fullscreen-overlay-enabled.dark-theme .tooltipped:after{color:#000;background:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-s:before,.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-se:before,.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-sw:before{border-bottom-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-n:before,.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-ne:before,.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-nw:before{border-top-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-e:before{border-right-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-w:before{border-left-color:rgba(255,255,255,.8)}ul.tracker_collection_list{list-style:initial;padding:initial;margin:-10px 0 0 30px;font-size:11px!important}ul.tracker_collection_list li{margin:0}table.wf-info-table th,table.wf-rate-table th{vertical-align:middle;text-align:center;max-width:100%;font-weight:500}table.wf-info-table th strong,table.wf-rate-table th strong{font-weight:700}table.wf-info-table th:first-child img{margin:0 0 -5px 5px}table.wf-rate-table a{color:#0073aa}table.wf-rate-table a.review-star:after{content:"\f155\f155\f155\f155\f155"!important;font-family:dashicons;font-size:10px;font-weight:100;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#0073aa;text-decoration:underline}#adminmenu #toplevel_page_webappick-manage-feeds div.wp-menu-image::before{content:"";background:url(../images/woo-feed-icon.svg) no-repeat center center;background-size:20px 20px;opacity:.6;filter:alpha(opacity=60)}#adminmenu #toplevel_page_webappick-manage-feeds:hover div.wp-menu-image::before,#adminmenu #toplevel_page_webappick-manage-feeds.wp-has-current-submenu div.wp-menu-image::before{opacity:1;filter:alpha(opacity=100)}.wapk-admin,.wapk-admin *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wapk-admin{position:relative;display:block;-webkit-hyphens:manual;-ms-hyphens:manual;hyphens:manual;color:#1B2730;margin:0 0 0 -10px}@media screen and (min-width: 783px){.wapk-admin{margin:0 0 0 -20px}}.wapk-admin h1,.wapk-admin h2,.wapk-admin h3,.wapk-admin h4,.wapk-admin h5,.wapk-admin h6,.wapk-admin p{color:#1B2730}.text-center{text-align:center}.wapk-admin sup{vertical-align:baseline;position:relative;top:-6px}.wapk-admin sub{vertical-align:baseline;position:relative;top:4px}.wapk-admin .wapk-section [class$=icon32] + h2,.wapk-admin .wapk-section h1,.wapk-admin .wapk-section > h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:1.3}.wapk-admin .wapk-section,.wapk-admin > .notice{margin:10px 20px 0 22px;position:relative;display:block}.clear:after{content:"";display:table;clear:both}.wapk-admin span.help{display:block;float:left;width:100%;font-size:.9em;color:#636363;margin-top:5px;font-weight:500}.wapk-admin span.help .dashicons{width:11px;height:12px;font-size:inherit;vertical-align:middle}.wapk-feed-docs .postbox{width:355px;margin-right:20px;display:inline-block;vertical-align:top}@media only screen and (max-width: 850px){.wapk-feed-docs .postbox{display:block;width:auto;float:none;margin-right:auto}}.wapk-feed-docs .postbox .hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;cursor:pointer}.wapk-feed-docs .postbox .dashicons{color:#ccc}.wapk-feed-docs .postbox a{text-decoration:none}.wapk-feed-docs .postbox .inside,.wapk-feed-docs .postbox ul{margin-bottom:0}.wapk-feed-docs .postbox .toggle-indicator:before{content:"\F142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.wapk-feed-docs .postbox.closed .toggle-indicator:before{content:"\F140"}.wapk-feed-docs .postbox li{width:100%;display:block;float:left}.wapk-feed-docs .postbox li span,.wapk-feed-docs .postbox li a{display:inline-block;float:left}.wapk-feed-docs .postbox li span{margin-right:4px}.wapk-feed-docs .postbox li a{width:calc(100% - 24px)}.wapk-section #post-body.columns-2 #side-sortables{min-height:196px}#poststuff #feed_merchant_info .inside{margin:0;padding:0}#feed_merchant_info ul.data{margin-left:24px;margin-top:5px}#feed_merchant_info ul.data li{margin-bottom:5px}.merchant-info-section{padding:6px 10px 8px}.generateFeed .wf-tab-content table:first-child{border:none;box-shadow:none}.generateFeed table th{font-weight:700}.wp-submenu li span.woo-feed-docs{font-weight:700;color:#f18500}.wp-submenu li:hover span.woo-feed-docs,.wp-submenu li.current span.woo-feed-docs{color:#ce7304}.wapk-admin .wapk-feed-docs .postbox .hndle{cursor:default}.wapk-cta{position:relative;display:flex;width:100%;padding:100px 15px;background:linear-gradient(45deg,#6CD5FF 33%,#c2efef 100%);justify-content:center;align-items:center}.wapk-cta-icon .dashicons{font-size:100px;width:100px;height:auto;margin:0 10px -8px 0;color:#02658c}.wapk-cta-content{width:50%}.wapk-cta-content h2{font-size:2em;margin:.5em 0}.wapk-cta-action a.wapk-button{font-size:24px;height:auto!important;padding:10px 20px}@media (max-width: 600px){.wapk-cta{display:block;text-align:center;padding:4em 0}.wapk-cta-content{width:100%;margin:2em 0}}.wapk-button,.wapk-button-secondary{color:#00D4D4;border-color:#00D4D4}.wapk-button,.wapk-button-primary,.wapk-button-secondary{display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.wapk-button > svg,.wapk-button-secondary > svg{width:15px;margin-left:5px;fill:#00D4D4}.wapk-button > .dashicons,.wapk-button-secondary > .dashicons{color:#00D4D4}.wapk-button.hover,.wapk-button:hover,.wapk-button-secondary:hover,.wapk-button.focus,.wapk-button:focus,.wapk-button-secondary:focus{border-color:#0bb;color:#0bb}.wapk-button.hover > svg,.wapk-button:hover > svg,.wapk-button-secondary:hover > svg,.wapk-button.focus > svg,.wapk-button:focus > svg,.wapk-button-secondary:focus > svg{fill:#0bb}.wapk-button.hover > .dashicons,.wapk-button:hover > .dashicons,.wapk-button-secondary:hover > .dashicons,.wapk-button.focus > .dashicons,.wapk-button:focus > .dashicons,.wapk-button-secondary:focus > .dashicons{color:#0bb}.wapk-button.focus,.wapk-button:focus,.wapk-button-secondary:focus{border-color:#00D4D4;color:#0bb;box-shadow:0 0 0 1px #00D4D4}.wapk-button.focus > svg,.wapk-button:focus > svg,.wapk-button-secondary:focus > svg{fill:#0bb}.wapk-button.focus > .dashicons,.wapk-button:focus > .dashicons,.wapk-button-secondary:focus > .dashicons{color:#0bb}.wapk-button:active{background:#0bb;border-color:#0bb}.wapk-button.active,.wapk-button.active:focus,.wapk-button.active:hover{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active > svg,.wapk-button.active:focus > svg,.wapk-button.active:hover > svg{fill:#0bb}.wapk-button.active > .dashicons,.wapk-button.active:focus > .dashicons,.wapk-button.active:hover > .dashicons{color:#0bb}.wapk-button-primary{background:#00D4D4;border-color:#00D4D4;color:#fff;box-shadow:0 1px 0 #0bb;text-shadow:0 -1px 1px #00bbbb,1px 0 1px #00bbbb,0 1px 1px #00bbbb,-1px 0 1px #0bb}.wapk-button-primary > svg{fill:#fff}.wapk-button-primary:hover,.wapk-button-primary:focus{background:#00e3e3;border-color:#00c5c5;color:#fff}.wapk-button-primary:hover > svg,.wapk-button-primary:focus > svg{fill:#fff}.wapk-button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #00D4D4}.wapk-button-primary:active{background:#0bb;border-color:#0bb;color:#fff}.wapk-button-primary:active > svg{fill:#fff}.wapk-button-primary.active,.wapk-button-primary.active:focus,.wapk-button-primary.active:hover{background:#00D4D4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active > svg,.wapk-button-primary.active:focus > svg,.wapk-button-primary.active:hover > svg{fill:#fff}.wapk-button-primary[disabled],.wapk-button-primary:disabled,.wapk-button-primary.wapk-button-primary-disabled,.wapk-button-primary.disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary[disabled] > svg,.wapk-button-primary:disabled > svg,.wapk-button-primary.wapk-button-primary-disabled > svg,.wapk-button-primary.disabled > svg{fill:#c7d1d1!important}.wapk-button.wapk-button-primary.wapk-button-hero{box-shadow:0 2px 0 #0bb}.wapk-button.wapk-button-primary.wapk-button-hero:focus{box-shadow:0 2px 0 #00bbbb,0 1px 0 #00c5c5,0 0 2px 1px #0ee}.wapk-button.wapk-button-primary.wapk-button-hero.active,.wapk-button.wapk-button-primary.wapk-button-hero.active:hover,.wapk-button.wapk-button-primary.wapk-button-hero.active:focus,.wapk-button.wapk-button-primary.wapk-button-hero:active{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-group > .wapk-button.active{border-color:#00D4D4}.wapk-button.wapk-button-xl,.wapk-button-group.wapk-button-xl .wapk-button{height:30px;line-height:28px;padding:0 12px 2px}.wapk-button.wapk-button-hero,.wapk-button-group.wapk-button-hero .wapk-button{font-size:18px;height:50px;line-height:48px;padding:0 36px;min-height:46px}@media screen and (min-width: 782px){th#status{width:80px}th#provider{width:80px}th#type{width:50px}th#option_name{width:100px}td.option_name.column-option_name > span:first-child{display:none}th#last_updated{width:90px}th#view{width:90px}}@media screen and (min-width: 960px){th#status,th#provider,th#view{width:100px}th#type{width:80px}th#option_name{width:150px}th#last_updated{width:140px}}@media screen and (max-width: 782px){table.wf-info-table{margin-top:10px}table.wf-info-table th:first-child img{margin:0 auto;display:block}.wapk-button.wapk-button-xl{padding:6px 14px;line-height:normal;font-size:14px;vertical-align:middle;height:auto;margin-bottom:4px}}.wapk-feed-docs .wapk-feed-cta{margin:0}form.campaign_configurator{background:#FFF;padding:20px 0}.campaign_configurator table{margin:0 auto;width:51%;min-width:574px;border:none;box-shadow:none}.campaign_configurator th{min-width:120px}@media screen and (max-width: 782px){form.campaign_configurator{padding:0}.campaign_configurator table{width:auto;min-width:auto;max-width:100%}.campaign_configurator th{min-width:auto}}#wf-tab-content-config td > input:not([type="checkbox"]):not([type="radio"]),#wf-tab-content-config td > select,#wf-tab-content-config td > textarea{width:100%!important}.woo-feed-filters td > div:nth-child(2n):not(.clear):not(.selectize){width:120px;display:block}.woo-feed-filters,.woo-feed-ftp{margin:15px auto 25px}.woo-feed-filters tr > td:first-child{width:290px;padding-left:40px}.woo-feed-filters td > div:not(.clear){float:left;margin-right:10px}
|
admin/js/fancy-select.js
ADDED
@@ -0,0 +1,442 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**!
|
2 |
+
* WooFeed Fancy Select
|
3 |
+
* @version 1.0.0
|
4 |
+
* @copyright 2020 WebAppick
|
5 |
+
* @author Kudratullah <mhamudul.hk@gmail.com>
|
6 |
+
*/
|
7 |
+
(function ($, window, document ) {
|
8 |
+
"use strict";
|
9 |
+
/**
|
10 |
+
* FancySelect Constructor
|
11 |
+
* @param {jQuery|HTMLElement} $select
|
12 |
+
* @param {Object} [options]
|
13 |
+
* @constructor
|
14 |
+
*/
|
15 |
+
let FancySelect = function ( $select, options ) {
|
16 |
+
let self = this,
|
17 |
+
defaults = {
|
18 |
+
options: [],
|
19 |
+
optgroups: [],
|
20 |
+
items: [],
|
21 |
+
placeholder: '',
|
22 |
+
delimiter: ',',
|
23 |
+
splitOn: null,
|
24 |
+
persist: !0,
|
25 |
+
diacritics: !0,
|
26 |
+
create: !1,
|
27 |
+
createOnBlur: !1,
|
28 |
+
createFilter: null,
|
29 |
+
highlight: !0,
|
30 |
+
openOnFocus: !0,
|
31 |
+
maxOptions: 1e3,
|
32 |
+
maxItems: null,
|
33 |
+
maxItemShow: 3,
|
34 |
+
hideSelected: null,
|
35 |
+
addPrecedence: !1,
|
36 |
+
selectOnTab: !1,
|
37 |
+
preload: !1,
|
38 |
+
allowEmptyOption: !1,
|
39 |
+
closeAfterSelect: !1,
|
40 |
+
scrollDuration: 60,
|
41 |
+
loadThrottle: 300,
|
42 |
+
loadingClass: "loading",
|
43 |
+
dataAttr: "data-data",
|
44 |
+
optgroupField: "optgroup",
|
45 |
+
valueField: "value",
|
46 |
+
labelField: "text",
|
47 |
+
disabledField: "disabled",
|
48 |
+
optgroupLabelField: "label",
|
49 |
+
optgroupValueField: "value",
|
50 |
+
lockOptgroupOrder: !1,
|
51 |
+
sortField: "$order",
|
52 |
+
searchField: ["text"],
|
53 |
+
searchConjunction: "and",
|
54 |
+
mode: null,
|
55 |
+
wrapperClass: "selectize-control",
|
56 |
+
inputClass: "selectize-input",
|
57 |
+
dropdownClass: "selectize-dropdown",
|
58 |
+
dropdownContentClass: "selectize-dropdown-content",
|
59 |
+
dropdownParent: null,
|
60 |
+
copyClassesToDropdown: !0,
|
61 |
+
render: {}
|
62 |
+
},
|
63 |
+
settings = $.extend( true, {}, defaults, options ),
|
64 |
+
select = $select[0];
|
65 |
+
select.fancySelect = self;
|
66 |
+
self.order = 0;
|
67 |
+
let computedStyle = window.getComputedStyle && window.getComputedStyle( select, null );
|
68 |
+
let dir = computedStyle ? computedStyle.getPropertyValue('direction') : input.currentStyle && input.currentStyle.direction;
|
69 |
+
dir = dir || $select.parents('[dir]:first').attr('dir') || '';
|
70 |
+
self.computedStyle = computedStyle;
|
71 |
+
// for now, android support in general is too spotty to support validity
|
72 |
+
const SUPPORTS_VALIDITY_API = !/android/i.test(window.navigator.userAgent) && !!document.createElement('input').validity;
|
73 |
+
// helper (private) methods
|
74 |
+
const debounce = function(fn, delay) {
|
75 |
+
let timeout;
|
76 |
+
return function() {
|
77 |
+
let self = this;
|
78 |
+
let args = arguments;
|
79 |
+
window.clearTimeout(timeout);
|
80 |
+
timeout = window.setTimeout(function() {
|
81 |
+
fn.apply(self, args);
|
82 |
+
}, delay);
|
83 |
+
};
|
84 |
+
};
|
85 |
+
const hash_key = ( str ) => str + '';
|
86 |
+
let optionsMap = {};
|
87 |
+
const optHelper = {
|
88 |
+
readData: function($el) {
|
89 |
+
const data = self.dataAttr && $el.attr(self.dataAttr);
|
90 |
+
if (typeof data === 'string' && data.length) {
|
91 |
+
return JSON.parse(data);
|
92 |
+
}
|
93 |
+
return null;
|
94 |
+
},
|
95 |
+
addOption: function($option, group) {
|
96 |
+
$option = $($option);
|
97 |
+
|
98 |
+
const value = hash_key($option.val());
|
99 |
+
if (!value && !settings.allowEmptyOption) return;
|
100 |
+
|
101 |
+
// if the option already exists, it's probably been
|
102 |
+
// duplicated in another optgroup. in this case, push
|
103 |
+
// the current group to the "optgroup" property on the
|
104 |
+
// existing option so that it's rendered in both places.
|
105 |
+
if (optionsMap.hasOwnProperty(value)) {
|
106 |
+
if (group) {
|
107 |
+
const arr = optionsMap[value][field_optgroup];
|
108 |
+
if (!arr) {
|
109 |
+
optionsMap[value][field_optgroup] = group;
|
110 |
+
} else if (!$.isArray(arr)) {
|
111 |
+
optionsMap[value][field_optgroup] = [arr, group];
|
112 |
+
} else {
|
113 |
+
arr.push(group);
|
114 |
+
}
|
115 |
+
}
|
116 |
+
return;
|
117 |
+
}
|
118 |
+
|
119 |
+
var option = optHelper.readData($option) || {};
|
120 |
+
option[self.settings.labelField] = option[self.settings.labelField] || $option.text();
|
121 |
+
option[self.settings.valueField] = option[self.settings.valueField] || value;
|
122 |
+
option[self.settings.disabledField] = option[self.settings.disabledField] || $option.prop('disabled');
|
123 |
+
option[self.settings.optgroupField] = option[self.settings.optgroupField] || group;
|
124 |
+
option.$order = ++self.order;
|
125 |
+
|
126 |
+
optionsMap[value] = option;
|
127 |
+
self.settings.options.push(option);
|
128 |
+
|
129 |
+
if ($option.is(':selected')) {
|
130 |
+
self.settings.items.push(value);
|
131 |
+
}
|
132 |
+
},
|
133 |
+
addGroup: function($optgroup) {
|
134 |
+
var i, n, id, optgroup, $options;
|
135 |
+
|
136 |
+
$optgroup = $($optgroup);
|
137 |
+
id = $optgroup.attr('label');
|
138 |
+
|
139 |
+
if (id) {
|
140 |
+
optgroup = optHelper.readData($optgroup) || {};
|
141 |
+
optgroup[self.settings.optgroupLabelField] = id;
|
142 |
+
optgroup[self.settings.optgroupValueField] = id;
|
143 |
+
optgroup[self.settings.disabledField] = $optgroup.prop('disabled');
|
144 |
+
optgroup.$order = ++self.order;
|
145 |
+
self.settings.optgroups.push(optgroup);
|
146 |
+
}
|
147 |
+
|
148 |
+
$options = $('option', $optgroup);
|
149 |
+
for (i = 0, n = $options.length; i < n; i++) {
|
150 |
+
optHelper.addOption($options[i], id);
|
151 |
+
}
|
152 |
+
},
|
153 |
+
};
|
154 |
+
// setup default state
|
155 |
+
$.extend(self, {
|
156 |
+
settings : settings,
|
157 |
+
$select : $select,
|
158 |
+
tabIndex : $select.attr('tabindex') || '',
|
159 |
+
tagType : 1,
|
160 |
+
rtl : /rtl/i.test(dir),
|
161 |
+
multiple : $select.attr('multiple'),
|
162 |
+
eventNS : '.FancySelect' + (++FancySelect.count),
|
163 |
+
highlightedValue : null,
|
164 |
+
isBlurring : false,
|
165 |
+
isOpen : false,
|
166 |
+
isDisabled : false,
|
167 |
+
isRequired : $select.is('[required]'),
|
168 |
+
isInvalid : false,
|
169 |
+
isLocked : false,
|
170 |
+
isFocused : false,
|
171 |
+
isInputHidden : false,
|
172 |
+
isSetup : false,
|
173 |
+
isRendered : false,
|
174 |
+
isShiftDown : false,
|
175 |
+
isCmdDown : false,
|
176 |
+
isCtrlDown : false,
|
177 |
+
ignoreFocus : false,
|
178 |
+
ignoreBlur : false,
|
179 |
+
ignoreHover : false,
|
180 |
+
hasOptions : false,
|
181 |
+
currentResults : null,
|
182 |
+
lastValue : '',
|
183 |
+
caretPos : 0,
|
184 |
+
loading : 0,
|
185 |
+
loadedSearches : {},
|
186 |
+
|
187 |
+
$activeOption : null,
|
188 |
+
$activeItems : [],
|
189 |
+
|
190 |
+
optgroups : {},
|
191 |
+
options : {},
|
192 |
+
userOptions : {},
|
193 |
+
items : {},
|
194 |
+
renderCache : {},
|
195 |
+
onSearchChange : settings.loadThrottle === null ? self.onSearchChange : debounce(self.onSearchChange, settings.loadThrottle)
|
196 |
+
});
|
197 |
+
|
198 |
+
if ( '' === self.settings.placeholder ) {
|
199 |
+
self.settings.placeholder = $select.attr('placeholder') || $select.attr('data-placeholder');
|
200 |
+
if (!self.settings.placeholder && !self.settings.allowEmptyOption) {
|
201 |
+
self.settings.placeholder = $select.children('option[value=""]').text();
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
+
self.settings.maxItems = self.multiple ? null : 1;
|
206 |
+
|
207 |
+
for (let i = 0, n = self.$select.children().length; i < n; i++) {
|
208 |
+
let tagName = self.$select.children()[i].tagName.toLowerCase();
|
209 |
+
if (tagName === 'optgroup') {
|
210 |
+
optHelper.addGroup(self.$select.children()[i]);
|
211 |
+
} else if (tagName === 'option') {
|
212 |
+
optHelper.addOption(self.$select.children()[i]);
|
213 |
+
}
|
214 |
+
}
|
215 |
+
|
216 |
+
self.$wrapper = $('<div class="fancy-picker">').addClass( $select.attr('class') );
|
217 |
+
if ( self.computedStyle.hasOwnProperty('width') ) {
|
218 |
+
self.$wrapper.css( { width: self.computedStyle.width } );
|
219 |
+
}
|
220 |
+
self.$outputWrapper = $('<div class="fancy-picker-picked">').appendTo( self.$wrapper );
|
221 |
+
self.originalPlaceholder = $('<span class="fancy-picker-placeholder">').appendTo( self.$outputWrapper );
|
222 |
+
self.dataPlaceholder = $('<span class="fancy-picker-data">').appendTo( self.$outputWrapper );
|
223 |
+
self.dataCountPlaceholder = $('<span class="fancy-picker-count">').appendTo( self.$outputWrapper );
|
224 |
+
self.$dropdown = $('<div class="fancy-picker-ui">').appendTo( self.$wrapper );
|
225 |
+
self.$dropdownContent = $('<div class="fancy-picker-content">').appendTo( self.$dropdown );
|
226 |
+
|
227 |
+
self.setup();
|
228 |
+
};
|
229 |
+
FancySelect.count = 0;
|
230 |
+
|
231 |
+
// public methods
|
232 |
+
$.extend(FancySelect.prototype, {
|
233 |
+
/**
|
234 |
+
* Creates all elements and sets up event bindings.
|
235 |
+
*/
|
236 |
+
setup: function() {
|
237 |
+
let self = this;
|
238 |
+
self.revertSettings = {
|
239 |
+
$children : self.$select.children().detach(),
|
240 |
+
tabindex : self.$select.attr('tabindex')
|
241 |
+
};
|
242 |
+
self.$select.attr('tabindex', -1).hide().after(self.$wrapper);
|
243 |
+
self.$select.data('FancySelect', self);
|
244 |
+
self.$select.addClass('FancySelectInit');
|
245 |
+
self.settings.items.sort();
|
246 |
+
if ( self.preload ) {
|
247 |
+
self.render();
|
248 |
+
}
|
249 |
+
self.updatePlaceholder();
|
250 |
+
self.updateOriginalInput();
|
251 |
+
self.$wrapper.on( 'click'+ self.eventNS, '.fancy-picker-picked', function( e ) {
|
252 |
+
self.$select.trigger( 'show' );
|
253 |
+
if ( ! self.isRendered ) {
|
254 |
+
self.render();
|
255 |
+
}
|
256 |
+
self.$wrapper.toggleClass('active');
|
257 |
+
self.$select.trigger( 'shown' );
|
258 |
+
} );
|
259 |
+
$(document).on( 'click' + self.eventNS, function( e ) {
|
260 |
+
if(!$(e.target).closest(self.$wrapper).length) {
|
261 |
+
self.$select.trigger( 'hide' );
|
262 |
+
self.$wrapper.removeClass('active');
|
263 |
+
self.$select.trigger( 'hidden' );
|
264 |
+
}
|
265 |
+
});
|
266 |
+
self.$wrapper.on( 'click' + self.eventNS, '.fancy-picker-option:not(.disabled)', function( e ) {
|
267 |
+
e.preventDefault();
|
268 |
+
let current = $(this), selected = false, value = current.data('value');
|
269 |
+
if ( self.multiple ) {
|
270 |
+
if ( !current.hasClass( 'selected' ) ) {
|
271 |
+
selected = true;
|
272 |
+
current.addClass( 'selected' )
|
273 |
+
} else current.removeClass( 'selected' );
|
274 |
+
|
275 |
+
if ( selected ) {
|
276 |
+
self.settings.items.push( value );
|
277 |
+
} else {
|
278 |
+
self.settings.items = self.settings.items.filter( x => x != value );
|
279 |
+
}
|
280 |
+
self.settings.items.sort();
|
281 |
+
} else {
|
282 |
+
self.$dropdownContent.find('.fancy-picker-option').not(current).removeClass('selected');
|
283 |
+
current.addClass('selected');
|
284 |
+
selected = true;
|
285 |
+
self.settings.items = [ value ];
|
286 |
+
self.$wrapper.removeClass('active');
|
287 |
+
}
|
288 |
+
self.updatePlaceholder();
|
289 |
+
self.updateOriginalInput();
|
290 |
+
});
|
291 |
+
self.$select.trigger('initialize' );
|
292 |
+
},
|
293 |
+
updateOriginalInput: function( silent ) {
|
294 |
+
let self = this, options = [], changed = false;
|
295 |
+
silent = ( true === silent ) ? true : false;
|
296 |
+
for ( let i = 0, n = self.settings.items.length; i < n; i++) {
|
297 |
+
let selected = self.getSelectedOptionData( self.settings.items[i] );
|
298 |
+
if ( selected ) {
|
299 |
+
options.push('<option value="' + self.settings.items[i] + '" selected="selected">' + selected[self.settings.labelField] || '' + '</option>');
|
300 |
+
changed = true;
|
301 |
+
}
|
302 |
+
}
|
303 |
+
self.$select.html( options.join('') );
|
304 |
+
if ( ! silent && changed ) {
|
305 |
+
self.$select.trigger( 'change' );
|
306 |
+
}
|
307 |
+
},
|
308 |
+
render: function() {
|
309 |
+
let self = this;
|
310 |
+
let dropdownItems = [];
|
311 |
+
for ( let i = 0, n = self.settings.options.length; i < n; i++) {
|
312 |
+
let option = self.settings.options[i],
|
313 |
+
classes = self.isSelected( option[self.settings.valueField] ) ? 'fancy-picker-option selected' : 'fancy-picker-option';
|
314 |
+
dropdownItems.push( `<div class="${classes}" data-value="${option[self.settings.valueField]}">${option[self.settings.labelField]}</div>` );
|
315 |
+
}
|
316 |
+
self.$dropdownContent.html(dropdownItems.join(''));
|
317 |
+
self.$select.trigger( 'rendered' );
|
318 |
+
self.isRendered = true;
|
319 |
+
},
|
320 |
+
updatePlaceholder: function() {
|
321 |
+
let self = this;
|
322 |
+
|
323 |
+
self.originalPlaceholder.text( self.settings.placeholder );
|
324 |
+
if ( self.settings.items.length ) {
|
325 |
+
self.originalPlaceholder.hide();
|
326 |
+
} else {
|
327 |
+
self.originalPlaceholder.show();
|
328 |
+
}
|
329 |
+
let placeholderData = [];
|
330 |
+
let maxItemShow = self.settings.items.length > self.settings.maxItemShow ? self.settings.maxItemShow - 1 : self.settings.maxItemShow;
|
331 |
+
self.settings.items.slice( 0, maxItemShow ).forEach( item => {
|
332 |
+
let data = self.getSelectedOptionData( item );
|
333 |
+
if( data ) placeholderData.push( `<span>${data[self.settings.labelField]}</span>` );
|
334 |
+
});
|
335 |
+
self.dataPlaceholder.html(placeholderData.join( `<span class="fancy-picker-separator">${self.settings.delimiter}</span> ` ));
|
336 |
+
if( self.settings.items.length > self.settings.maxItemShow ) {
|
337 |
+
let title = [];
|
338 |
+
self.settings.items.forEach( item => {
|
339 |
+
let data = self.getSelectedOptionData( item );
|
340 |
+
if( data ) title.push( data[self.settings.labelField] );
|
341 |
+
});
|
342 |
+
self.dataCountPlaceholder.attr('title', title.join( self.settings.delimiter.trim() + ' ' ) );
|
343 |
+
self.dataCountPlaceholder.html( '+' + ( self.settings.items.length - maxItemShow ) + ' More …' )
|
344 |
+
} else {
|
345 |
+
self.dataCountPlaceholder.removeAttr( 'title' );
|
346 |
+
self.dataCountPlaceholder.html('');
|
347 |
+
}
|
348 |
+
self.$select.trigger( 'placeholderChanged' )
|
349 |
+
},
|
350 |
+
getSelectedOptionData: function( has_key ) {
|
351 |
+
let self = this;
|
352 |
+
let selected = self.settings.options.filter( (x)=> x[self.settings.valueField] == has_key );
|
353 |
+
return selected.length ? selected[0]: false;
|
354 |
+
},
|
355 |
+
isSelected: function( has_key ) {
|
356 |
+
let self = this;
|
357 |
+
return self.settings.items.filter( x => x == has_key ).length > 0;
|
358 |
+
},
|
359 |
+
/**
|
360 |
+
* Completely destroys the control and
|
361 |
+
* unbinds all event listeners so that it can
|
362 |
+
* be garbage collected.
|
363 |
+
*/
|
364 |
+
destroy: function() {
|
365 |
+
let self = this;
|
366 |
+
self.$select.trigger('destroy');
|
367 |
+
self.trigger('destroy');
|
368 |
+
self.off();
|
369 |
+
|
370 |
+
self.$select
|
371 |
+
.html('')
|
372 |
+
.append(self.revertSettings.$children)
|
373 |
+
.removeAttr('tabindex')
|
374 |
+
.removeClass('selectized')
|
375 |
+
.attr({tabindex: self.revertSettings.tabindex})
|
376 |
+
.show();
|
377 |
+
|
378 |
+
self.$control_input.removeData('grow');
|
379 |
+
self.$select.removeData('selectize');
|
380 |
+
|
381 |
+
if (--FancySelect.count == 0 && FancySelect.$testInput) {
|
382 |
+
FancySelect.$testInput.remove();
|
383 |
+
FancySelect.$testInput = undefined;
|
384 |
+
}
|
385 |
+
|
386 |
+
// this doesn't fire on create feed. as fields are loaded via ajax.
|
387 |
+
// add custom event with the form object (with namespace)
|
388 |
+
// trigger event on form.init()
|
389 |
+
// remove previous listener on from.init(). first. so multiple listener not executed.
|
390 |
+
// see selectize https://github.com/selectize/selectize.js/blob/master/src/selectize.js#L2097
|
391 |
+
// add event listener here...
|
392 |
+
|
393 |
+
$(window).off(self.eventNS);
|
394 |
+
$(document).off(self.eventNS);
|
395 |
+
$(document.body).off(self.eventNS);
|
396 |
+
delete self.$select[0].fancySelect;
|
397 |
+
},
|
398 |
+
|
399 |
+
/**
|
400 |
+
* MicroEvent - to make any js object an event emitter
|
401 |
+
*
|
402 |
+
* - pure javascript - server compatible, browser compatible
|
403 |
+
* - dont rely on the browser doms
|
404 |
+
* - super simple - you get it immediatly, no mistery, no magic involved
|
405 |
+
*
|
406 |
+
* @author Jerome Etienne (https://github.com/jeromeetienne)
|
407 |
+
*/
|
408 |
+
on: function(event, fct){
|
409 |
+
this._events = this._events || {};
|
410 |
+
this._events[event] = this._events[event] || [];
|
411 |
+
this._events[event].push(fct);
|
412 |
+
},
|
413 |
+
off: function(event, fct){
|
414 |
+
const n = arguments.length;
|
415 |
+
if (n === 0) return delete this._events;
|
416 |
+
if (n === 1) return delete this._events[event];
|
417 |
+
|
418 |
+
this._events = this._events || {};
|
419 |
+
if (event in this._events === false) return;
|
420 |
+
this._events[event].splice(this._events[event].indexOf(fct), 1);
|
421 |
+
},
|
422 |
+
trigger: function(event /* , args... */){
|
423 |
+
this._events = this._events || {};
|
424 |
+
if (event in this._events === false) return;
|
425 |
+
for (let i = 0; i < this._events[event].length; i++){
|
426 |
+
this._events[event][i].apply(this, Array.prototype.slice.call(arguments, 1));
|
427 |
+
}
|
428 |
+
}
|
429 |
+
});
|
430 |
+
/**
|
431 |
+
* jQuery Wrapper
|
432 |
+
* @param {Object} [user_options]
|
433 |
+
* @returns {jquery|HTMLElement}
|
434 |
+
*/
|
435 |
+
$.fn.fancySelect = function( user_options ) {
|
436 |
+
return this.each(function() {
|
437 |
+
if (this.fancySelect) return;
|
438 |
+
if ( 'select' !== this.tagName.toLowerCase() ) return;
|
439 |
+
new FancySelect( $(this), user_options )
|
440 |
+
});
|
441 |
+
};
|
442 |
+
})(jQuery, window, document);
|
admin/js/fancy-select.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**!
|
2 |
+
* WooFeed Fancy Select
|
3 |
+
* @version 1.0.0
|
4 |
+
* @copyright 2020 WebAppick
|
5 |
+
* @author Kudratullah <mhamudul.hk@gmail.com>
|
6 |
+
*/
|
7 |
+
!function(v,f,m){"use strict";function $(e,t){var r=this,l=v.extend(!0,{},{options:[],optgroups:[],items:[],placeholder:"",delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,maxItemShow:3,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},t),i=e[0];(i.fancySelect=r).order=0;var s=f.getComputedStyle&&f.getComputedStyle(i,null),n=s?s.getPropertyValue("direction"):input.currentStyle&&input.currentStyle.direction;n=n||e.parents("[dir]:first").attr("dir")||"",r.computedStyle=s,/android/i.test(f.navigator.userAgent)||m.createElement("input").validity;var a,o,d,p={},c={readData:function(e){var t=r.dataAttr&&e.attr(r.dataAttr);return"string"==typeof t&&t.length?JSON.parse(t):null},addOption:function(e,t){e=v(e);var i=e.val()+"";if(i||l.allowEmptyOption)if(p.hasOwnProperty(i)){if(t){var s=p[i][field_optgroup];s?v.isArray(s)?s.push(t):p[i][field_optgroup]=[s,t]:p[i][field_optgroup]=t}}else{var n=c.readData(e)||{};n[r.settings.labelField]=n[r.settings.labelField]||e.text(),n[r.settings.valueField]=n[r.settings.valueField]||i,n[r.settings.disabledField]=n[r.settings.disabledField]||e.prop("disabled"),n[r.settings.optgroupField]=n[r.settings.optgroupField]||t,n.$order=++r.order,p[i]=n,r.settings.options.push(n),e.is(":selected")&&r.settings.items.push(i)}},addGroup:function(e){var t,i,s,n,l;for((s=(e=v(e)).attr("label"))&&((n=c.readData(e)||{})[r.settings.optgroupLabelField]=s,n[r.settings.optgroupValueField]=s,n[r.settings.disabledField]=e.prop("disabled"),n.$order=++r.order,r.settings.optgroups.push(n)),t=0,i=(l=v("option",e)).length;t<i;t++)c.addOption(l[t],s)}};v.extend(r,{settings:l,$select:e,tabIndex:e.attr("tabindex")||"",tagType:1,rtl:/rtl/i.test(n),multiple:e.attr("multiple"),eventNS:".FancySelect"+ ++$.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:e.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isRendered:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:{},renderCache:{},onSearchChange:null===l.loadThrottle?r.onSearchChange:(a=r.onSearchChange,o=l.loadThrottle,function(){var e=this,t=arguments;f.clearTimeout(d),d=f.setTimeout(function(){a.apply(e,t)},o)})}),""===r.settings.placeholder&&(r.settings.placeholder=e.attr("placeholder")||e.attr("data-placeholder"),r.settings.placeholder||r.settings.allowEmptyOption||(r.settings.placeholder=e.children('option[value=""]').text())),r.settings.maxItems=r.multiple?null:1;for(var u=0,g=r.$select.children().length;u<g;u++){var h=r.$select.children()[u].tagName.toLowerCase();"optgroup"===h?c.addGroup(r.$select.children()[u]):"option"===h&&c.addOption(r.$select.children()[u])}r.$wrapper=v('<div class="fancy-picker">').addClass(e.attr("class")),r.computedStyle.hasOwnProperty("width")&&r.$wrapper.css({width:r.computedStyle.width}),r.$outputWrapper=v('<div class="fancy-picker-picked">').appendTo(r.$wrapper),r.originalPlaceholder=v('<span class="fancy-picker-placeholder">').appendTo(r.$outputWrapper),r.dataPlaceholder=v('<span class="fancy-picker-data">').appendTo(r.$outputWrapper),r.dataCountPlaceholder=v('<span class="fancy-picker-count">').appendTo(r.$outputWrapper),r.$dropdown=v('<div class="fancy-picker-ui">').appendTo(r.$wrapper),r.$dropdownContent=v('<div class="fancy-picker-content">').appendTo(r.$dropdown),r.setup()}$.count=0,v.extend($.prototype,{setup:function(){var n=this;n.revertSettings={$children:n.$select.children().detach(),tabindex:n.$select.attr("tabindex")},n.$select.attr("tabindex",-1).hide().after(n.$wrapper),n.$select.data("FancySelect",n),n.$select.addClass("FancySelectInit"),n.settings.items.sort(),n.preload&&n.render(),n.updatePlaceholder(),n.updateOriginalInput(),n.$wrapper.on("click"+n.eventNS,".fancy-picker-picked",function(e){n.$select.trigger("show"),n.isRendered||n.render(),n.$wrapper.toggleClass("active"),n.$select.trigger("shown")}),v(m).on("click"+n.eventNS,function(e){v(e.target).closest(n.$wrapper).length||(n.$select.trigger("hide"),n.$wrapper.removeClass("active"),n.$select.trigger("hidden"))}),n.$wrapper.on("click"+n.eventNS,".fancy-picker-option:not(.disabled)",function(e){e.preventDefault();var t=v(this),i=!1,s=t.data("value");n.multiple?(t.hasClass("selected")?t.removeClass("selected"):(i=!0,t.addClass("selected")),i?n.settings.items.push(s):n.settings.items=n.settings.items.filter(function(e){return e!=s}),n.settings.items.sort()):(n.$dropdownContent.find(".fancy-picker-option").not(t).removeClass("selected"),t.addClass("selected"),i=!0,n.settings.items=[s],n.$wrapper.removeClass("active")),n.updatePlaceholder(),n.updateOriginalInput()}),n.$select.trigger("initialize")},updateOriginalInput:function(e){var t=this,i=[],s=!1;e=!0===e;for(var n=0,l=t.settings.items.length;n<l;n++){var r=t.getSelectedOptionData(t.settings.items[n]);r&&(i.push('<option value="'+t.settings.items[n]+'" selected="selected">'+r[t.settings.labelField]||"</option>"),s=!0)}t.$select.html(i.join("")),!e&&s&&t.$select.trigger("change")},render:function(){for(var e=this,t=[],i=0,s=e.settings.options.length;i<s;i++){var n=e.settings.options[i],l=e.isSelected(n[e.settings.valueField])?"fancy-picker-option selected":"fancy-picker-option";t.push('<div class="'+l+'" data-value="'+n[e.settings.valueField]+'">'+n[e.settings.labelField]+"</div>")}e.$dropdownContent.html(t.join("")),e.$select.trigger("rendered"),e.isRendered=!0},updatePlaceholder:function(){var i=this;i.originalPlaceholder.text(i.settings.placeholder),i.settings.items.length?i.originalPlaceholder.hide():i.originalPlaceholder.show();var s=[],e=i.settings.items.length>i.settings.maxItemShow?i.settings.maxItemShow-1:i.settings.maxItemShow;if(i.settings.items.slice(0,e).forEach(function(e){var t=i.getSelectedOptionData(e);t&&s.push("<span>"+t[i.settings.labelField]+"</span>")}),i.dataPlaceholder.html(s.join('<span class="fancy-picker-separator">'+i.settings.delimiter+"</span> ")),i.settings.items.length>i.settings.maxItemShow){var n=[];i.settings.items.forEach(function(e){var t=i.getSelectedOptionData(e);t&&n.push(t[i.settings.labelField])}),i.dataCountPlaceholder.attr("title",n.join(i.settings.delimiter.trim()+" ")),i.dataCountPlaceholder.html("+"+(i.settings.items.length-e)+" More …")}else i.dataCountPlaceholder.removeAttr("title"),i.dataCountPlaceholder.html("");i.$select.trigger("placeholderChanged")},getSelectedOptionData:function(t){var i=this,e=i.settings.options.filter(function(e){return e[i.settings.valueField]==t});return!!e.length&&e[0]},isSelected:function(t){return 0<this.settings.items.filter(function(e){return e==t}).length},destroy:function(){var e=this;e.$select.trigger("destroy"),e.trigger("destroy"),e.off(),e.$select.html("").append(e.revertSettings.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:e.revertSettings.tabindex}).show(),e.$control_input.removeData("grow"),e.$select.removeData("selectize"),0==--$.count&&$.$testInput&&($.$testInput.remove(),$.$testInput=void 0),v(f).off(e.eventNS),v(m).off(e.eventNS),v(m.body).off(e.eventNS),delete e.$select[0].fancySelect},on:function(e,t){this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(t)},off:function(e,t){var i=arguments.length;return 0===i?delete this._events:1===i?delete this._events[e]:(this._events=this._events||{},void(e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(t),1)))},trigger:function(e){if(this._events=this._events||{},e in this._events!=!1)for(var t=0;t<this._events[e].length;t++)this._events[e][t].apply(this,Array.prototype.slice.call(arguments,1))}}),v.fn.fancySelect=function(e){return this.each(function(){this.fancySelect||"select"===this.tagName.toLowerCase()&&new $(v(this),e)})}}(jQuery,window,document);
|
admin/js/jquery-sortable.js
CHANGED
@@ -690,4 +690,4 @@
|
|
690 |
});
|
691 |
};
|
692 |
|
693 |
-
}(jQuery, window, '
|
690 |
});
|
691 |
};
|
692 |
|
693 |
+
}(jQuery, window, 'wf_sortable');
|
admin/js/jquery-sortable.min.js
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* ===================================================
|
2 |
+
* jquery-sortable.js v0.9.13
|
3 |
+
* http://johnny.github.com/jquery-sortable/
|
4 |
+
* ===================================================
|
5 |
+
* Copyright (c) 2012 Jonas von Andrian
|
6 |
+
* All rights reserved.
|
7 |
+
*
|
8 |
+
* Redistribution and use in source and binary forms, with or without
|
9 |
+
* modification, are permitted provided that the following conditions are met:
|
10 |
+
* * Redistributions of source code must retain the above copyright
|
11 |
+
* notice, this list of conditions and the following disclaimer.
|
12 |
+
* * Redistributions in binary form must reproduce the above copyright
|
13 |
+
* notice, this list of conditions and the following disclaimer in the
|
14 |
+
* documentation and/or other materials provided with the distribution.
|
15 |
+
* * The name of the author may not be used to endorse or promote products
|
16 |
+
* derived from this software without specific prior written permission.
|
17 |
+
*
|
18 |
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
19 |
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20 |
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
21 |
+
* DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
22 |
+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
23 |
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
24 |
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
25 |
+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
26 |
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
27 |
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
28 |
+
* ========================================================== */
|
29 |
+
!function(u,s,a){var o={drag:!0,drop:!0,exclude:"",nested:!0,vertical:!0},n={afterMove:function(t,e,i){},containerPath:"",containerSelector:"ol, ul",distance:0,delay:0,handle:"",itemPath:"",itemSelector:"li",bodyClass:"dragging",draggedClass:"dragged",isValidTarget:function(t,e){return!0},onCancel:function(t,e,i,o){},onDrag:function(t,e,i,o){t.css(e)},onDragStart:function(t,e,i,o){t.css({height:t.outerHeight(),width:t.outerWidth()}),t.addClass(e.group.options.draggedClass),u("body").addClass(e.group.options.bodyClass)},onDrop:function(t,e,i,o){t.removeClass(e.group.options.draggedClass).removeAttr("style"),u("body").removeClass(e.group.options.bodyClass)},onMousedown:function(t,e,i){if(!i.target.nodeName.match(/^(input|select|textarea)$/i))return i.preventDefault(),!0},placeholderClass:"placeholder",placeholder:'<li class="placeholder"></li>',pullPlaceholder:!0,serialize:function(t,e,i){var o=u.extend({},t.data());return i?[e]:(e[0]&&(o.children=e),delete o.subContainers,delete o.sortable,o)},tolerance:0},e={},r=0,p={left:0,top:0,bottom:0,right:0},h={start:"touchstart.sortable mousedown.sortable",drop:"touchend.sortable touchcancel.sortable mouseup.sortable",drag:"touchmove.sortable mousemove.sortable",scroll:"scroll.sortable"},l="subContainers";function c(t,e){return Math.max(0,t[0]-e[0],e[0]-t[1])+Math.max(0,t[2]-e[1],e[1]-t[3])}function t(t,e,i,o){var s=t.length,n=o?"offset":"position";for(i=i||0;s--;){var r=t[s].el?t[s].el:u(t[s]),a=r[n]();a.left+=parseInt(r.css("margin-left"),10),a.top+=parseInt(r.css("margin-top"),10),e[s]=[a.left-i,a.left+r.outerWidth()+i,a.top-i,a.top+r.outerHeight()+i]}}function f(t,e){var i=e.offset();return{left:t.left-i.left,top:t.top-i.top}}function d(t,e,i){e=[e.left,e.top],i=i&&[i.left,i.top];for(var o,s=t.length,n=[];s--;)o=t[s],n[s]=[s,c(o,e),i&&c(o,i)];return n=n.sort(function(t,e){return e[1]-t[1]||e[2]-t[2]||e[0]-t[0]})}function g(t){this.options=u.extend({},n,t),this.containers=[],this.options.rootGroup||(this.scrollProxy=u.proxy(this.scroll,this),this.dragProxy=u.proxy(this.drag,this),this.dropProxy=u.proxy(this.drop,this),this.placeholder=u(this.options.placeholder),t.isValidTarget||(this.options.isValidTarget=a))}function m(t,e){this.el=t,this.options=u.extend({},o,e),this.group=g.get(this.options),this.rootGroup=this.options.rootGroup||this.group,this.handle=this.rootGroup.options.handle||this.rootGroup.options.itemSelector;var i=this.rootGroup.options.itemPath;this.target=i?this.el.find(i):this.el,this.target.on(h.start,this.handle,u.proxy(this.dragInit,this)),this.options.drop&&this.group.containers.push(this)}g.get=function(t){return e[t.group]||(t.group===a&&(t.group=r++),e[t.group]=new g(t)),e[t.group]},g.prototype={dragInit:function(t,e){this.$document=u(e.el[0].ownerDocument);var i=u(t.target).closest(this.options.itemSelector);if(i.length){if(this.item=i,this.itemContainer=e,this.item.is(this.options.exclude)||!this.options.onMousedown(this.item,n.onMousedown,t))return;this.setPointer(t),this.toggleListeners("on"),this.setupDelayTimer(),this.dragInitDone=!0}},drag:function(t){if(!this.dragging){if(!this.distanceMet(t)||!this.delayMet)return;this.options.onDragStart(this.item,this.itemContainer,n.onDragStart,t),this.item.before(this.placeholder),this.dragging=!0}this.setPointer(t),this.options.onDrag(this.item,f(this.pointer,this.item.offsetParent()),n.onDrag,t);var e=this.getPointer(t),i=this.sameResultBox,o=this.options.tolerance;(!i||i.top-o>e.top||i.bottom+o<e.top||i.left-o>e.left||i.right+o<e.left)&&(this.searchValidTarget()||(this.placeholder.detach(),this.lastAppendedItem=a))},drop:function(t){this.toggleListeners("off"),this.dragInitDone=!1,this.dragging&&(this.placeholder.closest("html")[0]?this.placeholder.before(this.item).detach():this.options.onCancel(this.item,this.itemContainer,n.onCancel,t),this.options.onDrop(this.item,this.getContainer(this.item),n.onDrop,t),this.clearDimensions(),this.clearOffsetParent(),this.lastAppendedItem=this.sameResultBox=a,this.dragging=!1)},searchValidTarget:function(t,e){t||(t=this.relativePointer||this.pointer,e=this.lastRelativePointer||this.lastPointer);for(var i=d(this.getContainerDimensions(),t,e),o=i.length;o--;){var s=i[o][0];if(!i[o][1]||this.options.pullPlaceholder){var n=this.containers[s];if(!n.disabled){if(!this.$getOffsetParent()){var r=n.getItemOffsetParent();t=f(t,r),e=f(e,r)}if(n.searchValidTarget(t,e))return!0}}}this.sameResultBox&&(this.sameResultBox=a)},movePlaceholder:function(t,e,i,o){var s=this.lastAppendedItem;!o&&s&&s[0]===e[0]||(e[i](this.placeholder),this.lastAppendedItem=e,this.sameResultBox=o,this.options.afterMove(this.placeholder,t,e))},getContainerDimensions:function(){return this.containerDimensions||t(this.containers,this.containerDimensions=[],this.options.tolerance,!this.$getOffsetParent()),this.containerDimensions},getContainer:function(t){return t.closest(this.options.containerSelector).data(s)},$getOffsetParent:function(){if(this.offsetParent===a){var t=this.containers.length-1,e=this.containers[t].getItemOffsetParent();if(!this.options.rootGroup)for(;t--;)if(e[0]!=this.containers[t].getItemOffsetParent()[0]){e=!1;break}this.offsetParent=e}return this.offsetParent},setPointer:function(t){var e=this.getPointer(t);if(this.$getOffsetParent()){var i=f(e,this.$getOffsetParent());this.lastRelativePointer=this.relativePointer,this.relativePointer=i}this.lastPointer=this.pointer,this.pointer=e},distanceMet:function(t){var e=this.getPointer(t);return Math.max(Math.abs(this.pointer.left-e.left),Math.abs(this.pointer.top-e.top))>=this.options.distance},getPointer:function(t){var e=t.originalEvent||t.originalEvent.touches&&t.originalEvent.touches[0];return{left:t.pageX||e.pageX,top:t.pageY||e.pageY}},setupDelayTimer:function(){var t=this;this.delayMet=!this.options.delay,this.delayMet||(clearTimeout(this._mouseDelayTimer),this._mouseDelayTimer=setTimeout(function(){t.delayMet=!0},this.options.delay))},scroll:function(t){this.clearDimensions(),this.clearOffsetParent()},toggleListeners:function(i){var o=this;u.each(["drag","drop","scroll"],function(t,e){o.$document[i](h[e],o[e+"Proxy"])})},clearOffsetParent:function(){this.offsetParent=a},clearDimensions:function(){this.traverse(function(t){t._clearDimensions()})},traverse:function(t){t(this);for(var e=this.containers.length;e--;)this.containers[e].traverse(t)},_clearDimensions:function(){this.containerDimensions=a},_destroy:function(){e[this.options.group]=a}},m.prototype={dragInit:function(t){var e=this.rootGroup;!this.disabled&&!e.dragInitDone&&this.options.drag&&this.isValidDrag(t)&&e.dragInit(t,this)},isValidDrag:function(t){return 1==t.which||"touchstart"==t.type&&1==t.originalEvent.touches.length},searchValidTarget:function(t,e){var i=d(this.getItemDimensions(),t,e),o=i.length,s=this.rootGroup,n=!s.options.isValidTarget||s.options.isValidTarget(s.item,this);if(!o&&n)return s.movePlaceholder(this,this.target,"append"),!0;for(;o--;){var r=i[o][0];if(!i[o][1]&&this.hasChildGroup(r)){if(this.getContainerGroup(r).searchValidTarget(t,e))return!0}else if(n)return this.movePlaceholder(r,t),!0}},movePlaceholder:function(t,e){var i=u(this.items[t]),o=this.itemDimensions[t],s="after",n=i.outerWidth(),r=i.outerHeight(),a=i.offset(),h={left:a.left,right:a.left+n,top:a.top,bottom:a.top+r};if(this.options.vertical){var l=(o[2]+o[3])/2;e.top<=l?(s="before",h.bottom-=r/2):h.top+=r/2}else{var c=(o[0]+o[1])/2;e.left<=c?(s="before",h.right-=n/2):h.left+=n/2}this.hasChildGroup(t)&&(h=p),this.rootGroup.movePlaceholder(this,i,s,h)},getItemDimensions:function(){return this.itemDimensions||(this.items=this.$getChildren(this.el,"item").filter(":not(."+this.group.options.placeholderClass+", ."+this.group.options.draggedClass+")").get(),t(this.items,this.itemDimensions=[],this.options.tolerance)),this.itemDimensions},getItemOffsetParent:function(){var t=this.el;return"relative"===t.css("position")||"absolute"===t.css("position")||"fixed"===t.css("position")?t:t.offsetParent()},hasChildGroup:function(t){return this.options.nested&&this.getContainerGroup(t)},getContainerGroup:function(t){var e=u.data(this.items[t],l);if(e===a){var i=this.$getChildren(this.items[t],"container");if(e=!1,i[0]){var o=u.extend({},this.options,{rootGroup:this.rootGroup,group:r++});e=i[s](o).data(s).group}u.data(this.items[t],l,e)}return e},$getChildren:function(t,e){var i=this.rootGroup.options,o=i[e+"Path"],s=i[e+"Selector"];return t=u(t),o&&(t=t.find(o)),t.children(s)},_serialize:function(t,e){var i=this,o=e?"item":"container",s=this.$getChildren(t,o).not(this.options.exclude).map(function(){return i._serialize(u(this),!e)}).get();return this.rootGroup.options.serialize(t,s,e)},traverse:function(i){u.each(this.items||[],function(t){var e=u.data(this,l);e&&e.traverse(i)}),i(this)},_clearDimensions:function(){this.itemDimensions=a},_destroy:function(){var e=this;this.target.off(h.start,this.handle),this.el.removeData(s),this.options.drop&&(this.group.containers=u.grep(this.group.containers,function(t){return t!=e})),u.each(this.items||[],function(){u.removeData(this,l)})}};var v={enable:function(){this.traverse(function(t){t.disabled=!1})},disable:function(){this.traverse(function(t){t.disabled=!0})},serialize:function(){return this._serialize(this.el,!0)},refresh:function(){this.traverse(function(t){t._clearDimensions()})},destroy:function(){this.traverse(function(t){t._destroy()})}};u.extend(m.prototype,v),u.fn[s]=function(i){var o=Array.prototype.slice.call(arguments,1);return this.map(function(){var t=u(this),e=t.data(s);return e&&v[i]?v[i].apply(e,o)||this:(e||i!==a&&"object"!=typeof i||t.data(s,new m(t,i)),this)})}}(jQuery,(window,"wf_sortable"));
|
admin/js/woo-feed-admin-pro.js
CHANGED
@@ -1,5 +1,13 @@
|
|
1 |
// noinspection JSUnresolvedVariable,ES6ConvertVarToLetConst,SpellCheckingInspection
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
(function ($, window, document, wpAjax, opts) {
|
|
|
3 |
/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
|
4 |
$(window).load(function () {
|
5 |
// noinspection ES6ConvertVarToLetConst,SpellCheckingInspection
|
1 |
// noinspection JSUnresolvedVariable,ES6ConvertVarToLetConst,SpellCheckingInspection
|
2 |
+
/**!
|
3 |
+
* WooFeed Pro Scripts
|
4 |
+
* @version 1.0.0
|
5 |
+
* @package WooFeed
|
6 |
+
* @copyright 2020 WebAppick
|
7 |
+
*
|
8 |
+
*/
|
9 |
(function ($, window, document, wpAjax, opts) {
|
10 |
+
"use strict";
|
11 |
/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
|
12 |
$(window).load(function () {
|
13 |
// noinspection ES6ConvertVarToLetConst,SpellCheckingInspection
|
admin/js/woo-feed-admin-pro.min.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**!
|
2 |
+
* WooFeed Pro Scripts
|
3 |
+
* @version 1.0.0
|
4 |
+
* @package WooFeed
|
5 |
+
* @copyright 2020 WebAppick
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
!function(a,o){"use strict";a(o).load(function(){var o=a(".wapk-slider");o.length&&o.slick({autoplay:!0,dots:!0,centerMode:!0,arrows:!1,slidesToShow:1,slidesToScroll:1,lazyLoad:"progressive"})})}(jQuery,window,(document,wp.ajax,wpf_ajax_obj));
|
admin/js/woo-feed-admin.js
CHANGED
@@ -76,60 +76,80 @@
|
|
76 |
}
|
77 |
|
78 |
/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
return
|
93 |
-
},
|
94 |
-
ajax_fail: function ( e ) {
|
95 |
-
console.log( e );
|
96 |
-
alert( ( e.hasOwnProperty( 'statusText' ) && e.hasOwnProperty( 'status' ) ) ? opts.ajax.error + '\n' + e.statusText + ' (' + e.status + ')' : e );
|
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 |
outOfStockVisibilityRow.show();
|
127 |
} else {
|
128 |
outOfStockVisibilityRow.hide();
|
129 |
}
|
130 |
-
}
|
131 |
-
|
132 |
-
|
133 |
// noinspection ES6ConvertVarToLetConst
|
134 |
var type = $(this).val(), row = $(this).closest('tr');
|
135 |
if (type === 'pattern') {
|
@@ -141,153 +161,145 @@
|
|
141 |
row.find('.wf_default').hide();
|
142 |
row.find('.wf_default').val('');
|
143 |
}
|
144 |
-
})
|
145 |
-
|
146 |
// noinspection ES6ConvertVarToLetConst
|
147 |
-
var row = $(this).closest(
|
148 |
-
attribute = row.find(
|
149 |
type = row.find('.attr_type'),
|
150 |
valueColumn = row.find('td:eq(4)'),
|
151 |
provider = $('#provider').val();
|
152 |
-
if(
|
153 |
-
if(
|
154 |
// noinspection ES6ConvertVarToLetConst
|
155 |
var selectizeOpts = {
|
156 |
options: googleCategories,
|
157 |
-
config: {
|
158 |
};
|
159 |
valueColumn.find('input.wf_default').remove();
|
160 |
valueColumn.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>');
|
161 |
-
valueColumn.find('.wf_attributes select').selectize({render: {item: helper.selectize_render_item,}});
|
162 |
// noinspection JSUnresolvedVariable
|
163 |
-
valueColumn.append('<span style="font-size:x-small;"><a style="color: red" href="http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category" target="_blank">'+ opts.learn_more +'</a></span>');
|
164 |
-
valueColumn.append('<span class="spinner is-active" style="margin: 0;"></span>');
|
165 |
-
// noinspection ES6ConvertVarToLetConst
|
166 |
-
var select = valueColumn.find('.wf_attributes select');
|
167 |
if( ! googleCategories ) {
|
168 |
-
|
169 |
-
type: 'GET',
|
170 |
-
data: { _ajax_nonce: opts.nonce, action: "get_google_categories", provider: provider }
|
171 |
-
} ).then( function( r ) {
|
172 |
-
googleCategories = r;
|
173 |
-
selectizeOpts.options = r;
|
174 |
-
feedEditor.renderSelectize( select, selectizeOpts );
|
175 |
-
valueColumn.find('.spinner').remove();
|
176 |
-
} ).fail( helper.ajax_fail );
|
177 |
-
} else {
|
178 |
-
feedEditor.renderSelectize( select, selectizeOpts );
|
179 |
-
valueColumn.find('.spinner').remove();
|
180 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
}
|
182 |
} else {
|
183 |
-
if(
|
184 |
valueColumn.find('span').remove();
|
185 |
-
valueColumn.append(
|
186 |
-
if(
|
187 |
valueColumn.find('input.wf_default').hide();
|
188 |
}
|
189 |
}
|
190 |
}
|
191 |
-
}
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
},
|
222 |
-
/**
|
223 |
-
* Render Merchant info ajax response and handle allowed feed type for selected merchant
|
224 |
-
* @param {jQuery|HTMLElement} merchantInfo jQuery dom object
|
225 |
-
* @param {jQuery|HTMLElement} feedType jQuery dom object
|
226 |
-
* @param {Object} r ajax response object
|
227 |
-
*/
|
228 |
-
renderMerchantInfo: function( merchantInfo, feedType, r ) {
|
229 |
-
// noinspection ES6ConvertVarToLetConst
|
230 |
-
for( var k in r ) {
|
231 |
-
if( r.hasOwnProperty( k ) ) {
|
232 |
-
merchantInfo.find( '.merchant-info-section.' + k + ' .data' ).html( r[k] ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html
|
233 |
-
if( 'feed_file_type' === k ) {
|
234 |
-
// noinspection ES6ConvertVarToLetConst,JSUnresolvedVariable
|
235 |
-
var types = r[k].split(",").map(function(t){return t.trim().toLowerCase()}).filter(function(t){
|
236 |
-
// noinspection JSUnresolvedVariable
|
237 |
-
return t !== '' && t !== opts.na.toLowerCase()
|
238 |
-
});
|
239 |
-
if( types.length ) {
|
240 |
-
feedType.find('option').removeAttr('selected').each( function(){
|
241 |
-
// noinspection ES6ConvertVarToLetConst
|
242 |
-
var opt = $(this);
|
243 |
-
opt.val() && ! helper.in_array(opt.val(),types) ? opt.disabled( ! 0) : opt.disabled( ! 1);
|
244 |
-
} );
|
245 |
-
if( types.length === 1 ) feedType.find('option[value="' + types[0] + '"]').attr( 'selected', 'selected' );
|
246 |
-
} else feedType.find('option').disabled( ! 1 );
|
247 |
-
}
|
248 |
}
|
249 |
}
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
}
|
281 |
-
}
|
282 |
}
|
283 |
}
|
284 |
}
|
285 |
-
feedEditor.init();
|
286 |
}
|
287 |
-
|
288 |
-
|
289 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
|
|
|
|
|
|
|
|
|
291 |
|
292 |
$('[data-toggle_slide]').on('click', function(e) {
|
293 |
e.preventDefault();
|
@@ -306,10 +318,7 @@
|
|
306 |
}
|
307 |
// initialize editor
|
308 |
feedEditor.init();
|
309 |
-
//
|
310 |
-
if( $(location). attr("href").match( /webappick.*feed/g ) != null ) {
|
311 |
-
$('#wpbody-content').addClass('woofeed-body-content');
|
312 |
-
}
|
313 |
|
314 |
// Generate Feed Add Table Row
|
315 |
$(document).on('click', '#wf_newRow', function () {
|
@@ -373,36 +382,11 @@
|
|
373 |
});
|
374 |
|
375 |
// Generate Feed Table Row Delete
|
376 |
-
$(document).on('click', '.delRow', function () {
|
|
|
377 |
$(this).closest('tr').remove();
|
378 |
});
|
379 |
|
380 |
-
//Expand output type
|
381 |
-
$(document).on('click', '.expandType', function () {
|
382 |
-
// noinspection ES6ConvertVarToLetConst
|
383 |
-
var row = $(this).closest('tr');
|
384 |
-
$('.outputType').each(function (index) {
|
385 |
-
//do stuff to each individually.
|
386 |
-
$(this).attr('name', "output_type[" + index + "][]");
|
387 |
-
});
|
388 |
-
row.find('.outputType').attr('multiple', 'multiple');
|
389 |
-
row.find('.contractType').show();
|
390 |
-
$(this).hide();
|
391 |
-
});
|
392 |
-
|
393 |
-
//Contract output type
|
394 |
-
$(document).on('click', '.contractType', function () {
|
395 |
-
// noinspection ES6ConvertVarToLetConst
|
396 |
-
var row = $(this).closest('tr');
|
397 |
-
$('.outputType').each(function (index) {
|
398 |
-
//do stuff to each individually.
|
399 |
-
$(this).attr('name', "output_type[" + index + "][]");
|
400 |
-
});
|
401 |
-
row.find('.outputType').removeAttr('multiple');
|
402 |
-
row.find('.expandType').show();
|
403 |
-
$(this).hide();
|
404 |
-
});
|
405 |
-
|
406 |
// Generate Feed Form Submit
|
407 |
$(".generateFeed").validate();
|
408 |
$(document).on('submit', '#generateFeed', function () {
|
76 |
}
|
77 |
|
78 |
/* global ajaxurl, wpAjax, postboxes, pagenow, alert, deleteUserSetting, typenow, adminpage, thousandsSeparator, decimalPoint, isRtl */
|
79 |
+
/**
|
80 |
+
* Alias of jQuery.extend()
|
81 |
+
* @param {Object} _default
|
82 |
+
* @param {Object} _args
|
83 |
+
*/
|
84 |
+
const extend = ( _default, _args ) => $.extend( true, {}, _default, _args );
|
85 |
+
// noinspection ES6ConvertVarToLetConst
|
86 |
+
var $copyBtn, clipboard, googleCategories,
|
87 |
+
helper = {
|
88 |
+
in_array: function( needle, haystack ) {
|
89 |
+
try {
|
90 |
+
return haystack.indexOf( needle ) !== -1;
|
91 |
+
} catch( e ) {
|
92 |
+
return false;
|
|
|
|
|
|
|
|
|
93 |
}
|
94 |
+
},
|
95 |
+
selectize_render_item: function( data, escape ) {
|
96 |
+
return '<div class="item wapk-selectize-item">' + escape(data.text) + '</div>'; // phpcs:ignore WordPressVIPMinimum.JS.StringConcat.Found
|
97 |
+
},
|
98 |
+
ajax_fail: function ( e ) {
|
99 |
+
console.warn( e );
|
100 |
+
alert( ( e.hasOwnProperty( 'statusText' ) && e.hasOwnProperty( 'status' ) ) ? opts.ajax.error + '\n' + e.statusText + ' (' + e.status + ')' : e );
|
101 |
+
},
|
102 |
+
sortable: function( el, config ) {
|
103 |
+
console.log( ( el || $('.sorted_table') ) );
|
104 |
+
( el || $('.sorted_table') ).wf_sortable( extend( {
|
105 |
+
containerSelector: 'table',
|
106 |
+
itemPath: '> tbody',
|
107 |
+
itemSelector: 'tr',
|
108 |
+
handle: 'i.wf_sortedtable',
|
109 |
+
placeholder: '<tr class="placeholder"><td colspan="9"></td></tr>',
|
110 |
+
}, config ));
|
111 |
+
},
|
112 |
+
selectize: function( el, config ) {
|
113 |
+
return ( el || $('select.selectize') ).not('.selectized').each(function(){
|
114 |
+
let self = $(this);
|
115 |
+
self.selectize( extend( {
|
116 |
+
create: self.data('create') || false,
|
117 |
+
plugins: self.data('plugins') ? self.data('plugins').split(',').map( s => s.trim() ): [],//['remove_button'],
|
118 |
+
render: {item: helper.selectize_render_item,}
|
119 |
+
}, config ) );
|
120 |
+
} );
|
121 |
+
}
|
122 |
+
}, // helper functions
|
123 |
+
feedEditor = {
|
124 |
+
/**
|
125 |
+
* The Editor Form Elem.
|
126 |
+
* @type {jQuery|HTMLElement}
|
127 |
+
*/
|
128 |
+
form: null,
|
129 |
+
/**
|
130 |
+
* Initialize The Feed Editor {Tabs...}
|
131 |
+
* @returns {void}
|
132 |
+
*/
|
133 |
+
init: function() {
|
134 |
+
let self = this;
|
135 |
+
self.form = $('.generateFeed');
|
136 |
+
if( ! self.form.length ) return;
|
137 |
+
// noinspection ES6ConvertVarToLetConst
|
138 |
+
var outOfStockVisibilityRow = $('.out-of-stock-visibility');
|
139 |
+
// Initialize Table Sorting
|
140 |
+
// noinspection JSUnresolvedFunction
|
141 |
+
helper.sortable();
|
142 |
+
helper.selectize();
|
143 |
+
$(document)
|
144 |
+
.on('change', '[name="is_outOfStock"], [name="product_visibility"]', function () {
|
145 |
+
if ($('[name="is_outOfStock"]:checked').val() === 'n' && $('[name="product_visibility"]:checked').val() === '1') {
|
146 |
outOfStockVisibilityRow.show();
|
147 |
} else {
|
148 |
outOfStockVisibilityRow.hide();
|
149 |
}
|
150 |
+
})
|
151 |
+
.on('change', '.attr_type', function () {
|
152 |
+
// Attribute type selection
|
153 |
// noinspection ES6ConvertVarToLetConst
|
154 |
var type = $(this).val(), row = $(this).closest('tr');
|
155 |
if (type === 'pattern') {
|
161 |
row.find('.wf_default').hide();
|
162 |
row.find('.wf_default').val('');
|
163 |
}
|
164 |
+
})
|
165 |
+
.on('change', '.wf_mattributes, .attr_type', function () {
|
166 |
// noinspection ES6ConvertVarToLetConst
|
167 |
+
var row = $(this).closest('tr'),
|
168 |
+
attribute = row.find('.wf_mattributes'),
|
169 |
type = row.find('.attr_type'),
|
170 |
valueColumn = row.find('td:eq(4)'),
|
171 |
provider = $('#provider').val();
|
172 |
+
if (attribute.val() === 'current_category' && type.val() === 'pattern' && helper.in_array(provider, ['google', 'facebook', 'pinterest'])) {
|
173 |
+
if (valueColumn.find('select.selectize').length === 0) {
|
174 |
// noinspection ES6ConvertVarToLetConst
|
175 |
var selectizeOpts = {
|
176 |
options: googleCategories,
|
177 |
+
config: {render: {item: helper.selectize_render_item,}},
|
178 |
};
|
179 |
valueColumn.find('input.wf_default').remove();
|
180 |
valueColumn.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>');
|
181 |
+
// valueColumn.find('.wf_attributes select').selectize({render: {item: helper.selectize_render_item,}});
|
182 |
// noinspection JSUnresolvedVariable
|
183 |
+
valueColumn.append('<span style="font-size:x-small;"><a style="color: red" href="http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category" target="_blank">' + opts.learn_more + '</a></span>');
|
|
|
|
|
|
|
184 |
if( ! googleCategories ) {
|
185 |
+
valueColumn.append('<span class="spinner is-active" style="margin: 0;"></span>');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
}
|
187 |
+
// noinspection ES6ConvertVarToLetConst
|
188 |
+
var select = valueColumn.find('.wf_attributes select');
|
189 |
+
helper.selectize( select, {
|
190 |
+
preload: true,
|
191 |
+
placeholder: opts.form.select_category,
|
192 |
+
load: function( query, cb ) {
|
193 |
+
if( ! googleCategories ) {
|
194 |
+
wpAjax.send('get_google_categories', {
|
195 |
+
type: 'GET',
|
196 |
+
data: {
|
197 |
+
_ajax_nonce: opts.nonce,
|
198 |
+
action: "get_google_categories",
|
199 |
+
provider: provider
|
200 |
+
}
|
201 |
+
}).then(function (r) {
|
202 |
+
googleCategories = r;
|
203 |
+
cb( googleCategories );
|
204 |
+
valueColumn.find('.spinner').remove();
|
205 |
+
}).fail(helper.ajax_fail);
|
206 |
+
} else {
|
207 |
+
cb( googleCategories );
|
208 |
+
}
|
209 |
+
}
|
210 |
+
} );
|
211 |
}
|
212 |
} else {
|
213 |
+
if (attribute.val() !== 'current_category' && valueColumn.find('input.wf_default').length === 0) {
|
214 |
valueColumn.find('span').remove();
|
215 |
+
valueColumn.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">');
|
216 |
+
if (type.val() !== 'pattern') {
|
217 |
valueColumn.find('input.wf_default').hide();
|
218 |
}
|
219 |
}
|
220 |
}
|
221 |
+
})
|
222 |
+
.trigger('change');
|
223 |
+
$('.outputType').fancySelect();
|
224 |
+
$(document).trigger(new jQuery.Event('feedEditor.init', {target: this.form}));
|
225 |
+
},
|
226 |
+
/**
|
227 |
+
* Render Merchant info ajax response and handle allowed feed type for selected merchant
|
228 |
+
* @param {jQuery|HTMLElement} merchantInfo jQuery dom object
|
229 |
+
* @param {jQuery|HTMLElement} feedType jQuery dom object
|
230 |
+
* @param {Object} r ajax response object
|
231 |
+
*/
|
232 |
+
renderMerchantInfo: function( merchantInfo, feedType, r ) {
|
233 |
+
// noinspection ES6ConvertVarToLetConst
|
234 |
+
for( var k in r ) {
|
235 |
+
if( r.hasOwnProperty( k ) ) {
|
236 |
+
merchantInfo.find( '.merchant-info-section.' + k + ' .data' ).html( r[k] ); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html
|
237 |
+
if( 'feed_file_type' === k ) {
|
238 |
+
// noinspection ES6ConvertVarToLetConst,JSUnresolvedVariable
|
239 |
+
var types = r[k].split(",").map(function(t){return t.trim().toLowerCase()}).filter(function(t){
|
240 |
+
// noinspection JSUnresolvedVariable
|
241 |
+
return t !== '' && t !== opts.na.toLowerCase()
|
242 |
+
});
|
243 |
+
if( types.length ) {
|
244 |
+
feedType.find('option').removeAttr('selected').each( function(){
|
245 |
+
// noinspection ES6ConvertVarToLetConst
|
246 |
+
var opt = $(this);
|
247 |
+
opt.val() && ! helper.in_array(opt.val(),types) ? opt.disabled( ! 0) : opt.disabled( ! 1);
|
248 |
+
} );
|
249 |
+
if( types.length === 1 ) feedType.find('option[value="' + types[0] + '"]').attr( 'selected', 'selected' );
|
250 |
+
} else feedType.find('option').disabled( ! 1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
}
|
252 |
}
|
253 |
+
}
|
254 |
+
merchantInfo.find( '.spinner' ).removeClass( 'is-active' );
|
255 |
+
feedType.disabled( ! 1 );
|
256 |
+
feedType.trigger('change');
|
257 |
+
feedType.parent().find('.spinner').removeClass( 'is-active' );
|
258 |
+
},
|
259 |
+
/**
|
260 |
+
* Render Feed Template Tabs and settings while creating new feed.
|
261 |
+
* @param {jQuery|HTMLElement} feedForm feed from query dom object
|
262 |
+
* @param {object} r merchant template ajax response object
|
263 |
+
*/
|
264 |
+
renderMerchantTemplate: function( feedForm, r ) {
|
265 |
+
// noinspection ES6ConvertVarToLetConst
|
266 |
+
for ( var k in r ) {
|
267 |
+
if ( r.hasOwnProperty( k ) ) {
|
268 |
+
if ( 'tabs' === k ) {
|
269 |
+
feedForm.html( r[k]); // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html
|
270 |
+
} else {
|
271 |
+
// noinspection ES6ConvertVarToLetConst
|
272 |
+
var contentSettings = $('[name="'+k+'"]');
|
273 |
+
if ( contentSettings.length ) {
|
274 |
+
contentSettings.each( function() {
|
275 |
+
// noinspection ES6ConvertVarToLetConst
|
276 |
+
var elem = $(this);
|
277 |
+
if ( elem.is( 'select' ) ) {
|
278 |
+
elem.find( '[value="'+r[k]+'"]').prop( 'selected', true );
|
279 |
+
} else if ( ( elem.is('[type=checkbox]') || elem.is('[type=radio]') ) && elem.val() === r[k] ) {
|
280 |
+
elem.prop( 'checked', true )
|
281 |
+
} else {
|
282 |
+
elem.val( r[k] ); // type=text
|
283 |
+
}
|
284 |
+
} ).trigger('change');
|
285 |
}
|
286 |
}
|
287 |
}
|
|
|
288 |
}
|
289 |
+
feedEditor.init();
|
290 |
+
}
|
291 |
+
}, // Feed Editor Table
|
292 |
+
merchantInfoCache = [],
|
293 |
+
merchantTemplateCache = [];
|
294 |
+
// expose to the global scope
|
295 |
+
window.wf = { helper, feedEditor };
|
296 |
+
$(window).load(function () {
|
297 |
+
$copyBtn = $('.toClipboard');
|
298 |
|
299 |
+
// Template loading ui conflict
|
300 |
+
if( $(location). attr("href").match( /webappick.*feed/g ) != null ) {
|
301 |
+
$('#wpbody-content').addClass('woofeed-body-content');
|
302 |
+
}
|
303 |
|
304 |
$('[data-toggle_slide]').on('click', function(e) {
|
305 |
e.preventDefault();
|
318 |
}
|
319 |
// initialize editor
|
320 |
feedEditor.init();
|
321 |
+
helper.selectize(); // render all other selectize
|
|
|
|
|
|
|
322 |
|
323 |
// Generate Feed Add Table Row
|
324 |
$(document).on('click', '#wf_newRow', function () {
|
382 |
});
|
383 |
|
384 |
// Generate Feed Table Row Delete
|
385 |
+
$(document).on('click', '.delRow', function ( e ) {
|
386 |
+
e.preventDefault();
|
387 |
$(this).closest('tr').remove();
|
388 |
});
|
389 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
390 |
// Generate Feed Form Submit
|
391 |
$(".generateFeed").validate();
|
392 |
$(document).on('submit', '#generateFeed', function () {
|
admin/js/woo-feed-admin.min.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**!
|
2 |
+
* WooFeed Scripts
|
3 |
+
* @version 3.3.6
|
4 |
+
* @package WooFeed
|
5 |
+
* @copyright 2020 WebAppick
|
6 |
+
*
|
7 |
+
*/
|
8 |
+
!function(r,e,t,s,l){"use strict";function n(e){r(e.currentTarget).removeClass(function(e,t){return(t.match(/\btooltipped-\S+/g)||[]).join(" ")}).removeClass("tooltipped").removeAttr("aria-label")}function a(e,t){r(e).addClass("tooltipped tooltipped-s").attr("aria-label",t)}r.fn.disabled=function(n){return r(this).each(function(){var e=r(this),t="disabled";void 0!==e.prop(t)?e.prop(t,void 0===n||!0===n):!0===n?e.addClass(t):e.removeClass(t)}),self},r.fn.isDisabled=function(){var e=r(this),t="disabled";return void 0!==e.prop(t)?e.prop(t):e.hasClass(t)};function i(e,t){return r.extend(!0,{},e,t)}var o,c,d={in_array:function(e,t){try{return-1!==t.indexOf(e)}catch(e){return!1}},selectize_render_item:function(e,t){return'<div class="item wapk-selectize-item">'+t(e.text)+"</div>"},ajax_fail:function(e){console.warn(e),alert(e.hasOwnProperty("statusText")&&e.hasOwnProperty("status")?l.ajax.error+"\n"+e.statusText+" ("+e.status+")":e)},sortable:function(e,t){console.log(e||r(".sorted_table")),(e||r(".sorted_table")).wf_sortable(i({containerSelector:"table",itemPath:"> tbody",itemSelector:"tr",handle:"i.wf_sortedtable",placeholder:'<tr class="placeholder"><td colspan="9"></td></tr>'},t))},selectize:function(e,t){return(e||r("select.selectize")).not(".selectized").each(function(){var e=r(this);e.selectize(i({create:e.data("create")||!1,plugins:e.data("plugins")?e.data("plugins").split(",").map(function(e){return e.trim()}):[],render:{item:d.selectize_render_item}},t))})}},f={form:null,init:function(){if(this.form=r(".generateFeed"),this.form.length){var e=r(".out-of-stock-visibility");d.sortable(),d.selectize(),r(t).on("change",'[name="is_outOfStock"], [name="product_visibility"]',function(){"n"===r('[name="is_outOfStock"]:checked').val()&&"1"===r('[name="product_visibility"]:checked').val()?e.show():e.hide()}).on("change",".attr_type",function(){var e=r(this).val(),t=r(this).closest("tr");"pattern"===e?(t.find(".wf_attr").hide(),t.find(".wf_attr").val(""),t.find(".wf_default").show()):(t.find(".wf_attr").show(),t.find(".wf_default").hide(),t.find(".wf_default").val(""))}).on("change",".wf_mattributes, .attr_type",function(){var e=r(this).closest("tr"),t=e.find(".wf_mattributes"),n=e.find(".attr_type"),a=e.find("td:eq(4)"),i=r("#provider").val();if("current_category"===t.val()&&"pattern"===n.val()&&d.in_array(i,["google","facebook","pinterest"])){if(0===a.find("select.selectize").length){d.selectize_render_item;a.find("input.wf_default").remove(),a.append('<span class="wf_default wf_attributes"><select name="default[]" class="selectize"></select></span>'),a.append('<span style="font-size:x-small;"><a style="color: red" href="http://webappick.helpscoutdocs.com/article/19-how-to-map-store-category-with-merchant-category" target="_blank">'+l.learn_more+"</a></span>"),c||a.append('<span class="spinner is-active" style="margin: 0;"></span>');var o=a.find(".wf_attributes select");d.selectize(o,{preload:!0,placeholder:l.form.select_category,load:function(e,t){c?t(c):s.send("get_google_categories",{type:"GET",data:{_ajax_nonce:l.nonce,action:"get_google_categories",provider:i}}).then(function(e){t(c=e),a.find(".spinner").remove()}).fail(d.ajax_fail)}})}}else"current_category"!==t.val()&&0===a.find("input.wf_default").length&&(a.find("span").remove(),a.append('<input autocomplete="off" class="wf_default wf_attributes" type="text" name="default[]" value="">'),"pattern"!==n.val()&&a.find("input.wf_default").hide())}).trigger("change"),r(".outputType").fancySelect(),r(t).trigger(new jQuery.Event("feedEditor.init",{target:this.form}))}},renderMerchantInfo:function(e,t,n){for(var a in n)if(n.hasOwnProperty(a)&&(e.find(".merchant-info-section."+a+" .data").html(n[a]),"feed_file_type"===a)){var i=n[a].split(",").map(function(e){return e.trim().toLowerCase()}).filter(function(e){return""!==e&&e!==l.na.toLowerCase()});i.length?(t.find("option").removeAttr("selected").each(function(){var e=r(this);e.val()&&!d.in_array(e.val(),i)?e.disabled(!0):e.disabled(!1)}),1===i.length&&t.find('option[value="'+i[0]+'"]').attr("selected","selected")):t.find("option").disabled(!1)}e.find(".spinner").removeClass("is-active"),t.disabled(!1),t.trigger("change"),t.parent().find(".spinner").removeClass("is-active")},renderMerchantTemplate:function(e,t){for(var n in t)if(t.hasOwnProperty(n))if("tabs"===n)e.html(t[n]);else{var a=r('[name="'+n+'"]');a.length&&a.each(function(){var e=r(this);e.is("select")?e.find('[value="'+t[n]+'"]').prop("selected",!0):(e.is("[type=checkbox]")||e.is("[type=radio]"))&&e.val()===t[n]?e.prop("checked",!0):e.val(t[n])}).trigger("change")}f.init()}},p=[],u=[];e.wf={helper:d,feedEditor:f},r(e).load(function(){o=r(".toClipboard"),null!=r(location).attr("href").match(/webappick.*feed/g)&&r("#wpbody-content").addClass("woofeed-body-content"),r("[data-toggle_slide]").on("click",function(e){e.preventDefault(),r(r(this).data("toggle_slide")).slideToggle("fast")}),postboxes.add_postbox_toggles(pagenow),!ClipboardJS.isSupported()||/iPhone|iPad/i.test(navigator.userAgent)?o.find("img").hide(0):(o.each(function(){r(this).on("mouseleave",n).on("blur",n)}),new ClipboardJS(".toClipboard").on("error",function(e){var t,n;a(e.trigger,(t=e.action,n="cut"===t?"X":"C",/iPhone|iPad/i.test(navigator.userAgent)?"No support :(":/Mac/i.test(navigator.userAgent)?"Press ⌘-"+n+" to "+t:"Press Ctrl-"+n+" to "+t))}).on("success",function(e){a(e.trigger,"Copied!")})),f.init(),d.selectize(),r(t).on("click","#wf_newRow",function(){r("#table-1 tbody tr:first").clone().find("input").val("").end().find("select:not('.wfnoempty')").val("").end().insertAfter("#table-1 tbody tr:last"),r(".outputType").each(function(e){r(this).attr("name","output_type["+e+"][]")})}),r("#feedType,#provider").on("change",function(){var e=r("#feedType").val(),t=r("#provider").val(),n=r(".itemWrapper"),a=r(".wf_csvtxt");"xml"===e?(n.show(),a.hide()):"csv"===e||"txt"===e?(n.hide(),a.show()):""===e&&(n.hide(),a.hide()),""!==e&&d.in_array(t,["google","facebook","pinterest"])&&n.hide()}).trigger("change"),r(".wfmasterTooltip").hover(function(){var e=r(this).attr("wftitle");r(this).data("tipText",e).removeAttr("wftitle"),r('<p class="wftooltip"></p>').text(e).appendTo("body").fadeIn("slow")},function(){r(this).attr("wftitle",r(this).data("tipText")),r(".wftooltip").remove()}).mousemove(function(e){r(".wftooltip").css({top:e.pageY+10,left:e.pageX+20})}),r(t).on("change",".dType",function(){var e=r(this).val(),t=r(this).closest("tr");"pattern"===e?(t.find(".value_attribute").hide(),t.find(".value_pattern").show()):"attribute"===e?(t.find(".value_attribute").show(),t.find(".value_pattern").hide()):"remove"===e&&(t.find(".value_attribute").hide(),t.find(".value_pattern").hide())}),r(t).on("click",".delRow",function(e){e.preventDefault(),r(this).closest("tr").remove()}),r(".generateFeed").validate(),r(t).on("submit","#generateFeed",function(){r(this).validate(),r(this).valid()&&r(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '+l.form.generate+"</b>")}),r(".updatefeed").validate(),r('[name="save_feed_config"]').on("click",function(e){e.preventDefault(),r("#updatefeed").trigger("submit",{save:!0})}),r(t).on("submit","#updatefeed",function(e,t){r(this).validate(),r(this).valid()&&r(".makeFeedResponse").show().html('<b style="color: darkblue;"><i class="dashicons dashicons-sos wpf_spin"></i> '+(t&&t.save?l.form.save:l.form.generate)+"</b>")}),r("#provider").on("change",function(e){if(e.preventDefault(),r(this).closest(".generateFeed").hasClass("add-new")){var t=r(this).val(),n=r("#feedType"),a=r("#providerPage"),i=r("#feed_merchant_info");a.html('<h3><span style="float:none;margin: -3px 0 0;" class="spinner is-active"></span> '+l.form.loading_tmpl+"</h3>"),i.find(".spinner").addClass("is-active"),n.disabled(!0),n.parent().find(".spinner").addClass("is-active"),i.find(".merchant-info-section .data").html(""),p.hasOwnProperty(t)?f.renderMerchantInfo(i,n,p[t]):s.send("woo_feed_get_merchant_info",{type:"GET",data:{nonce:l.nonce,provider:t}}).then(function(e){p[t]=e,f.renderMerchantInfo(i,n,e)}).fail(d.ajax_fail),u.hasOwnProperty(t)?f.renderMerchantTemplate(a,u[t]):s.post("get_feed_merchant",{_ajax_nonce:l.nonce,merchant:t}).then(function(e){u[t]=e,f.renderMerchantTemplate(a,e)}).fail(d.ajax_fail)}}),r(".woo_feed_status_input").on("change",function(){var e=r(this).val(),t=r(this)[0].checked?1:0;s.post("update_feed_status",{_ajax_nonce:l.nonce,feedName:e,status:t})}),r("#woo_feed_settings_error_copy_clipboard_button").on("click",function(){r("#woo_feed_settings_error_report").select(),t.execCommand("copy"),e.getSelection?e.getSelection().removeAllRanges():t.selection&&t.selection.empty()}),r(t).on("change",".ftporsftp",function(){var e=r(this).val(),t=r(".ssh2_status");"sftp"===e?(t.show().css("color","dodgerblue").text(l.form.sftp_checking),s.post("get_ssh2_status",{_ajax_nonce:l.nonce,server:e}).then(function(e){"exists"===e?(t.css("color","#2CC185").text(l.form.sftp_available),setTimeout(function(){t.hide()},1500)):t.show().css("color","red").text(l.form.sftp_warning)}).fail(function(e){t.hide(),d.ajax_fail(e)})):t.hide()})})}(jQuery,window,document,wp.ajax,wpf_ajax_obj);
|
admin/partials/templates/common_add-feed.php
CHANGED
@@ -25,14 +25,14 @@ global $provider, $feedRules;
|
|
25 |
<?php
|
26 |
|
27 |
foreach ( $feedRules['mattributes'] as $key => $value ) {
|
28 |
-
$prefix
|
29 |
-
$attrSelected
|
30 |
-
$patternSelected
|
31 |
-
$attribute
|
32 |
-
$pattern
|
33 |
-
$suffix
|
34 |
-
$outputType
|
35 |
-
$limit
|
36 |
?>
|
37 |
<tr>
|
38 |
<td><i class="wf_sortedtable dashicons dashicons-menu"></i></td>
|
@@ -61,14 +61,12 @@ global $provider, $feedRules;
|
|
61 |
<input type="text" name="suffix[]" autocomplete="off" value="<?php echo esc_attr( $suffix ); ?>" class="wf_ps">
|
62 |
</td>
|
63 |
<td>
|
64 |
-
<select name="output_type[][]"
|
65 |
<?php
|
66 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
67 |
-
|
68 |
?>
|
69 |
</select>
|
70 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
71 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
72 |
</td>
|
73 |
<td>
|
74 |
<input type="text" value="<?php echo esc_attr( $limit ); ?>" name="limit[]" class="wf_ps">
|
25 |
<?php
|
26 |
|
27 |
foreach ( $feedRules['mattributes'] as $key => $value ) {
|
28 |
+
$prefix = $feedRules['prefix'][ $key ];
|
29 |
+
$attrSelected = ( 'attribute' == $feedRules['type'][ $key ] ) ? 'selected' : '';
|
30 |
+
$patternSelected = ( 'pattern' == $feedRules['type'][ $key ] ) ? 'selected' : '';
|
31 |
+
$attribute = $feedRules['attributes'][ $key ];
|
32 |
+
$pattern = $feedRules['default'][ $key ];
|
33 |
+
$suffix = $feedRules['suffix'][ $key ];
|
34 |
+
$outputType = $feedRules['output_type'][ $key ];
|
35 |
+
$limit = $feedRules['limit'][ $key ];
|
36 |
?>
|
37 |
<tr>
|
38 |
<td><i class="wf_sortedtable dashicons dashicons-menu"></i></td>
|
61 |
<input type="text" name="suffix[]" autocomplete="off" value="<?php echo esc_attr( $suffix ); ?>" class="wf_ps">
|
62 |
</td>
|
63 |
<td>
|
64 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
65 |
<?php
|
66 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
67 |
+
echo $wooFeedDropDown->outputTypes( $outputType );
|
68 |
?>
|
69 |
</select>
|
|
|
|
|
70 |
</td>
|
71 |
<td>
|
72 |
<input type="text" value="<?php echo esc_attr( $limit ); ?>" name="limit[]" class="wf_ps">
|
admin/partials/templates/custom_add-feed.php
CHANGED
@@ -50,14 +50,12 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
50 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
51 |
</td>
|
52 |
<td>
|
53 |
-
<select name="output_type[][]"
|
54 |
<?php
|
55 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
56 |
echo $wooFeedDropDown->outputTypes();
|
57 |
?>
|
58 |
</select>
|
59 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
60 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
61 |
</td>
|
62 |
<td>
|
63 |
<input type="text" name="limit[]" class="wf_ps">
|
50 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
51 |
</td>
|
52 |
<td>
|
53 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
54 |
<?php
|
55 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
56 |
echo $wooFeedDropDown->outputTypes();
|
57 |
?>
|
58 |
</select>
|
|
|
|
|
59 |
</td>
|
60 |
<td>
|
61 |
<input type="text" name="limit[]" class="wf_ps">
|
admin/partials/templates/facebook_add-feed.php
CHANGED
@@ -30,7 +30,7 @@ global $provider;
|
|
30 |
<select name="mattributes[]" required class="wf_mattributes">
|
31 |
<?php
|
32 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
33 |
-
echo $wooFeedDropDown->
|
34 |
?>
|
35 |
</select>
|
36 |
</td>
|
@@ -56,14 +56,12 @@ global $provider;
|
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
-
<select name="output_type[][]"
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
65 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
66 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
67 |
</td>
|
68 |
<td>
|
69 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -80,7 +78,7 @@ global $provider;
|
|
80 |
<select name="mattributes[]" required class="wf_mattributes">
|
81 |
<?php
|
82 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
83 |
-
echo $wooFeedDropDown->
|
84 |
?>
|
85 |
</select>
|
86 |
</td>
|
@@ -106,14 +104,12 @@ global $provider;
|
|
106 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
107 |
</td>
|
108 |
<td>
|
109 |
-
<select name="output_type[][]"
|
110 |
<?php
|
111 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
112 |
echo $wooFeedDropDown->outputTypes();
|
113 |
?>
|
114 |
</select>
|
115 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
116 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
117 |
</td>
|
118 |
<td>
|
119 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -130,7 +126,7 @@ global $provider;
|
|
130 |
<select name="mattributes[]" required class="wf_mattributes">
|
131 |
<?php
|
132 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
133 |
-
echo $wooFeedDropDown->
|
134 |
?>
|
135 |
</select>
|
136 |
</td>
|
@@ -156,14 +152,12 @@ global $provider;
|
|
156 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
157 |
</td>
|
158 |
<td>
|
159 |
-
<select name="output_type[][]"
|
160 |
<?php
|
161 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
162 |
echo $wooFeedDropDown->outputTypes();
|
163 |
?>
|
164 |
</select>
|
165 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
166 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
167 |
</td>
|
168 |
<td>
|
169 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -180,7 +174,7 @@ global $provider;
|
|
180 |
<select name="mattributes[]" required class="wf_mattributes">
|
181 |
<?php
|
182 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
183 |
-
echo $wooFeedDropDown->
|
184 |
?>
|
185 |
</select>
|
186 |
</td>
|
@@ -206,14 +200,12 @@ global $provider;
|
|
206 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
207 |
</td>
|
208 |
<td>
|
209 |
-
<select name="output_type[][]"
|
210 |
<?php
|
211 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
212 |
echo $wooFeedDropDown->outputTypes();
|
213 |
?>
|
214 |
</select>
|
215 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
216 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
217 |
</td>
|
218 |
<td>
|
219 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -230,7 +222,7 @@ global $provider;
|
|
230 |
<select name="mattributes[]" required class="wf_mattributes">
|
231 |
<?php
|
232 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
233 |
-
echo $wooFeedDropDown->
|
234 |
?>
|
235 |
</select>
|
236 |
</td>
|
@@ -256,14 +248,12 @@ global $provider;
|
|
256 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
257 |
</td>
|
258 |
<td>
|
259 |
-
<select name="output_type[][]"
|
260 |
<?php
|
261 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
262 |
echo $wooFeedDropDown->outputTypes();
|
263 |
?>
|
264 |
</select>
|
265 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
266 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
267 |
</td>
|
268 |
<td>
|
269 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -280,7 +270,7 @@ global $provider;
|
|
280 |
<select name="mattributes[]" required class="wf_mattributes">
|
281 |
<?php
|
282 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
283 |
-
echo $wooFeedDropDown->
|
284 |
?>
|
285 |
</select>
|
286 |
</td>
|
@@ -306,14 +296,12 @@ global $provider;
|
|
306 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
307 |
</td>
|
308 |
<td>
|
309 |
-
<select name="output_type[][]"
|
310 |
<?php
|
311 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
312 |
echo $wooFeedDropDown->outputTypes();
|
313 |
?>
|
314 |
</select>
|
315 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
316 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
317 |
</td>
|
318 |
<td>
|
319 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -330,7 +318,7 @@ global $provider;
|
|
330 |
<select name="mattributes[]" required class="wf_mattributes">
|
331 |
<?php
|
332 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
333 |
-
echo $wooFeedDropDown->
|
334 |
?>
|
335 |
</select>
|
336 |
</td>
|
@@ -351,7 +339,7 @@ global $provider;
|
|
351 |
?>
|
352 |
</select>
|
353 |
<span class="wf_default wf_attributes">
|
354 |
-
<select name="default[]" class="selectize">
|
355 |
<?php
|
356 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
357 |
echo $wooFeedDropDown->googleTaxonomy();
|
@@ -364,14 +352,12 @@ global $provider;
|
|
364 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
365 |
</td>
|
366 |
<td>
|
367 |
-
<select name="output_type[][]"
|
368 |
<?php
|
369 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
370 |
echo $wooFeedDropDown->outputTypes();
|
371 |
?>
|
372 |
</select>
|
373 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
374 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
375 |
</td>
|
376 |
<td>
|
377 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -388,7 +374,7 @@ global $provider;
|
|
388 |
<select name="mattributes[]" required class="wf_mattributes">
|
389 |
<?php
|
390 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
391 |
-
echo $wooFeedDropDown->
|
392 |
?>
|
393 |
</select>
|
394 |
</td>
|
@@ -414,14 +400,12 @@ global $provider;
|
|
414 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
415 |
</td>
|
416 |
<td>
|
417 |
-
<select name="output_type[][]"
|
418 |
<?php
|
419 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
420 |
echo $wooFeedDropDown->outputTypes();
|
421 |
?>
|
422 |
</select>
|
423 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
424 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
425 |
</td>
|
426 |
<td>
|
427 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -438,7 +422,7 @@ global $provider;
|
|
438 |
<select name="mattributes[]" required class="wf_mattributes">
|
439 |
<?php
|
440 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
441 |
-
echo $wooFeedDropDown->
|
442 |
?>
|
443 |
</select>
|
444 |
</td>
|
@@ -465,14 +449,12 @@ global $provider;
|
|
465 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
466 |
</td>
|
467 |
<td>
|
468 |
-
<select name="output_type[][]"
|
469 |
<?php
|
470 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
471 |
echo $wooFeedDropDown->outputTypes();
|
472 |
?>
|
473 |
</select>
|
474 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
475 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
476 |
</td>
|
477 |
<td>
|
478 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -489,7 +471,7 @@ global $provider;
|
|
489 |
<select name="mattributes[]" required class="wf_mattributes">
|
490 |
<?php
|
491 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
492 |
-
echo $wooFeedDropDown->
|
493 |
?>
|
494 |
</select>
|
495 |
</td>
|
@@ -515,14 +497,12 @@ global $provider;
|
|
515 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
516 |
</td>
|
517 |
<td>
|
518 |
-
<select name="output_type[][]"
|
519 |
<?php
|
520 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
521 |
echo $wooFeedDropDown->outputTypes();
|
522 |
?>
|
523 |
</select>
|
524 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
525 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
526 |
</td>
|
527 |
<td>
|
528 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -539,7 +519,7 @@ global $provider;
|
|
539 |
<select name="mattributes[]" required class="wf_mattributes">
|
540 |
<?php
|
541 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
542 |
-
echo $wooFeedDropDown->
|
543 |
?>
|
544 |
</select>
|
545 |
</td>
|
@@ -565,14 +545,12 @@ global $provider;
|
|
565 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
566 |
</td>
|
567 |
<td>
|
568 |
-
<select name="output_type[][]"
|
569 |
<?php
|
570 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
571 |
-
echo $wooFeedDropDown->outputTypes();
|
572 |
?>
|
573 |
</select>
|
574 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
575 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
576 |
</td>
|
577 |
<td>
|
578 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -589,7 +567,7 @@ global $provider;
|
|
589 |
<select name="mattributes[]" required class="wf_mattributes">
|
590 |
<?php
|
591 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
592 |
-
echo $wooFeedDropDown->
|
593 |
?>
|
594 |
</select>
|
595 |
</td>
|
@@ -615,14 +593,12 @@ global $provider;
|
|
615 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
616 |
</td>
|
617 |
<td>
|
618 |
-
<select name="output_type[][]"
|
619 |
<?php
|
620 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
621 |
echo $wooFeedDropDown->outputTypes();
|
622 |
?>
|
623 |
</select>
|
624 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
625 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
626 |
</td>
|
627 |
<td>
|
628 |
<input type="text" name="limit[]" class="wf_ps">
|
@@ -639,7 +615,7 @@ global $provider;
|
|
639 |
<select name="mattributes[]" required class="wf_mattributes">
|
640 |
<?php
|
641 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
642 |
-
echo $wooFeedDropDown->
|
643 |
?>
|
644 |
</select>
|
645 |
</td>
|
@@ -666,14 +642,12 @@ global $provider;
|
|
666 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
667 |
</td>
|
668 |
<td>
|
669 |
-
<select name="output_type[][]"
|
670 |
<?php
|
671 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
672 |
echo $wooFeedDropDown->outputTypes();
|
673 |
?>
|
674 |
</select>
|
675 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
676 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
677 |
</td>
|
678 |
<td>
|
679 |
<input type="text" name="limit[]" class="wf_ps">
|
30 |
<select name="mattributes[]" required class="wf_mattributes">
|
31 |
<?php
|
32 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
33 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'id' );
|
34 |
?>
|
35 |
</select>
|
36 |
</td>
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
|
|
|
|
65 |
</td>
|
66 |
<td>
|
67 |
<input type="text" name="limit[]" class="wf_ps">
|
78 |
<select name="mattributes[]" required class="wf_mattributes">
|
79 |
<?php
|
80 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
81 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'title' );
|
82 |
?>
|
83 |
</select>
|
84 |
</td>
|
104 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
105 |
</td>
|
106 |
<td>
|
107 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
108 |
<?php
|
109 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
110 |
echo $wooFeedDropDown->outputTypes();
|
111 |
?>
|
112 |
</select>
|
|
|
|
|
113 |
</td>
|
114 |
<td>
|
115 |
<input type="text" name="limit[]" class="wf_ps">
|
126 |
<select name="mattributes[]" required class="wf_mattributes">
|
127 |
<?php
|
128 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
129 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'description' );
|
130 |
?>
|
131 |
</select>
|
132 |
</td>
|
152 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
153 |
</td>
|
154 |
<td>
|
155 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
156 |
<?php
|
157 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
158 |
echo $wooFeedDropDown->outputTypes();
|
159 |
?>
|
160 |
</select>
|
|
|
|
|
161 |
</td>
|
162 |
<td>
|
163 |
<input type="text" name="limit[]" class="wf_ps">
|
174 |
<select name="mattributes[]" required class="wf_mattributes">
|
175 |
<?php
|
176 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
177 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'item_group_id' );
|
178 |
?>
|
179 |
</select>
|
180 |
</td>
|
200 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
201 |
</td>
|
202 |
<td>
|
203 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
204 |
<?php
|
205 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
206 |
echo $wooFeedDropDown->outputTypes();
|
207 |
?>
|
208 |
</select>
|
|
|
|
|
209 |
</td>
|
210 |
<td>
|
211 |
<input type="text" name="limit[]" class="wf_ps">
|
222 |
<select name="mattributes[]" required class="wf_mattributes">
|
223 |
<?php
|
224 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
225 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'link' );
|
226 |
?>
|
227 |
</select>
|
228 |
</td>
|
248 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
249 |
</td>
|
250 |
<td>
|
251 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
252 |
<?php
|
253 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
254 |
echo $wooFeedDropDown->outputTypes();
|
255 |
?>
|
256 |
</select>
|
|
|
|
|
257 |
</td>
|
258 |
<td>
|
259 |
<input type="text" name="limit[]" class="wf_ps">
|
270 |
<select name="mattributes[]" required class="wf_mattributes">
|
271 |
<?php
|
272 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
273 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'product_type' );
|
274 |
?>
|
275 |
</select>
|
276 |
</td>
|
296 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
297 |
</td>
|
298 |
<td>
|
299 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
300 |
<?php
|
301 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
302 |
echo $wooFeedDropDown->outputTypes();
|
303 |
?>
|
304 |
</select>
|
|
|
|
|
305 |
</td>
|
306 |
<td>
|
307 |
<input type="text" name="limit[]" class="wf_ps">
|
318 |
<select name="mattributes[]" required class="wf_mattributes">
|
319 |
<?php
|
320 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
321 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'current_category' );
|
322 |
?>
|
323 |
</select>
|
324 |
</td>
|
339 |
?>
|
340 |
</select>
|
341 |
<span class="wf_default wf_attributes">
|
342 |
+
<select name="default[]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
|
343 |
<?php
|
344 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
345 |
echo $wooFeedDropDown->googleTaxonomy();
|
352 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
353 |
</td>
|
354 |
<td>
|
355 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
356 |
<?php
|
357 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
358 |
echo $wooFeedDropDown->outputTypes();
|
359 |
?>
|
360 |
</select>
|
|
|
|
|
361 |
</td>
|
362 |
<td>
|
363 |
<input type="text" name="limit[]" class="wf_ps">
|
374 |
<select name="mattributes[]" required class="wf_mattributes">
|
375 |
<?php
|
376 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
377 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'image' );
|
378 |
?>
|
379 |
</select>
|
380 |
</td>
|
400 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
401 |
</td>
|
402 |
<td>
|
403 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
404 |
<?php
|
405 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
406 |
echo $wooFeedDropDown->outputTypes();
|
407 |
?>
|
408 |
</select>
|
|
|
|
|
409 |
</td>
|
410 |
<td>
|
411 |
<input type="text" name="limit[]" class="wf_ps">
|
422 |
<select name="mattributes[]" required class="wf_mattributes">
|
423 |
<?php
|
424 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
425 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'condition' );
|
426 |
?>
|
427 |
</select>
|
428 |
</td>
|
449 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
450 |
</td>
|
451 |
<td>
|
452 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
453 |
<?php
|
454 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
455 |
echo $wooFeedDropDown->outputTypes();
|
456 |
?>
|
457 |
</select>
|
|
|
|
|
458 |
</td>
|
459 |
<td>
|
460 |
<input type="text" name="limit[]" class="wf_ps">
|
471 |
<select name="mattributes[]" required class="wf_mattributes">
|
472 |
<?php
|
473 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
474 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'availability' );
|
475 |
?>
|
476 |
</select>
|
477 |
</td>
|
497 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
498 |
</td>
|
499 |
<td>
|
500 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
501 |
<?php
|
502 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
503 |
echo $wooFeedDropDown->outputTypes();
|
504 |
?>
|
505 |
</select>
|
|
|
|
|
506 |
</td>
|
507 |
<td>
|
508 |
<input type="text" name="limit[]" class="wf_ps">
|
519 |
<select name="mattributes[]" required class="wf_mattributes">
|
520 |
<?php
|
521 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
522 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'price' );
|
523 |
?>
|
524 |
</select>
|
525 |
</td>
|
545 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
546 |
</td>
|
547 |
<td>
|
548 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
549 |
<?php
|
550 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
551 |
+
echo $wooFeedDropDown->outputTypes( 6 );
|
552 |
?>
|
553 |
</select>
|
|
|
|
|
554 |
</td>
|
555 |
<td>
|
556 |
<input type="text" name="limit[]" class="wf_ps">
|
567 |
<select name="mattributes[]" required class="wf_mattributes">
|
568 |
<?php
|
569 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
570 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'sku' );
|
571 |
?>
|
572 |
</select>
|
573 |
</td>
|
593 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
594 |
</td>
|
595 |
<td>
|
596 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
597 |
<?php
|
598 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
599 |
echo $wooFeedDropDown->outputTypes();
|
600 |
?>
|
601 |
</select>
|
|
|
|
|
602 |
</td>
|
603 |
<td>
|
604 |
<input type="text" name="limit[]" class="wf_ps">
|
615 |
<select name="mattributes[]" required class="wf_mattributes">
|
616 |
<?php
|
617 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
618 |
+
echo $wooFeedDropDown->facebookAttributesDropdown( 'brand' );
|
619 |
?>
|
620 |
</select>
|
621 |
</td>
|
642 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
643 |
</td>
|
644 |
<td>
|
645 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
646 |
<?php
|
647 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
648 |
echo $wooFeedDropDown->outputTypes();
|
649 |
?>
|
650 |
</select>
|
|
|
|
|
651 |
</td>
|
652 |
<td>
|
653 |
<input type="text" name="limit[]" class="wf_ps">
|
admin/partials/templates/google_add-feed.php
CHANGED
@@ -56,14 +56,12 @@ global $provider;
|
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
-
<select name="output_type[][]"
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
65 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
66 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
67 |
</td>
|
68 |
<td>
|
69 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -106,14 +104,12 @@ global $provider;
|
|
106 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
107 |
</td>
|
108 |
<td>
|
109 |
-
<select name="output_type[][]"
|
110 |
<?php
|
111 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
112 |
echo $wooFeedDropDown->outputTypes();
|
113 |
?>
|
114 |
</select>
|
115 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
116 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
117 |
</td>
|
118 |
<td>
|
119 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -156,14 +152,12 @@ global $provider;
|
|
156 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
157 |
</td>
|
158 |
<td>
|
159 |
-
<select name="output_type[][]"
|
160 |
<?php
|
161 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
162 |
echo $wooFeedDropDown->outputTypes();
|
163 |
?>
|
164 |
</select>
|
165 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
166 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
167 |
</td>
|
168 |
<td>
|
169 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -206,14 +200,12 @@ global $provider;
|
|
206 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
207 |
</td>
|
208 |
<td>
|
209 |
-
<select name="output_type[][]"
|
210 |
<?php
|
211 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
212 |
echo $wooFeedDropDown->outputTypes();
|
213 |
?>
|
214 |
</select>
|
215 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
216 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
217 |
</td>
|
218 |
<td>
|
219 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -256,14 +248,12 @@ global $provider;
|
|
256 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
257 |
</td>
|
258 |
<td>
|
259 |
-
<select name="output_type[][]"
|
260 |
<?php
|
261 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
262 |
echo $wooFeedDropDown->outputTypes();
|
263 |
?>
|
264 |
</select>
|
265 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
266 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
267 |
</td>
|
268 |
<td>
|
269 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -306,14 +296,12 @@ global $provider;
|
|
306 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
307 |
</td>
|
308 |
<td>
|
309 |
-
<select name="output_type[][]"
|
310 |
<?php
|
311 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
312 |
echo $wooFeedDropDown->outputTypes();
|
313 |
?>
|
314 |
</select>
|
315 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
316 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
317 |
</td>
|
318 |
<td>
|
319 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -352,7 +340,7 @@ global $provider;
|
|
352 |
<!-- </td>-->
|
353 |
<td>
|
354 |
<span class="wf_default wf_attributes">
|
355 |
-
<select name="default[]" class="selectize">
|
356 |
<?php
|
357 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
358 |
echo $wooFeedDropDown->googleTaxonomy();
|
@@ -371,14 +359,12 @@ global $provider;
|
|
371 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
372 |
</td>
|
373 |
<td>
|
374 |
-
<select name="output_type[][]"
|
375 |
<?php
|
376 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
377 |
echo $wooFeedDropDown->outputTypes();
|
378 |
?>
|
379 |
</select>
|
380 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
381 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
382 |
</td>
|
383 |
<td>
|
384 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -421,14 +407,12 @@ global $provider;
|
|
421 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
422 |
</td>
|
423 |
<td>
|
424 |
-
<select name="output_type[][]"
|
425 |
<?php
|
426 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
427 |
echo $wooFeedDropDown->outputTypes();
|
428 |
?>
|
429 |
</select>
|
430 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
431 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
432 |
</td>
|
433 |
<td>
|
434 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -472,14 +456,12 @@ global $provider;
|
|
472 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
473 |
</td>
|
474 |
<td>
|
475 |
-
<select name="output_type[][]"
|
476 |
<?php
|
477 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
478 |
echo $wooFeedDropDown->outputTypes();
|
479 |
?>
|
480 |
</select>
|
481 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
482 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
483 |
</td>
|
484 |
<td>
|
485 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -522,14 +504,12 @@ global $provider;
|
|
522 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
523 |
</td>
|
524 |
<td>
|
525 |
-
<select name="output_type[][]"
|
526 |
<?php
|
527 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
528 |
echo $wooFeedDropDown->outputTypes();
|
529 |
?>
|
530 |
</select>
|
531 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
532 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
533 |
</td>
|
534 |
<td>
|
535 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -572,14 +552,12 @@ global $provider;
|
|
572 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
573 |
</td>
|
574 |
<td>
|
575 |
-
<select name="output_type[][]"
|
576 |
<?php
|
577 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
578 |
-
echo $wooFeedDropDown->outputTypes();
|
579 |
?>
|
580 |
</select>
|
581 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
582 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
583 |
</td>
|
584 |
<td>
|
585 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -622,14 +600,12 @@ global $provider;
|
|
622 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
623 |
</td>
|
624 |
<td>
|
625 |
-
<select name="output_type[][]"
|
626 |
<?php
|
627 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
628 |
echo $wooFeedDropDown->outputTypes();
|
629 |
?>
|
630 |
</select>
|
631 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
632 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
633 |
</td>
|
634 |
<td>
|
635 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -672,14 +648,12 @@ global $provider;
|
|
672 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
673 |
</td>
|
674 |
<td>
|
675 |
-
<select name="output_type[][]"
|
676 |
<?php
|
677 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
678 |
echo $wooFeedDropDown->outputTypes();
|
679 |
?>
|
680 |
</select>
|
681 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
682 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
683 |
</td>
|
684 |
<td>
|
685 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
|
|
|
|
65 |
</td>
|
66 |
<td>
|
67 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
104 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
105 |
</td>
|
106 |
<td>
|
107 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
108 |
<?php
|
109 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
110 |
echo $wooFeedDropDown->outputTypes();
|
111 |
?>
|
112 |
</select>
|
|
|
|
|
113 |
</td>
|
114 |
<td>
|
115 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
152 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
153 |
</td>
|
154 |
<td>
|
155 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
156 |
<?php
|
157 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
158 |
echo $wooFeedDropDown->outputTypes();
|
159 |
?>
|
160 |
</select>
|
|
|
|
|
161 |
</td>
|
162 |
<td>
|
163 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
200 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
201 |
</td>
|
202 |
<td>
|
203 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
204 |
<?php
|
205 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
206 |
echo $wooFeedDropDown->outputTypes();
|
207 |
?>
|
208 |
</select>
|
|
|
|
|
209 |
</td>
|
210 |
<td>
|
211 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
248 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
249 |
</td>
|
250 |
<td>
|
251 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
252 |
<?php
|
253 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
254 |
echo $wooFeedDropDown->outputTypes();
|
255 |
?>
|
256 |
</select>
|
|
|
|
|
257 |
</td>
|
258 |
<td>
|
259 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
296 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
297 |
</td>
|
298 |
<td>
|
299 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
300 |
<?php
|
301 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
302 |
echo $wooFeedDropDown->outputTypes();
|
303 |
?>
|
304 |
</select>
|
|
|
|
|
305 |
</td>
|
306 |
<td>
|
307 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
340 |
<!-- </td>-->
|
341 |
<td>
|
342 |
<span class="wf_default wf_attributes">
|
343 |
+
<select name="default[]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
|
344 |
<?php
|
345 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
346 |
echo $wooFeedDropDown->googleTaxonomy();
|
359 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
360 |
</td>
|
361 |
<td>
|
362 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
363 |
<?php
|
364 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
365 |
echo $wooFeedDropDown->outputTypes();
|
366 |
?>
|
367 |
</select>
|
|
|
|
|
368 |
</td>
|
369 |
<td>
|
370 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
407 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
408 |
</td>
|
409 |
<td>
|
410 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
411 |
<?php
|
412 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
413 |
echo $wooFeedDropDown->outputTypes();
|
414 |
?>
|
415 |
</select>
|
|
|
|
|
416 |
</td>
|
417 |
<td>
|
418 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
456 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
457 |
</td>
|
458 |
<td>
|
459 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
460 |
<?php
|
461 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
462 |
echo $wooFeedDropDown->outputTypes();
|
463 |
?>
|
464 |
</select>
|
|
|
|
|
465 |
</td>
|
466 |
<td>
|
467 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
504 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
505 |
</td>
|
506 |
<td>
|
507 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
508 |
<?php
|
509 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
510 |
echo $wooFeedDropDown->outputTypes();
|
511 |
?>
|
512 |
</select>
|
|
|
|
|
513 |
</td>
|
514 |
<td>
|
515 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
552 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
553 |
</td>
|
554 |
<td>
|
555 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
556 |
<?php
|
557 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
558 |
+
echo $wooFeedDropDown->outputTypes( 6 );
|
559 |
?>
|
560 |
</select>
|
|
|
|
|
561 |
</td>
|
562 |
<td>
|
563 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
600 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
601 |
</td>
|
602 |
<td>
|
603 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
604 |
<?php
|
605 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
606 |
echo $wooFeedDropDown->outputTypes();
|
607 |
?>
|
608 |
</select>
|
|
|
|
|
609 |
</td>
|
610 |
<td>
|
611 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
648 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
649 |
</td>
|
650 |
<td>
|
651 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
652 |
<?php
|
653 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
654 |
echo $wooFeedDropDown->outputTypes();
|
655 |
?>
|
656 |
</select>
|
|
|
|
|
657 |
</td>
|
658 |
<td>
|
659 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
admin/partials/templates/pinterest_add-feed.php
CHANGED
@@ -30,7 +30,7 @@ global $provider;
|
|
30 |
<select name="mattributes[]" required class="wf_mattributes">
|
31 |
<?php
|
32 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
33 |
-
echo $wooFeedDropDown->
|
34 |
?>
|
35 |
</select>
|
36 |
</td>
|
@@ -56,14 +56,12 @@ global $provider;
|
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
-
<select name="output_type[][]"
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
65 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
66 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
67 |
</td>
|
68 |
<td>
|
69 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -80,7 +78,7 @@ global $provider;
|
|
80 |
<select name="mattributes[]" required class="wf_mattributes">
|
81 |
<?php
|
82 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
83 |
-
echo $wooFeedDropDown->
|
84 |
?>
|
85 |
</select>
|
86 |
</td>
|
@@ -106,14 +104,12 @@ global $provider;
|
|
106 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
107 |
</td>
|
108 |
<td>
|
109 |
-
<select name="output_type[][]"
|
110 |
<?php
|
111 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
112 |
echo $wooFeedDropDown->outputTypes();
|
113 |
?>
|
114 |
</select>
|
115 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
116 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
117 |
</td>
|
118 |
<td>
|
119 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -130,7 +126,7 @@ global $provider;
|
|
130 |
<select name="mattributes[]" required class="wf_mattributes">
|
131 |
<?php
|
132 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
133 |
-
echo $wooFeedDropDown->
|
134 |
?>
|
135 |
</select>
|
136 |
</td>
|
@@ -156,14 +152,12 @@ global $provider;
|
|
156 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
157 |
</td>
|
158 |
<td>
|
159 |
-
<select name="output_type[][]"
|
160 |
<?php
|
161 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
162 |
echo $wooFeedDropDown->outputTypes();
|
163 |
?>
|
164 |
</select>
|
165 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
166 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
167 |
</td>
|
168 |
<td>
|
169 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -180,7 +174,7 @@ global $provider;
|
|
180 |
<select name="mattributes[]" required class="wf_mattributes">
|
181 |
<?php
|
182 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
183 |
-
echo $wooFeedDropDown->
|
184 |
?>
|
185 |
</select>
|
186 |
</td>
|
@@ -206,14 +200,12 @@ global $provider;
|
|
206 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
207 |
</td>
|
208 |
<td>
|
209 |
-
<select name="output_type[][]"
|
210 |
<?php
|
211 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
212 |
echo $wooFeedDropDown->outputTypes();
|
213 |
?>
|
214 |
</select>
|
215 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
216 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
217 |
</td>
|
218 |
<td>
|
219 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -230,7 +222,7 @@ global $provider;
|
|
230 |
<select name="mattributes[]" required class="wf_mattributes">
|
231 |
<?php
|
232 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
233 |
-
echo $wooFeedDropDown->
|
234 |
?>
|
235 |
</select>
|
236 |
</td>
|
@@ -256,14 +248,12 @@ global $provider;
|
|
256 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
257 |
</td>
|
258 |
<td>
|
259 |
-
<select name="output_type[][]"
|
260 |
<?php
|
261 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
262 |
echo $wooFeedDropDown->outputTypes();
|
263 |
?>
|
264 |
</select>
|
265 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
266 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
267 |
</td>
|
268 |
<td>
|
269 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -280,7 +270,7 @@ global $provider;
|
|
280 |
<select name="mattributes[]" required class="wf_mattributes">
|
281 |
<?php
|
282 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
283 |
-
echo $wooFeedDropDown->
|
284 |
?>
|
285 |
</select>
|
286 |
</td>
|
@@ -306,14 +296,12 @@ global $provider;
|
|
306 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
307 |
</td>
|
308 |
<td>
|
309 |
-
<select name="output_type[][]"
|
310 |
<?php
|
311 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
312 |
echo $wooFeedDropDown->outputTypes();
|
313 |
?>
|
314 |
</select>
|
315 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
316 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
317 |
</td>
|
318 |
<td>
|
319 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -330,7 +318,7 @@ global $provider;
|
|
330 |
<select name="mattributes[]" required class="wf_mattributes">
|
331 |
<?php
|
332 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
333 |
-
echo $wooFeedDropDown->
|
334 |
?>
|
335 |
</select>
|
336 |
</td>
|
@@ -352,7 +340,7 @@ global $provider;
|
|
352 |
<!-- </td>-->
|
353 |
<td>
|
354 |
<span class="wf_default wf_attributes">
|
355 |
-
<select name="default[]" class="selectize">
|
356 |
<?php
|
357 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
358 |
echo $wooFeedDropDown->googleTaxonomy();
|
@@ -371,14 +359,12 @@ global $provider;
|
|
371 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
372 |
</td>
|
373 |
<td>
|
374 |
-
<select name="output_type[][]"
|
375 |
<?php
|
376 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
377 |
echo $wooFeedDropDown->outputTypes();
|
378 |
?>
|
379 |
</select>
|
380 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
381 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
382 |
</td>
|
383 |
<td>
|
384 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -395,7 +381,7 @@ global $provider;
|
|
395 |
<select name="mattributes[]" required class="wf_mattributes">
|
396 |
<?php
|
397 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
398 |
-
echo $wooFeedDropDown->
|
399 |
?>
|
400 |
</select>
|
401 |
</td>
|
@@ -421,14 +407,12 @@ global $provider;
|
|
421 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
422 |
</td>
|
423 |
<td>
|
424 |
-
<select name="output_type[][]"
|
425 |
<?php
|
426 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
427 |
echo $wooFeedDropDown->outputTypes();
|
428 |
?>
|
429 |
</select>
|
430 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
431 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
432 |
</td>
|
433 |
<td>
|
434 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -445,7 +429,7 @@ global $provider;
|
|
445 |
<select name="mattributes[]" required class="wf_mattributes">
|
446 |
<?php
|
447 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
448 |
-
echo $wooFeedDropDown->
|
449 |
?>
|
450 |
</select>
|
451 |
</td>
|
@@ -472,14 +456,12 @@ global $provider;
|
|
472 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
473 |
</td>
|
474 |
<td>
|
475 |
-
<select name="output_type[][]"
|
476 |
<?php
|
477 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
478 |
echo $wooFeedDropDown->outputTypes();
|
479 |
?>
|
480 |
</select>
|
481 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
482 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
483 |
</td>
|
484 |
<td>
|
485 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -496,7 +478,7 @@ global $provider;
|
|
496 |
<select name="mattributes[]" required class="wf_mattributes">
|
497 |
<?php
|
498 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
499 |
-
echo $wooFeedDropDown->
|
500 |
?>
|
501 |
</select>
|
502 |
</td>
|
@@ -522,14 +504,12 @@ global $provider;
|
|
522 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
523 |
</td>
|
524 |
<td>
|
525 |
-
<select name="output_type[][]"
|
526 |
<?php
|
527 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
528 |
echo $wooFeedDropDown->outputTypes();
|
529 |
?>
|
530 |
</select>
|
531 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
532 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
533 |
</td>
|
534 |
<td>
|
535 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -546,7 +526,7 @@ global $provider;
|
|
546 |
<select name="mattributes[]" required class="wf_mattributes">
|
547 |
<?php
|
548 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
549 |
-
echo $wooFeedDropDown->
|
550 |
?>
|
551 |
</select>
|
552 |
</td>
|
@@ -572,14 +552,12 @@ global $provider;
|
|
572 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
573 |
</td>
|
574 |
<td>
|
575 |
-
<select name="output_type[][]"
|
576 |
<?php
|
577 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
578 |
-
echo $wooFeedDropDown->outputTypes();
|
579 |
?>
|
580 |
</select>
|
581 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
582 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
583 |
</td>
|
584 |
<td>
|
585 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -596,7 +574,7 @@ global $provider;
|
|
596 |
<select name="mattributes[]" required class="wf_mattributes">
|
597 |
<?php
|
598 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
599 |
-
echo $wooFeedDropDown->
|
600 |
?>
|
601 |
</select>
|
602 |
</td>
|
@@ -622,14 +600,12 @@ global $provider;
|
|
622 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
623 |
</td>
|
624 |
<td>
|
625 |
-
<select name="output_type[][]"
|
626 |
<?php
|
627 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
628 |
echo $wooFeedDropDown->outputTypes();
|
629 |
?>
|
630 |
</select>
|
631 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
632 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
633 |
</td>
|
634 |
<td>
|
635 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
@@ -646,7 +622,7 @@ global $provider;
|
|
646 |
<select name="mattributes[]" required class="wf_mattributes">
|
647 |
<?php
|
648 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
649 |
-
echo $wooFeedDropDown->
|
650 |
?>
|
651 |
</select>
|
652 |
</td>
|
@@ -672,14 +648,12 @@ global $provider;
|
|
672 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
673 |
</td>
|
674 |
<td>
|
675 |
-
<select name="output_type[][]"
|
676 |
<?php
|
677 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
678 |
echo $wooFeedDropDown->outputTypes();
|
679 |
?>
|
680 |
</select>
|
681 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
682 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
683 |
</td>
|
684 |
<td>
|
685 |
<input type="text" name="limit[]" class="wf_ps">
|
30 |
<select name="mattributes[]" required class="wf_mattributes">
|
31 |
<?php
|
32 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
33 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'id' );
|
34 |
?>
|
35 |
</select>
|
36 |
</td>
|
56 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
57 |
</td>
|
58 |
<td>
|
59 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
60 |
<?php
|
61 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
62 |
echo $wooFeedDropDown->outputTypes();
|
63 |
?>
|
64 |
</select>
|
|
|
|
|
65 |
</td>
|
66 |
<td>
|
67 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
78 |
<select name="mattributes[]" required class="wf_mattributes">
|
79 |
<?php
|
80 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
81 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'title' );
|
82 |
?>
|
83 |
</select>
|
84 |
</td>
|
104 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
105 |
</td>
|
106 |
<td>
|
107 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
108 |
<?php
|
109 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
110 |
echo $wooFeedDropDown->outputTypes();
|
111 |
?>
|
112 |
</select>
|
|
|
|
|
113 |
</td>
|
114 |
<td>
|
115 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
126 |
<select name="mattributes[]" required class="wf_mattributes">
|
127 |
<?php
|
128 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
129 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'description' );
|
130 |
?>
|
131 |
</select>
|
132 |
</td>
|
152 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
153 |
</td>
|
154 |
<td>
|
155 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
156 |
<?php
|
157 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
158 |
echo $wooFeedDropDown->outputTypes();
|
159 |
?>
|
160 |
</select>
|
|
|
|
|
161 |
</td>
|
162 |
<td>
|
163 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
174 |
<select name="mattributes[]" required class="wf_mattributes">
|
175 |
<?php
|
176 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
177 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'item_group_id' );
|
178 |
?>
|
179 |
</select>
|
180 |
</td>
|
200 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
201 |
</td>
|
202 |
<td>
|
203 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
204 |
<?php
|
205 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
206 |
echo $wooFeedDropDown->outputTypes();
|
207 |
?>
|
208 |
</select>
|
|
|
|
|
209 |
</td>
|
210 |
<td>
|
211 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
222 |
<select name="mattributes[]" required class="wf_mattributes">
|
223 |
<?php
|
224 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
225 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'link' );
|
226 |
?>
|
227 |
</select>
|
228 |
</td>
|
248 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
249 |
</td>
|
250 |
<td>
|
251 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
252 |
<?php
|
253 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
254 |
echo $wooFeedDropDown->outputTypes();
|
255 |
?>
|
256 |
</select>
|
|
|
|
|
257 |
</td>
|
258 |
<td>
|
259 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
270 |
<select name="mattributes[]" required class="wf_mattributes">
|
271 |
<?php
|
272 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
273 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'product_type' );
|
274 |
?>
|
275 |
</select>
|
276 |
</td>
|
296 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
297 |
</td>
|
298 |
<td>
|
299 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
300 |
<?php
|
301 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
302 |
echo $wooFeedDropDown->outputTypes();
|
303 |
?>
|
304 |
</select>
|
|
|
|
|
305 |
</td>
|
306 |
<td>
|
307 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
318 |
<select name="mattributes[]" required class="wf_mattributes">
|
319 |
<?php
|
320 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
321 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'current_category' );
|
322 |
?>
|
323 |
</select>
|
324 |
</td>
|
340 |
<!-- </td>-->
|
341 |
<td>
|
342 |
<span class="wf_default wf_attributes">
|
343 |
+
<select name="default[]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
|
344 |
<?php
|
345 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
346 |
echo $wooFeedDropDown->googleTaxonomy();
|
359 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
360 |
</td>
|
361 |
<td>
|
362 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
363 |
<?php
|
364 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
365 |
echo $wooFeedDropDown->outputTypes();
|
366 |
?>
|
367 |
</select>
|
|
|
|
|
368 |
</td>
|
369 |
<td>
|
370 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
381 |
<select name="mattributes[]" required class="wf_mattributes">
|
382 |
<?php
|
383 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
384 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'image' );
|
385 |
?>
|
386 |
</select>
|
387 |
</td>
|
407 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
408 |
</td>
|
409 |
<td>
|
410 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
411 |
<?php
|
412 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
413 |
echo $wooFeedDropDown->outputTypes();
|
414 |
?>
|
415 |
</select>
|
|
|
|
|
416 |
</td>
|
417 |
<td>
|
418 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
429 |
<select name="mattributes[]" required class="wf_mattributes">
|
430 |
<?php
|
431 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
432 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'condition' );
|
433 |
?>
|
434 |
</select>
|
435 |
</td>
|
456 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
457 |
</td>
|
458 |
<td>
|
459 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
460 |
<?php
|
461 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
462 |
echo $wooFeedDropDown->outputTypes();
|
463 |
?>
|
464 |
</select>
|
|
|
|
|
465 |
</td>
|
466 |
<td>
|
467 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
478 |
<select name="mattributes[]" required class="wf_mattributes">
|
479 |
<?php
|
480 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
481 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'availability' );
|
482 |
?>
|
483 |
</select>
|
484 |
</td>
|
504 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
505 |
</td>
|
506 |
<td>
|
507 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
508 |
<?php
|
509 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
510 |
echo $wooFeedDropDown->outputTypes();
|
511 |
?>
|
512 |
</select>
|
|
|
|
|
513 |
</td>
|
514 |
<td>
|
515 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
526 |
<select name="mattributes[]" required class="wf_mattributes">
|
527 |
<?php
|
528 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
529 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'price' );
|
530 |
?>
|
531 |
</select>
|
532 |
</td>
|
552 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( get_woocommerce_currency() ); ?>" autocomplete="off" class="wf_ps">
|
553 |
</td>
|
554 |
<td>
|
555 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
556 |
<?php
|
557 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
558 |
+
echo $wooFeedDropDown->outputTypes( 6 );
|
559 |
?>
|
560 |
</select>
|
|
|
|
|
561 |
</td>
|
562 |
<td>
|
563 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
574 |
<select name="mattributes[]" required class="wf_mattributes">
|
575 |
<?php
|
576 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
577 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'sku' );
|
578 |
?>
|
579 |
</select>
|
580 |
</td>
|
600 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
601 |
</td>
|
602 |
<td>
|
603 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
604 |
<?php
|
605 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
606 |
echo $wooFeedDropDown->outputTypes();
|
607 |
?>
|
608 |
</select>
|
|
|
|
|
609 |
</td>
|
610 |
<td>
|
611 |
<input type="text" name="limit[]" autocomplete="off" class="wf_ps">
|
622 |
<select name="mattributes[]" required class="wf_mattributes">
|
623 |
<?php
|
624 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
625 |
+
echo $wooFeedDropDown->pinterestAttributesDropdown( 'brand' );
|
626 |
?>
|
627 |
</select>
|
628 |
</td>
|
648 |
<input type="text" name="suffix[]" autocomplete="off" class="wf_ps">
|
649 |
</td>
|
650 |
<td>
|
651 |
+
<select name="output_type[][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
652 |
<?php
|
653 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
654 |
echo $wooFeedDropDown->outputTypes();
|
655 |
?>
|
656 |
</select>
|
|
|
|
|
657 |
</td>
|
658 |
<td>
|
659 |
<input type="text" name="limit[]" class="wf_ps">
|
admin/partials/woo-feed-edit-config.php
CHANGED
@@ -62,7 +62,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
62 |
</select>
|
63 |
<?php if ( in_array( $feedRules['provider'], array( 'google', 'facebook', 'pinterest' ) ) && 'current_category' == $mAttribute ) { ?>
|
64 |
<span <?php echo ( 'pattern' == $type[ $merchant ] ) ? '' : 'style=" display: none;" '; ?>class="wf_default wf_attributes">
|
65 |
-
<select name="default[]" class="selectize">
|
66 |
<?php
|
67 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
68 |
echo $wooFeedDropDown->googleTaxonomy( esc_attr( $default[ $merchant ] ) );
|
@@ -78,7 +78,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
78 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( stripslashes( $suffix[ $merchant ] ) ); ?>" autocomplete="off" class="wf_ps"/>
|
79 |
</td>
|
80 |
<td>
|
81 |
-
<select name="output_type[<?php echo esc_attr( $counter ); ?>][]" class="outputType wfnoempty" <?php
|
82 |
<?php
|
83 |
foreach ( woo_feed_get_field_output_type_options() as $key => $option ) {
|
84 |
if ( isset( $outputType[ $counter ] ) ) {
|
@@ -94,8 +94,6 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
94 |
}
|
95 |
?>
|
96 |
</select>
|
97 |
-
<i class="dashicons dashicons-editor-expand expandType"></i>
|
98 |
-
<i style="display: none;" class="dashicons dashicons-editor-contract contractType"></i>
|
99 |
</td>
|
100 |
<td>
|
101 |
<input type="text" name="limit[]" value="<?php echo esc_attr( $limit[ $merchant ] ); ?>" autocomplete="off" class="wf_ps"/>
|
62 |
</select>
|
63 |
<?php if ( in_array( $feedRules['provider'], array( 'google', 'facebook', 'pinterest' ) ) && 'current_category' == $mAttribute ) { ?>
|
64 |
<span <?php echo ( 'pattern' == $type[ $merchant ] ) ? '' : 'style=" display: none;" '; ?>class="wf_default wf_attributes">
|
65 |
+
<select name="default[]" class="selectize" data-placeholder="<?php esc_attr_e( 'Select A Category', 'woo-feed' ); ?>">
|
66 |
<?php
|
67 |
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
|
68 |
echo $wooFeedDropDown->googleTaxonomy( esc_attr( $default[ $merchant ] ) );
|
78 |
<input type="text" name="suffix[]" value="<?php echo esc_attr( stripslashes( $suffix[ $merchant ] ) ); ?>" autocomplete="off" class="wf_ps"/>
|
79 |
</td>
|
80 |
<td>
|
81 |
+
<select name="output_type[<?php echo esc_attr( $counter ); ?>][]" class="outputType wfnoempty" data-placeholder="<?php esc_attr_e( 'Select Output Type', 'woo-feed' ); ?>" multiple>
|
82 |
<?php
|
83 |
foreach ( woo_feed_get_field_output_type_options() as $key => $option ) {
|
84 |
if ( isset( $outputType[ $counter ] ) ) {
|
94 |
}
|
95 |
?>
|
96 |
</select>
|
|
|
|
|
97 |
</td>
|
98 |
<td>
|
99 |
<input type="text" name="limit[]" value="<?php echo esc_attr( $limit[ $merchant ] ); ?>" autocomplete="off" class="wf_ps"/>
|
admin/partials/woo-feed-edit-tabs.php
CHANGED
@@ -16,7 +16,7 @@ $editorTabs = array(
|
|
16 |
'label' => __( 'Feed Config', 'woo-feed' ),
|
17 |
'callback' => 'render_feed_config',
|
18 |
),
|
19 |
-
'filter'
|
20 |
'label' => __( 'Filter', 'woo-feed' ),
|
21 |
'callback' => 'render_filter_config',
|
22 |
),
|
16 |
'label' => __( 'Feed Config', 'woo-feed' ),
|
17 |
'callback' => 'render_feed_config',
|
18 |
),
|
19 |
+
'filter' => array(
|
20 |
'label' => __( 'Filter', 'woo-feed' ),
|
21 |
'callback' => 'render_filter_config',
|
22 |
),
|
includes/class-woo-feed-activator.php
DELETED
@@ -1,42 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Fired during plugin activation
|
5 |
-
*
|
6 |
-
* @link http://example.com
|
7 |
-
* @since 1.0.0
|
8 |
-
*
|
9 |
-
* @package Woo_Feed
|
10 |
-
* @subpackage Woo_Feed/includes
|
11 |
-
*/
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Fired during plugin activation.
|
15 |
-
*
|
16 |
-
* This class defines all code necessary to run during the plugin's activation.
|
17 |
-
*
|
18 |
-
* @since 1.0.0
|
19 |
-
* @package Woo_Feed
|
20 |
-
* @subpackage Woo_Feed/includes
|
21 |
-
* @author Your Name <email@example.com>
|
22 |
-
*/
|
23 |
-
class Woo_Feed_Activator
|
24 |
-
{
|
25 |
-
|
26 |
-
/**
|
27 |
-
* Short Description. (use period)
|
28 |
-
*
|
29 |
-
* Long Description.
|
30 |
-
*
|
31 |
-
* @since 1.0.0
|
32 |
-
*/
|
33 |
-
public static function activate() {
|
34 |
-
# Schedule Update Interval
|
35 |
-
update_option('wf_schedule', '86400');
|
36 |
-
# Schedule Cron
|
37 |
-
wp_schedule_event(time(), 'woo_feed_corn', 'woo_feed_update');
|
38 |
-
|
39 |
-
|
40 |
-
}
|
41 |
-
|
42 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-woo-feed-deactivator.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Fired during plugin deactivation
|
5 |
-
*
|
6 |
-
* @link http://example.com
|
7 |
-
* @since 1.0.0
|
8 |
-
*
|
9 |
-
* @package Woo_Feed
|
10 |
-
* @subpackage Woo_Feed/includes
|
11 |
-
*/
|
12 |
-
|
13 |
-
/**
|
14 |
-
* Fired during plugin deactivation.
|
15 |
-
*
|
16 |
-
* This class defines all code necessary to run during the plugin's deactivation.
|
17 |
-
*
|
18 |
-
* @since 1.0.0
|
19 |
-
* @package Woo_Feed
|
20 |
-
* @subpackage Woo_Feed/includes
|
21 |
-
* @author Ohidul Islam <wahid@webappick.com>
|
22 |
-
*/
|
23 |
-
class Woo_Feed_Deactivator {
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Short Description. (use period)
|
27 |
-
*
|
28 |
-
* Long Description.
|
29 |
-
*
|
30 |
-
* @since 1.0.0
|
31 |
-
*/
|
32 |
-
public static function deactivate() {
|
33 |
-
wp_clear_scheduled_hook('woo_feed_update');
|
34 |
-
}
|
35 |
-
|
36 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-woo-feed-docs.php
CHANGED
@@ -50,105 +50,72 @@ if ( ! class_exists( 'WooFeedDocs' ) ) {
|
|
50 |
<div class="wrap wapk-admin wapk-feed-docs">
|
51 |
<div class="wapk-section">
|
52 |
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
<?php
|
64 |
-
|
65 |
-
|
66 |
-
?>
|
67 |
-
</span>
|
68 |
-
<span class="toggle-indicator" aria-hidden="true"></span>
|
69 |
-
</button>
|
70 |
-
<h2 class="hndle">
|
71 |
-
<?php
|
72 |
-
if ( isset( $faq->icon ) && ! empty( $faq->icon ) ) {
|
73 |
?>
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
<div class="main">
|
81 |
-
<ul>
|
82 |
-
<?php foreach ( $faq->questions as $qa ) { ?>
|
83 |
-
<li>
|
84 |
-
<span class="
|
85 |
-
<?php
|
86 |
-
if ( isset( $qa->icon ) ) {
|
87 |
-
printf( '%s%s', ( strpos( $qa->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $qa->icon ) );
|
88 |
-
} else {
|
89 |
-
?>dashicons dashicons-media-text<?php
|
90 |
-
} ?>" aria-hidden="true"></span>
|
91 |
-
<a href="<?php echo esc_url( $qa->link ); ?>" target="_blank"><?php echo esc_html( $qa->title ); ?></a>
|
92 |
-
</li>
|
93 |
-
<?php } ?>
|
94 |
-
</ul>
|
95 |
-
</div>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
-
<?php } ?>
|
99 |
-
</div>
|
100 |
-
<div class="clear"></div>
|
101 |
-
<div class="wapk-section wapk-feed-cta">
|
102 |
-
<div class="wapk-cta">
|
103 |
-
<div class="wapk-cta-icon">
|
104 |
-
<span class="dashicons dashicons-editor-help" aria-hidden="true"></span>
|
105 |
-
</div>
|
106 |
-
<div class="wapk-cta-content">
|
107 |
-
<h2><?php _e( 'Still need help?', 'woo-feed' ); ?></h2>
|
108 |
-
<p>
|
109 |
-
<?php
|
110 |
-
_e(
|
111 |
-
'Have we not answered your question?<br>Don\'t worry, you can contact us for more information...',
|
112 |
-
'woo-feed'
|
113 |
-
)
|
114 |
-
?>
|
115 |
-
</p>
|
116 |
-
</div>
|
117 |
-
<div class="wapk-cta-action">
|
118 |
-
<a href="https://webappick.com/support/" class="button button-primary button-hero" target="_blank"><?php _e( 'Get Support', 'woo-feed' ); ?></a>
|
119 |
</div>
|
120 |
</div>
|
121 |
</div>
|
122 |
-
|
|
|
123 |
<div class="notice notice-warning">
|
124 |
-
<p
|
125 |
-
|
126 |
-
printf(
|
127 |
/* translators: %s: Reload Button */
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
</p>
|
137 |
-
<p>
|
138 |
-
<?php
|
139 |
-
printf(
|
140 |
-
/* translators: %s: Support Button */
|
141 |
-
esc_html__( 'If the problem persist please contact %s.', 'woo-feed' ),
|
142 |
-
sprintf(
|
143 |
-
'<a href="%s">%s</a>',
|
144 |
-
'https://webappick.com/support/',
|
145 |
-
esc_html__( 'our support', 'woo-feed' )
|
146 |
-
)
|
147 |
-
);
|
148 |
-
?>
|
149 |
-
</p>
|
150 |
</div>
|
151 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
</div>
|
153 |
<?php
|
154 |
}
|
@@ -160,10 +127,7 @@ if ( ! class_exists( 'WooFeedDocs' ) ) {
|
|
160 |
*/
|
161 |
private function __get_feed_help() {
|
162 |
// force fetch docs json.
|
163 |
-
if ( isset( $_GET['reload'], $_GET['_nonce'] ) && wp_verify_nonce(
|
164 |
-
sanitize_text_field( $_GET['_nonce'] ),
|
165 |
-
'webappick-feed-docs'
|
166 |
-
) ) {
|
167 |
$help_docs = false;
|
168 |
} else {
|
169 |
$help_docs = get_transient( 'webappick_feed_help_docs' );
|
50 |
<div class="wrap wapk-admin wapk-feed-docs">
|
51 |
<div class="wapk-section">
|
52 |
<h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
|
53 |
+
<?php if ( ! empty( $faqs ) ) { ?>
|
54 |
+
<?php
|
55 |
+
foreach ( $faqs as $faq ) {
|
56 |
+
$boxId = ( isset( $faq->id ) ) ? $faq->id : sanitize_title( $faq->title );
|
57 |
+
if ( ! isset( $faq->icon ) ) $faq->icon = 'dashicons-admin-generic';
|
58 |
+
?>
|
59 |
+
<div id="<?php echo esc_attr( $boxId ); ?>" class="postbox <?php echo esc_attr( postbox_classes( $boxId, $current_screen->id ) ); ?>">
|
60 |
+
<button type="button" class="handlediv" aria-expanded="true">
|
61 |
+
<span class="screen-reader-text"><?php
|
62 |
+
/* translators: %s: FAQ Title */
|
63 |
+
printf( esc_html__( 'Toggle panel: %s', 'woo-feed' ), esc_html( $faq->title ) )
|
64 |
+
?></span>
|
65 |
+
<span class="toggle-indicator" aria-hidden="true"></span>
|
66 |
+
</button>
|
67 |
+
<h2 class="hndle">
|
68 |
+
<span class="<?php printf( '%s%s', ( strpos( $faq->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $faq->icon ) ); ?>" aria-hidden="true"></span>
|
69 |
+
<span><?php echo esc_html( $faq->title ); ?></span>
|
70 |
+
</h2>
|
71 |
+
<div class="inside">
|
72 |
+
<div class="main">
|
73 |
+
<ul>
|
74 |
<?php
|
75 |
+
foreach ( $faq->questions as $qa ) {
|
76 |
+
if ( ! isset( $qa->icon ) ) $qa->icon = 'dashicons-media-text';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
?>
|
78 |
+
<li>
|
79 |
+
<span class="<?php printf( '%s%s', ( strpos( $qa->icon, 'dashicons' ) !== false ) ? 'dashicons ' : '', esc_attr( $qa->icon ) ); ?>" aria-hidden="true"></span>
|
80 |
+
<a href="<?php echo esc_url( $qa->link ); ?>" target="_blank"><?php echo esc_html( $qa->title ); ?></a>
|
81 |
+
</li>
|
82 |
+
<?php } ?>
|
83 |
+
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
</div>
|
85 |
</div>
|
86 |
</div>
|
87 |
+
<?php } ?>
|
88 |
+
<?php } else { ?>
|
89 |
<div class="notice notice-warning">
|
90 |
+
<p><?php
|
91 |
+
printf(
|
|
|
92 |
/* translators: %s: Reload Button */
|
93 |
+
esc_html__( 'There\'s some problem loading the docs. Please Click %s To Fetch Again.', 'woo-feed' ),
|
94 |
+
sprintf(
|
95 |
+
'<a href="%s">%s</a>',
|
96 |
+
esc_url( admin_url( 'admin.php?page=webappick-feed-docs&reload=1&_nonce=' . wp_create_nonce( 'webappick-feed-docs' ) ) ),
|
97 |
+
esc_html__( 'Here', 'woo-feed' )
|
98 |
+
)
|
99 |
+
);
|
100 |
+
?></p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
</div>
|
102 |
+
<?php } ?>
|
103 |
+
</div>
|
104 |
+
<div class="clear"></div>
|
105 |
+
<div class="wapk-section wapk-feed-cta">
|
106 |
+
<div class="wapk-cta">
|
107 |
+
<div class="wapk-cta-icon">
|
108 |
+
<span class="dashicons dashicons-editor-help" aria-hidden="true"></span>
|
109 |
+
</div>
|
110 |
+
<div class="wapk-cta-content">
|
111 |
+
<h2><?php _e( 'Still need help?', 'woo-feed' ); ?></h2>
|
112 |
+
<p><?php _e( 'Have we not answered your question?<br>Don\'t worry, you can contact us for more information...', 'woo-feed' ); ?></p>
|
113 |
+
</div>
|
114 |
+
<div class="wapk-cta-action">
|
115 |
+
<a href="https://wordpress.org/support/plugin/webappick-product-feed-for-woocommerce/#new-topic-0" class="wapk-button wapk-button-primary wapk-button-hero" rel="noopener" target="_blank"><?php _e( 'Get Support', 'woo-feed' ); ?></a>
|
116 |
+
</div>
|
117 |
+
</div>
|
118 |
+
</div>
|
119 |
</div>
|
120 |
<?php
|
121 |
}
|
127 |
*/
|
128 |
private function __get_feed_help() {
|
129 |
// force fetch docs json.
|
130 |
+
if ( isset( $_GET['reload'], $_GET['_nonce'] ) && wp_verify_nonce( sanitize_text_field( $_GET['_nonce'] ), 'webappick-feed-docs' ) ) {
|
|
|
|
|
|
|
131 |
$help_docs = false;
|
132 |
} else {
|
133 |
$help_docs = get_transient( 'webappick_feed_help_docs' );
|
includes/class-woo-feed-i18n.php
CHANGED
@@ -53,7 +53,7 @@ class Woo_Feed_i18n {
|
|
53 |
* Set the domain equal to that of the specified domain.
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
-
* @param string
|
57 |
*/
|
58 |
public function set_domain( $domain ) {
|
59 |
$this->domain = $domain;
|
53 |
* Set the domain equal to that of the specified domain.
|
54 |
*
|
55 |
* @since 1.0.0
|
56 |
+
* @param string $domain The domain that represents the locale of this plugin.
|
57 |
*/
|
58 |
public function set_domain( $domain ) {
|
59 |
$this->domain = $domain;
|
includes/class-woo-feed-loader.php
CHANGED
@@ -57,11 +57,11 @@ class Woo_Feed_Loader {
|
|
57 |
* Add a new action to the collection to be registered with WordPress.
|
58 |
*
|
59 |
* @since 1.0.0
|
60 |
-
* @param string
|
61 |
-
* @param object
|
62 |
-
* @param string
|
63 |
-
* @param int
|
64 |
-
* @param int
|
65 |
*/
|
66 |
public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
67 |
$this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
|
@@ -71,14 +71,15 @@ class Woo_Feed_Loader {
|
|
71 |
* Add a new filter to the collection to be registered with WordPress.
|
72 |
*
|
73 |
* @since 1.0.0
|
74 |
-
* @param string
|
75 |
-
* @param object
|
76 |
-
* @param string
|
77 |
-
* @param int
|
78 |
-
* @param int
|
79 |
*/
|
80 |
public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
81 |
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
|
|
|
82 |
}
|
83 |
|
84 |
/**
|
@@ -87,12 +88,12 @@ class Woo_Feed_Loader {
|
|
87 |
*
|
88 |
* @since 1.0.0
|
89 |
* @access private
|
90 |
-
* @param array
|
91 |
-
* @param string
|
92 |
-
* @param object
|
93 |
-
* @param string
|
94 |
-
* @param int
|
95 |
-
* @param int
|
96 |
* @return array The collection of actions and filters registered with WordPress.
|
97 |
*/
|
98 |
private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
|
@@ -125,5 +126,4 @@ class Woo_Feed_Loader {
|
|
125 |
}
|
126 |
|
127 |
}
|
128 |
-
|
129 |
-
}
|
57 |
* Add a new action to the collection to be registered with WordPress.
|
58 |
*
|
59 |
* @since 1.0.0
|
60 |
+
* @param string $hook The name of the WordPress action that is being registered.
|
61 |
+
* @param object $component A reference to the instance of the object on which the action is defined.
|
62 |
+
* @param string $callback The name of the function definition on the $component.
|
63 |
+
* @param int $priority Optional. he priority at which the function should be fired. Default is 10.
|
64 |
+
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
|
65 |
*/
|
66 |
public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
67 |
$this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
|
71 |
* Add a new filter to the collection to be registered with WordPress.
|
72 |
*
|
73 |
* @since 1.0.0
|
74 |
+
* @param string $hook The name of the WordPress filter that is being registered.
|
75 |
+
* @param object $component A reference to the instance of the object on which the filter is defined.
|
76 |
+
* @param string $callback The name of the function definition on the $component.
|
77 |
+
* @param int $priority Optional. he priority at which the function should be fired. Default is 10.
|
78 |
+
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1
|
79 |
*/
|
80 |
public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
|
81 |
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
|
82 |
+
|
83 |
}
|
84 |
|
85 |
/**
|
88 |
*
|
89 |
* @since 1.0.0
|
90 |
* @access private
|
91 |
+
* @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
|
92 |
+
* @param string $hook The name of the WordPress filter that is being registered.
|
93 |
+
* @param object $component A reference to the instance of the object on which the filter is defined.
|
94 |
+
* @param string $callback The name of the function definition on the $component.
|
95 |
+
* @param int $priority The priority at which the function should be fired.
|
96 |
+
* @param int $accepted_args The number of arguments that should be passed to the $callback.
|
97 |
* @return array The collection of actions and filters registered with WordPress.
|
98 |
*/
|
99 |
private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
|
126 |
}
|
127 |
|
128 |
}
|
129 |
+
}
|
|
includes/class-woo-feed.php
CHANGED
@@ -13,6 +13,7 @@
|
|
13 |
* @subpackage Woo_Feed/includes
|
14 |
*/
|
15 |
/** @define "WOO_FEED_FREE_PATH''./../" */
|
|
|
16 |
/**
|
17 |
* The core plugin class.
|
18 |
*
|
@@ -27,240 +28,234 @@
|
|
27 |
* @subpackage Woo_Feed/includes
|
28 |
* @author Wahid <wahid0003@gmail.com.com>
|
29 |
*/
|
30 |
-
class Woo_Feed
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
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 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
* @return string The version number of the plugin.
|
261 |
-
*/
|
262 |
-
public function get_version() {
|
263 |
-
return $this->version;
|
264 |
-
}
|
265 |
-
|
266 |
}
|
13 |
* @subpackage Woo_Feed/includes
|
14 |
*/
|
15 |
/** @define "WOO_FEED_FREE_PATH''./../" */
|
16 |
+
|
17 |
/**
|
18 |
* The core plugin class.
|
19 |
*
|
28 |
* @subpackage Woo_Feed/includes
|
29 |
* @author Wahid <wahid0003@gmail.com.com>
|
30 |
*/
|
31 |
+
class Woo_Feed {
|
32 |
+
|
33 |
+
/**
|
34 |
+
* The loader that's responsible for maintaining and registering all hooks that power
|
35 |
+
* the plugin.
|
36 |
+
*
|
37 |
+
* @since 1.0.0
|
38 |
+
* @access protected
|
39 |
+
* @var Woo_Feed_Loader $loader Maintains and registers all hooks for the plugin.
|
40 |
+
*/
|
41 |
+
protected $loader;
|
42 |
+
|
43 |
+
/**
|
44 |
+
* The unique identifier of this plugin.
|
45 |
+
*
|
46 |
+
* @since 1.0.0
|
47 |
+
* @access protected
|
48 |
+
* @var string $woo_feed The string used to uniquely identify this plugin.
|
49 |
+
*/
|
50 |
+
protected $woo_feed;
|
51 |
+
|
52 |
+
/**
|
53 |
+
* The current version of the plugin.
|
54 |
+
*
|
55 |
+
* @since 1.0.0
|
56 |
+
* @access protected
|
57 |
+
* @var string $version The current version of the plugin.
|
58 |
+
*/
|
59 |
+
protected $version;
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Define the core functionality of the plugin.
|
63 |
+
*
|
64 |
+
* Set the plugin name and the plugin version that can be used throughout the plugin.
|
65 |
+
* Load the dependencies, define the locale, and set the hooks for the admin area and
|
66 |
+
* the public-facing side of the site.
|
67 |
+
*
|
68 |
+
* @since 1.0.0
|
69 |
+
*/
|
70 |
+
public function __construct() {
|
71 |
+
$this->woo_feed = 'woo-feed';
|
72 |
+
$this->version = WOO_FEED_FREE_VERSION;
|
73 |
+
}
|
74 |
+
|
75 |
+
|
76 |
+
/**
|
77 |
+
* Load the required dependencies for this plugin.
|
78 |
+
*
|
79 |
+
* Include the following files that make up the plugin:
|
80 |
+
*
|
81 |
+
* - Woo_Feed_Loader. Orchestrates the hooks of the plugin.
|
82 |
+
* - Woo_Feed_i18n. Defines internationalization functionality.
|
83 |
+
* - Woo_Feed_Admin. Defines all hooks for the admin area.
|
84 |
+
* - Woo_Feed_Public. Defines all hooks for the public side of the site.
|
85 |
+
*
|
86 |
+
* Create an instance of the loader which will be used to register the hooks
|
87 |
+
* with WordPress.
|
88 |
+
*
|
89 |
+
* @since 1.0.0
|
90 |
+
* @access private
|
91 |
+
*/
|
92 |
+
private function load_dependencies() {
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Load Error Logger File Handler
|
96 |
+
*/
|
97 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-log-handler-file.php';
|
98 |
+
/**
|
99 |
+
* Support for older version of WooCommerce
|
100 |
+
*/
|
101 |
+
require_once WOO_FEED_FREE_PATH . 'includes/wc-legacy-support.php';
|
102 |
+
/**
|
103 |
+
* The class responsible for orchestrating the actions and filters of the
|
104 |
+
* core plugin.
|
105 |
+
*/
|
106 |
+
require_once WOO_FEED_FREE_PATH . 'includes/class-woo-feed-loader.php';
|
107 |
+
|
108 |
+
/**
|
109 |
+
* The class responsible for defining internationalization functionality
|
110 |
+
* of the plugin.
|
111 |
+
*/
|
112 |
+
require_once WOO_FEED_FREE_PATH . 'includes/class-woo-feed-i18n.php';
|
113 |
+
|
114 |
+
/**
|
115 |
+
* The class responsible for getting all product information
|
116 |
+
* of the plugin.
|
117 |
+
*/
|
118 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-products.php';
|
119 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-products-v3.php';
|
120 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-merchant.php';
|
121 |
+
|
122 |
+
/**
|
123 |
+
* The class responsible for processing feed
|
124 |
+
*/
|
125 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-engine.php';
|
126 |
+
|
127 |
+
/**
|
128 |
+
* The class contain all merchants attribute dropdown
|
129 |
+
*/
|
130 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-dropdown.php';
|
131 |
+
|
132 |
+
/**
|
133 |
+
* The class contain merchant attributes
|
134 |
+
*/
|
135 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-default-attributes.php';
|
136 |
+
|
137 |
+
/**
|
138 |
+
* The class responsible for generating feed
|
139 |
+
*/
|
140 |
+
require_once WOO_FEED_FREE_PATH . 'includes/feeds/class-woo-feed-generate.php';
|
141 |
+
|
142 |
+
/**
|
143 |
+
* The class is a FTP library
|
144 |
+
*/
|
145 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-ftp.php';
|
146 |
+
|
147 |
+
/**
|
148 |
+
* The class responsible for save feed
|
149 |
+
*/
|
150 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-savefile.php';
|
151 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-admin-message.php';
|
152 |
+
/**
|
153 |
+
* Merchant classes
|
154 |
+
*/
|
155 |
+
require_once WOO_FEED_FREE_PATH . 'includes/feeds/class-woo-feed-google.php';
|
156 |
+
require_once WOO_FEED_FREE_PATH . 'includes/feeds/class-woo-feed-facebook.php';
|
157 |
+
require_once WOO_FEED_FREE_PATH . 'includes/feeds/class-woo-feed-pinterest.php';
|
158 |
+
require_once WOO_FEED_FREE_PATH . 'includes/feeds/class-woo-feed-custom.php';
|
159 |
+
/**
|
160 |
+
* Docs Page Class
|
161 |
+
*/
|
162 |
+
require_once WOO_FEED_FREE_PATH . 'includes/class-woo-feed-docs.php';
|
163 |
+
/**
|
164 |
+
* The class responsible for defining all actions that occur in the admin area.
|
165 |
+
*/
|
166 |
+
require_once WOO_FEED_FREE_PATH . 'admin/class-woo-feed-admin.php';
|
167 |
+
|
168 |
+
/**
|
169 |
+
* The class responsible for making list table
|
170 |
+
*/
|
171 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-list-table.php';
|
172 |
+
|
173 |
+
|
174 |
+
/**
|
175 |
+
* The class responsible for making feed list
|
176 |
+
*/
|
177 |
+
require_once WOO_FEED_FREE_PATH . 'admin/class-woo-feed-manage-list.php';
|
178 |
+
|
179 |
+
require_once WOO_FEED_FREE_PATH . 'includes/classes/class-woo-feed-sftp.php';
|
180 |
+
|
181 |
+
$this->loader = new Woo_Feed_Loader();
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Define the locale for this plugin for internationalization.
|
186 |
+
*
|
187 |
+
* Uses the Woo_Feed_i18n class in order to set the domain and to register the hook
|
188 |
+
* with WordPress.
|
189 |
+
*
|
190 |
+
* @since 1.0.0
|
191 |
+
* @access private
|
192 |
+
*/
|
193 |
+
private function set_locale() {
|
194 |
+
$plugin_i18n = new Woo_Feed_i18n();
|
195 |
+
$plugin_i18n->set_domain( $this->get_woo_feed() );
|
196 |
+
$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
|
197 |
+
}
|
198 |
+
|
199 |
+
/**
|
200 |
+
* Register all of the hooks related to the admin area functionality
|
201 |
+
* of the plugin.
|
202 |
+
*
|
203 |
+
* @since 1.0.0
|
204 |
+
* @access private
|
205 |
+
*/
|
206 |
+
private function define_admin_hooks() {
|
207 |
+
|
208 |
+
$plugin_admin = new Woo_Feed_Admin( $this->get_woo_feed(), $this->get_version() );
|
209 |
+
|
210 |
+
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' );
|
211 |
+
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' );
|
212 |
+
$this->loader->add_action( 'admin_menu', $plugin_admin, 'load_admin_pages' );
|
213 |
+
$this->loader->add_action( 'admin_page_access_denied', $plugin_admin, 'handle_old_menu_slugs' );
|
214 |
+
$this->loader->add_filter( 'plugin_action_links_' . WOO_FEED_PLUGIN_BASE_NAME, $plugin_admin, 'woo_feed_plugin_action_links' );
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Run the loader to execute all of the hooks with WordPress.
|
219 |
+
*
|
220 |
+
* @since 1.0.0
|
221 |
+
*/
|
222 |
+
public function run() {
|
223 |
+
if ( wooFeed_check_WC() && wooFeed_is_WC_supported() ) {
|
224 |
+
$this->load_dependencies();
|
225 |
+
$this->set_locale();
|
226 |
+
$this->define_admin_hooks();
|
227 |
+
$this->loader->run();
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
/**
|
232 |
+
* The name of the plugin used to uniquely identify it within the context of
|
233 |
+
* WordPress and to define internationalization functionality.
|
234 |
+
*
|
235 |
+
* @return string The name of the plugin.
|
236 |
+
* @since 1.0.0
|
237 |
+
*/
|
238 |
+
public function get_woo_feed() {
|
239 |
+
return $this->woo_feed;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* The reference to the class that orchestrates the hooks with the plugin.
|
244 |
+
*
|
245 |
+
* @return Woo_Feed_Loader Orchestrates the hooks of the plugin.
|
246 |
+
* @since 1.0.0
|
247 |
+
*/
|
248 |
+
public function get_loader() {
|
249 |
+
return $this->loader;
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Retrieve the version number of the plugin.
|
254 |
+
*
|
255 |
+
* @return string The version number of the plugin.
|
256 |
+
* @since 1.0.0
|
257 |
+
*/
|
258 |
+
public function get_version() {
|
259 |
+
return $this->version;
|
260 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
}
|
includes/classes/class-woo-feed-admin-message.php
CHANGED
@@ -93,6 +93,7 @@ final class Woo_Feed_Message {
|
|
93 |
*/
|
94 |
private function display_support_links() {
|
95 |
?>
|
|
|
96 |
<table class="wf-info-table widefat fixed">
|
97 |
<tbody>
|
98 |
<tr>
|
93 |
*/
|
94 |
private function display_support_links() {
|
95 |
?>
|
96 |
+
<br>
|
97 |
<table class="wf-info-table widefat fixed">
|
98 |
<tbody>
|
99 |
<tr>
|
includes/classes/class-woo-feed-dropdown.php
CHANGED
@@ -59,10 +59,18 @@ class Woo_Feed_Dropdown {
|
|
59 |
return $str;
|
60 |
}
|
61 |
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
63 |
$output_types = '';
|
|
|
|
|
|
|
64 |
foreach ( $this->output_types as $key => $value ) {
|
65 |
-
$output_types .= "<option value=\"{$key}\"".selected( $
|
66 |
}
|
67 |
// @TODO remove update_option( 'woo_feed_output_type_options', $output_types, false );
|
68 |
|
59 |
return $str;
|
60 |
}
|
61 |
|
62 |
+
/**
|
63 |
+
* @param int|int[] $selected
|
64 |
+
*
|
65 |
+
* @return string
|
66 |
+
*/
|
67 |
+
public function outputTypes( $selected = 1 ) {
|
68 |
$output_types = '';
|
69 |
+
if ( ! is_array( $selected ) ) {
|
70 |
+
$selected = (array) $selected;
|
71 |
+
}
|
72 |
foreach ( $this->output_types as $key => $value ) {
|
73 |
+
$output_types .= "<option value=\"{$key}\"".selected( in_array( $key, $selected ), true, false ).">{$value}</option>";
|
74 |
}
|
75 |
// @TODO remove update_option( 'woo_feed_output_type_options', $output_types, false );
|
76 |
|
includes/classes/class-woo-feed-list-table.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<?php
|
2 |
/**
|
3 |
* Administration API: WP_List_Table class
|
4 |
*
|
@@ -10,6 +10,8 @@
|
|
10 |
/**
|
11 |
* Base class for displaying a list of items in an ajaxified HTML table.
|
12 |
*
|
|
|
|
|
13 |
* @since 3.1.0
|
14 |
* @access private
|
15 |
*/
|
@@ -190,7 +192,7 @@ class Woo_Feed_List_Table {
|
|
190 |
* @access public
|
191 |
*
|
192 |
* @param string $name Property to get.
|
193 |
-
* @return mixed Property.
|
194 |
*/
|
195 |
public function __get( $name ) {
|
196 |
if ( in_array( $name, $this->compat_fields ) ) {
|
@@ -206,7 +208,7 @@ class Woo_Feed_List_Table {
|
|
206 |
*
|
207 |
* @param string $name Property to check if set.
|
208 |
* @param mixed $value Property value.
|
209 |
-
* @return mixed Newly-set property.
|
210 |
*/
|
211 |
public function __set( $name, $value ) {
|
212 |
if ( in_array( $name, $this->compat_fields ) ) {
|
@@ -227,6 +229,7 @@ class Woo_Feed_List_Table {
|
|
227 |
if ( in_array( $name, $this->compat_fields ) ) {
|
228 |
return isset( $this->$name );
|
229 |
}
|
|
|
230 |
}
|
231 |
|
232 |
/**
|
@@ -323,7 +326,7 @@ class Woo_Feed_List_Table {
|
|
323 |
*
|
324 |
* @param string $key Pagination argument to retrieve. Common values include 'total_items',
|
325 |
* 'total_pages', 'per_page', or 'infinite_scroll'.
|
326 |
-
* @return int Number of items that correspond to the given pagination argument.
|
327 |
*/
|
328 |
public function get_pagination_arg( $key ) {
|
329 |
if ( 'page' === $key ) {
|
@@ -496,7 +499,7 @@ class Woo_Feed_List_Table {
|
|
496 |
foreach ( $this->_actions as $name => $title ) {
|
497 |
$class = 'edit' === $name ? ' class="hide-if-no-js"' : '';
|
498 |
|
499 |
-
echo "\t" . '<option value="' . $name . '"' . $class . '>' . $title . "</option>\n";
|
500 |
}
|
501 |
|
502 |
echo "</select>\n";
|
@@ -938,7 +941,7 @@ class Woo_Feed_List_Table {
|
|
938 |
* @access public
|
939 |
* @abstract
|
940 |
*
|
941 |
-
* @return array
|
942 |
*/
|
943 |
public function get_columns() {
|
944 |
die( 'function WP_List_Table::get_columns() must be over-ridden in a sub-class.' );
|
@@ -1327,12 +1330,14 @@ class Woo_Feed_List_Table {
|
|
1327 |
*
|
1328 |
* @param object $item
|
1329 |
* @param string $column_name
|
|
|
1330 |
*/
|
1331 |
protected function column_default( $item, $column_name ) {}
|
1332 |
|
1333 |
/**
|
1334 |
*
|
1335 |
* @param object $item
|
|
|
1336 |
*/
|
1337 |
protected function column_cb( $item ) {}
|
1338 |
|
1 |
+
<?php /** @noinspection PhpUnusedLocalVariableInspection, PhpUnused, PhpUnusedParameterInspection, DuplicatedCode, HtmlUnknownTarget */
|
2 |
/**
|
3 |
* Administration API: WP_List_Table class
|
4 |
*
|
10 |
/**
|
11 |
* Base class for displaying a list of items in an ajaxified HTML table.
|
12 |
*
|
13 |
+
* @see WP_List_Table
|
14 |
+
*
|
15 |
* @since 3.1.0
|
16 |
* @access private
|
17 |
*/
|
192 |
* @access public
|
193 |
*
|
194 |
* @param string $name Property to get.
|
195 |
+
* @return mixed|void Property.
|
196 |
*/
|
197 |
public function __get( $name ) {
|
198 |
if ( in_array( $name, $this->compat_fields ) ) {
|
208 |
*
|
209 |
* @param string $name Property to check if set.
|
210 |
* @param mixed $value Property value.
|
211 |
+
* @return mixed|void Newly-set property.
|
212 |
*/
|
213 |
public function __set( $name, $value ) {
|
214 |
if ( in_array( $name, $this->compat_fields ) ) {
|
229 |
if ( in_array( $name, $this->compat_fields ) ) {
|
230 |
return isset( $this->$name );
|
231 |
}
|
232 |
+
return false;
|
233 |
}
|
234 |
|
235 |
/**
|
326 |
*
|
327 |
* @param string $key Pagination argument to retrieve. Common values include 'total_items',
|
328 |
* 'total_pages', 'per_page', or 'infinite_scroll'.
|
329 |
+
* @return int|void Number of items that correspond to the given pagination argument.
|
330 |
*/
|
331 |
public function get_pagination_arg( $key ) {
|
332 |
if ( 'page' === $key ) {
|
499 |
foreach ( $this->_actions as $name => $title ) {
|
500 |
$class = 'edit' === $name ? ' class="hide-if-no-js"' : '';
|
501 |
|
502 |
+
echo "\t" . '<option value="' . $name . '" ' . $class . '>' . $title . "</option>\n";
|
503 |
}
|
504 |
|
505 |
echo "</select>\n";
|
941 |
* @access public
|
942 |
* @abstract
|
943 |
*
|
944 |
+
* @return void|array
|
945 |
*/
|
946 |
public function get_columns() {
|
947 |
die( 'function WP_List_Table::get_columns() must be over-ridden in a sub-class.' );
|
1330 |
*
|
1331 |
* @param object $item
|
1332 |
* @param string $column_name
|
1333 |
+
* @return void|string
|
1334 |
*/
|
1335 |
protected function column_default( $item, $column_name ) {}
|
1336 |
|
1337 |
/**
|
1338 |
*
|
1339 |
* @param object $item
|
1340 |
+
* @return void|string
|
1341 |
*/
|
1342 |
protected function column_cb( $item ) {}
|
1343 |
|
includes/classes/class-woo-feed-products-v3.php
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
<?php /** @noinspection PhpUnusedPrivateMethodInspection, PhpUnused, PhpUnusedLocalVariableInspection, DuplicatedCode */
|
|
|
2 |
/**
|
3 |
* Created by PhpStorm.
|
4 |
* User: wahid
|
@@ -6,18 +7,69 @@
|
|
6 |
* Time: 5:10 PM
|
7 |
*/
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
class Woo_Feed_Products_v3 {
|
10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
public $feedHeader;
|
|
|
|
|
|
|
|
|
12 |
public $feedBody;
|
|
|
|
|
|
|
|
|
13 |
public $feedFooter;
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
public $products = [];
|
19 |
-
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
'shipping_country',
|
22 |
'shipping_region',
|
23 |
'shipping_service',
|
@@ -26,14 +78,24 @@ class Woo_Feed_Products_v3 {
|
|
26 |
'tax_region',
|
27 |
'tax_rate',
|
28 |
'tax_ship',
|
|
|
|
|
|
|
|
|
|
|
29 |
);
|
30 |
-
|
|
|
|
|
|
|
|
|
31 |
'simple',
|
32 |
'variable',
|
33 |
'variation',
|
34 |
'grouped',
|
35 |
'external',
|
36 |
);
|
|
|
37 |
// TODO check if product is in those above types.
|
38 |
/**
|
39 |
* Post meta prefix for dropdown item
|
@@ -53,17 +115,17 @@ class Woo_Feed_Products_v3 {
|
|
53 |
* @var string
|
54 |
*/
|
55 |
const PRODUCT_TAXONOMY_PREFIX = 'wf_taxo_';
|
56 |
-
|
57 |
public function __construct( $config ) {
|
58 |
$this->config = woo_feed_parse_feed_rules( $config );
|
59 |
$this->queryType = strtolower( get_option( 'woo_feed_product_query_type', 'wc' ) );
|
60 |
if ( ! in_array( $this->queryType, [ 'wc', 'wp', 'both' ] ) ) {
|
61 |
$this->queryType = 'wc';
|
62 |
}
|
63 |
-
|
64 |
// woo_feed_log_feed_process( $this->config['filename'], sprintf( 'Current Query Type is %s', $this->queryType ) );
|
65 |
}
|
66 |
-
|
67 |
/**
|
68 |
* Get Products using WC_Product_Query
|
69 |
*
|
@@ -89,7 +151,7 @@ class Woo_Feed_Products_v3 {
|
|
89 |
// }
|
90 |
return $query->get_products();
|
91 |
}
|
92 |
-
|
93 |
/**
|
94 |
* Get Products using WP_Query
|
95 |
*
|
@@ -108,7 +170,7 @@ class Woo_Feed_Products_v3 {
|
|
108 |
'update_post_term_cache' => false,
|
109 |
'suppress_filters' => false,
|
110 |
);
|
111 |
-
|
112 |
$query = new WP_Query( $args );
|
113 |
// if( woo_feed_is_debugging_enabled() ) {
|
114 |
// woo_feed_log_feed_process( $this->config['filename'], sprintf( 'WP_Query Args ::'.PHP_EOL.'%s', print_r( $args, true ) ) );
|
@@ -116,11 +178,11 @@ class Woo_Feed_Products_v3 {
|
|
116 |
// }
|
117 |
return $query->get_posts();
|
118 |
}
|
119 |
-
|
120 |
/**
|
121 |
-
* Get products
|
122 |
*
|
123 |
-
* @return array
|
124 |
*/
|
125 |
public function query_products() {
|
126 |
$products = [];
|
@@ -129,33 +191,65 @@ class Woo_Feed_Products_v3 {
|
|
129 |
} elseif ( 'wp' == $this->queryType ) {
|
130 |
$products = $this->get_wp_query_products();
|
131 |
} elseif ( 'both' == $this->queryType ) {
|
132 |
-
$wc
|
133 |
-
$wp
|
134 |
$products = array_unique( array_merge( $wc, $wp ) );
|
135 |
}
|
|
|
136 |
return $products;
|
137 |
}
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
/**
|
140 |
* Get Product Information according to feed config
|
141 |
*
|
142 |
-
* @since 3.2.0
|
143 |
-
*
|
144 |
* @param int[] $productIds
|
145 |
*
|
146 |
* @return array
|
|
|
|
|
147 |
*/
|
148 |
public function get_products( $productIds ) {
|
149 |
-
|
150 |
if ( empty( $productIds ) ) {
|
151 |
return [];
|
152 |
}
|
153 |
|
154 |
/**
|
155 |
* Fires before looping through request product for getting product data
|
156 |
-
*
|
157 |
* @param int[] $productIds
|
158 |
* @param array $feedConfig
|
|
|
|
|
159 |
*/
|
160 |
do_action( 'woo_feed_before_product_loop', $productIds, $this->config );
|
161 |
|
@@ -170,19 +264,19 @@ class Woo_Feed_Products_v3 {
|
|
170 |
continue;
|
171 |
}
|
172 |
}
|
173 |
-
|
174 |
// Skip for invalid products
|
175 |
if ( ! is_object( $product ) ) {
|
176 |
// woo_feed_log_feed_process( $this->config['filename'], 'Skipping Product :: Product data is not a valid WC_Product object.' );
|
177 |
continue;
|
178 |
}
|
179 |
-
|
180 |
// Skip for invisible products
|
181 |
if ( ! $product->is_visible() ) {
|
182 |
// woo_feed_log_feed_process( $this->config['filename'], 'Skipping Product :: Product is not visible.' );
|
183 |
continue;
|
184 |
}
|
185 |
-
|
186 |
// Apply variable and variation settings
|
187 |
if ( $product->is_type( 'variable' ) && $product->has_child() ) {
|
188 |
$this->pi ++;
|
@@ -192,7 +286,6 @@ class Woo_Feed_Products_v3 {
|
|
192 |
}
|
193 |
}
|
194 |
|
195 |
-
|
196 |
// Add Single item wrapper before product info loop start
|
197 |
if ( 'xml' == $this->config['feedType'] ) {
|
198 |
$this->feedBody .= "\n";
|
@@ -204,7 +297,7 @@ class Woo_Feed_Products_v3 {
|
|
204 |
$mAttributes = array();
|
205 |
// Get Product Attribute values by type and assign to product array
|
206 |
foreach ( $this->config['attributes'] as $attr_key => $attribute ) {
|
207 |
-
|
208 |
// Continue for Google Shipping and Tax attributes
|
209 |
$skipFor = array( 'google', 'facebook' );
|
210 |
if (
|
@@ -214,41 +307,39 @@ class Woo_Feed_Products_v3 {
|
|
214 |
) {
|
215 |
continue;
|
216 |
}
|
217 |
-
|
218 |
-
if ( in_array( $this->config['mattributes'][ $attr_key ]
|
219 |
continue;
|
220 |
}
|
221 |
|
222 |
if ( 'pattern' == $this->config['type'][ $attr_key ] ) {
|
223 |
$attributeValue = $this->config['default'][ $attr_key ];
|
224 |
} else { # Get Pattern value
|
225 |
-
$attributeValue = $this->getAttributeValueByType($product, $attribute);
|
226 |
}
|
227 |
-
|
228 |
// Format Output according to Output Type config.
|
229 |
$outputType = $this->config['output_type'][ $attr_key ];
|
230 |
if ( 'default' != $outputType ) {
|
231 |
-
$attributeValue = $this->format_output( $attributeValue, $outputType );
|
232 |
}
|
233 |
-
|
234 |
-
|
235 |
// Limit Output
|
236 |
$limit = $this->config['limit'][ $attr_key ];
|
237 |
if ( ! empty( $limit ) && is_numeric( $limit ) ) {
|
238 |
if ( strpos( $attributeValue, '<![CDATA[' ) !== false ) {
|
239 |
-
$attributeValue = str_replace(array( '<![CDATA[', ']]>' ), array( '', '' ), $attributeValue);
|
240 |
-
$attributeValue = substr($attributeValue, 0, $limit);
|
241 |
$attributeValue = '<![CDATA[' . $attributeValue . ']]>';
|
242 |
} else {
|
243 |
$attributeValue = substr( $attributeValue, 0, $limit );
|
244 |
}
|
245 |
}
|
246 |
-
|
247 |
// Add Prefix and Suffix into Output
|
248 |
$prefix = $this->config['prefix'][ $attr_key ];
|
249 |
$suffix = $this->config['suffix'][ $attr_key ];
|
250 |
|
251 |
-
|
252 |
if ( '' != $prefix || '' != $suffix ) {
|
253 |
$attributeValue = $this->process_prefix_suffix( $attributeValue, $prefix, $suffix, $attribute );
|
254 |
}
|
@@ -257,38 +348,40 @@ class Woo_Feed_Products_v3 {
|
|
257 |
$merchant = $this->config['provider'];
|
258 |
$feedType = $this->config['feedType'];
|
259 |
if ( 'xml' == $this->config['feedType'] ) {
|
260 |
-
|
261 |
# Replace XML Nodes according to merchant requirement
|
262 |
-
$getReplacedAttribute = woo_feed_replace_to_merchant_attribute( $pluginAttribute,
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
|
|
|
|
270 |
|
271 |
// Add closing XML node if value is empty
|
272 |
if ( '' != $attributeValue ) {
|
273 |
# Add CDATA wrapper for XML feed to prevent XML error.
|
274 |
$attributeValue = woo_feed_add_cdata( $pluginAttribute, $attributeValue, $merchant );
|
275 |
-
|
276 |
#TODO Move to proper place
|
277 |
# Replace Google Color attribute value according to requirements
|
278 |
if ( 'g:color' == $getReplacedAttribute ) {
|
279 |
$attributeValue = str_replace( ', ', '/', $attributeValue );
|
280 |
}
|
281 |
-
|
282 |
# Strip slash from output
|
283 |
$attributeValue = stripslashes( $attributeValue );
|
284 |
|
285 |
$this->feedBody .= '<' . $getReplacedAttribute . '>' . "$attributeValue" . '</' . $getReplacedAttribute . '>';
|
286 |
$this->feedBody .= "\n";
|
287 |
-
|
288 |
} else {
|
289 |
$this->feedBody .= '<' . $getReplacedAttribute . '/>';
|
290 |
$this->feedBody .= "\n";
|
291 |
-
}
|
292 |
} elseif ( 'csv' == $this->config['feedType'] ) {
|
293 |
$pluginAttribute = woo_feed_replace_to_merchant_attribute( $pluginAttribute, $merchant, $feedType );
|
294 |
$pluginAttribute = $this->processStringForCSV( $pluginAttribute );
|
@@ -298,16 +391,16 @@ class Woo_Feed_Products_v3 {
|
|
298 |
$pluginAttribute = $this->processStringForTXT( $pluginAttribute );
|
299 |
$attributeValue = $this->processStringForTXT( $attributeValue );
|
300 |
}
|
301 |
-
|
302 |
-
$mAttributes[ $attr_key ]
|
303 |
$this->products[ $this->pi ][ $pluginAttribute ] = $attributeValue;
|
304 |
}
|
305 |
-
|
306 |
// try {
|
307 |
// woo_feed_log_feed_process( $this->config['filename'], 'Processing Merchant Specific Fields' );
|
308 |
// Process feed data for uncommon merchant feed like Google,Facebook,Pinterest
|
309 |
# Process feed data for uncommon merchant feed like Google,Facebook,Pinterest
|
310 |
-
$this->process_for_merchant($product, $this->pi);
|
311 |
// } catch ( Exception $e ) {
|
312 |
// $message = 'Error Processing Merchant Specific Fields.' . PHP_EOL . 'Caught Exception :: ' . $e->getMessage();
|
313 |
// woo_feed_log( $this->config['filename'], $message, 'critical', $e, true );
|
@@ -336,31 +429,34 @@ class Woo_Feed_Products_v3 {
|
|
336 |
$this->process_csv_feed_body();
|
337 |
}
|
338 |
// woo_feed_log_feed_process( $this->config['filename'], 'Done Formatting...' );
|
339 |
-
$this->pi++;
|
340 |
}
|
341 |
|
342 |
/**
|
343 |
* Fires after looping through request product for getting product data
|
344 |
-
*
|
345 |
* @param int[] $productIds
|
346 |
* @param array $feedConfig
|
|
|
|
|
347 |
*/
|
348 |
do_action( 'woo_feed_after_product_loop', $productIds, $this->config );
|
349 |
-
|
350 |
return $this->products;
|
351 |
}
|
352 |
-
|
353 |
-
|
354 |
/**
|
355 |
* Process feed data according to merchant uncommon requirements like Google
|
356 |
*
|
357 |
-
* @since 3.2.0
|
358 |
-
*
|
359 |
* @param $productObj WC_Product
|
360 |
* @param $index | Product Index
|
|
|
|
|
|
|
361 |
*/
|
362 |
-
|
363 |
-
$product
|
364 |
$merchantAttributes = $this->config['mattributes'];
|
365 |
|
366 |
// Format Shipping and Tax data for CSV and TXT feed only for google and facebook
|
@@ -383,10 +479,10 @@ class Woo_Feed_Products_v3 {
|
|
383 |
'tax_ship',
|
384 |
);
|
385 |
foreach ( $this->products[ $this->pi ] as $attribute => $value ) {
|
386 |
-
if ( in_array($attribute, $shippingAttr) ) {
|
387 |
|
388 |
if ( 'tax_country' == $attribute ) {
|
389 |
-
$t++;
|
390 |
$tax[ $t ] .= $value . ':';
|
391 |
} elseif ( 'tax_region' == $attribute ) {
|
392 |
$tax[ $t ] .= $value . ':';
|
@@ -397,7 +493,7 @@ class Woo_Feed_Products_v3 {
|
|
397 |
}
|
398 |
|
399 |
if ( 'shipping_country' == $attribute ) {
|
400 |
-
$s++;
|
401 |
$shipping[ $s ] .= $value . ':';
|
402 |
} elseif ( 'shipping_service' == $attribute ) {
|
403 |
$shipping[ $s ] .= $value . ':';
|
@@ -407,7 +503,7 @@ class Woo_Feed_Products_v3 {
|
|
407 |
$shipping[ $s ] .= $value . ':';
|
408 |
}
|
409 |
|
410 |
-
unset($this->products[ $this->pi ][ $attribute ]);
|
411 |
}
|
412 |
}
|
413 |
|
@@ -423,14 +519,14 @@ class Woo_Feed_Products_v3 {
|
|
423 |
if ( 'google' == $this->config['provider'] ) {
|
424 |
|
425 |
// Reformat Shipping attributes for google, facebook
|
426 |
-
$s
|
427 |
-
$t
|
428 |
-
$tax
|
429 |
$shipping = '';
|
430 |
if ( 'xml' == $this->config['feedType'] ) {
|
431 |
foreach ( $merchantAttributes as $key => $value ) {
|
432 |
|
433 |
-
if ( ! in_array($value, $this->google_shipping_tax) ) {
|
434 |
continue;
|
435 |
}
|
436 |
|
@@ -441,7 +537,7 @@ class Woo_Feed_Products_v3 {
|
|
441 |
$output = $this->config['default'][ $key ];
|
442 |
} else { // Get Pattern value.
|
443 |
$attribute = $this->config['attributes'][ $key ];
|
444 |
-
$output
|
445 |
}
|
446 |
|
447 |
if ( false !== strpos( $value, 'price' ) || false !== strpos( $value, 'rate' ) ) {
|
@@ -459,7 +555,7 @@ class Woo_Feed_Products_v3 {
|
|
459 |
$shipping .= '</g:shipping>' . "\n";
|
460 |
$shipping .= '<g:shipping>';
|
461 |
}
|
462 |
-
} elseif ( ! in_array('shipping_country'
|
463 |
if ( 0 == $s ) {
|
464 |
$shipping .= '<g:shipping>';
|
465 |
$s = 1;
|
@@ -480,7 +576,7 @@ class Woo_Feed_Products_v3 {
|
|
480 |
} elseif ( 'tax_country' == $value ) {
|
481 |
if ( 0 == $t ) {
|
482 |
$tax .= '<g:tax>';
|
483 |
-
$t
|
484 |
} else {
|
485 |
$tax .= '</g:tax>' . "\n";
|
486 |
$tax .= '<g:tax>';
|
@@ -506,26 +602,26 @@ class Woo_Feed_Products_v3 {
|
|
506 |
$this->feedBody .= $tax;
|
507 |
}
|
508 |
// ADD g:identifier_exists
|
509 |
-
$identifier
|
510 |
$countIdentifier = 0;
|
511 |
-
if ( ! in_array('identifier_exists', $merchantAttributes) ) {
|
512 |
-
if ( count(array_intersect_key(array_flip($identifier), $product)) >= 2 ) {
|
513 |
// Any 2 required keys exist!
|
514 |
// @TODO Refactor with OR
|
515 |
-
if ( array_key_exists('brand', $product) && ! empty($product['brand']) ) {
|
516 |
-
$countIdentifier++;
|
517 |
}
|
518 |
-
if ( array_key_exists('upc', $product) && ! empty($product['upc']) ) {
|
519 |
-
$countIdentifier++;
|
520 |
}
|
521 |
-
if ( array_key_exists('sku', $product) && ! empty($product['sku']) ) {
|
522 |
-
$countIdentifier++;
|
523 |
}
|
524 |
-
if ( array_key_exists('mpn', $product) && ! empty($product['mpn']) ) {
|
525 |
-
$countIdentifier++;
|
526 |
}
|
527 |
-
if ( array_key_exists('gtin', $product) && ! empty($product['gtin']) ) {
|
528 |
-
$countIdentifier++;
|
529 |
}
|
530 |
}
|
531 |
|
@@ -549,11 +645,11 @@ class Woo_Feed_Products_v3 {
|
|
549 |
/**
|
550 |
* Generate TXT Feed Header
|
551 |
*
|
|
|
552 |
* @since 3.2.0
|
553 |
*
|
554 |
-
* @return string
|
555 |
*/
|
556 |
-
|
557 |
// Set Delimiter
|
558 |
if ( 'tab' == $this->config['delimiter'] ) {
|
559 |
$this->delimiter = "\t";
|
@@ -582,7 +678,8 @@ class Woo_Feed_Products_v3 {
|
|
582 |
|
583 |
$product = $this->products[ $this->pi ];
|
584 |
$headers = array_keys( $product );
|
585 |
-
$this->feedHeader .= $this->enclosure . implode( "$this->enclosure$this->delimiter$this->enclosure",
|
|
|
586 |
|
587 |
return $this->feedHeader;
|
588 |
}
|
@@ -590,17 +687,18 @@ class Woo_Feed_Products_v3 {
|
|
590 |
/**
|
591 |
* Generate TXT Feed Body
|
592 |
*
|
|
|
593 |
* @since 3.2.0
|
594 |
*
|
595 |
-
* @return string
|
596 |
*/
|
597 |
-
|
598 |
$productInfo = array_values( $this->products[ $this->pi ] );
|
599 |
-
$eol
|
600 |
if ( 'trovaprezzi' === $this->config['provider'] ) {
|
601 |
$eol = '<endrecord>' . PHP_EOL;
|
602 |
}
|
603 |
-
$this->feedBody .= $this->enclosure . implode( "$this->enclosure$this->delimiter$this->enclosure",
|
|
|
604 |
|
605 |
return $this->feedBody;
|
606 |
}
|
@@ -608,11 +706,11 @@ class Woo_Feed_Products_v3 {
|
|
608 |
/**
|
609 |
* Generate CSV Feed Header
|
610 |
*
|
|
|
611 |
* @since 3.2.0
|
612 |
*
|
613 |
-
* @return array
|
614 |
*/
|
615 |
-
|
616 |
// Set Delimiter
|
617 |
if ( 'tab' == $this->config['delimiter'] ) {
|
618 |
$this->delimiter = "\t";
|
@@ -642,10 +740,10 @@ class Woo_Feed_Products_v3 {
|
|
642 |
|
643 |
/**
|
644 |
* Generate CSV Feed Body
|
645 |
-
* @since 3.2.0
|
646 |
* @return array
|
|
|
647 |
*/
|
648 |
-
|
649 |
$product = $this->products[ $this->pi ];
|
650 |
$this->feedBody[] = array_values( $product );
|
651 |
|
@@ -654,11 +752,11 @@ class Woo_Feed_Products_v3 {
|
|
654 |
|
655 |
/**
|
656 |
* Make XML feed header
|
657 |
-
* @since 3.2.0
|
658 |
* @return string
|
|
|
659 |
*/
|
660 |
-
|
661 |
-
$datetime_now = gmdate(
|
662 |
if ( 'fruugo.au' == $this->config["provider"] ) {
|
663 |
return "<products version=\"1.0\" standalone=\"yes\">
|
664 |
<datetime>$datetime_now</datetime>
|
@@ -774,26 +872,27 @@ class Woo_Feed_Products_v3 {
|
|
774 |
|
775 |
/**
|
776 |
* Make XML feed header
|
777 |
-
* @since 3.2.0
|
778 |
* @return string
|
|
|
779 |
*/
|
780 |
-
|
781 |
-
if ( in_array( $this->config['provider'],
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
|
|
797 |
return '</products>';
|
798 |
} elseif ( 'zap.co.il' == $this->config['provider'] ) {
|
799 |
return '</STORE>';
|
@@ -810,13 +909,14 @@ class Woo_Feed_Products_v3 {
|
|
810 |
|
811 |
/**
|
812 |
* Process string for TXT CSV Feed
|
813 |
-
* @since 3.2.0
|
814 |
*
|
815 |
* @param $string
|
816 |
*
|
817 |
* @return mixed|string
|
|
|
|
|
818 |
*/
|
819 |
-
|
820 |
if ( ! empty( $string ) ) {
|
821 |
$string = html_entity_decode( $string, ENT_HTML401 | ENT_QUOTES ); // Convert any HTML entities
|
822 |
|
@@ -839,13 +939,14 @@ class Woo_Feed_Products_v3 {
|
|
839 |
|
840 |
/**
|
841 |
* Process string for CSV
|
842 |
-
* @since 3.2.0
|
843 |
*
|
844 |
* @param $string
|
845 |
*
|
846 |
* @return mixed|string
|
|
|
|
|
847 |
*/
|
848 |
-
|
849 |
if ( ! empty( $string ) ) {
|
850 |
$string = str_replace( "\n", ' ', $string );
|
851 |
$string = str_replace( "\r", ' ', $string );
|
@@ -862,24 +963,28 @@ class Woo_Feed_Products_v3 {
|
|
862 |
|
863 |
/**
|
864 |
* Get Product Attribute Value by Type
|
865 |
-
* @since 3.2.0
|
866 |
*
|
867 |
* @param $product WC_Product
|
868 |
* @param $attribute
|
869 |
*
|
870 |
* @return mixed|string
|
|
|
|
|
871 |
*/
|
872 |
-
|
873 |
|
874 |
if ( method_exists( $this, $attribute ) ) {
|
875 |
$output = call_user_func_array( array( $this, $attribute ), array( $product ) );
|
876 |
-
} elseif ( strpos( $attribute, self::PRODUCT_ATTRIBUTE_PREFIX )
|
877 |
-
$
|
878 |
-
|
879 |
-
|
880 |
-
|
881 |
-
$output
|
882 |
-
} elseif (
|
|
|
|
|
|
|
883 |
// For additional image method images() will be used with extra parameter - image number
|
884 |
$imageKey = explode( '_', $attribute );
|
885 |
if ( ! isset( $imageKey[1] ) || ( isset( $imageKey[1] ) && ( empty( $imageKey[1] ) || ! is_numeric( $imageKey[1] ) ) ) ) {
|
@@ -887,69 +992,75 @@ class Woo_Feed_Products_v3 {
|
|
887 |
}
|
888 |
$output = call_user_func_array( array( $this, 'images' ), array( $product, $imageKey[1] ) );
|
889 |
} else {
|
890 |
-
|
|
|
891 |
}
|
892 |
|
893 |
// Json encode if value is an array
|
894 |
-
if ( is_array( $output ) )
|
|
|
|
|
895 |
|
896 |
/**
|
897 |
* Filter attribute value before return based on merchant and attribute name
|
898 |
*
|
899 |
-
* @
|
900 |
-
*
|
901 |
-
* @param string $output the output
|
902 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
903 |
* @param array feed config/rule
|
|
|
|
|
|
|
904 |
*/
|
905 |
$output = apply_filters( "woo_feed_get_{$this->config['provider']}_{$attribute}_attribute", $output, $product, $this->config );
|
906 |
|
907 |
/**
|
908 |
* Filter attribute value before return based on attribute name
|
909 |
*
|
910 |
-
* @
|
911 |
-
*
|
912 |
-
* @param string $output the output
|
913 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
914 |
* @param array feed config/rule
|
|
|
|
|
|
|
915 |
*/
|
916 |
return apply_filters( "woo_feed_get_{$attribute}_attribute", $output, $product, $this->config );
|
917 |
}
|
918 |
|
919 |
-
|
920 |
/**
|
921 |
* Get Product Id
|
922 |
*
|
923 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
924 |
*
|
925 |
-
* @since 3.2.0
|
926 |
* @return mixed
|
|
|
927 |
*/
|
928 |
-
|
929 |
return $product->get_id();
|
930 |
}
|
931 |
-
|
932 |
/**
|
933 |
* Get Product Title
|
934 |
-
* @since 3.2.0
|
935 |
*
|
936 |
* @param WC_Product $product
|
937 |
*
|
938 |
* @return mixed
|
|
|
|
|
939 |
*/
|
940 |
-
|
941 |
return $product->get_name();
|
942 |
}
|
943 |
|
944 |
/**
|
945 |
* Get Yoast Product Title
|
946 |
-
* @since 3.2.0
|
947 |
*
|
948 |
* @param WC_Product $product
|
949 |
*
|
950 |
* @return mixed
|
|
|
|
|
951 |
*/
|
952 |
-
|
953 |
$title = '';
|
954 |
if ( class_exists( 'WPSEO_Frontend' ) ) {
|
955 |
$title = WPSEO_Frontend::get_instance()->get_seo_title( get_post( $product->get_id() ) );
|
@@ -963,13 +1074,14 @@ class Woo_Feed_Products_v3 {
|
|
963 |
|
964 |
/**
|
965 |
* Get All In One Product Title
|
966 |
-
* @since 3.2.0
|
967 |
*
|
968 |
* @param WC_Product $product
|
969 |
*
|
970 |
* @return mixed
|
|
|
|
|
971 |
*/
|
972 |
-
|
973 |
$title = '';
|
974 |
if ( class_exists( 'All_in_One_SEO_Pack' ) ) {
|
975 |
global $aioseop_options, $aiosp;
|
@@ -997,13 +1109,14 @@ class Woo_Feed_Products_v3 {
|
|
997 |
|
998 |
/**
|
999 |
* Get Product Description
|
1000 |
-
* @since 3.2.0
|
1001 |
*
|
1002 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1003 |
*
|
1004 |
* @return mixed|string
|
|
|
|
|
1005 |
*/
|
1006 |
-
|
1007 |
|
1008 |
$description = $product->get_description();
|
1009 |
|
@@ -1030,16 +1143,18 @@ class Woo_Feed_Products_v3 {
|
|
1030 |
|
1031 |
/**
|
1032 |
* Get Yoast Product Description
|
1033 |
-
* @since 3.2.0
|
1034 |
*
|
1035 |
* @param WC_Product $product
|
1036 |
*
|
1037 |
* @return mixed
|
|
|
|
|
1038 |
*/
|
1039 |
-
|
1040 |
$description = '';
|
1041 |
if ( class_exists( 'WPSEO_Frontend' ) ) {
|
1042 |
-
$description = wpseo_replace_vars( WPSEO_Meta::get_value( 'metadesc', $product->get_id() ),
|
|
|
1043 |
}
|
1044 |
if ( ! empty( $description ) ) {
|
1045 |
return $description;
|
@@ -1050,13 +1165,14 @@ class Woo_Feed_Products_v3 {
|
|
1050 |
|
1051 |
/**
|
1052 |
* Get All In One Product Description
|
1053 |
-
* @since 3.2.0
|
1054 |
*
|
1055 |
* @param WC_Product $product
|
1056 |
*
|
1057 |
* @return mixed
|
|
|
|
|
1058 |
*/
|
1059 |
-
|
1060 |
$description = '';
|
1061 |
if ( class_exists( 'All_in_One_SEO_Pack' ) ) {
|
1062 |
global $aioseop_options, $aiosp;
|
@@ -1069,7 +1185,8 @@ class Woo_Feed_Products_v3 {
|
|
1069 |
if ( in_array( 'product', $aioseop_options['aiosp_cpostactive'], true ) ) {
|
1070 |
$description = $aiosp->get_main_description( get_post( $product->get_id() ) ); // Get the description.
|
1071 |
$description = $aiosp->trim_description( $description );
|
1072 |
-
$description = apply_filters( 'aioseop_description_full',
|
|
|
1073 |
}
|
1074 |
}
|
1075 |
if ( ! empty( $description ) ) {
|
@@ -1081,13 +1198,14 @@ class Woo_Feed_Products_v3 {
|
|
1081 |
|
1082 |
/**
|
1083 |
* Get Product Short Description
|
1084 |
-
* @since 3.2.0
|
1085 |
*
|
1086 |
* @param WC_Product $product
|
1087 |
*
|
1088 |
* @return mixed|string
|
|
|
|
|
1089 |
*/
|
1090 |
-
|
1091 |
|
1092 |
$short_description = $product->get_short_description();
|
1093 |
|
@@ -1106,13 +1224,14 @@ class Woo_Feed_Products_v3 {
|
|
1106 |
|
1107 |
/**
|
1108 |
* At First convert Short Codes and then Remove failed Short Codes from String
|
1109 |
-
* @since 3.2.0
|
1110 |
*
|
1111 |
* @param $content
|
1112 |
*
|
1113 |
* @return mixed|string
|
|
|
|
|
1114 |
*/
|
1115 |
-
|
1116 |
if ( empty( $content ) ) {
|
1117 |
return '';
|
1118 |
}
|
@@ -1132,13 +1251,14 @@ class Woo_Feed_Products_v3 {
|
|
1132 |
|
1133 |
/**
|
1134 |
* Get Product Categories
|
1135 |
-
* @since 3.2.0
|
1136 |
*
|
1137 |
* @param WC_Product $product
|
1138 |
*
|
1139 |
* @return mixed
|
|
|
|
|
1140 |
*/
|
1141 |
-
|
1142 |
$id = $product->get_id();
|
1143 |
if ( $product->is_type( 'variation' ) ) {
|
1144 |
$id = $product->get_parent_id();
|
@@ -1148,16 +1268,17 @@ class Woo_Feed_Products_v3 {
|
|
1148 |
|
1149 |
return wp_strip_all_tags( wc_get_product_category_list( $id, $separator, '' ) );
|
1150 |
}
|
1151 |
-
|
1152 |
/**
|
1153 |
* Get Product URL
|
1154 |
-
* @since 3.2.0
|
1155 |
*
|
1156 |
* @param WC_Product $product
|
1157 |
*
|
1158 |
* @return string
|
|
|
|
|
1159 |
*/
|
1160 |
-
|
1161 |
$utm = $this->config['campaign_parameters'];
|
1162 |
if ( ! empty( $utm['utm_source'] ) && ! empty( $utm['utm_medium'] ) && ! empty( $utm['utm_campaign'] ) ) {
|
1163 |
$utm = [
|
@@ -1167,47 +1288,54 @@ class Woo_Feed_Products_v3 {
|
|
1167 |
'utm_term' => $utm['utm_term'],
|
1168 |
'utm_content' => $utm['utm_content'],
|
1169 |
];
|
|
|
1170 |
return add_query_arg( array_filter( $utm ), $product->get_permalink() );
|
1171 |
}
|
|
|
1172 |
return $product->get_permalink();
|
1173 |
}
|
1174 |
-
|
1175 |
/**
|
1176 |
* Get External Product URL
|
1177 |
-
* @since 3.2.0
|
1178 |
*
|
1179 |
* @param WC_Product $product
|
1180 |
*
|
1181 |
* @return string
|
|
|
|
|
1182 |
*/
|
1183 |
-
|
1184 |
if ( $product->is_type( 'external' ) ) {
|
1185 |
return $product->get_product_url();
|
1186 |
}
|
1187 |
-
|
1188 |
return '';
|
1189 |
}
|
1190 |
|
1191 |
/**
|
1192 |
* Get Product Image
|
1193 |
-
* @since 3.2.0
|
1194 |
*
|
1195 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1196 |
*
|
1197 |
* @return mixed
|
|
|
|
|
1198 |
*/
|
1199 |
-
|
1200 |
if ( $product->is_type( 'variation' ) ) {
|
1201 |
-
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ),
|
|
|
1202 |
if ( has_post_thumbnail( $product->get_id() ) && ! empty( $getImage[0] ) ) :
|
1203 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1204 |
else :
|
1205 |
-
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_parent_id() ),
|
|
|
1206 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1207 |
endif;
|
1208 |
} else {
|
1209 |
if ( has_post_thumbnail( $product->get_id() ) ) :
|
1210 |
-
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ),
|
|
|
1211 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1212 |
else :
|
1213 |
$image = woo_feed_get_formatted_url( wp_get_attachment_url( $product->get_id() ) );
|
@@ -1219,13 +1347,14 @@ class Woo_Feed_Products_v3 {
|
|
1219 |
|
1220 |
/**
|
1221 |
* Get Product Featured Image
|
1222 |
-
* @since 3.2.0
|
1223 |
*
|
1224 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1225 |
*
|
1226 |
* @return mixed
|
|
|
|
|
1227 |
*/
|
1228 |
-
|
1229 |
return $this->image( $product );
|
1230 |
}
|
1231 |
|
@@ -1239,7 +1368,7 @@ class Woo_Feed_Products_v3 {
|
|
1239 |
* @since 3.2.0
|
1240 |
*
|
1241 |
*/
|
1242 |
-
|
1243 |
if ( $product->is_type( 'variation' ) ) {
|
1244 |
// TODO Test Variation Images
|
1245 |
$imgUrls = $this->get_product_gallery( wc_get_product( $product->get_parent_id() ) );
|
@@ -1262,11 +1391,13 @@ class Woo_Feed_Products_v3 {
|
|
1262 |
/**
|
1263 |
* Get Product Gallery Items (URL) array.
|
1264 |
* This can contains empty array values
|
1265 |
-
*
|
1266 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product
|
|
|
1267 |
* @return string[]
|
|
|
1268 |
*/
|
1269 |
-
|
1270 |
$attachmentIds = $product->get_gallery_image_ids();
|
1271 |
$imgUrls = array();
|
1272 |
if ( $attachmentIds && is_array( $attachmentIds ) ) {
|
@@ -1276,42 +1407,46 @@ class Woo_Feed_Products_v3 {
|
|
1276 |
$mKey ++;
|
1277 |
}
|
1278 |
}
|
|
|
1279 |
return $imgUrls;
|
1280 |
}
|
1281 |
|
1282 |
/**
|
1283 |
* Get Product Condition
|
1284 |
-
* @since 3.2.0
|
1285 |
*
|
1286 |
* @param WC_Product $product
|
1287 |
*
|
1288 |
* @return mixed
|
|
|
|
|
1289 |
*/
|
1290 |
-
|
1291 |
return apply_filters( 'woo_feed_product_condition', 'new', $product );
|
1292 |
}
|
1293 |
|
1294 |
/**
|
1295 |
* Get Product Type
|
1296 |
-
* @since 3.2.0
|
1297 |
*
|
1298 |
* @param WC_Product $product
|
1299 |
*
|
1300 |
* @return mixed
|
|
|
|
|
1301 |
*/
|
1302 |
-
|
1303 |
return $product->get_type();
|
1304 |
}
|
1305 |
|
1306 |
/**
|
1307 |
* Get Product is a bundle product or not
|
1308 |
-
* @since 3.2.0
|
1309 |
*
|
1310 |
* @param WC_Product $product
|
1311 |
*
|
1312 |
* @return mixed
|
|
|
|
|
1313 |
*/
|
1314 |
-
|
1315 |
if ( $product->is_type( 'bundle' ) || $product->is_type( 'yith_bundle' ) ) {
|
1316 |
return "yes";
|
1317 |
}
|
@@ -1321,13 +1456,14 @@ class Woo_Feed_Products_v3 {
|
|
1321 |
|
1322 |
/**
|
1323 |
* Get Product is a multi-pack product or not
|
1324 |
-
* @since 3.2.0
|
1325 |
*
|
1326 |
* @param WC_Product $product
|
1327 |
*
|
1328 |
* @return mixed
|
|
|
|
|
1329 |
*/
|
1330 |
-
|
1331 |
$multi_pack = '';
|
1332 |
if ( $product->is_type( 'grouped' ) ) {
|
1333 |
$multi_pack = ( ! empty( $product->get_children() ) ) ? count( $product->get_children() ) : '';
|
@@ -1338,49 +1474,53 @@ class Woo_Feed_Products_v3 {
|
|
1338 |
|
1339 |
/**
|
1340 |
* Get Product visibility status
|
1341 |
-
* @since 3.2.0
|
1342 |
*
|
1343 |
* @param WC_Product $product
|
1344 |
*
|
1345 |
* @return mixed
|
|
|
|
|
1346 |
*/
|
1347 |
-
|
1348 |
return $product->get_catalog_visibility();
|
1349 |
}
|
1350 |
|
1351 |
/**
|
1352 |
* Get Product Total Rating
|
1353 |
-
* @since 3.2.0
|
1354 |
*
|
1355 |
* @param WC_Product $product
|
1356 |
*
|
1357 |
* @return mixed
|
|
|
|
|
1358 |
*/
|
1359 |
-
|
1360 |
return $product->get_rating_count();
|
1361 |
}
|
1362 |
|
1363 |
/**
|
1364 |
* Get Product average rating
|
1365 |
-
* @since 3.2.0
|
1366 |
*
|
1367 |
* @param WC_Product $product
|
1368 |
*
|
1369 |
* @return mixed
|
|
|
|
|
1370 |
*/
|
1371 |
-
|
1372 |
return $product->get_average_rating();
|
1373 |
}
|
1374 |
|
1375 |
/**
|
1376 |
* Get Product tags
|
1377 |
-
* @since 3.2.0
|
1378 |
*
|
1379 |
* @param WC_Product $product
|
1380 |
*
|
1381 |
* @return mixed
|
|
|
|
|
1382 |
*/
|
1383 |
-
|
1384 |
$id = $product->get_id();
|
1385 |
if ( $product->is_type( 'variation' ) ) {
|
1386 |
$id = $product->get_parent_id();
|
@@ -1397,13 +1537,14 @@ class Woo_Feed_Products_v3 {
|
|
1397 |
|
1398 |
/**
|
1399 |
* Get Product Parent Id
|
1400 |
-
* @since 3.2.0
|
1401 |
*
|
1402 |
* @param WC_Product $product
|
1403 |
*
|
1404 |
* @return mixed
|
|
|
|
|
1405 |
*/
|
1406 |
-
|
1407 |
$id = $product->get_id();
|
1408 |
if ( $product->is_type( 'variation' ) ) {
|
1409 |
$id = $product->get_parent_id();
|
@@ -1414,25 +1555,27 @@ class Woo_Feed_Products_v3 {
|
|
1414 |
|
1415 |
/**
|
1416 |
* Get Product SKU
|
1417 |
-
* @since 3.2.0
|
1418 |
*
|
1419 |
* @param WC_Product $product
|
1420 |
*
|
1421 |
* @return mixed
|
|
|
|
|
1422 |
*/
|
1423 |
-
|
1424 |
return $product->get_sku();
|
1425 |
}
|
1426 |
|
1427 |
/**
|
1428 |
* Get Product Parent SKU
|
1429 |
-
* @since 3.2.0
|
1430 |
*
|
1431 |
* @param WC_Product $product
|
1432 |
*
|
1433 |
* @return mixed
|
|
|
|
|
1434 |
*/
|
1435 |
-
|
1436 |
if ( $product->is_type( 'variation' ) ) {
|
1437 |
$id = $product->get_parent_id();
|
1438 |
$parent = wc_get_product( $id );
|
@@ -1445,38 +1588,36 @@ class Woo_Feed_Products_v3 {
|
|
1445 |
|
1446 |
/**
|
1447 |
* Get Product Availability Status
|
1448 |
-
* @since 3.2.0
|
1449 |
*
|
1450 |
* @param WC_Product $product
|
1451 |
*
|
1452 |
* @return mixed
|
|
|
|
|
1453 |
*/
|
1454 |
-
|
1455 |
$status = $product->get_stock_status();
|
1456 |
-
if ( $status ) {
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
return "in stock";
|
1465 |
-
}
|
1466 |
}
|
1467 |
-
|
1468 |
-
return "in stock";
|
1469 |
}
|
1470 |
|
1471 |
/**
|
1472 |
* Get Product Quantity
|
1473 |
-
* @since 3.2.0
|
1474 |
*
|
1475 |
* @param WC_Product $product
|
1476 |
*
|
1477 |
* @return mixed
|
|
|
|
|
1478 |
*/
|
1479 |
-
|
1480 |
if ( $product->is_type( 'variable' ) && $product->has_child() ) {
|
1481 |
$visible_children = $product->get_visible_children();
|
1482 |
$qty = array();
|
@@ -1506,13 +1647,14 @@ class Woo_Feed_Products_v3 {
|
|
1506 |
|
1507 |
/**
|
1508 |
* Get Product Sale Price Start Date
|
1509 |
-
* @since 3.2.0
|
1510 |
*
|
1511 |
* @param WC_Product $product
|
1512 |
*
|
1513 |
* @return mixed
|
|
|
|
|
1514 |
*/
|
1515 |
-
|
1516 |
$startDate = $product->get_date_on_sale_from();
|
1517 |
if ( is_object( $startDate ) ) {
|
1518 |
return $startDate->date_i18n();
|
@@ -1523,13 +1665,14 @@ class Woo_Feed_Products_v3 {
|
|
1523 |
|
1524 |
/**
|
1525 |
* Get Product Sale Price End Date
|
1526 |
-
* @since 3.2.0
|
1527 |
*
|
1528 |
* @param WC_Product $product
|
1529 |
*
|
1530 |
* @return mixed
|
|
|
|
|
1531 |
*/
|
1532 |
-
|
1533 |
$endDate = $product->get_date_on_sale_to();
|
1534 |
if ( is_object( $endDate ) ) {
|
1535 |
return $endDate->date_i18n();
|
@@ -1540,62 +1683,62 @@ class Woo_Feed_Products_v3 {
|
|
1540 |
|
1541 |
/**
|
1542 |
* Get Product Regular Price
|
1543 |
-
* @since 3.2.0
|
1544 |
*
|
1545 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product Product Object.
|
1546 |
*
|
1547 |
* @return mixed
|
|
|
|
|
1548 |
*/
|
1549 |
-
|
1550 |
-
$price = $product->get_regular_price();
|
1551 |
-
# Set variable product regular price according to setting
|
1552 |
if ( $product->is_type( 'variable' ) ) {
|
1553 |
-
|
1554 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1555 |
-
return $this->getGroupProductPrice( $product,
|
|
|
|
|
|
|
1556 |
}
|
1557 |
-
|
1558 |
-
return $price;
|
1559 |
}
|
1560 |
-
|
1561 |
/**
|
1562 |
* Get Product Price
|
1563 |
-
* @since 3.2.0
|
1564 |
*
|
1565 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product
|
1566 |
*
|
1567 |
-
* @return mixed
|
|
|
|
|
1568 |
*/
|
1569 |
-
|
1570 |
-
$price = $product->get_price();
|
1571 |
-
# Set variable product current price according to setting
|
1572 |
if ( $product->is_type( 'variable' ) ) {
|
1573 |
-
|
1574 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1575 |
return $this->getGroupProductPrice( $product, 'current' );
|
|
|
|
|
1576 |
}
|
1577 |
-
|
1578 |
-
return $price;
|
1579 |
}
|
1580 |
-
|
1581 |
/**
|
1582 |
* Get Product Sale Price
|
1583 |
-
* @since 3.2.0
|
1584 |
*
|
1585 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product
|
1586 |
*
|
1587 |
* @return mixed
|
|
|
|
|
1588 |
*/
|
1589 |
-
|
1590 |
-
|
1591 |
-
|
1592 |
-
|
1593 |
-
$price = $this->getVariableProductPrice($product, 'sale_price');
|
1594 |
-
} elseif ( $product->is_type('grouped') ) {
|
1595 |
return $this->getGroupProductPrice( $product, 'sale' );
|
|
|
|
|
|
|
|
|
1596 |
}
|
1597 |
-
|
1598 |
-
return $price > 0 ? $price : '';
|
1599 |
}
|
1600 |
|
1601 |
/**
|
@@ -1607,21 +1750,18 @@ class Woo_Feed_Products_v3 {
|
|
1607 |
* @since 3.2.0
|
1608 |
*
|
1609 |
*/
|
1610 |
-
|
1611 |
-
$price = $this->price( $product );
|
1612 |
-
// Set variable product regular price according to setting.
|
1613 |
if ( $product->is_type( 'variable' ) ) {
|
1614 |
-
|
1615 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1616 |
return $this->getGroupProductPrice( $product, 'regular', true );
|
|
|
|
|
|
|
|
|
|
|
|
|
1617 |
}
|
1618 |
-
|
1619 |
-
// Get price with tax.
|
1620 |
-
if ( $product->is_taxable() && ! empty( $price ) ) {
|
1621 |
-
$price = $this->get_price_with_tax( $product, $price );
|
1622 |
-
}
|
1623 |
-
|
1624 |
-
return $price;
|
1625 |
}
|
1626 |
|
1627 |
/**
|
@@ -1633,21 +1773,18 @@ class Woo_Feed_Products_v3 {
|
|
1633 |
* @since 3.2.0
|
1634 |
*
|
1635 |
*/
|
1636 |
-
|
1637 |
-
$price = $this->current_price( $product );
|
1638 |
-
// Set variable product regular price according to setting
|
1639 |
if ( $product->is_type( 'variable' ) ) {
|
1640 |
-
|
1641 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1642 |
return $this->getGroupProductPrice( $product, 'current', true );
|
|
|
|
|
|
|
|
|
|
|
|
|
1643 |
}
|
1644 |
-
|
1645 |
-
// Get price with tax
|
1646 |
-
if ( $product->is_taxable() && ! empty( $price ) ) {
|
1647 |
-
$price = $this->get_price_with_tax( $product, $price );
|
1648 |
-
}
|
1649 |
-
|
1650 |
-
return $price;
|
1651 |
}
|
1652 |
|
1653 |
/**
|
@@ -1659,22 +1796,19 @@ class Woo_Feed_Products_v3 {
|
|
1659 |
* @since 3.2.0
|
1660 |
*
|
1661 |
*/
|
1662 |
-
|
1663 |
-
$price = $this->sale_price( $product );
|
1664 |
-
|
1665 |
-
// Set variable product regular price according to setting
|
1666 |
if ( $product->is_type( 'variable' ) ) {
|
1667 |
-
|
1668 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1669 |
return $this->getGroupProductPrice( $product, 'sale', true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1670 |
}
|
1671 |
-
|
1672 |
-
// Get price with tax
|
1673 |
-
if ( $product->is_taxable() && ! empty( $price ) ) {
|
1674 |
-
$price = $this->get_price_with_tax( $product, $price );
|
1675 |
-
}
|
1676 |
-
|
1677 |
-
return $price > 0 ? $price : '';
|
1678 |
}
|
1679 |
|
1680 |
/**
|
@@ -1688,7 +1822,7 @@ class Woo_Feed_Products_v3 {
|
|
1688 |
* @since 3.2.0
|
1689 |
*
|
1690 |
*/
|
1691 |
-
|
1692 |
$groupProductIds = $grouped->get_children();
|
1693 |
$sum = 0;
|
1694 |
if ( ! empty( $groupProductIds ) ) {
|
@@ -1725,27 +1859,41 @@ class Woo_Feed_Products_v3 {
|
|
1725 |
}
|
1726 |
}
|
1727 |
|
|
|
|
|
|
|
|
|
1728 |
return $sum;
|
1729 |
}
|
1730 |
|
1731 |
/**
|
1732 |
-
* Get total price of
|
1733 |
*
|
1734 |
-
* @param
|
1735 |
* @param string $type regular_price, sale_price & current_price
|
|
|
1736 |
*
|
1737 |
* @return int|string
|
1738 |
* @since 3.2.0
|
1739 |
*
|
1740 |
*/
|
1741 |
-
|
|
|
1742 |
if ( 'regular_price' == $type ) {
|
1743 |
-
|
1744 |
} elseif ( 'sale_price' == $type ) {
|
1745 |
-
|
1746 |
} else {
|
1747 |
-
|
1748 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1749 |
}
|
1750 |
|
1751 |
/**
|
@@ -1758,338 +1906,331 @@ class Woo_Feed_Products_v3 {
|
|
1758 |
* @since 3.2.0
|
1759 |
*
|
1760 |
*/
|
1761 |
-
|
1762 |
if ( woo_feed_wc_version_check( 3.0 ) ) {
|
1763 |
return wc_get_price_including_tax( $product, array( 'price' => $price ) );
|
1764 |
} else {
|
1765 |
return $product->get_price_including_tax( 1, $price );
|
1766 |
}
|
1767 |
}
|
1768 |
-
|
1769 |
/**
|
1770 |
* Get Product Weight
|
1771 |
-
* @since 3.2.0
|
1772 |
*
|
1773 |
* @param WC_Product $product
|
1774 |
*
|
1775 |
* @return mixed
|
|
|
|
|
1776 |
*/
|
1777 |
-
|
1778 |
-
// echo "Product Id: ".$product->get_name();
|
1779 |
-
// echo " Product Name: ".$product->get_id(); echo "<br>";
|
1780 |
-
// echo " Weight: ".$product->get_weight(); echo "<br>";
|
1781 |
-
// echo "<br>"; echo "<br>";
|
1782 |
return $product->get_weight();
|
1783 |
}
|
1784 |
-
|
1785 |
/**
|
1786 |
* Get Product Width
|
1787 |
-
* @since 3.2.0
|
1788 |
*
|
1789 |
* @param WC_Product $product
|
1790 |
*
|
1791 |
* @return mixed
|
|
|
|
|
1792 |
*/
|
1793 |
-
|
1794 |
return $product->get_width();
|
1795 |
}
|
1796 |
-
|
1797 |
/**
|
1798 |
* Get Product Height
|
1799 |
-
* @since 3.2.0
|
1800 |
*
|
1801 |
* @param WC_Product $product
|
1802 |
*
|
1803 |
* @return mixed
|
|
|
|
|
1804 |
*/
|
1805 |
-
|
1806 |
return $product->get_height();
|
1807 |
}
|
1808 |
-
|
1809 |
/**
|
1810 |
* Get Product Length
|
1811 |
-
* @since 3.2.0
|
1812 |
*
|
1813 |
* @param WC_Product $product
|
1814 |
*
|
1815 |
* @return mixed
|
|
|
|
|
1816 |
*/
|
1817 |
-
|
1818 |
return $product->get_length();
|
1819 |
}
|
1820 |
-
|
1821 |
/**
|
1822 |
* Get Product Shipping Class
|
1823 |
-
* @since 3.2.0
|
1824 |
*
|
1825 |
* @param WC_Product $product
|
1826 |
*
|
1827 |
* @return mixed
|
|
|
|
|
1828 |
*/
|
1829 |
-
|
1830 |
return $product->get_shipping_class();
|
1831 |
}
|
1832 |
-
|
1833 |
/**
|
1834 |
* Get Product Author Name
|
1835 |
-
* @since 3.2.0
|
1836 |
*
|
1837 |
* @param WC_Product $product
|
1838 |
*
|
1839 |
* @return mixed
|
|
|
|
|
1840 |
*/
|
1841 |
-
|
1842 |
-
$post = get_post($product->get_id());
|
1843 |
-
|
1844 |
-
|
1845 |
-
return get_the_author_meta('user_login', $authorId);
|
1846 |
}
|
1847 |
-
|
1848 |
/**
|
1849 |
* Get Product Author Email
|
1850 |
-
* @since 3.2.0
|
1851 |
*
|
1852 |
* @param WC_Product $product
|
1853 |
*
|
1854 |
* @return mixed
|
|
|
|
|
1855 |
*/
|
1856 |
-
|
1857 |
-
$post = get_post($product->get_id());
|
1858 |
-
|
1859 |
-
|
1860 |
-
return get_the_author_meta('user_email', $authorId);
|
1861 |
}
|
1862 |
-
|
1863 |
/**
|
1864 |
* Get Product Created Date
|
1865 |
-
* @since 3.2.0
|
1866 |
*
|
1867 |
* @param WC_Product $product
|
1868 |
*
|
1869 |
* @return mixed
|
|
|
|
|
1870 |
*/
|
1871 |
-
|
1872 |
-
|
1873 |
-
|
1874 |
-
return gmdate( 'Y-m-d', strtotime( $dateCreated ) );
|
1875 |
}
|
1876 |
-
|
1877 |
/**
|
1878 |
* Get Product Last Updated Date
|
1879 |
-
* @since 3.2.0
|
1880 |
*
|
1881 |
* @param WC_Product $product
|
1882 |
*
|
1883 |
* @return mixed
|
|
|
|
|
1884 |
*/
|
1885 |
-
|
1886 |
-
|
1887 |
-
|
1888 |
-
return gmdate( 'Y-m-d', strtotime( $dateModified ) );
|
1889 |
}
|
1890 |
-
|
1891 |
/**
|
1892 |
* Get Product Sale Price Effected Date for Google Shopping
|
1893 |
-
* @since 3.2.0
|
1894 |
*
|
1895 |
* @param WC_Product $product
|
1896 |
*
|
1897 |
-
* @return
|
|
|
|
|
1898 |
*/
|
1899 |
-
|
1900 |
-
$
|
1901 |
-
$from
|
1902 |
-
$to
|
1903 |
-
if ( ! empty($from) && ! empty($to) ) {
|
1904 |
-
$from = gmdate(
|
1905 |
-
$to
|
1906 |
-
|
|
|
1907 |
}
|
1908 |
-
|
1909 |
-
return $
|
1910 |
}
|
1911 |
-
|
1912 |
/**
|
1913 |
* Ger Product Attribute
|
1914 |
*
|
1915 |
-
* @since 2.2.3
|
1916 |
-
*
|
1917 |
* @param WC_Product $product
|
1918 |
* @param $attr
|
1919 |
*
|
1920 |
* @return string
|
|
|
|
|
1921 |
*/
|
1922 |
-
|
1923 |
$id = $product->get_id();
|
1924 |
-
|
1925 |
-
|
1926 |
-
|
1927 |
-
|
1928 |
-
$attr = str_replace("pa_", '', $attr);
|
1929 |
}
|
1930 |
-
$value = $product->get_attribute($attr);
|
1931 |
-
|
1932 |
return $value;
|
1933 |
} else {
|
1934 |
-
return implode(',', wc_get_product_terms($id, $attr, array( 'fields' => 'names' )));
|
1935 |
}
|
1936 |
}
|
1937 |
-
|
1938 |
/**
|
1939 |
* Get Meta
|
1940 |
*
|
1941 |
-
* @since 2.2.3
|
1942 |
-
*
|
1943 |
* @param WC_Product $product
|
1944 |
* @param string $meta post meta key
|
1945 |
*
|
1946 |
* @return mixed|string
|
|
|
|
|
1947 |
*/
|
1948 |
-
|
1949 |
-
$
|
1950 |
-
|
1951 |
-
|
1952 |
-
|
1953 |
-
$productMeta = $this->getProductAttribute($product, str_replace("attribute_", '', $meta));
|
1954 |
-
} else {
|
1955 |
-
$productMeta = get_post_meta($id, $meta, true);
|
1956 |
}
|
1957 |
|
1958 |
-
|
1959 |
-
|
1960 |
-
if ( '' == $productMeta ) {
|
1961 |
-
$postParent = wp_get_post_parent_id( $id );
|
1962 |
-
if ( $postParent > 0 ) {
|
1963 |
-
$productMeta = get_post_meta( $postParent, $meta, true );
|
1964 |
-
}
|
1965 |
-
}
|
1966 |
-
|
1967 |
-
return $productMeta;
|
1968 |
}
|
1969 |
-
|
1970 |
/**
|
1971 |
* Get Taxonomy
|
1972 |
-
* @since 2.2.3
|
1973 |
*
|
1974 |
* @param WC_Product $product
|
1975 |
* @param $taxonomy
|
1976 |
*
|
1977 |
* @return string
|
|
|
|
|
1978 |
*/
|
1979 |
-
|
1980 |
$id = $product->get_id();
|
1981 |
-
|
1982 |
-
|
1983 |
-
|
1984 |
-
if ( ! empty($taxonomy_list) ) {
|
1985 |
-
return wp_strip_all_tags($taxonomy_list);
|
1986 |
}
|
1987 |
-
|
1988 |
-
|
|
|
|
|
1989 |
}
|
1990 |
-
|
1991 |
/**
|
1992 |
* Format price value
|
1993 |
-
* @since 3.2.0
|
1994 |
*
|
1995 |
* @param string $name Attribute Name
|
1996 |
* @param int $conditionName condition
|
1997 |
* @param int $result price
|
1998 |
*
|
1999 |
* @return mixed
|
|
|
|
|
2000 |
*/
|
2001 |
-
|
2002 |
-
$plus
|
2003 |
-
$minus
|
2004 |
$percent = "%";
|
2005 |
-
|
2006 |
-
if ( strpos($name, 'price') !== false ) {
|
2007 |
-
if ( strpos($result, $plus) !== false && strpos($result, $percent) !== false ) {
|
2008 |
-
$result = str_replace("+", '', $result);
|
2009 |
-
$result = str_replace("%", '', $result);
|
2010 |
-
if ( is_numeric($result) ) {
|
2011 |
-
$result = $conditionName + (($conditionName * $result) / 100);
|
2012 |
}
|
2013 |
-
} elseif ( strpos($result, $minus) !== false && strpos($result, $percent) !== false ) {
|
2014 |
-
$result = str_replace("-", '', $result);
|
2015 |
-
$result = str_replace("%", '', $result);
|
2016 |
-
if ( is_numeric($result) ) {
|
2017 |
-
$result = $conditionName - (($conditionName * $result) / 100);
|
2018 |
}
|
2019 |
-
} elseif ( strpos($result, $plus) !== false ) {
|
2020 |
-
$result = str_replace("+", "", $result);
|
2021 |
-
if ( is_numeric($result) ) {
|
2022 |
-
$result = ($conditionName + $result);
|
2023 |
}
|
2024 |
-
} elseif ( strpos($result, $minus) !== false ) {
|
2025 |
-
$result = str_replace("-", "", $result);
|
2026 |
-
if ( is_numeric($result) ) {
|
2027 |
$result = $conditionName - $result;
|
2028 |
}
|
2029 |
}
|
2030 |
}
|
2031 |
-
|
2032 |
return $result;
|
2033 |
}
|
2034 |
-
|
2035 |
/**
|
2036 |
* Format output According to Output Type config
|
2037 |
-
* @since 3.2.0
|
2038 |
*
|
2039 |
-
* @param $output
|
2040 |
-
* @param $outputTypes
|
|
|
|
|
2041 |
*
|
2042 |
* @return float|int|string
|
|
|
|
|
2043 |
*/
|
2044 |
-
|
2045 |
if ( ! empty( $outputTypes ) && is_array( $outputTypes ) ) {
|
2046 |
|
2047 |
-
|
2048 |
if ( in_array( 2, $outputTypes ) ) { // Strip Tags
|
2049 |
$output = wp_strip_all_tags( html_entity_decode( $output ) );
|
2050 |
}
|
2051 |
|
2052 |
-
if ( in_array( 3, $outputTypes ) ) {
|
2053 |
$output = utf8_encode( $output );
|
2054 |
}
|
2055 |
|
2056 |
-
if ( in_array( 4, $outputTypes ) ) {
|
2057 |
$output = htmlentities( $output, ENT_QUOTES, 'UTF-8' );
|
2058 |
}
|
2059 |
|
2060 |
-
if ( in_array( 5, $outputTypes ) ) {
|
2061 |
-
$output =
|
2062 |
}
|
2063 |
|
2064 |
-
if ( in_array( 6, $outputTypes ) ) {
|
2065 |
-
$output
|
2066 |
-
|
|
|
|
|
2067 |
}
|
2068 |
|
2069 |
-
if ( in_array( 7, $outputTypes ) ) {
|
2070 |
$output = trim( $output );
|
2071 |
$output = preg_replace( '!\s+!', ' ', $output );
|
2072 |
}
|
2073 |
|
2074 |
-
if ( in_array( 9, $outputTypes ) ) {
|
2075 |
$output = woo_feed_stripInvalidXml( $output );
|
2076 |
}
|
2077 |
|
2078 |
-
if ( in_array( 10, $outputTypes ) ) {
|
2079 |
$output = $this->remove_short_codes( $output );
|
2080 |
}
|
2081 |
|
2082 |
-
if ( in_array( 8, $outputTypes ) ) {
|
2083 |
$output = '<![CDATA[' . $output . ']]>';
|
2084 |
}
|
2085 |
}
|
2086 |
|
2087 |
return $output;
|
2088 |
}
|
2089 |
-
|
2090 |
/**
|
2091 |
* Add Prefix and Suffix with attribute value
|
2092 |
-
* @since 3.2.0
|
2093 |
*
|
2094 |
* @param $output
|
2095 |
* @param $prefix
|
@@ -2097,44 +2238,42 @@ class Woo_Feed_Products_v3 {
|
|
2097 |
* @param $attribute
|
2098 |
*
|
2099 |
* @return string
|
|
|
|
|
2100 |
*/
|
2101 |
-
|
2102 |
-
|
2103 |
-
if (
|
2104 |
-
return
|
2105 |
}
|
2106 |
-
|
2107 |
-
|
2108 |
if ( '' != $prefix ) {
|
2109 |
$output = "$prefix" . $output;
|
2110 |
}
|
2111 |
-
|
2112 |
-
|
2113 |
-
if ( ''
|
2114 |
if (
|
2115 |
-
'price' == $attribute
|
2116 |
-
'sale_price' == $attribute
|
2117 |
-
'current_price' == $attribute
|
2118 |
-
'price_with_tax' == $attribute
|
2119 |
-
'current_price_with_tax' == $attribute
|
2120 |
-
'sale_price_with_tax' == $attribute
|
2121 |
-
'shipping_price' == $attribute
|
2122 |
-
'tax_rate' == $attribute
|
2123 |
-
) {
|
2124 |
-
|
2125 |
-
|
2126 |
-
|
2127 |
-
} elseif ( 'http' === substr( $output, 0, 4 ) ) {
|
2128 |
-
|
2129 |
-
# Parse URL Parameters if available into suffix field
|
2130 |
$output = woo_feed_make_url_with_parameter( $output, $suffix );
|
2131 |
-
|
2132 |
} else {
|
2133 |
$output = $output . "$suffix";
|
2134 |
}
|
2135 |
}
|
2136 |
-
|
2137 |
return "$output";
|
2138 |
}
|
2139 |
-
|
2140 |
}
|
1 |
<?php /** @noinspection PhpUnusedPrivateMethodInspection, PhpUnused, PhpUnusedLocalVariableInspection, DuplicatedCode */
|
2 |
+
|
3 |
/**
|
4 |
* Created by PhpStorm.
|
5 |
* User: wahid
|
7 |
* Time: 5:10 PM
|
8 |
*/
|
9 |
|
10 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
11 |
+
die();
|
12 |
+
}
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Class Woo_Feed_Products_v3
|
16 |
+
*/
|
17 |
class Woo_Feed_Products_v3 {
|
18 |
+
/**
|
19 |
+
* The Increment
|
20 |
+
* @var int
|
21 |
+
*/
|
22 |
+
protected $pi = 0;
|
23 |
+
/**
|
24 |
+
* Feed file headers
|
25 |
+
* @var string|array
|
26 |
+
*/
|
27 |
public $feedHeader;
|
28 |
+
/**
|
29 |
+
* Feed File Body
|
30 |
+
* @var string|array
|
31 |
+
*/
|
32 |
public $feedBody;
|
33 |
+
/**
|
34 |
+
* Feed file footer
|
35 |
+
* @var string|array
|
36 |
+
*/
|
37 |
public $feedFooter;
|
38 |
+
/**
|
39 |
+
* CSV|TXT column (text|word) enclosure
|
40 |
+
* @var string
|
41 |
+
*/
|
42 |
+
protected $enclosure;
|
43 |
+
/**
|
44 |
+
* CSV|TXT column delimiter
|
45 |
+
* @var string
|
46 |
+
*/
|
47 |
+
protected $delimiter;
|
48 |
+
/**
|
49 |
+
* Feed Rules
|
50 |
+
* @var array
|
51 |
+
*/
|
52 |
+
protected $config;
|
53 |
+
/**
|
54 |
+
* Post status to query
|
55 |
+
* @var string
|
56 |
+
*/
|
57 |
+
protected $post_status = 'publish';
|
58 |
+
/**
|
59 |
+
* Processed Products
|
60 |
+
* @var array
|
61 |
+
*/
|
62 |
public $products = [];
|
63 |
+
/**
|
64 |
+
* Query Method Selector
|
65 |
+
* @var string
|
66 |
+
*/
|
67 |
+
protected $queryType = 'wp';
|
68 |
+
/**
|
69 |
+
* Google shipping tax attributes
|
70 |
+
* @var array
|
71 |
+
*/
|
72 |
+
protected $google_shipping_tax = array(
|
73 |
'shipping_country',
|
74 |
'shipping_region',
|
75 |
'shipping_service',
|
78 |
'tax_region',
|
79 |
'tax_rate',
|
80 |
'tax_ship',
|
81 |
+
'installment_months',
|
82 |
+
'installment_amount',
|
83 |
+
'subscription_period',
|
84 |
+
'subscription_period_length',
|
85 |
+
'subscription_amount',
|
86 |
);
|
87 |
+
/**
|
88 |
+
* Product types for query
|
89 |
+
* @var array
|
90 |
+
*/
|
91 |
+
protected $product_types = array(
|
92 |
'simple',
|
93 |
'variable',
|
94 |
'variation',
|
95 |
'grouped',
|
96 |
'external',
|
97 |
);
|
98 |
+
|
99 |
// TODO check if product is in those above types.
|
100 |
/**
|
101 |
* Post meta prefix for dropdown item
|
115 |
* @var string
|
116 |
*/
|
117 |
const PRODUCT_TAXONOMY_PREFIX = 'wf_taxo_';
|
118 |
+
|
119 |
public function __construct( $config ) {
|
120 |
$this->config = woo_feed_parse_feed_rules( $config );
|
121 |
$this->queryType = strtolower( get_option( 'woo_feed_product_query_type', 'wc' ) );
|
122 |
if ( ! in_array( $this->queryType, [ 'wc', 'wp', 'both' ] ) ) {
|
123 |
$this->queryType = 'wc';
|
124 |
}
|
125 |
+
|
126 |
// woo_feed_log_feed_process( $this->config['filename'], sprintf( 'Current Query Type is %s', $this->queryType ) );
|
127 |
}
|
128 |
+
|
129 |
/**
|
130 |
* Get Products using WC_Product_Query
|
131 |
*
|
151 |
// }
|
152 |
return $query->get_products();
|
153 |
}
|
154 |
+
|
155 |
/**
|
156 |
* Get Products using WP_Query
|
157 |
*
|
170 |
'update_post_term_cache' => false,
|
171 |
'suppress_filters' => false,
|
172 |
);
|
173 |
+
|
174 |
$query = new WP_Query( $args );
|
175 |
// if( woo_feed_is_debugging_enabled() ) {
|
176 |
// woo_feed_log_feed_process( $this->config['filename'], sprintf( 'WP_Query Args ::'.PHP_EOL.'%s', print_r( $args, true ) ) );
|
178 |
// }
|
179 |
return $query->get_posts();
|
180 |
}
|
181 |
+
|
182 |
/**
|
183 |
+
* Get products
|
184 |
*
|
185 |
+
* @return array
|
186 |
*/
|
187 |
public function query_products() {
|
188 |
$products = [];
|
191 |
} elseif ( 'wp' == $this->queryType ) {
|
192 |
$products = $this->get_wp_query_products();
|
193 |
} elseif ( 'both' == $this->queryType ) {
|
194 |
+
$wc = $this->get_wc_query_products();
|
195 |
+
$wp = $this->get_wp_query_products();
|
196 |
$products = array_unique( array_merge( $wc, $wp ) );
|
197 |
}
|
198 |
+
|
199 |
return $products;
|
200 |
}
|
201 |
|
202 |
+
/**
|
203 |
+
* Organize Feed Attribute config
|
204 |
+
* @return array|bool
|
205 |
+
*/
|
206 |
+
public function get_attribute_config() {
|
207 |
+
if ( empty( $this->config ) ) {
|
208 |
+
return false;
|
209 |
+
}
|
210 |
+
|
211 |
+
$attributeConfig = array();
|
212 |
+
$merchantAttributes = $this->config['mattributes'];
|
213 |
+
if ( ! empty( $merchantAttributes ) ) {
|
214 |
+
$i = 0;
|
215 |
+
foreach ( $merchantAttributes as $key => $value ) {
|
216 |
+
$attributeConfig[ $i ]['mattributes'] = $value;
|
217 |
+
$attributeConfig[ $i ]['prefix'] = $this->config['prefix'][ $key ];
|
218 |
+
$attributeConfig[ $i ]['type'] = $this->config['type'][ $key ];
|
219 |
+
$attributeConfig[ $i ]['attributes'] = $this->config['attributes'][ $key ];
|
220 |
+
$attributeConfig[ $i ]['default'] = $this->config['default'][ $key ];
|
221 |
+
$attributeConfig[ $i ]['suffix'] = $this->config['suffix'][ $key ];
|
222 |
+
$attributeConfig[ $i ]['output_type'] = $this->config['output_type'][ $key ];
|
223 |
+
$attributeConfig[ $i ]['limit'] = $this->config['limit'][ $key ];
|
224 |
+
$i ++;
|
225 |
+
}
|
226 |
+
}
|
227 |
+
|
228 |
+
return $attributeConfig;
|
229 |
+
}
|
230 |
+
|
231 |
/**
|
232 |
* Get Product Information according to feed config
|
233 |
*
|
|
|
|
|
234 |
* @param int[] $productIds
|
235 |
*
|
236 |
* @return array
|
237 |
+
* @since 3.2.0
|
238 |
+
*
|
239 |
*/
|
240 |
public function get_products( $productIds ) {
|
241 |
+
|
242 |
if ( empty( $productIds ) ) {
|
243 |
return [];
|
244 |
}
|
245 |
|
246 |
/**
|
247 |
* Fires before looping through request product for getting product data
|
248 |
+
*
|
249 |
* @param int[] $productIds
|
250 |
* @param array $feedConfig
|
251 |
+
*
|
252 |
+
* @since 3.2.10
|
253 |
*/
|
254 |
do_action( 'woo_feed_before_product_loop', $productIds, $this->config );
|
255 |
|
264 |
continue;
|
265 |
}
|
266 |
}
|
267 |
+
|
268 |
// Skip for invalid products
|
269 |
if ( ! is_object( $product ) ) {
|
270 |
// woo_feed_log_feed_process( $this->config['filename'], 'Skipping Product :: Product data is not a valid WC_Product object.' );
|
271 |
continue;
|
272 |
}
|
273 |
+
|
274 |
// Skip for invisible products
|
275 |
if ( ! $product->is_visible() ) {
|
276 |
// woo_feed_log_feed_process( $this->config['filename'], 'Skipping Product :: Product is not visible.' );
|
277 |
continue;
|
278 |
}
|
279 |
+
|
280 |
// Apply variable and variation settings
|
281 |
if ( $product->is_type( 'variable' ) && $product->has_child() ) {
|
282 |
$this->pi ++;
|
286 |
}
|
287 |
}
|
288 |
|
|
|
289 |
// Add Single item wrapper before product info loop start
|
290 |
if ( 'xml' == $this->config['feedType'] ) {
|
291 |
$this->feedBody .= "\n";
|
297 |
$mAttributes = array();
|
298 |
// Get Product Attribute values by type and assign to product array
|
299 |
foreach ( $this->config['attributes'] as $attr_key => $attribute ) {
|
300 |
+
|
301 |
// Continue for Google Shipping and Tax attributes
|
302 |
$skipFor = array( 'google', 'facebook' );
|
303 |
if (
|
307 |
) {
|
308 |
continue;
|
309 |
}
|
310 |
+
|
311 |
+
if ( in_array( $this->config['mattributes'][ $attr_key ], $mAttributes ) ) {
|
312 |
continue;
|
313 |
}
|
314 |
|
315 |
if ( 'pattern' == $this->config['type'][ $attr_key ] ) {
|
316 |
$attributeValue = $this->config['default'][ $attr_key ];
|
317 |
} else { # Get Pattern value
|
318 |
+
$attributeValue = $this->getAttributeValueByType( $product, $attribute );
|
319 |
}
|
320 |
+
|
321 |
// Format Output according to Output Type config.
|
322 |
$outputType = $this->config['output_type'][ $attr_key ];
|
323 |
if ( 'default' != $outputType ) {
|
324 |
+
$attributeValue = $this->format_output( $attributeValue, $outputType, $product, $attribute );
|
325 |
}
|
326 |
+
|
|
|
327 |
// Limit Output
|
328 |
$limit = $this->config['limit'][ $attr_key ];
|
329 |
if ( ! empty( $limit ) && is_numeric( $limit ) ) {
|
330 |
if ( strpos( $attributeValue, '<![CDATA[' ) !== false ) {
|
331 |
+
$attributeValue = str_replace( array( '<![CDATA[', ']]>' ), array( '', '' ), $attributeValue );
|
332 |
+
$attributeValue = substr( $attributeValue, 0, $limit );
|
333 |
$attributeValue = '<![CDATA[' . $attributeValue . ']]>';
|
334 |
} else {
|
335 |
$attributeValue = substr( $attributeValue, 0, $limit );
|
336 |
}
|
337 |
}
|
338 |
+
|
339 |
// Add Prefix and Suffix into Output
|
340 |
$prefix = $this->config['prefix'][ $attr_key ];
|
341 |
$suffix = $this->config['suffix'][ $attr_key ];
|
342 |
|
|
|
343 |
if ( '' != $prefix || '' != $suffix ) {
|
344 |
$attributeValue = $this->process_prefix_suffix( $attributeValue, $prefix, $suffix, $attribute );
|
345 |
}
|
348 |
$merchant = $this->config['provider'];
|
349 |
$feedType = $this->config['feedType'];
|
350 |
if ( 'xml' == $this->config['feedType'] ) {
|
351 |
+
|
352 |
# Replace XML Nodes according to merchant requirement
|
353 |
+
$getReplacedAttribute = woo_feed_replace_to_merchant_attribute( $pluginAttribute,
|
354 |
+
$merchant,
|
355 |
+
$feedType );
|
356 |
+
|
357 |
+
# XML does not support space in node. So replace Space with Underscore
|
358 |
+
$getReplacedAttribute = str_replace( '', '_', $getReplacedAttribute );
|
359 |
+
|
360 |
+
if ( ! empty( $attributeValue ) ) {
|
361 |
+
$attributeValue = trim( $attributeValue );
|
362 |
+
}
|
363 |
|
364 |
// Add closing XML node if value is empty
|
365 |
if ( '' != $attributeValue ) {
|
366 |
# Add CDATA wrapper for XML feed to prevent XML error.
|
367 |
$attributeValue = woo_feed_add_cdata( $pluginAttribute, $attributeValue, $merchant );
|
368 |
+
|
369 |
#TODO Move to proper place
|
370 |
# Replace Google Color attribute value according to requirements
|
371 |
if ( 'g:color' == $getReplacedAttribute ) {
|
372 |
$attributeValue = str_replace( ', ', '/', $attributeValue );
|
373 |
}
|
374 |
+
|
375 |
# Strip slash from output
|
376 |
$attributeValue = stripslashes( $attributeValue );
|
377 |
|
378 |
$this->feedBody .= '<' . $getReplacedAttribute . '>' . "$attributeValue" . '</' . $getReplacedAttribute . '>';
|
379 |
$this->feedBody .= "\n";
|
380 |
+
|
381 |
} else {
|
382 |
$this->feedBody .= '<' . $getReplacedAttribute . '/>';
|
383 |
$this->feedBody .= "\n";
|
384 |
+
}
|
385 |
} elseif ( 'csv' == $this->config['feedType'] ) {
|
386 |
$pluginAttribute = woo_feed_replace_to_merchant_attribute( $pluginAttribute, $merchant, $feedType );
|
387 |
$pluginAttribute = $this->processStringForCSV( $pluginAttribute );
|
391 |
$pluginAttribute = $this->processStringForTXT( $pluginAttribute );
|
392 |
$attributeValue = $this->processStringForTXT( $attributeValue );
|
393 |
}
|
394 |
+
|
395 |
+
$mAttributes[ $attr_key ] = $this->config['mattributes'][ $attr_key ];
|
396 |
$this->products[ $this->pi ][ $pluginAttribute ] = $attributeValue;
|
397 |
}
|
398 |
+
|
399 |
// try {
|
400 |
// woo_feed_log_feed_process( $this->config['filename'], 'Processing Merchant Specific Fields' );
|
401 |
// Process feed data for uncommon merchant feed like Google,Facebook,Pinterest
|
402 |
# Process feed data for uncommon merchant feed like Google,Facebook,Pinterest
|
403 |
+
$this->process_for_merchant( $product, $this->pi );
|
404 |
// } catch ( Exception $e ) {
|
405 |
// $message = 'Error Processing Merchant Specific Fields.' . PHP_EOL . 'Caught Exception :: ' . $e->getMessage();
|
406 |
// woo_feed_log( $this->config['filename'], $message, 'critical', $e, true );
|
429 |
$this->process_csv_feed_body();
|
430 |
}
|
431 |
// woo_feed_log_feed_process( $this->config['filename'], 'Done Formatting...' );
|
432 |
+
$this->pi ++;
|
433 |
}
|
434 |
|
435 |
/**
|
436 |
* Fires after looping through request product for getting product data
|
437 |
+
*
|
438 |
* @param int[] $productIds
|
439 |
* @param array $feedConfig
|
440 |
+
*
|
441 |
+
* @since 3.2.10
|
442 |
*/
|
443 |
do_action( 'woo_feed_after_product_loop', $productIds, $this->config );
|
444 |
+
|
445 |
return $this->products;
|
446 |
}
|
447 |
+
|
448 |
+
|
449 |
/**
|
450 |
* Process feed data according to merchant uncommon requirements like Google
|
451 |
*
|
|
|
|
|
452 |
* @param $productObj WC_Product
|
453 |
* @param $index | Product Index
|
454 |
+
*
|
455 |
+
* @since 3.2.0
|
456 |
+
*
|
457 |
*/
|
458 |
+
protected function process_for_merchant( $productObj, $index ) {
|
459 |
+
$product = $this->products[ $index ];
|
460 |
$merchantAttributes = $this->config['mattributes'];
|
461 |
|
462 |
// Format Shipping and Tax data for CSV and TXT feed only for google and facebook
|
479 |
'tax_ship',
|
480 |
);
|
481 |
foreach ( $this->products[ $this->pi ] as $attribute => $value ) {
|
482 |
+
if ( in_array( $attribute, $shippingAttr ) ) {
|
483 |
|
484 |
if ( 'tax_country' == $attribute ) {
|
485 |
+
$t ++;
|
486 |
$tax[ $t ] .= $value . ':';
|
487 |
} elseif ( 'tax_region' == $attribute ) {
|
488 |
$tax[ $t ] .= $value . ':';
|
493 |
}
|
494 |
|
495 |
if ( 'shipping_country' == $attribute ) {
|
496 |
+
$s ++;
|
497 |
$shipping[ $s ] .= $value . ':';
|
498 |
} elseif ( 'shipping_service' == $attribute ) {
|
499 |
$shipping[ $s ] .= $value . ':';
|
503 |
$shipping[ $s ] .= $value . ':';
|
504 |
}
|
505 |
|
506 |
+
unset( $this->products[ $this->pi ][ $attribute ] );
|
507 |
}
|
508 |
}
|
509 |
|
519 |
if ( 'google' == $this->config['provider'] ) {
|
520 |
|
521 |
// Reformat Shipping attributes for google, facebook
|
522 |
+
$s = 0;
|
523 |
+
$t = 0;
|
524 |
+
$tax = '';
|
525 |
$shipping = '';
|
526 |
if ( 'xml' == $this->config['feedType'] ) {
|
527 |
foreach ( $merchantAttributes as $key => $value ) {
|
528 |
|
529 |
+
if ( ! in_array( $value, $this->google_shipping_tax ) ) {
|
530 |
continue;
|
531 |
}
|
532 |
|
537 |
$output = $this->config['default'][ $key ];
|
538 |
} else { // Get Pattern value.
|
539 |
$attribute = $this->config['attributes'][ $key ];
|
540 |
+
$output = $this->getAttributeValueByType( $productObj, $attribute );
|
541 |
}
|
542 |
|
543 |
if ( false !== strpos( $value, 'price' ) || false !== strpos( $value, 'rate' ) ) {
|
555 |
$shipping .= '</g:shipping>' . "\n";
|
556 |
$shipping .= '<g:shipping>';
|
557 |
}
|
558 |
+
} elseif ( ! in_array( 'shipping_country', $merchantAttributes ) && 'shipping_price' == $value ) {
|
559 |
if ( 0 == $s ) {
|
560 |
$shipping .= '<g:shipping>';
|
561 |
$s = 1;
|
576 |
} elseif ( 'tax_country' == $value ) {
|
577 |
if ( 0 == $t ) {
|
578 |
$tax .= '<g:tax>';
|
579 |
+
$t = 1;
|
580 |
} else {
|
581 |
$tax .= '</g:tax>' . "\n";
|
582 |
$tax .= '<g:tax>';
|
602 |
$this->feedBody .= $tax;
|
603 |
}
|
604 |
// ADD g:identifier_exists
|
605 |
+
$identifier = array( 'brand', 'upc', 'sku', 'mpn', 'gtin' );
|
606 |
$countIdentifier = 0;
|
607 |
+
if ( ! in_array( 'identifier_exists', $merchantAttributes ) ) {
|
608 |
+
if ( count( array_intersect_key( array_flip( $identifier ), $product ) ) >= 2 ) {
|
609 |
// Any 2 required keys exist!
|
610 |
// @TODO Refactor with OR
|
611 |
+
if ( array_key_exists( 'brand', $product ) && ! empty( $product['brand'] ) ) {
|
612 |
+
$countIdentifier ++;
|
613 |
}
|
614 |
+
if ( array_key_exists( 'upc', $product ) && ! empty( $product['upc'] ) ) {
|
615 |
+
$countIdentifier ++;
|
616 |
}
|
617 |
+
if ( array_key_exists( 'sku', $product ) && ! empty( $product['sku'] ) ) {
|
618 |
+
$countIdentifier ++;
|
619 |
}
|
620 |
+
if ( array_key_exists( 'mpn', $product ) && ! empty( $product['mpn'] ) ) {
|
621 |
+
$countIdentifier ++;
|
622 |
}
|
623 |
+
if ( array_key_exists( 'gtin', $product ) && ! empty( $product['gtin'] ) ) {
|
624 |
+
$countIdentifier ++;
|
625 |
}
|
626 |
}
|
627 |
|
645 |
/**
|
646 |
* Generate TXT Feed Header
|
647 |
*
|
648 |
+
* @return string
|
649 |
* @since 3.2.0
|
650 |
*
|
|
|
651 |
*/
|
652 |
+
protected function process_txt_feed_header() {
|
653 |
// Set Delimiter
|
654 |
if ( 'tab' == $this->config['delimiter'] ) {
|
655 |
$this->delimiter = "\t";
|
678 |
|
679 |
$product = $this->products[ $this->pi ];
|
680 |
$headers = array_keys( $product );
|
681 |
+
$this->feedHeader .= $this->enclosure . implode( "$this->enclosure$this->delimiter$this->enclosure",
|
682 |
+
$headers ) . $this->enclosure . $eol;
|
683 |
|
684 |
return $this->feedHeader;
|
685 |
}
|
687 |
/**
|
688 |
* Generate TXT Feed Body
|
689 |
*
|
690 |
+
* @return string
|
691 |
* @since 3.2.0
|
692 |
*
|
|
|
693 |
*/
|
694 |
+
protected function process_txt_feed_body() {
|
695 |
$productInfo = array_values( $this->products[ $this->pi ] );
|
696 |
+
$eol = PHP_EOL;
|
697 |
if ( 'trovaprezzi' === $this->config['provider'] ) {
|
698 |
$eol = '<endrecord>' . PHP_EOL;
|
699 |
}
|
700 |
+
$this->feedBody .= $this->enclosure . implode( "$this->enclosure$this->delimiter$this->enclosure",
|
701 |
+
$productInfo ) . $this->enclosure . $eol;
|
702 |
|
703 |
return $this->feedBody;
|
704 |
}
|
706 |
/**
|
707 |
* Generate CSV Feed Header
|
708 |
*
|
709 |
+
* @return array
|
710 |
* @since 3.2.0
|
711 |
*
|
|
|
712 |
*/
|
713 |
+
protected function process_csv_feed_header() {
|
714 |
// Set Delimiter
|
715 |
if ( 'tab' == $this->config['delimiter'] ) {
|
716 |
$this->delimiter = "\t";
|
740 |
|
741 |
/**
|
742 |
* Generate CSV Feed Body
|
|
|
743 |
* @return array
|
744 |
+
* @since 3.2.0
|
745 |
*/
|
746 |
+
protected function process_csv_feed_body() {
|
747 |
$product = $this->products[ $this->pi ];
|
748 |
$this->feedBody[] = array_values( $product );
|
749 |
|
752 |
|
753 |
/**
|
754 |
* Make XML feed header
|
|
|
755 |
* @return string
|
756 |
+
* @since 3.2.0
|
757 |
*/
|
758 |
+
protected function process_xml_feed_header() {
|
759 |
+
$datetime_now = gmdate( 'Y-m-d H:i:s' );
|
760 |
if ( 'fruugo.au' == $this->config["provider"] ) {
|
761 |
return "<products version=\"1.0\" standalone=\"yes\">
|
762 |
<datetime>$datetime_now</datetime>
|
872 |
|
873 |
/**
|
874 |
* Make XML feed header
|
|
|
875 |
* @return string
|
876 |
+
* @since 3.2.0
|
877 |
*/
|
878 |
+
protected function process_xml_feed_footer() {
|
879 |
+
if ( in_array( $this->config['provider'],
|
880 |
+
[
|
881 |
+
'fruugo.au',
|
882 |
+
'stylight.com',
|
883 |
+
'nextad',
|
884 |
+
'skinflint.co.uk',
|
885 |
+
'comparer.be',
|
886 |
+
'dooyoo',
|
887 |
+
'hintaseuranta.fi',
|
888 |
+
'incurvy',
|
889 |
+
'kijiji.ca',
|
890 |
+
'marktplaats.nl',
|
891 |
+
'rakuten.de',
|
892 |
+
'shopalike.fr',
|
893 |
+
'spartoo.fi',
|
894 |
+
'webmarchand',
|
895 |
+
] ) ) {
|
896 |
return '</products>';
|
897 |
} elseif ( 'zap.co.il' == $this->config['provider'] ) {
|
898 |
return '</STORE>';
|
909 |
|
910 |
/**
|
911 |
* Process string for TXT CSV Feed
|
|
|
912 |
*
|
913 |
* @param $string
|
914 |
*
|
915 |
* @return mixed|string
|
916 |
+
* @since 3.2.0
|
917 |
+
*
|
918 |
*/
|
919 |
+
protected function processStringForTXT( $string ) {
|
920 |
if ( ! empty( $string ) ) {
|
921 |
$string = html_entity_decode( $string, ENT_HTML401 | ENT_QUOTES ); // Convert any HTML entities
|
922 |
|
939 |
|
940 |
/**
|
941 |
* Process string for CSV
|
|
|
942 |
*
|
943 |
* @param $string
|
944 |
*
|
945 |
* @return mixed|string
|
946 |
+
* @since 3.2.0
|
947 |
+
*
|
948 |
*/
|
949 |
+
protected function processStringForCSV( $string ) {
|
950 |
if ( ! empty( $string ) ) {
|
951 |
$string = str_replace( "\n", ' ', $string );
|
952 |
$string = str_replace( "\r", ' ', $string );
|
963 |
|
964 |
/**
|
965 |
* Get Product Attribute Value by Type
|
|
|
966 |
*
|
967 |
* @param $product WC_Product
|
968 |
* @param $attribute
|
969 |
*
|
970 |
* @return mixed|string
|
971 |
+
* @since 3.2.0
|
972 |
+
*
|
973 |
*/
|
974 |
+
protected function getAttributeValueByType( $product, $attribute ) {
|
975 |
|
976 |
if ( method_exists( $this, $attribute ) ) {
|
977 |
$output = call_user_func_array( array( $this, $attribute ), array( $product ) );
|
978 |
+
} elseif ( false !== strpos( $attribute, self::PRODUCT_ATTRIBUTE_PREFIX ) ) {
|
979 |
+
$attribute = str_replace( self::PRODUCT_ATTRIBUTE_PREFIX, '', $attribute );
|
980 |
+
$output = $this->getProductAttribute( $product, $attribute );
|
981 |
+
} elseif ( false !== strpos( $attribute, self::POST_META_PREFIX ) ) {
|
982 |
+
$attribute = str_replace( self::POST_META_PREFIX, '', $attribute );
|
983 |
+
$output = $this->getProductMeta( $product, $attribute );
|
984 |
+
} elseif ( false !== strpos( $attribute, self::PRODUCT_TAXONOMY_PREFIX ) ) {
|
985 |
+
$attribute = str_replace( self::PRODUCT_TAXONOMY_PREFIX, '', $attribute );
|
986 |
+
$output = $this->getProductTaxonomy( $product, $attribute );
|
987 |
+
} elseif ( 'image_' == substr( $attribute, 0, 6 ) ) {
|
988 |
// For additional image method images() will be used with extra parameter - image number
|
989 |
$imageKey = explode( '_', $attribute );
|
990 |
if ( ! isset( $imageKey[1] ) || ( isset( $imageKey[1] ) && ( empty( $imageKey[1] ) || ! is_numeric( $imageKey[1] ) ) ) ) {
|
992 |
}
|
993 |
$output = call_user_func_array( array( $this, 'images' ), array( $product, $imageKey[1] ) );
|
994 |
} else {
|
995 |
+
// return the attribute so multiple attribute can be join with separator to make custom attribute.
|
996 |
+
$output = $attribute;
|
997 |
}
|
998 |
|
999 |
// Json encode if value is an array
|
1000 |
+
if ( is_array( $output ) ) {
|
1001 |
+
$output = wp_json_encode( $output );
|
1002 |
+
}
|
1003 |
|
1004 |
/**
|
1005 |
* Filter attribute value before return based on merchant and attribute name
|
1006 |
*
|
1007 |
+
* @param string $output the output
|
|
|
|
|
1008 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1009 |
* @param array feed config/rule
|
1010 |
+
*
|
1011 |
+
* @since 3.3.7
|
1012 |
+
*
|
1013 |
*/
|
1014 |
$output = apply_filters( "woo_feed_get_{$this->config['provider']}_{$attribute}_attribute", $output, $product, $this->config );
|
1015 |
|
1016 |
/**
|
1017 |
* Filter attribute value before return based on attribute name
|
1018 |
*
|
1019 |
+
* @param string $output the output
|
|
|
|
|
1020 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1021 |
* @param array feed config/rule
|
1022 |
+
*
|
1023 |
+
* @since 3.3.5
|
1024 |
+
*
|
1025 |
*/
|
1026 |
return apply_filters( "woo_feed_get_{$attribute}_attribute", $output, $product, $this->config );
|
1027 |
}
|
1028 |
|
|
|
1029 |
/**
|
1030 |
* Get Product Id
|
1031 |
*
|
1032 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1033 |
*
|
|
|
1034 |
* @return mixed
|
1035 |
+
* @since 3.2.0
|
1036 |
*/
|
1037 |
+
protected function id( $product ) {
|
1038 |
return $product->get_id();
|
1039 |
}
|
1040 |
+
|
1041 |
/**
|
1042 |
* Get Product Title
|
|
|
1043 |
*
|
1044 |
* @param WC_Product $product
|
1045 |
*
|
1046 |
* @return mixed
|
1047 |
+
* @since 3.2.0
|
1048 |
+
*
|
1049 |
*/
|
1050 |
+
protected function title( $product ) {
|
1051 |
return $product->get_name();
|
1052 |
}
|
1053 |
|
1054 |
/**
|
1055 |
* Get Yoast Product Title
|
|
|
1056 |
*
|
1057 |
* @param WC_Product $product
|
1058 |
*
|
1059 |
* @return mixed
|
1060 |
+
* @since 3.2.0
|
1061 |
+
*
|
1062 |
*/
|
1063 |
+
protected function yoast_wpseo_title( $product ) {
|
1064 |
$title = '';
|
1065 |
if ( class_exists( 'WPSEO_Frontend' ) ) {
|
1066 |
$title = WPSEO_Frontend::get_instance()->get_seo_title( get_post( $product->get_id() ) );
|
1074 |
|
1075 |
/**
|
1076 |
* Get All In One Product Title
|
|
|
1077 |
*
|
1078 |
* @param WC_Product $product
|
1079 |
*
|
1080 |
* @return mixed
|
1081 |
+
* @since 3.2.0
|
1082 |
+
*
|
1083 |
*/
|
1084 |
+
protected function _aioseop_title( $product ) {
|
1085 |
$title = '';
|
1086 |
if ( class_exists( 'All_in_One_SEO_Pack' ) ) {
|
1087 |
global $aioseop_options, $aiosp;
|
1109 |
|
1110 |
/**
|
1111 |
* Get Product Description
|
|
|
1112 |
*
|
1113 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1114 |
*
|
1115 |
* @return mixed|string
|
1116 |
+
* @since 3.2.0
|
1117 |
+
*
|
1118 |
*/
|
1119 |
+
protected function description( $product ) {
|
1120 |
|
1121 |
$description = $product->get_description();
|
1122 |
|
1143 |
|
1144 |
/**
|
1145 |
* Get Yoast Product Description
|
|
|
1146 |
*
|
1147 |
* @param WC_Product $product
|
1148 |
*
|
1149 |
* @return mixed
|
1150 |
+
* @since 3.2.0
|
1151 |
+
*
|
1152 |
*/
|
1153 |
+
protected function yoast_wpseo_metadesc( $product ) {
|
1154 |
$description = '';
|
1155 |
if ( class_exists( 'WPSEO_Frontend' ) ) {
|
1156 |
+
$description = wpseo_replace_vars( WPSEO_Meta::get_value( 'metadesc', $product->get_id() ),
|
1157 |
+
get_post( $product->get_id() ) );
|
1158 |
}
|
1159 |
if ( ! empty( $description ) ) {
|
1160 |
return $description;
|
1165 |
|
1166 |
/**
|
1167 |
* Get All In One Product Description
|
|
|
1168 |
*
|
1169 |
* @param WC_Product $product
|
1170 |
*
|
1171 |
* @return mixed
|
1172 |
+
* @since 3.2.0
|
1173 |
+
*
|
1174 |
*/
|
1175 |
+
protected function _aioseop_description( $product ) {
|
1176 |
$description = '';
|
1177 |
if ( class_exists( 'All_in_One_SEO_Pack' ) ) {
|
1178 |
global $aioseop_options, $aiosp;
|
1185 |
if ( in_array( 'product', $aioseop_options['aiosp_cpostactive'], true ) ) {
|
1186 |
$description = $aiosp->get_main_description( get_post( $product->get_id() ) ); // Get the description.
|
1187 |
$description = $aiosp->trim_description( $description );
|
1188 |
+
$description = apply_filters( 'aioseop_description_full',
|
1189 |
+
$aiosp->apply_description_format( $description, get_post( $product->get_id() ) ) );
|
1190 |
}
|
1191 |
}
|
1192 |
if ( ! empty( $description ) ) {
|
1198 |
|
1199 |
/**
|
1200 |
* Get Product Short Description
|
|
|
1201 |
*
|
1202 |
* @param WC_Product $product
|
1203 |
*
|
1204 |
* @return mixed|string
|
1205 |
+
* @since 3.2.0
|
1206 |
+
*
|
1207 |
*/
|
1208 |
+
protected function short_description( $product ) {
|
1209 |
|
1210 |
$short_description = $product->get_short_description();
|
1211 |
|
1224 |
|
1225 |
/**
|
1226 |
* At First convert Short Codes and then Remove failed Short Codes from String
|
|
|
1227 |
*
|
1228 |
* @param $content
|
1229 |
*
|
1230 |
* @return mixed|string
|
1231 |
+
* @since 3.2.0
|
1232 |
+
*
|
1233 |
*/
|
1234 |
+
protected function remove_short_codes( $content ) {
|
1235 |
if ( empty( $content ) ) {
|
1236 |
return '';
|
1237 |
}
|
1251 |
|
1252 |
/**
|
1253 |
* Get Product Categories
|
|
|
1254 |
*
|
1255 |
* @param WC_Product $product
|
1256 |
*
|
1257 |
* @return mixed
|
1258 |
+
* @since 3.2.0
|
1259 |
+
*
|
1260 |
*/
|
1261 |
+
protected function product_type( $product ) {
|
1262 |
$id = $product->get_id();
|
1263 |
if ( $product->is_type( 'variation' ) ) {
|
1264 |
$id = $product->get_parent_id();
|
1268 |
|
1269 |
return wp_strip_all_tags( wc_get_product_category_list( $id, $separator, '' ) );
|
1270 |
}
|
1271 |
+
|
1272 |
/**
|
1273 |
* Get Product URL
|
|
|
1274 |
*
|
1275 |
* @param WC_Product $product
|
1276 |
*
|
1277 |
* @return string
|
1278 |
+
* @since 3.2.0
|
1279 |
+
*
|
1280 |
*/
|
1281 |
+
protected function link( $product ) {
|
1282 |
$utm = $this->config['campaign_parameters'];
|
1283 |
if ( ! empty( $utm['utm_source'] ) && ! empty( $utm['utm_medium'] ) && ! empty( $utm['utm_campaign'] ) ) {
|
1284 |
$utm = [
|
1288 |
'utm_term' => $utm['utm_term'],
|
1289 |
'utm_content' => $utm['utm_content'],
|
1290 |
];
|
1291 |
+
|
1292 |
return add_query_arg( array_filter( $utm ), $product->get_permalink() );
|
1293 |
}
|
1294 |
+
|
1295 |
return $product->get_permalink();
|
1296 |
}
|
1297 |
+
|
1298 |
/**
|
1299 |
* Get External Product URL
|
|
|
1300 |
*
|
1301 |
* @param WC_Product $product
|
1302 |
*
|
1303 |
* @return string
|
1304 |
+
* @since 3.2.0
|
1305 |
+
*
|
1306 |
*/
|
1307 |
+
protected function ex_link( $product ) {
|
1308 |
if ( $product->is_type( 'external' ) ) {
|
1309 |
return $product->get_product_url();
|
1310 |
}
|
1311 |
+
|
1312 |
return '';
|
1313 |
}
|
1314 |
|
1315 |
/**
|
1316 |
* Get Product Image
|
|
|
1317 |
*
|
1318 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1319 |
*
|
1320 |
* @return mixed
|
1321 |
+
* @since 3.2.0
|
1322 |
+
*
|
1323 |
*/
|
1324 |
+
protected function image( $product ) {
|
1325 |
if ( $product->is_type( 'variation' ) ) {
|
1326 |
+
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ),
|
1327 |
+
'single-post-thumbnail' );
|
1328 |
if ( has_post_thumbnail( $product->get_id() ) && ! empty( $getImage[0] ) ) :
|
1329 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1330 |
else :
|
1331 |
+
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_parent_id() ),
|
1332 |
+
'single-post-thumbnail' );
|
1333 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1334 |
endif;
|
1335 |
} else {
|
1336 |
if ( has_post_thumbnail( $product->get_id() ) ) :
|
1337 |
+
$getImage = wp_get_attachment_image_src( get_post_thumbnail_id( $product->get_id() ),
|
1338 |
+
'single-post-thumbnail' );
|
1339 |
$image = woo_feed_get_formatted_url( $getImage[0] );
|
1340 |
else :
|
1341 |
$image = woo_feed_get_formatted_url( wp_get_attachment_url( $product->get_id() ) );
|
1347 |
|
1348 |
/**
|
1349 |
* Get Product Featured Image
|
|
|
1350 |
*
|
1351 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product Product Object.
|
1352 |
*
|
1353 |
* @return mixed
|
1354 |
+
* @since 3.2.0
|
1355 |
+
*
|
1356 |
*/
|
1357 |
+
protected function feature_image( $product ) {
|
1358 |
return $this->image( $product );
|
1359 |
}
|
1360 |
|
1368 |
* @since 3.2.0
|
1369 |
*
|
1370 |
*/
|
1371 |
+
protected function images( $product, $additionalImg = '' ) {
|
1372 |
if ( $product->is_type( 'variation' ) ) {
|
1373 |
// TODO Test Variation Images
|
1374 |
$imgUrls = $this->get_product_gallery( wc_get_product( $product->get_parent_id() ) );
|
1391 |
/**
|
1392 |
* Get Product Gallery Items (URL) array.
|
1393 |
* This can contains empty array values
|
1394 |
+
*
|
1395 |
* @param WC_Product|WC_Product_Variable|WC_Product_Variation|WC_Product_Grouped|WC_Product_External|WC_Product_Composite $product
|
1396 |
+
*
|
1397 |
* @return string[]
|
1398 |
+
* @since 3.2.6
|
1399 |
*/
|
1400 |
+
protected function get_product_gallery( $product ) {
|
1401 |
$attachmentIds = $product->get_gallery_image_ids();
|
1402 |
$imgUrls = array();
|
1403 |
if ( $attachmentIds && is_array( $attachmentIds ) ) {
|
1407 |
$mKey ++;
|
1408 |
}
|
1409 |
}
|
1410 |
+
|
1411 |
return $imgUrls;
|
1412 |
}
|
1413 |
|
1414 |
/**
|
1415 |
* Get Product Condition
|
|
|
1416 |
*
|
1417 |
* @param WC_Product $product
|
1418 |
*
|
1419 |
* @return mixed
|
1420 |
+
* @since 3.2.0
|
1421 |
+
*
|
1422 |
*/
|
1423 |
+
protected function condition( $product ) {
|
1424 |
return apply_filters( 'woo_feed_product_condition', 'new', $product );
|
1425 |
}
|
1426 |
|
1427 |
/**
|
1428 |
* Get Product Type
|
|
|
1429 |
*
|
1430 |
* @param WC_Product $product
|
1431 |
*
|
1432 |
* @return mixed
|
1433 |
+
* @since 3.2.0
|
1434 |
+
*
|
1435 |
*/
|
1436 |
+
protected function type( $product ) {
|
1437 |
return $product->get_type();
|
1438 |
}
|
1439 |
|
1440 |
/**
|
1441 |
* Get Product is a bundle product or not
|
|
|
1442 |
*
|
1443 |
* @param WC_Product $product
|
1444 |
*
|
1445 |
* @return mixed
|
1446 |
+
* @since 3.2.0
|
1447 |
+
*
|
1448 |
*/
|
1449 |
+
protected function is_bundle( $product ) {
|
1450 |
if ( $product->is_type( 'bundle' ) || $product->is_type( 'yith_bundle' ) ) {
|
1451 |
return "yes";
|
1452 |
}
|
1456 |
|
1457 |
/**
|
1458 |
* Get Product is a multi-pack product or not
|
|
|
1459 |
*
|
1460 |
* @param WC_Product $product
|
1461 |
*
|
1462 |
* @return mixed
|
1463 |
+
* @since 3.2.0
|
1464 |
+
*
|
1465 |
*/
|
1466 |
+
protected function multipack( $product ) {
|
1467 |
$multi_pack = '';
|
1468 |
if ( $product->is_type( 'grouped' ) ) {
|
1469 |
$multi_pack = ( ! empty( $product->get_children() ) ) ? count( $product->get_children() ) : '';
|
1474 |
|
1475 |
/**
|
1476 |
* Get Product visibility status
|
|
|
1477 |
*
|
1478 |
* @param WC_Product $product
|
1479 |
*
|
1480 |
* @return mixed
|
1481 |
+
* @since 3.2.0
|
1482 |
+
*
|
1483 |
*/
|
1484 |
+
protected function visibility( $product ) {
|
1485 |
return $product->get_catalog_visibility();
|
1486 |
}
|
1487 |
|
1488 |
/**
|
1489 |
* Get Product Total Rating
|
|
|
1490 |
*
|
1491 |
* @param WC_Product $product
|
1492 |
*
|
1493 |
* @return mixed
|
1494 |
+
* @since 3.2.0
|
1495 |
+
*
|
1496 |
*/
|
1497 |
+
protected function rating_total( $product ) {
|
1498 |
return $product->get_rating_count();
|
1499 |
}
|
1500 |
|
1501 |
/**
|
1502 |
* Get Product average rating
|
|
|
1503 |
*
|
1504 |
* @param WC_Product $product
|
1505 |
*
|
1506 |
* @return mixed
|
1507 |
+
* @since 3.2.0
|
1508 |
+
*
|
1509 |
*/
|
1510 |
+
protected function rating_average( $product ) {
|
1511 |
return $product->get_average_rating();
|
1512 |
}
|
1513 |
|
1514 |
/**
|
1515 |
* Get Product tags
|
|
|
1516 |
*
|
1517 |
* @param WC_Product $product
|
1518 |
*
|
1519 |
* @return mixed
|
1520 |
+
* @since 3.2.0
|
1521 |
+
*
|
1522 |
*/
|
1523 |
+
protected function tags( $product ) {
|
1524 |
$id = $product->get_id();
|
1525 |
if ( $product->is_type( 'variation' ) ) {
|
1526 |
$id = $product->get_parent_id();
|
1537 |
|
1538 |
/**
|
1539 |
* Get Product Parent Id
|
|
|
1540 |
*
|
1541 |
* @param WC_Product $product
|
1542 |
*
|
1543 |
* @return mixed
|
1544 |
+
* @since 3.2.0
|
1545 |
+
*
|
1546 |
*/
|
1547 |
+
protected function item_group_id( $product ) {
|
1548 |
$id = $product->get_id();
|
1549 |
if ( $product->is_type( 'variation' ) ) {
|
1550 |
$id = $product->get_parent_id();
|
1555 |
|
1556 |
/**
|
1557 |
* Get Product SKU
|
|
|
1558 |
*
|
1559 |
* @param WC_Product $product
|
1560 |
*
|
1561 |
* @return mixed
|
1562 |
+
* @since 3.2.0
|
1563 |
+
*
|
1564 |
*/
|
1565 |
+
protected function sku( $product ) {
|
1566 |
return $product->get_sku();
|
1567 |
}
|
1568 |
|
1569 |
/**
|
1570 |
* Get Product Parent SKU
|
|
|
1571 |
*
|
1572 |
* @param WC_Product $product
|
1573 |
*
|
1574 |
* @return mixed
|
1575 |
+
* @since 3.2.0
|
1576 |
+
*
|
1577 |
*/
|
1578 |
+
protected function parent_sku( $product ) {
|
1579 |
if ( $product->is_type( 'variation' ) ) {
|
1580 |
$id = $product->get_parent_id();
|
1581 |
$parent = wc_get_product( $id );
|
1588 |
|
1589 |
/**
|
1590 |
* Get Product Availability Status
|
|
|
1591 |
*
|
1592 |
* @param WC_Product $product
|
1593 |
*
|
1594 |
* @return mixed
|
1595 |
+
* @since 3.2.0
|
1596 |
+
*
|
1597 |
*/
|
1598 |
+
protected function availability( $product ) {
|
1599 |
$status = $product->get_stock_status();
|
1600 |
+
if ( 'instock' == $status ) {
|
1601 |
+
return 'in stock';
|
1602 |
+
} elseif ( 'outofstock' == $status ) {
|
1603 |
+
return 'out of stock';
|
1604 |
+
} elseif ( 'onbackorder' == $status ) {
|
1605 |
+
return 'on backorder';
|
1606 |
+
} else {
|
1607 |
+
return 'in stock';
|
|
|
|
|
1608 |
}
|
|
|
|
|
1609 |
}
|
1610 |
|
1611 |
/**
|
1612 |
* Get Product Quantity
|
|
|
1613 |
*
|
1614 |
* @param WC_Product $product
|
1615 |
*
|
1616 |
* @return mixed
|
1617 |
+
* @since 3.2.0
|
1618 |
+
*
|
1619 |
*/
|
1620 |
+
protected function quantity( $product ) {
|
1621 |
if ( $product->is_type( 'variable' ) && $product->has_child() ) {
|
1622 |
$visible_children = $product->get_visible_children();
|
1623 |
$qty = array();
|
1647 |
|
1648 |
/**
|
1649 |
* Get Product Sale Price Start Date
|
|
|
1650 |
*
|
1651 |
* @param WC_Product $product
|
1652 |
*
|
1653 |
* @return mixed
|
1654 |
+
* @since 3.2.0
|
1655 |
+
*
|
1656 |
*/
|
1657 |
+
protected function sale_price_sdate( $product ) {
|
1658 |
$startDate = $product->get_date_on_sale_from();
|
1659 |
if ( is_object( $startDate ) ) {
|
1660 |
return $startDate->date_i18n();
|
1665 |
|
1666 |
/**
|
1667 |
* Get Product Sale Price End Date
|
|
|
1668 |
*
|
1669 |
* @param WC_Product $product
|
1670 |
*
|
1671 |
* @return mixed
|
1672 |
+
* @since 3.2.0
|
1673 |
+
*
|
1674 |
*/
|
1675 |
+
protected function sale_price_edate( $product ) {
|
1676 |
$endDate = $product->get_date_on_sale_to();
|
1677 |
if ( is_object( $endDate ) ) {
|
1678 |
return $endDate->date_i18n();
|
1683 |
|
1684 |
/**
|
1685 |
* Get Product Regular Price
|
|
|
1686 |
*
|
1687 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product Product Object.
|
1688 |
*
|
1689 |
* @return mixed
|
1690 |
+
* @since 3.2.0
|
1691 |
+
*
|
1692 |
*/
|
1693 |
+
protected function price( $product ) {
|
|
|
|
|
1694 |
if ( $product->is_type( 'variable' ) ) {
|
1695 |
+
return $this->getVariableProductPrice( $product, 'regular_price' );
|
1696 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1697 |
+
return $this->getGroupProductPrice( $product,
|
1698 |
+
'regular' ); // this calls self::price() so no need to use self::getWPMLPrice()
|
1699 |
+
} else {
|
1700 |
+
return $product->get_regular_price();
|
1701 |
}
|
|
|
|
|
1702 |
}
|
1703 |
+
|
1704 |
/**
|
1705 |
* Get Product Price
|
|
|
1706 |
*
|
1707 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product
|
1708 |
*
|
1709 |
+
* @return int|float|double|mixed
|
1710 |
+
* @since 3.2.0
|
1711 |
+
*
|
1712 |
*/
|
1713 |
+
protected function current_price( $product ) {
|
|
|
|
|
1714 |
if ( $product->is_type( 'variable' ) ) {
|
1715 |
+
return $this->getVariableProductPrice( $product, 'price' );
|
1716 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1717 |
return $this->getGroupProductPrice( $product, 'current' );
|
1718 |
+
} else {
|
1719 |
+
return $product->get_price();
|
1720 |
}
|
|
|
|
|
1721 |
}
|
1722 |
+
|
1723 |
/**
|
1724 |
* Get Product Sale Price
|
|
|
1725 |
*
|
1726 |
* @param WC_Product|WC_Product_Variable|WC_Product_Grouped $product
|
1727 |
*
|
1728 |
* @return mixed
|
1729 |
+
* @since 3.2.0
|
1730 |
+
*
|
1731 |
*/
|
1732 |
+
protected function sale_price( $product ) {
|
1733 |
+
if ( $product->is_type( 'variable' ) ) {
|
1734 |
+
return $this->getVariableProductPrice( $product, 'sale_price' );
|
1735 |
+
} elseif ( $product->is_type( 'grouped' ) ) {
|
|
|
|
|
1736 |
return $this->getGroupProductPrice( $product, 'sale' );
|
1737 |
+
} else {
|
1738 |
+
$price = $product->get_sale_price();
|
1739 |
+
|
1740 |
+
return $price > 0 ? $price : '';
|
1741 |
}
|
|
|
|
|
1742 |
}
|
1743 |
|
1744 |
/**
|
1750 |
* @since 3.2.0
|
1751 |
*
|
1752 |
*/
|
1753 |
+
protected function price_with_tax( $product ) {
|
|
|
|
|
1754 |
if ( $product->is_type( 'variable' ) ) {
|
1755 |
+
return $this->getVariableProductPrice( $product, 'regular_price', true );
|
1756 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1757 |
return $this->getGroupProductPrice( $product, 'regular', true );
|
1758 |
+
} else {
|
1759 |
+
$price = $this->price( $product );
|
1760 |
+
|
1761 |
+
// Get price with tax.
|
1762 |
+
return ( $product->is_taxable() && ! empty( $price ) ) ? $this->get_price_with_tax( $product,
|
1763 |
+
$price ) : $price;
|
1764 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1765 |
}
|
1766 |
|
1767 |
/**
|
1773 |
* @since 3.2.0
|
1774 |
*
|
1775 |
*/
|
1776 |
+
protected function current_price_with_tax( $product ) {
|
|
|
|
|
1777 |
if ( $product->is_type( 'variable' ) ) {
|
1778 |
+
return $this->getVariableProductPrice( $product, 'current_price', true );
|
1779 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1780 |
return $this->getGroupProductPrice( $product, 'current', true );
|
1781 |
+
} else {
|
1782 |
+
$price = $this->current_price( $product );
|
1783 |
+
|
1784 |
+
// Get price with tax
|
1785 |
+
return ( $product->is_taxable() && ! empty( $price ) ) ? $this->get_price_with_tax( $product,
|
1786 |
+
$price ) : $price;
|
1787 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1788 |
}
|
1789 |
|
1790 |
/**
|
1796 |
* @since 3.2.0
|
1797 |
*
|
1798 |
*/
|
1799 |
+
protected function sale_price_with_tax( $product ) {
|
|
|
|
|
|
|
1800 |
if ( $product->is_type( 'variable' ) ) {
|
1801 |
+
return $this->getVariableProductPrice( $product, 'sale_price', true );
|
1802 |
} elseif ( $product->is_type( 'grouped' ) ) {
|
1803 |
return $this->getGroupProductPrice( $product, 'sale', true );
|
1804 |
+
} else {
|
1805 |
+
$price = $this->sale_price( $product );
|
1806 |
+
if ( $product->is_taxable() && ! empty( $price ) ) {
|
1807 |
+
$price = $this->get_price_with_tax( $product, $price );
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
return $price > 0 ? $price : '';
|
1811 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1812 |
}
|
1813 |
|
1814 |
/**
|
1822 |
* @since 3.2.0
|
1823 |
*
|
1824 |
*/
|
1825 |
+
protected function getGroupProductPrice( $grouped, $type, $tax = false ) {
|
1826 |
$groupProductIds = $grouped->get_children();
|
1827 |
$sum = 0;
|
1828 |
if ( ! empty( $groupProductIds ) ) {
|
1859 |
}
|
1860 |
}
|
1861 |
|
1862 |
+
if ( 'sale' == $type ) {
|
1863 |
+
$sum = $sum > 0 ? $sum : '';
|
1864 |
+
}
|
1865 |
+
|
1866 |
return $sum;
|
1867 |
}
|
1868 |
|
1869 |
/**
|
1870 |
+
* Get total price of variable product
|
1871 |
*
|
1872 |
+
* @param WC_Product_Variable $variable
|
1873 |
* @param string $type regular_price, sale_price & current_price
|
1874 |
+
* @param bool $tax calculate tax
|
1875 |
*
|
1876 |
* @return int|string
|
1877 |
* @since 3.2.0
|
1878 |
*
|
1879 |
*/
|
1880 |
+
protected function getVariableProductPrice( $variable, $type, $tax = false ) {
|
1881 |
+
$price = 0;
|
1882 |
if ( 'regular_price' == $type ) {
|
1883 |
+
$price = $variable->get_variation_regular_price();
|
1884 |
} elseif ( 'sale_price' == $type ) {
|
1885 |
+
$price = $variable->get_variation_sale_price();
|
1886 |
} else {
|
1887 |
+
$price = $variable->get_variation_price();
|
1888 |
}
|
1889 |
+
if ( true === $tax && $variable->is_taxable() ) {
|
1890 |
+
$price = $this->get_price_with_tax( $variable, $price );
|
1891 |
+
}
|
1892 |
+
if ( 'sale_price' != $type ) {
|
1893 |
+
$price = $price > 0 ? $price : '';
|
1894 |
+
}
|
1895 |
+
|
1896 |
+
return $price;
|
1897 |
}
|
1898 |
|
1899 |
/**
|
1906 |
* @since 3.2.0
|
1907 |
*
|
1908 |
*/
|
1909 |
+
protected function get_price_with_tax( $product, $price ) {
|
1910 |
if ( woo_feed_wc_version_check( 3.0 ) ) {
|
1911 |
return wc_get_price_including_tax( $product, array( 'price' => $price ) );
|
1912 |
} else {
|
1913 |
return $product->get_price_including_tax( 1, $price );
|
1914 |
}
|
1915 |
}
|
1916 |
+
|
1917 |
/**
|
1918 |
* Get Product Weight
|
|
|
1919 |
*
|
1920 |
* @param WC_Product $product
|
1921 |
*
|
1922 |
* @return mixed
|
1923 |
+
* @since 3.2.0
|
1924 |
+
*
|
1925 |
*/
|
1926 |
+
protected function weight( $product ) {
|
|
|
|
|
|
|
|
|
1927 |
return $product->get_weight();
|
1928 |
}
|
1929 |
+
|
1930 |
/**
|
1931 |
* Get Product Width
|
|
|
1932 |
*
|
1933 |
* @param WC_Product $product
|
1934 |
*
|
1935 |
* @return mixed
|
1936 |
+
* @since 3.2.0
|
1937 |
+
*
|
1938 |
*/
|
1939 |
+
protected function width( $product ) {
|
1940 |
return $product->get_width();
|
1941 |
}
|
1942 |
+
|
1943 |
/**
|
1944 |
* Get Product Height
|
|
|
1945 |
*
|
1946 |
* @param WC_Product $product
|
1947 |
*
|
1948 |
* @return mixed
|
1949 |
+
* @since 3.2.0
|
1950 |
+
*
|
1951 |
*/
|
1952 |
+
protected function height( $product ) {
|
1953 |
return $product->get_height();
|
1954 |
}
|
1955 |
+
|
1956 |
/**
|
1957 |
* Get Product Length
|
|
|
1958 |
*
|
1959 |
* @param WC_Product $product
|
1960 |
*
|
1961 |
* @return mixed
|
1962 |
+
* @since 3.2.0
|
1963 |
+
*
|
1964 |
*/
|
1965 |
+
protected function length( $product ) {
|
1966 |
return $product->get_length();
|
1967 |
}
|
1968 |
+
|
1969 |
/**
|
1970 |
* Get Product Shipping Class
|
|
|
1971 |
*
|
1972 |
* @param WC_Product $product
|
1973 |
*
|
1974 |
* @return mixed
|
1975 |
+
* @since 3.2.0
|
1976 |
+
*
|
1977 |
*/
|
1978 |
+
protected function shipping_class( $product ) {
|
1979 |
return $product->get_shipping_class();
|
1980 |
}
|
1981 |
+
|
1982 |
/**
|
1983 |
* Get Product Author Name
|
|
|
1984 |
*
|
1985 |
* @param WC_Product $product
|
1986 |
*
|
1987 |
* @return mixed
|
1988 |
+
* @since 3.2.0
|
1989 |
+
*
|
1990 |
*/
|
1991 |
+
protected function author_name( $product ) {
|
1992 |
+
$post = get_post( $product->get_id() );
|
1993 |
+
|
1994 |
+
return get_the_author_meta( 'user_login', $post->post_author );
|
|
|
1995 |
}
|
1996 |
+
|
1997 |
/**
|
1998 |
* Get Product Author Email
|
|
|
1999 |
*
|
2000 |
* @param WC_Product $product
|
2001 |
*
|
2002 |
* @return mixed
|
2003 |
+
* @since 3.2.0
|
2004 |
+
*
|
2005 |
*/
|
2006 |
+
protected function author_email( $product ) {
|
2007 |
+
$post = get_post( $product->get_id() );
|
2008 |
+
|
2009 |
+
return get_the_author_meta( 'user_email', $post->post_author );
|
|
|
2010 |
}
|
2011 |
+
|
2012 |
/**
|
2013 |
* Get Product Created Date
|
|
|
2014 |
*
|
2015 |
* @param WC_Product $product
|
2016 |
*
|
2017 |
* @return mixed
|
2018 |
+
* @since 3.2.0
|
2019 |
+
*
|
2020 |
*/
|
2021 |
+
protected function date_created( $product ) {
|
2022 |
+
return gmdate( 'Y-m-d', strtotime( $product->get_date_created() ) );
|
|
|
|
|
2023 |
}
|
2024 |
+
|
2025 |
/**
|
2026 |
* Get Product Last Updated Date
|
|
|
2027 |
*
|
2028 |
* @param WC_Product $product
|
2029 |
*
|
2030 |
* @return mixed
|
2031 |
+
* @since 3.2.0
|
2032 |
+
*
|
2033 |
*/
|
2034 |
+
protected function date_updated( $product ) {
|
2035 |
+
return gmdate( 'Y-m-d', strtotime( $product->get_date_modified() ) );
|
|
|
|
|
2036 |
}
|
2037 |
+
|
2038 |
/**
|
2039 |
* Get Product Sale Price Effected Date for Google Shopping
|
|
|
2040 |
*
|
2041 |
* @param WC_Product $product
|
2042 |
*
|
2043 |
+
* @return string
|
2044 |
+
* @since 3.2.0
|
2045 |
+
*
|
2046 |
*/
|
2047 |
+
protected function sale_price_effective_date( $product ) {
|
2048 |
+
$effective_date = '';
|
2049 |
+
$from = $this->sale_price_sdate( $product );
|
2050 |
+
$to = $this->sale_price_edate( $product );
|
2051 |
+
if ( ! empty( $from ) && ! empty( $to ) ) {
|
2052 |
+
$from = gmdate( 'c', strtotime( $from ) );
|
2053 |
+
$to = gmdate( 'c', strtotime( $to ) );
|
2054 |
+
|
2055 |
+
$effective_date = $from . '/' . $to;
|
2056 |
}
|
2057 |
+
|
2058 |
+
return $effective_date;
|
2059 |
}
|
2060 |
+
|
2061 |
/**
|
2062 |
* Ger Product Attribute
|
2063 |
*
|
|
|
|
|
2064 |
* @param WC_Product $product
|
2065 |
* @param $attr
|
2066 |
*
|
2067 |
* @return string
|
2068 |
+
* @since 2.2.3
|
2069 |
+
*
|
2070 |
*/
|
2071 |
+
protected function getProductAttribute( $product, $attr ) {
|
2072 |
$id = $product->get_id();
|
2073 |
+
|
2074 |
+
if ( woo_feed_wc_version_check( 3.2 ) ) {
|
2075 |
+
if ( woo_feed_wc_version_check( 3.6 ) ) {
|
2076 |
+
$attr = str_replace( 'pa_', '', $attr );
|
|
|
2077 |
}
|
2078 |
+
$value = $product->get_attribute( $attr );
|
2079 |
+
|
2080 |
return $value;
|
2081 |
} else {
|
2082 |
+
return implode( ',', wc_get_product_terms( $id, $attr, array( 'fields' => 'names' ) ) );
|
2083 |
}
|
2084 |
}
|
2085 |
+
|
2086 |
/**
|
2087 |
* Get Meta
|
2088 |
*
|
|
|
|
|
2089 |
* @param WC_Product $product
|
2090 |
* @param string $meta post meta key
|
2091 |
*
|
2092 |
* @return mixed|string
|
2093 |
+
* @since 2.2.3
|
2094 |
+
*
|
2095 |
*/
|
2096 |
+
protected function getProductMeta( $product, $meta ) {
|
2097 |
+
$value = get_post_meta( $product->get_id(), $meta, true );
|
2098 |
+
// if empty get meta value of parent post
|
2099 |
+
if ( '' == $value && $product->get_parent_id() ) {
|
2100 |
+
$value = get_post_meta( $product->get_parent_id(), $meta, true );
|
|
|
|
|
|
|
2101 |
}
|
2102 |
|
2103 |
+
return $value;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2104 |
}
|
2105 |
+
|
2106 |
/**
|
2107 |
* Get Taxonomy
|
|
|
2108 |
*
|
2109 |
* @param WC_Product $product
|
2110 |
* @param $taxonomy
|
2111 |
*
|
2112 |
* @return string
|
2113 |
+
* @since 2.2.3
|
2114 |
+
*
|
2115 |
*/
|
2116 |
+
protected function getProductTaxonomy( $product, $taxonomy ) {
|
2117 |
$id = $product->get_id();
|
2118 |
+
if ( $product->is_type( 'variation' ) ) {
|
2119 |
+
$id = $product->get_parent_id();
|
|
|
|
|
|
|
2120 |
}
|
2121 |
+
|
2122 |
+
$separator = apply_filters( 'woo_feed_product_taxonomy_term_list_separator', ',', $this->config, $product );
|
2123 |
+
|
2124 |
+
return wp_strip_all_tags( get_the_term_list( $id, $taxonomy, '', $separator, '' ) );
|
2125 |
}
|
2126 |
+
|
2127 |
/**
|
2128 |
* Format price value
|
|
|
2129 |
*
|
2130 |
* @param string $name Attribute Name
|
2131 |
* @param int $conditionName condition
|
2132 |
* @param int $result price
|
2133 |
*
|
2134 |
* @return mixed
|
2135 |
+
* @since 3.2.0
|
2136 |
+
*
|
2137 |
*/
|
2138 |
+
protected function price_format( $name, $conditionName, $result ) {
|
2139 |
+
$plus = "+";
|
2140 |
+
$minus = "-";
|
2141 |
$percent = "%";
|
2142 |
+
|
2143 |
+
if ( strpos( $name, 'price' ) !== false ) {
|
2144 |
+
if ( strpos( $result, $plus ) !== false && strpos( $result, $percent ) !== false ) {
|
2145 |
+
$result = str_replace( "+", '', $result );
|
2146 |
+
$result = str_replace( "%", '', $result );
|
2147 |
+
if ( is_numeric( $result ) ) {
|
2148 |
+
$result = $conditionName + ( ( $conditionName * $result ) / 100 );
|
2149 |
}
|
2150 |
+
} elseif ( strpos( $result, $minus ) !== false && strpos( $result, $percent ) !== false ) {
|
2151 |
+
$result = str_replace( "-", '', $result );
|
2152 |
+
$result = str_replace( "%", '', $result );
|
2153 |
+
if ( is_numeric( $result ) ) {
|
2154 |
+
$result = $conditionName - ( ( $conditionName * $result ) / 100 );
|
2155 |
}
|
2156 |
+
} elseif ( strpos( $result, $plus ) !== false ) {
|
2157 |
+
$result = str_replace( "+", "", $result );
|
2158 |
+
if ( is_numeric( $result ) ) {
|
2159 |
+
$result = ( $conditionName + $result );
|
2160 |
}
|
2161 |
+
} elseif ( strpos( $result, $minus ) !== false ) {
|
2162 |
+
$result = str_replace( "-", "", $result );
|
2163 |
+
if ( is_numeric( $result ) ) {
|
2164 |
$result = $conditionName - $result;
|
2165 |
}
|
2166 |
}
|
2167 |
}
|
2168 |
+
|
2169 |
return $result;
|
2170 |
}
|
2171 |
+
|
2172 |
/**
|
2173 |
* Format output According to Output Type config
|
|
|
2174 |
*
|
2175 |
+
* @param string $output
|
2176 |
+
* @param array $outputTypes
|
2177 |
+
* @param WC_Product $product
|
2178 |
+
* @param string $productAttribute
|
2179 |
*
|
2180 |
* @return float|int|string
|
2181 |
+
* @since 3.2.0
|
2182 |
+
*
|
2183 |
*/
|
2184 |
+
protected function format_output( $output, $outputTypes, $product, $productAttribute ) {
|
2185 |
if ( ! empty( $outputTypes ) && is_array( $outputTypes ) ) {
|
2186 |
|
2187 |
+
// Format Output According to output type
|
2188 |
if ( in_array( 2, $outputTypes ) ) { // Strip Tags
|
2189 |
$output = wp_strip_all_tags( html_entity_decode( $output ) );
|
2190 |
}
|
2191 |
|
2192 |
+
if ( in_array( 3, $outputTypes ) ) { // UTF-8 Encode
|
2193 |
$output = utf8_encode( $output );
|
2194 |
}
|
2195 |
|
2196 |
+
if ( in_array( 4, $outputTypes ) ) { // htmlentities
|
2197 |
$output = htmlentities( $output, ENT_QUOTES, 'UTF-8' );
|
2198 |
}
|
2199 |
|
2200 |
+
if ( in_array( 5, $outputTypes ) ) { // Integer
|
2201 |
+
$output = intval( $output );
|
2202 |
}
|
2203 |
|
2204 |
+
if ( in_array( 6, $outputTypes ) ) { // Format Price
|
2205 |
+
if ( ! empty( $output ) && $output > 0 ) {
|
2206 |
+
$output = (float) $output;
|
2207 |
+
$output = number_format( $output, 2, '.', '' );
|
2208 |
+
}
|
2209 |
}
|
2210 |
|
2211 |
+
if ( in_array( 7, $outputTypes ) ) { // Delete Space
|
2212 |
$output = trim( $output );
|
2213 |
$output = preg_replace( '!\s+!', ' ', $output );
|
2214 |
}
|
2215 |
|
2216 |
+
if ( in_array( 9, $outputTypes ) ) { // Remove Invalid Character
|
2217 |
$output = woo_feed_stripInvalidXml( $output );
|
2218 |
}
|
2219 |
|
2220 |
+
if ( in_array( 10, $outputTypes ) ) { // Remove ShortCodes
|
2221 |
$output = $this->remove_short_codes( $output );
|
2222 |
}
|
2223 |
|
2224 |
+
if ( in_array( 8, $outputTypes ) ) { // Add CDATA
|
2225 |
$output = '<![CDATA[' . $output . ']]>';
|
2226 |
}
|
2227 |
}
|
2228 |
|
2229 |
return $output;
|
2230 |
}
|
2231 |
+
|
2232 |
/**
|
2233 |
* Add Prefix and Suffix with attribute value
|
|
|
2234 |
*
|
2235 |
* @param $output
|
2236 |
* @param $prefix
|
2238 |
* @param $attribute
|
2239 |
*
|
2240 |
* @return string
|
2241 |
+
* @since 3.2.0
|
2242 |
+
*
|
2243 |
*/
|
2244 |
+
protected function process_prefix_suffix( $output, $prefix, $suffix, $attribute = '' ) {
|
2245 |
+
|
2246 |
+
if ( '' == $output ) {
|
2247 |
+
return $output;
|
2248 |
}
|
2249 |
+
|
2250 |
+
// Add Prefix before Output
|
2251 |
if ( '' != $prefix ) {
|
2252 |
$output = "$prefix" . $output;
|
2253 |
}
|
2254 |
+
|
2255 |
+
// Add Suffix after Output
|
2256 |
+
if ( '' !== $suffix ) {
|
2257 |
if (
|
2258 |
+
'price' == $attribute
|
2259 |
+
|| 'sale_price' == $attribute
|
2260 |
+
|| 'current_price' == $attribute
|
2261 |
+
|| 'price_with_tax' == $attribute
|
2262 |
+
|| 'current_price_with_tax' == $attribute
|
2263 |
+
|| 'sale_price_with_tax' == $attribute
|
2264 |
+
|| 'shipping_price' == $attribute
|
2265 |
+
|| 'tax_rate' == $attribute
|
2266 |
+
) { // Add space before suffix if attribute contain price.
|
2267 |
+
$output = $output . ' ' . $suffix;
|
2268 |
+
} elseif ( substr( $output, 0, 4 ) === 'http' ) {
|
2269 |
+
// Parse URL Parameters if available into suffix field
|
|
|
|
|
|
|
2270 |
$output = woo_feed_make_url_with_parameter( $output, $suffix );
|
2271 |
+
|
2272 |
} else {
|
2273 |
$output = $output . "$suffix";
|
2274 |
}
|
2275 |
}
|
2276 |
+
|
2277 |
return "$output";
|
2278 |
}
|
|
|
2279 |
}
|
includes/classes/class-woo-feed-savefile.php
CHANGED
@@ -9,19 +9,19 @@
|
|
9 |
* @author Ohidul Islam <wahid@webappick.com>
|
10 |
*/
|
11 |
class Woo_Feed_Savefile {
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
|
26 |
/**
|
27 |
* Save CSV Feed file
|
9 |
* @author Ohidul Islam <wahid@webappick.com>
|
10 |
*/
|
11 |
class Woo_Feed_Savefile {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Check if the directory for feed file exist or not and make directory
|
15 |
+
*
|
16 |
+
* @param $path
|
17 |
+
* @return bool
|
18 |
+
*/
|
19 |
+
public function checkDir( $path ) {
|
20 |
+
if ( ! file_exists($path) ) {
|
21 |
+
return wp_mkdir_p($path);
|
22 |
+
}
|
23 |
+
return true;
|
24 |
+
}
|
25 |
|
26 |
/**
|
27 |
* Save CSV Feed file
|
includes/feeds/class-woo-feed-custom.php
CHANGED
@@ -47,8 +47,8 @@ class Woo_Feed_Custom {
|
|
47 |
* @since 1.0.0
|
48 |
*/
|
49 |
public function __construct( $feedRule ) {
|
50 |
-
$this->products = new Woo_Feed_Products_v3($feedRule);
|
51 |
-
|
52 |
if ( ! isset($feedRule['productIds']) ) {
|
53 |
$feedRule['productIds'] = $this->products->query_products();
|
54 |
}
|
@@ -74,14 +74,11 @@ class Woo_Feed_Custom {
|
|
74 |
*
|
75 |
*/
|
76 |
public function mapAttributeForXML() {
|
77 |
-
$i = 0;
|
78 |
-
$cdata = true;
|
79 |
if ( $this->products ) {
|
80 |
foreach ( $this->products as $no => $product ) {
|
81 |
foreach ( $product as $key => $value ) {
|
82 |
$this->products[ $no ][ $key ] = $this->formatXMLLine($key, $value);
|
83 |
}
|
84 |
-
$i++;
|
85 |
}
|
86 |
}
|
87 |
}
|
@@ -119,16 +116,13 @@ class Woo_Feed_Custom {
|
|
119 |
public function returnFinalProduct() {
|
120 |
if ( ! empty($this->products) ) {
|
121 |
if ( 'xml' == $this->rules['feedType'] ) {
|
122 |
-
//return $engine->get_feed($this->products);
|
123 |
$feed = array(
|
124 |
"body" => $this->products->feedBody,
|
125 |
"header" => $this->products->feedHeader,
|
126 |
"footer" => $this->products->feedFooter,
|
127 |
);
|
128 |
-
//echo "<pre>";print_r($feed);die();
|
129 |
return $feed;
|
130 |
} elseif ( 'txt' == $this->rules['feedType'] ) {
|
131 |
-
//return $engine->get_txt_feed();
|
132 |
$feed = array(
|
133 |
'body' => $this->products->feedBody,
|
134 |
'header' => $this->products->feedHeader,
|
@@ -136,7 +130,6 @@ class Woo_Feed_Custom {
|
|
136 |
);
|
137 |
return $feed;
|
138 |
} elseif ( 'csv' == $this->rules['feedType'] ) {
|
139 |
-
//return $engine->get_csv_feed();
|
140 |
$feed = array(
|
141 |
'body' => $this->products->feedBody,
|
142 |
'header' => $this->products->feedHeader,
|
@@ -156,7 +149,7 @@ class Woo_Feed_Custom {
|
|
156 |
}
|
157 |
|
158 |
public function get_header( $engine ) {
|
159 |
-
$datetime_now = gmdate(
|
160 |
if ( 'fruugo.au' == $this->rules["provider"] ) {
|
161 |
$fruugo_au = "<products version=\"1.0\" standalone=\"yes\">
|
162 |
<datetime>$datetime_now</datetime>
|
47 |
* @since 1.0.0
|
48 |
*/
|
49 |
public function __construct( $feedRule ) {
|
50 |
+
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
51 |
+
// When update via cron job then set productIds.
|
52 |
if ( ! isset($feedRule['productIds']) ) {
|
53 |
$feedRule['productIds'] = $this->products->query_products();
|
54 |
}
|
74 |
*
|
75 |
*/
|
76 |
public function mapAttributeForXML() {
|
|
|
|
|
77 |
if ( $this->products ) {
|
78 |
foreach ( $this->products as $no => $product ) {
|
79 |
foreach ( $product as $key => $value ) {
|
80 |
$this->products[ $no ][ $key ] = $this->formatXMLLine($key, $value);
|
81 |
}
|
|
|
82 |
}
|
83 |
}
|
84 |
}
|
116 |
public function returnFinalProduct() {
|
117 |
if ( ! empty($this->products) ) {
|
118 |
if ( 'xml' == $this->rules['feedType'] ) {
|
|
|
119 |
$feed = array(
|
120 |
"body" => $this->products->feedBody,
|
121 |
"header" => $this->products->feedHeader,
|
122 |
"footer" => $this->products->feedFooter,
|
123 |
);
|
|
|
124 |
return $feed;
|
125 |
} elseif ( 'txt' == $this->rules['feedType'] ) {
|
|
|
126 |
$feed = array(
|
127 |
'body' => $this->products->feedBody,
|
128 |
'header' => $this->products->feedHeader,
|
130 |
);
|
131 |
return $feed;
|
132 |
} elseif ( 'csv' == $this->rules['feedType'] ) {
|
|
|
133 |
$feed = array(
|
134 |
'body' => $this->products->feedBody,
|
135 |
'header' => $this->products->feedHeader,
|
149 |
}
|
150 |
|
151 |
public function get_header( $engine ) {
|
152 |
+
$datetime_now = gmdate('Y-m-d H:i:s');
|
153 |
if ( 'fruugo.au' == $this->rules["provider"] ) {
|
154 |
$fruugo_au = "<products version=\"1.0\" standalone=\"yes\">
|
155 |
<datetime>$datetime_now</datetime>
|
includes/feeds/class-woo-feed-facebook.php
CHANGED
@@ -85,7 +85,7 @@ class Woo_Feed_Facebook {
|
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
-
|
89 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
90 |
$feedRule['productIds'] = $this->products->query_products();
|
91 |
}
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
+
// When update via cron job then set productIds.
|
89 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
90 |
$feedRule['productIds'] = $this->products->query_products();
|
91 |
}
|
includes/feeds/class-woo-feed-google.php
CHANGED
@@ -85,8 +85,7 @@ class Woo_Feed_Google {
|
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
-
|
89 |
-
# When update via cron job then set productIds
|
90 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
91 |
//@TODO use limit for free version here for cron calls... {google,facebook,pinterest,custom}
|
92 |
$feedRule['productIds'] = $this->products->query_products();
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
+
// When update via cron job then set productIds.
|
|
|
89 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
90 |
//@TODO use limit for free version here for cron calls... {google,facebook,pinterest,custom}
|
91 |
$feedRule['productIds'] = $this->products->query_products();
|
includes/feeds/class-woo-feed-pinterest.php
CHANGED
@@ -85,7 +85,7 @@ class Woo_Feed_Pinterest {
|
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
-
|
89 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
90 |
$feedRule['productIds'] = $this->products->query_products();
|
91 |
}
|
85 |
public function __construct( $feedRule ) {
|
86 |
$feedRule['itemWrapper'] = $this->feedWrapper;
|
87 |
$this->products = new Woo_Feed_Products_v3( $feedRule );
|
88 |
+
// When update via cron job then set productIds.
|
89 |
if ( ! isset( $feedRule['productIds'] ) ) {
|
90 |
$feedRule['productIds'] = $this->products->query_products();
|
91 |
}
|
includes/helper.php
CHANGED
@@ -372,11 +372,12 @@ if ( ! function_exists( 'woo_feed_get_default_brand' ) ) {
|
|
372 |
if ( false !== $url ) {
|
373 |
$url = wp_parse_url( $url );
|
374 |
if ( array_key_exists( 'host', $url ) ) {
|
375 |
-
$arr
|
376 |
$brand = $arr[ count( $arr ) - 2 ];
|
377 |
$brand = ucfirst( $brand );
|
378 |
}
|
379 |
}
|
|
|
380 |
return apply_filters( 'woo_feed_get_default_brand_name', $brand );
|
381 |
}
|
382 |
}
|
@@ -396,14 +397,14 @@ if ( ! function_exists( 'woo_feed_parse_feed_rules' ) ) {
|
|
396 |
* Parse Feed Config/Rules to make sure that necessary array keys are exists
|
397 |
* this will reduce the uses of isset() checking
|
398 |
*
|
399 |
-
* @
|
|
|
400 |
*
|
|
|
401 |
* @since 3.3.5 $context parameter added.
|
402 |
*
|
403 |
-
* @
|
404 |
-
* @param string $context parsing context. useful for filtering, view, save, db, create etc.
|
405 |
*
|
406 |
-
* @return array
|
407 |
*/
|
408 |
function woo_feed_parse_feed_rules( $rules = [], $context = 'view' ) {
|
409 |
|
@@ -481,11 +482,11 @@ if ( ! function_exists( 'woo_feed_parse_feed_rules' ) ) {
|
|
481 |
/**
|
482 |
* filter parsed rules for provider
|
483 |
*
|
484 |
-
* @
|
485 |
-
*
|
486 |
-
* @param array $rules
|
487 |
* @param string $context
|
488 |
*
|
|
|
|
|
489 |
*/
|
490 |
$rules = apply_filters( "woo_feed_{$rules['provider']}_parsed_rules", $rules, $context );
|
491 |
}
|
@@ -493,11 +494,11 @@ if ( ! function_exists( 'woo_feed_parse_feed_rules' ) ) {
|
|
493 |
/**
|
494 |
* filter parsed rules
|
495 |
*
|
496 |
-
* @
|
497 |
-
*
|
498 |
-
* @param array $rules
|
499 |
* @param string $context
|
500 |
*
|
|
|
|
|
501 |
*/
|
502 |
return apply_filters( 'woo_feed_parsed_rules', $rules, $context );
|
503 |
}
|
@@ -604,14 +605,15 @@ if ( ! function_exists( 'woo_feed_merchant_info_metabox' ) ) {
|
|
604 |
$provider = ( isset( $feedConfig['provider'] ) && ! empty( $feedConfig['provider'] ) ) ? $feedConfig['provider'] : '';
|
605 |
$merchantInfo = new Woo_Feed_Merchant( $provider );
|
606 |
?>
|
607 |
-
|
608 |
-
|
609 |
<?php foreach ( $merchantInfo->get_info() as $k => $v ) { ?>
|
610 |
-
|
611 |
<?php if ( 'link' == $k ) { ?>
|
612 |
-
|
613 |
-
|
614 |
-
|
|
|
615 |
/** @noinspection HtmlUnknownTarget */
|
616 |
( empty( $v ) ) ? esc_html_e( 'N/A',
|
617 |
'woo-feed' ) : printf( '<a href="%s" target="_blank">%s</a>',
|
@@ -619,9 +621,9 @@ if ( ! function_exists( 'woo_feed_merchant_info_metabox' ) ) {
|
|
619 |
esc_html__( 'Read Article', 'woo-feed' ) );
|
620 |
?></strong>
|
621 |
<?php } elseif ( 'video' == $k ) { ?>
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
/** @noinspection HtmlUnknownTarget */
|
626 |
( empty( $v ) ) ? esc_html_e( 'N/A',
|
627 |
'woo-feed' ) : printf( '<a href="%s" target="_blank">%s</a>',
|
@@ -629,8 +631,9 @@ if ( ! function_exists( 'woo_feed_merchant_info_metabox' ) ) {
|
|
629 |
esc_html__( 'Watch now', 'woo-feed' ) );
|
630 |
?></strong>
|
631 |
<?php } elseif ( 'feed_file_type' == $k ) { ?>
|
632 |
-
|
633 |
-
|
|
|
634 |
if ( empty( $v ) ) {
|
635 |
esc_html_e( 'N/A', 'woo-feed' );
|
636 |
} else {
|
@@ -643,9 +646,9 @@ if ( ! function_exists( 'woo_feed_merchant_info_metabox' ) ) {
|
|
643 |
} ?></strong>
|
644 |
<?php
|
645 |
} elseif ( 'doc' == $k ) { ?>
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
<?php
|
650 |
if ( empty( $v ) ) {
|
651 |
esc_html_e( 'N/A', 'woo-feed' );
|
@@ -658,12 +661,12 @@ if ( ! function_exists( 'woo_feed_merchant_info_metabox' ) ) {
|
|
658 |
}
|
659 |
}
|
660 |
?>
|
661 |
-
|
662 |
<?php
|
663 |
} ?>
|
664 |
-
|
665 |
<?php } ?>
|
666 |
-
|
667 |
<?php
|
668 |
}
|
669 |
}
|
@@ -722,8 +725,8 @@ if ( ! function_exists( 'render_feed_config' ) ) {
|
|
722 |
if ( ! function_exists( 'render_filter_config' ) ) {
|
723 |
/**
|
724 |
* @param string $tabId
|
725 |
-
* @param array
|
726 |
-
* @param bool
|
727 |
*/
|
728 |
function render_filter_config( $tabId, $feedRules, $idEdit ) {
|
729 |
global $provider, $wooFeedDropDown, $wooFeedProduct;
|
@@ -830,21 +833,22 @@ if ( ! function_exists( 'woo_feed_unique_feed_slug' ) ) {
|
|
830 |
* Generate Unique slug for feed.
|
831 |
* This function only check database for existing feed for generating unique slug.
|
832 |
* Use generate_unique_feed_file_name() for complete unique slug name.
|
833 |
-
*
|
834 |
-
* @param string $
|
835 |
-
* @param
|
|
|
836 |
*
|
837 |
* @return string
|
838 |
* @see wp_unique_post_slug()
|
839 |
*
|
840 |
*/
|
841 |
-
function woo_feed_unique_feed_slug( $slug, $prefix = '', $
|
842 |
global $wpdb;
|
843 |
/** @noinspection SpellCheckingInspection */
|
844 |
$disallowed = array( 'siteurl', 'home', 'blogname', 'blogdescription', 'users_can_register', 'admin_email' );
|
845 |
-
if ( $
|
846 |
$checkSql = "SELECT option_name FROM $wpdb->options WHERE option_name = %s AND option_id != %d LIMIT 1";
|
847 |
-
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $slug, $
|
848 |
} else {
|
849 |
$checkSql = "SELECT option_name FROM $wpdb->options WHERE option_name = %s LIMIT 1";
|
850 |
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $slug ) ); // phpcs:ignore
|
@@ -854,8 +858,8 @@ if ( ! function_exists( 'woo_feed_unique_feed_slug' ) ) {
|
|
854 |
$suffix = 2;
|
855 |
do {
|
856 |
$altName = _truncate_post_slug( $slug, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
|
857 |
-
if ( $
|
858 |
-
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $altName, $
|
859 |
} else {
|
860 |
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $altName ) ); // phpcs:ignore
|
861 |
}
|
@@ -867,10 +871,29 @@ if ( ! function_exists( 'woo_feed_unique_feed_slug' ) ) {
|
|
867 |
return $slug;
|
868 |
}
|
869 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
870 |
if ( ! function_exists( 'generate_unique_feed_file_name' ) ) {
|
871 |
/**
|
872 |
* Generate Unique file Name.
|
873 |
* This will insure unique slug and file name for a single feed.
|
|
|
874 |
* @param string $filename
|
875 |
* @param string $type
|
876 |
* @param string $provider
|
@@ -887,7 +910,7 @@ if ( ! function_exists( 'generate_unique_feed_file_name' ) ) {
|
|
887 |
$raw_filename = wp_unique_filename( $feedDir, $raw_filename );
|
888 |
$raw_filename = str_replace( '.' . $type, '', $raw_filename );
|
889 |
|
890 |
-
return -1 != $raw_filename ? $raw_filename : false;
|
891 |
}
|
892 |
}
|
893 |
|
@@ -933,7 +956,9 @@ if ( ! function_exists( 'woo_feed_save_feed_config_data' ) ) {
|
|
933 |
// Sanitize Fields
|
934 |
$data = woo_feed_sanitize_form_fields( $data );
|
935 |
if ( empty( $feed_option_name ) ) {
|
936 |
-
$feed_option_name = generate_unique_feed_file_name( $data['filename'],
|
|
|
|
|
937 |
} else {
|
938 |
$feed_option_name = woo_feed_extract_feed_option_name( $feed_option_name );
|
939 |
}
|
@@ -949,11 +974,12 @@ if ( ! function_exists( 'woo_feed_save_feed_config_data' ) ) {
|
|
949 |
/**
|
950 |
* Filters feed data just before it is inserted into the database.
|
951 |
*
|
|
|
|
|
|
|
|
|
952 |
* @since 3.3.3
|
953 |
*
|
954 |
-
* @param array $data An array of sanitized config
|
955 |
-
* @param array $old_data An array of old feed data
|
956 |
-
* @param string $feed_option_name Option name
|
957 |
*/
|
958 |
$data = apply_filters( 'woo_feed_insert_feed_data', $data, $old_data, 'wf_config' . $feed_option_name );
|
959 |
|
@@ -961,16 +987,16 @@ if ( ! function_exists( 'woo_feed_save_feed_config_data' ) ) {
|
|
961 |
/**
|
962 |
* Before Updating Config to db
|
963 |
*
|
964 |
-
* @param array
|
965 |
-
* @param string $feed_option_name
|
966 |
*/
|
967 |
do_action( 'woo_feed_before_update_config', $data, 'wf_config' . $feed_option_name );
|
968 |
} else {
|
969 |
/**
|
970 |
* Before inserting Config to db
|
971 |
*
|
972 |
-
* @param array
|
973 |
-
* @param string $feed_option_name
|
974 |
*/
|
975 |
do_action( 'woo_feed_before_insert_config', $data, 'wf_config' . $feed_option_name );
|
976 |
}
|
@@ -986,25 +1012,26 @@ if ( ! function_exists( 'woo_feed_save_feed_config_data' ) ) {
|
|
986 |
'feedrules' => $data,
|
987 |
'url' => woo_feed_get_file_url( $feed_option_name, $data['provider'], $data['feedType'] ),
|
988 |
'last_updated' => gmdate( 'Y-m-d H:i:s' ),
|
989 |
-
'status' => isset( $oldFeed['status'] ) && 1 == $old_feed['status'] ? 1 : 0,
|
|
|
990 |
);
|
991 |
-
$saved2
|
992 |
}
|
993 |
|
994 |
if ( $update ) {
|
995 |
/**
|
996 |
* After Updating Config to db
|
997 |
*
|
998 |
-
* @param array
|
999 |
-
* @param string $feed_option_name
|
1000 |
*/
|
1001 |
do_action( 'woo_feed_after_update_config', $data, 'wf_config' . $feed_option_name );
|
1002 |
} else {
|
1003 |
/**
|
1004 |
* After inserting Config to db
|
1005 |
*
|
1006 |
-
* @param array
|
1007 |
-
* @param string $feed_option_name
|
1008 |
*/
|
1009 |
do_action( 'woo_feed_after_insert_config', $data, 'wf_config' . $feed_option_name );
|
1010 |
}
|
@@ -1228,7 +1255,8 @@ if ( ! function_exists( 'woo_feed_delete_feed' ) ) {
|
|
1228 |
if ( ! is_numeric( $feed_id ) ) {
|
1229 |
$feed_name = woo_feed_extract_feed_option_name( $feed_id );
|
1230 |
} else {
|
1231 |
-
$feed_data = $wpdb->get_row( $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_id = %d",
|
|
|
1232 |
$option_name = $feed_data->option_name;
|
1233 |
$feed_name = woo_feed_extract_feed_option_name( $feed_data->option_name );
|
1234 |
}
|
@@ -1348,7 +1376,7 @@ if ( ! function_exists( 'woo_feed_generate_feed' ) ) {
|
|
1348 |
/**
|
1349 |
* Update Feed Information
|
1350 |
*
|
1351 |
-
* @param array
|
1352 |
* @param string $feed_option_name feed option/file name
|
1353 |
*
|
1354 |
* @return string|bool
|
@@ -1358,7 +1386,7 @@ if ( ! function_exists( 'woo_feed_generate_feed' ) ) {
|
|
1358 |
return false;
|
1359 |
}
|
1360 |
// parse rules.
|
1361 |
-
$info
|
1362 |
$feed_option_name = woo_feed_extract_feed_option_name( $feed_option_name );
|
1363 |
if ( ! empty( $info['provider'] ) ) {
|
1364 |
do_action( 'before_woo_feed_generate_feed', $info );
|
@@ -1718,9 +1746,10 @@ if ( ! function_exists( 'woo_feed_apply_hooks_before_product_loop' ) ) {
|
|
1718 |
/**
|
1719 |
* Apply Hooks Before Looping through ProductIds
|
1720 |
*
|
1721 |
-
* @param
|
|
|
1722 |
*/
|
1723 |
-
function woo_feed_apply_hooks_before_product_loop( $feedConfig ) {
|
1724 |
add_filter( 'woocommerce_get_tax_location', 'woo_feed_apply_tax_location_data', 10, 3 );
|
1725 |
}
|
1726 |
}
|
@@ -1728,31 +1757,37 @@ if ( ! function_exists( 'woo_feed_remove_hooks_before_product_loop' ) ) {
|
|
1728 |
/**
|
1729 |
* Remove Applied Hooks Looping through ProductIds
|
1730 |
*
|
1731 |
-
* @param
|
|
|
1732 |
*
|
1733 |
* @see woo_feed_apply_hooks_before_product_loop
|
1734 |
*/
|
1735 |
-
function woo_feed_remove_hooks_before_product_loop( $feedConfig ) {
|
1736 |
remove_filter( 'woocommerce_get_tax_location', 'woo_feed_apply_tax_location_data', 10 );
|
1737 |
}
|
1738 |
}
|
1739 |
if ( ! function_exists( 'woo_feed_product_type_separator' ) ) {
|
1740 |
/**
|
1741 |
* Filter Product local category (type) separator
|
|
|
1742 |
* @param string $separator
|
1743 |
-
* @param array
|
1744 |
*
|
1745 |
* @return string
|
1746 |
*/
|
1747 |
function woo_feed_product_type_separator( $separator, $config ) {
|
1748 |
-
if ( 'trovaprezzi' === $config['provider'] )
|
|
|
|
|
|
|
1749 |
return $separator;
|
1750 |
}
|
1751 |
}
|
1752 |
if ( ! function_exists( 'woo_feed_get_trovaprezzi_availability_attribute_filter' ) ) {
|
1753 |
/**
|
1754 |
* Filter Product Availability Attribute Output For Trovaprezzi.it Template
|
1755 |
-
*
|
|
|
1756 |
* @param WC_Product $product
|
1757 |
*
|
1758 |
* @return int
|
@@ -1769,6 +1804,7 @@ if ( ! function_exists( 'woo_feed_get_trovaprezzi_availability_attribute_filter'
|
|
1769 |
$output = 1;
|
1770 |
}
|
1771 |
}
|
|
|
1772 |
return $output;
|
1773 |
}
|
1774 |
}
|
@@ -1777,11 +1813,12 @@ if ( ! function_exists( 'woo_feed_get_trovaprezzi_availability_attribute_filter'
|
|
1777 |
if ( ! function_exists( 'woo_feed_filter_parsed_trovaprezzi_rules' ) ) {
|
1778 |
/**
|
1779 |
* Filter Feed parsed rules for trovaprezzi.it
|
1780 |
-
*
|
1781 |
-
* @param array
|
1782 |
* @param string $context
|
1783 |
*
|
1784 |
* @return array
|
|
|
1785 |
*/
|
1786 |
function woo_feed_filter_parsed_trovaprezzi_rules( $rules, $context ) {
|
1787 |
if ( 'create' === $context ) {
|
@@ -1790,26 +1827,29 @@ if ( ! function_exists( 'woo_feed_filter_parsed_trovaprezzi_rules' ) ) {
|
|
1790 |
$rules['decimals'] = 2;
|
1791 |
$rules['itemsWrapper'] = 'Products';
|
1792 |
$rules['itemWrapper'] = 'Offer';
|
1793 |
-
$rules['delimiter']
|
1794 |
-
$rules['enclosure']
|
1795 |
}
|
|
|
1796 |
return $rules;
|
1797 |
}
|
1798 |
}
|
1799 |
if ( ! function_exists( 'woo_feed_filter_parsed_criteo_rules' ) ) {
|
1800 |
/**
|
1801 |
* Filter Feed parsed rules for criteo
|
1802 |
-
*
|
1803 |
-
* @param array
|
1804 |
* @param string $context
|
1805 |
*
|
1806 |
* @return array
|
|
|
1807 |
*/
|
1808 |
function woo_feed_filter_parsed_criteo_rules( $rules, $context ) {
|
1809 |
if ( 'create' === $context ) {
|
1810 |
$rules['itemsWrapper'] = 'channel';
|
1811 |
$rules['itemWrapper'] = 'item';
|
1812 |
}
|
|
|
1813 |
return $rules;
|
1814 |
}
|
1815 |
}
|
372 |
if ( false !== $url ) {
|
373 |
$url = wp_parse_url( $url );
|
374 |
if ( array_key_exists( 'host', $url ) ) {
|
375 |
+
$arr = explode( '.', $url['host'] );
|
376 |
$brand = $arr[ count( $arr ) - 2 ];
|
377 |
$brand = ucfirst( $brand );
|
378 |
}
|
379 |
}
|
380 |
+
|
381 |
return apply_filters( 'woo_feed_get_default_brand_name', $brand );
|
382 |
}
|
383 |
}
|
397 |
* Parse Feed Config/Rules to make sure that necessary array keys are exists
|
398 |
* this will reduce the uses of isset() checking
|
399 |
*
|
400 |
+
* @param array $rules rules to parse.
|
401 |
+
* @param string $context parsing context. useful for filtering, view, save, db, create etc.
|
402 |
*
|
403 |
+
* @return array
|
404 |
* @since 3.3.5 $context parameter added.
|
405 |
*
|
406 |
+
* @uses wp_parse_args
|
|
|
407 |
*
|
|
|
408 |
*/
|
409 |
function woo_feed_parse_feed_rules( $rules = [], $context = 'view' ) {
|
410 |
|
482 |
/**
|
483 |
* filter parsed rules for provider
|
484 |
*
|
485 |
+
* @param array $rules
|
|
|
|
|
486 |
* @param string $context
|
487 |
*
|
488 |
+
* @since 3.3.7
|
489 |
+
*
|
490 |
*/
|
491 |
$rules = apply_filters( "woo_feed_{$rules['provider']}_parsed_rules", $rules, $context );
|
492 |
}
|
494 |
/**
|
495 |
* filter parsed rules
|
496 |
*
|
497 |
+
* @param array $rules
|
|
|
|
|
498 |
* @param string $context
|
499 |
*
|
500 |
+
* @since 3.3.7 $provider parameter removed
|
501 |
+
*
|
502 |
*/
|
503 |
return apply_filters( 'woo_feed_parsed_rules', $rules, $context );
|
504 |
}
|
605 |
$provider = ( isset( $feedConfig['provider'] ) && ! empty( $feedConfig['provider'] ) ) ? $feedConfig['provider'] : '';
|
606 |
$merchantInfo = new Woo_Feed_Merchant( $provider );
|
607 |
?>
|
608 |
+
<span class="spinner"></span>
|
609 |
+
<div class="merchant-infos">
|
610 |
<?php foreach ( $merchantInfo->get_info() as $k => $v ) { ?>
|
611 |
+
<div class="merchant-info-section <?php echo esc_attr( $k ); ?>">
|
612 |
<?php if ( 'link' == $k ) { ?>
|
613 |
+
<span class="dashicons dashicons-media-document" style="color: #82878c;"
|
614 |
+
aria-hidden="true"></span>
|
615 |
+
<span><?php esc_html_e( 'Feed Specification:', 'woo-feed' ) ?></span>
|
616 |
+
<strong class="data"><?php
|
617 |
/** @noinspection HtmlUnknownTarget */
|
618 |
( empty( $v ) ) ? esc_html_e( 'N/A',
|
619 |
'woo-feed' ) : printf( '<a href="%s" target="_blank">%s</a>',
|
621 |
esc_html__( 'Read Article', 'woo-feed' ) );
|
622 |
?></strong>
|
623 |
<?php } elseif ( 'video' == $k ) { ?>
|
624 |
+
<span class="dashicons dashicons-video-alt3" style="color: #82878c;" aria-hidden="true"></span>
|
625 |
+
<span><?php esc_html_e( 'Video Documentation:', 'woo-feed' ) ?></span>
|
626 |
+
<strong class="data"><?php
|
627 |
/** @noinspection HtmlUnknownTarget */
|
628 |
( empty( $v ) ) ? esc_html_e( 'N/A',
|
629 |
'woo-feed' ) : printf( '<a href="%s" target="_blank">%s</a>',
|
631 |
esc_html__( 'Watch now', 'woo-feed' ) );
|
632 |
?></strong>
|
633 |
<?php } elseif ( 'feed_file_type' == $k ) { ?>
|
634 |
+
<span class="dashicons dashicons-media-text" style="color: #82878c;"
|
635 |
+
aria-hidden="true"></span> <?php esc_html_e( 'Format Supported:', 'woo-feed' ) ?>
|
636 |
+
<strong class="data"><?php
|
637 |
if ( empty( $v ) ) {
|
638 |
esc_html_e( 'N/A', 'woo-feed' );
|
639 |
} else {
|
646 |
} ?></strong>
|
647 |
<?php
|
648 |
} elseif ( 'doc' == $k ) { ?>
|
649 |
+
<span class="dashicons dashicons-editor-help" style="color: #82878c;" aria-hidden="true"></span>
|
650 |
+
<span><?php esc_html_e( 'Support Docs:', 'woo-feed' ); ?></span>
|
651 |
+
<ul class="data">
|
652 |
<?php
|
653 |
if ( empty( $v ) ) {
|
654 |
esc_html_e( 'N/A', 'woo-feed' );
|
661 |
}
|
662 |
}
|
663 |
?>
|
664 |
+
</ul>
|
665 |
<?php
|
666 |
} ?>
|
667 |
+
</div>
|
668 |
<?php } ?>
|
669 |
+
</div>
|
670 |
<?php
|
671 |
}
|
672 |
}
|
725 |
if ( ! function_exists( 'render_filter_config' ) ) {
|
726 |
/**
|
727 |
* @param string $tabId
|
728 |
+
* @param array $feedRules
|
729 |
+
* @param bool $idEdit
|
730 |
*/
|
731 |
function render_filter_config( $tabId, $feedRules, $idEdit ) {
|
732 |
global $provider, $wooFeedDropDown, $wooFeedProduct;
|
833 |
* Generate Unique slug for feed.
|
834 |
* This function only check database for existing feed for generating unique slug.
|
835 |
* Use generate_unique_feed_file_name() for complete unique slug name.
|
836 |
+
*
|
837 |
+
* @param string $slug slug for checking uniqueness.
|
838 |
+
* @param string $prefix prefix to check with. Optional.
|
839 |
+
* @param int $option_id option id. Optional option id to exclude specific option.
|
840 |
*
|
841 |
* @return string
|
842 |
* @see wp_unique_post_slug()
|
843 |
*
|
844 |
*/
|
845 |
+
function woo_feed_unique_feed_slug( $slug, $prefix = '', $option_id = null ) {
|
846 |
global $wpdb;
|
847 |
/** @noinspection SpellCheckingInspection */
|
848 |
$disallowed = array( 'siteurl', 'home', 'blogname', 'blogdescription', 'users_can_register', 'admin_email' );
|
849 |
+
if ( $option_id && $option_id > 0 ) {
|
850 |
$checkSql = "SELECT option_name FROM $wpdb->options WHERE option_name = %s AND option_id != %d LIMIT 1";
|
851 |
+
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $slug, $option_id ) ); // phpcs:ignore
|
852 |
} else {
|
853 |
$checkSql = "SELECT option_name FROM $wpdb->options WHERE option_name = %s LIMIT 1";
|
854 |
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $slug ) ); // phpcs:ignore
|
858 |
$suffix = 2;
|
859 |
do {
|
860 |
$altName = _truncate_post_slug( $slug, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";
|
861 |
+
if ( $option_id && $option_id > 0 ) {
|
862 |
+
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $altName, $option_id ) ); // phpcs:ignore
|
863 |
} else {
|
864 |
$nameCheck = $wpdb->get_var( $wpdb->prepare( $checkSql, $prefix . $altName ) ); // phpcs:ignore
|
865 |
}
|
871 |
return $slug;
|
872 |
}
|
873 |
}
|
874 |
+
if ( ! function_exists( 'woo_feed_unique_option_name' ) ) {
|
875 |
+
/**
|
876 |
+
* Alias of woo_feed_unique_feed_slug
|
877 |
+
*
|
878 |
+
* @param string $slug
|
879 |
+
* @param string $prefix
|
880 |
+
* @param null $option_id
|
881 |
+
*
|
882 |
+
* @return string
|
883 |
+
* @see woo_feed_unique_feed_slug
|
884 |
+
*
|
885 |
+
* @since 3.3.8
|
886 |
+
*
|
887 |
+
*/
|
888 |
+
function woo_feed_unique_option_name( $slug, $prefix = '', $option_id = null ) {
|
889 |
+
return woo_feed_unique_feed_slug( $slug, $prefix, $option_id );
|
890 |
+
}
|
891 |
+
}
|
892 |
if ( ! function_exists( 'generate_unique_feed_file_name' ) ) {
|
893 |
/**
|
894 |
* Generate Unique file Name.
|
895 |
* This will insure unique slug and file name for a single feed.
|
896 |
+
*
|
897 |
* @param string $filename
|
898 |
* @param string $type
|
899 |
* @param string $provider
|
910 |
$raw_filename = wp_unique_filename( $feedDir, $raw_filename );
|
911 |
$raw_filename = str_replace( '.' . $type, '', $raw_filename );
|
912 |
|
913 |
+
return - 1 != $raw_filename ? $raw_filename : false;
|
914 |
}
|
915 |
}
|
916 |
|
956 |
// Sanitize Fields
|
957 |
$data = woo_feed_sanitize_form_fields( $data );
|
958 |
if ( empty( $feed_option_name ) ) {
|
959 |
+
$feed_option_name = generate_unique_feed_file_name( $data['filename'],
|
960 |
+
$data['feedType'],
|
961 |
+
$data['provider'] );
|
962 |
} else {
|
963 |
$feed_option_name = woo_feed_extract_feed_option_name( $feed_option_name );
|
964 |
}
|
974 |
/**
|
975 |
* Filters feed data just before it is inserted into the database.
|
976 |
*
|
977 |
+
* @param array $data An array of sanitized config
|
978 |
+
* @param array $old_data An array of old feed data
|
979 |
+
* @param string $feed_option_name Option name
|
980 |
+
*
|
981 |
* @since 3.3.3
|
982 |
*
|
|
|
|
|
|
|
983 |
*/
|
984 |
$data = apply_filters( 'woo_feed_insert_feed_data', $data, $old_data, 'wf_config' . $feed_option_name );
|
985 |
|
987 |
/**
|
988 |
* Before Updating Config to db
|
989 |
*
|
990 |
+
* @param array $data An array of sanitized config
|
991 |
+
* @param string $feed_option_name Option name
|
992 |
*/
|
993 |
do_action( 'woo_feed_before_update_config', $data, 'wf_config' . $feed_option_name );
|
994 |
} else {
|
995 |
/**
|
996 |
* Before inserting Config to db
|
997 |
*
|
998 |
+
* @param array $data An array of sanitized config
|
999 |
+
* @param string $feed_option_name Option name
|
1000 |
*/
|
1001 |
do_action( 'woo_feed_before_insert_config', $data, 'wf_config' . $feed_option_name );
|
1002 |
}
|
1012 |
'feedrules' => $data,
|
1013 |
'url' => woo_feed_get_file_url( $feed_option_name, $data['provider'], $data['feedType'] ),
|
1014 |
'last_updated' => gmdate( 'Y-m-d H:i:s' ),
|
1015 |
+
'status' => isset( $oldFeed['status'] ) && 1 == $old_feed['status'] ? 1 : 0,
|
1016 |
+
// set old status or disable auto update.
|
1017 |
);
|
1018 |
+
$saved2 = update_option( 'wf_feed_' . $feed_option_name, maybe_serialize( $feed_data ), false );
|
1019 |
}
|
1020 |
|
1021 |
if ( $update ) {
|
1022 |
/**
|
1023 |
* After Updating Config to db
|
1024 |
*
|
1025 |
+
* @param array $data An array of sanitized config
|
1026 |
+
* @param string $feed_option_name Option name
|
1027 |
*/
|
1028 |
do_action( 'woo_feed_after_update_config', $data, 'wf_config' . $feed_option_name );
|
1029 |
} else {
|
1030 |
/**
|
1031 |
* After inserting Config to db
|
1032 |
*
|
1033 |
+
* @param array $data An array of sanitized config
|
1034 |
+
* @param string $feed_option_name Option name
|
1035 |
*/
|
1036 |
do_action( 'woo_feed_after_insert_config', $data, 'wf_config' . $feed_option_name );
|
1037 |
}
|
1255 |
if ( ! is_numeric( $feed_id ) ) {
|
1256 |
$feed_name = woo_feed_extract_feed_option_name( $feed_id );
|
1257 |
} else {
|
1258 |
+
$feed_data = $wpdb->get_row( $wpdb->prepare( "SELECT option_name FROM $wpdb->options WHERE option_id = %d",
|
1259 |
+
$feed_id ) ); // phpcs:ignore
|
1260 |
$option_name = $feed_data->option_name;
|
1261 |
$feed_name = woo_feed_extract_feed_option_name( $feed_data->option_name );
|
1262 |
}
|
1376 |
/**
|
1377 |
* Update Feed Information
|
1378 |
*
|
1379 |
+
* @param array $info feed config array
|
1380 |
* @param string $feed_option_name feed option/file name
|
1381 |
*
|
1382 |
* @return string|bool
|
1386 |
return false;
|
1387 |
}
|
1388 |
// parse rules.
|
1389 |
+
$info = woo_feed_parse_feed_rules( isset( $info['feedrules'] ) ? $info['feedrules'] : $info );
|
1390 |
$feed_option_name = woo_feed_extract_feed_option_name( $feed_option_name );
|
1391 |
if ( ! empty( $info['provider'] ) ) {
|
1392 |
do_action( 'before_woo_feed_generate_feed', $info );
|
1746 |
/**
|
1747 |
* Apply Hooks Before Looping through ProductIds
|
1748 |
*
|
1749 |
+
* @param int[] $productIds product id array.
|
1750 |
+
* @param array $feedConfig feed config array.
|
1751 |
*/
|
1752 |
+
function woo_feed_apply_hooks_before_product_loop( $productIds, $feedConfig ) {
|
1753 |
add_filter( 'woocommerce_get_tax_location', 'woo_feed_apply_tax_location_data', 10, 3 );
|
1754 |
}
|
1755 |
}
|
1757 |
/**
|
1758 |
* Remove Applied Hooks Looping through ProductIds
|
1759 |
*
|
1760 |
+
* @param int[] $productIds product id array.
|
1761 |
+
* @param array $feedConfig feed config array.
|
1762 |
*
|
1763 |
* @see woo_feed_apply_hooks_before_product_loop
|
1764 |
*/
|
1765 |
+
function woo_feed_remove_hooks_before_product_loop( $productIds, $feedConfig ) {
|
1766 |
remove_filter( 'woocommerce_get_tax_location', 'woo_feed_apply_tax_location_data', 10 );
|
1767 |
}
|
1768 |
}
|
1769 |
if ( ! function_exists( 'woo_feed_product_type_separator' ) ) {
|
1770 |
/**
|
1771 |
* Filter Product local category (type) separator
|
1772 |
+
*
|
1773 |
* @param string $separator
|
1774 |
+
* @param array $config
|
1775 |
*
|
1776 |
* @return string
|
1777 |
*/
|
1778 |
function woo_feed_product_type_separator( $separator, $config ) {
|
1779 |
+
if ( 'trovaprezzi' === $config['provider'] ) {
|
1780 |
+
$separator = ',';
|
1781 |
+
}
|
1782 |
+
|
1783 |
return $separator;
|
1784 |
}
|
1785 |
}
|
1786 |
if ( ! function_exists( 'woo_feed_get_trovaprezzi_availability_attribute_filter' ) ) {
|
1787 |
/**
|
1788 |
* Filter Product Availability Attribute Output For Trovaprezzi.it Template
|
1789 |
+
*
|
1790 |
+
* @param string $output
|
1791 |
* @param WC_Product $product
|
1792 |
*
|
1793 |
* @return int
|
1804 |
$output = 1;
|
1805 |
}
|
1806 |
}
|
1807 |
+
|
1808 |
return $output;
|
1809 |
}
|
1810 |
}
|
1813 |
if ( ! function_exists( 'woo_feed_filter_parsed_trovaprezzi_rules' ) ) {
|
1814 |
/**
|
1815 |
* Filter Feed parsed rules for trovaprezzi.it
|
1816 |
+
*
|
1817 |
+
* @param array $rules
|
1818 |
* @param string $context
|
1819 |
*
|
1820 |
* @return array
|
1821 |
+
* @since 3.3.7
|
1822 |
*/
|
1823 |
function woo_feed_filter_parsed_trovaprezzi_rules( $rules, $context ) {
|
1824 |
if ( 'create' === $context ) {
|
1827 |
$rules['decimals'] = 2;
|
1828 |
$rules['itemsWrapper'] = 'Products';
|
1829 |
$rules['itemWrapper'] = 'Offer';
|
1830 |
+
$rules['delimiter'] = '|';
|
1831 |
+
$rules['enclosure'] = ' ';
|
1832 |
}
|
1833 |
+
|
1834 |
return $rules;
|
1835 |
}
|
1836 |
}
|
1837 |
if ( ! function_exists( 'woo_feed_filter_parsed_criteo_rules' ) ) {
|
1838 |
/**
|
1839 |
* Filter Feed parsed rules for criteo
|
1840 |
+
*
|
1841 |
+
* @param array $rules
|
1842 |
* @param string $context
|
1843 |
*
|
1844 |
* @return array
|
1845 |
+
* @since 3.3.7
|
1846 |
*/
|
1847 |
function woo_feed_filter_parsed_criteo_rules( $rules, $context ) {
|
1848 |
if ( 'create' === $context ) {
|
1849 |
$rules['itemsWrapper'] = 'channel';
|
1850 |
$rules['itemWrapper'] = 'item';
|
1851 |
}
|
1852 |
+
|
1853 |
return $rules;
|
1854 |
}
|
1855 |
}
|
includes/hooks.php
CHANGED
@@ -19,13 +19,13 @@ add_filter( 'woo_feed_trovaprezzi_parsed_rules', 'woo_feed_filter_parsed_trovapr
|
|
19 |
add_filter( 'woo_feed_criteo_parsed_rules', 'woo_feed_filter_parsed_criteo_rules', 10, 2 );
|
20 |
|
21 |
// Product Loop Start.
|
22 |
-
add_action( 'woo_feed_before_product_loop', 'woo_feed_apply_hooks_before_product_loop', 10,
|
23 |
|
24 |
// In The Loop
|
25 |
add_filter( 'woo_feed_product_type_separator', 'woo_feed_product_type_separator', 10, 2 );
|
26 |
add_filter( 'woo_feed_get_trovaprezzi_availability_attribute', 'woo_feed_get_trovaprezzi_availability_attribute_filter', 10, 2 );
|
27 |
|
28 |
// Product Loop End.
|
29 |
-
add_action( 'woo_feed_after_product_loop', 'woo_feed_remove_hooks_before_product_loop', 10,
|
30 |
|
31 |
// End of file hooks.php.
|
19 |
add_filter( 'woo_feed_criteo_parsed_rules', 'woo_feed_filter_parsed_criteo_rules', 10, 2 );
|
20 |
|
21 |
// Product Loop Start.
|
22 |
+
add_action( 'woo_feed_before_product_loop', 'woo_feed_apply_hooks_before_product_loop', 10, 2 );
|
23 |
|
24 |
// In The Loop
|
25 |
add_filter( 'woo_feed_product_type_separator', 'woo_feed_product_type_separator', 10, 2 );
|
26 |
add_filter( 'woo_feed_get_trovaprezzi_availability_attribute', 'woo_feed_get_trovaprezzi_availability_attribute_filter', 10, 2 );
|
27 |
|
28 |
// Product Loop End.
|
29 |
+
add_action( 'woo_feed_after_product_loop', 'woo_feed_remove_hooks_before_product_loop', 10, 2 );
|
30 |
|
31 |
// End of file hooks.php.
|
libs/WebAppick/AppServices/License.php
CHANGED
@@ -229,7 +229,48 @@ class License {
|
|
229 |
|
230 |
/**
|
231 |
* Get Plugin data
|
232 |
-
* @return array
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
233 |
*/
|
234 |
public function get_information() {
|
235 |
return $this->send_request( 'information', $this->license );
|
229 |
|
230 |
/**
|
231 |
* Get Plugin data
|
232 |
+
* @return array {
|
233 |
+
* Plugin Information
|
234 |
+
* @type bool $success API response status
|
235 |
+
* @type string $api_call_execution_time API Man (Rest Response) Execution Time
|
236 |
+
* @type array $data {
|
237 |
+
* Plugin Data ( API Man.)
|
238 |
+
* @type array $package {
|
239 |
+
* @type int $product_id API Man Product ID
|
240 |
+
* }
|
241 |
+
* @type array $info {
|
242 |
+
* @type string $id Plugin Id
|
243 |
+
* @type string $name Plugin Name
|
244 |
+
* @type string $author Author Name
|
245 |
+
* @type string $author_profile Author Profile URL
|
246 |
+
* @type string $slug Plugin Slug
|
247 |
+
* @type string $plugin Plugin main file path
|
248 |
+
* @type string $new_version New Version String
|
249 |
+
* @type string $url Plugin URL
|
250 |
+
* @type string $package Plugin update download URL
|
251 |
+
* @type string $icons Plugin Icons
|
252 |
+
* @type string $banners Plugin Banners
|
253 |
+
* @type string $banner_rtl RTL Version of Plugin Banners
|
254 |
+
* @type string $upgrade_notice Upgrade Notice
|
255 |
+
* @type string $requires Minimum WordPress Version
|
256 |
+
* @type string $requires_php Minimum PHP Version
|
257 |
+
* @type string $tested Tested upto WordPress Version
|
258 |
+
* @type array $compatibility Compatibility information (API Man sends string)
|
259 |
+
* @type array $contributors Plugin Contributors List (if available)
|
260 |
+
* @type array $ratings Plugin Rating (if available)
|
261 |
+
* @type float $num_ratings Plugin Rating (if available)
|
262 |
+
* @type string $last_updated Last updated Date
|
263 |
+
* @type string $homepage Plugin Home Page URL
|
264 |
+
* @type array $sections {
|
265 |
+
* Plugin Description Sections
|
266 |
+
* @type string $description Plugin Description
|
267 |
+
* @type string $changelog Change LOG
|
268 |
+
* }
|
269 |
+
* @type mixed $author_block_count
|
270 |
+
* @type mixed $author_block_rating
|
271 |
+
* }
|
272 |
+
* }
|
273 |
+
* }
|
274 |
*/
|
275 |
public function get_information() {
|
276 |
return $this->send_request( 'information', $this->license );
|
libs/WebAppick/AppServices/Updater.php
CHANGED
@@ -115,7 +115,8 @@ class Updater {
|
|
115 |
return $transient_data;
|
116 |
}
|
117 |
$project_info = $this->get_cached_version_info();
|
118 |
-
|
|
|
119 |
$project_info = $this->get_information();
|
120 |
$this->set_cached_version_info( $project_info );
|
121 |
}
|
@@ -167,36 +168,6 @@ class Updater {
|
|
167 |
*/
|
168 |
private function get_information() {
|
169 |
$response = $this->license->check_update();
|
170 |
-
// phpcs:disable
|
171 |
-
/*
|
172 |
-
// Possible fields for plugin information.
|
173 |
-
$fields = [
|
174 |
-
'id' => '',
|
175 |
-
'name' => '',
|
176 |
-
'author' => '',
|
177 |
-
'author_profile' => '',
|
178 |
-
'slug' => '',
|
179 |
-
'plugin' => '',
|
180 |
-
'new_version' => '',
|
181 |
-
'url' => '',
|
182 |
-
'package' => '',
|
183 |
-
'icons' => '',
|
184 |
-
'banners' => '',
|
185 |
-
'banner_rtl' => '',
|
186 |
-
'upgrade_notice' => '',
|
187 |
-
'requires' => '',
|
188 |
-
'requires_php' => '',
|
189 |
-
'tested' => '',
|
190 |
-
'compatibility' => '',
|
191 |
-
'contributors' => '',
|
192 |
-
'ratings' => '',
|
193 |
-
'num_ratings' => '',
|
194 |
-
'last_updated' => '',
|
195 |
-
'homepage' => '',
|
196 |
-
'author_block_count' => '',
|
197 |
-
'author_block_rating' => '',
|
198 |
-
];*/
|
199 |
-
// phpcs:enable
|
200 |
if ( isset( $response['success'] ) && $response['success'] ) {
|
201 |
$data = $response['data']['package'];
|
202 |
$response = $this->license->get_information();
|
@@ -270,25 +241,25 @@ class Updater {
|
|
270 |
/**
|
271 |
* Typecast child element to array or object
|
272 |
* Utility method
|
273 |
-
* @param array|object $
|
274 |
* @param array $children children array.
|
275 |
-
* @param string $castTo optional array or object.
|
276 |
*
|
277 |
-
* @return
|
278 |
*/
|
279 |
-
private function __children_to_array( $
|
280 |
-
if ( ! empty( $children ) && is_array( $children ) && ( is_object( $
|
281 |
-
$isObject = is_object( $
|
282 |
-
$castTo = strtolower( $castTo ) == 'array' ? 'A' : 'O';
|
283 |
foreach ( $children as $child ) {
|
284 |
-
if ( $isObject
|
285 |
-
|
286 |
-
|
287 |
-
|
|
|
|
|
288 |
}
|
289 |
}
|
290 |
}
|
291 |
-
return $
|
292 |
}
|
293 |
}
|
294 |
// End of file Updater.php.
|
115 |
return $transient_data;
|
116 |
}
|
117 |
$project_info = $this->get_cached_version_info();
|
118 |
+
|
119 |
+
if ( false === $project_info || ! is_object( $project_info ) ) {
|
120 |
$project_info = $this->get_information();
|
121 |
$this->set_cached_version_info( $project_info );
|
122 |
}
|
168 |
*/
|
169 |
private function get_information() {
|
170 |
$response = $this->license->check_update();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
if ( isset( $response['success'] ) && $response['success'] ) {
|
172 |
$data = $response['data']['package'];
|
173 |
$response = $this->license->get_information();
|
241 |
/**
|
242 |
* Typecast child element to array or object
|
243 |
* Utility method
|
244 |
+
* @param array|object $input the array or object to convert/typecast.
|
245 |
* @param array $children children array.
|
|
|
246 |
*
|
247 |
+
* @return array|object
|
248 |
*/
|
249 |
+
private function __children_to_array( $input, $children = [] ) {
|
250 |
+
if ( ! empty( $children ) && is_array( $children ) && ( is_object( $input ) || is_array( $input ) ) ) {
|
251 |
+
$isObject = is_object( $input );
|
|
|
252 |
foreach ( $children as $child ) {
|
253 |
+
if ( call_user_func_array( $isObject ? 'property_exists' : 'array_key_exists', [ $input, $child ] ) ) {
|
254 |
+
if ( $isObject ) {
|
255 |
+
$input->{$child} = (array) $input->{$child};
|
256 |
+
} else {
|
257 |
+
$input[ $child ] = (array) $input->{$child};
|
258 |
+
}
|
259 |
}
|
260 |
}
|
261 |
}
|
262 |
+
return $input;
|
263 |
}
|
264 |
}
|
265 |
// End of file Updater.php.
|
uninstall.php
CHANGED
@@ -1,16 +1,16 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Fired when the plugin is uninstalled.
|
4 |
-
* @since 1.0.0
|
5 |
-
*
|
6 |
-
* @package WooFeed
|
7 |
-
*/
|
8 |
-
|
9 |
-
// If uninstall not called from WordPress, then exit.
|
10 |
-
if ( ! defined('WP_UNINSTALL_PLUGIN') ) {
|
11 |
-
|
12 |
-
}
|
13 |
-
|
14 |
-
wp_clear_scheduled_hook( 'woo_feed_cleanup_logs' );
|
15 |
-
wp_clear_scheduled_hook( 'woo_feed_update' );
|
16 |
// End of file uninstall.php
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Fired when the plugin is uninstalled.
|
4 |
+
* @since 1.0.0
|
5 |
+
*
|
6 |
+
* @package WooFeed
|
7 |
+
*/
|
8 |
+
|
9 |
+
// If uninstall not called from WordPress, then exit.
|
10 |
+
if ( ! defined('WP_UNINSTALL_PLUGIN') ) {
|
11 |
+
exit;
|
12 |
+
}
|
13 |
+
|
14 |
+
wp_clear_scheduled_hook( 'woo_feed_cleanup_logs' );
|
15 |
+
wp_clear_scheduled_hook( 'woo_feed_update' );
|
16 |
// End of file uninstall.php
|
woo-feed.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
* Description: This plugin generate WooCommerce product feed for Shopping Engines
|
13 |
* like Google Shopping, Facebook Product Feed, eBay, Amazon, Idealo and many more.
|
14 |
*
|
15 |
-
* Version: 3.3.
|
16 |
* Author: WebAppick
|
17 |
* Author URI: https://webappick.com/
|
18 |
* License: GPL v2
|
@@ -27,7 +27,7 @@
|
|
27 |
*
|
28 |
* WC Requirement & Test
|
29 |
* WC requires at least: 3.2
|
30 |
-
* WC tested up to:
|
31 |
*/
|
32 |
|
33 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -40,7 +40,7 @@ if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
|
40 |
* @var string
|
41 |
* @since 3.1.6
|
42 |
*/
|
43 |
-
define( 'WOO_FEED_FREE_VERSION', '3.3.
|
44 |
}
|
45 |
|
46 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
12 |
* Description: This plugin generate WooCommerce product feed for Shopping Engines
|
13 |
* like Google Shopping, Facebook Product Feed, eBay, Amazon, Idealo and many more.
|
14 |
*
|
15 |
+
* Version: 3.3.8
|
16 |
* Author: WebAppick
|
17 |
* Author URI: https://webappick.com/
|
18 |
* License: GPL v2
|
27 |
*
|
28 |
* WC Requirement & Test
|
29 |
* WC requires at least: 3.2
|
30 |
+
* WC tested up to: 4.0.0
|
31 |
*/
|
32 |
|
33 |
if ( ! defined( 'ABSPATH' ) ) {
|
40 |
* @var string
|
41 |
* @since 3.1.6
|
42 |
*/
|
43 |
+
define( 'WOO_FEED_FREE_VERSION', '3.3.8' );
|
44 |
}
|
45 |
|
46 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|