Ecwid Ecommerce Shopping Cart - Version 4.6.1

Version Description

  • The latest update (v 4.6) had a bug in the sidebar widgets (search box and recently viewed products). The widgets did not display and generated error/warning messages on the sites. We fixed that.
  • Another issue with the latest update is related to the legacy Ecwid shortcodes ([ecwid_script], [ecwid_productbrowser] etc). On the old installations (2 years old and more), the warning messages appeared you might notice them on the store page. We now fixed this and everything should be fine, all Ecwid plugin installations work well.
Download this release

Release Info

Developer Ecwid
Plugin Icon 128x128 Ecwid Ecommerce Shopping Cart
Version 4.6.1
Comparing to
See all releases

Code changes from version 4.6 to 4.6.1

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: 4.6
9
  Author URI: http://www.ecwid.com?source=wporg
10
  */
11
 
@@ -71,6 +71,11 @@ if ( is_admin() ){
71
  add_filter('tiny_mce_before_init', 'ecwid_tinymce_init');
72
  add_action('admin_post_ecwid_get_debug', 'ecwid_get_debug_file');
73
  } else {
 
 
 
 
 
74
  add_shortcode('ecwid_script', 'ecwid_script_shortcode');
75
  add_shortcode('ecwid_product', 'ecwid_product_shortcode');
76
  add_action('init', 'ecwid_backward_compatibility');
@@ -260,8 +265,13 @@ add_action('wp_ajax_nopriv_ecwid_get_product_info', 'ecwid_ajax_get_product_info
260
 
261
  function ecwid_enqueue_frontend() {
262
 
263
- wp_enqueue_script('jquery-ui-widget');
264
- wp_register_script('ecwid-products-list-js', ECWID_PLUGIN_URL . 'js/products-list.js', array('jquery', 'jquery-ui-widget'), get_option('ecwid_plugin_version'));
 
 
 
 
 
265
  wp_register_style('ecwid-products-list-css', ECWID_PLUGIN_URL . 'css/products-list.css', array(), get_option('ecwid_plugin_version'));
266
  wp_enqueue_style('ecwid-css', ECWID_PLUGIN_URL . 'css/frontend.css',array(), get_option('ecwid_plugin_version'));
267
  wp_enqueue_style('ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option('ecwid_plugin_version'));
@@ -1053,10 +1063,10 @@ function ecwid_content_started($content)
1053
 
1054
  function ecwid_wrap_shortcode_content($content, $name, $attrs)
1055
  {
1056
- return "<!-- Ecwid shopping cart plugin v 4.6 --><!-- noptimize -->"
1057
  . ecwid_get_scriptjs_code(@$attrs['lang'])
1058
  . "<div class=\"ecwid-shopping-cart-$name\">$content</div>"
1059
- . "<!-- /noptimize --><!-- END Ecwid Shopping Cart v 4.6 -->";
1060
  }
1061
 
1062
  function ecwid_get_scriptjs_code($force_lang = null) {
@@ -1092,6 +1102,204 @@ function ecwid_script_shortcode($params) {
1092
  return ecwid_wrap_shortcode_content($content, 'script', $params);
1093
  }
1094
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1095
  function ecwid_product_shortcode($shortcode_attributes) {
1096
 
1097
  $attributes = shortcode_atts(
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: 4.6.1
9
  Author URI: http://www.ecwid.com?source=wporg
10
  */
11
 
71
  add_filter('tiny_mce_before_init', 'ecwid_tinymce_init');
72
  add_action('admin_post_ecwid_get_debug', 'ecwid_get_debug_file');
73
  } else {
74
+ add_shortcode('ecwid_script', 'ecwid_script_shortcode');
75
+ add_shortcode('ecwid_minicart', 'ecwid_minicart_shortcode');
76
+ add_shortcode('ecwid_searchbox', 'ecwid_searchbox_shortcode');
77
+ add_shortcode('ecwid_categories', 'ecwid_categories_shortcode');
78
+ add_shortcode('ecwid_product', 'ecwid_product_shortcode');
79
  add_shortcode('ecwid_script', 'ecwid_script_shortcode');
80
  add_shortcode('ecwid_product', 'ecwid_product_shortcode');
81
  add_action('init', 'ecwid_backward_compatibility');
265
 
266
  function ecwid_enqueue_frontend() {
267
 
268
+ if (!wp_script_is('jquery-ui-widget')) {
269
+ wp_enqueue_script('jquery-ui-widget', includes_url() . 'js/jquery/ui/widget.min.js', array('jquery'));
270
+ }
271
+
272
+ wp_register_script('ecwid-products-list-js', ECWID_PLUGIN_URL . 'js/products-list.js', array('jquery-ui-widget'), get_option('ecwid_plugin_version'));
273
+ wp_enqueue_script('ecwid-products-list-js');
274
+
275
  wp_register_style('ecwid-products-list-css', ECWID_PLUGIN_URL . 'css/products-list.css', array(), get_option('ecwid_plugin_version'));
276
  wp_enqueue_style('ecwid-css', ECWID_PLUGIN_URL . 'css/frontend.css',array(), get_option('ecwid_plugin_version'));
277
  wp_enqueue_style('ecwid-fonts-css', ECWID_PLUGIN_URL . 'css/fonts.css', array(), get_option('ecwid_plugin_version'));
1063
 
1064
  function ecwid_wrap_shortcode_content($content, $name, $attrs)
1065
  {
1066
+ return "<!-- Ecwid shopping cart plugin v 4.6.1 --><!-- noptimize -->"
1067
  . ecwid_get_scriptjs_code(@$attrs['lang'])
1068
  . "<div class=\"ecwid-shopping-cart-$name\">$content</div>"
1069
+ . "<!-- /noptimize --><!-- END Ecwid Shopping Cart v 4.6.1 -->";
1070
  }
1071
 
1072
  function ecwid_get_scriptjs_code($force_lang = null) {
1102
  return ecwid_wrap_shortcode_content($content, 'script', $params);
1103
  }
1104
 
1105
+ function ecwid_minicart_shortcode($attributes) {
1106
+ $params = shortcode_atts(
1107
+ array(
1108
+ 'layout' => null,
1109
+ 'is_ecwid_shortcode' => false,
1110
+ 'lang' => null
1111
+ ), $attributes
1112
+ );
1113
+ $layout = $params['layout'];
1114
+ if (!in_array($layout, array('', 'attachToCategories', 'floating', 'Mini', 'MiniAttachToProductBrowser'), true)) {
1115
+ $layout = 'MiniAttachToProductBrowser';
1116
+ }
1117
+ if ($params['is_ecwid_shortcode']) {
1118
+ // it is a part of the ecwid shortcode, we need to show it anyways
1119
+ $ecwid_enable_minicart = $ecwid_show_categories = true;
1120
+ } else {
1121
+ // it is a ecwid_minicart widget that works based on appearance settings
1122
+ $ecwid_enable_minicart = get_option('ecwid_enable_minicart');
1123
+ $ecwid_show_categories = get_option('ecwid_show_categories');
1124
+ }
1125
+ $result = '';
1126
+ if (!empty($ecwid_enable_minicart) && !empty($ecwid_show_categories)) {
1127
+ $result = <<<EOT
1128
+ <script data-cfasync="false" type="text/javascript"> xMinicart("style=","layout=$layout"); </script>
1129
+ EOT;
1130
+ }
1131
+ $result = apply_filters('ecwid_minicart_shortcode_content', $result);
1132
+ if (!empty($result)) {
1133
+ $result = ecwid_wrap_shortcode_content($result, 'minicart', $params);
1134
+ }
1135
+ return $result;
1136
+ }
1137
+ function ecwid_get_search_js_code() {
1138
+ if (get_option('ecwid_use_new_search', false)) {
1139
+ return 'xSearch("style=");';
1140
+ } else {
1141
+ return 'xSearchPanel("style=")';
1142
+ }
1143
+ }
1144
+
1145
+ function ecwid_searchbox_shortcode($attributes) {
1146
+
1147
+ $params = shortcode_atts(
1148
+ array(
1149
+ 'is_ecwid_shortcode' => false,
1150
+ 'lang' => null
1151
+ ), $attributes
1152
+ );
1153
+ $ecwid_show_search_box = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_search_box');
1154
+ $result = '';
1155
+ if (!empty($ecwid_show_search_box)) {
1156
+ $code = ecwid_get_search_js_code();
1157
+ $result = <<<EOT
1158
+ <script data-cfasync="false" type="text/javascript"> $code </script>
1159
+ EOT;
1160
+ }
1161
+ $result = apply_filters('ecwid_search_shortcode_content', $result);
1162
+ if (!empty($result)) {
1163
+ $result = ecwid_wrap_shortcode_content($result, 'search', $params);
1164
+ }
1165
+
1166
+ return $result;
1167
+ }
1168
+
1169
+ function ecwid_categories_shortcode($attributes) {
1170
+
1171
+ $params = shortcode_atts(
1172
+ array(
1173
+ 'is_ecwid_shortcode' => false,
1174
+ 'lang' => null
1175
+ ), $attributes
1176
+ );
1177
+ $ecwid_show_categories = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_categories');
1178
+ $result = '';
1179
+ if (!empty($ecwid_show_categories)) {
1180
+ if (get_option('ecwid_use_new_horizontal_categories')) {
1181
+ $store_id = get_ecwid_store_id();
1182
+ $ver = get_option('ecwid_plugin_version');
1183
+ $result = <<<HTML
1184
+ <script data-cfasync="false" type="text/javascript"> xCategoriesV2("style="); </script>
1185
+ HTML;
1186
+ } else {
1187
+ $result = <<<EOT
1188
+ <script data-cfasync="false" type="text/javascript"> xCategories("style="); </script>
1189
+ EOT;
1190
+ }
1191
+ }
1192
+ $result = apply_filters('ecwid_categories_shortcode_content', $result);
1193
+ if (!empty($result)) {
1194
+ $result = ecwid_wrap_shortcode_content($result, 'categories', $params);
1195
+ }
1196
+
1197
+ return $result;
1198
+ }
1199
+
1200
+
1201
+ function ecwid_productbrowser_shortcode($shortcode_params) {
1202
+ if (current_user_can('manage_options')) {
1203
+ Ecwid_Kissmetrics::record('storefrontIsOpened');
1204
+ }
1205
+
1206
+ $atts = shortcode_atts(
1207
+ array(
1208
+ 'categories_per_row' => false,
1209
+ 'grid' => false,
1210
+ 'list' => false,
1211
+ 'table' => false,
1212
+ 'search_view' => false,
1213
+ 'category_view' => false
1214
+ ), $shortcode_params
1215
+ );
1216
+ $grid = explode(',', $atts['grid']);
1217
+ if (count($grid) == 2) {
1218
+ $atts['grid_rows'] = intval($grid[0]);
1219
+ $atts['grid_cols'] = intval($grid[1]);
1220
+ } else {
1221
+ list($atts['grid_rows'], $atts['grid_cols']) = array(false, false);
1222
+ }
1223
+ $store_id = get_ecwid_store_id();
1224
+ $list_of_views = array('list','grid','table');
1225
+ $ecwid_pb_categoriesperrow = $atts['categories_per_row'] ? $atts['categories_per_row'] : get_option('ecwid_pb_categoriesperrow');
1226
+ $ecwid_pb_productspercolumn_grid = $atts['grid_rows'] ? $atts['grid_rows'] : get_option('ecwid_pb_productspercolumn_grid');
1227
+ $ecwid_pb_productsperrow_grid = $atts['grid_cols'] ? $atts['grid_cols'] : get_option('ecwid_pb_productsperrow_grid');
1228
+ $ecwid_pb_productsperpage_list = $atts['list'] ? $atts['list'] : get_option('ecwid_pb_productsperpage_list');
1229
+ $ecwid_pb_productsperpage_table = $atts['table'] ? $atts['table'] : get_option('ecwid_pb_productsperpage_table');
1230
+ $ecwid_pb_defaultview = $atts['category_view'] ? $atts['category_view'] : get_option('ecwid_pb_defaultview');
1231
+ $ecwid_pb_searchview = $atts['search_view'] ? $atts['search_view'] : get_option('ecwid_pb_searchview');
1232
+ $ecwid_mobile_catalog_link = get_option('ecwid_mobile_catalog_link');
1233
+ $ecwid_default_category_id =
1234
+ !empty($shortcode_params) && array_key_exists('default_category_id', $shortcode_params)
1235
+ ? $shortcode_params['default_category_id']
1236
+ : get_option('ecwid_default_category_id');
1237
+ $defaults = ecwid_get_default_pb_size();
1238
+ if (empty($ecwid_pb_categoriesperrow)) {
1239
+ $ecwid_pb_categoriesperrow = 3;
1240
+ }
1241
+ if (empty($ecwid_pb_productspercolumn_grid)) {
1242
+ $ecwid_pb_productspercolumn_grid = $defaults['grid_rows'];
1243
+ }
1244
+ if (empty($ecwid_pb_productsperrow_grid)) {
1245
+ $ecwid_pb_productsperrow_grid = $defaults['grid_columns'];
1246
+ }
1247
+ if (empty($ecwid_pb_productsperpage_list)) {
1248
+ $ecwid_pb_productsperpage_list = $defaults['list_rows'];
1249
+ }
1250
+ if (empty($ecwid_pb_productsperpage_table)) {
1251
+ $ecwid_pb_productsperpage_table = $defaults['list_rows'];
1252
+ }
1253
+ if (empty($ecwid_pb_defaultview) || !in_array($ecwid_pb_defaultview, $list_of_views)) {
1254
+ $ecwid_pb_defaultview = 'grid';
1255
+ }
1256
+ if (empty($ecwid_pb_searchview) || !in_array($ecwid_pb_searchview, $list_of_views)) {
1257
+ $ecwid_pb_searchview = 'list';
1258
+ }
1259
+ if (empty($ecwid_default_category_id)) {
1260
+ $ecwid_default_category_str = '';
1261
+ } else {
1262
+ $ecwid_default_category_str = ',"defaultCategoryId='. $ecwid_default_category_id .'"';
1263
+ }
1264
+ $plain_content = '';
1265
+ if (ecwid_can_display_html_catalog()) {
1266
+ $params = ecwid_parse_escaped_fragment($_GET['_escaped_fragment_']);
1267
+ include_once ECWID_PLUGIN_DIR . 'lib/ecwid_product_api.php';
1268
+ include_once ECWID_PLUGIN_DIR . 'lib/ecwid_catalog.php';
1269
+ $page_url = get_page_link();
1270
+ $catalog = new EcwidCatalog($store_id, $page_url);
1271
+ if (isset($params['mode']) && !empty($params['mode'])) {
1272
+ if ($params['mode'] == 'product') {
1273
+ $plain_content = $catalog->get_product($params['id']);
1274
+ $url = ecwid_get_product_url(ecwid_new_product_api()->get_product($params['id']));
1275
+ } elseif ($params['mode'] == 'category') {
1276
+ $plain_content = $catalog->get_category($params['id']);
1277
+ $ecwid_default_category_str = ',"defaultCategoryId=' . $params['id'] . '"';
1278
+ $url = ecwid_get_category_url(ecwid_new_product_api()->get_category($params['id']));
1279
+ }
1280
+ } else {
1281
+ $plain_content = $catalog->get_category(intval($ecwid_default_category_id));
1282
+ if (empty($plain_content)) {
1283
+ $plain_content = $catalog->get_category(0);
1284
+ } else {
1285
+ $url = ecwid_get_category_url(ecwid_new_product_api()->get_category($params['id']));
1286
+ }
1287
+ }
1288
+ if ($url) {
1289
+ $parsed = parse_url($url);
1290
+ $plain_content .= '<script data-cfasync="false" type="text/javascript"> if (!document.location.hash) document.location.hash = "'. $parsed['fragment'] . '";</script>';
1291
+ }
1292
+ }
1293
+ $s = '';
1294
+ $s = <<<EOT
1295
+ <div id="ecwid-store-$store_id">
1296
+ {$plain_content}
1297
+ </div>
1298
+ <script data-cfasync="false" type="text/javascript"> xProductBrowser("categoriesPerRow=$ecwid_pb_categoriesperrow","views=grid($ecwid_pb_productspercolumn_grid,$ecwid_pb_productsperrow_grid) list($ecwid_pb_productsperpage_list) table($ecwid_pb_productsperpage_table)","categoryView=$ecwid_pb_defaultview","searchView=$ecwid_pb_searchview","style="$ecwid_default_category_str, "id=ecwid-store-$store_id");</script>
1299
+ EOT;
1300
+ return ecwid_wrap_shortcode_content($s, 'product-browser', $shortcode_params);
1301
+ }
1302
+
1303
  function ecwid_product_shortcode($shortcode_attributes) {
1304
 
1305
  $attributes = shortcode_atts(
includes/shortcodes/class-ecwid-shortcode-base.php CHANGED
@@ -14,7 +14,7 @@ abstract class Ecwid_Shortcode_Base {
14
 
15
  public function __construct( $params ) {
16
 
17
- if ($params['lang']) {
18
  $this->_lang = $params['lang'];
19
  }
20
  $this->_process_params( $params );
14
 
15
  public function __construct( $params ) {
16
 
17
+ if (isset($params['lang']) && $params['lang']) {
18
  $this->_lang = $params['lang'];
19
  }
20
  $this->_process_params( $params );
includes/shortcodes/class-ecwid-shortcode-categories.php CHANGED
@@ -5,7 +5,7 @@ require_once ECWID_SHORTCODES_DIR . '/class-ecwid-shortcode-base.php';
5
  class Ecwid_Shortcode_Categories extends Ecwid_Shortcode_Base {
6
 
7
  protected function _process_params( $params = array() ) {
8
- $this->_should_render = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_categories');
9
  }
10
 
11
  public function get_shortcode_name() {
5
  class Ecwid_Shortcode_Categories extends Ecwid_Shortcode_Base {
6
 
7
  protected function _process_params( $params = array() ) {
8
+ $this->_should_render = (isset($params['is_ecwid_shortcode']) && $params['is_ecwid_shortcode']) ? true : get_option('ecwid_show_categories');
9
  }
10
 
11
  public function get_shortcode_name() {
includes/shortcodes/class-ecwid-shortcode-search.php CHANGED
@@ -5,7 +5,7 @@ require_once ECWID_SHORTCODES_DIR . '/class-ecwid-shortcode-base.php';
5
  class Ecwid_Shortcode_Search extends Ecwid_Shortcode_Base {
6
 
7
  protected function _process_params( $params = array() ) {
8
- $this->_should_render = $params['is_ecwid_shortcode'] ? true : get_option('ecwid_show_search_box');
9
  }
10
 
11
  public function get_shortcode_name() {
5
  class Ecwid_Shortcode_Search extends Ecwid_Shortcode_Base {
6
 
7
  protected function _process_params( $params = array() ) {
8
+ $this->_should_render = (isset($params['is_ecwid_shortcode']) && $params['is_ecwid_shortcode']) ? true : get_option('ecwid_show_search_box');
9
  }
10
 
11
  public function get_shortcode_name() {
includes/widgets/class-ecwid-widget-recently-viewed.php CHANGED
@@ -20,7 +20,7 @@ class Ecwid_Widget_Recently_Viewed extends WP_Widget {
20
 
21
  function widget($args, $instance) {
22
 
23
- wp_enqueue_script('ecwid-recently-viewed-js', ECWID_PLUGIN_URL . 'js/recently-viewed.js', array('jquery', 'utils', 'ecwid-products-list-js'), get_option('ecwid_plugin_version'));
24
  wp_enqueue_style('ecwid-products-list-css');
25
  wp_enqueue_style('ecwid-recently-viewed-css', ECWID_PLUGIN_URL . 'css/recently-viewed.css', array(), get_option('ecwid_plugin_version'));
26
  extract($args);
20
 
21
  function widget($args, $instance) {
22
 
23
+ wp_enqueue_script('ecwid-recently-viewed-js', ECWID_PLUGIN_URL . 'js/recently-viewed.js', array('ecwid-products-list-js'), get_option('ecwid_plugin_version'));
24
  wp_enqueue_style('ecwid-products-list-css');
25
  wp_enqueue_style('ecwid-recently-viewed-css', ECWID_PLUGIN_URL . 'css/recently-viewed.css', array(), get_option('ecwid_plugin_version'));
26
  extract($args);
lib/ecwid_requests.php CHANGED
@@ -64,7 +64,9 @@ abstract class Ecwid_Http {
64
 
65
  $data = $this->_do_request($url, $args);
66
 
67
- if ( is_null( $data ) || $this->is_error ) return null;
 
 
68
 
69
  $this->_process_data($data);
70
 
@@ -131,7 +133,7 @@ abstract class Ecwid_Http {
131
 
132
 
133
  protected static function _post_transport($name) {
134
- $data = EcwidPlatform::get('get_transport_' . $name);
135
 
136
  if (!empty($data) && @$data['use_default']) {
137
  return self::_post_default_transport();
@@ -170,7 +172,7 @@ abstract class Ecwid_Http {
170
 
171
  protected static function _detect_post_transport($name, $url, $params) {
172
 
173
- foreach (self::_get_transports() as $transport_class) {
174
  $transport = new $transport_class($name, $url, $params);
175
 
176
  $result = $transport->do_request();
@@ -468,4 +470,4 @@ class Ecwid_HTTP_Post_Fopen extends Ecwid_Http_Post {
468
  }
469
 
470
 
471
- }
64
 
65
  $data = $this->_do_request($url, $args);
66
 
67
+ if ( is_null( $data ) || $this->is_error ) {
68
+ return null;
69
+ }
70
 
71
  $this->_process_data($data);
72
 
133
 
134
 
135
  protected static function _post_transport($name) {
136
+ $data = EcwidPlatform::get('get_post_transport_' . $name);
137
 
138
  if (!empty($data) && @$data['use_default']) {
139
  return self::_post_default_transport();
172
 
173
  protected static function _detect_post_transport($name, $url, $params) {
174
 
175
+ foreach (self::_post_transports() as $transport_class) {
176
  $transport = new $transport_class($name, $url, $params);
177
 
178
  $result = $transport->do_request();
470
  }
471
 
472
 
473
+ }
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.6
6
- Stable tag: 4.6
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,10 @@ 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
  = 4.6 =
153
  - **Compatibility with the "Contact form 7 designer" plugin** . When installed, the "Contact form 7 designer" plugin adds its own code to the <html> and <body> tags on the page on every page of the site. This conflicted with Ecwid storefront styles. We fixed that – now if you use the both plugin t the same time, your site pages styles should work fine. Note: this plugin is not the same as the popular "Contact form 7". Ecwid ecommerce functionality works well with the latter, so don't worry if you use it on your site.
154
  - **Fix for a store links issue in the "Flora" theme by Wyde.** Users with "Flora" theme on their sites reported that there are glitches in the way Ecwid online store links behave in that theme. We fixed that – Ecwid now works well with "Flora".
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.6
6
+ Stable tag: 4.6.1
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
+ = 4.6.1 =
153
+ - The latest update (v 4.6) had a bug in the sidebar widgets (search box and recently viewed products). The widgets did not display and generated error/warning messages on the sites. We fixed that.
154
+ - Another issue with the latest update is related to the legacy Ecwid shortcodes ([ecwid_script], [ecwid_productbrowser] etc). On the old installations (2 years old and more), the warning messages appeared – you might notice them on the store page. We now fixed this and everything should be fine, all Ecwid plugin installations work well.
155
+
156
  = 4.6 =
157
  - **Compatibility with the "Contact form 7 designer" plugin** . When installed, the "Contact form 7 designer" plugin adds its own code to the <html> and <body> tags on the page on every page of the site. This conflicted with Ecwid storefront styles. We fixed that – now if you use the both plugin t the same time, your site pages styles should work fine. Note: this plugin is not the same as the popular "Contact form 7". Ecwid ecommerce functionality works well with the latter, so don't worry if you use it on your site.
158
  - **Fix for a store links issue in the "Flora" theme by Wyde.** Users with "Flora" theme on their sites reported that there are glitches in the way Ecwid online store links behave in that theme. We fixed that – Ecwid now works well with "Flora".