Version Description
- May 8, 2019 =
- Improved compatibility with WPML (part 2). WPML is a popular plugin for multilingual sites. Ecwid now supports full-featured multilingual storefronts, too. So, in this update, we added a few more improvements for WPML support. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will be displayed in the language selected by a visitor in a language selector. Read more about setting up a multilingual e-commerce store in Ecwid in the Ecwid blog: https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html
- A few fixes for compatibility with Divi builder. If you use Divi builder to edit your WordPress site content, you might notice that the Ecwid buttons "Add store" and "Add product" didn't work well in the editor lately. We fixed that, now it should work fine.
Download this release
Release Info
Developer | Ecwid |
Plugin | Ecwid Ecommerce Shopping Cart |
Version | 6.7 |
Comparing to | |
See all releases |
Code changes from version 6.6 to 6.7
- css/store-popup.css +2 -2
- ecwid-shopping-cart.php +9 -4
- includes/class-ecwid-floating-minicart.php +1 -1
- includes/class-ecwid-product-popup.php +2 -2
- includes/class-ecwid-seo-links.php +7 -35
- includes/class-ecwid-static-home-page.php +1 -0
- includes/class-ecwid-store-editor.php +4 -4
- includes/importer/class-ecwid-importer.php +2 -2
- includes/importer/task/class-ecwid-importer-task-create-product-variation.php +6 -4
- includes/importer/task/class-ecwid-importer-task-create-product.php +21 -2
- includes/integrations/class-ecwid-integration-wpml.php +41 -0
- includes/themes.php +2 -2
- includes/themes/class-ecwid-theme-divi.php +40 -0
- includes/widgets/nsf-minicart.tpl.php +1 -1
- js/product-popup.js +1 -1
- js/store-editor-page.js +2 -1
- lib/ecwid_api_v3.php +16 -3
- readme.txt +6 -2
css/store-popup.css
CHANGED
@@ -4,8 +4,8 @@
|
|
4 |
display: inline-block;
|
5 |
width: 16px;
|
6 |
top: 3px;
|
7 |
-
height:
|
8 |
-
max-height:
|
9 |
}
|
10 |
|
11 |
.ecwid-store-icon svg * {
|
4 |
display: inline-block;
|
5 |
width: 16px;
|
6 |
top: 3px;
|
7 |
+
height: 22px;
|
8 |
+
max-height: 22px;
|
9 |
}
|
10 |
|
11 |
.ecwid-store-icon svg * {
|
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 Ecommerce
|
8 |
-
Version: 6.
|
9 |
Author URI: https://ecwid.to/ecwid-site
|
10 |
*/
|
11 |
|
@@ -189,7 +189,8 @@ function ecwid_init_integrations()
|
|
189 |
'js_composer/js_composer.php' => 'wpbakery-composer',
|
190 |
'beaver-builder-lite-version/fl-builder.php' => 'beaver-builder',
|
191 |
'bb-plugin/fl-builder.php' => 'beaver-builder',
|
192 |
-
'elementor/elementor.php' => 'elementor'
|
|
|
193 |
);
|
194 |
|
195 |
|
@@ -742,7 +743,9 @@ function ecwid_check_version()
|
|
742 |
add_option( 'ecwid_hide_prefetch', 'off' );
|
743 |
|
744 |
// Since 6.1.x
|
745 |
-
Ecwid_Floating_Minicart
|
|
|
|
|
746 |
add_option( 'ecwid_hide_old_minicart', ecwid_is_recent_installation() );
|
747 |
|
748 |
Ecwid_Config::load_from_ini();
|
@@ -1589,6 +1592,8 @@ function ecwid_wrap_shortcode_content($content, $name, $attrs)
|
|
1589 |
function ecwid_get_scriptjs_code( $force_lang = null ) {
|
1590 |
static $code = '';
|
1591 |
|
|
|
|
|
1592 |
$store_id = get_ecwid_store_id();
|
1593 |
$params = ecwid_get_scriptjs_params( $force_lang );
|
1594 |
|
@@ -1596,7 +1601,7 @@ function ecwid_get_scriptjs_code( $force_lang = null ) {
|
|
1596 |
$code .= ecwid_sso();
|
1597 |
$code .= '<script type="text/javascript">if (jQuery && jQuery.mobile) { jQuery.mobile.hashListeningEnabled = false; jQuery.mobile.pushStateEnabled=false; }</script>';
|
1598 |
|
1599 |
-
return $code;
|
1600 |
}
|
1601 |
|
1602 |
function ecwid_get_scriptjs_params( $force_lang = null ) {
|
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 Ecommerce
|
8 |
+
Version: 6.7
|
9 |
Author URI: https://ecwid.to/ecwid-site
|
10 |
*/
|
11 |
|
189 |
'js_composer/js_composer.php' => 'wpbakery-composer',
|
190 |
'beaver-builder-lite-version/fl-builder.php' => 'beaver-builder',
|
191 |
'bb-plugin/fl-builder.php' => 'beaver-builder',
|
192 |
+
'elementor/elementor.php' => 'elementor',
|
193 |
+
'sitepress-multilingual-cms/sitepress.php' => 'wpml'
|
194 |
);
|
195 |
|
196 |
|
743 |
add_option( 'ecwid_hide_prefetch', 'off' );
|
744 |
|
745 |
// Since 6.1.x
|
746 |
+
if ( class_exists( 'Ecwid_Floating_Minicart' ) ) {
|
747 |
+
Ecwid_Floating_Minicart::create_default_options();
|
748 |
+
}
|
749 |
add_option( 'ecwid_hide_old_minicart', ecwid_is_recent_installation() );
|
750 |
|
751 |
Ecwid_Config::load_from_ini();
|
1592 |
function ecwid_get_scriptjs_code( $force_lang = null ) {
|
1593 |
static $code = '';
|
1594 |
|
1595 |
+
$force_lang = apply_filters( 'ecwid_lang', $force_lang );
|
1596 |
+
|
1597 |
$store_id = get_ecwid_store_id();
|
1598 |
$params = ecwid_get_scriptjs_params( $force_lang );
|
1599 |
|
1601 |
$code .= ecwid_sso();
|
1602 |
$code .= '<script type="text/javascript">if (jQuery && jQuery.mobile) { jQuery.mobile.hashListeningEnabled = false; jQuery.mobile.pushStateEnabled=false; }</script>';
|
1603 |
|
1604 |
+
return apply_filters( 'ecwid_scriptjs_code', $code );
|
1605 |
}
|
1606 |
|
1607 |
function ecwid_get_scriptjs_params( $force_lang = null ) {
|
includes/class-ecwid-floating-minicart.php
CHANGED
@@ -71,7 +71,7 @@ if ( version_compare( get_bloginfo('version'), '4.0' ) >= 0 ) {
|
|
71 |
></div>
|
72 |
|
73 |
<script>
|
74 |
-
|
75 |
</script>
|
76 |
HTML;
|
77 |
}
|
71 |
></div>
|
72 |
|
73 |
<script>
|
74 |
+
Ecwid.init();
|
75 |
</script>
|
76 |
HTML;
|
77 |
}
|
includes/class-ecwid-product-popup.php
CHANGED
@@ -106,9 +106,9 @@ class Ecwid_Product_Popup {
|
|
106 |
|
107 |
$title = __( 'Add Product', 'ecwid-shopping-cart' );
|
108 |
$button = <<<HTML
|
109 |
-
<
|
110 |
$title
|
111 |
-
</
|
112 |
HTML;
|
113 |
|
114 |
return $context . $button;
|
106 |
|
107 |
$title = __( 'Add Product', 'ecwid-shopping-cart' );
|
108 |
$button = <<<HTML
|
109 |
+
<button id="insert-ecwid-product-button" class="button add-ecwid-product ecwid_button" title="$title">
|
110 |
$title
|
111 |
+
</button>
|
112 |
HTML;
|
113 |
|
114 |
return $context . $button;
|
includes/class-ecwid-seo-links.php
CHANGED
@@ -444,44 +444,16 @@ JS;
|
|
444 |
}
|
445 |
|
446 |
protected static function _get_relative_permalink( $item_id ) {
|
447 |
-
|
448 |
-
$
|
449 |
-
$home_url = home_url();
|
450 |
-
$default_link = substr( $permalink, strlen( $home_url ) );
|
451 |
-
|
452 |
-
if ( !is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' ) ) {
|
453 |
-
return $default_link;
|
454 |
-
}
|
455 |
-
|
456 |
-
try {
|
457 |
-
global $sitepress;
|
458 |
-
|
459 |
-
if ( $sitepress->get_setting( 'language_negotiation_type' ) == WPML_LANGUAGE_NEGOTIATION_TYPE_DIRECTORY ) {
|
460 |
-
|
461 |
-
$translation_details = apply_filters( 'wpml_element_language_details', null, array(
|
462 |
-
'element_id' => $item_id,
|
463 |
-
'element_type' => 'post_page'
|
464 |
-
) );
|
465 |
-
|
466 |
-
$code = $translation_details->language_code;
|
467 |
-
|
468 |
-
$lang_info = apply_filters( 'wpml_active_languages', null );
|
469 |
-
$permalink = apply_filters( 'wpml_permalink', get_permalink( $item_id ), $code, true );
|
470 |
-
$home_url = $lang_info[$code]['url'];
|
471 |
-
|
472 |
-
$link = substr( $permalink, strlen( $home_url ) );
|
473 |
-
}
|
474 |
-
} catch ( Exception $e ) {
|
475 |
-
$permalink = get_permalink( $item_id );
|
476 |
|
477 |
-
|
|
|
|
|
478 |
|
479 |
-
|
480 |
|
481 |
-
|
482 |
-
}
|
483 |
-
|
484 |
-
return $link;
|
485 |
}
|
486 |
|
487 |
public static function is_noindex_page() {
|
444 |
}
|
445 |
|
446 |
protected static function _get_relative_permalink( $item_id ) {
|
447 |
+
$permalink = parse_url( get_permalink( $item_id ) );
|
448 |
+
$home_url = parse_url( home_url() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
449 |
|
450 |
+
if( isset($home_url['query']) ) {
|
451 |
+
$home_url['path'] = substr( $home_url['path'], 0, -1 );
|
452 |
+
}
|
453 |
|
454 |
+
$default_link = substr( $permalink['path'], strlen( $home_url['path'] ) );
|
455 |
|
456 |
+
return apply_filters( 'ecwid_relative_permalink', $default_link, $item_id );
|
|
|
|
|
|
|
457 |
}
|
458 |
|
459 |
public static function is_noindex_page() {
|
includes/class-ecwid-static-home-page.php
CHANGED
@@ -112,6 +112,7 @@ class Ecwid_Static_Home_Page {
|
|
112 |
}
|
113 |
|
114 |
$accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
|
|
115 |
|
116 |
$cache_key = $accept_language . "\n" . $url;
|
117 |
|
112 |
}
|
113 |
|
114 |
$accept_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
115 |
+
$accept_language = apply_filters( 'ecwid_lang', $accept_language );
|
116 |
|
117 |
$cache_key = $accept_language . "\n" . $url;
|
118 |
|
includes/class-ecwid-store-editor.php
CHANGED
@@ -51,18 +51,18 @@ class Ecwid_Store_Editor {
|
|
51 |
|
52 |
$title = __( 'Add Store', 'ecwid-shopping-cart' );
|
53 |
$button = <<<HTML
|
54 |
-
<
|
55 |
<span class="ecwid-store-icon">$image_code</span>
|
56 |
$title
|
57 |
-
</
|
58 |
HTML;
|
59 |
|
60 |
$title = __( 'Edit Store', 'ecwid-shopping-cart' );
|
61 |
$button .= <<<HTML
|
62 |
-
<
|
63 |
<span class="ecwid-store-icon">$image_code</span>
|
64 |
$title
|
65 |
-
</
|
66 |
HTML;
|
67 |
|
68 |
return $context . $button;
|
51 |
|
52 |
$title = __( 'Add Store', 'ecwid-shopping-cart' );
|
53 |
$button = <<<HTML
|
54 |
+
<button id="insert-ecwid-button" class="button add-ecwid ecwid_button" title="$title">
|
55 |
<span class="ecwid-store-icon">$image_code</span>
|
56 |
$title
|
57 |
+
</button>
|
58 |
HTML;
|
59 |
|
60 |
$title = __( 'Edit Store', 'ecwid-shopping-cart' );
|
61 |
$button .= <<<HTML
|
62 |
+
<button id="update-ecwid-button" class="button update-ecwid ecwid_button" title="$title">
|
63 |
<span class="ecwid-store-icon">$image_code</span>
|
64 |
$title
|
65 |
+
</button>
|
66 |
HTML;
|
67 |
|
68 |
return $context . $button;
|
includes/importer/class-ecwid-importer.php
CHANGED
@@ -174,9 +174,9 @@ class Ecwid_Importer
|
|
174 |
}
|
175 |
|
176 |
public function append_after( $task, $index ) {
|
177 |
-
array_splice( $this->_tasks, $index, 0, array( $task ) );
|
178 |
|
179 |
-
return $index;
|
180 |
}
|
181 |
|
182 |
public function append_after_type( $task ) {
|
174 |
}
|
175 |
|
176 |
public function append_after( $task, $index ) {
|
177 |
+
array_splice( $this->_tasks, $index + 1, 0, array( $task ) );
|
178 |
|
179 |
+
return $index + 1;
|
180 |
}
|
181 |
|
182 |
public function append_after_type( $task ) {
|
includes/importer/task/class-ecwid-importer-task-create-product-variation.php
CHANGED
@@ -33,10 +33,12 @@ class Ecwid_Importer_Task_Create_Product_Variation extends Ecwid_Importer_Task
|
|
33 |
|
34 |
$value = $var['attributes']['attribute_' . strtolower($internal_name)];
|
35 |
|
36 |
-
$
|
37 |
-
'
|
38 |
-
|
39 |
-
|
|
|
|
|
40 |
}
|
41 |
|
42 |
$variation_data['price'] = $var['display_price'];
|
33 |
|
34 |
$value = $var['attributes']['attribute_' . strtolower($internal_name)];
|
35 |
|
36 |
+
if ( $value ) {
|
37 |
+
$variation_data['options'][] = array(
|
38 |
+
'name' => $name,
|
39 |
+
'value' => $value
|
40 |
+
);
|
41 |
+
}
|
42 |
}
|
43 |
|
44 |
$variation_data['price'] = $var['display_price'];
|
includes/importer/task/class-ecwid-importer-task-create-product.php
CHANGED
@@ -104,8 +104,13 @@ class Ecwid_Importer_Task_Create_Product extends Ecwid_Importer_Task
|
|
104 |
$result['options'] = array();
|
105 |
foreach ( $attributes as $name => $attribute ) {
|
106 |
|
107 |
-
$
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
109 |
|
110 |
if ($tax_attribute) {
|
111 |
$name = $tax_attribute->attribute_label;
|
@@ -130,6 +135,20 @@ class Ecwid_Importer_Task_Create_Product extends Ecwid_Importer_Task
|
|
130 |
|
131 |
return $result;
|
132 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
public static function build( array $data ) {
|
135 |
return array(
|
104 |
$result['options'] = array();
|
105 |
foreach ( $attributes as $name => $attribute ) {
|
106 |
|
107 |
+
$att = $this->_get_attribute_by_name( $product, $name );
|
108 |
+
|
109 |
+
if ( !$att ) {
|
110 |
+
continue;
|
111 |
+
}
|
112 |
+
|
113 |
+
$tax_attribute = $att->get_taxonomy_object();
|
114 |
|
115 |
if ($tax_attribute) {
|
116 |
$name = $tax_attribute->attribute_label;
|
135 |
|
136 |
return $result;
|
137 |
}
|
138 |
+
|
139 |
+
protected function _get_attribute_by_name( $product, $name ) {
|
140 |
+
|
141 |
+
$atts = $product->get_attributes();
|
142 |
+
$found = null;
|
143 |
+
foreach ( $atts as $att ) {
|
144 |
+
if ( $att['name'] == $name ) {
|
145 |
+
$found = $att;
|
146 |
+
break;
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
return $found;
|
151 |
+
}
|
152 |
|
153 |
public static function build( array $data ) {
|
154 |
return array(
|
includes/integrations/class-ecwid-integration-wpml.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Ecwid_Integration_WPML
|
4 |
+
{
|
5 |
+
public function __construct()
|
6 |
+
{
|
7 |
+
add_filter( 'ecwid_lang', array( $this, 'force_scriptjs_lang' ) );
|
8 |
+
add_filter( 'ecwid_relative_permalink', array( $this, 'mod_relative_permalink' ), 10, 2 );
|
9 |
+
}
|
10 |
+
|
11 |
+
public function force_scriptjs_lang( $lang )
|
12 |
+
{
|
13 |
+
$current_language_code = apply_filters( 'wpml_current_language', null );
|
14 |
+
return $current_language_code;
|
15 |
+
}
|
16 |
+
|
17 |
+
public function mod_relative_permalink( $default_link, $item_id )
|
18 |
+
{
|
19 |
+
global $sitepress;
|
20 |
+
|
21 |
+
if ( $sitepress->get_setting( 'language_negotiation_type' ) == WPML_LANGUAGE_NEGOTIATION_TYPE_DIRECTORY ) {
|
22 |
+
|
23 |
+
$translation_details = apply_filters( 'wpml_element_language_details', null, array(
|
24 |
+
'element_id' => $item_id,
|
25 |
+
'element_type' => 'post_page'
|
26 |
+
) );
|
27 |
+
|
28 |
+
$code = $translation_details->language_code;
|
29 |
+
|
30 |
+
$lang_info = apply_filters( 'wpml_active_languages', null );
|
31 |
+
$permalink = apply_filters( 'wpml_permalink', get_permalink( $item_id ), $code, true );
|
32 |
+
$home_url = $lang_info[$code]['url'];
|
33 |
+
|
34 |
+
$default_link = substr( $permalink, strlen( $home_url ) );
|
35 |
+
}
|
36 |
+
|
37 |
+
return $default_link;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
$ecwid_integration_wpml = new Ecwid_Integration_WPML();
|
includes/themes.php
CHANGED
@@ -65,7 +65,6 @@ function ecwid_apply_theme($theme_name = null)
|
|
65 |
'optimizer' => array( 'css' ),
|
66 |
'businesso' => array( 'css' ),
|
67 |
'flatsome' => array( Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ),
|
68 |
-
'Divi' => array( Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ),
|
69 |
'themify-music' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ),
|
70 |
'bridge' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ),
|
71 |
'Parallax-One' => array( 'css' )
|
@@ -90,7 +89,8 @@ function ecwid_apply_theme($theme_name = null)
|
|
90 |
'woodiex',
|
91 |
'enfold',
|
92 |
'vantage',
|
93 |
-
'zenlife'
|
|
|
94 |
);
|
95 |
|
96 |
$custom_themes = apply_filters( 'ecwid_custom_themes', $custom_themes );
|
65 |
'optimizer' => array( 'css' ),
|
66 |
'businesso' => array( 'css' ),
|
67 |
'flatsome' => array( Ecwid_Theme_Base::PROP_USE_JS_API_FOR_CATS_NAV_MENU ),
|
|
|
68 |
'themify-music' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ),
|
69 |
'bridge' => array( Ecwid_Theme_Base::PROP_AJAX_DEFER_RENDERING ),
|
70 |
'Parallax-One' => array( 'css' )
|
89 |
'woodiex',
|
90 |
'enfold',
|
91 |
'vantage',
|
92 |
+
'zenlife',
|
93 |
+
'Divi'
|
94 |
);
|
95 |
|
96 |
$custom_themes = apply_filters( 'ecwid_custom_themes', $custom_themes );
|
includes/themes/class-ecwid-theme-divi.php
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
require_once ECWID_THEMES_DIR . '/class-ecwid-theme-base.php';
|
4 |
+
|
5 |
+
class Ecwid_Divi extends Ecwid_Theme_Base
|
6 |
+
{
|
7 |
+
protected $name = 'Divi';
|
8 |
+
|
9 |
+
public function __construct() {
|
10 |
+
parent::__construct();
|
11 |
+
|
12 |
+
add_filter( Ecwid_Nav_Menus::FILTER_USE_JS_API_FOR_CATS_MENU, array( $this, 'filter_use_js_api_for_cats_menu' ) );
|
13 |
+
|
14 |
+
if( $this->is_wireframe_view() ) {
|
15 |
+
add_filter( 'ecwid_scriptjs_code', '__return_false' );
|
16 |
+
}
|
17 |
+
|
18 |
+
if( $this->is_visual_view() ) {
|
19 |
+
remove_all_filters( 'ecwid_inline_js_config' );
|
20 |
+
}
|
21 |
+
|
22 |
+
if( isset( $_REQUEST['page_id'] ) && $this->is_visual_view() ) {
|
23 |
+
add_action( 'wp_footer', array( $this, 'add_scriptjs_code' ) );
|
24 |
+
}
|
25 |
+
}
|
26 |
+
|
27 |
+
public function is_wireframe_view() {
|
28 |
+
return isset( $_REQUEST['et_bfb'] );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function is_visual_view() {
|
32 |
+
return isset( $_REQUEST['et_fb'] ) && !isset( $_REQUEST['et_bfb'] );
|
33 |
+
}
|
34 |
+
|
35 |
+
public function add_scriptjs_code() {
|
36 |
+
echo ecwid_get_scriptjs_code();
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
return new Ecwid_Divi();
|
includes/widgets/nsf-minicart.tpl.php
CHANGED
@@ -13,6 +13,6 @@ echo ecwid_get_product_browser_url_script();
|
|
13 |
></div>
|
14 |
|
15 |
<script>
|
16 |
-
|
17 |
</script>
|
18 |
<!-- /noptimize -->
|
13 |
></div>
|
14 |
|
15 |
<script>
|
16 |
+
Ecwid.init();
|
17 |
</script>
|
18 |
<!-- /noptimize -->
|
js/product-popup.js
CHANGED
@@ -9,7 +9,7 @@ jQuery(document).ready(function() {
|
|
9 |
|
10 |
popup().data( 'defaultSortBy', 'ADDED_TIME_DESC' );
|
11 |
|
12 |
-
jQuery('#insert-ecwid-product-button'
|
13 |
openPopup();
|
14 |
});
|
15 |
|
9 |
|
10 |
popup().data( 'defaultSortBy', 'ADDED_TIME_DESC' );
|
11 |
|
12 |
+
jQuery(document).on('click', '#insert-ecwid-product-button', function() {
|
13 |
openPopup();
|
14 |
});
|
15 |
|
js/store-editor-page.js
CHANGED
@@ -8,7 +8,8 @@ jQuery(document).ready(function() {
|
|
8 |
/*
|
9 |
* Media buttons handlers
|
10 |
*/
|
11 |
-
jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup);
|
|
|
12 |
|
13 |
/*
|
14 |
* Close button handler
|
8 |
/*
|
9 |
* Media buttons handlers
|
10 |
*/
|
11 |
+
// jQuery('#update-ecwid-button,#insert-ecwid-button').click(ecwid_open_store_popup);
|
12 |
+
jQuery(document).on('click', '#update-ecwid-button,#insert-ecwid-button', ecwid_open_store_popup);
|
13 |
|
14 |
/*
|
15 |
* Close button handler
|
lib/ecwid_api_v3.php
CHANGED
@@ -146,6 +146,10 @@ class Ecwid_Api_V3
|
|
146 |
|
147 |
public function get_categories($input_params)
|
148 |
{
|
|
|
|
|
|
|
|
|
149 |
$params = array('token');
|
150 |
if (array_key_exists('parent', $input_params)) {
|
151 |
$params['parent'] = $input_params['parent'];
|
@@ -171,7 +175,7 @@ class Ecwid_Api_V3
|
|
171 |
);
|
172 |
|
173 |
$result = EcwidPlatform::get_from_categories_cache($url);
|
174 |
-
|
175 |
if ( !$result ) {
|
176 |
$result = EcwidPlatform::fetch_url( $url );
|
177 |
}
|
@@ -508,6 +512,10 @@ class Ecwid_Api_V3
|
|
508 |
|
509 |
public function get_store_profile() {
|
510 |
|
|
|
|
|
|
|
|
|
511 |
$profile = EcwidPlatform::cache_get( self::PROFILE_CACHE_NAME );
|
512 |
|
513 |
if ( $profile ) {
|
@@ -517,10 +525,10 @@ class Ecwid_Api_V3
|
|
517 |
$params = array(
|
518 |
'token' => self::get_token()
|
519 |
);
|
520 |
-
|
521 |
$url = $this->build_request_url($this->_profile_api_url, $params);
|
522 |
$result = EcwidPlatform::fetch_url($url);
|
523 |
-
|
524 |
if ( @$result['code'] == '403' ) {
|
525 |
self::set_api_status( self::API_STATUS_ERROR_TOKEN );
|
526 |
Ecwid_Api_V3::save_token('');
|
@@ -695,6 +703,11 @@ class Ecwid_Api_V3
|
|
695 |
}
|
696 |
}
|
697 |
|
|
|
|
|
|
|
|
|
|
|
698 |
return $url . '?' . build_query($params);
|
699 |
}
|
700 |
|
146 |
|
147 |
public function get_categories($input_params)
|
148 |
{
|
149 |
+
if( ecwid_is_demo_store() ) {
|
150 |
+
return false;
|
151 |
+
}
|
152 |
+
|
153 |
$params = array('token');
|
154 |
if (array_key_exists('parent', $input_params)) {
|
155 |
$params['parent'] = $input_params['parent'];
|
175 |
);
|
176 |
|
177 |
$result = EcwidPlatform::get_from_categories_cache($url);
|
178 |
+
|
179 |
if ( !$result ) {
|
180 |
$result = EcwidPlatform::fetch_url( $url );
|
181 |
}
|
512 |
|
513 |
public function get_store_profile() {
|
514 |
|
515 |
+
if( ecwid_is_demo_store() ) {
|
516 |
+
return false;
|
517 |
+
}
|
518 |
+
|
519 |
$profile = EcwidPlatform::cache_get( self::PROFILE_CACHE_NAME );
|
520 |
|
521 |
if ( $profile ) {
|
525 |
$params = array(
|
526 |
'token' => self::get_token()
|
527 |
);
|
528 |
+
|
529 |
$url = $this->build_request_url($this->_profile_api_url, $params);
|
530 |
$result = EcwidPlatform::fetch_url($url);
|
531 |
+
|
532 |
if ( @$result['code'] == '403' ) {
|
533 |
self::set_api_status( self::API_STATUS_ERROR_TOKEN );
|
534 |
Ecwid_Api_V3::save_token('');
|
703 |
}
|
704 |
}
|
705 |
|
706 |
+
$lang = apply_filters( 'ecwid_lang', null );
|
707 |
+
if( !empty($lang) ) {
|
708 |
+
$params['lang'] = $lang;
|
709 |
+
}
|
710 |
+
|
711 |
return $url . '?' . build_query($params);
|
712 |
}
|
713 |
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: Ecwid
|
3 |
Tags: ecommerce, e-commerce, storefront, online store, sell
|
4 |
Requires at least: 3.7
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 6.
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
@@ -150,6 +150,10 @@ You can use Ecwid’s built-in import tools to copy your store products from any
|
|
150 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
151 |
|
152 |
== Changelog ==
|
|
|
|
|
|
|
|
|
153 |
= 6.6 - Apr 29, 2019 =
|
154 |
- **Improved loading time for the Ecwid plugin in WordPress admin backend**. We noticed that the Ecwid plugin affected the loading time of the pages editor in the WordPress admin backend. We improved a few things in the plugin to make it load faster.
|
155 |
- **Improved compatibility with WPML**. WPML is a popular plugin for multilingual sites. We got a few reports that it didn’t work well with Ecwid. We talked to the WPML team and tracked down the issue. It’s now fixed and your site should work fine if you use both WPML and Ecwid. In future versions, we will add a full support for WPML — you will be able to translate your Ecwid catalog to multiple languages and display your store content in your visitor language.
|
2 |
Contributors: Ecwid
|
3 |
Tags: ecommerce, e-commerce, storefront, online store, sell
|
4 |
Requires at least: 3.7
|
5 |
+
Tested up to: 5.2
|
6 |
+
Stable tag: 6.7
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
150 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
151 |
|
152 |
== Changelog ==
|
153 |
+
= 6.7 - May 8, 2019 =
|
154 |
+
- **Improved compatibility with WPML (part 2)**. WPML is a popular plugin for multilingual sites. Ecwid now supports full-featured multilingual storefronts, too. So, in this update, we added a few more improvements for WPML support. Now, if you have enabled the multilingual mode in your ecommerce store and are using WPML on your WordPress site, your shop pages will be displayed in the language selected by a visitor in a language selector. Read more about setting up a multilingual e-commerce store in Ecwid in the Ecwid blog: [https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html](https://www.ecwid.com/blog/sell-around-the-globe-with-a-fully-multilingual-storefront.html)
|
155 |
+
- **A few fixes for compatibility with Divi builder**. If you use Divi builder to edit your WordPress site content, you might notice that the Ecwid buttons "Add store" and "Add product" didn't work well in the editor lately. We fixed that, now it should work fine.
|
156 |
+
|
157 |
= 6.6 - Apr 29, 2019 =
|
158 |
- **Improved loading time for the Ecwid plugin in WordPress admin backend**. We noticed that the Ecwid plugin affected the loading time of the pages editor in the WordPress admin backend. We improved a few things in the plugin to make it load faster.
|
159 |
- **Improved compatibility with WPML**. WPML is a popular plugin for multilingual sites. We got a few reports that it didn’t work well with Ecwid. We talked to the WPML team and tracked down the issue. It’s now fixed and your site should work fine if you use both WPML and Ecwid. In future versions, we will add a full support for WPML — you will be able to translate your Ecwid catalog to multiple languages and display your store content in your visitor language.
|