Version Description
(2021-03-25) = * Added: Compatibility for Dynamic Pricing With Discount Rules by Acowebs. * Fixed: Pattern label updated.
Download this release
Release Info
Developer | wahid0003 |
Plugin | CTX Feed – WooCommerce Product Feed Manager Plugin |
Version | 4.3.54 |
Comparing to | |
See all releases |
Code changes from version 4.3.53 to 4.3.54
- README.txt +5 -1
- admin/css/woo-feed-admin.css +3 -3
- admin/css/woo-feed-admin.min.css +1 -1
- admin/css/woo-feed-admin.scss +3 -4
- admin/images/woo-feed-logo.svg +69 -0
- admin/partials/woo-feed-edit-config.php +2 -2
- includes/classes/class-woo-feed-products-v3.php +6 -64
- includes/helper.php +76 -0
- includes/hooks.php +4 -0
- woo-feed.php +245 -218
README.txt
CHANGED
@@ -5,7 +5,7 @@ Tags: Product Feed, WooCommerce, Google Shopping, Google Merchant, Facebook Cata
|
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.7
|
7 |
Requires PHP: 5.6
|
8 |
-
Stable tag: 4.3.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -498,6 +498,10 @@ Using pro version:
|
|
498 |
|
499 |
== Changelog ==
|
500 |
|
|
|
|
|
|
|
|
|
501 |
= 4.3.53 (2021-03-24) =
|
502 |
* Added: Custom fields feature, custom fields should be found in the dropdown list.
|
503 |
* Added: Taxonomies feature, taxonomies should be found in the dropdown list.
|
5 |
Requires at least: 3.6
|
6 |
Tested Up To: 5.7
|
7 |
Requires PHP: 5.6
|
8 |
+
Stable tag: 4.3.54
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
498 |
|
499 |
== Changelog ==
|
500 |
|
501 |
+
= 4.3.54 (2021-03-25) =
|
502 |
+
* Added: Compatibility for Dynamic Pricing With Discount Rules by Acowebs.
|
503 |
+
* Fixed: Pattern label updated.
|
504 |
+
|
505 |
= 4.3.53 (2021-03-24) =
|
506 |
* Added: Custom fields feature, custom fields should be found in the dropdown list.
|
507 |
* Added: Taxonomies feature, taxonomies should be found in the dropdown list.
|
admin/css/woo-feed-admin.css
CHANGED
@@ -1444,11 +1444,11 @@ input[type="submit"][data-id="wf_action_submit"] {
|
|
1444 |
|
1445 |
/* Woo Feed Notice Style */
|
1446 |
.woo-feed-notice .woo-feed-review-notice-logo {
|
1447 |
-
width:
|
1448 |
-
height:
|
1449 |
float: left;
|
1450 |
margin-right: 5px;
|
1451 |
-
background: url("../images/woo-feed-
|
1452 |
|
1453 |
/* Status Page Style */
|
1454 |
.woo-feed-status-table-wrapper .woo-feed-status-table {
|
1444 |
|
1445 |
/* Woo Feed Notice Style */
|
1446 |
.woo-feed-notice .woo-feed-review-notice-logo {
|
1447 |
+
width: 90px;
|
1448 |
+
height: 90px;
|
1449 |
float: left;
|
1450 |
margin-right: 5px;
|
1451 |
+
background: url("../images/woo-feed-logo.svg") no-repeat; }
|
1452 |
|
1453 |
/* Status Page Style */
|
1454 |
.woo-feed-status-table-wrapper .woo-feed-status-table {
|
admin/css/woo-feed-admin.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.wpf_spin{-webkit-animation:spin 1s infinite linear;animation:spin 1s infinite linear}.wpf_spin.reverse_spin{animation-direction:reverse}.wpf_regenerate.disabled{color:#737373;box-shadow:none;cursor:not-allowed}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.wfbtn{background:#3498db;background-image:linear-gradient(125deg,#3cb0fd 0,#152f8c 140%);border-radius:17px;box-shadow:inset 0 1px 3px #666;font-family:Arial,sans-serif;color:#fff;font-size:20px;padding:10px 20px 10px 20px;border:solid #2b698f 0;text-decoration:none}.wfbtn:hover{background:#3cb0fd;background-image:linear-gradient(to bottom,#3cb0fd,#3498db);text-decoration:none}.woo_feed_manage_list_table .wf_update_interval_btn{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);border:none}.woo_feed_manage_list_table .wf_update_interval_btn:hover{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%)}.woo-feed-promotion{position:relative;display:none}.woo-feed-promotion .woo-feed-campaign-close-button{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:15px;width:24px;height:24px;border-radius:12px;background:#595d6b;line-height:24px;color:#fff;cursor:pointer;transition:.3s ease}.woo-feed-promotion .woo-feed-campaign-close-button:hover{background:#fff;color:#d61e48}.wftooltip{display:none;position:absolute;border:1px solid #333;background-color:#161616;border-radius:5px;padding:10px;color:#fff;font-size:12px}.feed-actions .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 input,.widefat td select{max-width:100%}#wf_newRow{margin-left:0}.mtable tbody tr{height:25px;border:1px solid #ccc;text-align:left;-ms-flex-align:baseline;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}.mtable2 tbody tr{height:25px;border:1px solid #ccc;text-align:left;-ms-flex-align:baseline;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}.wp-admin select.wf_mattributes{width:150px;left:0;height:25px}div#wf-tab-content1 select:not([name^=output_type]){width:100%}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}.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}.wp-list-table .option_name .wf_feed_option_name_link{font-weight:700;color:#30336b}.wp-list-table #option_name a{color:#32373c}.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:55px;height:28px;box-sizing:border-box;float:left;border-radius:100px;position:relative;cursor:pointer;transition:.3s ease;background:linear-gradient(125deg,#e2e2e2 0,#ccc 140%)}input[class=woo_feed_status_input]:checked+label{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%)}input[class=woo_feed_status_input]:checked+label:before{left:29px}.wf_status_wrap label:before{transition:.3s ease;content:'';width:20px;height:20px;position:absolute;background:#fff;left:6px;top:4px;box-sizing:border-box;color:#000;border-radius:100px;box-shadow:0 1.5px 2px 0 #000}.view span.dashicons.dashicons-external{color:#22a6b3}.view span.dashicons.dashicons-sos{color:#22a6b3}.view span.dashicons.dashicons-download{color:#ee5253}.view span.dashicons.dashicons-media-code{color:#576574}.column-url,.widefat td.column-url,.widefat th.column-url{color:#1e8f9a;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:50px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.feed-progress-bar-fill{height:20px;display:block;background:linear-gradient(to right top,#10ac84,#13b389,#15ba8f,#18c194,#1ac89a,#13cba1,#0acfa9,#00d2b0,#00d2ba,#00d2c3,#00d2cb,#00d2d3);width:0;border-radius:50px;transition:width .8s ease}.feed-progress-status{float:left;font-weight:700;color:#00008b}.feed-progress-percentage{text-align:right;font-weight:bolder;color:#1dd1a1;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{display:inline-block;text-decoration:none}.tooltipped:hover:after{display:inline-block;text-decoration:none}.tooltipped:active:before{display:inline-block;text-decoration:none}.tooltipped:active:after{display:inline-block;text-decoration:none}.tooltipped:focus:before{display:inline-block;text-decoration:none}.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after{display:table-cell}.tooltipped-multiline:active:after{display:table-cell}.tooltipped-multiline:focus:after{display:table-cell}.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-s:after{top:100%;right:50%;margin-top:5px;-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-s:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-se:after{top:100%;margin-top:5px;right:auto;left:50%;margin-left:-15px}.tooltipped-se:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;margin-right:-15px}.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-n:after{right:50%;bottom:100%;margin-bottom:5px;-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-n:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-ne:after{bottom:100%;margin-bottom:5px;right:auto;left:50%;margin-left:-15px}.tooltipped-ne:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px;margin-right:-15px}.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-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%);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.tooltipped-s:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after{right:100%}.tooltipped-multiline.tooltipped-e:after{right:100%}.tooltipped-sticky:before{display:inline-block}.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{border-bottom-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-se:before{border-bottom-color:rgba(255,255,255,.8)}.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{border-top-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-ne:before{border-top-color:rgba(255,255,255,.8)}.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)}@media screen and (min-width:0\0){.tooltipped-multiline:after{width:250px}}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,table.wf-rate-table{vertical-align:middle;text-align:center;max-width:100%;font-weight:500}table.wf-info-table th,table.wf-rate-table th{text-align:center}table.wf-info-table th .woo-feed-top-header,table.wf-rate-table th .woo-feed-top-header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}table.wf-info-table th .woo-feed-top-header .get-woo-feed-pro,table.wf-rate-table th .woo-feed-top-header .get-woo-feed-pro{margin-left:20px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons{float:right;display:-ms-flexbox;display:flex;border-radius:7px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a{padding:8px 20px;background:#576574;color:#fff;box-sizing:border-box;display:inline-block;transition:.3s ease}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-doc-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-doc-link{background:#576574;border-top-left-radius:5px;border-bottom-left-radius:5px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-video-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-video-link{background:#ee5253}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-support-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-support-link{background:#22a6b3;border-top-right-radius:5px;border-bottom-right-radius:5px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a span.dashicons,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a span.dashicons{font-size:18px;line-height:1.2}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a:hover,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a:hover{background:#30336b;box-shadow:0 0 33px 0 rgba(0,0,0,.12)}table.wf-info-table strong,table.wf-rate-table 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}#adminmenu #toplevel_page_webappick-manage-feeds:hover div.wp-menu-image::before{opacity:1}#adminmenu #toplevel_page_webappick-manage-feeds.wp-has-current-submenu div.wp-menu-image::before{opacity:1}.wapk-admin,.wapk-admin *{box-sizing:border-box}.wapk-admin{position:relative;display:block;-webkit-hyphens:manual;-ms-hyphens:manual;-moz-hyphens:manual;hyphens:manual;color:#1b2730;margin:0 0 0 -10px}@media screen and (min-width:783px){.wapk-admin{margin:0 0 0 -20px}}.text-center{text-align:center}.wapk-admin h1,.wapk-admin h2,.wapk-admin h3,.wapk-admin h4,.wapk-admin h5,.wapk-admin h6,.wapk-admin p{color:#1b2730}.wapk-admin sup{vertical-align:baseline;position:relative;top:-6px}.wapk-admin sub{vertical-align:baseline;position:relative;top:4px}.wapk-admin .wapk-section{margin:10px 20px 0 22px;position:relative;display:block}.wapk-admin .wapk-section [class$=icon32]+h2{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin .wapk-section h1{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin .wapk-section>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin>.notice{margin:10px 20px 0 22px;position:relative;display:block}.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}.clear:after{content:"";display:table;clear:both}.wapk-feed-docs .postbox{width:355px;margin-right:20px;display:inline-block;vertical-align:top}.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{margin-bottom:0}.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 li{width:100%;display:block;float:left}.wapk-feed-docs .postbox li span{display:inline-block;float:left;margin-right:4px}.wapk-feed-docs .postbox li a{display:inline-block;float:left;width:calc(100% - 24px)}.wapk-feed-docs .postbox.closed .toggle-indicator:before{content:"\F140"}.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}.merchant-info-section.woo-feed-open-file{text-align:center}.merchant-info-section.woo-feed-open-file a{line-height:1.5;text-decoration:none}.generateFeed .wf-tab-content table:first-child{border:none;box-shadow:none}.generateFeed table th{font-weight:700}@media only screen and (max-width:850px){.wapk-feed-docs .postbox{display:block;width:auto;float:none;margin-right:auto}}.wp-submenu li span.woo-feed-docs{font-weight:700;color:#f18500}.wp-submenu li:hover span.woo-feed-docs{color:#ce7304}.wp-submenu li.current span.woo-feed-docs{color:#ce7304}.wapk-admin .wapk-feed-docs .postbox .hndle{cursor:default}.wapk-cta{position:relative;display:-ms-flexbox;display:flex;width:100%;padding:100px 15px;background:linear-gradient(45deg,#6cd5ff 33%,#c2efef 100%);-ms-flex-pack:center;justify-content:center;-ms-flex-align: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{color:#00d4d4;border-color:#00d4d4;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{width:15px;margin-left:5px;fill:#00d4d4}.wapk-button>.dashicons{color:#00d4d4}.wapk-button:hover{border-color:#0bb;color:#0bb}.wapk-button:hover>svg{fill:#0bb}.wapk-button:hover>.dashicons{color:#0bb}.wapk-button:focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button:focus>svg{fill:#0bb}.wapk-button:focus>.dashicons{color:#0bb}.wapk-button:active{background:#0bb;border-color:#0bb}.wapk-button-secondary{color:#00d4d4;border-color:#00d4d4;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-secondary>svg{width:15px;margin-left:5px;fill:#00d4d4}.wapk-button-secondary>.dashicons{color:#00d4d4}.wapk-button-secondary:hover{border-color:#0bb;color:#0bb}.wapk-button-secondary:hover>svg{fill:#0bb}.wapk-button-secondary:hover>.dashicons{color:#0bb}.wapk-button-secondary:focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button-secondary:focus>svg{fill:#0bb}.wapk-button-secondary:focus>.dashicons{color:#0bb}.wapk-button-primary{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;background:#00d4d4;border-color:#00d4d4;color:#fff;box-shadow:0 1px 0 #0bb;text-shadow:0 -1px 1px #0bb,1px 0 1px #0bb,0 1px 1px #0bb,-1px 0 1px #0bb}.wapk-button-primary>svg{fill:#fff}.wapk-button-primary:hover{background:#00e3e3;border-color:#00c5c5;color:#fff}.wapk-button-primary:hover>svg{fill:#fff}.wapk-button-primary:focus{background:#00e3e3;border-color:#00c5c5;color:#fff;box-shadow:0 0 0 1px #fff,0 0 0 3px #00d4d4}.wapk-button-primary:focus>svg{fill:#fff}.wapk-button-primary:active{background:#0bb;border-color:#0bb;color:#fff}.wapk-button-primary:active>svg{fill:#fff}.wapk-button-primary:disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary:disabled>svg{fill:#c7d1d1!important}.wapk-button.hover{border-color:#0bb;color:#0bb}.wapk-button.hover>svg{fill:#0bb}.wapk-button.hover>.dashicons{color:#0bb}.wapk-button.focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button.focus>svg{fill:#0bb}.wapk-button.focus>.dashicons{color:#0bb}.wapk-button.active{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:focus{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:focus>svg{fill:#0bb}.wapk-button.active:focus>.dashicons{color:#0bb}.wapk-button.active:hover{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:hover>svg{fill:#0bb}.wapk-button.active:hover>.dashicons{color:#0bb}.wapk-button.active>svg{fill:#0bb}.wapk-button.active>.dashicons{color:#0bb}.wapk-button-primary.active{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:focus{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:focus>svg{fill:#fff}.wapk-button-primary.active:hover{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:hover>svg{fill:#fff}.wapk-button-primary.active>svg{fill:#fff}.wapk-button-primary[disabled]{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary[disabled]>svg{fill:#c7d1d1!important}.wapk-button-primary.wapk-button-primary-disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary.wapk-button-primary-disabled>svg{fill:#c7d1d1!important}.wapk-button-primary.disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary.disabled>svg{fill:#c7d1d1!important}.wapk-button-primary.wapk-button-hero{box-shadow:0 2px 0 #0bb}.wapk-button-primary.wapk-button-hero:focus{box-shadow:0 2px 0 #0bb,0 1px 0 #00c5c5,0 0 2px 1px #0ee}.wapk-button-primary.wapk-button-hero:active{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-primary.wapk-button-hero.active{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-primary.wapk-button-hero.active:focus,.wapk-button-primary.wapk-button-hero.active:hover{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-group>.wapk-button.active{border-color:#00d4d4}.wapk-button.wapk-button-xl{height:30px;line-height:28px;padding:0 12px 2px}.wapk-button-group.wapk-button-xl .wapk-button{height:30px;line-height:28px;padding:0 12px 2px}.wapk-button.wapk-button-hero{font-size:18px;height:50px;line-height:48px;padding:0 36px;min-height:46px}.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#provider,th#status{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:111px}}@media screen and (min-width:960px){th#provider,th#status{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}.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){.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 td>div:not(.clear){float:left;margin-right:10px}.woo-feed-filters tr>td:first-child{width:290px;padding-left:40px}.woo-feed-filters,.woo-feed-ftp{margin:15px auto 25px}.wf_clean_cache_wrapper{display:-ms-flexbox;display:flex;margin-left:auto}@-webkit-keyframes LoaderClockWise{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes LoaderClockWise{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.woo-feed-cache-loader{width:18px;margin-right:5px;animation:LoaderClockWise 1s linear infinite;-webkit-animation:LoaderClockWise 1s linear infinite;display:none}.woo-feed-table-heading .woo-feed-table-heading-title{float:left;margin-right:auto;display:inline-block;line-height:30px}.woo-feed-table-heading .wf_clean_cache_wrapper{float:right;font-weight:400}.wf_clean_cache_wrapper button{background:linear-gradient(125deg,#eb4d4b 0,#ff9671 130%);color:#fff;border:none;font-weight:500;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;border-radius:3px;cursor:pointer;outline:0}.wf_clean_cache_wrapper button:hover{background:#ff7979;color:#fff}input[type=submit][data-id=wf_action_submit]{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);color:#fff;border:1px;padding:0 20px}input[type=submit][data-id=wf_action_submit]:hover{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);color:#fff}.woo-import-popup-body #TB_window{width:500px!important}.woo-import-popup-body #TB_window #TB_title{border:none;background:#fff;text-align:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;height:35px!important}.woo-import-popup-body #TB_window #TB_title #TB_ajaxWindowTitle{color:#30336b;font-weight:700}.woo-import-popup-body #TB_window #TB_closeWindowButton{top:-14.5px;right:-14.5px;border:none;outline:0}.woo-import-popup-body #TB_window #TB_closeWindowButton .tb-close-icon{background:#ff5e55;color:#fff;border-radius:50%}.woo-import-popup-body #TB_window #TB_closeWindowButton:focus{outline:0;border:0}.woo-import-popup-body #TB_window #TB_ajaxContent{position:relative;width:100%!important;height:auto!important;border:none;box-sizing:border-box;overflow:hidden;background:#f7fcff;padding:30px 20px}.woo-import-popup-body #TB_window #TB_ajaxContent:before{content:'';width:115%;display:block;background:#4bcffa;position:absolute;height:130%;z-index:0;left:-36%;top:-85px;-webkit-transform:rotate(115deg);transform:rotate(115deg)}.woo-import-popup-body #TB_window #TB_ajaxContent table{border:none;position:relative;z-index:1;border-radius:3px;text-align:center;padding:20px;box-shadow:0 12px 20px -17px #000}.woo-import-popup-body #TB_window #TB_ajaxContent table input{width:60%}.woo-import-popup-body #TB_window #TB_ajaxContent table input:focus{outline:2px solid #68b8f7}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=file]{padding:3px 0;cursor:pointer}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=text]{border-radius:25px;font-size:14px;padding:1px 20px;text-align:center}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=submit]{background:#17c0eb;border-radius:25px;border:0;box-shadow:1px 4px 7px -3px #45364a;font-weight:600;transition:.3s ease}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=submit]:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.woo-feed-notice .woo-feed-review-notice-logo{width:60px;height:75px;float:left;margin-right:5px;background:url(../images/woo-feed-icon.svg) no-repeat}.woo-feed-status-table-wrapper .woo-feed-status-table{width:100%;max-width:900px;border-collapse:collapse;border-spacing:.5rem;box-shadow:0 0 20px rgba(0,0,0,.1)}.woo-feed-status-table-wrapper .woo-feed-status-table tr:nth-child(even){background:#f1f1f1}.woo-feed-status-table-wrapper .woo-feed-status-table tr:nth-child(odd){background:#fafafc}.woo-feed-status-table-wrapper .woo-feed-status-table tr th{background:#353b48;color:#fff}.woo-feed-status-table-wrapper .woo-feed-status-table tr td,.woo-feed-status-table-wrapper .woo-feed-status-table tr th{padding:.5rem 20px;text-align:left}#taxonomy-woo-feed-brand #newwoo-feed-brand_parent,.taxonomy-woo-feed-brand .form-field.term-parent-wrap{display:none}
|
1 |
+
.wpf_spin{-webkit-animation:spin 1s infinite linear;animation:spin 1s infinite linear}.wpf_spin.reverse_spin{animation-direction:reverse}.wpf_regenerate.disabled{color:#737373;box-shadow:none;cursor:not-allowed}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.wfbtn{background:#3498db;background-image:linear-gradient(125deg,#3cb0fd 0,#152f8c 140%);border-radius:17px;box-shadow:inset 0 1px 3px #666;font-family:Arial,sans-serif;color:#fff;font-size:20px;padding:10px 20px 10px 20px;border:solid #2b698f 0;text-decoration:none}.wfbtn:hover{background:#3cb0fd;background-image:linear-gradient(to bottom,#3cb0fd,#3498db);text-decoration:none}.woo_feed_manage_list_table .wf_update_interval_btn{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);border:none}.woo_feed_manage_list_table .wf_update_interval_btn:hover{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%)}.woo-feed-promotion{position:relative;display:none}.woo-feed-promotion .woo-feed-campaign-close-button{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:15px;width:24px;height:24px;border-radius:12px;background:#595d6b;line-height:24px;color:#fff;cursor:pointer;transition:.3s ease}.woo-feed-promotion .woo-feed-campaign-close-button:hover{background:#fff;color:#d61e48}.wftooltip{display:none;position:absolute;border:1px solid #333;background-color:#161616;border-radius:5px;padding:10px;color:#fff;font-size:12px}.feed-actions .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 input,.widefat td select{max-width:100%}#wf_newRow{margin-left:0}.mtable tbody tr{height:25px;border:1px solid #ccc;text-align:left;-ms-flex-align:baseline;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}.mtable2 tbody tr{height:25px;border:1px solid #ccc;text-align:left;-ms-flex-align:baseline;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}.wp-admin select.wf_mattributes{width:150px;left:0;height:25px}div#wf-tab-content1 select:not([name^=output_type]){width:100%}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}.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}.wp-list-table .option_name .wf_feed_option_name_link{font-weight:700;color:#30336b}.wp-list-table #option_name a{color:#32373c}.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:55px;height:28px;box-sizing:border-box;float:left;border-radius:100px;position:relative;cursor:pointer;transition:.3s ease;background:linear-gradient(125deg,#e2e2e2 0,#ccc 140%)}input[class=woo_feed_status_input]:checked+label{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%)}input[class=woo_feed_status_input]:checked+label:before{left:29px}.wf_status_wrap label:before{transition:.3s ease;content:'';width:20px;height:20px;position:absolute;background:#fff;left:6px;top:4px;box-sizing:border-box;color:#000;border-radius:100px;box-shadow:0 1.5px 2px 0 #000}.view span.dashicons.dashicons-external{color:#22a6b3}.view span.dashicons.dashicons-sos{color:#22a6b3}.view span.dashicons.dashicons-download{color:#ee5253}.view span.dashicons.dashicons-media-code{color:#576574}.column-url,.widefat td.column-url,.widefat th.column-url{color:#1e8f9a;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:50px;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.feed-progress-bar-fill{height:20px;display:block;background:linear-gradient(to right top,#10ac84,#13b389,#15ba8f,#18c194,#1ac89a,#13cba1,#0acfa9,#00d2b0,#00d2ba,#00d2c3,#00d2cb,#00d2d3);width:0;border-radius:50px;transition:width .8s ease}.feed-progress-status{float:left;font-weight:700;color:#00008b}.feed-progress-percentage{text-align:right;font-weight:bolder;color:#1dd1a1;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{display:inline-block;text-decoration:none}.tooltipped:hover:after{display:inline-block;text-decoration:none}.tooltipped:active:before{display:inline-block;text-decoration:none}.tooltipped:active:after{display:inline-block;text-decoration:none}.tooltipped:focus:before{display:inline-block;text-decoration:none}.tooltipped:focus:after{display:inline-block;text-decoration:none}.tooltipped-multiline:hover:after{display:table-cell}.tooltipped-multiline:active:after{display:table-cell}.tooltipped-multiline:focus:after{display:table-cell}.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-s:after{top:100%;right:50%;margin-top:5px;-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-s:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-se:after{top:100%;margin-top:5px;right:auto;left:50%;margin-left:-15px}.tooltipped-se:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-sw:after{top:100%;right:50%;margin-top:5px;margin-right:-15px}.tooltipped-sw:before{top:auto;right:50%;bottom:-5px;margin-right:-5px;border-bottom-color:rgba(0,0,0,.8)}.tooltipped-n:after{right:50%;bottom:100%;margin-bottom:5px;-webkit-transform:translateX(50%);transform:translateX(50%)}.tooltipped-n:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-ne:after{bottom:100%;margin-bottom:5px;right:auto;left:50%;margin-left:-15px}.tooltipped-ne:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-nw:after{right:50%;bottom:100%;margin-bottom:5px;margin-right:-15px}.tooltipped-nw:before{top:-5px;right:50%;bottom:auto;margin-right:-5px;border-top-color:rgba(0,0,0,.8)}.tooltipped-w:after{right:100%;bottom:50%;margin-right:5px;-webkit-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%);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.tooltipped-s:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-n:after{right:auto;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.tooltipped-multiline.tooltipped-w:after{right:100%}.tooltipped-multiline.tooltipped-e:after{right:100%}.tooltipped-sticky:before{display:inline-block}.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{border-bottom-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped .tooltipped-se:before{border-bottom-color:rgba(255,255,255,.8)}.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{border-top-color:rgba(255,255,255,.8)}.fullscreen-overlay-enabled.dark-theme .tooltipped.tooltipped-ne:before{border-top-color:rgba(255,255,255,.8)}.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)}@media screen and (min-width:0\0){.tooltipped-multiline:after{width:250px}}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,table.wf-rate-table{vertical-align:middle;text-align:center;max-width:100%;font-weight:500}table.wf-info-table th,table.wf-rate-table th{text-align:center}table.wf-info-table th .woo-feed-top-header,table.wf-rate-table th .woo-feed-top-header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}table.wf-info-table th .woo-feed-top-header .get-woo-feed-pro,table.wf-rate-table th .woo-feed-top-header .get-woo-feed-pro{margin-left:20px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons{float:right;display:-ms-flexbox;display:flex;border-radius:7px;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a{padding:8px 20px;background:#576574;color:#fff;box-sizing:border-box;display:inline-block;transition:.3s ease}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-doc-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-doc-link{background:#576574;border-top-left-radius:5px;border-bottom-left-radius:5px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-video-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-video-link{background:#ee5253}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-support-link,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a.woo-feed-support-link{background:#22a6b3;border-top-right-radius:5px;border-bottom-right-radius:5px}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a span.dashicons,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a span.dashicons{font-size:18px;line-height:1.2}table.wf-info-table th .woo-feed-top-header .woo-feed-top-buttons a:hover,table.wf-rate-table th .woo-feed-top-header .woo-feed-top-buttons a:hover{background:#30336b;box-shadow:0 0 33px 0 rgba(0,0,0,.12)}table.wf-info-table strong,table.wf-rate-table 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}#adminmenu #toplevel_page_webappick-manage-feeds:hover div.wp-menu-image::before{opacity:1}#adminmenu #toplevel_page_webappick-manage-feeds.wp-has-current-submenu div.wp-menu-image::before{opacity:1}.wapk-admin,.wapk-admin *{box-sizing:border-box}.wapk-admin{position:relative;display:block;-webkit-hyphens:manual;-ms-hyphens:manual;-moz-hyphens:manual;hyphens:manual;color:#1b2730;margin:0 0 0 -10px}@media screen and (min-width:783px){.wapk-admin{margin:0 0 0 -20px}}.text-center{text-align:center}.wapk-admin h1,.wapk-admin h2,.wapk-admin h3,.wapk-admin h4,.wapk-admin h5,.wapk-admin h6,.wapk-admin p{color:#1b2730}.wapk-admin sup{vertical-align:baseline;position:relative;top:-6px}.wapk-admin sub{vertical-align:baseline;position:relative;top:4px}.wapk-admin .wapk-section{margin:10px 20px 0 22px;position:relative;display:block}.wapk-admin .wapk-section [class$=icon32]+h2{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin .wapk-section h1{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin .wapk-section>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px 0;line-height:1.3}.wapk-admin>.notice{margin:10px 20px 0 22px;position:relative;display:block}.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}.clear:after{content:"";display:table;clear:both}.wapk-feed-docs .postbox{width:355px;margin-right:20px;display:inline-block;vertical-align:top}.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{margin-bottom:0}.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 li{width:100%;display:block;float:left}.wapk-feed-docs .postbox li span{display:inline-block;float:left;margin-right:4px}.wapk-feed-docs .postbox li a{display:inline-block;float:left;width:calc(100% - 24px)}.wapk-feed-docs .postbox.closed .toggle-indicator:before{content:"\F140"}.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}.merchant-info-section.woo-feed-open-file{text-align:center}.merchant-info-section.woo-feed-open-file a{line-height:1.5;text-decoration:none}.generateFeed .wf-tab-content table:first-child{border:none;box-shadow:none}.generateFeed table th{font-weight:700}@media only screen and (max-width:850px){.wapk-feed-docs .postbox{display:block;width:auto;float:none;margin-right:auto}}.wp-submenu li span.woo-feed-docs{font-weight:700;color:#f18500}.wp-submenu li:hover span.woo-feed-docs{color:#ce7304}.wp-submenu li.current span.woo-feed-docs{color:#ce7304}.wapk-admin .wapk-feed-docs .postbox .hndle{cursor:default}.wapk-cta{position:relative;display:-ms-flexbox;display:flex;width:100%;padding:100px 15px;background:linear-gradient(45deg,#6cd5ff 33%,#c2efef 100%);-ms-flex-pack:center;justify-content:center;-ms-flex-align: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{color:#00d4d4;border-color:#00d4d4;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{width:15px;margin-left:5px;fill:#00d4d4}.wapk-button>.dashicons{color:#00d4d4}.wapk-button:hover{border-color:#0bb;color:#0bb}.wapk-button:hover>svg{fill:#0bb}.wapk-button:hover>.dashicons{color:#0bb}.wapk-button:focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button:focus>svg{fill:#0bb}.wapk-button:focus>.dashicons{color:#0bb}.wapk-button:active{background:#0bb;border-color:#0bb}.wapk-button-secondary{color:#00d4d4;border-color:#00d4d4;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-secondary>svg{width:15px;margin-left:5px;fill:#00d4d4}.wapk-button-secondary>.dashicons{color:#00d4d4}.wapk-button-secondary:hover{border-color:#0bb;color:#0bb}.wapk-button-secondary:hover>svg{fill:#0bb}.wapk-button-secondary:hover>.dashicons{color:#0bb}.wapk-button-secondary:focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button-secondary:focus>svg{fill:#0bb}.wapk-button-secondary:focus>.dashicons{color:#0bb}.wapk-button-primary{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;background:#00d4d4;border-color:#00d4d4;color:#fff;box-shadow:0 1px 0 #0bb;text-shadow:0 -1px 1px #0bb,1px 0 1px #0bb,0 1px 1px #0bb,-1px 0 1px #0bb}.wapk-button-primary>svg{fill:#fff}.wapk-button-primary:hover{background:#00e3e3;border-color:#00c5c5;color:#fff}.wapk-button-primary:hover>svg{fill:#fff}.wapk-button-primary:focus{background:#00e3e3;border-color:#00c5c5;color:#fff;box-shadow:0 0 0 1px #fff,0 0 0 3px #00d4d4}.wapk-button-primary:focus>svg{fill:#fff}.wapk-button-primary:active{background:#0bb;border-color:#0bb;color:#fff}.wapk-button-primary:active>svg{fill:#fff}.wapk-button-primary:disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary:disabled>svg{fill:#c7d1d1!important}.wapk-button.hover{border-color:#0bb;color:#0bb}.wapk-button.hover>svg{fill:#0bb}.wapk-button.hover>.dashicons{color:#0bb}.wapk-button.focus{border-color:#00d4d4;color:#0bb;box-shadow:0 0 0 1px #00d4d4}.wapk-button.focus>svg{fill:#0bb}.wapk-button.focus>.dashicons{color:#0bb}.wapk-button.active{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:focus{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:focus>svg{fill:#0bb}.wapk-button.active:focus>.dashicons{color:#0bb}.wapk-button.active:hover{border-color:#0bb;color:#0bb;box-shadow:inset 0 2px 5px -3px #0bb}.wapk-button.active:hover>svg{fill:#0bb}.wapk-button.active:hover>.dashicons{color:#0bb}.wapk-button.active>svg{fill:#0bb}.wapk-button.active>.dashicons{color:#0bb}.wapk-button-primary.active{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:focus{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:focus>svg{fill:#fff}.wapk-button-primary.active:hover{background:#00d4d4;color:#fff;border-color:#088;box-shadow:inset 0 2px 5px -3px #000}.wapk-button-primary.active:hover>svg{fill:#fff}.wapk-button-primary.active>svg{fill:#fff}.wapk-button-primary[disabled]{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary[disabled]>svg{fill:#c7d1d1!important}.wapk-button-primary.wapk-button-primary-disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary.wapk-button-primary-disabled>svg{fill:#c7d1d1!important}.wapk-button-primary.disabled{color:#c7d1d1!important;background:#2ff!important;border-color:#2ff!important;text-shadow:none!important}.wapk-button-primary.disabled>svg{fill:#c7d1d1!important}.wapk-button-primary.wapk-button-hero{box-shadow:0 2px 0 #0bb}.wapk-button-primary.wapk-button-hero:focus{box-shadow:0 2px 0 #0bb,0 1px 0 #00c5c5,0 0 2px 1px #0ee}.wapk-button-primary.wapk-button-hero:active{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-primary.wapk-button-hero.active{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-primary.wapk-button-hero.active:focus,.wapk-button-primary.wapk-button-hero.active:hover{box-shadow:inset 0 3px 0 #00a1a1}.wapk-button-group>.wapk-button.active{border-color:#00d4d4}.wapk-button.wapk-button-xl{height:30px;line-height:28px;padding:0 12px 2px}.wapk-button-group.wapk-button-xl .wapk-button{height:30px;line-height:28px;padding:0 12px 2px}.wapk-button.wapk-button-hero{font-size:18px;height:50px;line-height:48px;padding:0 36px;min-height:46px}.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#provider,th#status{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:111px}}@media screen and (min-width:960px){th#provider,th#status{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}.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){.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 td>div:not(.clear){float:left;margin-right:10px}.woo-feed-filters tr>td:first-child{width:290px;padding-left:40px}.woo-feed-filters,.woo-feed-ftp{margin:15px auto 25px}.wf_clean_cache_wrapper{display:-ms-flexbox;display:flex;margin-left:auto}@-webkit-keyframes LoaderClockWise{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes LoaderClockWise{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.woo-feed-cache-loader{width:18px;margin-right:5px;animation:LoaderClockWise 1s linear infinite;-webkit-animation:LoaderClockWise 1s linear infinite;display:none}.woo-feed-table-heading .woo-feed-table-heading-title{float:left;margin-right:auto;display:inline-block;line-height:30px}.woo-feed-table-heading .wf_clean_cache_wrapper{float:right;font-weight:400}.wf_clean_cache_wrapper button{background:linear-gradient(125deg,#eb4d4b 0,#ff9671 130%);color:#fff;border:none;font-weight:500;display:inline-block;text-decoration:none;font-size:13px;line-height:2.15384615;min-height:30px;margin:0;padding:0 10px;border-radius:3px;cursor:pointer;outline:0}.wf_clean_cache_wrapper button:hover{background:#ff7979;color:#fff}input[type=submit][data-id=wf_action_submit]{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);color:#fff;border:1px;padding:0 20px}input[type=submit][data-id=wf_action_submit]:hover{background:linear-gradient(125deg,#3cb0fd 0,#6c5ce7 140%);color:#fff}.woo-import-popup-body #TB_window{width:500px!important}.woo-import-popup-body #TB_window #TB_title{border:none;background:#fff;text-align:center;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;height:35px!important}.woo-import-popup-body #TB_window #TB_title #TB_ajaxWindowTitle{color:#30336b;font-weight:700}.woo-import-popup-body #TB_window #TB_closeWindowButton{top:-14.5px;right:-14.5px;border:none;outline:0}.woo-import-popup-body #TB_window #TB_closeWindowButton .tb-close-icon{background:#ff5e55;color:#fff;border-radius:50%}.woo-import-popup-body #TB_window #TB_closeWindowButton:focus{outline:0;border:0}.woo-import-popup-body #TB_window #TB_ajaxContent{position:relative;width:100%!important;height:auto!important;border:none;box-sizing:border-box;overflow:hidden;background:#f7fcff;padding:30px 20px}.woo-import-popup-body #TB_window #TB_ajaxContent:before{content:'';width:115%;display:block;background:#4bcffa;position:absolute;height:130%;z-index:0;left:-36%;top:-85px;-webkit-transform:rotate(115deg);transform:rotate(115deg)}.woo-import-popup-body #TB_window #TB_ajaxContent table{border:none;position:relative;z-index:1;border-radius:3px;text-align:center;padding:20px;box-shadow:0 12px 20px -17px #000}.woo-import-popup-body #TB_window #TB_ajaxContent table input{width:60%}.woo-import-popup-body #TB_window #TB_ajaxContent table input:focus{outline:2px solid #68b8f7}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=file]{padding:3px 0;cursor:pointer}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=text]{border-radius:25px;font-size:14px;padding:1px 20px;text-align:center}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=submit]{background:#17c0eb;border-radius:25px;border:0;box-shadow:1px 4px 7px -3px #45364a;font-weight:600;transition:.3s ease}.woo-import-popup-body #TB_window #TB_ajaxContent table input[type=submit]:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.woo-feed-notice .woo-feed-review-notice-logo{width:90px;height:90px;float:left;margin-right:5px;background:url(../images/woo-feed-logo.svg) no-repeat}.woo-feed-status-table-wrapper .woo-feed-status-table{width:100%;max-width:900px;border-collapse:collapse;border-spacing:.5rem;box-shadow:0 0 20px rgba(0,0,0,.1)}.woo-feed-status-table-wrapper .woo-feed-status-table tr:nth-child(even){background:#f1f1f1}.woo-feed-status-table-wrapper .woo-feed-status-table tr:nth-child(odd){background:#fafafc}.woo-feed-status-table-wrapper .woo-feed-status-table tr th{background:#353b48;color:#fff}.woo-feed-status-table-wrapper .woo-feed-status-table tr td,.woo-feed-status-table-wrapper .woo-feed-status-table tr th{padding:.5rem 20px;text-align:left}#taxonomy-woo-feed-brand #newwoo-feed-brand_parent,.taxonomy-woo-feed-brand .form-field.term-parent-wrap{display:none}
|
admin/css/woo-feed-admin.scss
CHANGED
@@ -1973,15 +1973,14 @@ input {
|
|
1973 |
/* Woo Feed Notice Style */
|
1974 |
.woo-feed-notice {
|
1975 |
.woo-feed-review-notice-logo {
|
1976 |
-
width:
|
1977 |
-
height:
|
1978 |
float: left;
|
1979 |
margin-right: 5px;
|
1980 |
-
background: url("../images/woo-feed-
|
1981 |
}
|
1982 |
}
|
1983 |
|
1984 |
-
|
1985 |
/* Status Page Style */
|
1986 |
.woo-feed-status-table-wrapper {
|
1987 |
.woo-feed-status-table {
|
1973 |
/* Woo Feed Notice Style */
|
1974 |
.woo-feed-notice {
|
1975 |
.woo-feed-review-notice-logo {
|
1976 |
+
width: 90px;
|
1977 |
+
height: 90px;
|
1978 |
float: left;
|
1979 |
margin-right: 5px;
|
1980 |
+
background: url("../images/woo-feed-logo.svg") no-repeat;
|
1981 |
}
|
1982 |
}
|
1983 |
|
|
|
1984 |
/* Status Page Style */
|
1985 |
.woo-feed-status-table-wrapper {
|
1986 |
.woo-feed-status-table {
|
admin/images/woo-feed-logo.svg
ADDED
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="utf-8"?>
|
2 |
+
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3 |
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
4 |
+
viewBox="0 0 128 128" style="enable-background:new 0 0 128 128;" xml:space="preserve">
|
5 |
+
<style type="text/css">
|
6 |
+
.st0{fill:#FFFFFF;}
|
7 |
+
.st1{fill:#464D56;}
|
8 |
+
.st2{fill:#59C1E8;}
|
9 |
+
</style>
|
10 |
+
<rect x="-0.1" class="st0" width="128" height="128"/>
|
11 |
+
<g>
|
12 |
+
<g>
|
13 |
+
<g>
|
14 |
+
<path class="st1" d="M20.5,115.2c-2.8,0-4.9-0.8-6.3-2.3c-1.5-1.5-2.2-3.7-2.2-6.6c0-1.4,0.2-2.7,0.7-3.8c0.4-1.1,1-2,1.8-2.8
|
15 |
+
s1.7-1.3,2.8-1.7c1.1-0.4,2.2-0.6,3.5-0.6c0.7,0,1.4,0.1,2,0.2s1.1,0.2,1.6,0.4c0.4,0.1,0.8,0.3,1.1,0.4c0.3,0.1,0.5,0.3,0.6,0.3
|
16 |
+
l-1.1,3.1c-0.5-0.3-1.1-0.5-1.8-0.7c-0.7-0.2-1.5-0.3-2.4-0.3c-0.6,0-1.2,0.1-1.7,0.3c-0.6,0.2-1.1,0.5-1.5,0.9s-0.8,1-1,1.7
|
17 |
+
c-0.3,0.7-0.4,1.5-0.4,2.5c0,0.8,0.1,1.5,0.3,2.2c0.2,0.7,0.5,1.3,0.8,1.8c0.4,0.5,0.9,0.9,1.5,1.2c0.6,0.3,1.4,0.4,2.3,0.4
|
18 |
+
c0.6,0,1.1,0,1.5-0.1s0.8-0.1,1.2-0.2c0.3-0.1,0.6-0.2,0.9-0.3c0.3-0.1,0.5-0.2,0.7-0.3l1.1,3.1c-0.5,0.3-1.3,0.6-2.3,0.9
|
19 |
+
C23,115.1,21.8,115.2,20.5,115.2z"/>
|
20 |
+
<path class="st1" d="M41.9,97.8v3.3h-5.1v13.8H33v-13.8h-5.1v-3.3H41.9z"/>
|
21 |
+
<path class="st1" d="M54.8,114.9c-0.5-1-1-1.9-1.6-2.9s-1.2-1.8-2-2.5c-0.2,0.3-0.5,0.6-0.9,1.1s-0.7,0.9-1.1,1.4
|
22 |
+
c-0.4,0.5-0.7,1-1,1.6c-0.3,0.5-0.5,1-0.7,1.3h-4.4c0.7-1.3,1.6-2.7,2.5-4.1c1-1.4,2.1-2.9,3.3-4.5l-5.6-8.4H48l3.3,4.9l3.3-4.9
|
23 |
+
H59l-5.5,8.2c1.5,1.8,2.6,3.5,3.6,5s1.7,2.8,2.2,3.8H54.8z"/>
|
24 |
+
<path class="st2" d="M61.6,114.9V97.8H73v3.2h-7.6v3.6h6.7v3.2h-6.7v7h-3.8V114.9z"/>
|
25 |
+
<path class="st2" d="M74.6,108.5c0-1.1,0.2-2.2,0.5-3c0.4-0.9,0.8-1.6,1.4-2.2s1.2-1,2-1.3c0.7-0.3,1.5-0.4,2.3-0.4
|
26 |
+
c1.8,0,3.3,0.6,4.4,1.7s1.6,2.8,1.6,5c0,0.2,0,0.4,0,0.7c0,0.3,0,0.5,0,0.7h-8.3c0.1,0.8,0.4,1.4,1.1,1.8
|
27 |
+
c0.6,0.4,1.5,0.7,2.5,0.7c0.7,0,1.3-0.1,2-0.2s1.2-0.3,1.6-0.5l0.5,3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.7,0.2-1.1,0.3
|
28 |
+
c-0.4,0.1-0.8,0.1-1.3,0.2c-0.5,0-0.9,0.1-1.4,0.1c-1.2,0-2.2-0.2-3-0.5c-0.9-0.3-1.6-0.8-2.1-1.4c-0.6-0.6-1-1.3-1.3-2.1
|
29 |
+
S74.6,109.5,74.6,108.5z M83.2,107.1c0-0.3-0.1-0.6-0.2-0.9s-0.2-0.6-0.4-0.8c-0.2-0.2-0.4-0.4-0.7-0.6c-0.3-0.1-0.6-0.2-1.1-0.2
|
30 |
+
c-0.4,0-0.8,0.1-1.1,0.2c-0.3,0.1-0.5,0.3-0.7,0.6c-0.2,0.2-0.3,0.5-0.5,0.8c-0.1,0.3-0.2,0.6-0.2,0.9H83.2z"/>
|
31 |
+
<path class="st2" d="M89,108.5c0-1.1,0.2-2.2,0.5-3c0.4-0.9,0.8-1.6,1.4-2.2s1.2-1,2-1.3c0.7-0.3,1.5-0.4,2.3-0.4
|
32 |
+
c1.8,0,3.3,0.6,4.4,1.7s1.6,2.8,1.6,5c0,0.2,0,0.4,0,0.7c0,0.3,0,0.5,0,0.7h-8.3c0.1,0.8,0.4,1.4,1.1,1.8
|
33 |
+
c0.6,0.4,1.5,0.7,2.5,0.7c0.7,0,1.3-0.1,2-0.2s1.2-0.3,1.6-0.5l0.5,3c-0.2,0.1-0.5,0.2-0.8,0.3c-0.3,0.1-0.7,0.2-1.1,0.3
|
34 |
+
c-0.4,0.1-0.8,0.1-1.3,0.2c-0.5,0-0.9,0.1-1.4,0.1c-1.2,0-2.2-0.2-3-0.5c-0.9-0.3-1.6-0.8-2.1-1.4c-0.6-0.6-1-1.3-1.3-2.1
|
35 |
+
S89,109.5,89,108.5z M97.6,107.1c0-0.3-0.1-0.6-0.2-0.9s-0.2-0.6-0.4-0.8c-0.2-0.2-0.4-0.4-0.7-0.6c-0.3-0.1-0.6-0.2-1.1-0.2
|
36 |
+
c-0.4,0-0.8,0.1-1.1,0.2c-0.3,0.1-0.5,0.3-0.7,0.6c-0.2,0.2-0.3,0.5-0.5,0.8c-0.1,0.3-0.2,0.6-0.2,0.9H97.6z"/>
|
37 |
+
<path class="st2" d="M115.4,114.5c-0.3,0.1-0.7,0.2-1.1,0.3c-0.4,0.1-0.9,0.2-1.3,0.2c-0.5,0.1-0.9,0.1-1.4,0.2
|
38 |
+
c-0.5,0-0.9,0.1-1.4,0.1c-1.1,0-2-0.2-2.9-0.5s-1.5-0.8-2.1-1.3c-0.6-0.6-1-1.3-1.3-2.1c-0.3-0.8-0.5-1.8-0.5-2.8s0.1-2,0.4-2.8
|
39 |
+
s0.6-1.6,1.1-2.2s1.1-1,1.8-1.4s1.5-0.5,2.4-0.5c0.5,0,1,0,1.4,0.1s0.8,0.2,1.2,0.4v-5.9l3.7-0.6
|
40 |
+
C115.4,95.7,115.4,114.5,115.4,114.5z M107.1,108.3c0,1.1,0.3,2,0.8,2.7s1.3,1,2.3,1c0.3,0,0.6,0,0.9,0s0.5-0.1,0.7-0.1v-6.7
|
41 |
+
c-0.2-0.1-0.5-0.3-0.9-0.4s-0.7-0.1-1.1-0.1C108,104.8,107.1,106,107.1,108.3z"/>
|
42 |
+
</g>
|
43 |
+
</g>
|
44 |
+
<g>
|
45 |
+
<path class="st2" d="M41.2,12.1h40.3c2.4,0,4.7,0.9,6.3,2.6c1.7,1.7,2.6,4,2.6,6.3v53.8c0,1.5-0.6,3-1.7,4.1s-2.5,1.7-4.1,1.7
|
46 |
+
H42.8C41.4,80.6,40,80,39,79s-1.6-2.4-1.6-3.8V15.8c0-1,0.4-1.9,1.1-2.6C39.3,12.5,40.2,12.1,41.2,12.1L41.2,12.1z"/>
|
47 |
+
<path class="st0" d="M90.5,24.2h-6.3c-1.7,0-3.3-0.7-4.5-1.9c-1.2-1.2-1.9-2.8-1.9-4.5v-6.3c3.3,0,6.6,1.3,8.9,3.7
|
48 |
+
C89.1,17.6,90.5,20.8,90.5,24.2L90.5,24.2z"/>
|
49 |
+
<path class="st0" d="M71.5,22.3H56.4c-0.5,0-0.9,0.3-1.2,0.6c-0.3,0.3-0.5,0.8-0.5,1.3s0.2,0.9,0.5,1.3c0.3,0.3,0.7,0.6,1.2,0.6
|
50 |
+
h15.2c0.5,0,0.9-0.3,1.2-0.6c0.3-0.3,0.5-0.8,0.5-1.3s-0.2-0.9-0.5-1.3C72.4,22.5,72,22.3,71.5,22.3z M68.3,57.2H50.1
|
51 |
+
c-0.5,0-1,0.2-1.3,0.6c-0.4,0.4-0.6,0.8-0.6,1.3s0.2,1,0.6,1.3c0.4,0.4,0.8,0.6,1.3,0.6h18.2c0.5,0,1-0.2,1.3-0.6
|
52 |
+
c0.4-0.4,0.6-0.8,0.6-1.3s-0.2-1-0.6-1.3C69.3,57.4,68.8,57.2,68.3,57.2z M77.8,49.3H50.1c-0.5,0-0.9,0.3-1.2,0.6
|
53 |
+
s-0.5,0.8-0.5,1.3s0.2,0.9,0.5,1.3c0.3,0.3,0.7,0.6,1.2,0.6h27.8c0.5,0,0.9-0.3,1.2-0.6c0.3-0.3,0.5-0.8,0.5-1.3s-0.2-0.9-0.5-1.3
|
54 |
+
C78.7,49.6,78.3,49.3,77.8,49.3L77.8,49.3z M77.8,41.2H50.1c-0.5,0-0.9,0.3-1.2,0.6s-0.5,0.8-0.5,1.3s0.2,0.9,0.5,1.3
|
55 |
+
c0.3,0.3,0.7,0.6,1.2,0.6h27.8c0.5,0,0.9-0.3,1.2-0.6c0.3-0.4,0.5-0.8,0.5-1.3s-0.2-0.9-0.5-1.3C78.7,41.5,78.3,41.3,77.8,41.2
|
56 |
+
L77.8,41.2z"/>
|
57 |
+
<path class="st1" d="M84.2,26h6.3c0.4,0,0.7-0.1,1-0.3c0.3-0.2,0.6-0.5,0.7-0.8c0.1-0.2,0.2-0.5,0.2-0.8V24
|
58 |
+
c-0.1-3-1.1-5.9-2.9-8.4v-0.1l-0.3-0.4c-0.3-0.3-0.6-0.7-0.9-1c-1.3-1.4-2.9-2.4-4.7-3.2C81.8,10.2,80,9.8,78,9.8H43.7
|
59 |
+
c-2.2,0-4.2,0.9-5.8,2.4c-1.5,1.5-2.4,3.6-2.4,5.8v56.8c0,4.6,3.7,8.2,6.9,8.2h40.3c5.5,0,9.5-3.5,9.5-8.2v-22V32.4
|
60 |
+
c0-0.2,0-0.5-0.1-0.7s-0.2-0.4-0.4-0.6c-0.2-0.2-0.4-0.3-0.6-0.4s-0.5-0.1-0.7-0.1l0,0c-0.2,0-0.5,0-0.7,0.1s-0.4,0.2-0.6,0.4
|
61 |
+
c-0.2,0.2-0.3,0.4-0.4,0.6s-0.1,0.5-0.1,0.7v20.5v21.8c0,2.6-2.3,4.4-5.7,4.4H42.5c-0.9-0.3-1.7-0.9-2.3-1.7
|
62 |
+
c-0.6-0.8-0.9-1.8-0.8-2.7V17.8c0-0.6,0.1-1.2,0.3-1.7s0.5-1,1-1.4c0.4-0.4,0.9-0.7,1.4-1c0.5-0.2,1.1-0.3,1.7-0.3H76v4.4
|
63 |
+
c0,1.1,0.2,2.1,0.6,3.1s1,1.9,1.8,2.7c0.8,0.8,1.7,1.4,2.7,1.8C82,25.8,83.1,26,84.2,26L84.2,26z M84.2,22.2
|
64 |
+
c-0.6,0-1.2-0.1-1.7-0.3c-0.5-0.2-1-0.5-1.4-1s-0.7-0.9-1-1.4c-0.2-0.5-0.3-1.1-0.3-1.7v-4.2c2.2,0.4,4.1,1.4,5.7,3
|
65 |
+
c1.5,1.5,2.6,3.5,3,5.7L84.2,22.2z"/>
|
66 |
+
<circle class="st0" cx="74.4" cy="58.8" r="2"/>
|
67 |
+
</g>
|
68 |
+
</g>
|
69 |
+
</svg>
|
admin/partials/woo-feed-edit-config.php
CHANGED
@@ -51,7 +51,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
51 |
<td>
|
52 |
<select name="type[<?php echo esc_attr( $k ); ?>]" class="attr_type wfnoempty">
|
53 |
<option <?php echo ( 'attribute' == $attr_type[ $k ] ) ? 'selected="selected" ' : ''; ?>value="attribute"><?php esc_html_e( 'Attribute', 'woo-feed' ); ?></option>
|
54 |
-
<option <?php echo ( 'pattern' == $attr_type[ $k ] ) ? 'selected="selected" ' : ''; ?> value="pattern"><?php esc_html_e( 'Pattern', 'woo-feed' ); ?></option>
|
55 |
</select>
|
56 |
</td>
|
57 |
<td>
|
@@ -122,7 +122,7 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
122 |
<td>
|
123 |
<select name="type[__idx__]" class="attr_type wfnoempty">
|
124 |
<option value="attribute"><?php esc_html_e( 'Attribute', 'woo-feed' ); ?></option>
|
125 |
-
<option value="pattern"><?php esc_html_e( 'Pattern', 'woo-feed' ); ?></option>
|
126 |
</select>
|
127 |
</td>
|
128 |
<td>
|
51 |
<td>
|
52 |
<select name="type[<?php echo esc_attr( $k ); ?>]" class="attr_type wfnoempty">
|
53 |
<option <?php echo ( 'attribute' == $attr_type[ $k ] ) ? 'selected="selected" ' : ''; ?>value="attribute"><?php esc_html_e( 'Attribute', 'woo-feed' ); ?></option>
|
54 |
+
<option <?php echo ( 'pattern' == $attr_type[ $k ] ) ? 'selected="selected" ' : ''; ?> value="pattern"><?php esc_html_e( 'Pattern (Static Value)', 'woo-feed' ); ?></option>
|
55 |
</select>
|
56 |
</td>
|
57 |
<td>
|
122 |
<td>
|
123 |
<select name="type[__idx__]" class="attr_type wfnoempty">
|
124 |
<option value="attribute"><?php esc_html_e( 'Attribute', 'woo-feed' ); ?></option>
|
125 |
+
<option value="pattern"><?php esc_html_e( 'Pattern (Static Value)', 'woo-feed' ); ?></option>
|
126 |
</select>
|
127 |
</td>
|
128 |
<td>
|
includes/classes/class-woo-feed-products-v3.php
CHANGED
@@ -2566,7 +2566,7 @@ class Woo_Feed_Products_v3
|
|
2566 |
$price = $product->get_regular_price();
|
2567 |
}
|
2568 |
|
2569 |
-
return apply_filters('woo_feed_filter_product_price', $price, $product, $this->config);
|
2570 |
}
|
2571 |
|
2572 |
/**
|
@@ -2593,10 +2593,7 @@ class Woo_Feed_Products_v3
|
|
2593 |
$current_price = $product->get_price();
|
2594 |
}
|
2595 |
|
2596 |
-
|
2597 |
-
$current_price = $this->get_dynamic_discounted_product_price($product, $current_price);
|
2598 |
-
|
2599 |
-
return apply_filters('woo_feed_filter_product_regular_price', $current_price, $product, $this->config);
|
2600 |
}
|
2601 |
|
2602 |
/**
|
@@ -2625,10 +2622,7 @@ class Woo_Feed_Products_v3
|
|
2625 |
$sale_price = $price > 0 ? $price : '';
|
2626 |
}
|
2627 |
|
2628 |
-
|
2629 |
-
$sale_price = $this->get_dynamic_discounted_product_price($product, $sale_price);
|
2630 |
-
|
2631 |
-
return apply_filters('woo_feed_filter_product_sale_price', $sale_price, $product, $this->config);
|
2632 |
}
|
2633 |
|
2634 |
/**
|
@@ -2655,7 +2649,7 @@ class Woo_Feed_Products_v3
|
|
2655 |
$price) : $price;
|
2656 |
}
|
2657 |
|
2658 |
-
return apply_filters('woo_feed_filter_product_price_with_tax', $price_with_tax, $product, $this->config);
|
2659 |
}
|
2660 |
|
2661 |
/**
|
@@ -2682,10 +2676,7 @@ class Woo_Feed_Products_v3
|
|
2682 |
$price) : $price;
|
2683 |
}
|
2684 |
|
2685 |
-
|
2686 |
-
$current_price_with_tax = $this->get_dynamic_discounted_product_price($product, $current_price_with_tax, true);
|
2687 |
-
|
2688 |
-
return apply_filters('woo_feed_filter_product_regular_price_with_tax', $current_price_with_tax, $product, $this->config);
|
2689 |
}
|
2690 |
|
2691 |
/**
|
@@ -2713,10 +2704,7 @@ class Woo_Feed_Products_v3
|
|
2713 |
$sale_price_with_tax = $price > 0 ? $price : '';
|
2714 |
}
|
2715 |
|
2716 |
-
|
2717 |
-
$sale_price_with_tax = $this->get_dynamic_discounted_product_price($product, $sale_price_with_tax, true);
|
2718 |
-
|
2719 |
-
return apply_filters('woo_feed_filter_product_sale_price_with_tax', $sale_price_with_tax, $product, $this->config);
|
2720 |
}
|
2721 |
|
2722 |
/**
|
@@ -2835,52 +2823,6 @@ class Woo_Feed_Products_v3
|
|
2835 |
}
|
2836 |
}
|
2837 |
|
2838 |
-
/**
|
2839 |
-
* Get price with dynamic discount
|
2840 |
-
*
|
2841 |
-
* @param WC_Product $product product object
|
2842 |
-
* @param $price
|
2843 |
-
* @param bool $tax product taxable or not
|
2844 |
-
*
|
2845 |
-
* @author Nazrul Islam Nayan
|
2846 |
-
* @since 4.3.52
|
2847 |
-
* @return mixed $price
|
2848 |
-
*/
|
2849 |
-
private function get_dynamic_discounted_product_price($product, $price, $tax = false) {
|
2850 |
-
// When discount rules plugin by flycart is activated, bring the discounted price
|
2851 |
-
if ( is_plugin_active('woo-discount-rules/woo-discount-rules.php') ) {
|
2852 |
-
|
2853 |
-
if( class_exists('Wdr\App\Controllers\Configuration') ) {
|
2854 |
-
$config = Wdr\App\Controllers\Configuration::getInstance()->getConfig('calculate_discount_from', 'sale_price');
|
2855 |
-
|
2856 |
-
if( isset($config) && !empty($config) ) {
|
2857 |
-
if( 'regular_price' === $config ) {
|
2858 |
-
$price = $product->get_regular_price();
|
2859 |
-
}else {
|
2860 |
-
$price = $product->get_sale_price();
|
2861 |
-
}
|
2862 |
-
} else {
|
2863 |
-
$price = $product->get_regular_price();
|
2864 |
-
}
|
2865 |
-
|
2866 |
-
//when tax is enabled
|
2867 |
-
if( $tax ) {
|
2868 |
-
$price = ( $product->is_taxable() && ! empty( $price ) ) ? $this->get_price_with_tax(
|
2869 |
-
$product,
|
2870 |
-
$price
|
2871 |
-
) : $price;
|
2872 |
-
}
|
2873 |
-
|
2874 |
-
$discounted_price = apply_filters('advanced_woo_discount_rules_get_product_discount_price_from_custom_price', false, $product, 1, $price, 'discounted_price', true, true);
|
2875 |
-
if(false !== $discounted_price) {
|
2876 |
-
return $discounted_price;
|
2877 |
-
}
|
2878 |
-
}
|
2879 |
-
}
|
2880 |
-
|
2881 |
-
return $price;
|
2882 |
-
}
|
2883 |
-
|
2884 |
/**
|
2885 |
* Get price for Iconic woocommerce-bundled-products
|
2886 |
*
|
2566 |
$price = $product->get_regular_price();
|
2567 |
}
|
2568 |
|
2569 |
+
return apply_filters('woo_feed_filter_product_price', $price, $product, $this->config, false);
|
2570 |
}
|
2571 |
|
2572 |
/**
|
2593 |
$current_price = $product->get_price();
|
2594 |
}
|
2595 |
|
2596 |
+
return apply_filters('woo_feed_filter_product_regular_price', $current_price, $product, $this->config, false);
|
|
|
|
|
|
|
2597 |
}
|
2598 |
|
2599 |
/**
|
2622 |
$sale_price = $price > 0 ? $price : '';
|
2623 |
}
|
2624 |
|
2625 |
+
return apply_filters('woo_feed_filter_product_sale_price', $sale_price, $product, $this->config, false);
|
|
|
|
|
|
|
2626 |
}
|
2627 |
|
2628 |
/**
|
2649 |
$price) : $price;
|
2650 |
}
|
2651 |
|
2652 |
+
return apply_filters('woo_feed_filter_product_price_with_tax', $price_with_tax, $product, $this->config, true);
|
2653 |
}
|
2654 |
|
2655 |
/**
|
2676 |
$price) : $price;
|
2677 |
}
|
2678 |
|
2679 |
+
return apply_filters('woo_feed_filter_product_regular_price_with_tax', $current_price_with_tax, $product, $this->config, true);
|
|
|
|
|
|
|
2680 |
}
|
2681 |
|
2682 |
/**
|
2704 |
$sale_price_with_tax = $price > 0 ? $price : '';
|
2705 |
}
|
2706 |
|
2707 |
+
return apply_filters('woo_feed_filter_product_sale_price_with_tax', $sale_price_with_tax, $product, $this->config, true);
|
|
|
|
|
|
|
2708 |
}
|
2709 |
|
2710 |
/**
|
2823 |
}
|
2824 |
}
|
2825 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2826 |
/**
|
2827 |
* Get price for Iconic woocommerce-bundled-products
|
2828 |
*
|
includes/helper.php
CHANGED
@@ -4323,4 +4323,80 @@ if ( ! function_exists( 'woo_feed_wp_options' ) ) {
|
|
4323 |
}
|
4324 |
|
4325 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4326 |
// End of file helper.php.
|
4323 |
}
|
4324 |
|
4325 |
|
4326 |
+
if( ! function_exists('woo_feed_get_dynamic_discounted_product_price') ) {
|
4327 |
+
|
4328 |
+
/**
|
4329 |
+
* Get price with dynamic discount
|
4330 |
+
*
|
4331 |
+
* @param WC_Product $product product object
|
4332 |
+
* @param $price
|
4333 |
+
* @param $config
|
4334 |
+
* @param bool $tax product taxable or not
|
4335 |
+
* @return mixed $price
|
4336 |
+
*/
|
4337 |
+
function woo_feed_get_dynamic_discounted_product_price($price, $product, $config, $tax) {
|
4338 |
+
// When discount rules plugin by flycart is activated, bring the discounted price
|
4339 |
+
if ( is_plugin_active('woo-discount-rules/woo-discount-rules.php') ) {
|
4340 |
+
if( class_exists('Wdr\App\Controllers\Configuration') ) {
|
4341 |
+
$config = Wdr\App\Controllers\Configuration::getInstance()->getConfig('calculate_discount_from', 'sale_price');
|
4342 |
+
|
4343 |
+
if( isset($config) && !empty($config) ) {
|
4344 |
+
if( 'regular_price' === $config ) {
|
4345 |
+
$price = $product->get_regular_price();
|
4346 |
+
}else {
|
4347 |
+
$price = $product->get_sale_price();
|
4348 |
+
}
|
4349 |
+
} else {
|
4350 |
+
$price = $product->get_regular_price();
|
4351 |
+
}
|
4352 |
+
|
4353 |
+
//when tax is enabled
|
4354 |
+
if( $tax ) {
|
4355 |
+
$price = ( $product->is_taxable() && ! empty( $price ) ) ? woo_feed_get_price_with_tax(
|
4356 |
+
$product,
|
4357 |
+
$price
|
4358 |
+
) : $price;
|
4359 |
+
}
|
4360 |
+
|
4361 |
+
$discounted_price = apply_filters('advanced_woo_discount_rules_get_product_discount_price_from_custom_price', false, $product, 1, $price, 'discounted_price', true, true);
|
4362 |
+
if(false !== $discounted_price) {
|
4363 |
+
return $discounted_price;
|
4364 |
+
}
|
4365 |
+
}
|
4366 |
+
}
|
4367 |
+
|
4368 |
+
|
4369 |
+
// When dynamic discount pricing plugin by Acowebs is activated, bring the discounted price
|
4370 |
+
if( is_plugin_active('aco-woo-dynamic-pricing/start.php') ) {
|
4371 |
+
if( class_exists('AWDP_Discount') ) {
|
4372 |
+
if( !$tax ) {
|
4373 |
+
$price = AWDP_Discount::instance()->calculate_discount($product->get_price(), $product);
|
4374 |
+
if ($product->is_taxable()) {
|
4375 |
+
if (!wc_prices_include_tax()) {
|
4376 |
+
$tax_rates = WC_Tax::get_rates($product->get_tax_class());
|
4377 |
+
$taxes = WC_Tax::calc_tax($product->get_price(), $tax_rates, false);
|
4378 |
+
$tax_amount = WC_Tax::get_tax_total($taxes);
|
4379 |
+
|
4380 |
+
return $price - ( $price * $tax_amount ) / 100;
|
4381 |
+
}
|
4382 |
+
}
|
4383 |
+
} else {
|
4384 |
+
$slug_as_id = $product->get_data()['slug'];
|
4385 |
+
if( isset ( AWDP_Discount::instance()->wdp_discounted_price ) ) {
|
4386 |
+
$wdp_discount = AWDP_Discount::instance()->wdp_discounted_price;
|
4387 |
+
|
4388 |
+
if( isset( $wdp_discount[$slug_as_id] ) ) {
|
4389 |
+
$discounted_regular_price = $wdp_discount[$slug_as_id];
|
4390 |
+
$price = abs(wc_remove_number_precision($discounted_regular_price) );
|
4391 |
+
}
|
4392 |
+
}
|
4393 |
+
}
|
4394 |
+
}
|
4395 |
+
}
|
4396 |
+
|
4397 |
+
return $price;
|
4398 |
+
}
|
4399 |
+
}
|
4400 |
+
|
4401 |
+
|
4402 |
// End of file helper.php.
|
includes/hooks.php
CHANGED
@@ -31,6 +31,10 @@ add_filter( 'woo_feed_product_type_separator', 'woo_feed_product_taxonomy_term_s
|
|
31 |
add_filter( 'woo_feed_tags_separator', 'woo_feed_product_taxonomy_term_separator', 10, 2 );
|
32 |
add_filter( 'woo_feed_get_availability_attribute', 'woo_feed_get_availability_attribute_filter', 10, 3 );
|
33 |
|
|
|
|
|
|
|
|
|
34 |
// Product Loop End.
|
35 |
add_action( 'woo_feed_after_product_loop', 'woo_feed_remove_hooks_before_product_loop', 10, 2 );
|
36 |
|
31 |
add_filter( 'woo_feed_tags_separator', 'woo_feed_product_taxonomy_term_separator', 10, 2 );
|
32 |
add_filter( 'woo_feed_get_availability_attribute', 'woo_feed_get_availability_attribute_filter', 10, 3 );
|
33 |
|
34 |
+
// Discounted price filter
|
35 |
+
add_filter( 'woo_feed_filter_product_sale_price', 'woo_feed_get_dynamic_discounted_product_price', 9, 4 );
|
36 |
+
add_filter( 'woo_feed_filter_product_sale_price_with_tax', 'woo_feed_get_dynamic_discounted_product_price', 9, 4 );
|
37 |
+
|
38 |
// Product Loop End.
|
39 |
add_action( 'woo_feed_after_product_loop', 'woo_feed_remove_hooks_before_product_loop', 10, 2 );
|
40 |
|
woo-feed.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
-
* Version: 4.3.
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
@@ -35,15 +35,17 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|
35 |
if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
36 |
/**
|
37 |
* Plugin Version
|
|
|
38 |
* @var string
|
39 |
* @since 3.1.6
|
40 |
*/
|
41 |
-
define( 'WOO_FEED_FREE_VERSION', '4.3.
|
42 |
}
|
43 |
|
44 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
45 |
/**
|
46 |
* Plugin Base File
|
|
|
47 |
* @since 3.1.41
|
48 |
* @var string
|
49 |
*/
|
@@ -52,6 +54,7 @@ if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
|
52 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
53 |
/**
|
54 |
* Plugin Path with trailing slash
|
|
|
55 |
* @var string dirname( __FILE__ )
|
56 |
* * @since 3.1.6
|
57 |
*/
|
@@ -61,6 +64,7 @@ if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
|
61 |
if ( ! defined( 'WOO_FEED_FREE_ADMIN_PATH' ) ) {
|
62 |
/**
|
63 |
* Admin File Path with trailing slash
|
|
|
64 |
* @var string
|
65 |
* @since 3.1.6
|
66 |
*/
|
@@ -70,6 +74,7 @@ if ( ! defined( 'WOO_FEED_FREE_ADMIN_PATH' ) ) {
|
|
70 |
if ( ! defined( 'WOO_FEED_LIBS_PATH' ) ) {
|
71 |
/**
|
72 |
* Admin File Path with trailing slash
|
|
|
73 |
* @var string
|
74 |
*/
|
75 |
define( 'WOO_FEED_LIBS_PATH', WOO_FEED_FREE_PATH . 'libs/' );
|
@@ -77,6 +82,7 @@ if ( ! defined( 'WOO_FEED_LIBS_PATH' ) ) {
|
|
77 |
if ( ! defined( 'WOO_FEED_PLUGIN_URL' ) ) {
|
78 |
/**
|
79 |
* Plugin Directory URL
|
|
|
80 |
* @var string
|
81 |
* @since 3.1.37
|
82 |
*/
|
@@ -85,6 +91,7 @@ if ( ! defined( 'WOO_FEED_PLUGIN_URL' ) ) {
|
|
85 |
if ( ! defined( 'WOO_FEED_MIN_PHP_VERSION' ) ) {
|
86 |
/**
|
87 |
* Minimum PHP Version Supported
|
|
|
88 |
* @var string
|
89 |
* @since 3.1.41
|
90 |
*/
|
@@ -93,6 +100,7 @@ if ( ! defined( 'WOO_FEED_MIN_PHP_VERSION' ) ) {
|
|
93 |
if ( ! defined( 'WOO_FEED_MIN_WC_VERSION' ) ) {
|
94 |
/**
|
95 |
* Minimum WooCommerce Version Supported
|
|
|
96 |
* @var string
|
97 |
* @since 3.1.45
|
98 |
*/
|
@@ -101,6 +109,7 @@ if ( ! defined( 'WOO_FEED_MIN_WC_VERSION' ) ) {
|
|
101 |
if ( ! defined( 'WOO_FEED_PLUGIN_BASE_NAME' ) ) {
|
102 |
/**
|
103 |
* Plugin Base name..
|
|
|
104 |
* @var string
|
105 |
* @since 3.1.41
|
106 |
*/
|
@@ -111,6 +120,7 @@ if ( ! defined( 'WOO_FEED_LOG_DIR' ) ) {
|
|
111 |
$upload_dir = wp_get_upload_dir();
|
112 |
/**
|
113 |
* Log Directory
|
|
|
114 |
* @var string
|
115 |
* @since 3.2.1
|
116 |
*/
|
@@ -119,9 +129,10 @@ if ( ! defined( 'WOO_FEED_LOG_DIR' ) ) {
|
|
119 |
}
|
120 |
|
121 |
if ( ! defined( 'WOO_FEED_CACHE_TTL' ) ) {
|
122 |
-
$_cache_ttl = get_option( 'woo_feed_settings',
|
123 |
/**
|
124 |
* Cache TTL
|
|
|
125 |
* @var int
|
126 |
* @since 3.3.11
|
127 |
*/
|
@@ -165,19 +176,20 @@ if ( ! function_exists( 'run_woo_feed' ) ) {
|
|
165 |
*/
|
166 |
function run_woo_feed() {
|
167 |
$plugin = new Woo_Feed();
|
168 |
-
register_activation_hook( WOO_FEED_FREE_FILE,
|
169 |
register_shutdown_function( 'woo_feed_log_errors_at_shutdown' );
|
170 |
add_action( 'woo_feed_cleanup_logs', 'woo_feed_cleanup_logs' );
|
171 |
/**
|
172 |
* Ensure Feed Plugin runs only if WooCommerce loaded (installed and activated)
|
|
|
173 |
* @since 3.1.41
|
174 |
*/
|
175 |
-
add_action( 'plugins_loaded',
|
176 |
add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
|
177 |
add_action( 'admin_notices', 'wooFeed_To_ctxFeed' );
|
178 |
WooFeedWebAppickAPI::getInstance();
|
179 |
}
|
180 |
-
|
181 |
run_woo_feed();
|
182 |
}
|
183 |
|
@@ -207,7 +219,7 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
|
|
207 |
$feed = woo_feed_extract_feed_option_name( $feed );
|
208 |
$limit = isset( $_REQUEST['limit'] ) ? absint( $_REQUEST['limit'] ) : 200;
|
209 |
$getConfig = maybe_unserialize( get_option( 'wf_config' . $feed ) );
|
210 |
-
|
211 |
if ( woo_feed_wc_version_check( 3.2 ) ) {
|
212 |
if ( woo_feed_is_debugging_enabled() ) {
|
213 |
// clear log, set the pointer to the beginning of the file.
|
@@ -225,7 +237,7 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
|
|
225 |
do_action( 'after_woo_feed_get_product_information', $getConfig );
|
226 |
woo_feed_log_feed_process( $getConfig['filename'], sprintf( 'Total %d product found', is_array( $ids ) && ! empty( $ids ) ? count( $ids ) : 0 ) );
|
227 |
if ( is_array( $ids ) && ! empty( $ids ) ) {
|
228 |
-
|
229 |
if ( count( $ids ) > $limit ) {
|
230 |
$batches = array_chunk( $ids, $limit );
|
231 |
} else {
|
@@ -233,19 +245,19 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
|
|
233 |
}
|
234 |
woo_feed_log_feed_process( $getConfig['filename'], sprintf( 'Total %d batches', count( $batches ) ) );
|
235 |
wp_send_json_success(
|
236 |
-
|
237 |
'product' => $batches,
|
238 |
'total' => count( $ids ),
|
239 |
'success' => true,
|
240 |
-
|
241 |
);
|
242 |
wp_die();
|
243 |
} else {
|
244 |
wp_send_json_error(
|
245 |
-
|
246 |
'message' => esc_html__( 'No products found. Add product or change feed config before generate the feed.', 'woo-feed' ),
|
247 |
'success' => false,
|
248 |
-
|
249 |
);
|
250 |
wp_die();
|
251 |
}
|
@@ -256,10 +268,10 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
|
|
256 |
woo_feed_log_fatal_error( $message, $e );
|
257 |
}
|
258 |
wp_send_json_error(
|
259 |
-
|
260 |
'message' => esc_html__( 'Failed to fetch products.', 'woo-feed' ),
|
261 |
'success' => false,
|
262 |
-
|
263 |
);
|
264 |
wp_die();
|
265 |
}
|
@@ -270,18 +282,18 @@ if ( ! function_exists( 'woo_feed_get_product_information' ) ) {
|
|
270 |
if ( $products->publish > 0 ) {
|
271 |
$data['success'] = true;
|
272 |
wp_send_json_success(
|
273 |
-
|
274 |
'product' => $products->publish,
|
275 |
'success' => false,
|
276 |
-
|
277 |
);
|
278 |
wp_die();
|
279 |
} else {
|
280 |
wp_send_json_error(
|
281 |
-
|
282 |
'message' => esc_html__( 'No products found. Add product or change feed config before generate the feed.', 'woo-feed' ),
|
283 |
'success' => false,
|
284 |
-
|
285 |
);
|
286 |
wp_die();
|
287 |
}
|
@@ -292,6 +304,7 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
|
|
292 |
add_action( 'wp_ajax_make_batch_feed', 'woo_feed_make_batch_feed' );
|
293 |
/**
|
294 |
* Ajax Batch Callback
|
|
|
295 |
* @return void
|
296 |
*/
|
297 |
function woo_feed_make_batch_feed() {
|
@@ -305,16 +318,16 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
|
|
305 |
wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
|
306 |
die();
|
307 |
}
|
308 |
-
|
309 |
$feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
|
310 |
$feedInfo = get_option( 'wf_config' . $feedName, false );
|
311 |
-
|
312 |
if ( ! $feedInfo ) {
|
313 |
$getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
314 |
$feedInfo = $getFeedConfig['feedrules'];
|
315 |
}
|
316 |
-
|
317 |
-
$feedInfo['productIds'] = isset( $_REQUEST['products'] ) ? array_map( 'absint', $_REQUEST['products'] ) :
|
318 |
$offset = isset( $_REQUEST['loop'] ) ? absint( $_REQUEST['loop'] ) : 0;
|
319 |
if ( woo_feed_is_debugging_enabled() ) {
|
320 |
if ( 0 === $offset ) {
|
@@ -329,7 +342,7 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
|
|
329 |
woo_feed_log_feed_process( $feedInfo['filename'], $m );
|
330 |
}
|
331 |
}
|
332 |
-
|
333 |
if ( 0 === $offset ) {
|
334 |
woo_feed_unlink_tempFiles( $feedInfo, $feedName );
|
335 |
}
|
@@ -337,19 +350,19 @@ if ( ! function_exists( 'woo_feed_make_batch_feed' ) ) {
|
|
337 |
if ( $feed_data ) {
|
338 |
woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'Done Processing Loop %d.', ( $offset + 1 ) ) );
|
339 |
wp_send_json_success(
|
340 |
-
|
341 |
'success' => true,
|
342 |
'products' => 'yes',
|
343 |
-
|
344 |
);
|
345 |
} else {
|
346 |
woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'No Products found @ Loop %d.', $offset ) );
|
347 |
wp_send_json_success(
|
348 |
-
|
349 |
'success' => true,
|
350 |
'products' => 'no',
|
351 |
'config' => $feedInfo,
|
352 |
-
|
353 |
);
|
354 |
}
|
355 |
wp_die();
|
@@ -359,6 +372,7 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
359 |
add_action( 'wp_ajax_save_feed_file', 'woo_feed_save_feed_file' );
|
360 |
/**
|
361 |
* Ajax Response for Save Feed File
|
|
|
362 |
* @throws Exception
|
363 |
* @return void
|
364 |
*/
|
@@ -373,15 +387,15 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
373 |
wp_send_json_error( esc_html__( 'Invalid Feed.', 'woo-feed' ) );
|
374 |
die();
|
375 |
}
|
376 |
-
|
377 |
$feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
|
378 |
$info = get_option( 'wf_config' . $feedName, false );
|
379 |
-
|
380 |
if ( ! $info ) {
|
381 |
$getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
382 |
-
$info
|
383 |
}
|
384 |
-
|
385 |
$feedService = $info['provider'];
|
386 |
$type = $info['feedType'];
|
387 |
woo_feed_log_feed_process( $info['filename'], sprintf( 'Preparing Final Feed (%s) File...', $type ) );
|
@@ -399,28 +413,28 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
399 |
woo_feed_log_feed_process( $info['filename'], 'Unable to Get Footer Chunk' );
|
400 |
}
|
401 |
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
$upload_dir = wp_get_upload_dir();
|
421 |
$path = $upload_dir['basedir'] . '/woo-feed/' . $feedService . '/' . $type;
|
422 |
$saveFile = false;
|
423 |
-
$file
|
424 |
// Check If any products founds
|
425 |
if ( $string && ! empty( $string ) ) {
|
426 |
// Save File
|
@@ -429,7 +443,7 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
429 |
$save = new Woo_Feed_Savefile();
|
430 |
if ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
|
431 |
$saveFile = $save->saveValueFile( $path, $file, $string, $info, $type );
|
432 |
-
}else {
|
433 |
$saveFile = $save->saveFile( $path, $file, $string );
|
434 |
}
|
435 |
if ( $saveFile ) {
|
@@ -446,26 +460,26 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
446 |
} else {
|
447 |
woo_feed_log_feed_process( $info['filename'], 'No Product Found... Exiting File Save Process...' );
|
448 |
if ( isset( $info['fattribute'] ) && count( $info['fattribute'] ) ) {
|
449 |
-
$data =
|
450 |
'success' => false,
|
451 |
'message' => esc_html__( 'Products not found with your filtering condition.', 'woo-feed' ),
|
452 |
-
|
453 |
} else {
|
454 |
-
$data =
|
455 |
'success' => false,
|
456 |
'message' => esc_html__( 'No Product Found with your feed configuration. Please Update And Generate the feed again.', 'woo-feed' ),
|
457 |
-
|
458 |
}
|
459 |
wp_send_json_error( $data );
|
460 |
wp_die();
|
461 |
}
|
462 |
-
|
463 |
$feed_URL = woo_feed_get_file_url( $feedName, $feedService, $type );
|
464 |
// Save Info into database.
|
465 |
-
$feedInfo
|
466 |
'feedrules' => $info,
|
467 |
'url' => $feed_URL,
|
468 |
-
'last_updated' => date('Y-m-d H:i:s', strtotime( current_time( 'mysql' ) ) ),
|
469 |
);
|
470 |
$feedOldInfo = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
471 |
if ( isset( $feedOldInfo['status'] ) ) {
|
@@ -473,23 +487,23 @@ if ( ! function_exists( 'woo_feed_save_feed_file' ) ) {
|
|
473 |
} else {
|
474 |
$feedInfo['status'] = 1;
|
475 |
}
|
476 |
-
|
477 |
woo_feed_unlink_tempFiles( $info, $feedName );
|
478 |
-
|
479 |
woo_feed_log_feed_process( $info['filename'], 'Updating Feed Information.' );
|
480 |
-
|
481 |
update_option( 'wf_feed_' . $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
482 |
-
|
483 |
if ( $saveFile ) {
|
484 |
// FTP File Upload Info
|
485 |
$ftpEnabled = sanitize_text_field( $info['ftpenabled'] );
|
486 |
-
|
487 |
if ( $ftpEnabled ) {
|
488 |
woo_feed_handle_file_transfer( $file, $feedName . '.' . $type, $info );
|
489 |
}
|
490 |
-
|
491 |
-
$cat
|
492 |
-
$data
|
493 |
'info' => $feedInfo,
|
494 |
'url' => $feed_URL,
|
495 |
'cat' => $cat,
|
@@ -535,8 +549,8 @@ if ( ! function_exists( 'woo_feed_generate_batch_data' ) ) {
|
|
535 |
woo_feed_log_feed_process( $info['filename'], sprintf( 'Initializing merchant Class %s for %s', $feedService, $info['provider'] ) );
|
536 |
$feed = $products->getProducts();
|
537 |
if ( ! empty( $feed['body'] ) ) {
|
538 |
-
$feedBody
|
539 |
-
$prevFeed
|
540 |
if ( $prevFeed ) {
|
541 |
if ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
|
542 |
if ( ! empty( $prevFeed ) ) {
|
@@ -580,26 +594,26 @@ if ( ! function_exists( 'woo_feed_generate_new_feed' ) ) {
|
|
580 |
wp_die( esc_html__( 'Failed security check', 'woo-feed' ), 403 );
|
581 |
}
|
582 |
// Check feed type (file ext).
|
583 |
-
if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash(
|
584 |
wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
|
585 |
}
|
586 |
-
|
587 |
$fileName = woo_feed_save_feed_config_data( $_POST );
|
588 |
-
|
589 |
wp_safe_redirect(
|
590 |
add_query_arg(
|
591 |
-
|
592 |
'feed_created' => (int) false !== $fileName,
|
593 |
'feed_regenerate' => 1,
|
594 |
'feed_name' => $fileName ? $fileName : '',
|
595 |
-
|
596 |
admin_url( 'admin.php?page=webappick-manage-feeds' )
|
597 |
)
|
598 |
);
|
599 |
-
|
600 |
-
} else {
|
601 |
-
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-admin-display.php';
|
602 |
}
|
|
|
|
|
603 |
}
|
604 |
}
|
605 |
if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
@@ -611,7 +625,9 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
|
611 |
// @TODO use admin_post_ action for form handling.
|
612 |
// Manage action for category mapping.
|
613 |
if ( isset( $_GET['action'] ) && 'edit-feed' === $_GET['action'] ) {
|
614 |
-
if ( ! defined( 'WOO_FEED_EDIT_CONFIG' ) )
|
|
|
|
|
615 |
if ( count( $_POST ) && isset( $_POST['provider'], $_POST['feed_id'], $_POST['feed_option_name'], $_POST['filename'], $_POST['feedType'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
|
616 |
$nonce = isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ) : '';
|
617 |
if ( ! wp_verify_nonce( $nonce, 'wf_edit_feed' ) ) {
|
@@ -621,26 +637,25 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
|
621 |
if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash( $_POST['feedType'] ) ) ) ) {
|
622 |
wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
|
623 |
}
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
//
|
630 |
-
//
|
631 |
-
//
|
632 |
-
//
|
633 |
-
//
|
634 |
-
//
|
635 |
-
//
|
636 |
-
//
|
637 |
-
//
|
638 |
-
//
|
639 |
-
//
|
640 |
-
//
|
641 |
-
//
|
642 |
-
//
|
643 |
-
// }
|
644 |
// if form submitted via $_POST['edit-feed'] then only config and regenerate otherwise only update the config...
|
645 |
// no need to check other submit button ... eg. $_POST['save_feed_config']
|
646 |
$fileName = woo_feed_save_feed_config_data( $_POST, $feed_option_name, isset( $_POST['edit-feed'] ) );
|
@@ -648,11 +663,11 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
|
648 |
// @TODO this should be handled in admin_init action for proper redirection to work...
|
649 |
wp_safe_redirect(
|
650 |
add_query_arg(
|
651 |
-
|
652 |
'feed_updated' => (int) false !== $fileName,
|
653 |
'feed_regenerate' => (int) isset( $_POST['edit-feed'] ),
|
654 |
'feed_name' => $fileName ? $fileName : '',
|
655 |
-
|
656 |
admin_url( 'admin.php?page=webappick-manage-feeds' )
|
657 |
)
|
658 |
);
|
@@ -688,7 +703,7 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
|
688 |
if ( update_option( 'wf_schedule', sanitize_text_field( wp_unslash( $_POST['wf_schedule'] ) ), false ) ) {
|
689 |
wp_clear_scheduled_hook( 'woo_feed_update' );
|
690 |
add_filter( 'cron_schedules', 'Woo_Feed_installer::cron_schedules' ); // phpcs:ignore
|
691 |
-
//wp_schedule_event( time(), 'woo_feed_corn', 'woo_feed_update' );
|
692 |
$update = 1; // success.
|
693 |
} else {
|
694 |
$update = 2; // db fail.
|
@@ -699,7 +714,7 @@ if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
|
699 |
} else {
|
700 |
$update = 4; // invalid nonce.
|
701 |
}
|
702 |
-
wp_safe_redirect( add_query_arg(
|
703 |
die();
|
704 |
}
|
705 |
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-manage-list.php';
|
@@ -713,6 +728,7 @@ if ( ! function_exists( 'feed_merchant_view' ) ) {
|
|
713 |
add_action( 'wp_ajax_get_feed_merchant', 'feed_merchant_view' );
|
714 |
/**
|
715 |
* Ajax response for Create/Add Feed config table for selected Merchant/Provider
|
|
|
716 |
* @return void
|
717 |
*/
|
718 |
function feed_merchant_view() {
|
@@ -728,20 +744,22 @@ if ( ! function_exists( 'feed_merchant_view' ) ) {
|
|
728 |
wp_send_json_error( esc_html__( 'Invalid Merchant', 'woo-feed' ) );
|
729 |
wp_die();
|
730 |
}
|
731 |
-
$merchant
|
732 |
-
$feedRules
|
733 |
$wooFeedDropDown = new Woo_Feed_Dropdown();
|
734 |
ob_start();
|
735 |
require_once WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-edit-tabs.php';
|
736 |
-
wp_send_json_success(
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
|
|
|
|
745 |
wp_die();
|
746 |
}
|
747 |
}
|
@@ -750,6 +768,7 @@ if ( ! function_exists( 'woo_feed_get_google_categories' ) ) {
|
|
750 |
add_action( 'wp_ajax_get_google_categories', 'woo_feed_get_google_categories' );
|
751 |
/**
|
752 |
* Ajax Response for Google Category Dropdown Data
|
|
|
753 |
* @return void
|
754 |
*/
|
755 |
function woo_feed_get_google_categories() {
|
@@ -769,6 +788,7 @@ if ( ! function_exists( 'woo_feed_get_ssh2_status' ) ) {
|
|
769 |
add_action( 'wp_ajax_get_ssh2_status', 'woo_feed_get_ssh2_status' );
|
770 |
/**
|
771 |
* Ajax Response for ssh2 status check
|
|
|
772 |
* @return void
|
773 |
*/
|
774 |
function woo_feed_get_ssh2_status() {
|
@@ -794,6 +814,7 @@ if ( ! function_exists( 'woo_feed_update_feed_status' ) ) {
|
|
794 |
add_action( 'wp_ajax_update_feed_status', 'woo_feed_update_feed_status' );
|
795 |
/**
|
796 |
* Ajax Response for Update Feed Status
|
|
|
797 |
* @return void
|
798 |
*/
|
799 |
function woo_feed_update_feed_status() {
|
@@ -809,14 +830,14 @@ if ( ! function_exists( 'woo_feed_update_feed_status' ) ) {
|
|
809 |
$feedInfo = maybe_unserialize( get_option( $feedName ) );
|
810 |
$feedInfo['status'] = isset( $_POST['status'] ) && 1 === (int) $_POST['status'] ? 1 : 0;
|
811 |
|
812 |
-
|
813 |
if ( 1 === $feedInfo['status'] ) {
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
|
821 |
update_option( $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
822 |
wp_send_json_success( array( 'status' => true ) );
|
@@ -829,46 +850,47 @@ if ( ! function_exists( 'woo_feed_update_feed_status' ) ) {
|
|
829 |
|
830 |
// Render and handle status page options.
|
831 |
if ( ! function_exists( 'woo_feed_system_status' ) ) {
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
}
|
841 |
|
842 |
// Render and handle settings page options.
|
843 |
if ( ! function_exists( 'woo_feed_config_feed' ) ) {
|
844 |
/**
|
845 |
* Feed Settings Page
|
|
|
846 |
* @return void
|
847 |
*/
|
848 |
-
function woo_feed_config_feed(){
|
849 |
if ( isset( $_POST['wa_woo_feed_config'], $_POST['_wpnonce'] ) ) {
|
850 |
check_admin_referer( 'woo-feed-config' );
|
851 |
-
|
852 |
-
$data =
|
853 |
-
'per_batch'
|
854 |
-
'product_query_type'
|
855 |
-
'enable_error_debugging'
|
856 |
-
'cache_ttl'
|
857 |
-
'overridden_structured_data'
|
858 |
-
'disable_mpn'
|
859 |
-
'disable_brand'
|
860 |
-
|
861 |
-
|
862 |
-
|
863 |
-
|
864 |
-
|
865 |
-
|
866 |
-
|
867 |
woo_feed_save_options( $data );
|
868 |
|
869 |
-
// $currencyAPI = isset( $_POST['currency_api_code'] ) ? sanitize_text_field( $_POST['currency_api_code'] ) : '';
|
870 |
-
// update_option( 'woo_feed_currency_api_code', $currencyAPI, false );
|
871 |
-
|
872 |
if ( isset( $_POST['opt_in'] ) && 'on' === $_POST['opt_in'] ) {
|
873 |
WooFeedWebAppickAPI::getInstance()->trackerOptIn();
|
874 |
} else {
|
@@ -881,93 +903,98 @@ if ( ! function_exists( 'woo_feed_config_feed' ) ) {
|
|
881 |
if ( isset( $_POST['purge_feed_cache'] ) ) {
|
882 |
woo_feed_flush_cache_data();
|
883 |
}
|
884 |
-
|
885 |
wp_safe_redirect( admin_url( 'admin.php?page=webappick-feed-settings&settings_updated=1' ) );
|
886 |
die();
|
887 |
}
|
888 |
-
|
889 |
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-settings.php';
|
890 |
}
|
891 |
}
|
892 |
if ( ! function_exists( 'woo_feed_flash_cache_action' ) ) {
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
|
|
900 |
}
|
901 |
|
902 |
-
//add_action('woocommerce_after_add_attribute_fields','woo_feed_flash_cache_action');
|
903 |
-
//add_action('woocommerce_after_edit_attribute_fields','woo_feed_flash_cache_action');
|
904 |
|
905 |
|
906 |
// Suggest other plugins of webappick.
|
907 |
-
if ( ! class_exists('webappick_suggest_plugin') ) {
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
|
|
|
|
|
|
960 |
}
|
961 |
|
962 |
register_deactivation_hook( __FILE__, 'woo_feed_deactivate' );
|
963 |
if ( ! function_exists( 'woo_feed_deactivate' ) ) {
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
|
|
971 |
}
|
972 |
|
973 |
|
10 |
* Plugin Name: CTX Feed
|
11 |
* Plugin URI: https://webappick.com/
|
12 |
* Description: Easily generate woocommerce product feed for any marketing channel like Google Shopping(Merchant), Facebook Remarketing, Bing, eBay & more. Support 100+ Merchants.
|
13 |
+
* Version: 4.3.54
|
14 |
* Author: WebAppick
|
15 |
* Author URI: https://webappick.com/
|
16 |
* License: GPL v2
|
35 |
if ( ! defined( 'WOO_FEED_FREE_VERSION' ) ) {
|
36 |
/**
|
37 |
* Plugin Version
|
38 |
+
*
|
39 |
* @var string
|
40 |
* @since 3.1.6
|
41 |
*/
|
42 |
+
define( 'WOO_FEED_FREE_VERSION', '4.3.54' );
|
43 |
}
|
44 |
|
45 |
if ( ! defined( 'WOO_FEED_FREE_FILE' ) ) {
|
46 |
/**
|
47 |
* Plugin Base File
|
48 |
+
*
|
49 |
* @since 3.1.41
|
50 |
* @var string
|
51 |
*/
|
54 |
if ( ! defined( 'WOO_FEED_FREE_PATH' ) ) {
|
55 |
/**
|
56 |
* Plugin Path with trailing slash
|
57 |
+
*
|
58 |
* @var string dirname( __FILE__ )
|
59 |
* * @since 3.1.6
|
60 |
*/
|
64 |
if ( ! defined( 'WOO_FEED_FREE_ADMIN_PATH' ) ) {
|
65 |
/**
|
66 |
* Admin File Path with trailing slash
|
67 |
+
*
|
68 |
* @var string
|
69 |
* @since 3.1.6
|
70 |
*/
|
74 |
if ( ! defined( 'WOO_FEED_LIBS_PATH' ) ) {
|
75 |
/**
|
76 |
* Admin File Path with trailing slash
|
77 |
+
*
|
78 |
* @var string
|
79 |
*/
|
80 |
define( 'WOO_FEED_LIBS_PATH', WOO_FEED_FREE_PATH . 'libs/' );
|
82 |
if ( ! defined( 'WOO_FEED_PLUGIN_URL' ) ) {
|
83 |
/**
|
84 |
* Plugin Directory URL
|
85 |
+
*
|
86 |
* @var string
|
87 |
* @since 3.1.37
|
88 |
*/
|
91 |
if ( ! defined( 'WOO_FEED_MIN_PHP_VERSION' ) ) {
|
92 |
/**
|
93 |
* Minimum PHP Version Supported
|
94 |
+
*
|
95 |
* @var string
|
96 |
* @since 3.1.41
|
97 |
*/
|
100 |
if ( ! defined( 'WOO_FEED_MIN_WC_VERSION' ) ) {
|
101 |
/**
|
102 |
* Minimum WooCommerce Version Supported
|
103 |
+
*
|
104 |
* @var string
|
105 |
* @since 3.1.45
|
106 |
*/
|
109 |
if ( ! defined( 'WOO_FEED_PLUGIN_BASE_NAME' ) ) {
|
110 |
/**
|
111 |
* Plugin Base name..
|
112 |
+
*
|
113 |
* @var string
|
114 |
* @since 3.1.41
|
115 |
*/
|
120 |
$upload_dir = wp_get_upload_dir();
|
121 |
/**
|
122 |
* Log Directory
|
123 |
+
*
|
124 |
* @var string
|
125 |
* @since 3.2.1
|
126 |
*/
|
129 |
}
|
130 |
|
131 |
if ( ! defined( 'WOO_FEED_CACHE_TTL' ) ) {
|
132 |
+
$_cache_ttl = get_option( 'woo_feed_settings', array( 'cache_ttl' => 6 * HOUR_IN_SECONDS ) );
|
133 |
/**
|
134 |
* Cache TTL
|
135 |
+
*
|
136 |
* @var int
|
137 |
* @since 3.3.11
|
138 |
*/
|
176 |
*/
|
177 |
function run_woo_feed() {
|
178 |
$plugin = new Woo_Feed();
|
179 |
+
register_activation_hook( WOO_FEED_FREE_FILE, array( 'Woo_Feed_installer', 'install' ) );
|
180 |
register_shutdown_function( 'woo_feed_log_errors_at_shutdown' );
|
181 |
add_action( 'woo_feed_cleanup_logs', 'woo_feed_cleanup_logs' );
|
182 |
/**
|
183 |
* Ensure Feed Plugin runs only if WooCommerce loaded (installed and activated)
|
184 |
+
*
|
185 |
* @since 3.1.41
|
186 |
*/
|
187 |
+
add_action( 'plugins_loaded', array( $plugin, 'run' ), PHP_INT_MAX );
|
188 |
add_action( 'admin_notices', 'wooFeed_Admin_Notices' );
|
189 |
add_action( 'admin_notices', 'wooFeed_To_ctxFeed' );
|
190 |
WooFeedWebAppickAPI::getInstance();
|
191 |
}
|
192 |
+
|
193 |
run_woo_feed();
|
194 |
}
|
195 |
|
219 |
$feed = woo_feed_extract_feed_option_name( $feed );
|
220 |
$limit = isset( $_REQUEST['limit'] ) ? absint( $_REQUEST['limit'] ) : 200;
|
221 |
$getConfig = maybe_unserialize( get_option( 'wf_config' . $feed ) );
|
222 |
+
|
223 |
if ( woo_feed_wc_version_check( 3.2 ) ) {
|
224 |
if ( woo_feed_is_debugging_enabled() ) {
|
225 |
// clear log, set the pointer to the beginning of the file.
|
237 |
do_action( 'after_woo_feed_get_product_information', $getConfig );
|
238 |
woo_feed_log_feed_process( $getConfig['filename'], sprintf( 'Total %d product found', is_array( $ids ) && ! empty( $ids ) ? count( $ids ) : 0 ) );
|
239 |
if ( is_array( $ids ) && ! empty( $ids ) ) {
|
240 |
+
rsort( $ids ); // sorting ids in descending order
|
241 |
if ( count( $ids ) > $limit ) {
|
242 |
$batches = array_chunk( $ids, $limit );
|
243 |
} else {
|
245 |
}
|
246 |
woo_feed_log_feed_process( $getConfig['filename'], sprintf( 'Total %d batches', count( $batches ) ) );
|
247 |
wp_send_json_success(
|
248 |
+
array(
|
249 |
'product' => $batches,
|
250 |
'total' => count( $ids ),
|
251 |
'success' => true,
|
252 |
+
)
|
253 |
);
|
254 |
wp_die();
|
255 |
} else {
|
256 |
wp_send_json_error(
|
257 |
+
array(
|
258 |
'message' => esc_html__( 'No products found. Add product or change feed config before generate the feed.', 'woo-feed' ),
|
259 |
'success' => false,
|
260 |
+
)
|
261 |
);
|
262 |
wp_die();
|
263 |
}
|
268 |
woo_feed_log_fatal_error( $message, $e );
|
269 |
}
|
270 |
wp_send_json_error(
|
271 |
+
array(
|
272 |
'message' => esc_html__( 'Failed to fetch products.', 'woo-feed' ),
|
273 |
'success' => false,
|
274 |
+
)
|
275 |
);
|
276 |
wp_die();
|
277 |
}
|
282 |
if ( $products->publish > 0 ) {
|
283 |
$data['success'] = true;
|
284 |
wp_send_json_success(
|
285 |
+
array(
|
286 |
'product' => $products->publish,
|
287 |
'success' => false,
|
288 |
+
)
|
289 |
);
|
290 |
wp_die();
|
291 |
} else {
|
292 |
wp_send_json_error(
|
293 |
+
array(
|
294 |
'message' => esc_html__( 'No products found. Add product or change feed config before generate the feed.', 'woo-feed' ),
|
295 |
'success' => false,
|
296 |
+
)
|
297 |
);
|
298 |
wp_die();
|
299 |
}
|
304 |
add_action( 'wp_ajax_make_batch_feed', 'woo_feed_make_batch_feed' );
|
305 |
/**
|
306 |
* Ajax Batch Callback
|
307 |
+
*
|
308 |
* @return void
|
309 |
*/
|
310 |
function woo_feed_make_batch_feed() {
|
318 |
wp_send_json_error( esc_html__( 'Invalid Request.', 'woo-feed' ) );
|
319 |
die();
|
320 |
}
|
321 |
+
|
322 |
$feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
|
323 |
$feedInfo = get_option( 'wf_config' . $feedName, false );
|
324 |
+
|
325 |
if ( ! $feedInfo ) {
|
326 |
$getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
327 |
$feedInfo = $getFeedConfig['feedrules'];
|
328 |
}
|
329 |
+
|
330 |
+
$feedInfo['productIds'] = isset( $_REQUEST['products'] ) ? array_map( 'absint', $_REQUEST['products'] ) : array();
|
331 |
$offset = isset( $_REQUEST['loop'] ) ? absint( $_REQUEST['loop'] ) : 0;
|
332 |
if ( woo_feed_is_debugging_enabled() ) {
|
333 |
if ( 0 === $offset ) {
|
342 |
woo_feed_log_feed_process( $feedInfo['filename'], $m );
|
343 |
}
|
344 |
}
|
345 |
+
|
346 |
if ( 0 === $offset ) {
|
347 |
woo_feed_unlink_tempFiles( $feedInfo, $feedName );
|
348 |
}
|
350 |
if ( $feed_data ) {
|
351 |
woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'Done Processing Loop %d.', ( $offset + 1 ) ) );
|
352 |
wp_send_json_success(
|
353 |
+
array(
|
354 |
'success' => true,
|
355 |
'products' => 'yes',
|
356 |
+
)
|
357 |
);
|
358 |
} else {
|
359 |
woo_feed_log_feed_process( $feedInfo['filename'], sprintf( 'No Products found @ Loop %d.', $offset ) );
|
360 |
wp_send_json_success(
|
361 |
+
array(
|
362 |
'success' => true,
|
363 |
'products' => 'no',
|
364 |
'config' => $feedInfo,
|
365 |
+
)
|
366 |
);
|
367 |
}
|
368 |
wp_die();
|
372 |
add_action( 'wp_ajax_save_feed_file', 'woo_feed_save_feed_file' );
|
373 |
/**
|
374 |
* Ajax Response for Save Feed File
|
375 |
+
*
|
376 |
* @throws Exception
|
377 |
* @return void
|
378 |
*/
|
387 |
wp_send_json_error( esc_html__( 'Invalid Feed.', 'woo-feed' ) );
|
388 |
die();
|
389 |
}
|
390 |
+
|
391 |
$feedName = woo_feed_extract_feed_option_name( sanitize_text_field( wp_unslash( $_REQUEST['feed'] ) ) );
|
392 |
$info = get_option( 'wf_config' . $feedName, false );
|
393 |
+
|
394 |
if ( ! $info ) {
|
395 |
$getFeedConfig = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
396 |
+
$info = $getFeedConfig['feedrules'];
|
397 |
}
|
398 |
+
|
399 |
$feedService = $info['provider'];
|
400 |
$type = $info['feedType'];
|
401 |
woo_feed_log_feed_process( $info['filename'], sprintf( 'Preparing Final Feed (%s) File...', $type ) );
|
413 |
woo_feed_log_feed_process( $info['filename'], 'Unable to Get Footer Chunk' );
|
414 |
}
|
415 |
|
416 |
+
// make file xml string
|
417 |
+
if ( isset( $info['provider'] ) && 'googlereview' === $info['provider'] ) {
|
418 |
+
// review template xml string
|
419 |
+
$string = $feedHeader . $feedBody . $feedFooter;
|
420 |
+
|
421 |
+
} else {
|
422 |
+
if ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
|
423 |
+
$csvHead[0] = $feedHeader;
|
424 |
+
if ( ! empty( $csvHead ) && ! empty( $feedBody ) ) {
|
425 |
+
$string = array_merge( $csvHead, $feedBody );
|
426 |
+
} else {
|
427 |
+
$string = array();
|
428 |
+
}
|
429 |
+
} else {
|
430 |
+
$string = $feedHeader . $feedBody . $feedFooter;
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
$upload_dir = wp_get_upload_dir();
|
435 |
$path = $upload_dir['basedir'] . '/woo-feed/' . $feedService . '/' . $type;
|
436 |
$saveFile = false;
|
437 |
+
$file = '';
|
438 |
// Check If any products founds
|
439 |
if ( $string && ! empty( $string ) ) {
|
440 |
// Save File
|
443 |
$save = new Woo_Feed_Savefile();
|
444 |
if ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
|
445 |
$saveFile = $save->saveValueFile( $path, $file, $string, $info, $type );
|
446 |
+
} else {
|
447 |
$saveFile = $save->saveFile( $path, $file, $string );
|
448 |
}
|
449 |
if ( $saveFile ) {
|
460 |
} else {
|
461 |
woo_feed_log_feed_process( $info['filename'], 'No Product Found... Exiting File Save Process...' );
|
462 |
if ( isset( $info['fattribute'] ) && count( $info['fattribute'] ) ) {
|
463 |
+
$data = array(
|
464 |
'success' => false,
|
465 |
'message' => esc_html__( 'Products not found with your filtering condition.', 'woo-feed' ),
|
466 |
+
);
|
467 |
} else {
|
468 |
+
$data = array(
|
469 |
'success' => false,
|
470 |
'message' => esc_html__( 'No Product Found with your feed configuration. Please Update And Generate the feed again.', 'woo-feed' ),
|
471 |
+
);
|
472 |
}
|
473 |
wp_send_json_error( $data );
|
474 |
wp_die();
|
475 |
}
|
476 |
+
|
477 |
$feed_URL = woo_feed_get_file_url( $feedName, $feedService, $type );
|
478 |
// Save Info into database.
|
479 |
+
$feedInfo = array(
|
480 |
'feedrules' => $info,
|
481 |
'url' => $feed_URL,
|
482 |
+
'last_updated' => date( 'Y-m-d H:i:s', strtotime( current_time( 'mysql' ) ) ),
|
483 |
);
|
484 |
$feedOldInfo = maybe_unserialize( get_option( 'wf_feed_' . $feedName ) );
|
485 |
if ( isset( $feedOldInfo['status'] ) ) {
|
487 |
} else {
|
488 |
$feedInfo['status'] = 1;
|
489 |
}
|
490 |
+
|
491 |
woo_feed_unlink_tempFiles( $info, $feedName );
|
492 |
+
|
493 |
woo_feed_log_feed_process( $info['filename'], 'Updating Feed Information.' );
|
494 |
+
|
495 |
update_option( 'wf_feed_' . $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
496 |
+
|
497 |
if ( $saveFile ) {
|
498 |
// FTP File Upload Info
|
499 |
$ftpEnabled = sanitize_text_field( $info['ftpenabled'] );
|
500 |
+
|
501 |
if ( $ftpEnabled ) {
|
502 |
woo_feed_handle_file_transfer( $file, $feedName . '.' . $type, $info );
|
503 |
}
|
504 |
+
|
505 |
+
$cat = woo_feed_check_google_category( $feedInfo );
|
506 |
+
$data = array(
|
507 |
'info' => $feedInfo,
|
508 |
'url' => $feed_URL,
|
509 |
'cat' => $cat,
|
549 |
woo_feed_log_feed_process( $info['filename'], sprintf( 'Initializing merchant Class %s for %s', $feedService, $info['provider'] ) );
|
550 |
$feed = $products->getProducts();
|
551 |
if ( ! empty( $feed['body'] ) ) {
|
552 |
+
$feedBody = 'wf_store_feed_body_info_' . $feedSlug;
|
553 |
+
$prevFeed = woo_feed_get_batch_feed_info( $feedService, $type, $feedBody );
|
554 |
if ( $prevFeed ) {
|
555 |
if ( 'csv' === $type || 'tsv' === $type || 'xls' === $type ) {
|
556 |
if ( ! empty( $prevFeed ) ) {
|
594 |
wp_die( esc_html__( 'Failed security check', 'woo-feed' ), 403 );
|
595 |
}
|
596 |
// Check feed type (file ext).
|
597 |
+
if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash( $_POST['feedType'] ) ) ) ) {
|
598 |
wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
|
599 |
}
|
600 |
+
|
601 |
$fileName = woo_feed_save_feed_config_data( $_POST );
|
602 |
+
|
603 |
wp_safe_redirect(
|
604 |
add_query_arg(
|
605 |
+
array(
|
606 |
'feed_created' => (int) false !== $fileName,
|
607 |
'feed_regenerate' => 1,
|
608 |
'feed_name' => $fileName ? $fileName : '',
|
609 |
+
),
|
610 |
admin_url( 'admin.php?page=webappick-manage-feeds' )
|
611 |
)
|
612 |
);
|
613 |
+
wp_die();
|
|
|
|
|
614 |
}
|
615 |
+
|
616 |
+
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-admin-display.php';
|
617 |
}
|
618 |
}
|
619 |
if ( ! function_exists( 'woo_feed_manage_feed' ) ) {
|
625 |
// @TODO use admin_post_ action for form handling.
|
626 |
// Manage action for category mapping.
|
627 |
if ( isset( $_GET['action'] ) && 'edit-feed' === $_GET['action'] ) {
|
628 |
+
if ( ! defined( 'WOO_FEED_EDIT_CONFIG' ) ) {
|
629 |
+
define( 'WOO_FEED_EDIT_CONFIG', true );
|
630 |
+
}
|
631 |
if ( count( $_POST ) && isset( $_POST['provider'], $_POST['feed_id'], $_POST['feed_option_name'], $_POST['filename'], $_POST['feedType'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
|
632 |
$nonce = isset( $_POST['_wpnonce'] ) && ! empty( $_POST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) ) : '';
|
633 |
if ( ! wp_verify_nonce( $nonce, 'wf_edit_feed' ) ) {
|
637 |
if ( ! woo_feed_check_valid_extension( sanitize_text_field( wp_unslash( $_POST['feedType'] ) ) ) ) {
|
638 |
wp_die( esc_html__( 'Invalid Feed Type!', 'woo-feed' ), 400 );
|
639 |
}
|
640 |
+
|
641 |
+
// check if name is changed... save as new, rename feed isn't implemented ... it can be...
|
642 |
+
// delete old feed save data as new feed.
|
643 |
+
$feed_option_name = ( isset( $_POST['feed_option_name'] ) && ! empty( $_POST['feed_option_name'] ) ) ? sanitize_text_field( wp_unslash( $_POST['feed_option_name'] ) ) : null;
|
644 |
+
// if ( $_POST['filename'] !== $_POST['feed_option_name'] ) {
|
645 |
+
// $feed_option_name = ( isset( $_POST['filename'] ) && ! empty( $_POST['filename'] ) ) ? sanitize_text_field( $_POST['filename'] ) : null;
|
646 |
+
// Delete old feed info & file
|
647 |
+
// delete_option( 'wf_feed_' . $_POST['feed_option_name'] );
|
648 |
+
// delete_option( 'wf_config' . $_POST['feed_option_name'] );
|
649 |
+
//
|
650 |
+
// $upload_dir = wp_get_upload_dir();
|
651 |
+
// $feedService = $_POST['provider'];
|
652 |
+
// $type = $_POST['feedType'];
|
653 |
+
// $old_name = $_POST['feed_option_name'];
|
654 |
+
// $path = $upload_dir['basedir'] . '/woo-feed/' . $feedService . '/' . $type . '/' . $old_name . '.' . $type;
|
655 |
+
// if ( file_exists( $path ) ) {
|
656 |
+
// unlink( $path );
|
657 |
+
// }
|
658 |
+
// }
|
|
|
659 |
// if form submitted via $_POST['edit-feed'] then only config and regenerate otherwise only update the config...
|
660 |
// no need to check other submit button ... eg. $_POST['save_feed_config']
|
661 |
$fileName = woo_feed_save_feed_config_data( $_POST, $feed_option_name, isset( $_POST['edit-feed'] ) );
|
663 |
// @TODO this should be handled in admin_init action for proper redirection to work...
|
664 |
wp_safe_redirect(
|
665 |
add_query_arg(
|
666 |
+
array(
|
667 |
'feed_updated' => (int) false !== $fileName,
|
668 |
'feed_regenerate' => (int) isset( $_POST['edit-feed'] ),
|
669 |
'feed_name' => $fileName ? $fileName : '',
|
670 |
+
),
|
671 |
admin_url( 'admin.php?page=webappick-manage-feeds' )
|
672 |
)
|
673 |
);
|
703 |
if ( update_option( 'wf_schedule', sanitize_text_field( wp_unslash( $_POST['wf_schedule'] ) ), false ) ) {
|
704 |
wp_clear_scheduled_hook( 'woo_feed_update' );
|
705 |
add_filter( 'cron_schedules', 'Woo_Feed_installer::cron_schedules' ); // phpcs:ignore
|
706 |
+
// wp_schedule_event( time(), 'woo_feed_corn', 'woo_feed_update' );
|
707 |
$update = 1; // success.
|
708 |
} else {
|
709 |
$update = 2; // db fail.
|
714 |
} else {
|
715 |
$update = 4; // invalid nonce.
|
716 |
}
|
717 |
+
wp_safe_redirect( add_query_arg( array( 'schedule_updated' => $update ), admin_url( 'admin.php?page=webappick-manage-feeds' ) ) );
|
718 |
die();
|
719 |
}
|
720 |
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-manage-list.php';
|
728 |
add_action( 'wp_ajax_get_feed_merchant', 'feed_merchant_view' );
|
729 |
/**
|
730 |
* Ajax response for Create/Add Feed config table for selected Merchant/Provider
|
731 |
+
*
|
732 |
* @return void
|
733 |
*/
|
734 |
function feed_merchant_view() {
|
744 |
wp_send_json_error( esc_html__( 'Invalid Merchant', 'woo-feed' ) );
|
745 |
wp_die();
|
746 |
}
|
747 |
+
$merchant = new Woo_Feed_Merchant( $provider );
|
748 |
+
$feedRules = $merchant->get_template();
|
749 |
$wooFeedDropDown = new Woo_Feed_Dropdown();
|
750 |
ob_start();
|
751 |
require_once WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-edit-tabs.php';
|
752 |
+
wp_send_json_success(
|
753 |
+
array(
|
754 |
+
'tabs' => ob_get_clean(),
|
755 |
+
'feedType' => strtolower( $merchant->get_feed_types( true ) ),
|
756 |
+
'itemsWrapper' => $feedRules['itemsWrapper'],
|
757 |
+
'itemWrapper' => $feedRules['itemWrapper'],
|
758 |
+
'delimiter' => $feedRules['delimiter'],
|
759 |
+
'enclosure' => $feedRules['enclosure'],
|
760 |
+
'extraHeader' => $feedRules['extraHeader'],
|
761 |
+
)
|
762 |
+
);
|
763 |
wp_die();
|
764 |
}
|
765 |
}
|
768 |
add_action( 'wp_ajax_get_google_categories', 'woo_feed_get_google_categories' );
|
769 |
/**
|
770 |
* Ajax Response for Google Category Dropdown Data
|
771 |
+
*
|
772 |
* @return void
|
773 |
*/
|
774 |
function woo_feed_get_google_categories() {
|
788 |
add_action( 'wp_ajax_get_ssh2_status', 'woo_feed_get_ssh2_status' );
|
789 |
/**
|
790 |
* Ajax Response for ssh2 status check
|
791 |
+
*
|
792 |
* @return void
|
793 |
*/
|
794 |
function woo_feed_get_ssh2_status() {
|
814 |
add_action( 'wp_ajax_update_feed_status', 'woo_feed_update_feed_status' );
|
815 |
/**
|
816 |
* Ajax Response for Update Feed Status
|
817 |
+
*
|
818 |
* @return void
|
819 |
*/
|
820 |
function woo_feed_update_feed_status() {
|
830 |
$feedInfo = maybe_unserialize( get_option( $feedName ) );
|
831 |
$feedInfo['status'] = isset( $_POST['status'] ) && 1 === (int) $_POST['status'] ? 1 : 0;
|
832 |
|
833 |
+
$feed_slug = str_replace( 'wf_feed_', 'wf_config', $feedName );
|
834 |
if ( 1 === $feedInfo['status'] ) {
|
835 |
+
if ( ! wp_next_scheduled( 'woo_feed_update_single_feed', array( $feed_slug ) ) ) {
|
836 |
+
wp_schedule_event( time(), 'woo_feed_corn', 'woo_feed_update_single_feed', array( $feed_slug ) );
|
837 |
+
}
|
838 |
+
} else {
|
839 |
+
wp_clear_scheduled_hook( 'woo_feed_update_single_feed', array( $feed_slug ) );
|
840 |
+
}
|
841 |
|
842 |
update_option( $feedName, serialize( $feedInfo ), false ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
|
843 |
wp_send_json_success( array( 'status' => true ) );
|
850 |
|
851 |
// Render and handle status page options.
|
852 |
if ( ! function_exists( 'woo_feed_system_status' ) ) {
|
853 |
+
/**
|
854 |
+
* Feed Status Page
|
855 |
+
*
|
856 |
+
* @return void
|
857 |
+
*/
|
858 |
+
function woo_feed_system_status() {
|
859 |
+
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-status.php';
|
860 |
+
}
|
861 |
}
|
862 |
|
863 |
// Render and handle settings page options.
|
864 |
if ( ! function_exists( 'woo_feed_config_feed' ) ) {
|
865 |
/**
|
866 |
* Feed Settings Page
|
867 |
+
*
|
868 |
* @return void
|
869 |
*/
|
870 |
+
function woo_feed_config_feed() {
|
871 |
if ( isset( $_POST['wa_woo_feed_config'], $_POST['_wpnonce'] ) ) {
|
872 |
check_admin_referer( 'woo-feed-config' );
|
873 |
+
|
874 |
+
$data = array(
|
875 |
+
'per_batch' => isset( $_POST['batch_limit'] ) ? absint( $_POST['batch_limit'] ) : '',
|
876 |
+
'product_query_type' => isset( $_POST['product_query_type'] ) ? sanitize_text_field( wp_unslash( $_POST['product_query_type'] ) ) : '',
|
877 |
+
'enable_error_debugging' => isset( $_POST['enable_error_debugging'] ) ? sanitize_text_field( wp_unslash( $_POST['enable_error_debugging'] ) ) : '',
|
878 |
+
'cache_ttl' => isset( $_POST['cache_ttl'] ) ? absint( $_POST['cache_ttl'] ) : '',
|
879 |
+
'overridden_structured_data' => isset( $_POST['overridden_structured_data'] ) ? sanitize_text_field( wp_unslash( $_POST['overridden_structured_data'] ) ) : '',
|
880 |
+
'disable_mpn' => isset( $_POST['disable_mpn'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_mpn'] ) ) : '',
|
881 |
+
'disable_brand' => isset( $_POST['disable_brand'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_brand'] ) ) : '',
|
882 |
+
'disable_pixel' => isset( $_POST['disable_pixel'] ) ? sanitize_text_field( wp_unslash( $_POST['disable_pixel'] )) : '',
|
883 |
+
'pixel_id' => isset( $_POST['pixel_id'] ) ? sanitize_text_field( wp_unslash( $_POST['pixel_id'] )) : '',
|
884 |
+
'allow_all_shipping' => isset( $_POST['allow_all_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['allow_all_shipping'] ) ) : '',
|
885 |
+
'only_free_shipping' => isset( $_POST['only_free_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_free_shipping'] ) ) : '',
|
886 |
+
'only_local_pickup_shipping' => isset( $_POST['only_local_pickup_shipping'] ) ? sanitize_text_field( wp_unslash( $_POST['only_local_pickup_shipping'] ) ) : '',
|
887 |
+
);
|
888 |
+
|
889 |
woo_feed_save_options( $data );
|
890 |
|
891 |
+
// $currencyAPI = isset( $_POST['currency_api_code'] ) ? sanitize_text_field( $_POST['currency_api_code'] ) : '';
|
892 |
+
// update_option( 'woo_feed_currency_api_code', $currencyAPI, false );
|
893 |
+
|
894 |
if ( isset( $_POST['opt_in'] ) && 'on' === $_POST['opt_in'] ) {
|
895 |
WooFeedWebAppickAPI::getInstance()->trackerOptIn();
|
896 |
} else {
|
903 |
if ( isset( $_POST['purge_feed_cache'] ) ) {
|
904 |
woo_feed_flush_cache_data();
|
905 |
}
|
906 |
+
|
907 |
wp_safe_redirect( admin_url( 'admin.php?page=webappick-feed-settings&settings_updated=1' ) );
|
908 |
die();
|
909 |
}
|
910 |
+
|
911 |
require WOO_FEED_FREE_ADMIN_PATH . 'partials/woo-feed-settings.php';
|
912 |
}
|
913 |
}
|
914 |
if ( ! function_exists( 'woo_feed_flash_cache_action' ) ) {
|
915 |
+
/**
|
916 |
+
* Flash cache after specific actions
|
917 |
+
*
|
918 |
+
* @return void
|
919 |
+
*/
|
920 |
+
function woo_feed_flash_cache_action() {
|
921 |
+
woo_feed_flush_cache_data();
|
922 |
+
}
|
923 |
}
|
924 |
|
925 |
+
// add_action('woocommerce_after_add_attribute_fields','woo_feed_flash_cache_action');
|
926 |
+
// add_action('woocommerce_after_edit_attribute_fields','woo_feed_flash_cache_action');
|
927 |
|
928 |
|
929 |
// Suggest other plugins of webappick.
|
930 |
+
if ( ! class_exists( 'webappick_suggest_plugin' ) ) {
|
931 |
+
class webappick_suggest_plugin {
|
932 |
+
|
933 |
+
static function init() {
|
934 |
+
if ( is_admin() ) {
|
935 |
+
add_filter( 'install_plugins_table_api_args_featured', array( __CLASS__, 'featured_plugins_tab' ) );
|
936 |
+
}
|
937 |
+
} // init
|
938 |
+
// add our plugins to recommended list
|
939 |
+
static function plugins_api_result( $res, $action, $args ) {
|
940 |
+
remove_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 1 );
|
941 |
+
$res = self::add_plugin_favs( 'webappick-pdf-invoice-for-woocommerce', $res );
|
942 |
+
return $res;
|
943 |
+
} // plugins_api_result
|
944 |
+
// helper function for adding plugins to fav list
|
945 |
+
static function featured_plugins_tab( $args ) {
|
946 |
+
add_filter( 'plugins_api_result', array( __CLASS__, 'plugins_api_result' ), 10, 3 );
|
947 |
+
return $args;
|
948 |
+
} // featured_plugins_tab
|
949 |
+
// add single plugin to list of favs
|
950 |
+
static function add_plugin_favs( $plugin_slug, $res ) {
|
951 |
+
if ( ! empty( $res->plugins ) && is_array( $res->plugins ) ) {
|
952 |
+
foreach ( $res->plugins as $plugin ) {
|
953 |
+
if ( is_object( $plugin ) && ! empty( $plugin->slug ) && $plugin->slug === $plugin_slug ) {
|
954 |
+
return $res;
|
955 |
+
}
|
956 |
+
} // foreach
|
957 |
+
}
|
958 |
+
$plugin_info = get_transient( 'wf-plugin-info-' . $plugin_slug );
|
959 |
+
if ( $plugin_info ) {
|
960 |
+
array_unshift( $res->plugins, $plugin_info );
|
961 |
+
} else {
|
962 |
+
$plugin_info = plugins_api(
|
963 |
+
'plugin_information',
|
964 |
+
array(
|
965 |
+
'slug' => $plugin_slug,
|
966 |
+
'is_ssl' => is_ssl(),
|
967 |
+
'fields' => array(
|
968 |
+
'banners' => true,
|
969 |
+
'reviews' => true,
|
970 |
+
'downloaded' => true,
|
971 |
+
'active_installs' => true,
|
972 |
+
'icons' => true,
|
973 |
+
'short_description' => true,
|
974 |
+
),
|
975 |
+
)
|
976 |
+
);
|
977 |
+
if ( ! is_wp_error( $plugin_info ) ) {
|
978 |
+
$res->plugins[] = $plugin_info;
|
979 |
+
set_transient( 'wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7 );
|
980 |
+
}
|
981 |
+
}
|
982 |
+
return $res;
|
983 |
+
} // add_plugin_favs
|
984 |
+
}
|
985 |
+
add_action( 'init', array( 'webappick_suggest_plugin', 'init' ) );
|
986 |
}
|
987 |
|
988 |
register_deactivation_hook( __FILE__, 'woo_feed_deactivate' );
|
989 |
if ( ! function_exists( 'woo_feed_deactivate' ) ) {
|
990 |
+
/**
|
991 |
+
* Flash cache purged after plugin deactivation
|
992 |
+
*
|
993 |
+
* @return void
|
994 |
+
*/
|
995 |
+
function woo_feed_deactivate() {
|
996 |
+
woo_feed_flush_cache_data(); // clean caches.
|
997 |
+
}
|
998 |
}
|
999 |
|
1000 |
|