Version Description
- Loading speed optimization for the Single Product widgets. We continue working on improving the Ecwid ecommerce plugin loading speed. This update includes optimization of single product widgets. The optimization should have especially good effect if you added multiple single product widgets on a page (e.g. for creating a featured slider or a customized products grid).
- The Recently Viewed Products widget is also optimized. It now works much faster. If you havent used the widget before, feel free to enable it under Appearance -> Widgets.
- The legacy Appearance settings page is removed from the plugin admin menu. The old Appearance settings page was removed from the plugin settings navigation. To configure the product catalog settings (displayed widgets, products per page etc), you can open your store page for editing in the WordPress admin backend and click the Edit appearance button there. If you dont have a store on the page, click the Add store button in the page editor and set the appearance settings there they will be applied to your store on that page.
- Fixed Strict standards code notices. Some users may discover this notice on their site, if the debugging messages are not disabled in the Wordpress installation. That didnt affect the store functionality, but looked odd. We fixed that there should not be any warning messages displayed now.
- Minor fixes and improvements.
Download this release
Release Info
Developer | Ecwid |
Plugin | Ecwid Ecommerce Shopping Cart |
Version | 5.4.2 |
Comparing to | |
See all releases |
Code changes from version 5.4.1 to 5.4.2
- css/pure-min.css +0 -11
- css/settings.3.8.css +0 -41
- css/settings.css +0 -25
- ecwid-shopping-cart.php +19 -51
- ecwid_menu_icon.png +0 -0
- images/grid-active.png +0 -0
- images/grid-default.png +0 -0
- images/grid.png +0 -0
- images/list-active.png +0 -0
- images/list-default.png +0 -0
- images/list.png +0 -0
- images/table-active.png +0 -0
- images/table-default.png +0 -0
- images/table.png +0 -0
- includes/class-ecwid-admin.php +0 -10
- includes/class-ecwid-kissmetrics.php +0 -122
- includes/class-ecwid-product-popup.php +2 -0
- includes/shortcodes/class-ecwid-shortcode-product.php +4 -2
- includes/widgets/class-ecwid-widget-recently-viewed.php +23 -4
- js/advanced.js +0 -0
- js/chameleon.js +0 -5
- js/ecwid-chameleon.js +0 -253
- js/kissmetrics.js +0 -50
- js/product-popup.js +17 -2
- js/themes/flora.js +0 -2
- js/themes/thevoux-wp.js +0 -2
- languages/ecwid-shopping-cart.pot +1074 -142
- lib/EcwidCatalog.php +0 -269
- lib/EcwidSitemapBuilder.php +0 -85
- lib/JSONStreamingParser/LICENSE.txt +0 -8
- lib/JSONStreamingParser/Listener.php +0 -20
- lib/JSONStreamingParser/Listener/SubsetConsumer.php +0 -75
- lib/JSONStreamingParser/Parser.php +0 -493
- lib/JSONStreamingParser/ParsingError.php +0 -12
- lib/class-ecwid-message-manager.php +0 -236
- lib/class-ecwid-theme-manager.php +0 -173
- lib/ecwid_api_v3.php +8 -8
- lib/ecwid_catalog_entry.php +8 -4
- lib/ecwid_category.php +4 -4
- lib/ecwid_product.php +67 -26
- lib/html-catalog-templates/product.php +1 -1
- lib/themes.php +0 -58
- lib/themes/class-ecwid-theme-2014.php +0 -21
- lib/themes/class-ecwid-theme-base.php +0 -24
- lib/themes/class-ecwid-theme-bretheon.php +0 -36
- lib/themes/class-ecwid-theme-pagelines.php +0 -19
- lib/themes/class-ecwid-theme-responsive.php +0 -56
- readme.txt +9 -1
- templates/advanced-settings.php +1 -31
- templates/appearance-settings.php +0 -222
- templates/general-settings-initial.php +0 -75
- templates/general-settings.php +0 -75
- templates/setup.php +0 -75
- templates/wp-dashboard-widget.php +0 -146
css/pure-min.css
DELETED
@@ -1,11 +0,0 @@
|
|
1 |
-
/*!
|
2 |
-
Pure v0.3.0
|
3 |
-
Copyright 2013 Yahoo! Inc. All rights reserved.
|
4 |
-
Licensed under the BSD License.
|
5 |
-
https://github.com/yui/pure/blob/master/LICENSE.md
|
6 |
-
*/
|
7 |
-
/*!
|
8 |
-
normalize.css v1.1.2 | MIT License | git.io/normalize
|
9 |
-
Copyright (c) Nicolas Gallagher and Jonathan Neal
|
10 |
-
*/
|
11 |
-
/*! normalize.css v1.1.2 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-size:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}html,button,input,select,textarea{font-family:sans-serif}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:1em 40px}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}p,pre{margin:1em 0}code,kbd,pre,samp{font-family:monospace,serif;_font-family:'courier new',monospace;font-size:1em}pre{white-space:pre;white-space:pre-wrap;word-wrap:break-word}q{quotes:none}q:before,q:after{content:'';content:none}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,menu,ol,ul{margin:1em 0}dd{margin:0 0 0 40px}menu,ol,ul{padding:0 0 0 40px}nav ul,nav ol{list-style:none;list-style-image:none}img{border:0;-ms-interpolation-mode:bicubic}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0;white-space:normal;*margin-left:-7px}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;*overflow:visible}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0;*height:13px;*width:13px}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.pure-button{display:inline-block;*display:inline;zoom:1;line-height:normal;white-space:nowrap;vertical-align:baseline;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button{font-size:100%;*font-size:90%;*overflow:visible;padding:.5em 1.5em;color:#444;color:rgba(0,0,0,.8);*color:#444;border:1px solid #999;border:0 rgba(0,0,0,0);background-color:#E6E6E6;text-decoration:none;border-radius:2px;-webkit-transition:.1s linear -webkit-box-shadow;-moz-transition:.1s linear -moz-box-shadow;-ms-transition:.1s linear box-shadow;-o-transition:.1s linear box-shadow;transition:.1s linear box-shadow}.pure-button-hover,.pure-button:hover,.pure-button:focus{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));background-image:-ms-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))}.pure-button:focus{outline:0}.pure-button-active,.pure-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset}.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{border:0;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);filter:alpha(opacity=40);-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.pure-button-hidden{display:none}.pure-button::-moz-focus-inner{padding:0;border:0}.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{background-color:#0078e7;color:#fff}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{padding:.5em .6em;display:inline-block;border:1px solid #ccc;font-size:.8em;box-shadow:inset 0 1px 3px #ddd;border-radius:4px;-webkit-transition:.3s linear border;-moz-transition:.3s linear border;-ms-transition:.3s linear border;-o-transition:.3s linear border;transition:.3s linear border;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{outline:0;outline:thin dotted \9;border-color:#129FEA}.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{outline:thin dotted #333;outline:1px auto #129FEA}.pure-form .pure-checkbox,.pure-form .pure-radio{margin:.5em 0;display:block}.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{cursor:not-allowed;background-color:#eaeded;color:#cad2d3}.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{background:#eee;color:#777;border-color:#ccc}.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{color:#b94a48;border:1px solid #ee5f5b}.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{border-color:#e9322d}.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{outline-color:#e9322d}.pure-form select{border:1px solid #ccc;background-color:#fff}.pure-form select[multiple]{height:auto}.pure-form label{margin:.5em 0 .2em;font-size:90%}.pure-form fieldset{margin:0;padding:.35em 0 .75em;border:0}.pure-form legend{display:block;width:100%;padding:.3em 0;margin-bottom:.3em;font-size:125%;color:#333;border-bottom:1px solid #e5e5e5}.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{display:block;margin:.25em 0}.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.pure-form-aligned .pure-control-group{margin-bottom:.5em}.pure-form-aligned .pure-control-group label{text-align:right;display:inline-block;vertical-align:middle;width:10em;margin:0 1em 0 0}.pure-form-aligned .pure-controls{margin:1.5em 0 0 10em}.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{border-radius:2em;padding:.5em 1em}.pure-form .pure-group fieldset{margin-bottom:10px}.pure-form .pure-group input{display:block;padding:10px;margin:0;border-radius:0;position:relative;top:-1px}.pure-form .pure-group input:focus{z-index:2}.pure-form .pure-group input:first-child{top:1px;border-radius:4px 4px 0 0}.pure-form .pure-group input:last-child{top:-2px;border-radius:0 0 4px 4px}.pure-form .pure-group button{margin:.35em 0}.pure-form .pure-input-1{width:100%}.pure-form .pure-input-2-3{width:66%}.pure-form .pure-input-1-2{width:50%}.pure-form .pure-input-1-3{width:33%}.pure-form .pure-input-1-4{width:25%}.pure-form .pure-help-inline,.pure-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.pure-form-message{display:block;color:#666;font-size:90%}@media only screen and (max-width :480px){.pure-form button[type=submit]{margin:.7em 0 0}.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{margin-bottom:.3em;display:block}.pure-group input[type=text],.pure-group input[type=password],.pure-group input[type=email],.pure-group input[type=url],.pure-group input[type=date],.pure-group input[type=month],.pure-group input[type=time],.pure-group input[type=datetime],.pure-group input[type=datetime-local],.pure-group input[type=week],.pure-group input[type=number],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=color]{margin-bottom:0}.pure-form-aligned .pure-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.pure-form-aligned .pure-controls{margin:1.5em 0 0}.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{display:block;font-size:80%;padding:.2em 0 .8em}}.pure-g{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g{word-spacing:-.43em}.pure-u{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-g [class *="pure-u"]{font-family:sans-serif}.pure-u-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-5-24,.pure-u-7-24,.pure-u-11-24,.pure-u-13-24,.pure-u-17-24,.pure-u-19-24,.pure-u-23-24{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-u-1{width:100%}.pure-u-1-2{width:50%;*width:49.969%}.pure-u-1-3{width:33.3333%;*width:33.3023%}.pure-u-2-3{width:66.6667%;*width:66.6357%}.pure-u-1-4{width:25%;*width:24.969%}.pure-u-3-4{width:75%;*width:74.969%}.pure-u-1-5{width:20%;*width:19.969%}.pure-u-2-5{width:40%;*width:39.969%}.pure-u-3-5{width:60%;*width:59.969%}.pure-u-4-5{width:80%;*width:79.969%}.pure-u-1-6{width:16.6667%;*width:16.6357%}.pure-u-5-6{width:83.3333%;*width:83.3023%}.pure-u-1-8{width:12.5%;*width:12.469%}.pure-u-3-8{width:37.5%;*width:37.469%}.pure-u-5-8{width:62.5%;*width:62.469%}.pure-u-7-8{width:87.5%;*width:87.469%}.pure-u-1-12{width:8.3333%;*width:8.3023%}.pure-u-5-12{width:41.6667%;*width:41.6357%}.pure-u-7-12{width:58.3333%;*width:58.3023%}.pure-u-11-12{width:91.6667%;*width:91.6357%}.pure-u-1-24{width:4.1667%;*width:4.1357%}.pure-u-5-24{width:20.8333%;*width:20.8023%}.pure-u-7-24{width:29.1667%;*width:29.1357%}.pure-u-11-24{width:45.8333%;*width:45.8023%}.pure-u-13-24{width:54.1667%;*width:54.1357%}.pure-u-17-24{width:70.8333%;*width:70.8023%}.pure-u-19-24{width:79.1667%;*width:79.1357%}.pure-u-23-24{width:95.8333%;*width:95.8023%}.pure-g-r{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;display:-webkit-flex;-webkit-flex-flow:row wrap;display:-ms-flexbox;-ms-flex-flow:row wrap}.opera-only :-o-prefocus,.pure-g-r{word-spacing:-.43em}.pure-g-r [class *="pure-u"]{font-family:sans-serif}.pure-g-r img{max-width:100%;height:auto}@media (min-width:980px){.pure-visible-phone{display:none}.pure-visible-tablet{display:none}.pure-hidden-desktop{display:none}}@media (max-width:480px){.pure-g-r>.pure-u,.pure-g-r>[class *="pure-u-"]{width:100%}}@media (max-width:767px){.pure-g-r>.pure-u,.pure-g-r>[class *="pure-u-"]{width:100%}.pure-hidden-phone{display:none}.pure-visible-desktop{display:none}}@media (min-width:768px) and (max-width:979px){.pure-hidden-tablet{display:none}.pure-visible-desktop{display:none}}.pure-menu ul{position:absolute;visibility:hidden}.pure-menu.pure-menu-open{visibility:visible;z-index:2;width:100%}.pure-menu ul{left:-10000px;list-style:none;margin:0;padding:0;top:-10000px;z-index:1}.pure-menu>ul{position:relative}.pure-menu-open>ul{left:0;top:0;visibility:visible}.pure-menu-open>ul:focus{outline:0}.pure-menu li{position:relative}.pure-menu a,.pure-menu .pure-menu-heading{display:block;color:inherit;line-height:1.5em;padding:5px 20px;text-decoration:none;white-space:nowrap}.pure-menu.pure-menu-horizontal>.pure-menu-heading{display:inline-block;*display:inline;zoom:1;margin:0;vertical-align:middle}.pure-menu.pure-menu-horizontal>ul{display:inline-block;*display:inline;zoom:1;vertical-align:middle;height:2.4em}.pure-menu li a{padding:5px 20px}.pure-menu-can-have-children>.pure-menu-label:after{content:'\25B8';float:right;font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;margin-right:-20px;margin-top:-1px}.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-separator{background-color:#dfdfdf;display:block;height:1px;font-size:0;margin:7px 2px;overflow:hidden}.pure-menu-hidden{display:none}.pure-menu-fixed{position:fixed;top:0;left:0;width:100%}.pure-menu-horizontal li{display:inline-block;*display:inline;zoom:1;vertical-align:middle}.pure-menu-horizontal li li{display:block}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{content:"\25BE"}.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{padding-right:30px}.pure-menu-horizontal li.pure-menu-separator{height:50%;width:1px;margin:0 7px}.pure-menu-horizontal li li.pure-menu-separator{height:1px;width:auto;margin:7px 2px}.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{background:#fff;border:1px solid #b7b7b7}.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{border:0}.pure-menu a{border:1px solid transparent;border-left:0;border-right:0}.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{color:#777}.pure-menu .pure-menu-can-have-children>li:hover:after{color:#fff}.pure-menu .pure-menu-open{background:#dedede}.pure-menu li a:hover,.pure-menu li a:focus{background:#eee}.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{background:#fff;color:#bfbfbf}.pure-menu .pure-menu-disabled>a{background-image:none;border-color:transparent;cursor:default}.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{color:#bfbfbf}.pure-menu .pure-menu-heading{color:#565d64;text-transform:uppercase;font-size:90%;margin-top:.5em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#dfdfdf}.pure-menu .pure-menu-selected a{color:#000}.pure-menu.pure-menu-open.pure-menu-fixed{border:0;border-bottom:1px solid #b7b7b7}.pure-paginator{letter-spacing:-.31em;*letter-spacing:normal;*word-spacing:-.43em;text-rendering:optimizespeed;list-style:none;margin:0;padding:0}.opera-only :-o-prefocus,.pure-paginator{word-spacing:-.43em}.pure-paginator li{display:inline-block;*display:inline;zoom:1;letter-spacing:normal;word-spacing:normal;vertical-align:top;text-rendering:auto}.pure-paginator .pure-button{border-radius:0;padding:.8em 1.4em;vertical-align:top;height:1.1em}.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{outline-style:none}.pure-paginator .prev,.pure-paginator .next{color:#C0C1C3;text-shadow:0 -1px 0 rgba(0,0,0,.45)}.pure-paginator .prev{border-radius:2px 0 0 2px}.pure-paginator .next{border-radius:0 2px 2px 0}@media (max-width:480px){.pure-menu-horizontal{width:100%}.pure-menu-children li{display:block;border-bottom:1px solid #000}}.pure-table{border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid #cbcbcb}.pure-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.pure-table td,.pure-table th{border-left:1px solid #cbcbcb;border-width:0 0 0 1px;font-size:inherit;margin:0;overflow:visible;padding:6px 12px}.pure-table td:first-child,.pure-table th:first-child{border-left-width:0}.pure-table thead{background:#e0e0e0;color:#000;text-align:left;vertical-align:bottom}.pure-table td{background-color:transparent}.pure-table-odd td{background-color:#f2f2f2}.pure-table-striped tr:nth-child(2n-1) td{background-color:#f2f2f2}.pure-table-bordered td{border-bottom:1px solid #cbcbcb}.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.pure-table-horizontal td,.pure-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #cbcbcb}.pure-table-horizontal tbody>tr:last-child td{border-bottom-width:0}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
css/settings.3.8.css
CHANGED
@@ -58,7 +58,6 @@
|
|
58 |
|
59 |
@media screen and (max-width: 782px) {
|
60 |
.ecwid-settings.general-settings,
|
61 |
-
.ecwid-settings.appearance-settings,
|
62 |
.ecwid-settings.advanced-settings
|
63 |
{
|
64 |
max-width: inherit;
|
@@ -143,46 +142,6 @@
|
|
143 |
position: relative;
|
144 |
}
|
145 |
|
146 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
147 |
-
display: block;
|
148 |
-
}
|
149 |
-
|
150 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size input {
|
151 |
-
position: relative;
|
152 |
-
z-index: 2;
|
153 |
-
}
|
154 |
-
|
155 |
-
.appearance-settings.ecwid-settings .pure-control-group.small-input input {
|
156 |
-
margin: 0px auto;
|
157 |
-
}
|
158 |
-
|
159 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size {
|
160 |
-
margin: 0px auto 33px;
|
161 |
-
padding: 0px;
|
162 |
-
}
|
163 |
-
|
164 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size .ruler {
|
165 |
-
z-index: 1;
|
166 |
-
position: absolute;
|
167 |
-
}
|
168 |
-
|
169 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size .bottom {
|
170 |
-
margin-top: 5px;
|
171 |
-
}
|
172 |
-
|
173 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size.list,
|
174 |
-
.appearance-settings.ecwid-settings .ecwid-pb-view-size.table {
|
175 |
-
margin-bottom: 0px;
|
176 |
-
}
|
177 |
-
|
178 |
-
.appearance-settings.ecwid-settings .note.pb-note {
|
179 |
-
margin: 0px;
|
180 |
-
}
|
181 |
-
|
182 |
-
.appearance-settings.ecwid-settings select {
|
183 |
-
width: 100%;
|
184 |
-
}
|
185 |
-
|
186 |
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) label {
|
187 |
margin-top:35px;
|
188 |
}
|
58 |
|
59 |
@media screen and (max-width: 782px) {
|
60 |
.ecwid-settings.general-settings,
|
|
|
61 |
.ecwid-settings.advanced-settings
|
62 |
{
|
63 |
max-width: inherit;
|
142 |
position: relative;
|
143 |
}
|
144 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
.advanced-settings.ecwid-settings .pure-control-group:not(.checkbox) label {
|
146 |
margin-top:35px;
|
147 |
}
|
css/settings.css
CHANGED
@@ -133,16 +133,6 @@ display: none;
|
|
133 |
color: #444444;
|
134 |
}
|
135 |
|
136 |
-
.ecwid-settings.appearance-settings h3 {
|
137 |
-
font-size: 12px;
|
138 |
-
}
|
139 |
-
|
140 |
-
.ecwid-settings.appearance-settings input[type=text] {
|
141 |
-
font-size: 13px;
|
142 |
-
padding: 5px 3px 4px 3px;
|
143 |
-
outline-offset: 0px;
|
144 |
-
}
|
145 |
-
|
146 |
.ecwid-settings input[type=text].number {
|
147 |
width: 27px;
|
148 |
text-align: center;
|
@@ -157,21 +147,6 @@ display: none;
|
|
157 |
margin-left: 30px;
|
158 |
}
|
159 |
|
160 |
-
.ecwid-settings.appearance-settings {
|
161 |
-
max-width: 650px;
|
162 |
-
}
|
163 |
-
|
164 |
-
.ecwid-settings.appearance-settings .products-per-page-label {
|
165 |
-
padding-top: 5px;
|
166 |
-
padding-bottom: 15px;
|
167 |
-
display: block;
|
168 |
-
}
|
169 |
-
|
170 |
-
.ecwid-settings.appearance-settings input[type=checkbox] {
|
171 |
-
margin-right: 3px;
|
172 |
-
margin-left: 7px;
|
173 |
-
}
|
174 |
-
|
175 |
.ecwid-pb-view-size {
|
176 |
display: inline-block;
|
177 |
position: relative;
|
133 |
color: #444444;
|
134 |
}
|
135 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
136 |
.ecwid-settings input[type=text].number {
|
137 |
width: 27px;
|
138 |
text-align: center;
|
147 |
margin-left: 30px;
|
148 |
}
|
149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
.ecwid-pb-view-size {
|
151 |
display: inline-block;
|
152 |
position: relative;
|
ecwid-shopping-cart.php
CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://www.ecwid.com?source=wporg
|
|
5 |
Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.
|
6 |
Text Domain: ecwid-shopping-cart
|
7 |
Author: Ecwid Team
|
8 |
-
Version: 5.4.
|
9 |
Author URI: http://www.ecwid.com?source=wporg
|
10 |
*/
|
11 |
|
@@ -620,6 +620,9 @@ function ecwid_check_version()
|
|
620 |
delete_option('ecwid_use_new_search');
|
621 |
delete_option('ecwid_use_new_categories');
|
622 |
// /Since 5.4
|
|
|
|
|
|
|
623 |
|
624 |
Ecwid_Config::load_from_ini();
|
625 |
|
@@ -636,6 +639,8 @@ function ecwid_check_version()
|
|
636 |
|
637 |
flush_rewrite_rules();
|
638 |
}
|
|
|
|
|
639 |
}
|
640 |
|
641 |
function ecwid_get_woocommerce_status() {
|
@@ -1008,7 +1013,7 @@ function ecwid_canonical() {
|
|
1008 |
$link = $product->url;
|
1009 |
} elseif ( $params['mode'] == 'category' ) {
|
1010 |
$category = Ecwid_Category::get_by_id( $params['id'] );
|
1011 |
-
$link = $category->
|
1012 |
}
|
1013 |
}
|
1014 |
}
|
@@ -1213,7 +1218,7 @@ function _ecwid_get_seo_title()
|
|
1213 |
|
1214 |
if ( $params['mode'] == 'product' ) {
|
1215 |
$product = Ecwid_Product::get_by_id( $params['id'] );
|
1216 |
-
if ( isset( $product->seoTitle ) ) {
|
1217 |
$ecwid_seo_title = $product->seoTitle;
|
1218 |
} else {
|
1219 |
$ecwid_seo_title = $product->name;
|
@@ -1221,13 +1226,15 @@ function _ecwid_get_seo_title()
|
|
1221 |
|
1222 |
if ( $product->defaultCategoryId ) {
|
1223 |
$category = $api->get_category( $product->defaultCategoryId );
|
1224 |
-
if ( $category ) {
|
1225 |
$ecwid_seo_title .= ' ' . ecwid_get_title_separator() . ' ' . $category->name;
|
1226 |
}
|
1227 |
}
|
1228 |
} else if ( $params['mode'] == 'category' ) {
|
1229 |
$category = $api->get_category( $params['id'] );
|
1230 |
-
$
|
|
|
|
|
1231 |
}
|
1232 |
}
|
1233 |
}
|
@@ -1252,10 +1259,10 @@ function ecwid_oembed_url( $url, $permalink, $format ) {
|
|
1252 |
|
1253 |
if ( $params['mode'] == 'product' ){
|
1254 |
$product = Ecwid_Product::get_by_id( $params['id'] );
|
1255 |
-
$permalink = $product->
|
1256 |
} else if ( $params['mode'] == 'category' ) {
|
1257 |
$category = Ecwid_Category::get_by_id( $params['id'] );
|
1258 |
-
$permalink = $category->
|
1259 |
}
|
1260 |
|
1261 |
$url = add_query_arg( array(
|
@@ -1340,10 +1347,6 @@ function ecwid_get_scriptjs_params( $force_lang = null ) {
|
|
1340 |
$params .= '&data_sync_products=1';
|
1341 |
}
|
1342 |
|
1343 |
-
if ( Ecwid_Seo_Links::is_enabled() ) {
|
1344 |
-
$params .= '&data_clean_urls=1';
|
1345 |
-
}
|
1346 |
-
|
1347 |
return $params;
|
1348 |
}
|
1349 |
|
@@ -1557,8 +1560,6 @@ EOT;
|
|
1557 |
|
1558 |
add_option("ecwid_installation_date", time());
|
1559 |
|
1560 |
-
add_option('ecwid_hide_appearance_menu', get_option('ecwid_store_id') == ECWID_DEMO_STORE_ID ? 'Y' : 'N', '', 'yes');
|
1561 |
-
|
1562 |
/* All new options should go to check_version thing */
|
1563 |
|
1564 |
require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php';
|
@@ -1803,21 +1804,6 @@ function ecwid_settings_api_init() {
|
|
1803 |
|
1804 |
if ( isset( $_POST['settings_section'] ) ) {
|
1805 |
switch ( $_POST['settings_section'] ) {
|
1806 |
-
case 'appearance':
|
1807 |
-
register_setting( 'ecwid_options_page', 'ecwid_enable_minicart' );
|
1808 |
-
|
1809 |
-
register_setting( 'ecwid_options_page', 'ecwid_show_categories' );
|
1810 |
-
register_setting( 'ecwid_options_page', 'ecwid_show_search_box' );
|
1811 |
-
|
1812 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_categoriesperrow', 'ecwid_abs_intval' );
|
1813 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_productspercolumn_grid', 'ecwid_abs_intval' );
|
1814 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperrow_grid', 'ecwid_abs_intval' );
|
1815 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperpage_list', 'ecwid_abs_intval' );
|
1816 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_productsperpage_table', 'ecwid_abs_intval' );
|
1817 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_defaultview' );
|
1818 |
-
register_setting( 'ecwid_options_page', 'ecwid_pb_searchview' );
|
1819 |
-
break;
|
1820 |
-
|
1821 |
case 'general':
|
1822 |
register_setting( 'ecwid_options_page', 'ecwid_store_id', 'ecwid_abs_intval' );
|
1823 |
if ( isset( $_POST['ecwid_store_id'] ) && intval( $_POST['ecwid_store_id'] ) == 0 ) {
|
@@ -1975,7 +1961,9 @@ function ecwid_general_settings_do_page() {
|
|
1975 |
} else {
|
1976 |
global $ecwid_oauth;
|
1977 |
|
1978 |
-
if (
|
|
|
|
|
1979 |
if ( ecwid_test_oauth(true) ) {
|
1980 |
require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php';
|
1981 |
} else {
|
@@ -2287,27 +2275,6 @@ function ecwid_get_admin_iframe_upgrade_page() {
|
|
2287 |
return 'billing:feature=sso&plan=ecwid_venture';
|
2288 |
}
|
2289 |
|
2290 |
-
function ecwid_appearance_settings_do_page() {
|
2291 |
-
|
2292 |
-
wp_register_script('ecwid-appearance-js', ECWID_PLUGIN_URL . 'js/appearance.js', array(), get_option('ecwid_plugin_version'), true);
|
2293 |
-
wp_enqueue_script('ecwid-appearance-js');
|
2294 |
-
|
2295 |
-
$disabled = false;
|
2296 |
-
if (!empty($ecwid_page_id) && ($ecwid_page_id > 0)) {
|
2297 |
-
$_tmp_page = get_post($ecwid_page_id);
|
2298 |
-
$content = $_tmp_page->post_content;
|
2299 |
-
if ( (strpos($content, "[ecwid_productbrowser]") === false) && (strpos($content, "xProductBrowser") !== false) )
|
2300 |
-
$disabled = true;
|
2301 |
-
}
|
2302 |
-
// $disabled_str is used in appearance settings template
|
2303 |
-
if ($disabled)
|
2304 |
-
$disabled_str = 'disabled = "disabled"';
|
2305 |
-
else
|
2306 |
-
$disabled_str = "";
|
2307 |
-
|
2308 |
-
require_once ECWID_PLUGIN_DIR . 'templates/appearance-settings.php';
|
2309 |
-
}
|
2310 |
-
|
2311 |
function ecwid_debug_do_page() {
|
2312 |
|
2313 |
if ( array_key_exists( 'reset_cache', $_GET ) ) {
|
@@ -2737,7 +2704,8 @@ function ecwid_update_store_id( $new_store_id ) {
|
|
2737 |
update_option( 'ecwid_api_check_time', 0 );
|
2738 |
|
2739 |
ecwid_invalidate_cache( true );
|
2740 |
-
|
|
|
2741 |
do_action('ecwid_update_store_id', $new_store_id);
|
2742 |
}
|
2743 |
|
5 |
Description: Ecwid is a free full-featured shopping cart. It can be easily integrated with any Wordpress blog and takes less than 5 minutes to set up.
|
6 |
Text Domain: ecwid-shopping-cart
|
7 |
Author: Ecwid Team
|
8 |
+
Version: 5.4.2
|
9 |
Author URI: http://www.ecwid.com?source=wporg
|
10 |
*/
|
11 |
|
620 |
delete_option('ecwid_use_new_search');
|
621 |
delete_option('ecwid_use_new_categories');
|
622 |
// /Since 5.4
|
623 |
+
|
624 |
+
// Since 5.4.2
|
625 |
+
delete_option('ecwid_hide_appearance_menu');
|
626 |
|
627 |
Ecwid_Config::load_from_ini();
|
628 |
|
639 |
|
640 |
flush_rewrite_rules();
|
641 |
}
|
642 |
+
|
643 |
+
add_option('ecwid_disable_dashboard', '');
|
644 |
}
|
645 |
|
646 |
function ecwid_get_woocommerce_status() {
|
1013 |
$link = $product->url;
|
1014 |
} elseif ( $params['mode'] == 'category' ) {
|
1015 |
$category = Ecwid_Category::get_by_id( $params['id'] );
|
1016 |
+
$link = $category->link;
|
1017 |
}
|
1018 |
}
|
1019 |
}
|
1218 |
|
1219 |
if ( $params['mode'] == 'product' ) {
|
1220 |
$product = Ecwid_Product::get_by_id( $params['id'] );
|
1221 |
+
if ( isset( $product->seoTitle ) && !empty( $product->seoTitle ) ) {
|
1222 |
$ecwid_seo_title = $product->seoTitle;
|
1223 |
} else {
|
1224 |
$ecwid_seo_title = $product->name;
|
1226 |
|
1227 |
if ( $product->defaultCategoryId ) {
|
1228 |
$category = $api->get_category( $product->defaultCategoryId );
|
1229 |
+
if ( $category && isset($category->name)) {
|
1230 |
$ecwid_seo_title .= ' ' . ecwid_get_title_separator() . ' ' . $category->name;
|
1231 |
}
|
1232 |
}
|
1233 |
} else if ( $params['mode'] == 'category' ) {
|
1234 |
$category = $api->get_category( $params['id'] );
|
1235 |
+
if ( $category && isset( $category->name ) ) {
|
1236 |
+
$ecwid_seo_title = $category->name;
|
1237 |
+
}
|
1238 |
}
|
1239 |
}
|
1240 |
}
|
1259 |
|
1260 |
if ( $params['mode'] == 'product' ){
|
1261 |
$product = Ecwid_Product::get_by_id( $params['id'] );
|
1262 |
+
$permalink = $product->link;
|
1263 |
} else if ( $params['mode'] == 'category' ) {
|
1264 |
$category = Ecwid_Category::get_by_id( $params['id'] );
|
1265 |
+
$permalink = $category->link;
|
1266 |
}
|
1267 |
|
1268 |
$url = add_query_arg( array(
|
1347 |
$params .= '&data_sync_products=1';
|
1348 |
}
|
1349 |
|
|
|
|
|
|
|
|
|
1350 |
return $params;
|
1351 |
}
|
1352 |
|
1560 |
|
1561 |
add_option("ecwid_installation_date", time());
|
1562 |
|
|
|
|
|
1563 |
/* All new options should go to check_version thing */
|
1564 |
|
1565 |
require_once ECWID_PLUGIN_DIR . 'includes/class-ecwid-nav-menus.php';
|
1804 |
|
1805 |
if ( isset( $_POST['settings_section'] ) ) {
|
1806 |
switch ( $_POST['settings_section'] ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1807 |
case 'general':
|
1808 |
register_setting( 'ecwid_options_page', 'ecwid_store_id', 'ecwid_abs_intval' );
|
1809 |
if ( isset( $_POST['ecwid_store_id'] ) && intval( $_POST['ecwid_store_id'] ) == 0 ) {
|
1961 |
} else {
|
1962 |
global $ecwid_oauth;
|
1963 |
|
1964 |
+
if ( get_option('ecwid_disable_dashboard') ) {
|
1965 |
+
require_once ECWID_PLUGIN_DIR . 'templates/dashboard.php';
|
1966 |
+
} else if ( !$ecwid_oauth->has_scope( 'allow_sso' ) && !isset($_GET['reconnect']) ) {
|
1967 |
if ( ecwid_test_oauth(true) ) {
|
1968 |
require_once ECWID_PLUGIN_DIR . 'templates/reconnect-sso.php';
|
1969 |
} else {
|
2275 |
return 'billing:feature=sso&plan=ecwid_venture';
|
2276 |
}
|
2277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2278 |
function ecwid_debug_do_page() {
|
2279 |
|
2280 |
if ( array_key_exists( 'reset_cache', $_GET ) ) {
|
2704 |
update_option( 'ecwid_api_check_time', 0 );
|
2705 |
|
2706 |
ecwid_invalidate_cache( true );
|
2707 |
+
EcwidPlatform::cache_reset('all_categories');
|
2708 |
+
|
2709 |
do_action('ecwid_update_store_id', $new_store_id);
|
2710 |
}
|
2711 |
|
ecwid_menu_icon.png
DELETED
Binary file
|
images/grid-active.png
DELETED
Binary file
|
images/grid-default.png
DELETED
Binary file
|
images/grid.png
DELETED
Binary file
|
images/list-active.png
DELETED
Binary file
|
images/list-default.png
DELETED
Binary file
|
images/list.png
DELETED
Binary file
|
images/table-active.png
DELETED
Binary file
|
images/table-default.png
DELETED
Binary file
|
images/table.png
DELETED
Binary file
|
includes/class-ecwid-admin.php
CHANGED
@@ -62,16 +62,6 @@ class Ecwid_Admin {
|
|
62 |
'ecwid_admin_products_do_page'
|
63 |
);
|
64 |
}
|
65 |
-
if (get_option('ecwid_hide_appearance_menu') != 'Y') {
|
66 |
-
add_submenu_page(
|
67 |
-
self::ADMIN_SLUG,
|
68 |
-
__('Appearance settings', 'ecwid-shopping-cart'),
|
69 |
-
__('Appearance', 'ecwid-shopping-cart'),
|
70 |
-
'manage_options',
|
71 |
-
self::ADMIN_SLUG . '-appearance',
|
72 |
-
'ecwid_appearance_settings_do_page'
|
73 |
-
);
|
74 |
-
}
|
75 |
|
76 |
if (!$is_newbie || (isset($_GET['page']) && $_GET['page'] == 'ecwid-advanced')) {
|
77 |
add_submenu_page(
|
62 |
'ecwid_admin_products_do_page'
|
63 |
);
|
64 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
if (!$is_newbie || (isset($_GET['page']) && $_GET['page'] == 'ecwid-advanced')) {
|
67 |
add_submenu_page(
|
includes/class-ecwid-kissmetrics.php
DELETED
@@ -1,122 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Kissmetrics {
|
4 |
-
|
5 |
-
const API_KEY = '12a19b058a28c5db7b722584d59e60e4f080e142';
|
6 |
-
const STORAGE_OPTION_NAME = 'ecwid_kissmetrics';
|
7 |
-
const EVENT_PREFIX = 'wp-plugin ';
|
8 |
-
|
9 |
-
static $instance;
|
10 |
-
|
11 |
-
public static function init() {
|
12 |
-
self::$instance = new Ecwid_Kissmetrics();
|
13 |
-
}
|
14 |
-
|
15 |
-
public static function record( $event ) {
|
16 |
-
$fire_in_background = array( 'wpPluginDeactivated', 'wpPluginUninstalled' );
|
17 |
-
$raw_names = array( 'Signed Up' );
|
18 |
-
|
19 |
-
$name = in_array( $event, $raw_names ) ? $event : self::EVENT_PREFIX . $event;
|
20 |
-
|
21 |
-
if ( in_array( $event, $fire_in_background ) ) {
|
22 |
-
self::$instance->_record( $name );
|
23 |
-
} else {
|
24 |
-
self::$instance->_enqueue_record( $name );
|
25 |
-
}
|
26 |
-
}
|
27 |
-
|
28 |
-
public static function set( $name, $value ) {
|
29 |
-
self::$instance->_enqueue_property( $name, $value );
|
30 |
-
}
|
31 |
-
|
32 |
-
private function __construct() {
|
33 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_script' ) );
|
34 |
-
}
|
35 |
-
|
36 |
-
public function enqueue_script() {
|
37 |
-
wp_enqueue_script('ecwid-kissmetrics', 'https://scripts.kissmetrics.com/' . self::API_KEY . '.2.js');
|
38 |
-
wp_enqueue_script('ecwid-kissmetrics-events', ECWID_PLUGIN_URL . 'js/kissmetrics.js', array( 'ecwid-kissmetrics' ), get_option('ecwid_plugin_version') );
|
39 |
-
|
40 |
-
|
41 |
-
$this->_enqueue_property('Storefront URL', ecwid_get_store_page_url());
|
42 |
-
$this->_enqueue_property('WP Theme', ecwid_get_theme_name());
|
43 |
-
$this->_enqueue_property('WP Chameleon Enabled', get_option('ecwid_use_chameleon') ? 'true' : 'false');
|
44 |
-
|
45 |
-
$woo = 'none';
|
46 |
-
$all_plugins = get_plugins();
|
47 |
-
if (array_key_exists('woocommerce/woocommerce.php', $all_plugins)) {
|
48 |
-
$active_plugins = get_option('active_plugins');
|
49 |
-
if (in_array('woocommerce/woocommerce.php', $active_plugins)) {
|
50 |
-
$woo = 'active';
|
51 |
-
} else {
|
52 |
-
$woo = 'inactive';
|
53 |
-
}
|
54 |
-
}
|
55 |
-
$kissmetrics['woo'] = $woo;
|
56 |
-
$this->_enqueue_property('Woocommerce installed', $woo);
|
57 |
-
|
58 |
-
$kissmetrics = array(
|
59 |
-
'items' => $this->_get_pending(),
|
60 |
-
'key' => self::API_KEY
|
61 |
-
);
|
62 |
-
|
63 |
-
$this->_flush_pending();
|
64 |
-
|
65 |
-
$store_id = get_ecwid_store_id();
|
66 |
-
if ($store_id != ECWID_DEMO_STORE_ID) {
|
67 |
-
$kissmetrics['store_id'] = $store_id;
|
68 |
-
}
|
69 |
-
|
70 |
-
wp_localize_script('ecwid-kissmetrics-events', 'ecwid_kissmetrics', $kissmetrics);
|
71 |
-
}
|
72 |
-
|
73 |
-
protected function _record($event) {
|
74 |
-
|
75 |
-
$params = array(
|
76 |
-
'_k' => self::API_KEY,
|
77 |
-
'_p' => $_COOKIE['km_ai'],
|
78 |
-
'_n' => $event
|
79 |
-
);
|
80 |
-
$query = http_build_query($params);
|
81 |
-
//die(var_dump($_COOKIE));
|
82 |
-
|
83 |
-
$result = wp_remote_get('http://trk.kissmetrics.com/e?' . $query);
|
84 |
-
}
|
85 |
-
|
86 |
-
protected function _enqueue_record( $event ) {
|
87 |
-
$items = $this->_get_pending();
|
88 |
-
|
89 |
-
array_push( $items, array( 'event' => $event ) );
|
90 |
-
|
91 |
-
update_option ( self::STORAGE_OPTION_NAME, $items );
|
92 |
-
}
|
93 |
-
|
94 |
-
protected function _enqueue_property( $name, $value ) {
|
95 |
-
$items = $this->_get_pending();
|
96 |
-
|
97 |
-
array_push( $items, array(
|
98 |
-
'property' => array(
|
99 |
-
$name => $value
|
100 |
-
)
|
101 |
-
)
|
102 |
-
);
|
103 |
-
|
104 |
-
update_option ( self::STORAGE_OPTION_NAME, $items );
|
105 |
-
}
|
106 |
-
|
107 |
-
protected function _get_pending() {
|
108 |
-
$value = get_option( self::STORAGE_OPTION_NAME );
|
109 |
-
|
110 |
-
if ( !is_array($value) ) {
|
111 |
-
$value = array();
|
112 |
-
}
|
113 |
-
|
114 |
-
return $value;
|
115 |
-
}
|
116 |
-
|
117 |
-
protected function _flush_pending() {
|
118 |
-
update_option( self::STORAGE_OPTION_NAME, null );
|
119 |
-
}
|
120 |
-
}
|
121 |
-
|
122 |
-
Ecwid_Kissmetrics::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
includes/class-ecwid-product-popup.php
CHANGED
@@ -57,6 +57,8 @@ class Ecwid_Product_Popup {
|
|
57 |
|
58 |
$params['limit'] = 10;
|
59 |
|
|
|
|
|
60 |
if ( array_key_exists( 'page', $_REQUEST ) ) {
|
61 |
$params['offset'] = $params['limit'] * ( $_REQUEST['page'] - 1 );
|
62 |
}
|
57 |
|
58 |
$params['limit'] = 10;
|
59 |
|
60 |
+
$params['offset'] = 0;
|
61 |
+
|
62 |
if ( array_key_exists( 'page', $_REQUEST ) ) {
|
63 |
$params['offset'] = $params['limit'] * ( $_REQUEST['page'] - 1 );
|
64 |
}
|
includes/shortcodes/class-ecwid-shortcode-product.php
CHANGED
@@ -44,7 +44,7 @@ class Ecwid_Shortcode_Product extends Ecwid_Shortcode_Base {
|
|
44 |
if (!in_array($version, array('1', '2'))) {
|
45 |
$attributes['version'] = 1;
|
46 |
}
|
47 |
-
|
48 |
$this->params = $attributes;
|
49 |
}
|
50 |
|
@@ -63,10 +63,12 @@ class Ecwid_Shortcode_Product extends Ecwid_Shortcode_Base {
|
|
63 |
|
64 |
$items = preg_split('![^0-9^a-z^A-Z^\-^_]!', $this->params['display']);
|
65 |
|
|
|
|
|
66 |
if (is_array($items) && count($items) > 0) foreach ($items as $item) {
|
67 |
if (array_key_exists($item, $display_items)) {
|
68 |
if ($this->params['link'] == 'yes' && in_array($item, array('title', 'picture'))) {
|
69 |
-
$product_link =
|
70 |
$result .= '<a href="' . esc_url($product_link) . '">' . $display_items[$item] . '</a>';
|
71 |
} else {
|
72 |
$result .= $display_items[$item];
|
44 |
if (!in_array($version, array('1', '2'))) {
|
45 |
$attributes['version'] = 1;
|
46 |
}
|
47 |
+
|
48 |
$this->params = $attributes;
|
49 |
}
|
50 |
|
63 |
|
64 |
$items = preg_split('![^0-9^a-z^A-Z^\-^_]!', $this->params['display']);
|
65 |
|
66 |
+
$product = Ecwid_Product::get_without_loading( $this->params['id'], (object)array('name' => '') );
|
67 |
+
|
68 |
if (is_array($items) && count($items) > 0) foreach ($items as $item) {
|
69 |
if (array_key_exists($item, $display_items)) {
|
70 |
if ($this->params['link'] == 'yes' && in_array($item, array('title', 'picture'))) {
|
71 |
+
$product_link = $product->link;
|
72 |
$result .= '<a href="' . esc_url($product_link) . '">' . $display_items[$item] . '</a>';
|
73 |
} else {
|
74 |
$result .= $display_items[$item];
|
includes/widgets/class-ecwid-widget-recently-viewed.php
CHANGED
@@ -53,20 +53,39 @@ class Ecwid_Widget_Recently_Viewed extends WP_Widget {
|
|
53 |
|
54 |
echo '<div class="ecwid-recently-viewed-products" data-ecwid-max="' . $instance['number_of_products'] . '">';
|
55 |
|
56 |
-
$counter =
|
57 |
$ids = array();
|
58 |
if ($recently_viewed && isset($recently_viewed->products)) {
|
59 |
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
$product = Ecwid_Product::get_by_id( $recently_viewed->products[$i]->id );
|
62 |
|
63 |
if (!$product) {
|
64 |
$product = Ecwid_Product::from_stdclass(
|
65 |
-
$recently_viewed->products[$i]
|
66 |
-
'imageUrl', 'link'
|
67 |
);
|
68 |
}
|
69 |
|
|
|
|
|
70 |
$counter++;
|
71 |
if ( isset( $product->id ) && isset( $product->link ) ) {
|
72 |
$ids[] = $product->id;
|
53 |
|
54 |
echo '<div class="ecwid-recently-viewed-products" data-ecwid-max="' . $instance['number_of_products'] . '">';
|
55 |
|
56 |
+
$counter = 1;
|
57 |
$ids = array();
|
58 |
if ($recently_viewed && isset($recently_viewed->products)) {
|
59 |
|
60 |
+
$to_load = array();
|
61 |
+
|
62 |
+
foreach( $recently_viewed->products as $product_data ) {
|
63 |
+
$product = Ecwid_Product::get_without_loading( $product_data->id );
|
64 |
+
if ( !@$product->imageUrl ) {
|
65 |
+
$to_load[] = $product_data->id;
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
if ( !empty( $to_load ) ) {
|
70 |
+
Ecwid_Product::load_by_ids($to_load);
|
71 |
+
}
|
72 |
+
|
73 |
+
for ( $i = count($recently_viewed->products) - 1; $i >= 0; $i-- ) {
|
74 |
+
|
75 |
+
if ( $counter > $instance['number_of_products'] ) {
|
76 |
+
break;
|
77 |
+
}
|
78 |
+
|
79 |
$product = Ecwid_Product::get_by_id( $recently_viewed->products[$i]->id );
|
80 |
|
81 |
if (!$product) {
|
82 |
$product = Ecwid_Product::from_stdclass(
|
83 |
+
$recently_viewed->products[$i]
|
|
|
84 |
);
|
85 |
}
|
86 |
|
87 |
+
if (!$product->link)
|
88 |
+
|
89 |
$counter++;
|
90 |
if ( isset( $product->id ) && isset( $product->link ) ) {
|
91 |
$ids[] = $product->id;
|
js/advanced.js
DELETED
File without changes
|
js/chameleon.js
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
window.ec = {
|
2 |
-
config: {
|
3 |
-
chameleon: ecwidChameleon
|
4 |
-
}
|
5 |
-
}
|
|
|
|
|
|
|
|
|
|
js/ecwid-chameleon.js
DELETED
@@ -1,253 +0,0 @@
|
|
1 |
-
if (typeof(Ecwid) == 'object') {
|
2 |
-
Ecwid.OnAPILoaded.add(function() {
|
3 |
-
|
4 |
-
var html_id = document.getElementsByTagName("html")[0].id;
|
5 |
-
var body_id = document.getElementsByTagName("body")[0].id;;
|
6 |
-
var css_prefix = 'html#'+html_id+' body#'+body_id+'.chameleon';
|
7 |
-
|
8 |
-
var css = '';
|
9 |
-
var parent = document.querySelector('.ecwid-shopping-cart-product-browser').parentNode;
|
10 |
-
var computedStyle = getComputedStyle(parent, null);
|
11 |
-
|
12 |
-
var primary_color = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_color !== 'undefined') ? ecwidChameleon.primary_color : computedStyle.color );
|
13 |
-
var primary_background = tinycolor( (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') ? ecwidChameleon.primary_background : getBackground(parent) );
|
14 |
-
|
15 |
-
if (typeof ecwidChameleon !== 'undefined' && typeof ecwidChameleon.primary_background !== 'undefined') {
|
16 |
-
var primary_link = tinycolor( ecwidChameleon.primary_link );
|
17 |
-
}
|
18 |
-
else {
|
19 |
-
var a = document.createElement('a');
|
20 |
-
a.href = a.textContent = url = '';
|
21 |
-
parent.appendChild(a);
|
22 |
-
var primary_link = tinycolor( document.defaultView.getComputedStyle(a, null).color );
|
23 |
-
parent.removeChild(a);
|
24 |
-
}
|
25 |
-
|
26 |
-
if (tinycolor.equals(primary_background, 'transparent')) {
|
27 |
-
primary_background = tinycolor('#fff');
|
28 |
-
}
|
29 |
-
|
30 |
-
var accent_color = tinycolor(primary_link.toString()).darken(15).brighten();
|
31 |
-
var muted_accent_color = tinycolor(primary_link.toString()).darken(15).setAlpha(.6);
|
32 |
-
|
33 |
-
var hover_link = tinycolor(primary_link.toString()).lighten(20);
|
34 |
-
var muted_color = (primary_color.isLight()) ? tinycolor(primary_color.toString()).darken(15) : tinycolor(primary_color.toString()).lighten(20);
|
35 |
-
var muted_link = tinycolor(primary_color.toString()).lighten(20);
|
36 |
-
var secondary_link = tinycolor(primary_link.toString()).darken(20);
|
37 |
-
|
38 |
-
var border_color = tinycolor(primary_color.toString()).setAlpha(.1);
|
39 |
-
|
40 |
-
var muted_background = tinycolor(primary_background.toString());
|
41 |
-
var muted_background = (muted_background.isLight()) ? muted_background.darken(5) : muted_background.lighten(15);
|
42 |
-
var muted_soft_background = tinycolor(primary_background.toString());
|
43 |
-
var muted_soft_background = (muted_soft_background.isLight()) ? muted_soft_background.darken(10) : muted_soft_background.lighten(20);
|
44 |
-
var hover_background = tinycolor(primary_link.toString()).lighten(20).setAlpha(.2);
|
45 |
-
|
46 |
-
var button_border_color = tinycolor(hover_link.toString()).darken(5);
|
47 |
-
var button_hover_top = tinycolor(hover_link.toString()).lighten(5);
|
48 |
-
var button_hover_bottom = tinycolor(primary_link.toString()).lighten(5);
|
49 |
-
var button_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.3);
|
50 |
-
var button_hover_shadow = tinycolor(button_border_color.toString()).lighten(15).setAlpha(.4);
|
51 |
-
var button_border_hover_color = tinycolor(hover_link.toString());
|
52 |
-
|
53 |
-
// Additional rules
|
54 |
-
if (!tinycolor.isReadable(accent_color, muted_soft_background)) {
|
55 |
-
accent_color = tinycolor(secondary_link.toString()).brighten(20);
|
56 |
-
muted_accent_color = tinycolor(secondary_link.toString()).lighten(20);
|
57 |
-
}
|
58 |
-
if (!tinycolor.isReadable(secondary_link, '#F0F0F0')) {
|
59 |
-
secondary_link = (secondary_link.isLight()) ? tinycolor(secondary_link.toString()).darken() : tinycolor(secondary_link.toString()).lighten();
|
60 |
-
}
|
61 |
-
var button_color = tinycolor('#fff');
|
62 |
-
if (!tinycolor.isReadable(button_color, primary_link)) {
|
63 |
-
button_color = tinycolor(primary_background.toString());
|
64 |
-
}
|
65 |
-
|
66 |
-
// Font family
|
67 |
-
css+= css_prefix + ' .ecwid, ' + css_prefix + ' .ecwid * '+ css_prefix + ' .ecwid-minicart *, ' + css_prefix + ' .ecwid-SearchPanel * { font-family: inherit !important; }\n';
|
68 |
-
|
69 |
-
|
70 |
-
// Primary colors
|
71 |
-
css+= css_prefix + ' div.ecwid-productBrowser-head{ color: '+ primary_color.toString() +'; }\n';
|
72 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productNameLink a:visited{ color: '+ muted_color.toString() +'; }\n';
|
73 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productMiddleFragment-mouseover div.ecwid-productBrowser-productNameLink a:visited{ font-size: 17px; color: '+ primary_color.toString() +'; }\n';
|
74 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:active, ' + css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-productNameLink a:visited{ color: '+ primary_color.toString() +'; }\n';
|
75 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-price{ color: '+ primary_color.toString() +'; }\n';
|
76 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-subtotalAmountMinus, ' + css_prefix + ' div.ecwid-productBrowser-cart-shippingAmount, ' + css_prefix + ' div.ecwid-productBrowser-cart-taxAmount{ color: '+ primary_color.toString() +'; }\n';
|
77 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalLabel{ color: '+ primary_color.toString() +'; }\n';
|
78 |
-
css+= css_prefix + ' table.ecwid-productBrowser-productsTable-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsList-v2 div.ecwid-productBrowser-productNameLink:hover a, ' + css_prefix + ' table.ecwid-productBrowser-productsGrid-v2 div.ecwid-productBrowser-productNameLink:hover a { color: '+ primary_color.toString() +'; }\n';
|
79 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price, ' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ primary_color.toString() +'; }\n';
|
80 |
-
css+= css_prefix + ' .ecwid-minicart-mini-count{ color: '+ primary_link.toString() +'; }\n';
|
81 |
-
|
82 |
-
// Muted colors
|
83 |
-
css+= css_prefix + ' .ecwid{ color: '+ muted_color.toString() +'; }\n';
|
84 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath{ color: '+ muted_color.toString() +'; }\n';
|
85 |
-
css+= css_prefix + ' div.ecwid-productBrowser-subcategories-categoryName{ color: '+ muted_color.toString() +'; }\n';
|
86 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-itemsCountLabel{ color: '+ muted_color.toString() +'; }\n';
|
87 |
-
css+= css_prefix + ' div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
88 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div{ color: '+ muted_color.toString() +'; }\n';
|
89 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-optionPanel label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
90 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
91 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
92 |
-
css+= css_prefix + ' span.ecwid-productBrowser-cart-weight{ color: '+ muted_color.toString() +'; }\n';
|
93 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
94 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-subtotalLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-shippingLabel,' + css_prefix + ' div.ecwid-productBrowser-cart-taxLabel{ color: '+ muted_color.toString() +'; }\n';
|
95 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote{ color: '+ muted_color.toString() +'; }\n';
|
96 |
-
css+= css_prefix + ' label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
97 |
-
css+= css_prefix + ' div.ecwid-FormPopup-fieldWrapper label.ecwid-fieldLabel{ color: '+ muted_color.toString() +'; }\n';
|
98 |
-
css+= css_prefix + ' div.ecwid-Checkout-PasswordBlock-tip{ color: '+ muted_color.toString() +'; }\n';
|
99 |
-
css+= css_prefix + ' div.ecwid-pager{ color: '+ muted_color.toString() +'; }\n';
|
100 |
-
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-disabled{ color: '+ muted_color.toString() +'; }\n';
|
101 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-inTheBag div{ color: '+ muted_color.toString() +'; }\n';
|
102 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsList-descr{ color: '+ muted_color.toString() +'; }\n';
|
103 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsTable div.ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
104 |
-
css+= css_prefix + ' div.ecwid-productBrowser-extraFields-side{ color: '+ muted_color.toString() +'; }\n';
|
105 |
-
css+= css_prefix + ' div.ecwid-Invoice-block{ color: '+ muted_color.toString() +'; }\n';
|
106 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-sku{ color: '+ muted_color.toString() +'; }\n';
|
107 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-optionsList{ color: '+ muted_color.toString() +'; }\n';
|
108 |
-
css+= css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-productBrowser-price,' + css_prefix + ' table.ecwid-Invoice-itemsTable .ecwid-Invoice-qtyLabel{ color: '+ muted_color.toString() +'; }\n';
|
109 |
-
css+= css_prefix + ' div.ecwid-Invoice-Summary-label,' + css_prefix + ' div.ecwid-Invoice-Summary-value{ color: '+ muted_color.toString() +'; }\n';
|
110 |
-
css+= css_prefix + ' div.ecwid-Invoice-header-placeOrder div.gwt-Label,' + css_prefix + ' div.ecwid-Invoice-footer-placeOrder div.gwt-Label,' + css_prefix + ' td.ecwid-Invoice-header-orderConfirmation-text,' + css_prefix + ' td.ecwid-Invoice-footer-orderConfirmation-text{ color: '+ muted_color.toString() +'; }\n';
|
111 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-outOfStockLabel{ color: '+ muted_color.toString() +'; }\n';
|
112 |
-
|
113 |
-
// Borders
|
114 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsGrid-productTopFragment-mouseover,' + css_prefix + ' div.ecwid-productBrowser-productsGrid-productBottomFragment-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
115 |
-
css+= css_prefix + ' .ecwid-productBrowser-productsGrid-v2 td.ecwid-productBrowser-productsGrid-productInside.ecwid-productBrowser-productsGrid-hover{ border-color: '+ border_color.toString() +'; }\n';
|
116 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsList-mouseover{ border-color: '+ border_color.toString() +'; }\n';
|
117 |
-
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-top-hover{ border-color: '+ border_color.toString() +'; }\n';
|
118 |
-
css+= css_prefix + ' .ecwid-productBrowser-relatedProducts .ecwid-productBrowser-relatedProducts-item-bottom-hover{ border-color: '+ border_color.toString() +'; }\n';
|
119 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarFirst,' + css_prefix + ' table.ecwid-categoriesTabBar div.gwt-TabBarRest,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem,' + css_prefix + ' div.ecwid-categories-horizontal-menuBarContainer,' + css_prefix + ' td.ecwid-categories-vertical-table-cell,' + css_prefix + ' div.ecwid-categories-MenuBarPopup div.menuSeparatorInner{ border-color: '+ border_color.toString() +'; }\n';
|
120 |
-
|
121 |
-
// Accents
|
122 |
-
css+= css_prefix + ' div.ecwid-productBrowser-price{ color: '+ accent_color.toString() +'; }\n';
|
123 |
-
css+= css_prefix + ' div.ecwid-productBrowser-details-inStockLabel{ color: '+ muted_accent_color.toString() +'; }\n';
|
124 |
-
css+= css_prefix + ' div.ecwid-Checkout-blockTitle,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-Label,' + css_prefix + ' table.ecwid-Checkout-blockTitle div.gwt-HTML{ color: '+ muted_accent_color.toString() +'; }\n';
|
125 |
-
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-visited{ color: '+ muted_accent_color.toString() +'; }\n';
|
126 |
-
css+= css_prefix + ' div.ecwid-Checkout-BreadCrumbs-link-current{ color: '+ muted_accent_color.toString() +'; border-color: '+ muted_accent_color.toString() +'; }\n';
|
127 |
-
css+= css_prefix + ' div.ecwid-fieldEnvelope-label{ color: '+ accent_color.toString() +'; }\n';
|
128 |
-
css+= css_prefix + ' input.gwt-PasswordTextBox,' + css_prefix + ' textarea.gwt-TextArea,' + css_prefix + ' input.gwt-DateBox{ color: '+ accent_color.toString() +'; }\n';
|
129 |
-
css+= css_prefix + ' .ecwid div.ecwid-AccentedContinueButton-label{ color: '+ accent_color.toString() +'; }\n';
|
130 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-termsCheckbox-rollover{ background-color: '+ hover_background.toString() +'; }\n';
|
131 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-estimationNote span{ color: '+ muted_accent_color.toString() +'; }\n';
|
132 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-asterisk{ color: '+ muted_accent_color.toString() +'; }\n';
|
133 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-totalAmount{ color: '+ accent_color.toString() +'; }\n';
|
134 |
-
|
135 |
-
// Primary links
|
136 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:active,' + css_prefix + ' div.ecwid-productBrowser-categoryPath a:visited{ color: '+ primary_link.toString() +'; }\n';
|
137 |
-
css+= css_prefix + ' .ecwid a,' + css_prefix + ' .ecwid a:active, ' + css_prefix + ' .ecwid a:visited{ color: '+ primary_link.toString() +'; }\n';
|
138 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link{ color: '+ primary_link.toString() +'; }\n';
|
139 |
-
css+= css_prefix + ' div.ecwid-pager span.ecwid-pager-link-enabled{ color: '+ primary_link.toString() +'; }\n';
|
140 |
-
css+= css_prefix + ' div.ecwid-productBrowser-productsTable-addToBagLink{ color: '+ primary_link.toString() +'; }\n';
|
141 |
-
|
142 |
-
// Hover links
|
143 |
-
css+= css_prefix + ' div.ecwid-productBrowser-categoryPath a:hover{ color: '+ hover_link.toString() +'; }\n';
|
144 |
-
css+= css_prefix + ' .ecwid a:hover{ color: '+ hover_link.toString() +'; }\n';
|
145 |
-
css+= css_prefix + ' div.ecwid-results-topPanel div.ecwid-results-topPanel-viewAsPanel-link:hover{ color: '+ hover_link.toString() +'; }\n';
|
146 |
-
|
147 |
-
// Backgrounds
|
148 |
-
css+= css_prefix + ' .ecwid .ecwid-ProductDetails-gray-panel-bottom,' + css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
149 |
-
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel div.ecwid-productBrowser-sharePanel-header{ background-color: '+ muted_background.toString() +'; }\n';
|
150 |
-
css+= css_prefix + ' a.ecwid-productBrowser-nav-left,' + css_prefix + ' a.ecwid-productBrowser-nav-right{ background-color: '+ muted_background.toString() +'; }\n';
|
151 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel{ background-color: '+ muted_background.toString() +'; }\n';
|
152 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel .ecwid-productBrowser-ask-advice-panel-icon{ background-color: '+ muted_background.toString() +'; }\n';
|
153 |
-
css+= css_prefix + ' div.ecwid-productBrowser-backgroundedPanel{ background-color: '+ muted_soft_background.toString() +'; }\n';
|
154 |
-
css+= css_prefix + ' .ecwid-productBrowser-details-rightPanel .ecwid-productBrowser-sharePanel-buttonsContainer{ background-color: '+ muted_soft_background.toString() +'; border-color: '+ tinycolor(muted_color.toString()).setAlpha(.2).toString() +'}\n';
|
155 |
-
css+= css_prefix + ' tr.ecwid-productBrowser-cart-itemsTable-row-selected,' + css_prefix + ' td.ecwid-productBrowser-cart-itemsTable-cell-selected{ background-color: '+ muted_background.toString() +'; }\n';
|
156 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-EnterCouponBox{ background-color: '+ muted_background.toString() +'; border-color: transparent; }\n';
|
157 |
-
css+= css_prefix + ' div.ecwid-form{ background-color: '+ muted_background.toString() +'; }\n';
|
158 |
-
css+= css_prefix + ' .ecwid input.ecwid-productBrowser-details-qtyTextField{ color: '+ primary_color.toString() +'; }\n';
|
159 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cell{ background-color: '+ primary_background.toString() +'; }\n';
|
160 |
-
css+= css_prefix + ' td.ecwid-productBrowser-productsTable-cellOdd{ background-color: '+ muted_background.toString() +'; }\n';
|
161 |
-
css+= css_prefix + ' input.gwt-TextBox, ' + css_prefix + ' input.gwt-PasswordTextBox, ' + css_prefix + ' textarea.gwt-TextArea, ' + css_prefix + ' input.gwt-DateBox, ' + css_prefix + ' .ecwid-SearchPanel-field{ background-color: '+ primary_background.toString() +'; }\n';
|
162 |
-
css+= css_prefix + ' div.ecwid-Invoice-cell-title{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
163 |
-
css+= css_prefix + ' div.ecwid-Invoice-blockTitle{ color: '+ muted_color +';background-color: '+ muted_background.toString() +'; }\n';
|
164 |
-
css+= css_prefix + ' td.ecwid-Invoice-cell{ background-color: '+ muted_background.toString() +'; }\n';
|
165 |
-
css+= css_prefix + ' td.ecwid-Invoice-edgeCell{ background-color: '+ muted_background.toString() +'; }\n';
|
166 |
-
|
167 |
-
// Buttons
|
168 |
-
css+= css_prefix + ' div.ecwid-AddToBagButton::after { content: "' + msg('TableProductsContainer.add_to_bag', 'Add To Bag') + '"; white-space: nowrap; }\n';
|
169 |
-
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after { content: "' + msg('ShoppingCartView.continue', 'Continue Shopping') + '"; white-space: nowrap; }\n';
|
170 |
-
css+= css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton:after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Checkout') + '"; white-space: nowrap; }\n';
|
171 |
-
css+= css_prefix + ' div.ecwid-Checkout-placeOrderButton::after { content: "' + msg('FBAutofillCheckout.Breadcrumbs.checkout', 'Place Order') + '"; white-space: nowrap; }\n';
|
172 |
-
|
173 |
-
css+= css_prefix + ' div.ecwid-ContinueShoppingButton::after,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after, ' + css_prefix + ' div.ecwid-AddToBagButton::after, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton::after, ' + css_prefix + ' button.ecwid-AccentedButton span, ' + css_prefix + ' div.ecwid-Checkout-placeOrderButton::after{ color: '+ button_color +'; }\n';
|
174 |
-
|
175 |
-
css+= css_prefix + ' button.ecwid-AccentedButton,' + css_prefix + ' div.ecwid-AddToBagButton-up, ' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up,' + css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-AddToBagButton-down-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-down-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-down-hovering,' + css_prefix + ' button.ecwid-AccentedButton:hover { -webkit-box-sizing: border-box; box-sizing: border-box; width: auto; min-width: 160px; height: auto; padding: 11px 40px; background-color: '+primary_link+'; background-image: -webkit-gradient(linear, left top, left bottom, from('+hover_link+'), to('+primary_link+')); background-image: -webkit-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -moz-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -ms-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: -o-linear-gradient(top, '+hover_link+', '+primary_link+'); background-image: linear-gradient(to bottom, '+hover_link+', '+primary_link+'); border: 1px solid '+button_border_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_shadow+'; box-shadow: inset 0 1px 0 '+button_shadow+'; text-decoration: none; text-shadow: 0 1px 0 rgba(0,0,0,0.1); border-radius: 3px; padding-left: 20px; padding-right: 20px; }\n';
|
176 |
-
|
177 |
-
css+= css_prefix + ' div.ecwid-AddToBagButton-up-hovering,' + css_prefix + ' div.ecwid-productBrowser-cart-checkoutButton-up-hovering,' + css_prefix + ' div.ecwid-Checkout-placeOrderButton-up-hovering,' + css_prefix + ' div.ecwid-ContinueShoppingButton-up-hovering { background-image: -webkit-gradient(linear, left top, left bottom, from('+button_hover_top+'), to('+button_hover_bottom+')); background-image: -webkit-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -moz-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -ms-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: -o-linear-gradient(top, '+button_hover_top+', '+button_hover_bottom+'); background-image: linear-gradient(to bottom, '+button_hover_top+', '+button_hover_bottom+'); border: 1px solid '+button_border_hover_color+'; -webkit-box-shadow: inset 0 1px 0 '+button_hover_shadow+'; box-shadow: inset 0 1px 0 '+button_hover_shadow+'; text-decoration: none; text-shadow: 0 -1px 0 rgba(0,0,0,0.2); } \n';
|
178 |
-
|
179 |
-
|
180 |
-
css+= css_prefix + ' button.gwt-Button,' + css_prefix + ' #wrapper button.gwt-Button{ color: '+ secondary_link +'; }\n';
|
181 |
-
css+= css_prefix + ' button.ecwid-AccentedButton{ line-height: 1; }\n';
|
182 |
-
|
183 |
-
// Search
|
184 |
-
css+= css_prefix + ' .ecwid-SearchPanel-button { background-color: '+ muted_background.toString() +'; border: 1px solid '+ border_color +'; border-radius: 2px; color: '+ primary_color +'; cursor: pointer; font-size: 12px; height: 26px; outline: medium none; padding: 2px 5px; text-decoration: none; vertical-align: baseline; white-space: nowrap; }\n';
|
185 |
-
|
186 |
-
// Categories
|
187 |
-
css+= css_prefix + ' span.ecwid-categories-category{ color: '+ muted_color.toString() +'; }\n';
|
188 |
-
css+= css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-selected span.ecwid-categories-category,' + css_prefix + ' div.ecwid-categoriesMenuBar td.gwt-MenuItem-current span.ecwid-categories-category,' + css_prefix + ' td.ecwid-categories-vertical-table-cell-selected span.ecwid-categories-category,' + css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected span.ecwid-categories-category{ color: '+ primary_link.toString() +'; }\n';
|
189 |
-
|
190 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected td { background: none !important; }\n';
|
191 |
-
css+= css_prefix + ' table.ecwid-categoriesTabBar table.gwt-TabBarItem-selected { border: 1px solid; border-bottom: 0px; border-color: '+ border_color.toString() +'; }\n';
|
192 |
-
css+= css_prefix + ' .ecwid .ecwid-productBrowser-ask-advice-panel { min-height: 18px; height: auto; }\n';
|
193 |
-
|
194 |
-
head = document.getElementsByTagName('head')[0],
|
195 |
-
style = document.createElement('style');
|
196 |
-
style.type = 'text/css';
|
197 |
-
if (style.styleSheet) {
|
198 |
-
style.styleSheet.cssText = css;
|
199 |
-
} else {
|
200 |
-
style.appendChild(document.createTextNode(css));
|
201 |
-
}
|
202 |
-
head.appendChild(style);
|
203 |
-
document.getElementsByTagName("body")[0].className += ' chameleon';
|
204 |
-
});
|
205 |
-
}
|
206 |
-
|
207 |
-
function getLinkColor(url) {
|
208 |
-
var a = document.createElement('a');
|
209 |
-
a.href = a.textContent = url;
|
210 |
-
document.body.appendChild(a);
|
211 |
-
return document.defaultView.getComputedStyle(a, null).color;
|
212 |
-
}
|
213 |
-
|
214 |
-
function toCamelCase(s){
|
215 |
-
for(var exp=/-([a-z])/; exp.test(s); s=s.replace(exp,RegExp.$1.toUpperCase()));
|
216 |
-
return s;
|
217 |
-
}
|
218 |
-
|
219 |
-
function getStyle(e,a){
|
220 |
-
var v=null;
|
221 |
-
if(document.defaultView && document.defaultView.getComputedStyle){
|
222 |
-
var cs = document.defaultView.getComputedStyle(e, null);
|
223 |
-
if(cs && cs.getPropertyValue)
|
224 |
-
v = cs.getPropertyValue(a);
|
225 |
-
}
|
226 |
-
if(!v && e.currentStyle)
|
227 |
-
v = e.currentStyle[toCamelCase(a)];
|
228 |
-
return v;
|
229 |
-
}
|
230 |
-
|
231 |
-
function getBackground(e){
|
232 |
-
var v = getStyle(e,'background-color');
|
233 |
-
while (!v || v=='transparent' || v=='#000000' || v=='rgba(0, 0, 0, 0)'){
|
234 |
-
if( e == document.body )
|
235 |
-
v = '#fff';
|
236 |
-
else {
|
237 |
-
e = e.parentNode;
|
238 |
-
v = getStyle(e, 'background-color');
|
239 |
-
}
|
240 |
-
}
|
241 |
-
return v;
|
242 |
-
}
|
243 |
-
|
244 |
-
function msg(label, defaultValue) {
|
245 |
-
var messageBundles = (window.Ecwid && window.Ecwid.MessageBundles) ? window.Ecwid.MessageBundles : {};
|
246 |
-
var bundle = messageBundles['ru.cdev.xnext.client'] ? messageBundles['ru.cdev.xnext.client'] : {};
|
247 |
-
return bundle[label] || defaultValue;
|
248 |
-
}
|
249 |
-
|
250 |
-
// TinyColor v1.1.2
|
251 |
-
// https://github.com/bgrins/TinyColor
|
252 |
-
// Brian Grinstead, MIT License
|
253 |
-
!function(){function t(r,n){if(r=r?r:"",n=n||{},r instanceof t)return r;if(!(this instanceof t))return new t(r,n);var a=e(r);this._originalInput=r,this._r=a.r,this._g=a.g,this._b=a.b,this._a=a.a,this._roundA=j(100*this._a)/100,this._format=n.format||a.format,this._gradientType=n.gradientType,this._r<1&&(this._r=j(this._r)),this._g<1&&(this._g=j(this._g)),this._b<1&&(this._b=j(this._b)),this._ok=a.ok,this._tc_id=I++}function e(t){var e={r:0,g:0,b:0},n=1,i=!1,o=!1;return"string"==typeof t&&(t=q(t)),"object"==typeof t&&(t.hasOwnProperty("r")&&t.hasOwnProperty("g")&&t.hasOwnProperty("b")?(e=r(t.r,t.g,t.b),i=!0,o="%"===String(t.r).substr(-1)?"prgb":"rgb"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("v")?(t.s=O(t.s),t.v=O(t.v),e=s(t.h,t.s,t.v),i=!0,o="hsv"):t.hasOwnProperty("h")&&t.hasOwnProperty("s")&&t.hasOwnProperty("l")&&(t.s=O(t.s),t.l=O(t.l),e=a(t.h,t.s,t.l),i=!0,o="hsl"),t.hasOwnProperty("a")&&(n=t.a)),n=k(n),{ok:i,format:t.format||o,r:T(255,$(e.r,0)),g:T(255,$(e.g,0)),b:T(255,$(e.b,0)),a:n}}function r(t,e,r){return{r:255*A(t,255),g:255*A(e,255),b:255*A(r,255)}}function n(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=(i+s)/2;if(i==s)n=a=0;else{var f=i-s;switch(a=o>.5?f/(2-i-s):f/(i+s),i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,l:o}}function a(t,e,r){function n(t,e,r){return 0>r&&(r+=1),r>1&&(r-=1),1/6>r?t+6*(e-t)*r:.5>r?e:2/3>r?t+(e-t)*(2/3-r)*6:t}var a,i,s;if(t=A(t,360),e=A(e,100),r=A(r,100),0===e)a=i=s=r;else{var o=.5>r?r*(1+e):r+e-r*e,f=2*r-o;a=n(f,o,t+1/3),i=n(f,o,t),s=n(f,o,t-1/3)}return{r:255*a,g:255*i,b:255*s}}function i(t,e,r){t=A(t,255),e=A(e,255),r=A(r,255);var n,a,i=$(t,e,r),s=T(t,e,r),o=i,f=i-s;if(a=0===i?0:f/i,i==s)n=0;else{switch(i){case t:n=(e-r)/f+(r>e?6:0);break;case e:n=(r-t)/f+2;break;case r:n=(t-e)/f+4}n/=6}return{h:n,s:a,v:o}}function s(t,e,r){t=6*A(t,360),e=A(e,100),r=A(r,100);var n=N.floor(t),a=t-n,i=r*(1-e),s=r*(1-a*e),o=r*(1-(1-a)*e),f=n%6,h=[r,s,i,i,o,r][f],u=[o,r,r,s,i,i][f],l=[i,i,o,r,r,s][f];return{r:255*h,g:255*u,b:255*l}}function o(t,e,r,n){var a=[M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return n&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function f(t,e,r,n){var a=[M(P(n)),M(j(t).toString(16)),M(j(e).toString(16)),M(j(r).toString(16))];return a.join("")}function h(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s-=r/100,n.s=H(n.s),t(n)}function u(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.s+=r/100,n.s=H(n.s),t(n)}function l(e){return t(e).desaturate(100)}function c(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l+=r/100,n.l=H(n.l),t(n)}function g(e,r){r=0===r?0:r||10;var n=t(e).toRgb();return n.r=$(0,T(255,n.r-j(255*-(r/100)))),n.g=$(0,T(255,n.g-j(255*-(r/100)))),n.b=$(0,T(255,n.b-j(255*-(r/100)))),t(n)}function d(e,r){r=0===r?0:r||10;var n=t(e).toHsl();return n.l-=r/100,n.l=H(n.l),t(n)}function b(e,r){var n=t(e).toHsl(),a=(j(n.h)+r)%360;return n.h=0>a?360+a:a,t(n)}function p(e){var r=t(e).toHsl();return r.h=(r.h+180)%360,t(r)}function m(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+120)%360,s:r.s,l:r.l}),t({h:(n+240)%360,s:r.s,l:r.l})]}function _(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+90)%360,s:r.s,l:r.l}),t({h:(n+180)%360,s:r.s,l:r.l}),t({h:(n+270)%360,s:r.s,l:r.l})]}function v(e){var r=t(e).toHsl(),n=r.h;return[t(e),t({h:(n+72)%360,s:r.s,l:r.l}),t({h:(n+216)%360,s:r.s,l:r.l})]}function y(e,r,n){r=r||6,n=n||30;var a=t(e).toHsl(),i=360/n,s=[t(e)];for(a.h=(a.h-(i*r>>1)+720)%360;--r;)a.h=(a.h+i)%360,s.push(t(a));return s}function w(e,r){r=r||6;for(var n=t(e).toHsv(),a=n.h,i=n.s,s=n.v,o=[],f=1/r;r--;)o.push(t({h:a,s:i,v:s})),s=(s+f)%1;return o}function x(t){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[t[r]]=r);return e}function k(t){return t=parseFloat(t),(isNaN(t)||0>t||t>1)&&(t=1),t}function A(t,e){R(t)&&(t="100%");var r=F(t);return t=T(e,$(0,parseFloat(t))),r&&(t=parseInt(t*e,10)/100),N.abs(t-e)<1e-6?1:t%e/parseFloat(e)}function H(t){return T(1,$(0,t))}function S(t){return parseInt(t,16)}function R(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function F(t){return"string"==typeof t&&-1!=t.indexOf("%")}function M(t){return 1==t.length?"0"+t:""+t}function O(t){return 1>=t&&(t=100*t+"%"),t}function P(t){return Math.round(255*parseFloat(t)).toString(16)}function C(t){return S(t)/255}function q(t){t=t.replace(z,"").replace(E,"").toLowerCase();var e=!1;if(B[t])t=B[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=U.rgb.exec(t))?{r:r[1],g:r[2],b:r[3]}:(r=U.rgba.exec(t))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=U.hsl.exec(t))?{h:r[1],s:r[2],l:r[3]}:(r=U.hsla.exec(t))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=U.hsv.exec(t))?{h:r[1],s:r[2],v:r[3]}:(r=U.hsva.exec(t))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=U.hex8.exec(t))?{a:C(r[1]),r:S(r[2]),g:S(r[3]),b:S(r[4]),format:e?"name":"hex8"}:(r=U.hex6.exec(t))?{r:S(r[1]),g:S(r[2]),b:S(r[3]),format:e?"name":"hex"}:(r=U.hex3.exec(t))?{r:S(r[1]+""+r[1]),g:S(r[2]+""+r[2]),b:S(r[3]+""+r[3]),format:e?"name":"hex"}:!1}function L(t){var e,r;return t=t||{level:"AA",size:"small"},e=(t.level||"AA").toUpperCase(),r=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA"),"small"!==r&&"large"!==r&&(r="small"),{level:e,size:r}}var z=/^[\s,#]+/,E=/\s+$/,I=0,N=Math,j=N.round,T=N.min,$=N.max,D=N.random;t.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,e,r,n,a,i,s=this.toRgb();return t=s.r/255,e=s.g/255,r=s.b/255,n=.03928>=t?t/12.92:Math.pow((t+.055)/1.055,2.4),a=.03928>=e?e/12.92:Math.pow((e+.055)/1.055,2.4),i=.03928>=r?r/12.92:Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*a+.0722*i},setAlpha:function(t){return this._a=k(t),this._roundA=j(100*this._a)/100,this},toHsv:function(){var t=i(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=i(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),n=j(100*t.v);return 1==this._a?"hsv("+e+", "+r+"%, "+n+"%)":"hsva("+e+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=n(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=n(this._r,this._g,this._b),e=j(360*t.h),r=j(100*t.s),a=j(100*t.l);return 1==this._a?"hsl("+e+", "+r+"%, "+a+"%)":"hsla("+e+", "+r+"%, "+a+"%, "+this._roundA+")"},toHex:function(t){return o(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(){return f(this._r,this._g,this._b,this._a)},toHex8String:function(){return"#"+this.toHex8()},toRgb:function(){return{r:j(this._r),g:j(this._g),b:j(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+j(this._r)+", "+j(this._g)+", "+j(this._b)+")":"rgba("+j(this._r)+", "+j(this._g)+", "+j(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:j(100*A(this._r,255))+"%",g:j(100*A(this._g,255))+"%",b:j(100*A(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%)":"rgba("+j(100*A(this._r,255))+"%, "+j(100*A(this._g,255))+"%, "+j(100*A(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":this._a<1?!1:G[o(this._r,this._g,this._b,!0)]||!1},toFilter:function(e){var r="#"+f(this._r,this._g,this._b,this._a),n=r,a=this._gradientType?"GradientType = 1, ":"";if(e){var i=t(e);n=i.toHex8String()}return"progid:DXImageTransform.Microsoft.gradient("+a+"startColorstr="+r+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var r=!1,n=this._a<1&&this._a>=0,a=!e&&n&&("hex"===t||"hex6"===t||"hex3"===t||"name"===t);return a?"name"===t&&0===this._a?this.toName():this.toRgbString():("rgb"===t&&(r=this.toRgbString()),"prgb"===t&&(r=this.toPercentageRgbString()),("hex"===t||"hex6"===t)&&(r=this.toHexString()),"hex3"===t&&(r=this.toHexString(!0)),"hex8"===t&&(r=this.toHex8String()),"name"===t&&(r=this.toName()),"hsl"===t&&(r=this.toHslString()),"hsv"===t&&(r=this.toHsvString()),r||this.toHexString())},_applyModification:function(t,e){var r=t.apply(null,[this].concat([].slice.call(e)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(c,arguments)},brighten:function(){return this._applyModification(g,arguments)},darken:function(){return this._applyModification(d,arguments)},desaturate:function(){return this._applyModification(h,arguments)},saturate:function(){return this._applyModification(u,arguments)},greyscale:function(){return this._applyModification(l,arguments)},spin:function(){return this._applyModification(b,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(y,arguments)},complement:function(){return this._applyCombination(p,arguments)},monochromatic:function(){return this._applyCombination(w,arguments)},splitcomplement:function(){return this._applyCombination(v,arguments)},triad:function(){return this._applyCombination(m,arguments)},tetrad:function(){return this._applyCombination(_,arguments)}},t.fromRatio=function(e,r){if("object"==typeof e){var n={};for(var a in e)e.hasOwnProperty(a)&&(n[a]="a"===a?e[a]:O(e[a]));e=n}return t(e,r)},t.equals=function(e,r){return e&&r?t(e).toRgbString()==t(r).toRgbString():!1},t.random=function(){return t.fromRatio({r:D(),g:D(),b:D()})},t.mix=function(e,r,n){n=0===n?0:n||50;var a,i=t(e).toRgb(),s=t(r).toRgb(),o=n/100,f=2*o-1,h=s.a-i.a;a=f*h==-1?f:(f+h)/(1+f*h),a=(a+1)/2;var u=1-a,l={r:s.r*a+i.r*u,g:s.g*a+i.g*u,b:s.b*a+i.b*u,a:s.a*o+i.a*(1-o)};return t(l)},t.readability=function(e,r){var n=t(e),a=t(r);return(Math.max(n.getLuminance(),a.getLuminance())+.05)/(Math.min(n.getLuminance(),a.getLuminance())+.05)},t.isReadable=function(e,r,n){var a,i,s=t.readability(e,r);switch(i=!1,a=L(n),a.level+a.size){case"AAsmall":case"AAAlarge":i=s>=4.5;break;case"AAlarge":i=s>=3;break;case"AAAsmall":i=s>=7}return i},t.mostReadable=function(e,r,n){var a,i,s,o,f=null,h=0;n=n||{},i=n.includeFallbackColors,s=n.level,o=n.size;for(var u=0;u<r.length;u++)a=t.readability(e,r[u]),a>h&&(h=a,f=t(r[u]));return t.isReadable(e,f,{level:s,size:o})||!i?f:(n.includeFallbackColors=!1,t.mostReadable(e,["#fff","#000"],n))};var B=t.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},G=t.hexNames=x(B),U=function(){var t="[-\\+]?\\d+%?",e="[-\\+]?\\d*\\.\\d+%?",r="(?:"+e+")|(?:"+t+")",n="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",a="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{rgb:new RegExp("rgb"+n),rgba:new RegExp("rgba"+a),hsl:new RegExp("hsl"+n),hsla:new RegExp("hsla"+a),hsv:new RegExp("hsv"+n),hsva:new RegExp("hsva"+a),hex3:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex8:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define(function(){return t}):window.tinycolor=t}();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/kissmetrics.js
DELETED
@@ -1,50 +0,0 @@
|
|
1 |
-
if ( typeof ecwid_kissmetrics.store_id != 'undefined' ) {
|
2 |
-
_kmq.push([ 'identify', ecwid_kissmetrics.store_id ] );
|
3 |
-
}
|
4 |
-
|
5 |
-
function ecwid_kissmetrics_set(nameValue) {
|
6 |
-
ecwid_kissmetrics.items.push({'property' : nameValue });
|
7 |
-
|
8 |
-
ecwid_kissmetrics_flush();
|
9 |
-
}
|
10 |
-
|
11 |
-
function ecwid_kissmetrics_record(event) {
|
12 |
-
if (typeof this.fired == 'undefined') {
|
13 |
-
this.fired = [];
|
14 |
-
}
|
15 |
-
|
16 |
-
event = 'wp-plugin ' + event;
|
17 |
-
|
18 |
-
if (this.fired.indexOf(event) != -1) return;
|
19 |
-
|
20 |
-
ecwid_kissmetrics.items.push({event: event});
|
21 |
-
this.fired.push(event);
|
22 |
-
|
23 |
-
ecwid_kissmetrics_flush();
|
24 |
-
}
|
25 |
-
|
26 |
-
function ecwid_kissmetrics_flush() {
|
27 |
-
if (typeof _kmq == 'undefined') {
|
28 |
-
return;
|
29 |
-
}
|
30 |
-
|
31 |
-
for (var i = 0; i < ecwid_kissmetrics.items.length; i++) {
|
32 |
-
var item = ecwid_kissmetrics.items[i];
|
33 |
-
if (typeof item.event != 'undefined') {
|
34 |
-
_kmq.push(['record', ecwid_kissmetrics.items[i].event]);
|
35 |
-
} else if (typeof item.property != 'undefined') {
|
36 |
-
_kmq.push( [ 'set', ecwid_kissmetrics.items[i].property ] );
|
37 |
-
}
|
38 |
-
}
|
39 |
-
|
40 |
-
ecwid_kissmetrics.items = [];
|
41 |
-
}
|
42 |
-
|
43 |
-
jQuery(document).ready(function() {
|
44 |
-
|
45 |
-
jQuery.getScript('https://i.kissmetrics.com/i.js', function() {
|
46 |
-
jQuery.getScript('https://scripts.kissmetrics.com/' + ecwid_kissmetrics.key + '.2.js', function() {
|
47 |
-
ecwid_kissmetrics_flush();
|
48 |
-
})
|
49 |
-
});
|
50 |
-
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/product-popup.js
CHANGED
@@ -263,6 +263,16 @@ jQuery(document).ready(function() {
|
|
263 |
}
|
264 |
|
265 |
var buildProductsTable = function(data) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
if (Math.ceil(data.total / data.limit) < getSearchParams().page) {
|
267 |
params = getSearchParams();
|
268 |
params.page = 1;
|
@@ -331,9 +341,14 @@ jQuery(document).ready(function() {
|
|
331 |
addProduct(data.items[i]);
|
332 |
}
|
333 |
} else {
|
334 |
-
|
|
|
|
|
|
|
|
|
|
|
335 |
}
|
336 |
-
|
337 |
renderSearchParams();
|
338 |
assignHandlers();
|
339 |
setCurrentProduct(null);
|
263 |
}
|
264 |
|
265 |
var buildProductsTable = function(data) {
|
266 |
+
|
267 |
+
if (data == null) {
|
268 |
+
data = {
|
269 |
+
total: 0,
|
270 |
+
limit: 1
|
271 |
+
}
|
272 |
+
}
|
273 |
+
|
274 |
+
var params = {};
|
275 |
+
|
276 |
if (Math.ceil(data.total / data.limit) < getSearchParams().page) {
|
277 |
params = getSearchParams();
|
278 |
params.page = 1;
|
341 |
addProduct(data.items[i]);
|
342 |
}
|
343 |
} else {
|
344 |
+
var keyword = '';
|
345 |
+
if (params.keyword) {
|
346 |
+
keyword = params.keyword;
|
347 |
+
}
|
348 |
+
|
349 |
+
showEmpty(keyword);
|
350 |
}
|
351 |
+
|
352 |
renderSearchParams();
|
353 |
assignHandlers();
|
354 |
setCurrentProduct(null);
|
js/themes/flora.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
if (!window.History.options) window.History.options = {};
|
2 |
-
window.History.options.html4Mode=1;
|
|
|
|
js/themes/thevoux-wp.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
if (!window.History.options) window.History.options = {};
|
2 |
-
window.History.options.html4Mode=1;
|
|
|
|
languages/ecwid-shopping-cart.pot
CHANGED
@@ -1,516 +1,1448 @@
|
|
1 |
-
|
|
|
|
|
2 |
msgstr ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
-
|
|
|
5 |
msgstr ""
|
6 |
|
7 |
-
|
|
|
8 |
msgstr ""
|
9 |
|
10 |
-
|
|
|
11 |
msgstr ""
|
12 |
|
13 |
-
|
|
|
14 |
msgstr ""
|
15 |
|
16 |
-
|
|
|
17 |
msgstr ""
|
18 |
|
19 |
-
|
|
|
|
|
20 |
msgstr ""
|
21 |
|
22 |
-
|
|
|
23 |
msgstr ""
|
24 |
|
25 |
-
|
|
|
26 |
msgstr ""
|
27 |
|
28 |
-
|
|
|
|
|
|
|
|
|
29 |
msgstr ""
|
30 |
|
31 |
-
|
|
|
32 |
msgstr ""
|
33 |
|
34 |
-
|
|
|
35 |
msgstr ""
|
36 |
|
37 |
-
|
|
|
38 |
msgstr ""
|
39 |
|
40 |
-
|
|
|
|
|
41 |
msgstr ""
|
42 |
|
43 |
-
|
|
|
44 |
msgstr ""
|
45 |
|
46 |
-
|
|
|
47 |
msgstr ""
|
48 |
|
49 |
-
|
|
|
50 |
msgstr ""
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
msgid "Advanced settings"
|
53 |
msgstr ""
|
54 |
|
|
|
55 |
msgid "Advanced"
|
56 |
msgstr ""
|
57 |
|
58 |
-
|
|
|
59 |
msgstr ""
|
60 |
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
msgstr ""
|
63 |
|
64 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
msgstr ""
|
66 |
|
|
|
67 |
msgid "Ecwid Badge"
|
68 |
msgstr ""
|
69 |
|
|
|
|
|
70 |
msgid "Ecwid shopping cart widget"
|
71 |
msgstr ""
|
72 |
|
|
|
|
|
73 |
msgid "Ecwid ecommerce solution"
|
74 |
msgstr ""
|
75 |
|
|
|
|
|
76 |
msgid "Ecwid free shopping cart"
|
77 |
msgstr ""
|
78 |
|
|
|
|
|
79 |
msgid "Ecwid shopping cart"
|
80 |
msgstr ""
|
81 |
|
|
|
|
|
82 |
msgid "Ecwid e-commerce widgets"
|
83 |
msgstr ""
|
84 |
|
85 |
-
|
|
|
86 |
msgstr ""
|
87 |
|
88 |
-
|
|
|
|
|
|
|
|
|
|
|
89 |
msgstr ""
|
90 |
|
91 |
-
|
|
|
92 |
msgstr ""
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
msgid "Shopping Cart (Mini)"
|
95 |
msgstr ""
|
96 |
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
98 |
msgstr ""
|
99 |
|
100 |
-
|
|
|
|
|
101 |
msgstr ""
|
102 |
|
103 |
-
|
|
|
|
|
|
|
104 |
msgstr ""
|
105 |
|
106 |
-
|
|
|
|
|
107 |
msgstr ""
|
108 |
|
109 |
-
|
|
|
|
|
110 |
msgstr ""
|
111 |
|
112 |
-
|
|
|
|
|
113 |
msgstr ""
|
114 |
|
115 |
-
|
|
|
116 |
msgstr ""
|
117 |
|
118 |
-
|
|
|
119 |
msgstr ""
|
120 |
|
121 |
-
|
|
|
|
|
|
|
122 |
msgstr ""
|
123 |
|
124 |
-
|
|
|
|
|
|
|
125 |
msgstr ""
|
126 |
|
127 |
-
|
|
|
128 |
msgstr ""
|
129 |
|
130 |
-
|
|
|
131 |
msgstr ""
|
132 |
|
133 |
-
|
|
|
134 |
msgstr ""
|
135 |
|
136 |
-
|
|
|
137 |
msgstr ""
|
138 |
|
139 |
-
|
|
|
|
|
|
|
140 |
msgstr ""
|
141 |
|
142 |
-
|
|
|
143 |
msgstr ""
|
144 |
|
145 |
-
|
|
|
|
|
146 |
msgstr ""
|
147 |
|
148 |
-
|
|
|
149 |
msgstr ""
|
150 |
|
151 |
-
|
|
|
152 |
msgstr ""
|
153 |
|
154 |
-
|
|
|
155 |
msgstr ""
|
156 |
|
157 |
-
|
|
|
158 |
msgstr ""
|
159 |
|
160 |
-
|
|
|
161 |
msgstr ""
|
162 |
|
163 |
-
|
|
|
164 |
msgstr ""
|
165 |
|
166 |
-
|
|
|
167 |
msgstr ""
|
168 |
|
169 |
-
|
|
|
170 |
msgstr ""
|
171 |
|
172 |
-
|
|
|
|
|
|
|
|
|
|
|
173 |
msgstr ""
|
174 |
|
175 |
-
|
|
|
176 |
msgstr ""
|
177 |
|
178 |
-
|
|
|
179 |
msgstr ""
|
180 |
|
181 |
-
|
|
|
|
|
|
|
182 |
msgstr ""
|
183 |
|
184 |
-
|
|
|
|
|
|
|
|
|
185 |
msgstr ""
|
186 |
|
187 |
-
|
|
|
|
|
|
|
|
|
188 |
msgstr ""
|
189 |
|
190 |
-
|
|
|
191 |
msgstr ""
|
192 |
|
|
|
193 |
msgid "Category shown by default"
|
194 |
msgstr ""
|
195 |
|
|
|
196 |
msgid "Store root category"
|
197 |
msgstr ""
|
198 |
|
199 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
200 |
msgstr ""
|
201 |
|
202 |
-
|
|
|
203 |
msgstr ""
|
204 |
|
205 |
-
|
|
|
206 |
msgstr ""
|
207 |
|
208 |
-
|
|
|
|
|
|
|
|
|
209 |
msgstr ""
|
210 |
|
211 |
-
|
|
|
|
|
|
|
212 |
msgstr ""
|
213 |
|
214 |
-
|
|
|
215 |
msgstr ""
|
216 |
|
217 |
-
|
|
|
|
|
|
|
|
|
218 |
msgstr ""
|
219 |
|
220 |
-
|
|
|
|
|
|
|
221 |
msgstr ""
|
222 |
|
223 |
-
|
|
|
224 |
msgstr ""
|
225 |
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
msgstr ""
|
228 |
|
229 |
-
|
|
|
|
|
|
|
230 |
msgstr ""
|
231 |
|
|
|
232 |
msgid "Save changes"
|
233 |
msgstr ""
|
234 |
|
235 |
-
|
|
|
|
|
236 |
msgstr ""
|
237 |
|
238 |
-
|
|
|
239 |
msgstr ""
|
240 |
|
241 |
-
|
|
|
242 |
msgstr ""
|
243 |
|
244 |
-
|
|
|
|
|
245 |
msgstr ""
|
246 |
|
247 |
-
|
|
|
248 |
msgstr ""
|
249 |
|
250 |
-
|
|
|
|
|
|
|
|
|
251 |
msgstr ""
|
252 |
|
253 |
-
|
|
|
254 |
msgstr ""
|
255 |
|
256 |
-
|
|
|
|
|
|
|
|
|
|
|
257 |
msgstr ""
|
258 |
|
259 |
-
|
|
|
260 |
msgstr ""
|
261 |
|
262 |
-
|
|
|
|
|
263 |
msgstr ""
|
264 |
|
265 |
-
|
|
|
266 |
msgstr ""
|
267 |
|
268 |
-
|
|
|
269 |
msgstr ""
|
270 |
|
271 |
-
|
|
|
272 |
msgstr ""
|
273 |
|
274 |
-
|
|
|
275 |
msgstr ""
|
276 |
|
277 |
-
|
|
|
278 |
msgstr ""
|
279 |
|
280 |
-
|
|
|
281 |
msgstr ""
|
282 |
|
283 |
-
|
|
|
284 |
msgstr ""
|
285 |
|
286 |
-
|
|
|
287 |
msgstr ""
|
288 |
|
289 |
-
|
|
|
290 |
msgstr ""
|
291 |
|
292 |
-
|
|
|
293 |
msgstr ""
|
294 |
|
295 |
-
|
|
|
296 |
msgstr ""
|
297 |
|
298 |
-
|
|
|
299 |
msgstr ""
|
300 |
|
301 |
-
|
|
|
302 |
msgstr ""
|
303 |
|
304 |
-
|
|
|
|
|
305 |
msgstr ""
|
306 |
|
307 |
-
|
|
|
308 |
msgstr ""
|
309 |
|
310 |
-
|
|
|
|
|
311 |
msgstr ""
|
312 |
|
313 |
-
|
|
|
314 |
msgstr ""
|
315 |
|
316 |
-
|
|
|
317 |
msgstr ""
|
318 |
|
319 |
-
|
|
|
320 |
msgstr ""
|
321 |
|
322 |
-
|
|
|
|
|
323 |
msgstr ""
|
324 |
|
325 |
-
|
|
|
326 |
msgstr ""
|
327 |
|
328 |
-
|
|
|
329 |
msgstr ""
|
330 |
|
331 |
-
|
|
|
332 |
msgstr ""
|
333 |
|
334 |
-
|
|
|
335 |
msgstr ""
|
336 |
|
337 |
-
|
|
|
338 |
msgstr ""
|
339 |
|
340 |
-
|
|
|
341 |
msgstr ""
|
342 |
|
343 |
-
|
|
|
|
|
|
|
344 |
msgstr ""
|
345 |
|
346 |
-
|
|
|
347 |
msgstr ""
|
348 |
|
349 |
-
|
|
|
350 |
msgstr ""
|
351 |
|
352 |
-
|
|
|
353 |
msgstr ""
|
354 |
|
355 |
-
|
|
|
356 |
msgstr ""
|
357 |
|
358 |
-
|
|
|
359 |
msgstr ""
|
360 |
|
361 |
-
|
|
|
362 |
msgstr ""
|
363 |
|
364 |
-
|
|
|
|
|
365 |
msgstr ""
|
366 |
|
367 |
-
|
|
|
368 |
msgstr ""
|
369 |
|
370 |
-
|
|
|
371 |
msgstr ""
|
372 |
|
373 |
-
|
|
|
|
|
|
|
|
|
374 |
msgstr ""
|
375 |
|
376 |
-
|
|
|
377 |
msgstr ""
|
378 |
|
379 |
-
|
|
|
380 |
msgstr ""
|
381 |
|
382 |
-
|
|
|
383 |
msgstr ""
|
384 |
|
385 |
-
|
|
|
386 |
msgstr ""
|
387 |
|
388 |
-
|
|
|
389 |
msgstr ""
|
390 |
|
391 |
-
|
|
|
|
|
|
|
392 |
msgstr ""
|
393 |
|
394 |
-
|
|
|
395 |
msgstr ""
|
396 |
|
397 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
msgstr ""
|
399 |
|
|
|
400 |
msgid "Get ready to sell online"
|
401 |
msgstr ""
|
402 |
|
403 |
-
|
|
|
404 |
msgstr ""
|
405 |
|
406 |
-
|
|
|
|
|
|
|
407 |
msgstr ""
|
408 |
|
409 |
-
|
|
|
|
|
|
|
410 |
msgstr ""
|
411 |
|
|
|
412 |
msgid "Features"
|
413 |
msgstr ""
|
414 |
|
|
|
415 |
msgid "Compatible with your theme"
|
416 |
msgstr ""
|
417 |
|
418 |
-
|
|
|
419 |
msgstr ""
|
420 |
|
|
|
421 |
msgid "Free and always up to date"
|
422 |
msgstr ""
|
423 |
|
424 |
-
|
|
|
|
|
|
|
425 |
msgstr ""
|
426 |
|
|
|
427 |
msgid "Responsive design"
|
428 |
msgstr ""
|
429 |
|
|
|
430 |
msgid "Your store looks perfect<br />on all devices"
|
431 |
msgstr ""
|
432 |
|
433 |
-
|
|
|
434 |
msgstr ""
|
435 |
|
|
|
436 |
msgid "Secure checkout with over 40<br />payment options"
|
437 |
msgstr ""
|
438 |
|
|
|
439 |
msgid "Global Reach"
|
440 |
msgstr ""
|
441 |
|
442 |
-
|
|
|
443 |
msgstr ""
|
444 |
|
|
|
445 |
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
446 |
msgstr ""
|
447 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
448 |
msgid "Get Started, Create Ecwid Account"
|
449 |
msgstr ""
|
450 |
|
451 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
msgstr ""
|
453 |
|
454 |
-
|
|
|
455 |
msgstr ""
|
456 |
|
457 |
-
|
|
|
458 |
msgstr ""
|
459 |
|
460 |
-
|
|
|
461 |
msgstr ""
|
462 |
|
463 |
-
|
|
|
464 |
msgstr ""
|
465 |
|
466 |
-
|
|
|
467 |
msgstr ""
|
468 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
469 |
msgid "Choose widgets to show"
|
470 |
msgstr ""
|
471 |
|
|
|
472 |
msgid "Product catalog will be shown automatically"
|
473 |
msgstr ""
|
474 |
|
|
|
475 |
msgid "Show search"
|
476 |
msgstr ""
|
477 |
|
|
|
478 |
msgid "Show minicart"
|
479 |
msgstr ""
|
480 |
|
|
|
481 |
msgid "Show categories"
|
482 |
msgstr ""
|
483 |
|
484 |
-
|
|
|
|
|
|
|
485 |
msgstr ""
|
486 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
msgid "Demo store"
|
488 |
msgstr ""
|
489 |
|
490 |
-
|
|
|
|
|
|
|
|
|
|
|
491 |
msgstr ""
|
492 |
|
|
|
|
|
|
|
|
|
|
|
493 |
msgid "Your store will be shown here!"
|
494 |
msgstr ""
|
495 |
|
|
|
496 |
msgid "Demo Store"
|
497 |
msgstr ""
|
498 |
|
499 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
500 |
msgstr ""
|
501 |
|
502 |
-
|
|
|
503 |
msgstr ""
|
504 |
|
505 |
-
|
|
|
506 |
msgstr ""
|
507 |
|
508 |
-
|
|
|
509 |
msgstr ""
|
510 |
|
511 |
-
|
|
|
|
|
|
|
|
|
512 |
msgstr ""
|
513 |
|
514 |
-
|
|
|
|
|
|
|
515 |
msgstr ""
|
516 |
|
|
|
|
|
|
1 |
+
# Copyright (C) 2017 Ecwid Shopping Cart
|
2 |
+
# This file is distributed under the same license as the Ecwid Shopping Cart package.
|
3 |
+
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Ecwid Shopping Cart 5.4.1\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/ecwid-shopping-"
|
7 |
+
"cart\n"
|
8 |
+
"POT-Creation-Date: 2017-07-05 09:05:23+00:00\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
|
13 |
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14 |
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15 |
|
16 |
+
#: ecwid-shopping-cart.php:847
|
17 |
+
msgid "%s plugin doesn't work well with my \"%s\" theme"
|
18 |
msgstr ""
|
19 |
|
20 |
+
#: ecwid-shopping-cart.php:862
|
21 |
+
msgid "I have a problem with my %s store"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: ecwid-shopping-cart.php:890 templates/dashboard.php:44
|
25 |
+
msgid "Visit storefront"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: ecwid-shopping-cart.php:898
|
29 |
+
msgid "Manage my store"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: ecwid-shopping-cart.php:906
|
33 |
+
msgid "Read FAQ"
|
34 |
msgstr ""
|
35 |
|
36 |
+
#: ecwid-shopping-cart.php:908
|
37 |
+
msgid ""
|
38 |
+
"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: ecwid-shopping-cart.php:917
|
42 |
+
msgid "Report a problem with the store"
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: ecwid-shopping-cart.php:1279
|
46 |
+
msgid "<a %s>Online store powered by %s</a>"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: ecwid-shopping-cart.php:1592 includes/class-ecwid-nav-menus.php:111
|
50 |
+
#: includes/class-ecwid-nav-menus.php:297
|
51 |
+
#: includes/class-ecwid-nav-menus.php:300
|
52 |
+
#: includes/class-ecwid-nav-menus.php:308
|
53 |
+
msgid "Store"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: ecwid-shopping-cart.php:1796 includes/class-ecwid-admin.php:31
|
57 |
+
msgid "Setup"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: ecwid-shopping-cart.php:1796
|
61 |
+
msgid "Settings"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: ecwid-shopping-cart.php:1857 includes/class-ecwid-admin.php:33
|
65 |
+
msgid "Dashboard"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: ecwid-shopping-cart.php:1859 includes/class-ecwid-admin.php:58
|
69 |
+
#: includes/class-ecwid-admin.php:59 includes/class-ecwid-products.php:242
|
70 |
+
msgid "Products"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: ecwid-shopping-cart.php:1861
|
74 |
+
msgid "Orders"
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: ecwid-shopping-cart.php:1863 includes/class-ecwid-nav-menus.php:144
|
78 |
+
msgid "Refresh categories list"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: ecwid-shopping-cart.php:1864 includes/class-ecwid-nav-menus.php:145
|
82 |
+
msgid "Done"
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: ecwid-shopping-cart.php:1865 includes/class-ecwid-nav-menus.php:146
|
86 |
+
msgid ""
|
87 |
+
"The store top-level categories are automatically added to this drop-down menu"
|
88 |
+
msgstr ""
|
89 |
+
|
90 |
+
#: ecwid-shopping-cart.php:1974 includes/class-ecwid-oauth.php:336
|
91 |
+
msgid ""
|
92 |
+
"To be able to choose a product to insert to your posts and pages, you will "
|
93 |
+
"need to re-connect your site to your %s store. This will only require you to "
|
94 |
+
"accept permissions request – so that the plugin will be able to list your "
|
95 |
+
"products in the \"Add product\" dialog."
|
96 |
+
msgstr ""
|
97 |
+
|
98 |
+
#: ecwid-shopping-cart.php:2466
|
99 |
+
msgid "Recommendations for Your Online Store"
|
100 |
+
msgstr ""
|
101 |
+
|
102 |
+
#: includes/class-ecwid-admin.php:21
|
103 |
+
msgid "%s shopping cart settings"
|
104 |
+
msgstr ""
|
105 |
+
|
106 |
+
#: includes/class-ecwid-admin.php:22
|
107 |
+
msgid "%s Store"
|
108 |
+
msgstr ""
|
109 |
+
|
110 |
+
#: includes/class-ecwid-admin.php:48 includes/class-ecwid-admin.php:49
|
111 |
+
msgid "Sales"
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: includes/class-ecwid-admin.php:69
|
115 |
msgid "Advanced settings"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: includes/class-ecwid-admin.php:70
|
119 |
msgid "Advanced"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: includes/class-ecwid-admin.php:83 includes/class-ecwid-admin.php:84
|
123 |
+
msgid "Help"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: includes/class-ecwid-integration-divibuilder.php:25
|
127 |
+
msgid "Ecwid"
|
128 |
+
msgstr ""
|
129 |
+
|
130 |
+
#: includes/class-ecwid-integration-divibuilder.php:41
|
131 |
+
msgid "Content"
|
132 |
+
msgstr ""
|
133 |
+
|
134 |
+
#: includes/class-ecwid-integration-divibuilder.php:44
|
135 |
+
msgid "Here you can create the content that will be used within the module."
|
136 |
+
msgstr ""
|
137 |
+
|
138 |
+
#: includes/class-ecwid-integration-divibuilder.php:49
|
139 |
+
msgid "Admin Label"
|
140 |
+
msgstr ""
|
141 |
+
|
142 |
+
#: includes/class-ecwid-integration-divibuilder.php:51
|
143 |
+
msgid ""
|
144 |
+
"This will change the label of the module in the builder for easy "
|
145 |
+
"identification."
|
146 |
+
msgstr ""
|
147 |
+
|
148 |
+
#: includes/class-ecwid-integration-divibuilder.php:54
|
149 |
+
msgid "CSS ID"
|
150 |
+
msgstr ""
|
151 |
+
|
152 |
+
#: includes/class-ecwid-integration-divibuilder.php:57
|
153 |
+
msgid ""
|
154 |
+
"Enter an optional CSS ID to be used for this module. An ID can be used to "
|
155 |
+
"create custom CSS styling, or to create links to particular sections of your "
|
156 |
+
"page."
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: includes/class-ecwid-integration-divibuilder.php:60
|
160 |
+
msgid "CSS Class"
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: includes/class-ecwid-integration-divibuilder.php:63
|
164 |
+
msgid ""
|
165 |
+
"Enter optional CSS classes to be used for this module. A CSS class can be "
|
166 |
+
"used to create custom CSS styling. You can add multiple classes, separated "
|
167 |
+
"with a space."
|
168 |
+
msgstr ""
|
169 |
+
|
170 |
+
#: includes/class-ecwid-message-manager.php:45
|
171 |
+
msgid ""
|
172 |
+
"Sorry, there is a problem. This page is supposed to display your store "
|
173 |
+
"Control Panel. However, this Wordpress site doesn't seem to be able to "
|
174 |
+
"connect to the Ecwid server to show your store dashboard here. This is "
|
175 |
+
"likely caused by your server misconfiguration and can be fixed by your "
|
176 |
+
"hosting provider. Here is a more techy description of the problem, which you "
|
177 |
+
"can send to your hosting provider: \"The Wordpress function wp_remote_post() "
|
178 |
+
"failed to connect a remote server because of some error: \"%s\". Seems like "
|
179 |
+
"HTTP POST requests are disabled on this server\". <br /><br />Please feel "
|
180 |
+
"free to contact us at <a %s>wordpress@ecwid.com</a> and we will help you "
|
181 |
+
"contact your hosting and ask them to fix the issue. <br /><br /> Meanwhile, "
|
182 |
+
"to manage your store, you can use the Ecwid Web Control Panel at <a %s>my."
|
183 |
+
"ecwid.com</a>. Your store front is working fine as well and you can check it "
|
184 |
+
"here: <a %s>%s</a>."
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: includes/class-ecwid-message-manager.php:194
|
188 |
+
msgid "Greetings! Your %s plugin is now active."
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: includes/class-ecwid-message-manager.php:195
|
192 |
+
msgid "Take a few simple steps to complete store setup"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: includes/class-ecwid-message-manager.php:196
|
196 |
+
msgid "Set up %s Store"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: includes/class-ecwid-message-manager.php:204
|
200 |
+
msgid "Your store is almost ready!"
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: includes/class-ecwid-message-manager.php:205
|
204 |
+
msgid "Complete setup and start selling"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: includes/class-ecwid-message-manager.php:206
|
208 |
+
msgid "Complete Setup"
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: includes/class-ecwid-message-manager.php:212
|
212 |
+
msgid ""
|
213 |
+
"To add extra functions to your store, drag and drop %s store elements on "
|
214 |
+
"your site. When you're done, you can get back to modifying your settings."
|
215 |
+
msgstr ""
|
216 |
+
|
217 |
+
#: includes/class-ecwid-message-manager.php:213
|
218 |
+
msgid "Back to Store Settings"
|
219 |
+
msgstr ""
|
220 |
+
|
221 |
+
#: includes/class-ecwid-message-manager.php:220
|
222 |
+
msgid ""
|
223 |
+
"Do you like your %s online store? We'd appreciate it if you add your review "
|
224 |
+
"and vote for the plugin on WordPress site."
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: includes/class-ecwid-message-manager.php:224
|
228 |
+
msgid "Rate %s at WordPress.org"
|
229 |
+
msgstr ""
|
230 |
+
|
231 |
+
#: includes/class-ecwid-nav-menus.php:25
|
232 |
+
msgid "Ecwid Menu Item"
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: includes/class-ecwid-nav-menus.php:143
|
236 |
+
msgid "Store Page"
|
237 |
+
msgstr ""
|
238 |
+
|
239 |
+
#: includes/class-ecwid-nav-menus.php:254
|
240 |
+
msgid "Select All"
|
241 |
+
msgstr ""
|
242 |
+
|
243 |
+
#: includes/class-ecwid-nav-menus.php:257
|
244 |
+
msgid "Add to Menu"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: includes/class-ecwid-nav-menus.php:273
|
248 |
+
msgid "Cart"
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: includes/class-ecwid-nav-menus.php:276
|
252 |
+
#: includes/widgets/class-ecwid-widget-minicart.php:6
|
253 |
+
msgid "Shopping Cart"
|
254 |
+
msgstr ""
|
255 |
+
|
256 |
+
#: includes/class-ecwid-nav-menus.php:281
|
257 |
+
#: includes/class-ecwid-nav-menus.php:284
|
258 |
+
#: includes/widgets/class-ecwid-widget-search.php:10
|
259 |
+
msgid "Product Search"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: includes/class-ecwid-nav-menus.php:289
|
263 |
+
#: includes/class-ecwid-nav-menus.php:292
|
264 |
+
msgid "My Account"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: includes/class-ecwid-nav-menus.php:305
|
268 |
+
msgid "Store with Categories Menu"
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: includes/class-ecwid-product-popup.php:94
|
272 |
+
msgid "Add Product"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: includes/class-ecwid-product-popup.php:134
|
276 |
+
msgid "First Page"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: includes/class-ecwid-product-popup.php:135
|
280 |
+
msgid "Previous Page"
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: includes/class-ecwid-product-popup.php:136
|
284 |
+
msgid "Next Page"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: includes/class-ecwid-product-popup.php:137
|
288 |
+
msgid "Last Page"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: includes/class-ecwid-store-editor.php:44 templates/store-popup.php:11
|
292 |
+
#: templates/store-popup.php:19
|
293 |
+
msgid "Add Store"
|
294 |
+
msgstr ""
|
295 |
+
|
296 |
+
#: includes/class-ecwid-store-editor.php:52
|
297 |
+
msgid "Edit Store"
|
298 |
+
msgstr ""
|
299 |
+
|
300 |
+
#: includes/class-ecwid-store-editor.php:67
|
301 |
+
msgid "Edit Appearance"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: includes/faq_entries.php:5
|
305 |
+
msgid "How secure is this plugin? Is my store PCI DSS compliant?"
|
306 |
+
msgstr ""
|
307 |
+
|
308 |
+
#: includes/faq_entries.php:6
|
309 |
+
msgid ""
|
310 |
+
"Ecwid is PCI DSS Level 1 certified, which is the gold standard for e-"
|
311 |
+
"commerce solutions worldwide. This means you won’t have any banking "
|
312 |
+
"compliance issues when selling online with Ecwid. <a target=\"_blank\" href="
|
313 |
+
"\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-"
|
314 |
+
"downloadable-#secureplugin\">More details.</a>"
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: includes/faq_entries.php:12
|
318 |
+
msgid "How can I manage my store from a mobile device?"
|
319 |
+
msgstr ""
|
320 |
+
|
321 |
+
#: includes/faq_entries.php:13
|
322 |
+
msgid ""
|
323 |
+
"Ecwid provides free mobile applications for iOS and Android to manage your "
|
324 |
+
"store and sell on the go. Scan products, track inventory, manage sales and "
|
325 |
+
"accept payments using your mobile device as a POS station. <a target=\"_blank"
|
326 |
+
"\" href=\"https://www.ecwid.com/ecwid-mobile\">More details.</a>"
|
327 |
+
msgstr ""
|
328 |
+
|
329 |
+
#: includes/faq_entries.php:20
|
330 |
+
msgid "How to set up a storefront on Facebook with Ecwid?"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: includes/faq_entries.php:21
|
334 |
+
msgid ""
|
335 |
+
"You can add your online store to your Facebook business page. No addons "
|
336 |
+
"needed. Ecwid will automatically synchronize products, customers, orders and "
|
337 |
+
"inventory between your WordPress and Facebook storefronts. <a target=\"_blank"
|
338 |
+
"\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-"
|
339 |
+
"downloadable-#How%20to%20add%20my%20store%20to%20Facebook\">More details.</a>"
|
340 |
+
msgstr ""
|
341 |
+
|
342 |
+
#: includes/faq_entries.php:28
|
343 |
+
msgid "How can I add a cart widget to my site sidebar?"
|
344 |
+
msgstr ""
|
345 |
+
|
346 |
+
#: includes/faq_entries.php:30
|
347 |
+
msgid ""
|
348 |
+
"You can add product search box, cart widget and more on the <a href=\"%s\">"
|
349 |
+
"\"Appearance / Widgets page\"</a> here in your site admin. <a target=\"_blank"
|
350 |
+
"\" href=\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-"
|
351 |
+
"downloadable-#Sidebar%%20widgets\">More details.</a>"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: includes/faq_entries.php:38
|
355 |
+
msgid "How much does Ecwid cost?"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: includes/faq_entries.php:39
|
359 |
+
msgid ""
|
360 |
+
"Our 4 account types vary by number of products, types of functionality, and "
|
361 |
+
"level of support. For more information, check out our <a target=\"_blank\" "
|
362 |
+
"href=\"https://www.ecwid.com/pricing\">pricing page.</a><br /><br />Free - "
|
363 |
+
"Up to 10 products<br />Venture - $15/month<br />Business - $35/month<br /"
|
364 |
+
">Unlimited - $99/month<br /><br />Pro Tip: You can also save money by "
|
365 |
+
"enrolling in our annual plans."
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: includes/faq_entries.php:45
|
369 |
+
msgid "How do I add store categories to the site menu."
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: includes/faq_entries.php:46
|
373 |
+
msgid ""
|
374 |
+
"You can add the store categories menu to your site menu to help your "
|
375 |
+
"customers easily navigate your site. Just open \"Appearance > Menus\" in "
|
376 |
+
"your WordPress control panel and add the \"Store with Categories Menu\" item "
|
377 |
+
"to your site menu. A drop-down menu containing your store categories will "
|
378 |
+
"automatically appear on your site."
|
379 |
+
msgstr ""
|
380 |
+
|
381 |
+
#: includes/faq_entries.php:52
|
382 |
+
msgid "How do I put my products in the sitemap?"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: includes/faq_entries.php:53
|
386 |
+
msgid ""
|
387 |
+
"To create sitemap for your Wordpress site we suggest using <a target=\"_blank"
|
388 |
+
"\" href=\"https://wordpress.org/plugins/google-sitemap-generator/\">Google "
|
389 |
+
"XML Sitemaps</a> or <a target=\"_blank\" href=\"https://wordpress.org/"
|
390 |
+
"plugins/wordpress-seo/\">Yoast Wordpress SEO</a>. plugins. These "
|
391 |
+
"plugins are fully compatible with Ecwid and allow to generate a sitemap that "
|
392 |
+
"will contain links to categories and product pages, so the store pages will "
|
393 |
+
"get indexed faster. Please note that this option is available to <a target="
|
394 |
+
"\"_blank\" href=\"https://www.ecwid.com/pricing\">paid Ecwid users</a>."
|
395 |
+
msgstr ""
|
396 |
+
|
397 |
+
#: includes/faq_entries.php:58
|
398 |
+
msgid ""
|
399 |
+
"How to add a single product with the add to bag button to the site pages?"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: includes/faq_entries.php:59
|
403 |
+
msgid ""
|
404 |
+
"To feature a single product on a separate page or blog post of your site, "
|
405 |
+
"use <b>[ecwid_product]</b> shortcode. <a target=\"_blank\" href=\"https://"
|
406 |
+
"support.ecwid.com/hc/en-us/articles/207101259-Wordpress-downloadable-"
|
407 |
+
"#Howtoembedasingleproductonapageorpostofmysite\">How to use it.</a>"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: includes/faq_entries.php:65
|
411 |
+
msgid "Is it possible to display my store on the site home page?"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: includes/faq_entries.php:66
|
415 |
+
msgid ""
|
416 |
+
"You can display your store on the site main page. Adjust the \"Reading\" "
|
417 |
+
"settings of your site as described in our <a target=\"_blank\" href="
|
418 |
+
"\"https://support.ecwid.com/hc/en-us/articles/207101259-Wordpress-"
|
419 |
+
"downloadable-#displaystoreonhomepage\">Help Center.</a>"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: includes/oembed.php:68 includes/oembed.php:97 templates/help.php:96
|
423 |
+
msgid "See more"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: includes/themes/class-ecwid-theme-twentyfifteen.php:32
|
427 |
+
#: includes/themes/class-ecwid-theme-twentyfifteen.php:38
|
428 |
+
#: includes/themes/class-ecwid-theme-twentyseventeen.php:47
|
429 |
+
#: includes/themes/class-ecwid-theme-twentyseventeen.php:53
|
430 |
+
#: includes/themes/class-ecwid-theme-twentysixteen.php:35
|
431 |
+
#: includes/themes/class-ecwid-theme-twentysixteen.php:41
|
432 |
+
#: includes/widgets/class-ecwid-widget-store-link.php:29
|
433 |
+
msgid "Shop"
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: includes/widgets/class-ecwid-widget-badge.php:9
|
437 |
+
msgid ""
|
438 |
+
"Do you like Ecwid and want to help it grow? You can add this fancy 'Powered "
|
439 |
+
"by Ecwid' badge on your site to show your visitors that you're a proud user "
|
440 |
+
"of Ecwid."
|
441 |
msgstr ""
|
442 |
|
443 |
+
#: includes/widgets/class-ecwid-widget-badge.php:10
|
444 |
msgid "Ecwid Badge"
|
445 |
msgstr ""
|
446 |
|
447 |
+
#: includes/widgets/class-ecwid-widget-badge.php:17
|
448 |
+
#: includes/widgets/class-ecwid-widget-badge.php:23
|
449 |
msgid "Ecwid shopping cart widget"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: includes/widgets/class-ecwid-widget-badge.php:29
|
453 |
+
#: includes/widgets/class-ecwid-widget-badge.php:65
|
454 |
msgid "Ecwid ecommerce solution"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: includes/widgets/class-ecwid-widget-badge.php:35
|
458 |
+
#: includes/widgets/class-ecwid-widget-badge.php:71
|
459 |
msgid "Ecwid free shopping cart"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: includes/widgets/class-ecwid-widget-badge.php:41
|
463 |
+
#: includes/widgets/class-ecwid-widget-badge.php:53
|
464 |
msgid "Ecwid shopping cart"
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: includes/widgets/class-ecwid-widget-badge.php:47
|
468 |
+
#: includes/widgets/class-ecwid-widget-badge.php:59
|
469 |
msgid "Ecwid e-commerce widgets"
|
470 |
msgstr ""
|
471 |
|
472 |
+
#: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:15
|
473 |
+
msgid "Adds a shopping cart widget to the top right corner of your site."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:16
|
477 |
+
msgid "Shopping Cart (Floating)"
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:114
|
481 |
+
msgid "Position"
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:117
|
485 |
+
msgid "Bottom right"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: includes/widgets/class-ecwid-widget-floating-shopping-cart.php:122
|
489 |
+
msgid "Top right"
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: includes/widgets/class-ecwid-widget-minicart-miniview.php:5
|
493 |
+
msgid ""
|
494 |
+
"Adds a compact cart widget for customer to see the products they added to "
|
495 |
+
"the cart."
|
496 |
+
msgstr ""
|
497 |
+
|
498 |
+
#: includes/widgets/class-ecwid-widget-minicart-miniview.php:6
|
499 |
msgid "Shopping Cart (Mini)"
|
500 |
msgstr ""
|
501 |
|
502 |
+
#: includes/widgets/class-ecwid-widget-minicart-miniview.php:44
|
503 |
+
#: includes/widgets/class-ecwid-widget-minicart.php:44
|
504 |
+
#: includes/widgets/class-ecwid-widget-search.php:49
|
505 |
+
#: includes/widgets/class-ecwid-widget-vcategories.php:43
|
506 |
+
#: includes/widgets/class-ecwid-widget-vertical-categories-list.php:71
|
507 |
+
msgid "Title:"
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: includes/widgets/class-ecwid-widget-minicart.php:5
|
511 |
+
msgid ""
|
512 |
+
"Adds a cart widget for customer to see the products they added to the cart."
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:9
|
516 |
+
msgid ""
|
517 |
+
"Displays a list of products recently viewed by the customer to easily return "
|
518 |
+
"to the products they saw in your shop."
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:10
|
522 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:151
|
523 |
+
msgid "Recently Viewed Products"
|
524 |
msgstr ""
|
525 |
|
526 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:122
|
527 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:152
|
528 |
+
msgid "You have not viewed any product yet. Open store."
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:162
|
532 |
+
#: templates/product-popup.php:160
|
533 |
+
msgid "Title"
|
534 |
msgstr ""
|
535 |
|
536 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:163
|
537 |
+
msgid "Store Link Title"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: includes/widgets/class-ecwid-widget-recently-viewed.php:164
|
541 |
+
msgid "Number of products to show"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: includes/widgets/class-ecwid-widget-search.php:9
|
545 |
+
msgid ""
|
546 |
+
"Displays a simple search box for your customers to find a product in your "
|
547 |
+
"store"
|
548 |
msgstr ""
|
549 |
|
550 |
+
#: includes/widgets/class-ecwid-widget-store-link.php:5
|
551 |
+
msgid ""
|
552 |
+
"Displays a link to the store page in sidebar for customer to quickly access "
|
553 |
+
"your store from any page on the site."
|
554 |
msgstr ""
|
555 |
|
556 |
+
#: includes/widgets/class-ecwid-widget-store-link.php:6
|
557 |
+
msgid "Store Page Link"
|
558 |
msgstr ""
|
559 |
|
560 |
+
#: includes/widgets/class-ecwid-widget-store-link.php:33
|
561 |
+
msgid "Text"
|
562 |
msgstr ""
|
563 |
|
564 |
+
#: includes/widgets/class-ecwid-widget-vcategories.php:5
|
565 |
+
msgid "Adds vertical categories block to let the customer navigate your store."
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: includes/widgets/class-ecwid-widget-vcategories.php:6
|
569 |
+
msgid "Store Categories"
|
570 |
msgstr ""
|
571 |
|
572 |
+
#: includes/widgets/class-ecwid-widget-vertical-categories-list.php:11
|
573 |
+
msgid ""
|
574 |
+
"Adds root categories list to the sidebar to let your customers navigate the "
|
575 |
+
"store."
|
576 |
msgstr ""
|
577 |
|
578 |
+
#: includes/widgets/class-ecwid-widget-vertical-categories-list.php:12
|
579 |
+
msgid "Store Root Categories"
|
580 |
msgstr ""
|
581 |
|
582 |
+
#: includes/widgets/class-ecwid-widget-vertical-categories-list.php:22
|
583 |
+
#: includes/widgets/class-ecwid-widget-vertical-categories-list.php:68
|
584 |
+
msgid "Browse by Category"
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: lib/ecwid_platform.php:59 templates/product-popup.php:171
|
588 |
+
msgid "Price"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: templates/admin-footer.php:4
|
592 |
+
msgid "Manage Store on iPhone, iPad or Android"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: templates/admin-footer.php:7
|
596 |
+
msgid "Get %s mobile app"
|
597 |
msgstr ""
|
598 |
|
599 |
+
#: templates/admin-footer.php:13
|
600 |
+
msgid "Questions?"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: templates/admin-footer.php:21
|
604 |
+
msgid "Want to connect another %s store?"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: templates/admin-footer.php:23
|
608 |
+
msgid "<a %s>Reconnect</a>"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: templates/admin-message.php:45
|
612 |
+
msgid "Never show this message again"
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: templates/admin-timeout.php:9
|
616 |
+
msgid "Sorry we're having technical difficulties."
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: templates/admin-timeout.php:11
|
620 |
+
msgid ""
|
621 |
+
"Our team is already working on this issue. Please refresh the page in a few "
|
622 |
+
"minutes. If the issue persists, please contact <a target=\"_blank\" href="
|
623 |
+
"\"https://help.ecwid.com/customer/portal/emails/new\">our customer support "
|
624 |
+
"team</a>."
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: templates/advanced-settings.php:1
|
628 |
+
msgid "%s Shopping Cart — Advanced settings"
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: templates/advanced-settings.php:29
|
632 |
+
msgid "SEO friendly clean URLs"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: templates/advanced-settings.php:34
|
636 |
+
msgid ""
|
637 |
+
"This enables new clean URLs format in your store. The new urls do not "
|
638 |
+
"contain hash sign ('#'), so they look nicer and are better indexed by Google."
|
639 |
msgstr ""
|
640 |
|
641 |
+
#: templates/advanced-settings.php:38
|
642 |
+
msgid ""
|
643 |
+
"To enable clean URLs in your store, you will need to enable pretty "
|
644 |
+
"permalinks in your WordPress site settings. Navigate to <a%s>Settings-"
|
645 |
+
">Permalink</a> and enable the \"Post name\" permalink type."
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: templates/advanced-settings.php:44
|
649 |
+
msgid ""
|
650 |
+
"Note: the new URLs will be automatically enabled for every store in one of "
|
651 |
+
"upcoming updates so please make sure to check how the new URLs work in your "
|
652 |
+
"store and <a %s>let us know</a> if you face any trouble with them"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: templates/advanced-settings.php:44 templates/advanced-settings.php:188
|
656 |
+
msgid "https://support.ecwid.com/hc/en-us/requests/new"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: templates/advanced-settings.php:57 templates/store-popup.php:154
|
660 |
msgid "Category shown by default"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: templates/advanced-settings.php:61 templates/store-popup.php:161
|
664 |
msgid "Store root category"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: templates/advanced-settings.php:74
|
668 |
+
msgid ""
|
669 |
+
"By default, the storefront shows a list of root categories. You can override "
|
670 |
+
"this behavior and show a different category when customers open your store "
|
671 |
+
"for the first time. This is useful if you only have one category or want to "
|
672 |
+
"display a specific set of items (e.g. \"Featured Products\") to new visitors."
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: templates/advanced-settings.php:97
|
676 |
+
msgid "Customer Single Sign-On"
|
677 |
+
msgstr ""
|
678 |
+
|
679 |
+
#: templates/advanced-settings.php:102
|
680 |
+
msgid ""
|
681 |
+
"Single Sign-On allows your customers to have a single login for your "
|
682 |
+
"WordPress site and your %s store. When someone logs in to your site, they "
|
683 |
+
"will automatically be logged in to their customer account in your store as "
|
684 |
+
"well with no need to enter their email/password again."
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: templates/advanced-settings.php:109
|
688 |
+
msgid "Upgrade to get this feature"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: templates/advanced-settings.php:112
|
692 |
+
msgid "Please subscribe to a paid plan to get this feature."
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: templates/advanced-settings.php:118
|
696 |
+
msgid ""
|
697 |
+
"To allow %s automatically log in customers to your store, please provide it "
|
698 |
+
"with a permission to use the customer data in the store. <a %s>Please use "
|
699 |
+
"this link to do that</a>"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: templates/advanced-settings.php:124
|
703 |
+
msgid ""
|
704 |
+
"To make sure your customer can actually log in to your site and store, "
|
705 |
+
"enable registration in the <a %s>site settings</a>"
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: templates/advanced-settings.php:146
|
709 |
+
msgid "Chameleon skin"
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: templates/advanced-settings.php:150
|
713 |
+
msgid ""
|
714 |
+
"Automatic adjustment of your store design to your WordPress theme. Whatever "
|
715 |
+
"WordPress theme you use, %s will detect predominant colors and font and use "
|
716 |
+
"them in your product catalog."
|
717 |
msgstr ""
|
718 |
|
719 |
+
#: templates/advanced-settings.php:153
|
720 |
+
msgid ""
|
721 |
+
"Please note this functionality is in beta. So if you run into difficulties "
|
722 |
+
"or find problems with Chameleon, please <a %s>let us know</a>."
|
723 |
msgstr ""
|
724 |
|
725 |
+
#: templates/advanced-settings.php:176
|
726 |
+
msgid "Integration with search on your site <sup>beta</sup>"
|
727 |
msgstr ""
|
728 |
|
729 |
+
#: templates/advanced-settings.php:180
|
730 |
+
msgid ""
|
731 |
+
"%s stores your products data in a secure cloud storage. The product pages "
|
732 |
+
"are displayed on the fly when a customer browses your store. So, basically, "
|
733 |
+
"the products are not stored on the site, that's why the site search doesn't "
|
734 |
+
"find product pages while looking through site pages and posts. This option "
|
735 |
+
"enables a local storage mode: the products will be stored both in the cloud "
|
736 |
+
"and on your site. The site search results will list product pages as well as "
|
737 |
+
"regular pages/posts of your site."
|
738 |
msgstr ""
|
739 |
|
740 |
+
#: templates/advanced-settings.php:188
|
741 |
+
msgid ""
|
742 |
+
"Please note this functionality is in beta. So if you run into difficulties "
|
743 |
+
"or find problems with it, please <a %s>let us know</a>."
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: templates/advanced-settings.php:197
|
747 |
msgid "Save changes"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: templates/connect.php:5 templates/dashboard.php:6
|
751 |
+
#: templates/reconnect-sso.php:5 templates/reconnect.php:5
|
752 |
+
msgid "%s Shopping Cart"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: templates/connect.php:13 templates/reconnect.php:13
|
756 |
+
msgid "Connect your store<br /> to this WordPress site"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: templates/connect.php:17
|
760 |
+
msgid "Enter your Store ID"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: templates/connect.php:20 templates/landing_old.php:27
|
764 |
+
#: templates/reconnect.php:23
|
765 |
+
msgid "Connect"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: templates/connect.php:21
|
769 |
+
msgid "Save and connect"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: templates/connect.php:27 templates/reconnect.php:46
|
773 |
+
msgid ""
|
774 |
+
"To sell using %1$s, you must allow WordPress to access the %1$s plugin. The "
|
775 |
+
"connect button will direct you to your %1$s account where you can provide "
|
776 |
+
"permission."
|
777 |
msgstr ""
|
778 |
|
779 |
+
#: templates/connect.php:32
|
780 |
+
msgid "Where to find your Store ID:"
|
781 |
msgstr ""
|
782 |
|
783 |
+
#: templates/connect.php:34
|
784 |
+
msgid ""
|
785 |
+
"Store ID is a unique identifier of your %1$s account. You can find it in "
|
786 |
+
"your %1$s control panel: open the <a %2$s>Dashboard page</a> and find the "
|
787 |
+
"\"<b>Store ID: NNNNNNN</b>\" text, where <b>NNNNNNN</b> is your Store "
|
788 |
+
"ID."
|
789 |
msgstr ""
|
790 |
|
791 |
+
#: templates/connect.php:39
|
792 |
+
msgid "Don't have an %s account? Create one now."
|
793 |
msgstr ""
|
794 |
|
795 |
+
#: templates/dashboard.php:10 templates/store-popup.php:231
|
796 |
+
#: templates/store-svg.php:15
|
797 |
+
msgid "Store ID"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: templates/dashboard.php:14
|
801 |
+
msgid "Disconnect store"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: templates/dashboard.php:27
|
805 |
+
msgid "Congratulations!"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: templates/dashboard.php:30
|
809 |
+
msgid "Your %s store is now connected<br /> to your WordPress website"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: templates/dashboard.php:35
|
813 |
+
msgid "Greetings!"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: templates/dashboard.php:38
|
817 |
+
msgid "Your %s store is connected<br /> to your WordPress website"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: templates/dashboard.php:47
|
821 |
+
msgid "Open control panel"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: templates/debug.php:14
|
825 |
+
msgid "Download log file"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: templates/help.php:11
|
829 |
+
msgid "How can we help you?"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: templates/help.php:15
|
833 |
+
msgid "https://support.ecwid.com/hc/en-us/search"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: templates/help.php:17
|
837 |
+
msgid "E.g. How to set up shipping"
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: templates/help.php:21
|
841 |
+
msgid "Search the Knowledge Base"
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: templates/help.php:29
|
845 |
+
msgid "https://support.ecwid.com/hc/en-us/sections/201706719-Ecwid-Basics"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: templates/help.php:31
|
849 |
+
msgid "Ecwid Basics"
|
850 |
msgstr ""
|
851 |
|
852 |
+
#: templates/help.php:35
|
853 |
+
msgid ""
|
854 |
+
"https://support.ecwid.com/hc/en-us/sections/201758475-Manage-Your-Ecwid-Store"
|
855 |
msgstr ""
|
856 |
|
857 |
+
#: templates/help.php:37
|
858 |
+
msgid "Manage Your Ecwid Store"
|
859 |
msgstr ""
|
860 |
|
861 |
+
#: templates/help.php:41
|
862 |
+
msgid ""
|
863 |
+
"https://support.ecwid.com/hc/en-us/sections/201758445-Customize-Your-Store"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: templates/help.php:43
|
867 |
+
msgid "Customize Your Store"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: templates/help.php:47
|
871 |
+
msgid "https://support.ecwid.com/hc/en-us/sections/201706799-Billing-Questions"
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: templates/help.php:49
|
875 |
+
msgid "Billing Questions"
|
876 |
msgstr ""
|
877 |
|
878 |
+
#: templates/help.php:53
|
879 |
+
msgid ""
|
880 |
+
"https://support.ecwid.com/hc/en-us/sections/201702859-Technical-Reference"
|
881 |
msgstr ""
|
882 |
|
883 |
+
#: templates/help.php:55
|
884 |
+
msgid "Technical Reference"
|
885 |
msgstr ""
|
886 |
|
887 |
+
#: templates/help.php:62
|
888 |
+
msgid "Frequently Asked Questions"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: templates/help.php:205
|
892 |
+
msgid "Contact us"
|
893 |
msgstr ""
|
894 |
|
895 |
+
#: templates/help.php:206
|
896 |
+
msgid "Still have questions about Ecwid? Let us know!"
|
897 |
msgstr ""
|
898 |
|
899 |
+
#: templates/help.php:211
|
900 |
+
msgid "https://www.ecwid.com/forums"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: templates/help.php:211
|
904 |
+
msgid "Forums"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: templates/help.php:212
|
908 |
+
msgid ""
|
909 |
+
"Join the Ecwid community. Discuss support topics and store ideas with other "
|
910 |
+
"Ecwid users."
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: templates/help.php:221
|
914 |
+
msgid "Send a message to our support team"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: templates/help.php:227
|
918 |
+
msgid "Subject"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: templates/help.php:228
|
922 |
+
msgid "Type in your message here"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: templates/help.php:231
|
926 |
+
msgid "Send Message"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: templates/help.php:242
|
930 |
+
msgid "Send message failed"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: templates/help.php:248
|
934 |
+
msgid "Your email has been sent"
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: templates/help.php:249
|
938 |
+
msgid ""
|
939 |
+
" Thank you very much for contacting us! We will get back to you shortly."
|
940 |
msgstr ""
|
941 |
|
942 |
+
#: templates/help.php:250
|
943 |
+
msgid "You can send a new request here."
|
944 |
msgstr ""
|
945 |
|
946 |
+
#: templates/landing.php:8
|
947 |
+
msgid "Welcome to %s!"
|
948 |
msgstr ""
|
949 |
|
950 |
+
#: templates/landing.php:9
|
951 |
+
msgid ""
|
952 |
+
"Thank you for choosing %s to build your online store. The first step to sell "
|
953 |
+
"successfully online is to setup your store! Let’s get started and add a "
|
954 |
+
"store to your website in a few simple steps."
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: templates/landing.php:15 templates/landing.php:132
|
958 |
+
msgid "Create Free %s Store"
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: templates/landing.php:31 templates/landing.php:148
|
962 |
+
msgid "Store is created"
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: templates/landing.php:35 templates/landing.php:152
|
966 |
+
msgid "Creating store"
|
967 |
msgstr ""
|
968 |
|
969 |
+
#: templates/landing.php:39 templates/landing.php:156
|
970 |
+
msgid "Preparing your store dashboard"
|
971 |
msgstr ""
|
972 |
|
973 |
+
#: templates/landing.php:43 templates/landing_old.php:52
|
974 |
+
msgid "Free registration, No credit card required"
|
975 |
msgstr ""
|
976 |
|
977 |
+
#: templates/landing.php:46
|
978 |
+
msgid ""
|
979 |
+
"Connection error: please click the button again and give permissions for "
|
980 |
+
"this plugin<br /> to show your %s store on this site."
|
981 |
msgstr ""
|
982 |
|
983 |
+
#: templates/landing.php:49 templates/landing.php:160
|
984 |
+
msgid "Already have %s account?"
|
985 |
msgstr ""
|
986 |
|
987 |
+
#: templates/landing.php:50 templates/landing_old.php:62
|
988 |
+
msgid "Connect your store to Wordpress site"
|
989 |
+
msgstr ""
|
990 |
+
|
991 |
+
#: templates/landing.php:53
|
992 |
+
msgid ""
|
993 |
+
"You will be asked to log in to your %s Control Panel<br />and give "
|
994 |
+
"permissions to show your store on this site"
|
995 |
msgstr ""
|
996 |
|
997 |
+
#: templates/landing.php:56 templates/landing_old.php:75
|
998 |
msgid "Get ready to sell online"
|
999 |
msgstr ""
|
1000 |
|
1001 |
+
#: templates/landing.php:67
|
1002 |
+
msgid "Sell Everywhere<br>with your %s store"
|
1003 |
msgstr ""
|
1004 |
|
1005 |
+
#: templates/landing.php:68 templates/landing_old.php:87
|
1006 |
+
msgid ""
|
1007 |
+
"Start selling on your WordPress site. Then mirror your shop on your Facebook "
|
1008 |
+
"page, blog and marketplaces like Google Shopping, Yahoo and Shopping.com."
|
1009 |
msgstr ""
|
1010 |
|
1011 |
+
#: templates/landing.php:69
|
1012 |
+
msgid ""
|
1013 |
+
"Use %s's mobile-POS to swipe credit cards and sell on the go. Your orders "
|
1014 |
+
"and inventory are always synchronized with your online store."
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: templates/landing.php:75 templates/landing_old.php:94
|
1018 |
msgid "Features"
|
1019 |
msgstr ""
|
1020 |
|
1021 |
+
#: templates/landing.php:82 templates/landing_old.php:101
|
1022 |
msgid "Compatible with your theme"
|
1023 |
msgstr ""
|
1024 |
|
1025 |
+
#: templates/landing.php:83
|
1026 |
+
msgid "%s is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
1027 |
msgstr ""
|
1028 |
|
1029 |
+
#: templates/landing.php:91 templates/landing_old.php:110
|
1030 |
msgid "Free and always up to date"
|
1031 |
msgstr ""
|
1032 |
|
1033 |
+
#: templates/landing.php:92 templates/landing_old.php:111
|
1034 |
+
msgid ""
|
1035 |
+
"Free plan always available with tons of features<br>at no additional cost. "
|
1036 |
+
"Updates are seamless, automatic<br>and free of charge."
|
1037 |
msgstr ""
|
1038 |
|
1039 |
+
#: templates/landing.php:102 templates/landing_old.php:121
|
1040 |
msgid "Responsive design"
|
1041 |
msgstr ""
|
1042 |
|
1043 |
+
#: templates/landing.php:103 templates/landing_old.php:122
|
1044 |
msgid "Your store looks perfect<br />on all devices"
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: templates/landing.php:111 templates/landing_old.php:130
|
1048 |
+
msgid "PCI DSS Certified"
|
1049 |
msgstr ""
|
1050 |
|
1051 |
+
#: templates/landing.php:112 templates/landing_old.php:131
|
1052 |
msgid "Secure checkout with over 40<br />payment options"
|
1053 |
msgstr ""
|
1054 |
|
1055 |
+
#: templates/landing.php:120 templates/landing_old.php:139
|
1056 |
msgid "Global Reach"
|
1057 |
msgstr ""
|
1058 |
|
1059 |
+
#: templates/landing.php:121
|
1060 |
+
msgid "Over 1 million merchants in 175 countries"
|
1061 |
msgstr ""
|
1062 |
|
1063 |
+
#: templates/landing.php:128 templates/landing_old.php:147
|
1064 |
msgid "Start selling <br>on your WordPress <nobr>site for free</nobr>"
|
1065 |
msgstr ""
|
1066 |
|
1067 |
+
#: templates/landing.php:161 templates/landing_old.php:158
|
1068 |
+
msgid "Connect your store to this site"
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: templates/landing_old.php:8 templates/landing_old.php:12
|
1072 |
+
msgid "Plugin is installed successfully!"
|
1073 |
+
msgstr ""
|
1074 |
+
|
1075 |
+
#: templates/landing_old.php:9
|
1076 |
+
msgid ""
|
1077 |
+
"There are just a few steps left to start selling<br /> on your WordPress site"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: templates/landing_old.php:13
|
1081 |
+
msgid ""
|
1082 |
+
"There are few little steps left to start selling<br /> on your WordPress site"
|
1083 |
+
msgstr ""
|
1084 |
+
|
1085 |
+
#: templates/landing_old.php:19
|
1086 |
+
msgid "Register"
|
1087 |
+
msgstr ""
|
1088 |
+
|
1089 |
+
#: templates/landing_old.php:20
|
1090 |
+
msgid ""
|
1091 |
+
"Create a free Ecwid account to manage your store and inventory.<br /> No "
|
1092 |
+
"credit card required"
|
1093 |
+
msgstr ""
|
1094 |
+
|
1095 |
+
#: templates/landing_old.php:29
|
1096 |
+
msgid "Add your Ecwid store to your site <nobr>in two clicks</nobr>"
|
1097 |
+
msgstr ""
|
1098 |
+
|
1099 |
+
#: templates/landing_old.php:30
|
1100 |
+
msgid "Connect your Ecwid store to this site <nobr>in two clicks</nobr>"
|
1101 |
+
msgstr ""
|
1102 |
+
|
1103 |
+
#: templates/landing_old.php:39
|
1104 |
+
msgid "Start selling"
|
1105 |
+
msgstr ""
|
1106 |
+
|
1107 |
+
#: templates/landing_old.php:40
|
1108 |
+
msgid "Your storefront is ready"
|
1109 |
+
msgstr ""
|
1110 |
+
|
1111 |
+
#: templates/landing_old.php:46
|
1112 |
+
msgid "Create Ecwid store"
|
1113 |
+
msgstr ""
|
1114 |
+
|
1115 |
+
#: templates/landing_old.php:49 templates/landing_old.php:154
|
1116 |
+
msgid "Connect your store"
|
1117 |
+
msgstr ""
|
1118 |
+
|
1119 |
+
#: templates/landing_old.php:55
|
1120 |
+
msgid ""
|
1121 |
+
"Connection error: please click the button again and give permissions for "
|
1122 |
+
"this plugin<br /> to show your Ecwid store on this site."
|
1123 |
+
msgstr ""
|
1124 |
+
|
1125 |
+
#: templates/landing_old.php:58 templates/landing_old.php:69
|
1126 |
+
msgid ""
|
1127 |
+
"You will be asked to log in to your Ecwid Control Panel<br />and give "
|
1128 |
+
"permissions to show your store on this site"
|
1129 |
+
msgstr ""
|
1130 |
+
|
1131 |
+
#: templates/landing_old.php:61 templates/landing_old.php:157
|
1132 |
+
msgid "Already have Ecwid account?"
|
1133 |
+
msgstr ""
|
1134 |
+
|
1135 |
+
#: templates/landing_old.php:65 templates/landing_old.php:161
|
1136 |
+
msgid "Don't have an Ecwid account?"
|
1137 |
+
msgstr ""
|
1138 |
+
|
1139 |
+
#: templates/landing_old.php:66 templates/landing_old.php:162
|
1140 |
+
msgid "Register at Ecwid for free"
|
1141 |
+
msgstr ""
|
1142 |
+
|
1143 |
+
#: templates/landing_old.php:72
|
1144 |
+
msgid "No credit card required"
|
1145 |
+
msgstr ""
|
1146 |
+
|
1147 |
+
#: templates/landing_old.php:86
|
1148 |
+
msgid "Sell Everywhere<br>with your Ecwid store"
|
1149 |
+
msgstr ""
|
1150 |
+
|
1151 |
+
#: templates/landing_old.php:88
|
1152 |
+
msgid ""
|
1153 |
+
"Use Ecwid's mobile-POS to swipe credit cards and sell on the go. Your orders "
|
1154 |
+
"and inventory are always synchronized with your online store."
|
1155 |
+
msgstr ""
|
1156 |
+
|
1157 |
+
#: templates/landing_old.php:102
|
1158 |
+
msgid ""
|
1159 |
+
"Ecwid is compatible with your<br>“%s” WordPress theme<br>out of the box."
|
1160 |
+
msgstr ""
|
1161 |
+
|
1162 |
+
#: templates/landing_old.php:140
|
1163 |
+
msgid "More than 800,000 merchants in 175 countries"
|
1164 |
+
msgstr ""
|
1165 |
+
|
1166 |
+
#: templates/landing_old.php:151
|
1167 |
msgid "Get Started, Create Ecwid Account"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: templates/product-popup.php:23
|
1171 |
+
msgid "Name"
|
1172 |
+
msgstr ""
|
1173 |
+
|
1174 |
+
#: templates/product-popup.php:29
|
1175 |
+
msgid "SKU"
|
1176 |
+
msgstr ""
|
1177 |
+
|
1178 |
+
#: templates/product-popup.php:47 templates/product-popup.php:53
|
1179 |
+
#: templates/product-popup.php:56
|
1180 |
+
msgid "Search"
|
1181 |
+
msgstr ""
|
1182 |
+
|
1183 |
+
#: templates/product-popup.php:49
|
1184 |
+
msgid "Title or SKU"
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: templates/product-popup.php:69
|
1188 |
+
msgid "Current Page"
|
1189 |
+
msgstr ""
|
1190 |
+
|
1191 |
+
#: templates/product-popup.php:80
|
1192 |
+
msgid "Next page"
|
1193 |
+
msgstr ""
|
1194 |
+
|
1195 |
+
#: templates/product-popup.php:94
|
1196 |
+
msgid ""
|
1197 |
+
"Nothing found for <span class=\"empty-page__term\">\"{{ data.term }}\"</span>"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
+
#: templates/product-popup.php:96
|
1201 |
+
msgid "Try another search."
|
1202 |
msgstr ""
|
1203 |
|
1204 |
+
#: templates/product-popup.php:97
|
1205 |
+
msgid "Browse all products."
|
1206 |
msgstr ""
|
1207 |
|
1208 |
+
#: templates/product-popup.php:122 templates/product-popup.php:127
|
1209 |
+
msgid "Choose Product"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
+
#: templates/product-popup.php:123 templates/product-popup.php:131
|
1213 |
+
msgid "Customize widget"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
+
#: templates/product-popup.php:140
|
1217 |
+
msgid "Choose product properties to display in widget"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
+
#: templates/product-popup.php:150
|
1221 |
+
msgid "Picture"
|
1222 |
+
msgstr ""
|
1223 |
+
|
1224 |
+
#: templates/product-popup.php:155
|
1225 |
+
msgid "Options"
|
1226 |
+
msgstr ""
|
1227 |
+
|
1228 |
+
#: templates/product-popup.php:165
|
1229 |
+
msgid "Quantity"
|
1230 |
+
msgstr ""
|
1231 |
+
|
1232 |
+
#: templates/product-popup.php:176
|
1233 |
+
msgid "«Buy now» button"
|
1234 |
+
msgstr ""
|
1235 |
+
|
1236 |
+
#: templates/product-popup.php:183 templates/store-popup.php:13
|
1237 |
+
#: templates/store-popup.php:31
|
1238 |
+
msgid "Appearance"
|
1239 |
+
msgstr ""
|
1240 |
+
|
1241 |
+
#: templates/product-popup.php:196
|
1242 |
+
msgid "Add border"
|
1243 |
+
msgstr ""
|
1244 |
+
|
1245 |
+
#: templates/product-popup.php:201
|
1246 |
+
msgid "Show price inside the \"Buy now\" button"
|
1247 |
+
msgstr ""
|
1248 |
+
|
1249 |
+
#: templates/product-popup.php:206
|
1250 |
+
msgid "Center align on a page"
|
1251 |
+
msgstr ""
|
1252 |
+
|
1253 |
+
#: templates/product-popup.php:218
|
1254 |
+
msgid "customize appearance"
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: templates/product-popup.php:219
|
1258 |
+
msgid "select product"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#: templates/product-popup.php:220
|
1262 |
+
msgid "Insert"
|
1263 |
+
msgstr ""
|
1264 |
+
|
1265 |
+
#: templates/reconnect-sso.php:11
|
1266 |
+
msgid "Your store Control Panel. Right here in WordPress."
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: templates/reconnect-sso.php:12
|
1270 |
+
msgid ""
|
1271 |
+
"Manage products, track sales, adjust settings - <nobr>All without</nobr> "
|
1272 |
+
"leaving this page."
|
1273 |
+
msgstr ""
|
1274 |
+
|
1275 |
+
#: templates/reconnect-sso.php:14
|
1276 |
+
msgid "Re-connect to Enable Control Panel"
|
1277 |
+
msgstr ""
|
1278 |
+
|
1279 |
+
#: templates/reconnect.php:31
|
1280 |
+
msgid ""
|
1281 |
+
"Connection error - after clicking button you need to login and accept "
|
1282 |
+
"permissions to use our plugin. Please, try again."
|
1283 |
+
msgstr ""
|
1284 |
+
|
1285 |
+
#: templates/reconnect.php:39
|
1286 |
+
msgid ""
|
1287 |
+
"Looks like your site does not support remote POST requests that are required "
|
1288 |
+
"for %s API to work. Please, contact your hosting provider to enable cURL."
|
1289 |
+
msgstr ""
|
1290 |
+
|
1291 |
+
#: templates/store-popup.php:12 templates/store-popup.php:25
|
1292 |
+
msgid "Store elements"
|
1293 |
+
msgstr ""
|
1294 |
+
|
1295 |
+
#: templates/store-popup.php:46
|
1296 |
msgid "Choose widgets to show"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: templates/store-popup.php:47
|
1300 |
msgid "Product catalog will be shown automatically"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: templates/store-popup.php:52
|
1304 |
msgid "Show search"
|
1305 |
msgstr ""
|
1306 |
|
1307 |
+
#: templates/store-popup.php:59
|
1308 |
msgid "Show minicart"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
+
#: templates/store-popup.php:66
|
1312 |
msgid "Show categories"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: templates/store-popup.php:72
|
1316 |
+
msgid ""
|
1317 |
+
"Additionally, you can add store controls to your website's toolbar using <a "
|
1318 |
+
"%s>WordPress native widgets</a>"
|
1319 |
msgstr ""
|
1320 |
|
1321 |
+
#: templates/store-popup.php:84
|
1322 |
+
msgid "Number of products per page"
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: templates/store-popup.php:86
|
1326 |
+
msgid "Grid view"
|
1327 |
+
msgstr ""
|
1328 |
+
|
1329 |
+
#: templates/store-popup.php:113
|
1330 |
+
msgid "List view"
|
1331 |
+
msgstr ""
|
1332 |
+
|
1333 |
+
#: templates/store-popup.php:130
|
1334 |
+
msgid "Table view"
|
1335 |
+
msgstr ""
|
1336 |
+
|
1337 |
+
#: templates/store-popup.php:145
|
1338 |
+
msgid ""
|
1339 |
+
"Here you can control how many products will be displayed per page. These "
|
1340 |
+
"options define maximum values. If there is not enough space to show all "
|
1341 |
+
"product columns, %s will adapt the number of columns to hold all products."
|
1342 |
+
msgstr ""
|
1343 |
+
|
1344 |
+
#: templates/store-popup.php:180
|
1345 |
+
msgid "Number of categories per row"
|
1346 |
+
msgstr ""
|
1347 |
+
|
1348 |
+
#: templates/store-popup.php:193
|
1349 |
+
msgid "Default view mode on product pages"
|
1350 |
+
msgstr ""
|
1351 |
+
|
1352 |
+
#: templates/store-popup.php:197 templates/store-popup.php:215
|
1353 |
+
msgid "Grid"
|
1354 |
+
msgstr ""
|
1355 |
+
|
1356 |
+
#: templates/store-popup.php:200 templates/store-popup.php:218
|
1357 |
+
msgid "List"
|
1358 |
+
msgstr ""
|
1359 |
+
|
1360 |
+
#: templates/store-popup.php:203 templates/store-popup.php:221
|
1361 |
+
msgid "Table"
|
1362 |
+
msgstr ""
|
1363 |
+
|
1364 |
+
#: templates/store-popup.php:210
|
1365 |
+
msgid "Default view mode on search results"
|
1366 |
+
msgstr ""
|
1367 |
+
|
1368 |
+
#: templates/store-popup.php:233
|
1369 |
msgid "Demo store"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
+
#: templates/store-popup.php:236
|
1373 |
+
msgid "Open store dashboard"
|
1374 |
+
msgstr ""
|
1375 |
+
|
1376 |
+
#: templates/store-popup.php:240
|
1377 |
+
msgid "Insert into page"
|
1378 |
msgstr ""
|
1379 |
|
1380 |
+
#: templates/store-popup.php:243
|
1381 |
+
msgid "Update"
|
1382 |
+
msgstr ""
|
1383 |
+
|
1384 |
+
#: templates/store-svg.php:10
|
1385 |
msgid "Your store will be shown here!"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
+
#: templates/store-svg.php:13
|
1389 |
msgid "Demo Store"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
+
#: templates/sync.php:161
|
1393 |
+
msgid ""
|
1394 |
+
"To enable this feature, the plugin needs a permission to read your store "
|
1395 |
+
"product information."
|
1396 |
+
msgstr ""
|
1397 |
+
|
1398 |
+
#: templates/sync.php:162
|
1399 |
+
msgid "Provide access."
|
1400 |
+
msgstr ""
|
1401 |
+
|
1402 |
+
#: templates/sync.php:167 templates/sync.php:168
|
1403 |
+
msgid "Synchronize products"
|
1404 |
+
msgstr ""
|
1405 |
+
|
1406 |
+
#: templates/sync.php:175
|
1407 |
+
msgid ""
|
1408 |
+
"We're synchronizing your products. This may take a few minutes. Please do "
|
1409 |
+
"not reload the page."
|
1410 |
+
msgstr ""
|
1411 |
+
|
1412 |
+
#: templates/sync.php:179
|
1413 |
+
msgid "Products synchronized: %s out of %s"
|
1414 |
+
msgstr ""
|
1415 |
+
|
1416 |
+
#: templates/sync.php:186
|
1417 |
+
msgid ""
|
1418 |
+
"Products are successfully synchronized. The product pages are up to date."
|
1419 |
msgstr ""
|
1420 |
|
1421 |
+
#: templates/sync.php:190
|
1422 |
+
msgid "Last update"
|
1423 |
msgstr ""
|
1424 |
|
1425 |
+
#: templates/sync.php:193
|
1426 |
+
msgid "Not synchronized yet"
|
1427 |
msgstr ""
|
1428 |
|
1429 |
+
#. Plugin Name of the plugin/theme
|
1430 |
+
msgid "Ecwid Shopping Cart"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
+
#. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-#
|
1434 |
+
#. Plugin URI of the plugin/theme
|
1435 |
+
#. #-#-#-#-# ecwid-shopping-cart.pot (Ecwid Shopping Cart 5.4.1) #-#-#-#-#
|
1436 |
+
#. Author URI of the plugin/theme
|
1437 |
+
msgid "http://www.ecwid.com?source=wporg"
|
1438 |
msgstr ""
|
1439 |
|
1440 |
+
#. Description of the plugin/theme
|
1441 |
+
msgid ""
|
1442 |
+
"Ecwid is a free full-featured shopping cart. It can be easily integrated "
|
1443 |
+
"with any Wordpress blog and takes less than 5 minutes to set up."
|
1444 |
msgstr ""
|
1445 |
|
1446 |
+
#. Author of the plugin/theme
|
1447 |
+
msgid "Ecwid Team"
|
1448 |
+
msgstr ""
|
lib/EcwidCatalog.php
DELETED
@@ -1,269 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class EcwidCatalog
|
4 |
-
{
|
5 |
-
var $store_id = 0;
|
6 |
-
var $store_base_url = '';
|
7 |
-
var $ecwid_api = null;
|
8 |
-
|
9 |
-
function __construct($store_id, $store_base_url)
|
10 |
-
{
|
11 |
-
$this->store_id = intval($store_id);
|
12 |
-
$this->store_base_url = $store_base_url;
|
13 |
-
$this->ecwid_api = new EcwidProductApi($this->store_id);
|
14 |
-
}
|
15 |
-
|
16 |
-
function EcwidCatalog($store_id)
|
17 |
-
{
|
18 |
-
if(version_compare(PHP_VERSION,"5.0.0","<"))
|
19 |
-
$this->__construct($store_id);
|
20 |
-
}
|
21 |
-
|
22 |
-
function _l($code, $indent_change = 0)
|
23 |
-
{
|
24 |
-
static $indent = 0;
|
25 |
-
|
26 |
-
if ($indent_change < 0) $indent -= 1;
|
27 |
-
$str = str_repeat(' ', $indent) . $code . "\n";
|
28 |
-
if ($indent_change > 0) $indent += 1;
|
29 |
-
|
30 |
-
return $str;
|
31 |
-
}
|
32 |
-
|
33 |
-
function get_product($id)
|
34 |
-
{
|
35 |
-
$params = array
|
36 |
-
(
|
37 |
-
array("alias" => "p", "action" => "product", "params" => array("id" => $id)),
|
38 |
-
array("alias" => "pf", "action" => "profile")
|
39 |
-
);
|
40 |
-
|
41 |
-
$batch_result = $this->ecwid_api->get_batch_request($params);
|
42 |
-
$product = $batch_result["p"];
|
43 |
-
$profile = $batch_result["pf"];
|
44 |
-
|
45 |
-
$return = $this->_l('');
|
46 |
-
|
47 |
-
if (is_array($product))
|
48 |
-
{
|
49 |
-
|
50 |
-
$return .= $this->_l('<div itemscope itemtype="http://schema.org/Product">', 1);
|
51 |
-
$return .= $this->_l('<h2 class="ecwid_catalog_product_name" itemprop="name">' . esc_html($product["name"]) . '</h2>');
|
52 |
-
$return .= $this->_l('<p class="ecwid_catalog_product_sku" itemprop="sku">' . esc_html($product["sku"]) . '</p>');
|
53 |
-
|
54 |
-
if (!empty($product["thumbnailUrl"]))
|
55 |
-
{
|
56 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_image">', 1);
|
57 |
-
$return .= $this->_l(
|
58 |
-
sprintf(
|
59 |
-
'<img itemprop="image" src="%s" alt="%s" />',
|
60 |
-
esc_attr($product['thumbnailUrl']),
|
61 |
-
esc_attr($product['name'] . ' ' . $product['sku'])
|
62 |
-
)
|
63 |
-
);
|
64 |
-
$return .= $this->_l('</div>', -1);
|
65 |
-
}
|
66 |
-
|
67 |
-
if(is_array($product["categories"]))
|
68 |
-
{
|
69 |
-
foreach ($product["categories"] as $ecwid_category)
|
70 |
-
{
|
71 |
-
if($ecwid_category["defaultCategory"] == true)
|
72 |
-
{
|
73 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_category">' . esc_html($ecwid_category['name']) . '</div>');
|
74 |
-
}
|
75 |
-
}
|
76 |
-
}
|
77 |
-
|
78 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_price" itemprop="offers" itemscope itemtype="http://schema.org/Offer">', 1);
|
79 |
-
$return .= $this->_l(__('Price', 'ecwid-shopping-cart') . ': <span itemprop="price">' . esc_html($product["price"]) . '</span>');
|
80 |
-
|
81 |
-
$return .= $this->_l('<span itemprop="priceCurrency">' . esc_html($profile['currency']) . '</span>');
|
82 |
-
if (!isset($product['quantity']) || (isset($product['quantity']) && $product['quantity'] > 0)) {
|
83 |
-
$return .= $this->_l('<link itemprop="availability" href="http://schema.org/InStock" />In stock');
|
84 |
-
}
|
85 |
-
$return .= $this->_l('</div>', -1);
|
86 |
-
|
87 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_description" itemprop="description">', 1);
|
88 |
-
$return .= $this->_l($product['description']);
|
89 |
-
$return .= $this->_l('</div>', -1);
|
90 |
-
|
91 |
-
if (is_array($product['attributes']) && !empty($product['attributes'])) {
|
92 |
-
|
93 |
-
foreach ($product['attributes'] as $attribute) {
|
94 |
-
if (trim($attribute['value']) != '') {
|
95 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_attribute">', 1);
|
96 |
-
|
97 |
-
$attr_string = $attribute['name'] . ':';
|
98 |
-
|
99 |
-
if (isset($attribute['internalName']) && $attribute['internalName'] == 'Brand') {
|
100 |
-
$attr_string .= '<span itemprop="brand">' . $attribute['value'] . '</span>';
|
101 |
-
} else {
|
102 |
-
$attr_string .= $attribute['value'];
|
103 |
-
}
|
104 |
-
|
105 |
-
$return .= $this->_l($attr_string);
|
106 |
-
$return .= $this->_l('</div>', -1);
|
107 |
-
}
|
108 |
-
}
|
109 |
-
}
|
110 |
-
|
111 |
-
if (is_array($product["options"]))
|
112 |
-
{
|
113 |
-
$allowed_types = array('TEXTFIELD', 'DATE', 'TEXTAREA', 'SELECT', 'RADIO', 'CHECKBOX');
|
114 |
-
foreach($product["options"] as $product_options)
|
115 |
-
{
|
116 |
-
if (!in_array($product_options['type'], $allowed_types)) continue;
|
117 |
-
|
118 |
-
$return .= $this->_l('<div class="ecwid_catalog_product_options">', 1);
|
119 |
-
$return .=$this->_l('<span>' . esc_html($product_options["name"]) . '</span>');
|
120 |
-
|
121 |
-
if($product_options["type"] == "TEXTFIELD" || $product_options["type"] == "DATE")
|
122 |
-
{
|
123 |
-
$return .=$this->_l('<input type="text" size="40" name="'. esc_attr($product_options["name"]) . '">');
|
124 |
-
}
|
125 |
-
if($product_options["type"] == "TEXTAREA")
|
126 |
-
{
|
127 |
-
$return .=$this->_l('<textarea name="' . esc_attr($product_options["name"]) . '></textarea>');
|
128 |
-
}
|
129 |
-
if ($product_options["type"] == "SELECT")
|
130 |
-
{
|
131 |
-
$return .= $this->_l('<select name='. $product_options["name"].'>', 1);
|
132 |
-
foreach ($product_options["choices"] as $options_param)
|
133 |
-
{
|
134 |
-
$return .= $this->_l(
|
135 |
-
sprintf(
|
136 |
-
'<option value="%s">%s (%s)</option>',
|
137 |
-
esc_attr($options_param['text']),
|
138 |
-
esc_html($options_param['text']),
|
139 |
-
esc_html($options_param['priceModifier'])
|
140 |
-
)
|
141 |
-
);
|
142 |
-
}
|
143 |
-
$return .= $this->_l('</select>', -1);
|
144 |
-
}
|
145 |
-
if($product_options["type"] == "RADIO")
|
146 |
-
{
|
147 |
-
foreach ($product_options["choices"] as $options_param)
|
148 |
-
{
|
149 |
-
$return .= $this->_l(
|
150 |
-
sprintf(
|
151 |
-
'<input type="radio" name="%s" value="%s" />%s (%s)',
|
152 |
-
esc_attr($product_options['name']),
|
153 |
-
esc_attr($options_param['text']),
|
154 |
-
esc_html($options_param['text']),
|
155 |
-
esc_html($options_param['priceModifier'])
|
156 |
-
)
|
157 |
-
);
|
158 |
-
}
|
159 |
-
}
|
160 |
-
if($product_options["type"] == "CHECKBOX")
|
161 |
-
{
|
162 |
-
foreach ($product_options["choices"] as $options_param)
|
163 |
-
{
|
164 |
-
$return .= $this->_l(
|
165 |
-
sprintf(
|
166 |
-
'<input type="checkbox" name="%s" value="%s" />%s (%s)',
|
167 |
-
esc_attr($product_options['name']),
|
168 |
-
esc_attr($options_param['text']),
|
169 |
-
esc_html($options_param['text']),
|
170 |
-
esc_html($options_param['priceModifier'])
|
171 |
-
)
|
172 |
-
);
|
173 |
-
}
|
174 |
-
}
|
175 |
-
|
176 |
-
$return .= $this->_l('</div>', -1);
|
177 |
-
}
|
178 |
-
}
|
179 |
-
|
180 |
-
if (is_array($product["galleryImages"]))
|
181 |
-
{
|
182 |
-
foreach ($product["galleryImages"] as $galleryimage)
|
183 |
-
{
|
184 |
-
if (empty($galleryimage["alt"])) $galleryimage["alt"] = htmlspecialchars($product["name"]);
|
185 |
-
$return .= $this->_l(
|
186 |
-
sprintf(
|
187 |
-
'<img src="%s" alt="%s" title="%s" />',
|
188 |
-
esc_attr($galleryimage['url']),
|
189 |
-
esc_attr($galleryimage['alt']),
|
190 |
-
esc_attr($galleryimage['alt'])
|
191 |
-
)
|
192 |
-
);
|
193 |
-
}
|
194 |
-
}
|
195 |
-
|
196 |
-
$return .= $this->_l("</div>", -1);
|
197 |
-
}
|
198 |
-
|
199 |
-
return $return;
|
200 |
-
}
|
201 |
-
|
202 |
-
function get_category($id)
|
203 |
-
{
|
204 |
-
$params = array
|
205 |
-
(
|
206 |
-
array("alias" => "c", "action" => "categories", "params" => array("parent" => $id)),
|
207 |
-
array("alias" => "p", "action" => "products", "params" => array("category" => $id)),
|
208 |
-
array("alias" => "pf", "action" => "profile")
|
209 |
-
);
|
210 |
-
if ($id > 0) {
|
211 |
-
$params[] = array('alias' => 'category', "action" => "category", "params" => array("id" => $id));
|
212 |
-
}
|
213 |
-
|
214 |
-
$batch_result = $this->ecwid_api->get_batch_request($params);
|
215 |
-
|
216 |
-
$category = $id > 0 ? $batch_result['category'] : null;
|
217 |
-
$categories = $batch_result["c"];
|
218 |
-
$products = $batch_result["p"];
|
219 |
-
$profile = $batch_result["pf"];
|
220 |
-
|
221 |
-
$return = $this->_l('');
|
222 |
-
|
223 |
-
if (!is_null($category)) {
|
224 |
-
$return .= $this->_l('<h2>' . esc_html($category['name']) . '</h2>');
|
225 |
-
$return .= $this->_l('<div>' . $category['description'] . '</div>');
|
226 |
-
}
|
227 |
-
|
228 |
-
if (is_array($categories))
|
229 |
-
{
|
230 |
-
foreach ($categories as $category)
|
231 |
-
{
|
232 |
-
$category_url = ecwid_get_category_url($category);
|
233 |
-
|
234 |
-
$category_name = $category["name"];
|
235 |
-
$return .= $this->_l('<div class="ecwid_catalog_category_name">', 1);
|
236 |
-
$return .= $this->_l('<a href="' . esc_attr($category_url) . '">' . esc_html($category_name) . '</a>');
|
237 |
-
$return .= $this->_l('</div>', -1);
|
238 |
-
}
|
239 |
-
}
|
240 |
-
|
241 |
-
if (is_array($products))
|
242 |
-
{
|
243 |
-
foreach ($products as $product)
|
244 |
-
{
|
245 |
-
|
246 |
-
$product_url = ecwid_get_product_url($product);
|
247 |
-
|
248 |
-
$product_name = $product['name'];
|
249 |
-
$product_price = $product['price'] . ' ' . $profile['currency'];
|
250 |
-
$return .= $this->_l('<div>', 1);
|
251 |
-
$return .= $this->_l('<span class="ecwid_product_name">', 1);
|
252 |
-
$return .= $this->_l('<a href="' . esc_attr($product_url) . '">' . esc_html($product_name) . '</a>');
|
253 |
-
$return .= $this->_l('</span>', -1);
|
254 |
-
$return .= $this->_l('<span class="ecwid_product_price">' . esc_html($product_price) . '</span>');
|
255 |
-
$return .= $this->_l('</div>', -1);
|
256 |
-
}
|
257 |
-
}
|
258 |
-
|
259 |
-
return $return;
|
260 |
-
}
|
261 |
-
|
262 |
-
function build_url($url_from_ecwid)
|
263 |
-
{
|
264 |
-
if (preg_match('/(.*)(#!)(.*)/', $url_from_ecwid, $matches))
|
265 |
-
return $this->store_base_url . $matches[2] . $matches[3];
|
266 |
-
else
|
267 |
-
return '';
|
268 |
-
}
|
269 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/EcwidSitemapBuilder.php
DELETED
@@ -1,85 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once dirname(__FILE__) . '/JSONStreamingParser/Listener.php';
|
4 |
-
require_once dirname(__FILE__) . '/JSONStreamingParser/Parser.php';
|
5 |
-
|
6 |
-
|
7 |
-
class EcwidSitemapBuilder implements JsonStreamingParser_Listener {
|
8 |
-
var $_stack;
|
9 |
-
var $_key;
|
10 |
-
var $callback;
|
11 |
-
var $base_url;
|
12 |
-
var $api;
|
13 |
-
var $type;
|
14 |
-
|
15 |
-
public function __construct($base_url, $callback, $api) {
|
16 |
-
$this->callback = $callback;
|
17 |
-
$this->base_url = $base_url;
|
18 |
-
$this->api = $api;
|
19 |
-
}
|
20 |
-
|
21 |
-
public function generate() {
|
22 |
-
|
23 |
-
foreach (array('products', 'categories') as $type) {
|
24 |
-
$this->type = $type;
|
25 |
-
$stream = $this->api->get_method_response_stream($type);
|
26 |
-
if (!is_null($stream)) {
|
27 |
-
try {
|
28 |
-
$parser = new JsonStreamingParser_Parser($stream, $this);
|
29 |
-
$parser->parse();
|
30 |
-
} catch (Exception $e) {
|
31 |
-
fclose($stream);
|
32 |
-
}
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
return true;
|
37 |
-
}
|
38 |
-
|
39 |
-
public function file_position($line, $char) {
|
40 |
-
|
41 |
-
}
|
42 |
-
|
43 |
-
public function start_document() {
|
44 |
-
$this->_stack = array();
|
45 |
-
|
46 |
-
$this->_key = null;
|
47 |
-
}
|
48 |
-
|
49 |
-
public function end_document() {
|
50 |
-
}
|
51 |
-
|
52 |
-
public function start_object() {
|
53 |
-
array_push($this->_stack, array());
|
54 |
-
}
|
55 |
-
|
56 |
-
public function end_object() {
|
57 |
-
|
58 |
-
$obj = array_pop($this->_stack);
|
59 |
-
if (is_array($obj) && array_key_exists('url', $obj)) {
|
60 |
-
$callback = $this->callback;
|
61 |
-
|
62 |
-
$callback(
|
63 |
-
ecwid_get_entity_url($obj, $this->type == 'products' ? 'p' : 'c'),
|
64 |
-
$this->type == 'products' ? 0.6 : 0.5,
|
65 |
-
'weekly'
|
66 |
-
);
|
67 |
-
}
|
68 |
-
}
|
69 |
-
|
70 |
-
public function start_array() {
|
71 |
-
}
|
72 |
-
|
73 |
-
public function end_array() {
|
74 |
-
}
|
75 |
-
|
76 |
-
public function key($key) {
|
77 |
-
$this->_key = $key;
|
78 |
-
}
|
79 |
-
|
80 |
-
public function value($value) {
|
81 |
-
if ($this->_key == 'url') {
|
82 |
-
$this->_stack[0]['url'] = $value;
|
83 |
-
}
|
84 |
-
}
|
85 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/JSONStreamingParser/LICENSE.txt
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
The MIT License (MIT)
|
2 |
-
Copyright © 2013 <copyright holders>
|
3 |
-
|
4 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
5 |
-
|
6 |
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
7 |
-
|
8 |
-
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/JSONStreamingParser/Listener.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
interface JsonStreamingParser_Listener {
|
3 |
-
|
4 |
-
public function file_position($line, $char);
|
5 |
-
|
6 |
-
public function start_document();
|
7 |
-
public function end_document();
|
8 |
-
|
9 |
-
public function start_object();
|
10 |
-
public function end_object();
|
11 |
-
|
12 |
-
public function start_array();
|
13 |
-
public function end_array();
|
14 |
-
|
15 |
-
// Key will always be a string
|
16 |
-
public function key($key);
|
17 |
-
|
18 |
-
// Note that value may be a string, integer, boolean, array, etc.
|
19 |
-
public function value($value);
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/JSONStreamingParser/Listener/SubsetConsumer.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
namespace JsonStreamingParser\Listener;
|
4 |
-
|
5 |
-
abstract class SubsetConsumer implements \JsonStreamingParser_Listener
|
6 |
-
{
|
7 |
-
private $keyValueStack;
|
8 |
-
private $key;
|
9 |
-
|
10 |
-
/**
|
11 |
-
* @param mixed $data
|
12 |
-
* @return boolean if data was consumed and can be discarded
|
13 |
-
*/
|
14 |
-
abstract protected function consume($data);
|
15 |
-
|
16 |
-
public function file_position($line, $char) {
|
17 |
-
|
18 |
-
}
|
19 |
-
|
20 |
-
public function start_document()
|
21 |
-
{
|
22 |
-
$this->keyValueStack = array();
|
23 |
-
}
|
24 |
-
|
25 |
-
public function end_document()
|
26 |
-
{
|
27 |
-
}
|
28 |
-
|
29 |
-
public function start_object()
|
30 |
-
{
|
31 |
-
array_push($this->keyValueStack, is_null($this->key) ? array(array()) : array($this->key => array()));
|
32 |
-
$this->key = null;
|
33 |
-
}
|
34 |
-
|
35 |
-
public function end_object()
|
36 |
-
{
|
37 |
-
$keyValue = array_pop($this->keyValueStack);
|
38 |
-
$obj = reset($keyValue);
|
39 |
-
$this->key = key($keyValue);
|
40 |
-
$hasBeenConsumed = $this->consume($obj);
|
41 |
-
|
42 |
-
if (!empty($this->keyValueStack)) {
|
43 |
-
$this->value($hasBeenConsumed ? '*consumed*' : $obj);
|
44 |
-
}
|
45 |
-
|
46 |
-
}
|
47 |
-
|
48 |
-
public function start_array()
|
49 |
-
{
|
50 |
-
$this->start_object();
|
51 |
-
}
|
52 |
-
|
53 |
-
public function end_array()
|
54 |
-
{
|
55 |
-
$this->end_object();
|
56 |
-
}
|
57 |
-
|
58 |
-
public function key($key)
|
59 |
-
{
|
60 |
-
$this->key = $key;
|
61 |
-
}
|
62 |
-
|
63 |
-
public function value($value)
|
64 |
-
{
|
65 |
-
$keyValue = array_pop($this->keyValueStack);
|
66 |
-
$objKey = key($keyValue);
|
67 |
-
|
68 |
-
if ($this->key) {
|
69 |
-
$keyValue[$objKey][$this->key] = $value;
|
70 |
-
} else {
|
71 |
-
array_push($keyValue[$objKey], $value);
|
72 |
-
}
|
73 |
-
array_push($this->keyValueStack, $keyValue);
|
74 |
-
}
|
75 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/JSONStreamingParser/Parser.php
DELETED
@@ -1,493 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
require_once 'ParsingError.php';
|
3 |
-
require_once 'Listener.php';
|
4 |
-
|
5 |
-
class JsonStreamingParser_Parser {
|
6 |
-
private $_state;
|
7 |
-
const STATE_START_DOCUMENT = 0;
|
8 |
-
const STATE_DONE = -1;
|
9 |
-
const STATE_IN_ARRAY = 1;
|
10 |
-
const STATE_IN_OBJECT = 2;
|
11 |
-
const STATE_END_KEY = 3;
|
12 |
-
const STATE_AFTER_KEY = 4;
|
13 |
-
const STATE_IN_STRING = 5;
|
14 |
-
const STATE_START_ESCAPE = 6;
|
15 |
-
const STATE_UNICODE = 7;
|
16 |
-
const STATE_IN_NUMBER = 8;
|
17 |
-
const STATE_IN_TRUE = 9;
|
18 |
-
const STATE_IN_FALSE = 10;
|
19 |
-
const STATE_IN_NULL = 11;
|
20 |
-
const STATE_AFTER_VALUE = 12;
|
21 |
-
|
22 |
-
const STACK_OBJECT = 0;
|
23 |
-
const STACK_ARRAY = 1;
|
24 |
-
const STACK_KEY = 2;
|
25 |
-
const STACK_STRING = 3;
|
26 |
-
private $_stack;
|
27 |
-
|
28 |
-
private $_stream;
|
29 |
-
|
30 |
-
/**
|
31 |
-
* @var JsonStreamingParser_Listener
|
32 |
-
*/
|
33 |
-
private $_listener;
|
34 |
-
|
35 |
-
private $_buffer;
|
36 |
-
private $_buffer_size;
|
37 |
-
private $_unicode_buffer;
|
38 |
-
private $_unicode_high_codepoint;
|
39 |
-
private $_line_ending;
|
40 |
-
|
41 |
-
private $_line_number;
|
42 |
-
private $_char_number;
|
43 |
-
|
44 |
-
|
45 |
-
public function __construct($stream, $listener, $line_ending = "\n") {
|
46 |
-
if (!is_resource($stream) || get_resource_type($stream) != 'stream') {
|
47 |
-
throw new InvalidArgumentException("Argument is not a stream");
|
48 |
-
}
|
49 |
-
if (!in_array("JsonStreamingParser_Listener", class_implements(get_class($listener)))) {
|
50 |
-
throw new InvalidArgumentException("Listener must implement JsonStreamingParser_Listener");
|
51 |
-
}
|
52 |
-
|
53 |
-
$this->_stream = $stream;
|
54 |
-
$this->_listener = $listener;
|
55 |
-
|
56 |
-
$this->_state = self::STATE_START_DOCUMENT;
|
57 |
-
$this->_stack = array();
|
58 |
-
|
59 |
-
$this->_buffer = '';
|
60 |
-
$this->_buffer_size = 8192;
|
61 |
-
$this->_unicode_buffer = array();
|
62 |
-
$this->_unicode_high_codepoint = -1;
|
63 |
-
$this->_line_ending = $line_ending;
|
64 |
-
}
|
65 |
-
|
66 |
-
|
67 |
-
public function parse() {
|
68 |
-
$this->_line_number = 1;
|
69 |
-
$this->_char_number = 1;
|
70 |
-
|
71 |
-
while (!feof($this->_stream)) {
|
72 |
-
$pos = ftell($this->_stream);
|
73 |
-
$line = stream_get_line($this->_stream, $this->_buffer_size, $this->_line_ending);
|
74 |
-
$ended = (bool)(ftell($this->_stream) - strlen($line) - $pos);
|
75 |
-
|
76 |
-
$byteLen = strlen($line);
|
77 |
-
for ($i = 0; $i < $byteLen; $i++) {
|
78 |
-
$this->_listener->file_position($this->_line_number, $this->_char_number);
|
79 |
-
$this->_consume_char($line[$i]);
|
80 |
-
$this->_char_number++;
|
81 |
-
}
|
82 |
-
|
83 |
-
if ($ended) {
|
84 |
-
$this->_line_number++;
|
85 |
-
$this->_char_number = 1;
|
86 |
-
}
|
87 |
-
|
88 |
-
}
|
89 |
-
}
|
90 |
-
|
91 |
-
private function _consume_char($c) {
|
92 |
-
// valid whitespace characters in JSON (from RFC4627 for JSON) include:
|
93 |
-
// space, horizontal tab, line feed or new line, and carriage return.
|
94 |
-
// thanks: http://stackoverflow.com/questions/16042274/definition-of-whitespace-in-json
|
95 |
-
if (($c === " " || $c === "\t" || $c === "\n" || $c === "\r") &&
|
96 |
-
!($this->_state === self::STATE_IN_STRING ||
|
97 |
-
$this->_state === self::STATE_UNICODE ||
|
98 |
-
$this->_state === self::STATE_START_ESCAPE ||
|
99 |
-
$this->_state === self::STATE_IN_NUMBER ||
|
100 |
-
$this->_state === self::STATE_START_DOCUMENT)) {
|
101 |
-
return;
|
102 |
-
}
|
103 |
-
|
104 |
-
switch ($this->_state) {
|
105 |
-
|
106 |
-
case self::STATE_START_DOCUMENT:
|
107 |
-
$this->_listener->start_document();
|
108 |
-
if ($c === '[') {
|
109 |
-
$this->_start_array();
|
110 |
-
} elseif ($c === '{') {
|
111 |
-
$this->_start_object();
|
112 |
-
} else {
|
113 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
114 |
-
"Document must start with object or array.");
|
115 |
-
}
|
116 |
-
break;
|
117 |
-
|
118 |
-
case self::STATE_IN_ARRAY:
|
119 |
-
if ($c === ']') {
|
120 |
-
$this->_end_array();
|
121 |
-
} else {
|
122 |
-
$this->_start_value($c);
|
123 |
-
}
|
124 |
-
break;
|
125 |
-
|
126 |
-
case self::STATE_IN_OBJECT:
|
127 |
-
if ($c === '}') {
|
128 |
-
$this->_end_object();
|
129 |
-
} elseif ($c === '"') {
|
130 |
-
$this->_start_key();
|
131 |
-
} else {
|
132 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
133 |
-
"Start of string expected for object key. Instead got: ".$c);
|
134 |
-
}
|
135 |
-
break;
|
136 |
-
|
137 |
-
case self::STATE_END_KEY:
|
138 |
-
if ($c !== ':') {
|
139 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
140 |
-
"Expected ':' after key.");
|
141 |
-
}
|
142 |
-
$this->_state = self::STATE_AFTER_KEY;
|
143 |
-
break;
|
144 |
-
|
145 |
-
case self::STATE_AFTER_KEY:
|
146 |
-
$this->_start_value($c);
|
147 |
-
break;
|
148 |
-
|
149 |
-
case self::STATE_IN_STRING:
|
150 |
-
if ($c === '"') {
|
151 |
-
$this->_end_string();
|
152 |
-
} elseif ($c === '\\') {
|
153 |
-
$this->_state = self::STATE_START_ESCAPE;
|
154 |
-
} elseif (($c < "\x1f") || ($c === "\x7f")) {
|
155 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
156 |
-
"Unescaped control character encountered: ".$c);
|
157 |
-
} else {
|
158 |
-
$this->_buffer .= $c;
|
159 |
-
}
|
160 |
-
break;
|
161 |
-
|
162 |
-
case self::STATE_START_ESCAPE:
|
163 |
-
$this->_process_escape_character($c);
|
164 |
-
break;
|
165 |
-
|
166 |
-
case self::STATE_UNICODE:
|
167 |
-
$this->_process_unicode_character($c);
|
168 |
-
break;
|
169 |
-
|
170 |
-
case self::STATE_AFTER_VALUE:
|
171 |
-
$within = end($this->_stack);
|
172 |
-
if ($within === self::STACK_OBJECT) {
|
173 |
-
if ($c === '}') {
|
174 |
-
$this->_end_object();
|
175 |
-
} elseif ($c === ',') {
|
176 |
-
$this->_state = self::STATE_IN_OBJECT;
|
177 |
-
} else {
|
178 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
179 |
-
"Expected ',' or '}' while parsing object. Got: ".$c);
|
180 |
-
}
|
181 |
-
} elseif ($within === self::STACK_ARRAY) {
|
182 |
-
if ($c === ']') {
|
183 |
-
$this->_end_array();
|
184 |
-
} elseif ($c === ',') {
|
185 |
-
$this->_state = self::STATE_IN_ARRAY;
|
186 |
-
} else {
|
187 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
188 |
-
"Expected ',' or ']' while parsing array. Got: ".$c);
|
189 |
-
}
|
190 |
-
} else {
|
191 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
192 |
-
"Finished a literal, but unclear what state to move to. Last state: ".$within);
|
193 |
-
}
|
194 |
-
break;
|
195 |
-
|
196 |
-
case self::STATE_IN_NUMBER:
|
197 |
-
if (preg_match('/\d/', $c)) {
|
198 |
-
$this->_buffer .= $c;
|
199 |
-
} elseif ($c === '.') {
|
200 |
-
if (strpos($this->_buffer, '.') !== false) {
|
201 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
202 |
-
"Cannot have multiple decimal points in a number.");
|
203 |
-
} elseif (stripos($this->_buffer, 'e') !== false) {
|
204 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
205 |
-
"Cannot have a decimal point in an exponent.");
|
206 |
-
}
|
207 |
-
$this->_buffer .= $c;
|
208 |
-
} elseif ($c === 'e' || $c === 'E') {
|
209 |
-
if (stripos($this->_buffer, 'e') !== false) {
|
210 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
211 |
-
"Cannot have multiple exponents in a number.");
|
212 |
-
}
|
213 |
-
$this->_buffer .= $c;
|
214 |
-
} elseif ($c === '+' || $c === '-') {
|
215 |
-
$last = mb_substr($this->_buffer, -1);
|
216 |
-
if (!($last === 'e' || $last === 'E')) {
|
217 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
218 |
-
"Can only have '+' or '-' after the 'e' or 'E' in a number.");
|
219 |
-
}
|
220 |
-
$this->_buffer .= $c;
|
221 |
-
} else {
|
222 |
-
$this->_end_number();
|
223 |
-
// we have consumed one beyond the end of the number
|
224 |
-
$this->_consume_char($c);
|
225 |
-
}
|
226 |
-
break;
|
227 |
-
|
228 |
-
case self::STATE_IN_TRUE:
|
229 |
-
$this->_buffer .= $c;
|
230 |
-
if (mb_strlen($this->_buffer) === 4) {
|
231 |
-
$this->_end_true();
|
232 |
-
}
|
233 |
-
break;
|
234 |
-
|
235 |
-
case self::STATE_IN_FALSE:
|
236 |
-
$this->_buffer .= $c;
|
237 |
-
if (mb_strlen($this->_buffer) === 5) {
|
238 |
-
$this->_end_false();
|
239 |
-
}
|
240 |
-
break;
|
241 |
-
|
242 |
-
case self::STATE_IN_NULL:
|
243 |
-
$this->_buffer .= $c;
|
244 |
-
if (mb_strlen($this->_buffer) === 4) {
|
245 |
-
$this->_end_null();
|
246 |
-
}
|
247 |
-
break;
|
248 |
-
|
249 |
-
case self::STATE_DONE:
|
250 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
251 |
-
"Expected end of document.");
|
252 |
-
|
253 |
-
default:
|
254 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
255 |
-
"Internal error. Reached an unknown state: ".$this->_state);
|
256 |
-
}
|
257 |
-
}
|
258 |
-
|
259 |
-
private function _is_hex_character($c) {
|
260 |
-
return preg_match('/[0-9a-fA-F]/u', $c);
|
261 |
-
}
|
262 |
-
|
263 |
-
// Thanks: http://stackoverflow.com/questions/1805802/php-convert-unicode-codepoint-to-utf-8
|
264 |
-
private function _convert_codepoint_to_character($num) {
|
265 |
-
if($num<=0x7F) return chr($num);
|
266 |
-
if($num<=0x7FF) return chr(($num>>6)+192).chr(($num&63)+128);
|
267 |
-
if($num<=0xFFFF) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
|
268 |
-
if($num<=0x1FFFFF) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128).chr(($num&63)+128);
|
269 |
-
return '';
|
270 |
-
}
|
271 |
-
|
272 |
-
private function _is_digit($c) {
|
273 |
-
// Only concerned with the first character in a number.
|
274 |
-
return preg_match('/[0-9]|-/u',$c);
|
275 |
-
}
|
276 |
-
|
277 |
-
|
278 |
-
private function _start_value($c) {
|
279 |
-
if ($c === '[') {
|
280 |
-
$this->_start_array();
|
281 |
-
} elseif ($c === '{') {
|
282 |
-
$this->_start_object();
|
283 |
-
} elseif ($c === '"') {
|
284 |
-
$this->_start_string();
|
285 |
-
} elseif ($this->_is_digit($c)) {
|
286 |
-
$this->_start_number($c);
|
287 |
-
} elseif ($c === 't') {
|
288 |
-
$this->_state = self::STATE_IN_TRUE;
|
289 |
-
$this->_buffer .= $c;
|
290 |
-
} elseif ($c === 'f') {
|
291 |
-
$this->_state = self::STATE_IN_FALSE;
|
292 |
-
$this->_buffer .= $c;
|
293 |
-
} elseif ($c === 'n') {
|
294 |
-
$this->_state = self::STATE_IN_NULL;
|
295 |
-
$this->_buffer .= $c;
|
296 |
-
} else {
|
297 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
298 |
-
"Unexpected character for value: ".$c);
|
299 |
-
}
|
300 |
-
}
|
301 |
-
|
302 |
-
|
303 |
-
private function _start_array() {
|
304 |
-
$this->_listener->start_array();
|
305 |
-
$this->_state = self::STATE_IN_ARRAY;
|
306 |
-
array_push($this->_stack, self::STACK_ARRAY);
|
307 |
-
}
|
308 |
-
|
309 |
-
private function _end_array() {
|
310 |
-
$popped = array_pop($this->_stack);
|
311 |
-
if ($popped !== self::STACK_ARRAY) {
|
312 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
313 |
-
"Unexpected end of array encountered.");
|
314 |
-
}
|
315 |
-
$this->_listener->end_array();
|
316 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
317 |
-
|
318 |
-
if (empty($this->_stack)) {
|
319 |
-
$this->_end_document();
|
320 |
-
}
|
321 |
-
}
|
322 |
-
|
323 |
-
|
324 |
-
private function _start_object() {
|
325 |
-
$this->_listener->start_object();
|
326 |
-
$this->_state = self::STATE_IN_OBJECT;
|
327 |
-
array_push($this->_stack, self::STACK_OBJECT);
|
328 |
-
}
|
329 |
-
|
330 |
-
private function _end_object() {
|
331 |
-
$popped = array_pop($this->_stack);
|
332 |
-
if ($popped !== self::STACK_OBJECT) {
|
333 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
334 |
-
"Unexpected end of object encountered.");
|
335 |
-
}
|
336 |
-
$this->_listener->end_object();
|
337 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
338 |
-
|
339 |
-
if (empty($this->_stack)) {
|
340 |
-
$this->_end_document();
|
341 |
-
}
|
342 |
-
}
|
343 |
-
|
344 |
-
private function _start_string() {
|
345 |
-
array_push($this->_stack, self::STACK_STRING);
|
346 |
-
$this->_state = self::STATE_IN_STRING;
|
347 |
-
}
|
348 |
-
|
349 |
-
private function _start_key() {
|
350 |
-
array_push($this->_stack, self::STACK_KEY);
|
351 |
-
$this->_state = self::STATE_IN_STRING;
|
352 |
-
}
|
353 |
-
|
354 |
-
private function _end_string() {
|
355 |
-
$popped = array_pop($this->_stack);
|
356 |
-
if ($popped === self::STACK_KEY) {
|
357 |
-
$this->_listener->key($this->_buffer);
|
358 |
-
$this->_state = self::STATE_END_KEY;
|
359 |
-
} elseif ($popped === self::STACK_STRING) {
|
360 |
-
$this->_listener->value($this->_buffer);
|
361 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
362 |
-
} else {
|
363 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
364 |
-
"Unexpected end of string.");
|
365 |
-
}
|
366 |
-
$this->_buffer = '';
|
367 |
-
}
|
368 |
-
|
369 |
-
private function _process_escape_character($c) {
|
370 |
-
if ($c === '"') {
|
371 |
-
$this->_buffer .= '"';
|
372 |
-
} elseif ($c === '\\') {
|
373 |
-
$this->_buffer .= '\\';
|
374 |
-
} elseif ($c === '/') {
|
375 |
-
$this->_buffer .= '/';
|
376 |
-
} elseif ($c === 'b') {
|
377 |
-
$this->_buffer .= "\x08";
|
378 |
-
} elseif ($c === 'f') {
|
379 |
-
$this->_buffer .= "\f";
|
380 |
-
} elseif ($c === 'n') {
|
381 |
-
$this->_buffer .= "\n";
|
382 |
-
} elseif ($c === 'r') {
|
383 |
-
$this->_buffer .= "\r";
|
384 |
-
} elseif ($c === 't') {
|
385 |
-
$this->_buffer .= "\t";
|
386 |
-
} elseif ($c === 'u') {
|
387 |
-
$this->_state = self::STATE_UNICODE;
|
388 |
-
} else {
|
389 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
390 |
-
"Expected escaped character after backslash. Got: ".$c);
|
391 |
-
}
|
392 |
-
|
393 |
-
if ($this->_state !== self::STATE_UNICODE) {
|
394 |
-
$this->_state = self::STATE_IN_STRING;
|
395 |
-
}
|
396 |
-
}
|
397 |
-
|
398 |
-
private function _process_unicode_character($c) {
|
399 |
-
if (!$this->_is_hex_character($c)) {
|
400 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
401 |
-
"Expected hex character for escaped unicode character. Unicode parsed: " . implode($this->_unicode_buffer) . " and got: ".$c);
|
402 |
-
}
|
403 |
-
array_push($this->_unicode_buffer, $c);
|
404 |
-
if (count($this->_unicode_buffer) === 4) {
|
405 |
-
$codepoint = hexdec(implode($this->_unicode_buffer));
|
406 |
-
|
407 |
-
if ($codepoint >= 0xD800 && $codepoint < 0xDC00) {
|
408 |
-
$this->_unicode_high_codepoint = $codepoint;
|
409 |
-
$this->_unicode_buffer = array();
|
410 |
-
} elseif ($codepoint >= 0xDC00 && $codepoint <= 0xDFFF) {
|
411 |
-
if ($this->_unicode_high_codepoint === -1) {
|
412 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
413 |
-
"Missing high codepoint for unicode low codepoint.");
|
414 |
-
}
|
415 |
-
$combined_codepoint = (($this->_unicode_high_codepoint - 0xD800) * 0x400) + ($codepoint - 0xDC00) + 0x10000;
|
416 |
-
|
417 |
-
$this->_end_unicode_character($combined_codepoint);
|
418 |
-
} else {
|
419 |
-
$this->_end_unicode_character($codepoint);
|
420 |
-
}
|
421 |
-
}
|
422 |
-
}
|
423 |
-
|
424 |
-
private function _end_unicode_character($codepoint) {
|
425 |
-
$this->_buffer .= $this->_convert_codepoint_to_character($codepoint);
|
426 |
-
$this->_unicode_buffer = array();
|
427 |
-
$this->_unicode_high_codepoint = -1;
|
428 |
-
$this->_state = self::STATE_IN_STRING;
|
429 |
-
}
|
430 |
-
|
431 |
-
|
432 |
-
private function _start_number($c) {
|
433 |
-
$this->_state = self::STATE_IN_NUMBER;
|
434 |
-
$this->_buffer .= $c;
|
435 |
-
}
|
436 |
-
|
437 |
-
private function _end_number() {
|
438 |
-
$num = $this->_buffer;
|
439 |
-
if (preg_match('/\./', $num)) {
|
440 |
-
$num = (float)($num);
|
441 |
-
} else {
|
442 |
-
$num = (int)($num);
|
443 |
-
}
|
444 |
-
$this->_listener->value($num);
|
445 |
-
|
446 |
-
$this->_buffer = '';
|
447 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
448 |
-
}
|
449 |
-
|
450 |
-
|
451 |
-
private function _end_true() {
|
452 |
-
$true = $this->_buffer;
|
453 |
-
if ($true === 'true') {
|
454 |
-
$this->_listener->value(true);
|
455 |
-
} else {
|
456 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
457 |
-
"Expected 'true'. Got: ".$true);
|
458 |
-
}
|
459 |
-
$this->_buffer = '';
|
460 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
461 |
-
}
|
462 |
-
|
463 |
-
private function _end_false() {
|
464 |
-
$false = $this->_buffer;
|
465 |
-
if ($false === 'false') {
|
466 |
-
$this->_listener->value(false);
|
467 |
-
} else {
|
468 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
469 |
-
"Expected 'false'. Got: ".$false);
|
470 |
-
}
|
471 |
-
$this->_buffer = '';
|
472 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
473 |
-
}
|
474 |
-
|
475 |
-
private function _end_null() {
|
476 |
-
$null = $this->_buffer;
|
477 |
-
if ($null === 'null') {
|
478 |
-
$this->_listener->value(null);
|
479 |
-
} else {
|
480 |
-
throw new JsonStreamingParser_ParsingError($this->_line_number, $this->_char_number,
|
481 |
-
"Expected 'null'. Got: ".$null);
|
482 |
-
}
|
483 |
-
$this->_buffer = '';
|
484 |
-
$this->_state = self::STATE_AFTER_VALUE;
|
485 |
-
}
|
486 |
-
|
487 |
-
|
488 |
-
private function _end_document() {
|
489 |
-
$this->_listener->end_document();
|
490 |
-
$this->_state = self::STATE_DONE;
|
491 |
-
}
|
492 |
-
|
493 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/JSONStreamingParser/ParsingError.php
DELETED
@@ -1,12 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
class JsonStreamingParser_ParsingError extends Exception {
|
3 |
-
|
4 |
-
/**
|
5 |
-
* @param int $line
|
6 |
-
* @param int $char
|
7 |
-
* @param string $message
|
8 |
-
*/
|
9 |
-
public function __construct($line, $char, $message) {
|
10 |
-
parent::__construct("Parsing error in [$line:$char]. " . $message);
|
11 |
-
}
|
12 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/class-ecwid-message-manager.php
DELETED
@@ -1,236 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Message_Manager
|
4 |
-
{
|
5 |
-
protected $messages = array();
|
6 |
-
|
7 |
-
protected function Ecwid_Message_Manager()
|
8 |
-
{
|
9 |
-
$this->init_messages();
|
10 |
-
}
|
11 |
-
|
12 |
-
public static function show_messages()
|
13 |
-
{
|
14 |
-
$mm = self::get_instance();
|
15 |
-
|
16 |
-
foreach ($mm->messages as $name => $message) {
|
17 |
-
if ($mm->need_to_show_message($name)) {
|
18 |
-
$mm->show_message($name);
|
19 |
-
}
|
20 |
-
}
|
21 |
-
}
|
22 |
-
|
23 |
-
public static function show_message($name, $params = array())
|
24 |
-
{
|
25 |
-
$mm = self::get_instance();
|
26 |
-
|
27 |
-
$mm->need_to_show_message($name);
|
28 |
-
|
29 |
-
if (!isset($mm->messages[$name]) && empty($params)) {
|
30 |
-
trigger_error('Ecwid plugin error: unknown message ' . $name);
|
31 |
-
return;
|
32 |
-
}
|
33 |
-
|
34 |
-
$params = $mm->get_message_params($name, $params);
|
35 |
-
|
36 |
-
$type = $params['type'];
|
37 |
-
|
38 |
-
$title = $params['title'];
|
39 |
-
$message = $params['message'];
|
40 |
-
|
41 |
-
$primary_button = isset($params['primary_title']);
|
42 |
-
if ($primary_button) {
|
43 |
-
$primary_title = $params['primary_title'];
|
44 |
-
$primary_url = $params['primary_url'];
|
45 |
-
$primary_blank = @$params['primary_blank'];
|
46 |
-
}
|
47 |
-
$secondary_button = isset($params['secondary_title']);
|
48 |
-
if ($secondary_button) {
|
49 |
-
$secondary_title = $params['secondary_title'];
|
50 |
-
$secondary_url = $params['secondary_url'];
|
51 |
-
$secondary_blank = $params['secondary_blank'];
|
52 |
-
}
|
53 |
-
|
54 |
-
$do_not_show_again = true == $params['hideable'];
|
55 |
-
|
56 |
-
include ECWID_PLUGIN_DIR . '/templates/admin-message.php';
|
57 |
-
}
|
58 |
-
|
59 |
-
public static function disable_message($name)
|
60 |
-
{
|
61 |
-
$messages = get_option('ecwid_disabled_messages');
|
62 |
-
$messages[$name] = true;
|
63 |
-
|
64 |
-
update_option('ecwid_disabled_messages', $messages);
|
65 |
-
}
|
66 |
-
|
67 |
-
public static function enable_message($name)
|
68 |
-
{
|
69 |
-
$messages = get_option('ecwid_disabled_messages');
|
70 |
-
if (isset($messages['name']))
|
71 |
-
unset($messages['name']);
|
72 |
-
|
73 |
-
update_option('ecwid_disabled_messages', $messages);
|
74 |
-
}
|
75 |
-
|
76 |
-
public static function reset_hidden_messages()
|
77 |
-
{
|
78 |
-
$hidden_messages = array();
|
79 |
-
|
80 |
-
$messages = self::get_default_messages();
|
81 |
-
foreach ($messages as $name => $message) {
|
82 |
-
if (isset($message['default']) && $message['default'] == 'hidden') {
|
83 |
-
$hidden_messages[$name] = true;
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
update_option('ecwid_disabled_messages', array());
|
88 |
-
}
|
89 |
-
|
90 |
-
protected static function get_instance()
|
91 |
-
{
|
92 |
-
static $instance = null;
|
93 |
-
|
94 |
-
if (is_null($instance)) {
|
95 |
-
$instance = new Ecwid_Message_Manager();
|
96 |
-
}
|
97 |
-
|
98 |
-
return $instance;
|
99 |
-
}
|
100 |
-
|
101 |
-
protected function init_messages()
|
102 |
-
{
|
103 |
-
$this->messages = $this->get_default_messages();
|
104 |
-
|
105 |
-
$hidden_messages = get_option('ecwid_disabled_messages');
|
106 |
-
|
107 |
-
if ( !empty( $hidden_messages ) ) {
|
108 |
-
foreach ($hidden_messages as $name => $message) {
|
109 |
-
unset ($this->messages[$name]);
|
110 |
-
}
|
111 |
-
}
|
112 |
-
}
|
113 |
-
|
114 |
-
protected function get_message_params($name, $params)
|
115 |
-
{
|
116 |
-
if (is_array($name)) {
|
117 |
-
$params = $name;
|
118 |
-
$name = '';
|
119 |
-
}
|
120 |
-
|
121 |
-
if (isset($this->messages[$name])) {
|
122 |
-
$params = array_merge(
|
123 |
-
array('type' => 'info', 'title' => '', 'message' => '', 'hideable' => false),
|
124 |
-
$this->messages[$name],
|
125 |
-
$params
|
126 |
-
);
|
127 |
-
}
|
128 |
-
|
129 |
-
if ($name == 'on_storeid_set') {
|
130 |
-
$params['primary_url'] = ecwid_get_store_page_url();
|
131 |
-
}
|
132 |
-
|
133 |
-
$types_map = array(
|
134 |
-
'info' => 'updated',
|
135 |
-
'warning' => 'update-nag',
|
136 |
-
'error' => 'error'
|
137 |
-
);
|
138 |
-
$params['type'] = $types_map[$params['type']];
|
139 |
-
|
140 |
-
return $params;
|
141 |
-
}
|
142 |
-
|
143 |
-
protected function get_default_messages()
|
144 |
-
{
|
145 |
-
return array(
|
146 |
-
'on_activate' => array(
|
147 |
-
'title' => __('Greetings! Your Ecwid store is now active.', 'ecwid-shopping-cart'),
|
148 |
-
'message' => __('Take a few simple steps to complete store setup', 'ecwid-shopping-cart'),
|
149 |
-
'primary_title' => __('Set up Ecwid Store', 'ecwid-shopping-cart'),
|
150 |
-
'primary_url' => 'admin.php?page=ecwid',
|
151 |
-
'hideable' => true,
|
152 |
-
'default' => 'disabled'
|
153 |
-
),
|
154 |
-
|
155 |
-
'on_storeid_set' => array(
|
156 |
-
'title' => __('Good job! Your store is set up and you\'re ready to sell.', 'ecwid-shopping-cart'),
|
157 |
-
'message' => __('Now you can fine-tune your store\'s appearance', 'ecwid-shopping-cart'),
|
158 |
-
'primary_title' => __('Visit Storefront', 'ecwid-shopping-cart'),
|
159 |
-
'primary_url' => '',
|
160 |
-
'primary_blank' => true,
|
161 |
-
'secondary_title' => __('Configure Appearance', 'ecwid-shopping-cart'),
|
162 |
-
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
163 |
-
'hideable' => true
|
164 |
-
),
|
165 |
-
|
166 |
-
'no_storeid_on_setup_pages' => array(
|
167 |
-
'type' => 'warning',
|
168 |
-
'title' => __('Your store is almost ready!', 'ecwid-shopping-cart' ),
|
169 |
-
'message' => __('Connect your Ecwid account with this site to complete setup and start selling', 'ecwid-shopping-cart' ),
|
170 |
-
'primary_title' => __('Connect Your Ecwid Store', 'ecwid-shopping-cart' ),
|
171 |
-
'primary_url' => 'admin.php?page=ecwid',
|
172 |
-
'hideable' => true
|
173 |
-
),
|
174 |
-
|
175 |
-
'on_appearance_widgets' => array(
|
176 |
-
'message' => __('To add extra functions to your store, drag and drop Ecwid store elements on your site. When you\'re done, you can get back to modifying your settings.', 'ecwid-shopping-cart' ),
|
177 |
-
'secondary_title' => __('Back to Store Settings', 'ecwid-shopping-cart'),
|
178 |
-
'secondary_url' => 'admin.php?page=ecwid-appearance',
|
179 |
-
'hideable' => true
|
180 |
-
),
|
181 |
-
|
182 |
-
'please_vote' => array(
|
183 |
-
'message' => sprintf(
|
184 |
-
__('Do you like your Ecwid online store? We\'d appreciate it if you add your review and vote for the plugin on Wordpress site.', 'ecwid-shopping-cart'),
|
185 |
-
'target="_blank" href="http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart"'
|
186 |
-
),
|
187 |
-
'primary_title' => __('Rate Ecwid at WordPress.org', 'ecwid-shopping-cart'),
|
188 |
-
'primary_url' => 'http://wordpress.org/support/view/plugin-reviews/ecwid-shopping-cart',
|
189 |
-
'hideable' => true
|
190 |
-
)
|
191 |
-
);
|
192 |
-
}
|
193 |
-
|
194 |
-
protected function need_to_show_message($name)
|
195 |
-
{
|
196 |
-
$admin_page = '';
|
197 |
-
if (function_exists('get_current_screen')) {
|
198 |
-
$screen = get_current_screen();
|
199 |
-
$admin_page = $screen->base;
|
200 |
-
}
|
201 |
-
|
202 |
-
switch ($name) {
|
203 |
-
case 'on_activate':
|
204 |
-
return $admin_page == 'plugins' && get_ecwid_store_id() == ECWID_DEMO_STORE_ID;
|
205 |
-
|
206 |
-
case 'on_storeid_set':
|
207 |
-
return get_ecwid_store_id() != ECWID_DEMO_STORE_ID && $_GET['settings-updated'] == 'true' && $admin_page == 'toplevel_page_ecwid';
|
208 |
-
|
209 |
-
case 'no_storeid_on_setup_pages':
|
210 |
-
return get_ecwid_store_id() == ECWID_DEMO_STORE_ID
|
211 |
-
&& in_array($admin_page, array('ecwid-store_page_ecwid-advanced', 'ecwid-store_page_ecwid-appearance'));
|
212 |
-
|
213 |
-
case 'on_appearance_widgets':
|
214 |
-
return isset($_GET['from-ecwid-appearance']) && $admin_page == 'widgets';
|
215 |
-
|
216 |
-
case 'please_vote':
|
217 |
-
$install_date = get_option('ecwid_installation_date');
|
218 |
-
|
219 |
-
$result = false;
|
220 |
-
if (!$install_date) {
|
221 |
-
add_option('ecwid_installation_date', time());
|
222 |
-
} else {
|
223 |
-
$result = ecwid_is_paid_account() && $install_date + 60*60*24*30 < time();
|
224 |
-
}
|
225 |
-
|
226 |
-
foreach ($this->messages as $_name => $message) {
|
227 |
-
if ($_name != $name && $this->need_to_show_message($_name)) {
|
228 |
-
return false;
|
229 |
-
}
|
230 |
-
}
|
231 |
-
|
232 |
-
return $result;
|
233 |
-
}
|
234 |
-
}
|
235 |
-
|
236 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/class-ecwid-theme-manager.php
DELETED
@@ -1,173 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Theme_Manager
|
4 |
-
{
|
5 |
-
protected $themes_map = array();
|
6 |
-
|
7 |
-
protected $current_theme = '';
|
8 |
-
|
9 |
-
protected $theme_name = '';
|
10 |
-
|
11 |
-
public function Ecwid_Theme_Manager()
|
12 |
-
{
|
13 |
-
$this->init_themes_map();
|
14 |
-
$this->detect_current_theme();
|
15 |
-
|
16 |
-
add_filter('ecwid_minicart_shortcode_content', array($this, 'minicart_shortcode_content'));
|
17 |
-
add_filter('ecwid_categories_shortcode_content', array($this, 'categories_shortcode_content'));
|
18 |
-
add_filter('ecwid_search_shortcode_content', array($this, 'search_shortcode_content'));
|
19 |
-
}
|
20 |
-
|
21 |
-
public static function get_instance()
|
22 |
-
{
|
23 |
-
static $instance = null;
|
24 |
-
|
25 |
-
if (is_null($instance)) {
|
26 |
-
$instance = new Ecwid_Theme_Manager();
|
27 |
-
}
|
28 |
-
|
29 |
-
return $instance;
|
30 |
-
}
|
31 |
-
|
32 |
-
public function get_theme_name()
|
33 |
-
{
|
34 |
-
return $this->theme_name;
|
35 |
-
}
|
36 |
-
|
37 |
-
public function apply_adjustments()
|
38 |
-
{
|
39 |
-
if ( empty( $this->themes ) ) {
|
40 |
-
return;
|
41 |
-
}
|
42 |
-
|
43 |
-
if ($this->theme_needs_scrolling_adjustment()) {
|
44 |
-
wp_enqueue_script(
|
45 |
-
'ecwid-scroller',
|
46 |
-
plugins_url( 'ecwid-shopping-cart/js/create_scroller.js' ),
|
47 |
-
array( 'jquery' )
|
48 |
-
);
|
49 |
-
}
|
50 |
-
|
51 |
-
if ( !array_key_exists( $this->current_theme, $this->themes ) ) {
|
52 |
-
return;
|
53 |
-
}
|
54 |
-
|
55 |
-
$theme_data = $this->themes[$this->current_theme];
|
56 |
-
|
57 |
-
if ( $theme_data['callback'] ) {
|
58 |
-
$method = 'apply_theme_' . $this->current_theme;
|
59 |
-
return $this->$method();
|
60 |
-
}
|
61 |
-
|
62 |
-
wp_enqueue_style(
|
63 |
-
'ecwid-theme-css',
|
64 |
-
plugins_url( 'ecwid-shopping-cart/css/themes/' . $this->current_theme . '.css' ),
|
65 |
-
isset( $theme_data['base_css'] ) ? array( $theme_data['base_css'] ) : array(),
|
66 |
-
false,
|
67 |
-
'all'
|
68 |
-
);
|
69 |
-
|
70 |
-
if ( $theme_data['js'] ) {
|
71 |
-
wp_enqueue_script(
|
72 |
-
'ecwid-theme-js',
|
73 |
-
plugins_url( 'ecwid-shopping-cart/js/themes/' . $this->current_theme . '.js' ),
|
74 |
-
array( 'jquery' )
|
75 |
-
);
|
76 |
-
}
|
77 |
-
}
|
78 |
-
|
79 |
-
public function minicart_shortcode_content($content)
|
80 |
-
{
|
81 |
-
return $content;
|
82 |
-
|
83 |
-
if ($this->current_theme == 'responsive' && get_option('ecwid_enable_advanced_theme_layout') == 'Y' && get_the_ID() == get_option('ecwid_store_page_id')) {
|
84 |
-
$content = '<script type="text/javascript"> xMinicart("style=","layout=Mini"); </script>';
|
85 |
-
}
|
86 |
-
}
|
87 |
-
|
88 |
-
public function categories_shortcode_content($content)
|
89 |
-
{
|
90 |
-
return $content;
|
91 |
-
}
|
92 |
-
|
93 |
-
public function search_shortcode_content($content)
|
94 |
-
{
|
95 |
-
return $content;
|
96 |
-
}
|
97 |
-
|
98 |
-
public function has_advanced_layout()
|
99 |
-
{
|
100 |
-
return false;
|
101 |
-
|
102 |
-
return $this->current_theme == 'responsive';
|
103 |
-
}
|
104 |
-
|
105 |
-
protected function detect_current_theme()
|
106 |
-
{
|
107 |
-
$version = get_bloginfo('version');
|
108 |
-
|
109 |
-
if (version_compare( $version, '3.4' ) < 0) {
|
110 |
-
$this->theme_name = get_current_theme();
|
111 |
-
} else {
|
112 |
-
$theme = wp_get_theme();
|
113 |
-
$this->theme_name = $theme->get('Name');
|
114 |
-
}
|
115 |
-
|
116 |
-
foreach ( $this->themes as $internal_name => $theme ) {
|
117 |
-
if ( $this->theme_name == $theme['name'] ) {
|
118 |
-
$this->current_theme = $internal_name;
|
119 |
-
break;
|
120 |
-
}
|
121 |
-
}
|
122 |
-
}
|
123 |
-
|
124 |
-
protected function init_themes_map()
|
125 |
-
{
|
126 |
-
$this->themes = array(
|
127 |
-
|
128 |
-
'2014' => array(
|
129 |
-
'name' => 'Twenty Fourteen',
|
130 |
-
'base_css' => 'twentyfourteen-style',
|
131 |
-
'js' => false,
|
132 |
-
),
|
133 |
-
'pagelines' => array(
|
134 |
-
'name' => 'PageLines',
|
135 |
-
'base_css' => '',
|
136 |
-
'js' => true,
|
137 |
-
),
|
138 |
-
'responsive' => array(
|
139 |
-
'name' => 'Responsive'
|
140 |
-
)
|
141 |
-
);
|
142 |
-
}
|
143 |
-
|
144 |
-
protected function theme_needs_scrolling_adjustment() {
|
145 |
-
return in_array( $this->current_theme, array( '2014', 'pagelines' ) );
|
146 |
-
}
|
147 |
-
|
148 |
-
protected function __apply_theme_responsive()
|
149 |
-
{
|
150 |
-
wp_enqueue_style( 'ecwid-open-sans-css' , 'http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext');
|
151 |
-
wp_enqueue_style( 'dashicons' );
|
152 |
-
wp_enqueue_style( 'ecwid-theme-fixes-css' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive-fixes.css' ), array(), false, 'all' );
|
153 |
-
if (get_option('ecwid_enable_advanced_theme_layout') == 'Y') {
|
154 |
-
wp_enqueue_style( 'ecwid-theme-adjustments-css' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive-adjustments.css' ), array(), false, 'all' );
|
155 |
-
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/responsive.js' ), array( 'jquery' ), false, true );
|
156 |
-
}
|
157 |
-
|
158 |
-
add_filter('body_class', array($this, 'body_class_responsive'));
|
159 |
-
}
|
160 |
-
|
161 |
-
public function body_class_responsive($classes)
|
162 |
-
{
|
163 |
-
if (get_option('ecwid_enable_minicart')) {
|
164 |
-
$classes[] = 'ecwid-with-minicart';
|
165 |
-
}
|
166 |
-
|
167 |
-
if (get_option('ecwid_show_search_box')) {
|
168 |
-
$classes[] = 'ecwid-with-search';
|
169 |
-
}
|
170 |
-
|
171 |
-
return $classes;
|
172 |
-
}
|
173 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/ecwid_api_v3.php
CHANGED
@@ -169,7 +169,7 @@ class Ecwid_Api_V3
|
|
169 |
|
170 |
public function search_products($input_params) {
|
171 |
$params = array('token');
|
172 |
-
$passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'baseUrl', 'cleanUrls', 'category' );
|
173 |
foreach ($passthru as $name) {
|
174 |
if ( array_key_exists( $name, $input_params ) ) {
|
175 |
$params[$name] = (string)$input_params[$name];
|
@@ -197,17 +197,17 @@ class Ecwid_Api_V3
|
|
197 |
}
|
198 |
|
199 |
EcwidPlatform::store_in_products_cache( $url, $result );
|
200 |
-
}
|
201 |
-
|
202 |
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
Ecwid_Product::from_stdclass( $item );
|
208 |
}
|
|
|
209 |
}
|
210 |
|
|
|
|
|
211 |
return $result;
|
212 |
}
|
213 |
|
169 |
|
170 |
public function search_products($input_params) {
|
171 |
$params = array('token');
|
172 |
+
$passthru = array( 'updatedFrom', 'offset', 'limit', 'sortBy', 'keyword', 'baseUrl', 'cleanUrls', 'category', 'productId' );
|
173 |
foreach ($passthru as $name) {
|
174 |
if ( array_key_exists( $name, $input_params ) ) {
|
175 |
$params[$name] = (string)$input_params[$name];
|
197 |
}
|
198 |
|
199 |
EcwidPlatform::store_in_products_cache( $url, $result );
|
|
|
|
|
200 |
|
201 |
+
if ( !empty( $result->items ) ) {
|
202 |
+
foreach ( $result->items as $item ) {
|
203 |
+
Ecwid_Product::init_from_stdclass( $item );
|
204 |
+
}
|
|
|
205 |
}
|
206 |
+
|
207 |
}
|
208 |
|
209 |
+
$result = json_decode($result['data']);
|
210 |
+
|
211 |
return $result;
|
212 |
}
|
213 |
|
lib/ecwid_catalog_entry.php
CHANGED
@@ -66,18 +66,22 @@ abstract class Ecwid_Catalog_Entry {
|
|
66 |
}
|
67 |
|
68 |
|
69 |
-
public function get_seo_link( $baseUrl =
|
70 |
{
|
71 |
if ( isset( $this->_data->seo_link ) ) {
|
72 |
return $this->_data->seo_link;
|
73 |
-
} else if ( $this->_data->id && $this->_data->name ) {
|
74 |
|
75 |
if ( !$baseUrl ) {
|
76 |
$baseUrl = Ecwid_Store_Page::get_store_url();
|
77 |
}
|
78 |
$url = $baseUrl;
|
79 |
-
|
80 |
-
$url
|
|
|
|
|
|
|
|
|
81 |
|
82 |
return $url;
|
83 |
}
|
66 |
}
|
67 |
|
68 |
|
69 |
+
public function get_seo_link( $baseUrl = '' )
|
70 |
{
|
71 |
if ( isset( $this->_data->seo_link ) ) {
|
72 |
return $this->_data->seo_link;
|
73 |
+
} else if ( $this->_data->id && isset($this->_data->name) ) {
|
74 |
|
75 |
if ( !$baseUrl ) {
|
76 |
$baseUrl = Ecwid_Store_Page::get_store_url();
|
77 |
}
|
78 |
$url = $baseUrl;
|
79 |
+
|
80 |
+
if ($url && strlen($url) > 0 && strrpos($url, '/') != strlen($url) - 1) {
|
81 |
+
$url .= '/';
|
82 |
+
}
|
83 |
+
|
84 |
+
$url .= urlencode( $this->_data->name ) . '-' . $this->_link_prefix . $this->_data->id;
|
85 |
|
86 |
return $url;
|
87 |
}
|
lib/ecwid_category.php
CHANGED
@@ -37,11 +37,11 @@ class Ecwid_Category extends Ecwid_Catalog_Entry
|
|
37 |
public static function get_by_id( $id )
|
38 |
{
|
39 |
$e = new Ecwid_Category();
|
40 |
-
|
41 |
-
if ( $e->_get_from_local_object_cache($id) ) {
|
42 |
-
return $
|
43 |
}
|
44 |
-
|
45 |
$entry_data = $e->_get_from_cache( $id );
|
46 |
|
47 |
if ( !$entry_data ) {
|
37 |
public static function get_by_id( $id )
|
38 |
{
|
39 |
$e = new Ecwid_Category();
|
40 |
+
|
41 |
+
if ( $cat = $e->_get_from_local_object_cache($id) ) {
|
42 |
+
return $cat;
|
43 |
}
|
44 |
+
|
45 |
$entry_data = $e->_get_from_cache( $id );
|
46 |
|
47 |
if ( !$entry_data ) {
|
lib/ecwid_product.php
CHANGED
@@ -28,50 +28,80 @@ class Ecwid_Product extends Ecwid_Catalog_Entry
|
|
28 |
return new Ecwid_Category();
|
29 |
}
|
30 |
|
31 |
-
public static function from_stdclass( $data ) {
|
32 |
-
|
33 |
-
$entry = new Ecwid_Product();
|
34 |
-
|
35 |
-
$entry->_init_from_stdclass( $data );
|
36 |
-
|
37 |
-
$entry->_put_into_local_object_cache( $entry );
|
38 |
-
}
|
39 |
-
|
40 |
public static function get_by_id( $id )
|
41 |
{
|
42 |
-
|
|
|
|
|
|
|
43 |
return $product;
|
44 |
}
|
45 |
-
|
46 |
-
$p = new Ecwid_Product();
|
47 |
-
|
48 |
$product_data = $p->_get_from_cache( $id );
|
49 |
|
50 |
if ( !$product_data ) {
|
51 |
$p->_load($id);
|
52 |
} else {
|
53 |
-
$p->
|
54 |
}
|
55 |
|
56 |
-
|
|
|
|
|
57 |
|
58 |
return $p;
|
59 |
}
|
60 |
|
61 |
-
|
62 |
-
return EcwidPlatform::get_from_products_cache( $this->_get_cache_key_by_id( $id ) );
|
63 |
-
}
|
64 |
-
|
65 |
-
protected function _init_from_stdclass( $data )
|
66 |
{
|
67 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
|
|
|
|
73 |
}
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
protected function _load($id) {
|
77 |
|
@@ -89,9 +119,20 @@ class Ecwid_Product extends Ecwid_Catalog_Entry
|
|
89 |
}
|
90 |
|
91 |
if ($data) {
|
92 |
-
$this->
|
93 |
}
|
94 |
|
95 |
return $data;
|
96 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
}
|
28 |
return new Ecwid_Category();
|
29 |
}
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
public static function get_by_id( $id )
|
32 |
{
|
33 |
+
|
34 |
+
$p = new Ecwid_Product();
|
35 |
+
|
36 |
+
if ( $product = $p->_get_from_local_object_cache($id) ) {
|
37 |
return $product;
|
38 |
}
|
39 |
+
|
|
|
|
|
40 |
$product_data = $p->_get_from_cache( $id );
|
41 |
|
42 |
if ( !$product_data ) {
|
43 |
$p->_load($id);
|
44 |
} else {
|
45 |
+
$p->_data = $product_data;
|
46 |
}
|
47 |
|
48 |
+
$p->_put_into_local_object_cache($p);
|
49 |
+
|
50 |
+
$p->_persist();
|
51 |
|
52 |
return $p;
|
53 |
}
|
54 |
|
55 |
+
public static function get_without_loading($id, $fallback_object = null)
|
|
|
|
|
|
|
|
|
56 |
{
|
57 |
+
$p = new Ecwid_Product();
|
58 |
+
|
59 |
+
if ( $product = $p->_get_from_local_object_cache($id) ) {
|
60 |
+
return $product;
|
61 |
+
}
|
62 |
+
|
63 |
+
$product_data = $p->_get_from_cache( $id );
|
64 |
+
if (!$product_data) {
|
65 |
+
if ($fallback_object) {
|
66 |
+
$product_data = $fallback_object;
|
67 |
+
} else {
|
68 |
+
$product_data = new stdClass();
|
69 |
+
}
|
70 |
|
71 |
+
$product_data->id = $id;
|
72 |
+
}
|
73 |
+
|
74 |
+
$p->_data = $product_data;
|
75 |
+
|
76 |
+
return $p;
|
77 |
}
|
78 |
|
79 |
+
public static function init_from_stdclass( $data )
|
80 |
+
{
|
81 |
+
$p = new Ecwid_Product();
|
82 |
+
$p->_data = $data;
|
83 |
+
|
84 |
+
$p->_persist();
|
85 |
+
|
86 |
+
return $p;
|
87 |
+
}
|
88 |
+
|
89 |
+
public static function load_by_ids($ids)
|
90 |
+
{
|
91 |
+
if ( !is_array( $ids ) || empty( $ids ) || !Ecwid_Api_V3::is_available() ) {
|
92 |
+
return;
|
93 |
+
}
|
94 |
+
|
95 |
+
$ids_string = implode( ',', $ids );
|
96 |
+
|
97 |
+
$api = new Ecwid_Api_V3();
|
98 |
+
|
99 |
+
$api->search_products( array( 'productId' => $ids_string ) );
|
100 |
+
}
|
101 |
+
|
102 |
+
protected function _get_from_cache( $id ) {
|
103 |
+
return EcwidPlatform::get_from_products_cache( $this->_get_cache_key_by_id( $id ) );
|
104 |
+
}
|
105 |
|
106 |
protected function _load($id) {
|
107 |
|
119 |
}
|
120 |
|
121 |
if ($data) {
|
122 |
+
$this->_data = $data;
|
123 |
}
|
124 |
|
125 |
return $data;
|
126 |
}
|
127 |
+
|
128 |
+
protected function _persist() {
|
129 |
+
|
130 |
+
if ( !property_exists($this->_data, 'id') ) {
|
131 |
+
return;
|
132 |
+
}
|
133 |
+
EcwidPlatform::store_in_products_cache(
|
134 |
+
$this->_get_cache_key_by_id( $this->_data->id ),
|
135 |
+
$this->_data
|
136 |
+
);
|
137 |
+
}
|
138 |
}
|
lib/html-catalog-templates/product.php
CHANGED
@@ -76,6 +76,6 @@
|
|
76 |
<?php endforeach;
|
77 |
endif; ?>
|
78 |
<?php if ( $product->galleryImages ) foreach ( $product->galleryImages as $image):
|
79 |
-
?><img src="<?php echo EcwidPlatform::esc_attr( $image->url ); ?>" alt="<?php echo EcwidPlatform::esc_attr( $image->alt ? $image->alt : $product->name ); ?>" />
|
80 |
<?php endforeach; ?>
|
81 |
</div>
|
76 |
<?php endforeach;
|
77 |
endif; ?>
|
78 |
<?php if ( $product->galleryImages ) foreach ( $product->galleryImages as $image):
|
79 |
+
?><img src="<?php echo EcwidPlatform::esc_attr( $image->url ); ?>" alt="<?php echo EcwidPlatform::esc_attr( isset( $image->alt ) ? $image->alt : $product->name ); ?>" />
|
80 |
<?php endforeach; ?>
|
81 |
</div>
|
lib/themes.php
DELETED
@@ -1,58 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
define( 'ECWID_THEMES_DIR', ECWID_PLUGIN_DIR . '/lib/themes' );
|
4 |
-
|
5 |
-
add_action('after_switch_theme', 'ecwid_after_switch_theme');
|
6 |
-
|
7 |
-
function ecwid_get_theme_name()
|
8 |
-
{
|
9 |
-
$version = get_bloginfo('version');
|
10 |
-
|
11 |
-
if (version_compare( $version, '3.4' ) < 0) {
|
12 |
-
$theme_name = get_current_theme();
|
13 |
-
} else {
|
14 |
-
$theme = wp_get_theme();
|
15 |
-
$theme_name = $theme->get('Name');
|
16 |
-
}
|
17 |
-
|
18 |
-
return $theme_name;
|
19 |
-
}
|
20 |
-
|
21 |
-
function ecwid_apply_theme($theme_name = null)
|
22 |
-
{
|
23 |
-
$themes = array(
|
24 |
-
'Bretheon' => 'bretheon',
|
25 |
-
'Responsive' => 'responsive',
|
26 |
-
'Twenty Fourteen' => '2014',
|
27 |
-
'PageLines' => 'pagelines'
|
28 |
-
);
|
29 |
-
|
30 |
-
if (empty($theme_name)) {
|
31 |
-
$theme_name = ecwid_get_theme_name();
|
32 |
-
}
|
33 |
-
|
34 |
-
$theme_file = '';
|
35 |
-
|
36 |
-
if (array_key_exists($theme_name, $themes)) {
|
37 |
-
|
38 |
-
$theme_file = ECWID_THEMES_DIR . '/class-ecwid-theme-' . $themes[$theme_name] . '.php';
|
39 |
-
}
|
40 |
-
|
41 |
-
$theme_file = apply_filters( 'ecwid_get_theme_file', $theme_file );
|
42 |
-
|
43 |
-
if ( !empty( $theme_file ) && is_file( $theme_file ) && is_readable( $theme_file ) ) {
|
44 |
-
require_once( $theme_file );
|
45 |
-
}
|
46 |
-
}
|
47 |
-
|
48 |
-
function ecwid_after_switch_theme()
|
49 |
-
{
|
50 |
-
ecwid_apply_theme();
|
51 |
-
|
52 |
-
global $ecwid_current_theme;
|
53 |
-
|
54 |
-
update_option(
|
55 |
-
'ecwid_advanced_theme_layout',
|
56 |
-
isset($ecwid_current_theme) && $ecwid_current_theme->has_advanced_layout ? 'Y' : 'N'
|
57 |
-
);
|
58 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/themes/class-ecwid-theme-2014.php
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_2014 extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Twenty Fourteen';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
if (ecwid_page_has_productbrowser()) {
|
16 |
-
wp_enqueue_style( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/css/themes/2014.css' ), array('twentyfourteen-style') );
|
17 |
-
}
|
18 |
-
}
|
19 |
-
}
|
20 |
-
|
21 |
-
$ecwid_current_theme = new Ecwid_Theme_2014();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/themes/class-ecwid-theme-base.php
DELETED
@@ -1,24 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Ecwid_Theme_Base {
|
4 |
-
|
5 |
-
public $has_advanced_layout = false;
|
6 |
-
|
7 |
-
protected $adjust_pb_scroll = false;
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
if ( $this->adjust_pb_scroll ) {
|
12 |
-
wp_enqueue_script(
|
13 |
-
'ecwid-scroller',
|
14 |
-
plugins_url( 'ecwid-shopping-cart/js/create_scroller.js' ),
|
15 |
-
array( 'jquery' )
|
16 |
-
);
|
17 |
-
}
|
18 |
-
}
|
19 |
-
|
20 |
-
protected function need_advanced_layout()
|
21 |
-
{
|
22 |
-
return get_option('ecwid_advanced_theme_layout') == 'Y';
|
23 |
-
}
|
24 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/themes/class-ecwid-theme-bretheon.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Bretheon extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Bretheon';
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
add_filter( 'ecwid_page_has_product_browser', array( $this, 'has_product_browser' ) );
|
14 |
-
}
|
15 |
-
|
16 |
-
public function has_product_browser( $value )
|
17 |
-
{
|
18 |
-
if ( $value ) {
|
19 |
-
return $value;
|
20 |
-
}
|
21 |
-
|
22 |
-
$meta = get_post_meta( get_the_ID(), 'mfn-page-items' );
|
23 |
-
if ( is_array( $meta ) ) {
|
24 |
-
$meta = base64_decode( $meta[0] );
|
25 |
-
|
26 |
-
// not exactly the intended usage, but quite simple and still works
|
27 |
-
// $meta is a serialized array that has the actual content
|
28 |
-
// a right way is to walk through the structure and run has_shortcode against all fields
|
29 |
-
$result = has_shortcode( $meta, 'ecwid_productbrowser' );
|
30 |
-
}
|
31 |
-
|
32 |
-
return $result;
|
33 |
-
}
|
34 |
-
}
|
35 |
-
|
36 |
-
$ecwid_current_theme = new Ecwid_Theme_Bretheon();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/themes/class-ecwid-theme-pagelines.php
DELETED
@@ -1,19 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Pagelines extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
protected $name = 'Pagelines';
|
8 |
-
|
9 |
-
protected $adjust_pb_scroll = true;
|
10 |
-
|
11 |
-
public function __construct()
|
12 |
-
{
|
13 |
-
parent::__construct();
|
14 |
-
|
15 |
-
wp_enqueue_script( 'ecwid-theme-js', plugins_url( 'ecwid-shopping-cart/js/themes/pagelines.js' ), array( 'jquery' ), false, true );
|
16 |
-
}
|
17 |
-
}
|
18 |
-
|
19 |
-
$ecwid_current_theme = new Ecwid_Theme_Pagelines();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/themes/class-ecwid-theme-responsive.php
DELETED
@@ -1,56 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
-
|
5 |
-
class Ecwid_Theme_Responsive extends Ecwid_Theme_Base
|
6 |
-
{
|
7 |
-
public $has_advanced_layout = true;
|
8 |
-
|
9 |
-
public function __construct()
|
10 |
-
{
|
11 |
-
parent::__construct();
|
12 |
-
|
13 |
-
if ( $this->need_advanced_layout() ) {
|
14 |
-
wp_enqueue_style( 'ecwid-theme-adjustments' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive-adjustments.css' ), array(), false, 'all' );
|
15 |
-
wp_enqueue_script( 'ecwid-theme', plugins_url( 'ecwid-shopping-cart/js/themes/responsive.js' ), array( 'jquery' ), false, true );
|
16 |
-
|
17 |
-
add_filter( 'ecwid_minicart_shortcode_content', array( $this, 'minicart_shortcode_content' ) );
|
18 |
-
}
|
19 |
-
|
20 |
-
wp_enqueue_style( 'ecwid-open-sans' , 'http://fonts.googleapis.com/css?family=Open+Sans:400,700&subset=latin,cyrillic-ext,cyrillic,greek-ext,vietnamese,greek,latin-ext');
|
21 |
-
wp_enqueue_style( 'dashicons' );
|
22 |
-
wp_enqueue_style( 'ecwid-theme-fixes' , plugins_url( 'ecwid-shopping-cart/css/themes/responsive.css' ), array(), false, 'all' );
|
23 |
-
|
24 |
-
add_filter('body_class', array($this, 'body_class'));
|
25 |
-
|
26 |
-
add_action('ecwid_store_page_created', array($this, 'on_create_store_page'));
|
27 |
-
add_action('switch_theme', array($this, 'switch_theme'));
|
28 |
-
}
|
29 |
-
|
30 |
-
public function minicart_shortcode_content( $content )
|
31 |
-
{
|
32 |
-
|
33 |
-
if ( get_the_ID() == get_option( 'ecwid_store_page_id' ) ) {
|
34 |
-
$content = '<script type="text/javascript"> xMinicart("style=","layout=Mini"); </script>';
|
35 |
-
}
|
36 |
-
|
37 |
-
return $content;
|
38 |
-
}
|
39 |
-
|
40 |
-
public function body_class($classes)
|
41 |
-
{
|
42 |
-
if (get_option('ecwid_show_search_box')) {
|
43 |
-
$classes[] = 'ecwid-with-search';
|
44 |
-
}
|
45 |
-
|
46 |
-
return $classes;
|
47 |
-
}
|
48 |
-
|
49 |
-
public function on_create_store_page($page_id)
|
50 |
-
{
|
51 |
-
update_post_meta($page_id, '_wp_page_template', 'full-width-page.php');
|
52 |
-
}
|
53 |
-
}
|
54 |
-
|
55 |
-
global $ecwid_current_theme;
|
56 |
-
$ecwid_current_theme = new Ecwid_Theme_Responsive();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: Ecwid
|
|
3 |
Tags: ecommerce, downloadable products, Facebook ecommerce, online store, paypal, product catalog, shop, shopping cart, store
|
4 |
Requires at least: 3.5
|
5 |
Tested up to: 4.8
|
6 |
-
Stable tag: 5.4.
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Bank level PCI DSS Level 1 security. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
@@ -149,6 +149,14 @@ You can use Ecwid’s built-in import tools to copy your store products from any
|
|
149 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
150 |
|
151 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
= 5.4.1 =
|
153 |
- Fixed an issue with the store page loading in the newest version 5.4. In some rare occasions, the store page might not display right after update to the version 5.4. We fixed the issue to make sure all stores are working well.
|
154 |
- Added a workaround for a conflict with the third party “Product Advisor for Ecwid” plugin. The “Product Advisor” plugin has a bug that prevents it from working correctly with the newest versions of the Ecwid plugin. When the Product advisor plugin is enabled, the site pages do not respond. We added a workaround to the Ecwid plugin to make sure the WP admin pages will work well for the “Product advisor”. So, if you’re using the “Product advisor” plugin and see any issue with your site now, please disable that plugin in your WP admin backend. We’re speaking with the author of the Product advisor plugin so there will hopefully be a solution soon.
|
3 |
Tags: ecommerce, downloadable products, Facebook ecommerce, online store, paypal, product catalog, shop, shopping cart, store
|
4 |
Requires at least: 3.5
|
5 |
Tested up to: 4.8
|
6 |
+
Stable tag: 5.4.2
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Bank level PCI DSS Level 1 security. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
149 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
150 |
|
151 |
== Changelog ==
|
152 |
+
= 5.4.2 =
|
153 |
+
- **Loading speed optimization for the Single Product widgets.** We continue working on improving the Ecwid ecommerce plugin loading speed. This update includes optimization of single product widgets. The optimization should have especially good effect if you added multiple single product widgets on a page (e.g. for creating a featured slider or a customized products grid).
|
154 |
+
- **The Recently Viewed Products widget is also optimized.** It now works much faster. If you haven’t used the widget before, feel free to enable it under Appearance -> Widgets.
|
155 |
+
- **The legacy “Appearance” settings page is removed from the plugin admin menu.** The old “Appearance” settings page was removed from the plugin settings navigation. To configure the product catalog settings (displayed widgets, products per page etc), you can open your store page for editing in the WordPress admin backend and click the “Edit appearance” button there. If you don’t have a store on the page, click the “Add store” button in the page editor and set the appearance settings there — they will be applied to your store on that page.
|
156 |
+
- **Fixed “Strict standards” code notices.** Some users may discover this notice on their site, if the debugging messages are not disabled in the Wordpress installation. That didn’t affect the store functionality, but looked odd. We fixed that — there should not be any warning messages displayed now.
|
157 |
+
- Minor fixes and improvements.
|
158 |
+
|
159 |
+
|
160 |
= 5.4.1 =
|
161 |
- Fixed an issue with the store page loading in the newest version 5.4. In some rare occasions, the store page might not display right after update to the version 5.4. We fixed the issue to make sure all stores are working well.
|
162 |
- Added a workaround for a conflict with the third party “Product Advisor for Ecwid” plugin. The “Product Advisor” plugin has a bug that prevents it from working correctly with the newest versions of the Ecwid plugin. When the Product advisor plugin is enabled, the site pages do not respond. We added a workaround to the Ecwid plugin to make sure the WP admin pages will work well for the “Product advisor”. So, if you’re using the “Product advisor” plugin and see any issue with your site now, please disable that plugin in your WP admin backend. We’re speaking with the author of the Product advisor plugin so there will hopefully be a solution soon.
|
templates/advanced-settings.php
CHANGED
@@ -48,37 +48,7 @@
|
|
48 |
|
49 |
<hr />
|
50 |
<?php endif; ?>
|
51 |
-
|
52 |
-
|
53 |
-
<?php if (get_option('ecwid_hide_appearance_menu') != 'Y'): ?>
|
54 |
-
<div class="pure-control-group bottom-border">
|
55 |
-
|
56 |
-
<label for="ecwid_default_category_id">
|
57 |
-
<?php _e('Category shown by default', 'ecwid-shopping-cart'); ?>
|
58 |
-
</label>
|
59 |
-
|
60 |
-
<select name="ecwid_default_category_id" id="ecwid_default_category_id">
|
61 |
-
<option value=""><?php _e('Store root category', 'ecwid-shopping-cart'); ?></option>
|
62 |
-
<?php foreach ($categories as $category): ?>
|
63 |
-
<option
|
64 |
-
value="<?php echo esc_attr($category->id); ?>"
|
65 |
-
<?php if ($category->id == get_option('ecwid_default_category_id')): ?>
|
66 |
-
selected="selected"
|
67 |
-
<?php endif; ?>
|
68 |
-
>
|
69 |
-
<?php echo esc_html($category->path); ?>
|
70 |
-
</option>
|
71 |
-
<?php endforeach; ?>
|
72 |
-
</select>
|
73 |
-
<div class="note">
|
74 |
-
<?php _e('By default, the storefront shows a list of root categories. You can override this behavior and show a different category when customers open your store for the first time. This is useful if you only have one category or want to display a specific set of items (e.g. "Featured Products") to new visitors.', 'ecwid-shopping-cart'); ?>
|
75 |
-
</div>
|
76 |
-
</div>
|
77 |
-
|
78 |
-
<hr />
|
79 |
-
|
80 |
-
<?php endif; ?>
|
81 |
-
|
82 |
<div class="pure-control-group checkbox">
|
83 |
<div class="label">
|
84 |
<label for="ecwid_is_sso_enabled" class="premium-feature">
|
48 |
|
49 |
<hr />
|
50 |
<?php endif; ?>
|
51 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
<div class="pure-control-group checkbox">
|
53 |
<div class="label">
|
54 |
<label for="ecwid_is_sso_enabled" class="premium-feature">
|
templates/appearance-settings.php
DELETED
@@ -1,222 +0,0 @@
|
|
1 |
-
<h2><?php printf( __( '%s Shopping Cart — Appearance settings', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?></h2>
|
2 |
-
|
3 |
-
<div class="wrap">
|
4 |
-
<form class="pure-form pure-form-aligned ecwid-settings appearance-settings" method="POST" action="options.php">
|
5 |
-
|
6 |
-
<?php settings_fields('ecwid_options_page'); ?>
|
7 |
-
<input type="hidden" name="settings_section" value="appearance" />
|
8 |
-
|
9 |
-
<fieldset>
|
10 |
-
|
11 |
-
<div class="pure-control-group small-input">
|
12 |
-
<div class="input">
|
13 |
-
<div>
|
14 |
-
<input
|
15 |
-
id="ecwid_show_search_box"
|
16 |
-
name="ecwid_show_search_box"
|
17 |
-
type="checkbox"
|
18 |
-
<?php if (get_option('ecwid_show_search_box')): ?>
|
19 |
-
checked="checked"
|
20 |
-
<?php endif; ?>
|
21 |
-
<?php echo $disabled_str; ?>
|
22 |
-
/>
|
23 |
-
</div>
|
24 |
-
</div>
|
25 |
-
<div class="label">
|
26 |
-
<label for="ecwid_show_search_box">
|
27 |
-
<?php _e('Display search box above products', 'ecwid-shopping-cart'); ?>
|
28 |
-
</label>
|
29 |
-
</div>
|
30 |
-
<div class="note">
|
31 |
-
<?php echo sprintf(__('Or you can add search box to your website\'s toolbar using <a href="%s">WordPress native widgets</a>', 'ecwid-shopping-cart'), 'widgets.php?from-ecwid=appearance'); ?>
|
32 |
-
</div>
|
33 |
-
</div>
|
34 |
-
|
35 |
-
<div class="pure-control-group small-input">
|
36 |
-
<div class="input">
|
37 |
-
<div>
|
38 |
-
<input
|
39 |
-
id="ecwid_show_categories"
|
40 |
-
name="ecwid_show_categories"
|
41 |
-
type="checkbox"
|
42 |
-
<?php if (get_option('ecwid_show_categories')): ?>
|
43 |
-
checked="checked"
|
44 |
-
<?php endif; ?>
|
45 |
-
<?php echo $disabled_str; ?>
|
46 |
-
/>
|
47 |
-
</div>
|
48 |
-
</div>
|
49 |
-
<div class="label">
|
50 |
-
<label for="ecwid_show_categories">
|
51 |
-
<?php _e('Display categories above products', 'ecwid-shopping-cart'); ?>
|
52 |
-
</label>
|
53 |
-
</div>
|
54 |
-
<div class="note">
|
55 |
-
<?php echo sprintf(__('Or you can add vertical categories to your website\'s toolbar using <a href="%s">WordPress native widgets</a>', 'ecwid-shopping-cart'), 'widgets.php?from-ec-store=appearance'); ?>
|
56 |
-
</div>
|
57 |
-
</div>
|
58 |
-
|
59 |
-
|
60 |
-
<div class="pure-control-group small-input">
|
61 |
-
<div class="input">
|
62 |
-
<div>
|
63 |
-
<input
|
64 |
-
id="ecwid_enable_minicart"
|
65 |
-
name="ecwid_enable_minicart"
|
66 |
-
type="checkbox"
|
67 |
-
<?php if (get_option('ecwid_enable_minicart')): ?>
|
68 |
-
checked="checked"
|
69 |
-
<?php endif; ?>
|
70 |
-
<?php echo $disabled_str; ?>
|
71 |
-
/>
|
72 |
-
</div>
|
73 |
-
</div>
|
74 |
-
<div class="label">
|
75 |
-
<label for="ecwid_enable_minicart">
|
76 |
-
<?php _e('Enable minicart attached to categories', 'ecwid-shopping-cart'); ?>
|
77 |
-
</label>
|
78 |
-
</div>
|
79 |
-
<div class="note">
|
80 |
-
<?php _e("You should disable this option, if you added minicart to your website's sidebar", 'ecwid-shopping-cart'); ?>
|
81 |
-
</div>
|
82 |
-
</div>
|
83 |
-
|
84 |
-
<div class="pure-control-group small-input">
|
85 |
-
<div class="input">
|
86 |
-
<div>
|
87 |
-
<input
|
88 |
-
id="ecwid_pb_categoriesperrow"
|
89 |
-
name="ecwid_pb_categoriesperrow"
|
90 |
-
type="text"
|
91 |
-
class="number"
|
92 |
-
value="<?php echo esc_attr(get_option('ecwid_pb_categoriesperrow')); ?>"
|
93 |
-
<?php echo $disabled_str; ?>
|
94 |
-
/>
|
95 |
-
</div>
|
96 |
-
</div>
|
97 |
-
<div class="label">
|
98 |
-
<label for="ecwid_pb_categoriesperrow">
|
99 |
-
<?php _e('Number of categories per row', 'ecwid-shopping-cart'); ?>
|
100 |
-
</label>
|
101 |
-
</div>
|
102 |
-
<div class="note">
|
103 |
-
</div>
|
104 |
-
</div>
|
105 |
-
|
106 |
-
<hr />
|
107 |
-
|
108 |
-
|
109 |
-
<div class="pure-control-group">
|
110 |
-
<label class="products-per-page-label"><?php _e('Number of products per page', 'ecwid-shopping-cart'); ?></label>
|
111 |
-
<div class="ecwid-pb-view-size grid active" tabindex="1">
|
112 |
-
<div class="title"><?php _e('Grid view', 'ecwid-shopping-cart'); ?></div>
|
113 |
-
<div class="main-area">
|
114 |
-
<?php ecwid_embed_svg('grid'); ?>
|
115 |
-
</div>
|
116 |
-
<div class="right">
|
117 |
-
<div class="ruler"></div>
|
118 |
-
<input
|
119 |
-
type="text"
|
120 |
-
size="2"
|
121 |
-
name="ecwid_pb_productspercolumn_grid"
|
122 |
-
class="number"
|
123 |
-
value="<?php echo esc_attr(get_option('ecwid_pb_productspercolumn_grid')); ?>"
|
124 |
-
/>
|
125 |
-
</div>
|
126 |
-
<div class="bottom">
|
127 |
-
<div class="ruler"></div>
|
128 |
-
<input
|
129 |
-
type="text"
|
130 |
-
size="2"
|
131 |
-
name="ecwid_pb_productsperrow_grid"
|
132 |
-
class="number"
|
133 |
-
value="<?php echo esc_attr(get_option('ecwid_pb_productsperrow_grid')); ?>"
|
134 |
-
/>
|
135 |
-
</div>
|
136 |
-
</div>
|
137 |
-
|
138 |
-
<div class="ecwid-pb-view-size list" tabindex="1">
|
139 |
-
<div class="title"><?php _e('List view', 'ecwid-shopping-cart'); ?></div>
|
140 |
-
<div class="main-area">
|
141 |
-
<?php ecwid_embed_svg('list'); ?>
|
142 |
-
</div>
|
143 |
-
<div class="right">
|
144 |
-
<div class="ruler"></div>
|
145 |
-
<input
|
146 |
-
type="text"
|
147 |
-
size="2"
|
148 |
-
name="ecwid_pb_productsperpage_list"
|
149 |
-
class="number"
|
150 |
-
value="<?php echo esc_attr(get_option('ecwid_pb_productsperpage_list')); ?>" />
|
151 |
-
</div>
|
152 |
-
</div>
|
153 |
-
|
154 |
-
|
155 |
-
<div class="ecwid-pb-view-size table" tabindex="1">
|
156 |
-
<div class="title"><?php _e('Table view', 'ecwid-shopping-cart'); ?></div>
|
157 |
-
<div class="main-area">
|
158 |
-
<?php ecwid_embed_svg('table'); ?>
|
159 |
-
</div>
|
160 |
-
<div class="right">
|
161 |
-
<div class="ruler"></div>
|
162 |
-
<input
|
163 |
-
type="text"
|
164 |
-
size="2"
|
165 |
-
name="ecwid_pb_productsperpage_table"
|
166 |
-
class="number"
|
167 |
-
value="<?php echo esc_attr(get_option('ecwid_pb_productsperpage_table')); ?>"
|
168 |
-
/>
|
169 |
-
</div>
|
170 |
-
</div>
|
171 |
-
<p class="note pb-note"><?php printf( __( 'Here you can control how many products will be displayed per page. These options define maximum values. If there is not enough space to show all product columns, %s will adapt the number of columns to hold all products.', 'ecwid-shopping-cart'), Ecwid_Config::get_brand() ); ?></p>
|
172 |
-
</div>
|
173 |
-
|
174 |
-
<hr />
|
175 |
-
|
176 |
-
<div class="pure-control-group">
|
177 |
-
<label for="ecwid_pb_defaultview">
|
178 |
-
<?php _e('Default view mode on product pages', 'ecwid-shopping-cart'); ?>
|
179 |
-
</label>
|
180 |
-
|
181 |
-
<select id="ecwid_pb_defaultview" name="ecwid_pb_defaultview" $disabled_str>
|
182 |
-
<option value="grid" <?php if(get_option('ecwid_pb_defaultview') == 'grid') echo 'selected="selected"' ?> >
|
183 |
-
<?php _e('Grid', 'ecwid-shopping-cart'); ?>
|
184 |
-
</option>
|
185 |
-
<option value="list" <?php if(get_option('ecwid_pb_defaultview') == 'list') echo 'selected="selected"' ?> >
|
186 |
-
<?php _e('List', 'ecwid-shopping-cart'); ?>
|
187 |
-
</option>
|
188 |
-
<option value="table" <?php if(get_option('ecwid_pb_defaultview') == 'table') echo 'selected="selected"' ?> >
|
189 |
-
<?php _e('Table', 'ecwid-shopping-cart'); ?>
|
190 |
-
</option>
|
191 |
-
</select>
|
192 |
-
</div>
|
193 |
-
|
194 |
-
<div class="pure-control-group">
|
195 |
-
<label for="ecwid_pb_searchview">
|
196 |
-
<?php _e('Default view mode on search results', 'ecwid-shopping-cart'); ?>
|
197 |
-
</label>
|
198 |
-
|
199 |
-
<select id="ecwid_pb_searchview" name="ecwid_pb_searchview" $disabled_str>
|
200 |
-
<option value="grid" <?php if(get_option('ecwid_pb_searchview') == 'grid') echo 'selected="selected"' ?> >
|
201 |
-
<?php _e('Grid', 'ecwid-shopping-cart'); ?>
|
202 |
-
</option>
|
203 |
-
<option value="list" <?php if(get_option('ecwid_pb_searchview') == 'list') echo 'selected="selected"' ?> >
|
204 |
-
<?php _e('List', 'ecwid-shopping-cart'); ?>
|
205 |
-
</option>
|
206 |
-
<option value="table" <?php if(get_option('ecwid_pb_searchview') == 'table') echo 'selected="selected"' ?> >
|
207 |
-
<?php _e('Table', 'ecwid-shopping-cart'); ?>
|
208 |
-
</option>
|
209 |
-
</select>
|
210 |
-
</div>
|
211 |
-
|
212 |
-
</fieldset>
|
213 |
-
|
214 |
-
<fieldset>
|
215 |
-
<hr />
|
216 |
-
<div class="pure-control-group">
|
217 |
-
<button type="submit" class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>"><?php _e('Save changes', 'ecwid-shopping-cart'); ?></button>
|
218 |
-
</div>
|
219 |
-
</fieldset>
|
220 |
-
</form>
|
221 |
-
|
222 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/general-settings-initial.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<div class="wrap">
|
2 |
-
|
3 |
-
<form method="POST" action="options.php" class="pure-form ecwid-settings general-settings">
|
4 |
-
<h2><?php _e('Ecwid Shopping Cart — General settings', 'ecwid-shopping-cart'); ?></h2>
|
5 |
-
<?php settings_fields('ecwid_options_page'); ?>
|
6 |
-
<fieldset>
|
7 |
-
|
8 |
-
<input type="hidden" name="settings_section" value="general" />
|
9 |
-
|
10 |
-
<div class="greeting-box">
|
11 |
-
|
12 |
-
<div class="image-container">
|
13 |
-
<img class="greeting-image" src="<?php echo(esc_attr(ECWID_PLUGIN_URL)); ?>/images/store_inprogress.png" width="142" />
|
14 |
-
</div>
|
15 |
-
|
16 |
-
<div class="messages-container">
|
17 |
-
<div class="main-message">
|
18 |
-
|
19 |
-
<?php _e('Thank you for choosing Ecwid to build your online store', 'ecwid-shopping-cart'); ?>
|
20 |
-
</div>
|
21 |
-
<div class="secondary-message">
|
22 |
-
<?php _e('The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.', 'ecwid-shopping-cart'); ?>
|
23 |
-
</div>
|
24 |
-
</div>
|
25 |
-
|
26 |
-
</div>
|
27 |
-
<hr />
|
28 |
-
|
29 |
-
<ol>
|
30 |
-
<li>
|
31 |
-
<h4><?php _e('Register at Ecwid', 'ecwid-shopping-cart'); ?></h4>
|
32 |
-
<div>
|
33 |
-
<?php _e('Create a new Ecwid account which you will use to manage your store and inventory. The registration is free.', 'ecwid-shopping-cart'); ?>
|
34 |
-
</div>
|
35 |
-
<div class="ecwid-account-buttons">
|
36 |
-
<a class="pure-button pure-button-secondary" target="_blank" href="https://my.ecwid.com/cp/?source=wporg#register">
|
37 |
-
<?php _e('Create new Ecwid account', 'ecwid-shopping-cart'); ?>
|
38 |
-
</a>
|
39 |
-
<a class="pure-button pure-button-secondary" target="_blank" href="https://my.ecwid.com/cp/?source=wporg#t1=&t2=Dashboard">
|
40 |
-
<?php _e('I already have Ecwid account, sign in', 'ecwid-shopping-cart'); ?>
|
41 |
-
</a>
|
42 |
-
</div>
|
43 |
-
<div class="note">
|
44 |
-
<?php _e('You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.', 'ecwid-shopping-cart'); ?>
|
45 |
-
</div>
|
46 |
-
</li>
|
47 |
-
<li>
|
48 |
-
<h4><?php _e('Find your Store ID', 'ecwid-shopping-cart'); ?></h4>
|
49 |
-
<div>
|
50 |
-
<?php _e('Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the "Dashboard" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration.', 'ecwid-shopping-cart'); ?>
|
51 |
-
</div>
|
52 |
-
</li>
|
53 |
-
<li>
|
54 |
-
<h4>
|
55 |
-
<?php _e('Enter your Store ID', 'ecwid-shopping-cart'); ?>
|
56 |
-
</h4>
|
57 |
-
<div><label for="ecwid_store_id"><?php _e('Enter your Store ID here:', 'ecwid-shopping-cart'); ?></label></div>
|
58 |
-
<div class="pure-control-group store-id">
|
59 |
-
<input
|
60 |
-
id="ecwid_store_id"
|
61 |
-
name="ecwid_store_id"
|
62 |
-
type="text"
|
63 |
-
placeholder="<?php _e('Store ID', 'ecwid-shopping-cart'); ?>"
|
64 |
-
value="<?php if (get_ecwid_store_id() != 1003) echo esc_attr(get_ecwid_store_id()); ?>"
|
65 |
-
/>
|
66 |
-
<button type="submit" class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>"><?php _e('Save and connect your Ecwid store to the site', 'ecwid-shopping-cart'); ?></button>
|
67 |
-
</div>
|
68 |
-
|
69 |
-
</li>
|
70 |
-
</ol>
|
71 |
-
<hr />
|
72 |
-
<p><?php _e('Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>', 'ecwid-shopping-cart'); ?></p>
|
73 |
-
</fieldset>
|
74 |
-
</form>
|
75 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/general-settings.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<div class="wrap">
|
2 |
-
|
3 |
-
<form method="POST" action="options.php" class="pure-form ecwid-settings general-settings" name="settings">
|
4 |
-
<h2><?php _e('Ecwid Shopping Cart — General settings', 'ecwid-shopping-cart'); ?></h2>
|
5 |
-
<?php settings_fields('ecwid_options_page'); ?>
|
6 |
-
<fieldset>
|
7 |
-
|
8 |
-
<input type="hidden" name="settings_section" value="general" />
|
9 |
-
|
10 |
-
<div class="greeting-box complete">
|
11 |
-
<div class="image-container">
|
12 |
-
<img class="greeting-image" src="<?php echo(esc_attr(ECWID_PLUGIN_URL)); ?>/images/store_ready.png" width="142" />
|
13 |
-
</div>
|
14 |
-
|
15 |
-
<div class="messages-container">
|
16 |
-
<?php if (array_key_exists('settings-updated', $_GET)): ?>
|
17 |
-
|
18 |
-
<div class="main-message"><?php _e('Congratulations!', 'ecwid-shopping-cart'); ?></div>
|
19 |
-
<div class="secondary-message"?><?php _e('Your Ecwid store is now connected to your WordPress website', 'ecwid-shopping-cart'); ?></div>
|
20 |
-
|
21 |
-
<?php else: ?>
|
22 |
-
|
23 |
-
<div class="main-message"><?php _e('Greetings!', 'ecwid-shopping-cart'); ?></div>
|
24 |
-
<div class="secondary-message"?><?php _e('Your Ecwid store is connected to your WordPress website', 'ecwid-shopping-cart'); ?></div>
|
25 |
-
<?php endif; ?>
|
26 |
-
</div>
|
27 |
-
</div>
|
28 |
-
<hr />
|
29 |
-
<div class="section">
|
30 |
-
<div class="left">
|
31 |
-
<span class="main-info">
|
32 |
-
<?php _e('Store ID', 'ecwid-shopping-cart'); ?>: <strong><?php echo esc_attr(get_ecwid_store_id()); ?></strong>
|
33 |
-
</span>
|
34 |
-
</div>
|
35 |
-
<div class="right two-buttons">
|
36 |
-
<a class="pure-button" target="_blank" href="https://my.ecwid.com/cp/?source=wporg#t1=&t2=Dashboard">
|
37 |
-
<?php _e('Control panel', 'ecwid-shopping-cart'); ?>
|
38 |
-
</a>
|
39 |
-
<a class="pure-button" target="_blank" href="<?php echo esc_attr(get_page_link(get_option('ecwid_store_page_id'))); ?>">
|
40 |
-
<?php _e('Visit storefront', 'ecwid-shopping-cart'); ?>
|
41 |
-
</a>
|
42 |
-
</div>
|
43 |
-
</div>
|
44 |
-
|
45 |
-
<?php if (!ecwid_is_paid_account()): ?>
|
46 |
-
<div class="section account-section">
|
47 |
-
<div class="left">
|
48 |
-
<div class="secondary-info">
|
49 |
-
<?php _e('Upgrade your account to get access to more Ecwid plugin features', 'ecwid-shopping-cart'); ?>
|
50 |
-
</div>
|
51 |
-
</div>
|
52 |
-
|
53 |
-
<div class="right">
|
54 |
-
<a class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>" target="_blank" href="http://www.ecwid.com/plans-and-pricing.html">
|
55 |
-
<?php _e('Upgrade', 'ecwid-shopping-cart'); ?>
|
56 |
-
</a>
|
57 |
-
</div>
|
58 |
-
</div>
|
59 |
-
<?php endif; ?>
|
60 |
-
|
61 |
-
<div class="note grayed-links">
|
62 |
-
<?php
|
63 |
-
echo sprintf(
|
64 |
-
__('If you want to connect another Ecwid store, you can <a %s>disconnect the current one and change Store ID</a>.', 'ecwid-shopping-cart'),
|
65 |
-
'href="#" onClick="javascript:document.forms[\'settings\'].submit(); return false;"'
|
66 |
-
);
|
67 |
-
?>
|
68 |
-
|
69 |
-
</div>
|
70 |
-
|
71 |
-
<hr />
|
72 |
-
<p><?php _e('Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>', 'ecwid-shopping-cart'); ?></p>
|
73 |
-
</fieldset>
|
74 |
-
</form>
|
75 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/setup.php
DELETED
@@ -1,75 +0,0 @@
|
|
1 |
-
<div class="wrap">
|
2 |
-
|
3 |
-
<form method="POST" action="options.php" class="pure-form ecwid-settings general-settings">
|
4 |
-
<h2><?php _e('Ecwid Shopping Cart — Connect', 'ecwid-shopping-cart'); ?></h2>
|
5 |
-
<?php settings_fields('ecwid_options_page'); ?>
|
6 |
-
<fieldset>
|
7 |
-
|
8 |
-
<input type="hidden" name="settings_section" value="general" />
|
9 |
-
|
10 |
-
<div class="greeting-box">
|
11 |
-
|
12 |
-
<div class="image-container">
|
13 |
-
<img class="greeting-image" src="<?php echo(esc_attr(ECWID_PLUGIN_URL)); ?>/images/store_inprogress.png" width="142" />
|
14 |
-
</div>
|
15 |
-
|
16 |
-
<div class="messages-container">
|
17 |
-
<div class="main-message">
|
18 |
-
|
19 |
-
<?php _e('Thank you for choosing Ecwid to build your online store', 'ecwid-shopping-cart'); ?>
|
20 |
-
</div>
|
21 |
-
<div class="secondary-message">
|
22 |
-
<?php _e('The first step towards opening your online business: <br />Let’s get started and add a store to your WordPress website in <strong>3</strong> simple steps.', 'ecwid-shopping-cart'); ?>
|
23 |
-
</div>
|
24 |
-
</div>
|
25 |
-
|
26 |
-
</div>
|
27 |
-
<hr />
|
28 |
-
|
29 |
-
<ol>
|
30 |
-
<li>
|
31 |
-
<h4><?php _e('Register at Ecwid', 'ecwid-shopping-cart'); ?></h4>
|
32 |
-
<div>
|
33 |
-
<?php _e('Create a new Ecwid account which you will use to manage your store and inventory. The registration is free.', 'ecwid-shopping-cart'); ?>
|
34 |
-
</div>
|
35 |
-
<div class="ecwid-account-buttons">
|
36 |
-
<a class="pure-button pure-button-secondary" target="_blank" href="https://my.ecwid.com/cp/?source=wporg#register">
|
37 |
-
<?php _e('Create new Ecwid account', 'ecwid-shopping-cart'); ?>
|
38 |
-
</a>
|
39 |
-
<a class="pure-button pure-button-secondary" target="_blank" href="https://my.ecwid.com/cp/?source=wporg#t1=&t2=Dashboard">
|
40 |
-
<?php _e('I already have Ecwid account, sign in', 'ecwid-shopping-cart'); ?>
|
41 |
-
</a>
|
42 |
-
</div>
|
43 |
-
<div class="note">
|
44 |
-
<?php _e('You will be able to sign up through your existing Google, Facebook or PayPal profiles as well.', 'ecwid-shopping-cart'); ?>
|
45 |
-
</div>
|
46 |
-
</li>
|
47 |
-
<li>
|
48 |
-
<h4><?php _e('Find your Store ID', 'ecwid-shopping-cart'); ?></h4>
|
49 |
-
<div>
|
50 |
-
<?php _e('Store ID is a unique identifier of any Ecwid store, it consists of several digits. You can find it on the "Dashboard" page of Ecwid control panel. Also the Store ID will be sent in the Welcome email after the registration.', 'ecwid-shopping-cart'); ?>
|
51 |
-
</div>
|
52 |
-
</li>
|
53 |
-
<li>
|
54 |
-
<h4>
|
55 |
-
<?php _e('Enter your Store ID', 'ecwid-shopping-cart'); ?>
|
56 |
-
</h4>
|
57 |
-
<div><label for="ecwid_store_id"><?php _e('Enter your Store ID here:', 'ecwid-shopping-cart'); ?></label></div>
|
58 |
-
<div class="pure-control-group store-id">
|
59 |
-
<input
|
60 |
-
id="ecwid_store_id"
|
61 |
-
name="ecwid_store_id"
|
62 |
-
type="text"
|
63 |
-
placeholder="<?php _e('Store ID', 'ecwid-shopping-cart'); ?>"
|
64 |
-
value="<?php if (get_ecwid_store_id() != 1003) echo esc_attr(get_ecwid_store_id()); ?>"
|
65 |
-
/>
|
66 |
-
<button type="submit" class="<?php echo ECWID_MAIN_BUTTON_CLASS; ?>"><?php _e('Save and connect your Ecwid store to the site', 'ecwid-shopping-cart'); ?></button>
|
67 |
-
</div>
|
68 |
-
|
69 |
-
</li>
|
70 |
-
</ol>
|
71 |
-
<hr />
|
72 |
-
<p><?php _e('Questions? Visit <a href="http://help.ecwid.com/?source=wporg">Ecwid support center</a>', 'ecwid-shopping-cart'); ?></p>
|
73 |
-
</fieldset>
|
74 |
-
</form>
|
75 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
templates/wp-dashboard-widget.php
DELETED
@@ -1,146 +0,0 @@
|
|
1 |
-
<table style="width: 100%; border: 0px solid #C0C0C0; background-color: #FFFFFF" cellSpacing=0 cellPadding=3>
|
2 |
-
<tr><td height=80 style="background-color: #FFFFFF">
|
3 |
-
<!-- Begin Ad Code -->
|
4 |
-
<script data-cfasync="false" type="text/javascript">
|
5 |
-
function loadTextAd(sparkCounter, id, setID) {
|
6 |
-
output179716="http://ab166273.adbutler-alion.com/adserve/;ID=" + id + ";setID=" + setID + ";type=textad;pid=" + rnd + ";layoutID=" + sparkCounter;
|
7 |
-
document.writeln("<SCR" + "IPT SRC=" + output179716 + " type=\"text/javascript\"> <\/scr" + "ipt>");
|
8 |
-
}
|
9 |
-
var loadedTextAds179716;
|
10 |
-
if(loadedTextAds179716 == null)
|
11 |
-
loadedTextAds179716= new Array();
|
12 |
-
var d = new Date();
|
13 |
-
var id179716 = 166273;
|
14 |
-
var setID179716 = 179716;
|
15 |
-
var rnd = window.rnd || Math.floor(Math.random()*10e6);
|
16 |
-
var sparkCounter179716;
|
17 |
-
if(sparkCounter179716 == null)
|
18 |
-
sparkCounter179716 = 1;
|
19 |
-
else
|
20 |
-
sparkCounter179716 = sparkCounter179716 + 1;
|
21 |
-
id="abta179716" + sparkCounter179716;
|
22 |
-
document.writeln("<div id='" + id + "'></div>");
|
23 |
-
loadedTextAds179716[sparkCounter179716] = false;
|
24 |
-
loadTextAd(sparkCounter179716, id179716, setID179716);
|
25 |
-
</script>
|
26 |
-
|
27 |
-
<!-- End Ad Code -->
|
28 |
-
</td></tr>
|
29 |
-
<tr><td height=80 style="background-color: #FFFFFF; border-top: 1px dashed #C0C0C0">
|
30 |
-
<!-- Begin Ad Code -->
|
31 |
-
<script data-cfasync="false" type="text/javascript">
|
32 |
-
function loadTextAd(sparkCounter, id, setID) {
|
33 |
-
output179716="http://ab166273.adbutler-alion.com/adserve/;ID=" + id + ";setID=" + setID + ";type=textad;pid=" + rnd + ";layoutID=" + sparkCounter;
|
34 |
-
document.writeln("<SCR" + "IPT SRC=" + output179716 + " type=\"text/javascript\"> <\/scr" + "ipt>");
|
35 |
-
}
|
36 |
-
var loadedTextAds179716;
|
37 |
-
if(loadedTextAds179716 == null)
|
38 |
-
loadedTextAds179716= new Array();
|
39 |
-
var d = new Date();
|
40 |
-
var id179716 = 166273;
|
41 |
-
var setID179716 = 179716;
|
42 |
-
var rnd = window.rnd || Math.floor(Math.random()*10e6);
|
43 |
-
var sparkCounter179716;
|
44 |
-
if(sparkCounter179716 == null)
|
45 |
-
sparkCounter179716 = 1;
|
46 |
-
else
|
47 |
-
sparkCounter179716 = sparkCounter179716 + 1;
|
48 |
-
id="abta179716" + sparkCounter179716;
|
49 |
-
document.writeln("<div id='" + id + "'></div>");
|
50 |
-
loadedTextAds179716[sparkCounter179716] = false;
|
51 |
-
loadTextAd(sparkCounter179716, id179716, setID179716);
|
52 |
-
</script>
|
53 |
-
|
54 |
-
<!-- End Ad Code -->
|
55 |
-
</td></tr>
|
56 |
-
<tr><td height=80 style="background-color: #FFFFFF; border-top: 1px dashed #C0C0C0">
|
57 |
-
<!-- Begin Ad Code -->
|
58 |
-
<script data-cfasync="false" type="text/javascript">
|
59 |
-
function loadTextAd(sparkCounter, id, setID) {
|
60 |
-
output179716="http://ab166273.adbutler-alion.com/adserve/;ID=" + id + ";setID=" + setID + ";type=textad;pid=" + rnd + ";layoutID=" + sparkCounter;
|
61 |
-
document.writeln("<SCR" + "IPT SRC=" + output179716 + " type=\"text/javascript\"> <\/scr" + "ipt>");
|
62 |
-
}
|
63 |
-
var loadedTextAds179716;
|
64 |
-
if(loadedTextAds179716 == null)
|
65 |
-
loadedTextAds179716= new Array();
|
66 |
-
var d = new Date();
|
67 |
-
var id179716 = 166273;
|
68 |
-
var setID179716 = 179716;
|
69 |
-
var rnd = window.rnd || Math.floor(Math.random()*10e6);
|
70 |
-
var sparkCounter179716;
|
71 |
-
if(sparkCounter179716 == null)
|
72 |
-
sparkCounter179716 = 1;
|
73 |
-
else
|
74 |
-
sparkCounter179716 = sparkCounter179716 + 1;
|
75 |
-
id="abta179716" + sparkCounter179716;
|
76 |
-
document.writeln("<div id='" + id + "'></div>");
|
77 |
-
loadedTextAds179716[sparkCounter179716] = false;
|
78 |
-
loadTextAd(sparkCounter179716, id179716, setID179716);
|
79 |
-
</script>
|
80 |
-
|
81 |
-
<!-- End Ad Code -->
|
82 |
-
</td></tr>
|
83 |
-
</table>
|
84 |
-
<div class="ecwid-wp-dashboard-fallback">
|
85 |
-
<div class="item" style="border-bottom: 1px dashed #C0C0C0">
|
86 |
-
<div class="title">
|
87 |
-
<a target="_blank" href="https://itunes.apple.com/bm/app/ecwid/id626731456">
|
88 |
-
<?php _e('Sell On The Go with Ecwid iOS Application', 'ecwid-shopping-cart'); ?>
|
89 |
-
</a>
|
90 |
-
</div>
|
91 |
-
<div class="content">
|
92 |
-
<?php _e('Ecwid iOS app allows you to manage your online store, sell your products on the go, and accept payments with your phone. Just download the Ecwid app, connect it to your Ecwid shop and have your sales at your fingertips!', 'ecwid-shopping-cart'); ?>
|
93 |
-
</div>
|
94 |
-
</div>
|
95 |
-
<div class="item" style="border-bottom: 1px dashed #C0C0C0">
|
96 |
-
<div class="title">
|
97 |
-
<a target="_blank" href="https://wordpress.org/plugins/google-sitemap-generator/">
|
98 |
-
<?php _e('Get Your Products Found on Google using XML Sitemap', 'ecwid-shopping-cart'); ?>
|
99 |
-
</a>
|
100 |
-
</div>
|
101 |
-
<div class="content">
|
102 |
-
<?php _e('Free Google XML Sitemaps plugin creates a sitemap that includes your store product links. This makes your product pages more visible to search engines and appear in the search results.', 'ecwid-shopping-cart'); ?>
|
103 |
-
</div>
|
104 |
-
</div>
|
105 |
-
<div class="item">
|
106 |
-
<div class="title">
|
107 |
-
<a target="_blank" href="https://wordpress.org/plugins/ecwid-widgets-avalanche/">
|
108 |
-
<?php _e('Add Product Slider to Your Store', 'ecwid-shopping-cart'); ?>
|
109 |
-
</a>
|
110 |
-
</div>
|
111 |
-
<div class="content">
|
112 |
-
<?php _e('Add a fancy product slider to your site using a free WP Widgets Avalanche plugin which works perfectly with Ecwid', 'ecwid-shopping-cart'); ?>
|
113 |
-
</div>
|
114 |
-
</div>
|
115 |
-
</div>
|
116 |
-
<script data-cfasync="false" type="text/javascript">
|
117 |
-
<!--
|
118 |
-
(function() {
|
119 |
-
function is_ad_loaded() {
|
120 |
-
return jQuery('#abta1797161 table').length > 0;
|
121 |
-
}
|
122 |
-
|
123 |
-
function check_ads() {
|
124 |
-
if (is_ad_loaded()) {
|
125 |
-
jQuery('#ecwid_dashboard_widget div.inside > table').show();
|
126 |
-
jQuery('#ecwid_dashboard_widget .ecwid-wp-dashboard-fallback').hide();
|
127 |
-
} else {
|
128 |
-
jQuery('#ecwid_dashboard_widget div.inside > table').hide();
|
129 |
-
jQuery('#ecwid_dashboard_widget .ecwid-wp-dashboard-fallback').show();
|
130 |
-
}
|
131 |
-
}
|
132 |
-
|
133 |
-
var ecwid_wp_dashboard_interval = setInterval(function() {
|
134 |
-
check_ads();
|
135 |
-
}, 500);
|
136 |
-
|
137 |
-
check_ads();
|
138 |
-
|
139 |
-
setTimeout(function() {
|
140 |
-
if (!is_ad_loaded()) {
|
141 |
-
clearInterval(ecwid_wp_dashboard_interval);
|
142 |
-
}
|
143 |
-
}, 3000);
|
144 |
-
})();
|
145 |
-
-->
|
146 |
-
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|