Version Description
- Sep 30, 2019 =
- New "Online store" widget in the Elementor page builder. Ecwid works fine with all popular page builders in WordPress: Gutenberg, Elementor, Divi, Beaver builder and others. We constantly improve and add the compatibility features. In this update, we added a new "Online store" widget to Elementor editor toolbox. It allows you to add storefront to your ecommerce website pages easier in Elementor.
- Meta tags improvement for products and categories ecommerce pages created with Divi builder.
- Fix for the "Cannot use object of type WP_Error as array" PHP warning message appearing on some sites.
- Minor fixes and improvements.
Download this release
Release Info
Developer | Ecwid |
Plugin | Ecwid Ecommerce Shopping Cart |
Version | 6.8.7 |
Comparing to | |
See all releases |
Code changes from version 6.8.6 to 6.8.7
- css/widget-stub.css +4 -0
- ecwid-shopping-cart.php +9 -4
- includes/class-ecwid-store-page.php +4 -0
- includes/class-ecwid-stub-renderer.php +8 -1
- includes/gutenberg/class-ecwid-gutenberg-block-store.php +5 -3
- includes/integrations/class-ecwid-integration-elementor.php +29 -1
- includes/integrations/class-ecwid-integration-gutenberg.php +5 -3
- includes/themes/class-ecwid-theme-base.php +6 -6
- includes/themes/class-ecwid-theme-divi.php +11 -0
- includes/widgets.php +1 -0
- includes/widgets/class-ecwid-widget-product-browser.php +23 -0
- js/admin-bar.js +5 -1
- lib/ecwid_api_v3.php +13 -7
- readme.txt +7 -1
- templates/cache_log.php +4 -0
- templates/debug.php +9 -4
- templates/widget-stub.tpl.php +1 -1
css/widget-stub.css
CHANGED
@@ -14,6 +14,10 @@
|
|
14 |
color: #32373c;
|
15 |
}
|
16 |
|
|
|
|
|
|
|
|
|
17 |
.ecwid-widget-stub > div {
|
18 |
display: flex;
|
19 |
justify-content: center;
|
14 |
color: #32373c;
|
15 |
}
|
16 |
|
17 |
+
.ecwid-widget-stub.widget_ecwid_product_browser {
|
18 |
+
min-height: 200px;
|
19 |
+
}
|
20 |
+
|
21 |
.ecwid-widget-stub > div {
|
22 |
display: flex;
|
23 |
justify-content: center;
|
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.8.
|
9 |
Author URI: https://ecwid.to/ecwid-site
|
10 |
*/
|
11 |
|
@@ -1931,7 +1931,7 @@ function ecwid_update_plugin_params()
|
|
1931 |
$options4update = array();
|
1932 |
|
1933 |
foreach ( $options as $key => $option ) {
|
1934 |
-
if ( $option['type'] == 'html' ) {
|
1935 |
$options4update[$key] = html_entity_decode( @$_POST['option'][$key] );
|
1936 |
} else {
|
1937 |
$options4update[$key] = @$_POST['option'][$key];
|
@@ -2901,8 +2901,11 @@ function ecwid_add_headers() {
|
|
2901 |
}
|
2902 |
|
2903 |
function ecwid_sso() {
|
|
|
2904 |
|
2905 |
-
if (!ecwid_is_sso_enabled()) return;
|
|
|
|
|
2906 |
|
2907 |
$current_user = wp_get_current_user();
|
2908 |
|
@@ -2957,7 +2960,7 @@ JS;
|
|
2957 |
}
|
2958 |
|
2959 |
|
2960 |
-
|
2961 |
<script data-cfasync="false" type="text/javascript">
|
2962 |
|
2963 |
var ecwid_sso_profile='$ecwid_sso_profile';
|
@@ -2975,6 +2978,8 @@ JS;
|
|
2975 |
);
|
2976 |
</script>
|
2977 |
HTML;
|
|
|
|
|
2978 |
}
|
2979 |
|
2980 |
// from: http://www.php.net/manual/en/function.sha1.php#39492
|
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.8.7
|
9 |
Author URI: https://ecwid.to/ecwid-site
|
10 |
*/
|
11 |
|
1931 |
$options4update = array();
|
1932 |
|
1933 |
foreach ( $options as $key => $option ) {
|
1934 |
+
if ( isset($option['type']) && $option['type'] == 'html' ) {
|
1935 |
$options4update[$key] = html_entity_decode( @$_POST['option'][$key] );
|
1936 |
} else {
|
1937 |
$options4update[$key] = @$_POST['option'][$key];
|
2901 |
}
|
2902 |
|
2903 |
function ecwid_sso() {
|
2904 |
+
global $ecwid_sso_script;
|
2905 |
|
2906 |
+
if ( !ecwid_is_sso_enabled() ) return;
|
2907 |
+
|
2908 |
+
if ( !empty($ecwid_sso_script) ) return;
|
2909 |
|
2910 |
$current_user = wp_get_current_user();
|
2911 |
|
2960 |
}
|
2961 |
|
2962 |
|
2963 |
+
$ecwid_sso_script = <<<HTML
|
2964 |
<script data-cfasync="false" type="text/javascript">
|
2965 |
|
2966 |
var ecwid_sso_profile='$ecwid_sso_profile';
|
2978 |
);
|
2979 |
</script>
|
2980 |
HTML;
|
2981 |
+
|
2982 |
+
return $ecwid_sso_script;
|
2983 |
}
|
2984 |
|
2985 |
// from: http://www.php.net/manual/en/function.sha1.php#39492
|
includes/class-ecwid-store-page.php
CHANGED
@@ -466,6 +466,10 @@ class Ecwid_Store_Page {
|
|
466 |
$api = new Ecwid_Api_V3();
|
467 |
$profile = $api->get_store_profile();
|
468 |
|
|
|
|
|
|
|
|
|
469 |
if ( ecwid_is_demo_store() ) {
|
470 |
return;
|
471 |
}
|
466 |
$api = new Ecwid_Api_V3();
|
467 |
$profile = $api->get_store_profile();
|
468 |
|
469 |
+
if ( empty($profile) ) {
|
470 |
+
return;
|
471 |
+
}
|
472 |
+
|
473 |
if ( ecwid_is_demo_store() ) {
|
474 |
return;
|
475 |
}
|
includes/class-ecwid-stub-renderer.php
CHANGED
@@ -53,7 +53,14 @@ abstract class Ecwid_Stub_Renderer {
|
|
53 |
if ( is_array( $args ) ) {
|
54 |
ob_start();
|
55 |
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
require ECWID_TEMPLATES_DIR . '/widget-stub.tpl.php';
|
58 |
|
59 |
$contents = ob_get_contents();
|
53 |
if ( is_array( $args ) ) {
|
54 |
ob_start();
|
55 |
|
56 |
+
if ( $widget instanceof Ecwid_Widget_Product_Browser ) {
|
57 |
+
$message = $widget->widget_options['description'];
|
58 |
+
} else {
|
59 |
+
$message = $widget->name;
|
60 |
+
}
|
61 |
+
|
62 |
+
$classname = $widget->widget_options['classname'];
|
63 |
+
|
64 |
require ECWID_TEMPLATES_DIR . '/widget-stub.tpl.php';
|
65 |
|
66 |
$contents = ob_get_contents();
|
includes/gutenberg/class-ecwid-gutenberg-block-store.php
CHANGED
@@ -176,9 +176,11 @@ window.ec.config.chameleon.colors = $chameleon[colors];
|
|
176 |
JS;
|
177 |
}
|
178 |
$result .= <<<HTML
|
179 |
-
Ecwid
|
180 |
-
Ecwid.
|
181 |
-
|
|
|
|
|
182 |
</script>
|
183 |
HTML;
|
184 |
|
176 |
JS;
|
177 |
}
|
178 |
$result .= <<<HTML
|
179 |
+
if ( typeof Ecwid != 'undefined' ) {
|
180 |
+
Ecwid.OnAPILoaded.add(function() {
|
181 |
+
Ecwid.refreshConfig();
|
182 |
+
});
|
183 |
+
}
|
184 |
</script>
|
185 |
HTML;
|
186 |
|
includes/integrations/class-ecwid-integration-elementor.php
CHANGED
@@ -3,6 +3,13 @@
|
|
3 |
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-stub-renderer.php';
|
4 |
|
5 |
class Ecwid_Integration_Elementor extends Ecwid_Stub_Renderer {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
protected function _should_apply() {
|
7 |
return @$_REQUEST['action'] == 'elementor_ajax' || @$_REQUEST['action'] == 'elementor' || isset( $_GET['elementor-preview'] );
|
8 |
}
|
@@ -12,4 +19,25 @@ class Ecwid_Integration_Elementor extends Ecwid_Stub_Renderer {
|
|
12 |
}
|
13 |
}
|
14 |
|
15 |
-
$__ecwid_integration_elementor = new Ecwid_Integration_Elementor();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
require_once ECWID_PLUGIN_DIR . '/includes/class-ecwid-stub-renderer.php';
|
4 |
|
5 |
class Ecwid_Integration_Elementor extends Ecwid_Stub_Renderer {
|
6 |
+
|
7 |
+
public function __construct() {
|
8 |
+
parent::__construct();
|
9 |
+
|
10 |
+
$__ecwid_integration_elementor_widgets = new Ecwid_Integration_Elementor_Widgets();
|
11 |
+
}
|
12 |
+
|
13 |
protected function _should_apply() {
|
14 |
return @$_REQUEST['action'] == 'elementor_ajax' || @$_REQUEST['action'] == 'elementor' || isset( $_GET['elementor-preview'] );
|
15 |
}
|
19 |
}
|
20 |
}
|
21 |
|
22 |
+
$__ecwid_integration_elementor = new Ecwid_Integration_Elementor();
|
23 |
+
|
24 |
+
class Ecwid_Integration_Elementor_Widgets {
|
25 |
+
|
26 |
+
public function __construct() {
|
27 |
+
|
28 |
+
if( $this->_should_apply() ) {
|
29 |
+
add_action( 'widgets_init', array( $this, 'sidebar_widgets_init') );
|
30 |
+
}
|
31 |
+
}
|
32 |
+
|
33 |
+
public function sidebar_widgets_init() {
|
34 |
+
if( class_exists( 'Ecwid_Widget_Product_Browser' ) ) {
|
35 |
+
register_widget('Ecwid_Widget_Product_Browser');
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
protected function _should_apply() {
|
40 |
+
global $pagenow;
|
41 |
+
return !(is_admin() && $pagenow == 'widgets.php');
|
42 |
+
}
|
43 |
+
}
|
includes/integrations/class-ecwid-integration-gutenberg.php
CHANGED
@@ -312,9 +312,11 @@ window.ec.config.chameleon.colors = $chameleon[colors];
|
|
312 |
JS;
|
313 |
}
|
314 |
$result .= "
|
315 |
-
Ecwid
|
316 |
-
Ecwid.
|
317 |
-
|
|
|
|
|
318 |
</script>";
|
319 |
|
320 |
return $result;
|
312 |
JS;
|
313 |
}
|
314 |
$result .= "
|
315 |
+
if ( typeof Ecwid != 'undefined' ) {
|
316 |
+
Ecwid.OnAPILoaded.add(function() {
|
317 |
+
Ecwid.refreshConfig();
|
318 |
+
});
|
319 |
+
}
|
320 |
</script>";
|
321 |
|
322 |
return $result;
|
includes/themes/class-ecwid-theme-base.php
CHANGED
@@ -42,27 +42,27 @@ class Ecwid_Theme_Base {
|
|
42 |
$theme->create_scroller( $props );
|
43 |
}
|
44 |
|
45 |
-
if ( in_array( 'js', $props ) ) {
|
46 |
$theme->add_js();
|
47 |
}
|
48 |
|
49 |
-
if ( in_array( 'css', $props ) ) {
|
50 |
$theme->add_css();
|
51 |
}
|
52 |
|
53 |
-
if ( in_array( 'css-no-parent', $props ) ) {
|
54 |
$theme->add_css( '' );
|
55 |
}
|
56 |
|
57 |
-
if (in_array( 'historyjs_html4mode', $props ) ) {
|
58 |
$theme->historyjs_html4mode = true;
|
59 |
}
|
60 |
|
61 |
-
if (in_array( self::PROP_USE_JS_API_FOR_CATS_NAV_MENU, $props ) ) {
|
62 |
add_filter( Ecwid_Nav_Menus::FILTER_USE_JS_API_FOR_CATS_MENU, array( $theme, 'filter_use_js_api_for_cats_menu' ) );
|
63 |
}
|
64 |
|
65 |
-
if ( in_array( self::PROP_AJAX_DEFER_RENDERING, $props ) ) {
|
66 |
add_filter( Ecwid_Ajax_Defer_Renderer::FILTER_ENABLED, '__return_true' );
|
67 |
}
|
68 |
|
42 |
$theme->create_scroller( $props );
|
43 |
}
|
44 |
|
45 |
+
if ( in_array( 'js', $props, true ) ) {
|
46 |
$theme->add_js();
|
47 |
}
|
48 |
|
49 |
+
if ( in_array( 'css', $props, true ) ) {
|
50 |
$theme->add_css();
|
51 |
}
|
52 |
|
53 |
+
if ( in_array( 'css-no-parent', $props, true ) ) {
|
54 |
$theme->add_css( '' );
|
55 |
}
|
56 |
|
57 |
+
if (in_array( 'historyjs_html4mode', $props, true ) ) {
|
58 |
$theme->historyjs_html4mode = true;
|
59 |
}
|
60 |
|
61 |
+
if (in_array( self::PROP_USE_JS_API_FOR_CATS_NAV_MENU, $props, true ) ) {
|
62 |
add_filter( Ecwid_Nav_Menus::FILTER_USE_JS_API_FOR_CATS_MENU, array( $theme, 'filter_use_js_api_for_cats_menu' ) );
|
63 |
}
|
64 |
|
65 |
+
if ( in_array( self::PROP_AJAX_DEFER_RENDERING, $props, true ) ) {
|
66 |
add_filter( Ecwid_Ajax_Defer_Renderer::FILTER_ENABLED, '__return_true' );
|
67 |
}
|
68 |
|
includes/themes/class-ecwid-theme-divi.php
CHANGED
@@ -22,6 +22,8 @@ class Ecwid_Divi extends Ecwid_Theme_Base
|
|
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() {
|
@@ -35,6 +37,15 @@ class Ecwid_Divi extends Ecwid_Theme_Base
|
|
35 |
public function add_scriptjs_code() {
|
36 |
echo ecwid_get_scriptjs_code();
|
37 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
39 |
|
40 |
return new Ecwid_Divi();
|
22 |
if( isset( $_REQUEST['page_id'] ) && $this->is_visual_view() ) {
|
23 |
add_action( 'wp_footer', array( $this, 'add_scriptjs_code' ) );
|
24 |
}
|
25 |
+
|
26 |
+
add_filter( 'single_post_title', array( $this, 'single_post_title' ) , 10000, 2 );
|
27 |
}
|
28 |
|
29 |
public function is_wireframe_view() {
|
37 |
public function add_scriptjs_code() {
|
38 |
echo ecwid_get_scriptjs_code();
|
39 |
}
|
40 |
+
|
41 |
+
public function single_post_title( $post_title, $post ) {
|
42 |
+
$ecwid_title = _ecwid_get_seo_title();
|
43 |
+
if( !empty( $ecwid_title ) ) {
|
44 |
+
return $ecwid_title;
|
45 |
+
}
|
46 |
+
|
47 |
+
return $post_title;
|
48 |
+
}
|
49 |
}
|
50 |
|
51 |
return new Ecwid_Divi();
|
includes/widgets.php
CHANGED
@@ -12,6 +12,7 @@ include_once "widgets/class-ecwid-widget-vertical-categories-list.php";
|
|
12 |
include_once "widgets/class-ecwid-widget-random-product.php";
|
13 |
|
14 |
include_once "widgets/class-ecwid-widget-nsf-minicart.php";
|
|
|
15 |
|
16 |
|
17 |
if (ecwid_migrations_is_original_plugin_version_older_than('4.3')) {
|
12 |
include_once "widgets/class-ecwid-widget-random-product.php";
|
13 |
|
14 |
include_once "widgets/class-ecwid-widget-nsf-minicart.php";
|
15 |
+
include_once "widgets/class-ecwid-widget-product-browser.php";
|
16 |
|
17 |
|
18 |
if (ecwid_migrations_is_original_plugin_version_older_than('4.3')) {
|
includes/widgets/class-ecwid-widget-product-browser.php
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
|
4 |
+
require_once ECWID_PLUGIN_DIR . '/includes/widgets/class-ecwid-widget-base.php';
|
5 |
+
|
6 |
+
class Ecwid_Widget_Product_Browser extends Ecwid_Widget_Base {
|
7 |
+
|
8 |
+
protected $_hide_title = true;
|
9 |
+
|
10 |
+
function __construct() {
|
11 |
+
$widget_ops = array('classname' => 'widget_ecwid_product_browser', 'description' => __("Your store will be shown here", 'ecwid-shopping-cart') );
|
12 |
+
parent::__construct('ecwidproductbrowser', __('Online store', 'ecwid-shopping-cart'), $widget_ops);
|
13 |
+
|
14 |
+
}
|
15 |
+
|
16 |
+
function _render_widget_content( $args, $instance ) {
|
17 |
+
|
18 |
+
$html = '[ecwid widgets="productbrowser" default_category_id="0"]';
|
19 |
+
|
20 |
+
return $html;
|
21 |
+
}
|
22 |
+
|
23 |
+
}
|
js/admin-bar.js
CHANGED
@@ -21,7 +21,11 @@ jQuery(document).ready(function() {
|
|
21 |
is_subcategory = ( page.type == 'CATEGORY' && page.categoryId > 0 ),
|
22 |
new_url = url;
|
23 |
|
24 |
-
|
|
|
|
|
|
|
|
|
25 |
|
26 |
if( is_product || is_subcategory ) {
|
27 |
if( typeof $bar != 'undefined' ) {
|
21 |
is_subcategory = ( page.type == 'CATEGORY' && page.categoryId > 0 ),
|
22 |
new_url = url;
|
23 |
|
24 |
+
if( page.entryPage ) {
|
25 |
+
is_subcategory = false;
|
26 |
+
}
|
27 |
+
|
28 |
+
if( typeof text != 'undefined' ) new_text = text;
|
29 |
|
30 |
if( is_product || is_subcategory ) {
|
31 |
if( typeof $bar != 'undefined' ) {
|
lib/ecwid_api_v3.php
CHANGED
@@ -10,6 +10,7 @@ class Ecwid_Api_V3
|
|
10 |
const TOKEN_OPTION_NAME = 'ecwid_oauth_token';
|
11 |
|
12 |
const PROFILE_CACHE_NAME = 'apiv3_store_profile';
|
|
|
13 |
|
14 |
const OPTION_API_STATUS = 'ecwid_api_status';
|
15 |
const API_STATUS_OK = 'ok';
|
@@ -64,9 +65,9 @@ class Ecwid_Api_V3
|
|
64 |
{
|
65 |
$status = self::get_api_status();
|
66 |
|
67 |
-
if ( $status == self::API_STATUS_UNDEFINED ) {
|
68 |
return self::check_api_status();
|
69 |
-
}
|
70 |
|
71 |
return $status == self::API_STATUS_OK;
|
72 |
}
|
@@ -107,11 +108,16 @@ class Ecwid_Api_V3
|
|
107 |
return self::set_api_status( self::API_STATUS_ERROR_TOKEN );
|
108 |
}
|
109 |
|
110 |
-
$
|
111 |
-
|
112 |
-
if
|
|
|
|
|
|
|
|
|
|
|
113 |
return self::set_api_status( self::API_STATUS_OK );
|
114 |
-
}
|
115 |
|
116 |
$transports = stream_get_transports();
|
117 |
|
@@ -572,7 +578,7 @@ class Ecwid_Api_V3
|
|
572 |
|
573 |
$result = $this->_do_put( $url, $params );
|
574 |
|
575 |
-
if ( @$result['response']['code'] == '200' ) {
|
576 |
return $result;
|
577 |
}
|
578 |
|
10 |
const TOKEN_OPTION_NAME = 'ecwid_oauth_token';
|
11 |
|
12 |
const PROFILE_CACHE_NAME = 'apiv3_store_profile';
|
13 |
+
const UPDATE_STATS_CACHE_NAME = 'apiv3_store_latest_stats';
|
14 |
|
15 |
const OPTION_API_STATUS = 'ecwid_api_status';
|
16 |
const API_STATUS_OK = 'ok';
|
65 |
{
|
66 |
$status = self::get_api_status();
|
67 |
|
68 |
+
// if ( $status == self::API_STATUS_UNDEFINED ) {
|
69 |
return self::check_api_status();
|
70 |
+
// }
|
71 |
|
72 |
return $status == self::API_STATUS_OK;
|
73 |
}
|
108 |
return self::set_api_status( self::API_STATUS_ERROR_TOKEN );
|
109 |
}
|
110 |
|
111 |
+
$update_stats = EcwidPlatform::cache_get( self::UPDATE_STATS_CACHE_NAME );
|
112 |
+
|
113 |
+
if( !$update_stats ) {
|
114 |
+
$update_stats = $api->get_store_update_stats();
|
115 |
+
EcwidPlatform::cache_set( self::UPDATE_STATS_CACHE_NAME, $update_stats, 60 * 5 );
|
116 |
+
}
|
117 |
+
|
118 |
+
if ( $update_stats ) {
|
119 |
return self::set_api_status( self::API_STATUS_OK );
|
120 |
+
}
|
121 |
|
122 |
$transports = stream_get_transports();
|
123 |
|
578 |
|
579 |
$result = $this->_do_put( $url, $params );
|
580 |
|
581 |
+
if( !is_wp_error($result) && @$result['response']['code'] == '200' ) {
|
582 |
return $result;
|
583 |
}
|
584 |
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ 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.8.
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
@@ -153,6 +153,12 @@ You can use Ecwid’s built-in import tools to copy your store products from any
|
|
153 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
154 |
|
155 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
= 6.8.6 - Sep 11, 2019 =
|
157 |
- Improvements for the "Store page speedup" feature.
|
158 |
- Fixed update date synchronization of goods for the "Integrate with the site search" tool.
|
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.8.7
|
7 |
|
8 |
Powerful, easy to use ecommerce shopping cart. Sell on Facebook and Instagram. iPhone & Android apps. Superb support. Free plan available.
|
9 |
|
153 |
* [Ecwid eCommerce Forums](https://www.ecwid.com/forums/forumdisplay.php?f=19)
|
154 |
|
155 |
== Changelog ==
|
156 |
+
= 6.8.7 - Sep 30, 2019 =
|
157 |
+
- **New "Online store" widget in the Elementor page builder.** Ecwid works fine with all popular page builders in WordPress: Gutenberg, Elementor, Divi, Beaver builder and others. We constantly improve and add the compatibility features. In this update, we added a new "Online store" widget to Elementor editor toolbox. It allows you to add storefront to your ecommerce website pages easier in Elementor.
|
158 |
+
- Meta tags improvement for products and categories ecommerce pages created with Divi builder.
|
159 |
+
- Fix for the "Cannot use object of type WP_Error as array" PHP warning message appearing on some sites.
|
160 |
+
- Minor fixes and improvements.
|
161 |
+
|
162 |
= 6.8.6 - Sep 11, 2019 =
|
163 |
- Improvements for the "Store page speedup" feature.
|
164 |
- Fixed update date synchronization of goods for the "Integrate with the site search" tool.
|
templates/cache_log.php
CHANGED
@@ -89,6 +89,10 @@ update_option('ecwid_cache_log', $cache );
|
|
89 |
|
90 |
$cache = get_option('ecwid_cache_log');
|
91 |
|
|
|
|
|
|
|
|
|
92 |
foreach ($cache as $item) {
|
93 |
echo '<div class="cache_log">';
|
94 |
$ts = strftime( '%H:%M:%S %D', $item['timestamp'] );
|
89 |
|
90 |
$cache = get_option('ecwid_cache_log');
|
91 |
|
92 |
+
if( !$cache ){
|
93 |
+
$cache = array();
|
94 |
+
}
|
95 |
+
|
96 |
foreach ($cache as $item) {
|
97 |
echo '<div class="cache_log">';
|
98 |
$ts = strftime( '%H:%M:%S %D', $item['timestamp'] );
|
templates/debug.php
CHANGED
@@ -48,11 +48,16 @@
|
|
48 |
<div><?php echo $theme->get('ThemeURI'); ?></div>
|
49 |
</div>
|
50 |
|
51 |
-
<h2>Remote get test</h2>
|
52 |
-
<div><?php var_export(@$remote_get_results); ?></div>
|
53 |
-
|
54 |
<h2>Api V3 profile test</h2>
|
55 |
-
<div
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
|
57 |
<h2>Error log</h2>
|
58 |
<div>
|
48 |
<div><?php echo $theme->get('ThemeURI'); ?></div>
|
49 |
</div>
|
50 |
|
|
|
|
|
|
|
51 |
<h2>Api V3 profile test</h2>
|
52 |
+
<div>
|
53 |
+
<?php
|
54 |
+
if( is_wp_error($api_v3_profile_results) ) {
|
55 |
+
echo 'WP_Error: ' . $api_v3_profile_results->get_error_message();
|
56 |
+
} else {
|
57 |
+
echo 'Response status: ' . implode(' ', $api_v3_profile_results['response']);
|
58 |
+
}
|
59 |
+
?>
|
60 |
+
</div>
|
61 |
|
62 |
<h2>Error log</h2>
|
63 |
<div>
|
templates/widget-stub.tpl.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<div class="ecwid-widget-stub">
|
2 |
<div class="ecwid-widget-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67
|
3 |
C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55
|
4 |
C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03
|
1 |
+
<div class="ecwid-widget-stub <?php echo $classname;?>">
|
2 |
<div class="ecwid-widget-stub-header"><svg aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" class="dashicon" width="20" height="20" viewBox="0 0 20 20"><path d="M15.32,15.58c-0.37,0-0.66,0.3-0.66,0.67c0,0.37,0.3,0.67,0.66,0.67c0.37,0,0.67-0.3,0.67-0.67
|
3 |
C15.98,15.88,15.69,15.58,15.32,15.58z M15.45,0H4.55C2.04,0,0,2.04,0,4.55v10.91C0,17.97,2.04,20,4.55,20h10.91c2.51,0,4.55-2.04,4.55-4.55V4.55
|
4 |
C20,2.04,17.96,0,15.45,0z M12.97,4.94C13.54,4.94,14,5.4,14,5.96s-0.46,1.03-1.03,1.03c-0.57,0-1.03-0.46-1.03-1.03
|