WooCommerce Stock Manager - Version 2.6.0

Version Description

WooCommerce 5.2.2, 5.3.0 compatible, Strengthen security during import process [Thanks to: Chloe Chamberland | Wordfence], POT file. Recommended upgrade.

Download this release

Release Info

Developer storeapps
Plugin Icon 128x128 WooCommerce Stock Manager
Version 2.6.0
Comparing to
See all releases

Code changes from version 2.5.7 to 2.6.0

admin/assets/css/admin.css CHANGED
@@ -604,3 +604,9 @@ cursor: default;
604
  width:40px;
605
  height:auto;
606
  }
 
 
 
 
 
 
604
  width:40px;
605
  height:auto;
606
  }
607
+
608
+ /* Notice for import file upload failed */
609
+ .wsm-upload-failed {
610
+ color: red;
611
+ opacity: 0.8;
612
+ }
admin/class-stock-manager-admin.php CHANGED
@@ -603,7 +603,7 @@ class Stock_Manager_Admin {
603
 
604
  $is_wsm_admin = $this->is_wsm_admin_page();
605
  if ( $is_wsm_admin ) {
606
- $wsm_text = 'Installed Version: '. Stock_Manager::VERSION . '!';
607
  ?>
608
  <style type="text/css">
609
  #wpfooter {
603
 
604
  $is_wsm_admin = $this->is_wsm_admin_page();
605
  if ( $is_wsm_admin ) {
606
+ $wsm_text = 'Installed Version: '. Stock_Manager::VERSION;
607
  ?>
608
  <style type="text/css">
609
  #wpfooter {
admin/views/class-storeapps-marketplace.php CHANGED
@@ -10,8 +10,12 @@ class WSM_StoreApps_Marketplace {
10
  public static function init() {
11
  ?>
12
  <style type="text/css">
13
- .update-nag {
14
- display: none;
 
 
 
 
15
  }
16
  .wrap.about-wrap.wsm-marketplace {
17
  margin: 0 auto;
@@ -20,91 +24,91 @@ class WSM_StoreApps_Marketplace {
20
  body {
21
  background-color: white;
22
  }
23
- #wsm_promo_msg,
24
- #wpfooter {
25
- display: none !important;
26
- }
27
  .wsm-marketplace .addons-banner-block-items {
28
  display: flex;
29
- height: 25em;
30
- -webkit-box-orient: horizontal;
31
- -webkit-box-direction: normal;
32
- -webkit-flex-direction: row;
33
- flex-direction: row;
34
- -webkit-flex-wrap: wrap;
35
- flex-wrap: wrap;
36
- -webkit-justify-content: space-around;
37
- justify-content: space-around;
38
- margin: 0 -10px 2em -10px;
39
  }
40
  .wsm-marketplace .addons-banner-block-item {
41
- border: 1px solid #e6e6e6;
42
- border-radius: 3px;
43
- -webkit-box-flex: 1;
44
- -webkit-flex: 1;
45
- flex: 1;
46
- margin: 1em;
47
- min-width: 200px;
48
- width: 30%
49
  }
50
  .wsm-marketplace .addons-banner-block-item-icon {
51
  background: #f7f7f7;
52
  height: 143px
53
  }
54
  .wsm-marketplace .addons-banner-block-item-content {
55
- display: -webkit-box;
56
- display: -webkit-flex;
57
- display: flex;
58
- -webkit-box-orient: vertical;
59
- -webkit-box-direction: normal;
60
- -webkit-flex-direction: column;
61
- flex-direction: column;
62
- height: 184px;
63
- -webkit-box-pack: justify;
64
- -webkit-justify-content: space-between;
65
- justify-content: space-between;
66
- padding: 24px
67
  }
68
  .wsm-marketplace .addons-banner-block-item-content h3 {
69
- margin-top: 0
 
 
 
 
70
  }
71
  .wsm-marketplace .addons-banner-block-item-content p {
72
  margin: 0 0 auto;
73
- min-height: 12em;
74
  }
75
  .wsm-marketplace .addons-wcs-banner-block-image .addons-img {
76
  max-height: 86px;
77
  max-width: 97px
78
  }
79
  .wsm-marketplace .addons-banner-block-item-icon {
80
- display: -webkit-box;
81
- display: -webkit-flex;
82
- display: flex;
83
- -webkit-box-pack: center;
84
- -webkit-justify-content: center;
85
- justify-content: center;
86
  }
87
  .wsm-marketplace .addons-button {
88
- border-radius: 3px;
89
- cursor: pointer;
90
- display: block;
91
- height: 37px;
92
- line-height: 37px;
93
- text-align: center;
94
- text-decoration: none;
95
- width: 124px
96
  }
97
  .wsm-marketplace .addons-button-solid {
98
- background-color: #4fad43;
99
- color: #fff;
100
  }
101
  .wsm-marketplace .addons-banner-block-item-icon img {
102
- height: 62px;
103
- width: 62px;
104
  }
105
  .wsm-marketplace .addons-button-solid:hover {
106
- color: #fff;
107
- opacity: .8
108
  }
109
  .wsm-marketplace .addons-banner-block-item-content h3 {
110
  font-weight: bold !important;
@@ -115,7 +119,7 @@ class WSM_StoreApps_Marketplace {
115
  }
116
  .wsm-marketplace .products-header {
117
  text-align: center;
118
- padding: 0 0 3em;
119
  }
120
  .wsm-marketplace .products-header h1 {
121
  margin: 1em;
@@ -129,6 +133,7 @@ class WSM_StoreApps_Marketplace {
129
  margin-bottom: 1.6em;
130
  }
131
  .wsm-marketplace .intro {
 
132
  font-size: 1.416em;
133
  letter-spacing: -0.018em;
134
  color: rgba(0, 0, 0, 0.75);
@@ -136,16 +141,13 @@ class WSM_StoreApps_Marketplace {
136
  .clr-a {
137
  color: #f42267 !important;
138
  }
139
- .update-nag , .error, .updated {
140
- display:none;
141
- }
142
  .wsm-marketplace .button.button-hero {
143
  color: #FFF!important;
144
- border-color: #5850ec !important;
145
- background: #5850ec!important;
146
- box-shadow: 0 1px 0 #5850ec;
147
- font-size: 1em;
148
- font-weight: bold;
149
  }
150
  </style>
151
  <div class="wrap about-wrap wsm-marketplace">
@@ -153,7 +155,6 @@ class WSM_StoreApps_Marketplace {
153
  <h1 class="products-header__title page-title">Our reliable WooCommerce Plugins</h1>
154
  <div class="page-description">
155
  <h2>Get StoreApps' WooCommerce plugins to sell more, manage your store, retain more customers and make better decisions.</h2>
156
- <p class="intro">More than 250,000 people use our plugins. Easy to setup and deliver quick results.</p>
157
  </div>
158
  </header>
159
  <div class="addons-banner-block-items">
@@ -164,6 +165,22 @@ class WSM_StoreApps_Marketplace {
164
  <a class="addons-button addons-button-solid" href="https://www.storeapps.org/product/smart-manager/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">Learn more</a>
165
  </div>
166
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  <div class="addons-banner-block-item">
168
  <div class="addons-banner-block-item-content">
169
  <h3>Bulk Variations Manager</h3>
@@ -174,11 +191,19 @@ class WSM_StoreApps_Marketplace {
174
  <div class="addons-banner-block-item">
175
  <div class="addons-banner-block-item-content">
176
  <h3>Smart Offers</h3>
177
- <p>Grow your sales on autopilot. Create powerful WooCommerce upsells, downsells, cross-sells, BOGO, order bumps, one-time offers, backend offers, <strong>sales funnels</strong> and more. <strong>Measure offers, optimize and target them</strong> on your website to increase conversions & maximize profits.</p>
178
  <a class="addons-button addons-button-solid" href="https://www.storeapps.org/product/smart-offers/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">Learn more</a>
179
  </div>
180
  </div>
 
 
 
 
 
 
 
181
  </div>
 
182
  <p style="text-align: center;">
183
  <a class="button button-hero" href="https://www.storeapps.org/woocommerce-plugins/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">View all our 20+ plugins</a>
184
  </p>
10
  public static function init() {
11
  ?>
12
  <style type="text/css">
13
+ .update-nag,
14
+ .error,
15
+ .updated,
16
+ #wsm_promo_msg,
17
+ #wpfooter {
18
+ display: none !important;
19
  }
20
  .wrap.about-wrap.wsm-marketplace {
21
  margin: 0 auto;
24
  body {
25
  background-color: white;
26
  }
 
 
 
 
27
  .wsm-marketplace .addons-banner-block-items {
28
  display: flex;
29
+ height: 22em;
30
+ -webkit-box-orient: horizontal;
31
+ -webkit-box-direction: normal;
32
+ -webkit-flex-direction: row;
33
+ flex-direction: row;
34
+ -webkit-flex-wrap: wrap;
35
+ flex-wrap: wrap;
36
+ -webkit-justify-content: space-around;
37
+ justify-content: space-around;
38
+ margin: 0 -10px 2em -10px;
39
  }
40
  .wsm-marketplace .addons-banner-block-item {
41
+ border: 1px solid #e6e6e6;
42
+ border-radius: 3px;
43
+ -webkit-box-flex: 1;
44
+ -webkit-flex: 1;
45
+ flex: 1;
46
+ margin: 1em;
47
+ min-width: 200px;
48
+ width: 30%
49
  }
50
  .wsm-marketplace .addons-banner-block-item-icon {
51
  background: #f7f7f7;
52
  height: 143px
53
  }
54
  .wsm-marketplace .addons-banner-block-item-content {
55
+ display: -webkit-box;
56
+ display: -webkit-flex;
57
+ display: flex;
58
+ -webkit-box-orient: vertical;
59
+ -webkit-box-direction: normal;
60
+ -webkit-flex-direction: column;
61
+ flex-direction: column;
62
+ height: 184px;
63
+ -webkit-box-pack: justify;
64
+ -webkit-justify-content: space-between;
65
+ justify-content: space-between;
66
+ padding: 24px;
67
  }
68
  .wsm-marketplace .addons-banner-block-item-content h3 {
69
+ margin-top: 0
70
+ }
71
+ .wsm-marketplace .addons-banner-block-item-content h3 sup {
72
+ color: red;
73
+ opacity: 0.7;
74
  }
75
  .wsm-marketplace .addons-banner-block-item-content p {
76
  margin: 0 0 auto;
77
+ min-height: 10em;
78
  }
79
  .wsm-marketplace .addons-wcs-banner-block-image .addons-img {
80
  max-height: 86px;
81
  max-width: 97px
82
  }
83
  .wsm-marketplace .addons-banner-block-item-icon {
84
+ display: -webkit-box;
85
+ display: -webkit-flex;
86
+ display: flex;
87
+ -webkit-box-pack: center;
88
+ -webkit-justify-content: center;
89
+ justify-content: center;
90
  }
91
  .wsm-marketplace .addons-button {
92
+ border-radius: 3px;
93
+ cursor: pointer;
94
+ display: block;
95
+ height: 37px;
96
+ line-height: 37px;
97
+ text-align: center;
98
+ text-decoration: none;
99
+ width: 124px
100
  }
101
  .wsm-marketplace .addons-button-solid {
102
+ background-color: #4fad43;
103
+ color: #fff;
104
  }
105
  .wsm-marketplace .addons-banner-block-item-icon img {
106
+ height: 62px;
107
+ width: 62px;
108
  }
109
  .wsm-marketplace .addons-button-solid:hover {
110
+ color: #fff;
111
+ opacity: .8
112
  }
113
  .wsm-marketplace .addons-banner-block-item-content h3 {
114
  font-weight: bold !important;
119
  }
120
  .wsm-marketplace .products-header {
121
  text-align: center;
122
+ padding: 0 0 2em;
123
  }
124
  .wsm-marketplace .products-header h1 {
125
  margin: 1em;
133
  margin-bottom: 1.6em;
134
  }
135
  .wsm-marketplace .intro {
136
+ text-align: center;
137
  font-size: 1.416em;
138
  letter-spacing: -0.018em;
139
  color: rgba(0, 0, 0, 0.75);
141
  .clr-a {
142
  color: #f42267 !important;
143
  }
 
 
 
144
  .wsm-marketplace .button.button-hero {
145
  color: #FFF!important;
146
+ border-color: #5850ec !important;
147
+ background: #5850ec!important;
148
+ box-shadow: 0 1px 0 #5850ec;
149
+ font-size: 1em;
150
+ font-weight: bold;
151
  }
152
  </style>
153
  <div class="wrap about-wrap wsm-marketplace">
155
  <h1 class="products-header__title page-title">Our reliable WooCommerce Plugins</h1>
156
  <div class="page-description">
157
  <h2>Get StoreApps' WooCommerce plugins to sell more, manage your store, retain more customers and make better decisions.</h2>
 
158
  </div>
159
  </header>
160
  <div class="addons-banner-block-items">
165
  <a class="addons-button addons-button-solid" href="https://www.storeapps.org/product/smart-manager/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">Learn more</a>
166
  </div>
167
  </div>
168
+ <div class="addons-banner-block-item">
169
+ <div class="addons-banner-block-item-content">
170
+ <h3>Offermative <sup>Free</sup></h3>
171
+ <p>A plugin for dynamic discount pricing, related product recommendations, upsells and funnels for WooCommerce.</p>
172
+ <a class="addons-button addons-button-solid" href="https://wordpress.org/plugins/offermative-discount-pricing-related-products-upsell-funnels-for-woocommerce/" target="_blank" rel="noopener">Learn more</a>
173
+ </div>
174
+ </div>
175
+ <div class="addons-banner-block-item">
176
+ <div class="addons-banner-block-item-content">
177
+ <h3>Smart Coupons</h3>
178
+ <p>Create and send gift cards, bulk generate coupons, restrict coupons based on location, payment methods, auto-apply coupons using URLs, import-export and a lot more. <em>The official WooCommerce coupons extension.</em></p>
179
+ <a class="addons-button addons-button-solid" href="https://woocommerce.com/products/smart-coupons/" target="_blank" rel="noopener">Learn more </a>
180
+ </div>
181
+ </div>
182
+ </div>
183
+ <div class="addons-banner-block-items">
184
  <div class="addons-banner-block-item">
185
  <div class="addons-banner-block-item-content">
186
  <h3>Bulk Variations Manager</h3>
191
  <div class="addons-banner-block-item">
192
  <div class="addons-banner-block-item-content">
193
  <h3>Smart Offers</h3>
194
+ <p>Create powerful WooCommerce upsells, downsells, cross-sells, BOGO, order bumps, one-time, backend offers, <strong>sales funnels</strong> and more. <strong>Measure, optimize and target offers</strong> on your website to increase conversions & maximize profits.</p>
195
  <a class="addons-button addons-button-solid" href="https://www.storeapps.org/product/smart-offers/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">Learn more</a>
196
  </div>
197
  </div>
198
+ <div class="addons-banner-block-item">
199
+ <div class="addons-banner-block-item-content">
200
+ <h3>Email Customizer Pro</h3>
201
+ <p>Readymade, high-converting email templates to build your brand identity. Customize email text, change colors, add images and social media links, upsell products from within the email.</p>
202
+ <a class="addons-button addons-button-solid" href="https://woocommerce.com/products/email-customizer-pro/" target="_blank" rel="noopener">Learn more</a>
203
+ </div>
204
+ </div>
205
  </div>
206
+ <p class="intro">More than 250,000 people use our plugins. Easy to setup and deliver quick results.</p>
207
  <p style="text-align: center;">
208
  <a class="button button-hero" href="https://www.storeapps.org/woocommerce-plugins/?utm_source=wsm&utm_medium=in_app_marketplace&utm_campaign=in_app_marketplace" target="_blank" rel="noopener">View all our 20+ plugins</a>
209
  </p>
admin/views/import-export.php CHANGED
@@ -20,7 +20,6 @@ function stockautoUTF($s){
20
  return iconv('ISO-8859-2', 'UTF-8', $s);
21
  }
22
 
23
-
24
  ?>
25
  <script type="text/javascript">
26
  jQuery( function() {
@@ -58,7 +57,7 @@ function stockautoUTF($s){
58
  function wsm_export_products( offset ) {
59
  var data = {
60
  'action' : 'wsm_get_products_or_export',
61
- 'offset' : offset
62
  };
63
  jQuery.post(ajaxurl, data, function( response ) {
64
  var result = jQuery.parseJSON( response );
@@ -104,138 +103,145 @@ function stockautoUTF($s){
104
 
105
  <h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
106
 
107
- <div class="t-col-6">
108
- <div class="toret-box box-info">
109
- <div class="box-header">
110
- <h3 class="box-title"><?php _e('Import','woocommerce-stock-manager'); ?></h3>
111
- </div>
112
- <div class="box-body">
113
- <h4><?php _e('You can upload csv file, with your stock data. ','woocommerce-stock-manager'); ?></h4>
114
- <p><?php _e('CSV file must be in this format, or you can export file with exist data and edit them. ','woocommerce-stock-manager'); ?></p>
115
- <p><?php _e('If you have a lot of products and export/import not working, increase memory limit.. ','woocommerce-stock-manager'); ?></p>
116
- <h3><?php _e('File format','woocommerce-stock-manager'); ?></h3>
117
- <table class="table-bordered">
118
- <tr>
119
- <td><?php _e('ID','woocommerce-stock-manager'); ?></td>
120
- <td><?php _e('SKU','woocommerce-stock-manager'); ?></td>
121
- <td><?php _e('Product name','woocommerce-stock-manager'); ?></td>
122
- <td><?php _e('Manage stock','woocommerce-stock-manager'); ?></td>
123
- <td><?php _e('Stock status','woocommerce-stock-manager'); ?></td>
124
- <td><?php _e('Backorders','woocommerce-stock-manager'); ?></td>
125
- <td><?php _e('Stock','woocommerce-stock-manager'); ?></td>
126
- <td><?php _e('Product type','woocommerce-stock-manager'); ?></td>
127
- <td><?php _e('Parent ID','woocommerce-stock-manager'); ?></td>
128
- </tr>
129
- <tr>
130
- <td><?php _e('123','woocommerce-stock-manager'); ?></td>
131
- <td><?php _e('abc111','woocommerce-stock-manager'); ?></td>
132
- <td><?php _e('T-shirt','woocommerce-stock-manager'); ?></td>
133
- <td><?php _e('yes','woocommerce-stock-manager'); ?></td>
134
- <td><?php _e('instock','woocommerce-stock-manager'); ?></td>
135
- <td><?php _e('yes','woocommerce-stock-manager'); ?></td>
136
- <td><?php _e('10','woocommerce-stock-manager'); ?></td>
137
- <td><?php _e('simple','woocommerce-stock-manager'); ?></td>
138
- <td></td>
139
- </tr>
140
- </table>
141
-
142
- <ul>
143
- <li><strong><?php _e('ID','woocommerce-stock-manager'); ?></strong> <?php _e('product id, required. Neccessary for import and export.','woocommerce-stock-manager'); ?></li>
144
- <li><strong><?php _e('SKU','woocommerce-stock-manager'); ?></strong> <?php _e('product unique identificator.','woocommerce-stock-manager'); ?></li>
145
- <li><strong><?php _e('Manage stock','woocommerce-stock-manager'); ?></strong> <?php _e('values: "yes", "notify", "no". If is empty "no" will be save.','woocommerce-stock-manager'); ?></li>
146
- <li><strong><?php _e('Stock status','woocommerce-stock-manager'); ?></strong> <?php _e('values: "instock", "outofstock". If is empty "outofstock" will be save.','woocommerce-stock-manager'); ?></li>
147
- <li><strong><?php _e('Backorders','woocommerce-stock-manager'); ?></strong> <?php _e('values: "yes", "notify", "no". If is empty "no" will be save.','woocommerce-stock-manager'); ?></li>
148
- <li><strong><?php _e('Stock','woocommerce-stock-manager'); ?></strong> <?php _e('quantity value. If is empty, 0 will be save.','woocommerce-stock-manager'); ?></li>
149
- </ul>
150
-
151
-
152
- <form method="post" action="" class="setting-form" enctype="multipart/form-data">
153
- <table class="table-bordered">
154
- <tr>
155
- <th><?php _e('Upload csv file', 'woocommerce-stock-manager'); ?></th>
156
- <td>
157
- <input type="file" name="uploadFile">
158
- </td>
159
- </tr>
160
- </table>
161
- <div class="clear"></div>
162
- <input type="hidden" name="upload" value="ok" />
163
- <input type="submit" class="btn btn-info" value="<?php _e('Upload', 'woocommerce-stock-manager'); ?>" />
164
- </form>
165
- <?php
166
- if(isset($_POST['upload'])){
167
-
168
- $target_dir = STOCKDIR.'admin/views/upload/';
169
- $target_dir = $target_dir . basename( $_FILES["uploadFile"]["name"]);
170
- $uploadOk = true;
171
-
172
- if (move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_dir)) {
173
-
174
- echo __('The file '. basename( $_FILES['uploadFile']['name']). ' has been uploaded.','woocommerce-stock-manager');
175
-
176
- $row = 1;
177
- if (($handle = fopen($target_dir, "r")) !== FALSE) {
178
-
179
- while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
180
- $num = count($data);
181
-
182
- $product_id = stockautoUTF($data[0]);
183
- $sku = stockautoUTF($data[1]);
184
- $manage_stock = stockautoUTF($data[3]);
185
- $stock_status = stockautoUTF($data[4]);
186
- $backorders = stockautoUTF($data[5]);
187
- $stock = stockautoUTF($data[6]);
188
-
189
- if($row != 1){
190
-
191
- if( !empty( $product_id ) ){
192
-
193
- $values = array(
194
- 'sku' => $sku,
195
- 'manage_stock' => $manage_stock,
196
- 'stock_status' => $stock_status,
197
- 'backorders' => $backorders,
198
- 'stock' => $stock
199
  );
200
 
201
- WCM_Save::save_one_item( $values, $product_id );
202
-
203
- echo '<p>'.__('Product with ID: '.$product_id.' was updated.','woocommerce-stock-manager').'</p>';
204
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  }
206
  }
207
- $row++;
208
-
209
- }
210
- fclose($handle);
211
- }
212
-
213
- }else{
214
- echo '<p>'.__('Sorry, there was an error uploading your file.','woocommerce-stock-manager').'</p>';
215
- }
216
-
217
- }
218
- ?>
219
- </div>
220
- </div>
221
- </div>
222
-
223
-
224
 
225
- <div class="t-col-6">
226
- <div class="toret-box box-info">
227
- <div class="box-header">
228
- <h3 class="box-title"><?php _e('Export','woocommerce-stock-manager'); ?></h3>
 
 
 
 
 
 
 
 
229
  </div>
230
- <div class="box-body">
231
- <h4><?php _e('You can download csv file, with your stock data. ','woocommerce-stock-manager'); ?></h4>
232
- <p><a href="#" class="btn btn-danger product-export"><?php _e('Create export file','woocommerce-stock-manager'); ?></a></p>
233
- <div class="export-output" style="display:none;"></div>
234
- <div id="csv" style="display:none;"></div>
235
- </div>
236
- </div>
237
- </div>
238
-
239
 
240
  </div>
241
  <?php
20
  return iconv('ISO-8859-2', 'UTF-8', $s);
21
  }
22
 
 
23
  ?>
24
  <script type="text/javascript">
25
  jQuery( function() {
57
  function wsm_export_products( offset ) {
58
  var data = {
59
  'action' : 'wsm_get_products_or_export',
60
+ 'offset' : offset
61
  };
62
  jQuery.post(ajaxurl, data, function( response ) {
63
  var result = jQuery.parseJSON( response );
103
 
104
  <h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
105
 
106
+ <div class="t-col-6">
107
+ <div class="toret-box box-info">
108
+ <div class="box-header">
109
+ <h3 class="box-title"><?php _e('Import','woocommerce-stock-manager'); ?></h3>
110
+ </div>
111
+ <div class="box-body">
112
+ <h4><?php _e('You can upload csv file, with your stock data. ','woocommerce-stock-manager'); ?></h4>
113
+ <p><?php _e('CSV file must be in this format, or you can export file with exist data and edit them. ','woocommerce-stock-manager'); ?></p>
114
+ <p><?php _e('If you have a lot of products and export/import not working, increase memory limit.. ','woocommerce-stock-manager'); ?></p>
115
+ <h3><?php _e('File format','woocommerce-stock-manager'); ?></h3>
116
+ <table class="table-bordered">
117
+ <tr>
118
+ <td><?php _e('ID','woocommerce-stock-manager'); ?></td>
119
+ <td><?php _e('SKU','woocommerce-stock-manager'); ?></td>
120
+ <td><?php _e('Product name','woocommerce-stock-manager'); ?></td>
121
+ <td><?php _e('Manage stock','woocommerce-stock-manager'); ?></td>
122
+ <td><?php _e('Stock status','woocommerce-stock-manager'); ?></td>
123
+ <td><?php _e('Backorders','woocommerce-stock-manager'); ?></td>
124
+ <td><?php _e('Stock','woocommerce-stock-manager'); ?></td>
125
+ <td><?php _e('Product type','woocommerce-stock-manager'); ?></td>
126
+ <td><?php _e('Parent ID','woocommerce-stock-manager'); ?></td>
127
+ </tr>
128
+ <tr>
129
+ <td><?php _e('123','woocommerce-stock-manager'); ?></td>
130
+ <td><?php _e('abc111','woocommerce-stock-manager'); ?></td>
131
+ <td><?php _e('T-shirt','woocommerce-stock-manager'); ?></td>
132
+ <td><?php _e('yes','woocommerce-stock-manager'); ?></td>
133
+ <td><?php _e('instock','woocommerce-stock-manager'); ?></td>
134
+ <td><?php _e('yes','woocommerce-stock-manager'); ?></td>
135
+ <td><?php _e('10','woocommerce-stock-manager'); ?></td>
136
+ <td><?php _e('simple','woocommerce-stock-manager'); ?></td>
137
+ <td></td>
138
+ </tr>
139
+ </table>
140
+ <ul>
141
+ <li><strong><?php _e('ID','woocommerce-stock-manager'); ?></strong> <?php _e('product id, required. Neccessary for import and export.','woocommerce-stock-manager'); ?></li>
142
+ <li><strong><?php _e('SKU','woocommerce-stock-manager'); ?></strong> <?php _e('product unique identificator.','woocommerce-stock-manager'); ?></li>
143
+ <li><strong><?php _e('Manage stock','woocommerce-stock-manager'); ?></strong> <?php _e('values: "yes", "notify", "no". If is empty "no" will be save.','woocommerce-stock-manager'); ?></li>
144
+ <li><strong><?php _e('Stock status','woocommerce-stock-manager'); ?></strong> <?php _e('values: "instock", "outofstock". If is empty "outofstock" will be save.','woocommerce-stock-manager'); ?></li>
145
+ <li><strong><?php _e('Backorders','woocommerce-stock-manager'); ?></strong> <?php _e('values: "yes", "notify", "no". If is empty "no" will be save.','woocommerce-stock-manager'); ?></li>
146
+ <li><strong><?php _e('Stock','woocommerce-stock-manager'); ?></strong> <?php _e('quantity value. If is empty, 0 will be save.','woocommerce-stock-manager'); ?></li>
147
+ </ul>
148
+ <form method="post" action="" class="setting-form" enctype="multipart/form-data">
149
+ <table class="table-bordered">
150
+ <tr>
151
+ <th><?php _e('Upload csv file', 'woocommerce-stock-manager'); ?></th>
152
+ <td>
153
+ <input type="file" name="uploadFile">
154
+ </td>
155
+ </tr>
156
+ </table>
157
+ <div class="clear"></div>
158
+ <input type="hidden" name="upload" value="ok" />
159
+ <?php wp_nonce_field( 'sa-wsm-import', 'sa_wsm_nonce' ); ?>
160
+ <input type="submit" class="btn btn-info" value="<?php _e('Upload', 'woocommerce-stock-manager'); ?>" />
161
+ </form>
162
+ <?php
163
+ if( isset( $_POST['upload'] ) && ! empty( $_FILES ) ) {
164
+ $post_sa_wsm_nonce = ( isset( $_POST['sa_wsm_nonce'] ) ) ? sanitize_text_field( wp_unslash( $_POST['sa_wsm_nonce'] ) ) : '';
165
+ if ( ! empty( $post_sa_wsm_nonce ) && wp_verify_nonce( $post_sa_wsm_nonce, 'sa-wsm-import' ) ) {
166
+ // Allowed filetypes for import.
167
+ $valid_filetypes = array(
168
+ 'csv' => 'text/csv',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  );
170
 
171
+ // Retrieve the file type from the file name.
172
+ $filetype = wp_check_filetype( sanitize_text_field( wp_unslash( $_FILES['uploadFile']['name'] ) ), $valid_filetypes );
173
+
174
+ // Check if file type is valid.
175
+ if ( in_array( $filetype['type'], $valid_filetypes, true ) ) {
176
+ $target_dir = STOCKDIR.'admin/views/upload/';
177
+ $target_dir = $target_dir . basename( $_FILES["uploadFile"]["name"]);
178
+ $uploadOk = true;
179
+
180
+ if ( move_uploaded_file($_FILES["uploadFile"]["tmp_name"], $target_dir) ) {
181
+
182
+ echo __( 'The file '. basename( $_FILES['uploadFile']['name']). ' has been uploaded.','woocommerce-stock-manager' );
183
+
184
+ $row = 1;
185
+ if (($handle = fopen($target_dir, "r")) !== FALSE) {
186
+
187
+ while (($data = fgetcsv($handle, 1000, ',')) !== FALSE) {
188
+ $num = count($data);
189
+
190
+ $product_id = stockautoUTF($data[0]);
191
+ $sku = stockautoUTF($data[1]);
192
+ $manage_stock = stockautoUTF($data[3]);
193
+ $stock_status = stockautoUTF($data[4]);
194
+ $backorders = stockautoUTF($data[5]);
195
+ $stock = stockautoUTF($data[6]);
196
+
197
+ if($row != 1){
198
+ if( !empty( $product_id ) ) {
199
+ $values = array(
200
+ 'sku' => $sku,
201
+ 'manage_stock' => $manage_stock,
202
+ 'stock_status' => $stock_status,
203
+ 'backorders' => $backorders,
204
+ 'stock' => $stock
205
+ );
206
+
207
+ WCM_Save::save_one_item( $values, $product_id );
208
+ echo '<p>' . __( 'Product with ID: '.$product_id.' was updated.','woocommerce-stock-manager' ) . '</p>';
209
+ }
210
+ }
211
+ $row++;
212
+
213
+ }
214
+ fclose($handle);
215
+ }
216
+
217
+ } else {
218
+ echo '<p>' . __( 'Sorry, there was an error uploading your file.','woocommerce-stock-manager' ) . '</p>';
219
+ }
220
+ } else {
221
+ echo '<h3 class="wsm-upload-failed">' . esc_html__( 'Error: You have not uploaded a CSV file.', 'woocommerce-stock-manager' ) . '</h3>';
222
+ }
223
+ } else {
224
+ wp_die( 'Could not verify nonce' );
225
  }
226
  }
227
+ ?>
228
+ </div>
229
+ </div>
230
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
231
 
232
+ <div class="t-col-6">
233
+ <div class="toret-box box-info">
234
+ <div class="box-header">
235
+ <h3 class="box-title"><?php _e('Export','woocommerce-stock-manager'); ?></h3>
236
+ </div>
237
+ <div class="box-body">
238
+ <h4><?php _e('You can download csv file, with your stock data. ','woocommerce-stock-manager'); ?></h4>
239
+ <p><a href="#" class="btn btn-danger product-export"><?php _e('Create export file','woocommerce-stock-manager'); ?></a></p>
240
+ <div class="export-output" style="display:none;"></div>
241
+ <div id="csv" style="display:none;"></div>
242
+ </div>
243
+ </div>
244
  </div>
 
 
 
 
 
 
 
 
 
245
 
246
  </div>
247
  <?php
languages/woocommerce-stock-manager.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the WooCommerce Stock Manager plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce Stock Manager 2.5.7\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-stock-manager\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2021-04-03T11:16:52+05:30\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: woocommerce-stock-manager\n"
@@ -34,54 +34,14 @@ msgstr ""
34
  msgid "https://www.storeapps.org/"
35
  msgstr ""
36
 
37
- #: admin/class-stock-manager-admin.php:169
38
- #: admin/includes/wcm-class-table.php:541
39
- msgid "No shipping class"
40
- msgstr ""
41
-
42
- #: admin/class-stock-manager-admin.php:175
43
- msgid "Taxable"
44
- msgstr ""
45
-
46
- #: admin/class-stock-manager-admin.php:176
47
- msgid "Shipping only"
48
- msgstr ""
49
-
50
- #: admin/class-stock-manager-admin.php:177
51
- msgctxt "Tax status"
52
- msgid "None"
53
- msgstr ""
54
-
55
- #: admin/class-stock-manager-admin.php:180
56
- #: admin/includes/wcm-class-table.php:634
57
- #: admin/includes/wcm-class-table.php:664
58
- msgid "No"
59
- msgstr ""
60
-
61
- #: admin/class-stock-manager-admin.php:181
62
- #: admin/includes/wcm-class-table.php:665
63
- msgid "Notify"
64
- msgstr ""
65
-
66
- #: admin/class-stock-manager-admin.php:182
67
- #: admin/includes/wcm-class-table.php:633
68
- #: admin/includes/wcm-class-table.php:666
69
- msgid "Yes"
70
- msgstr ""
71
-
72
- #. translators: %1$s & %2$s: Opening & closing strong tag. %3$s: link to WooCommerce Stock Manager on WordPress.org
73
- #: admin/class-stock-manager-admin.php:589
74
- msgid "If you are liking %1$sWooCommerce Stock Manager%2$s, please rate us %3$s. A huge thanks from StoreApps in advance!"
75
- msgstr ""
76
-
77
  #: admin/includes/config.php:6
78
  #: admin/includes/config.php:16
79
  #: admin/includes/config.php:21
80
  #: admin/includes/config.php:26
81
  #: admin/includes/config.php:31
82
  #: admin/includes/wcm-class-table.php:245
83
- #: admin/views/import-export.php:120
84
- #: admin/views/import-export.php:144
85
  #: admin/views/log.php:29
86
  #: admin/assets/src/components/ProductFilter.js:64
87
  #: admin/assets/src/components/Products.js:99
@@ -91,8 +51,8 @@ msgstr ""
91
 
92
  #: admin/includes/config.php:11
93
  #: admin/includes/wcm-class-table.php:255
94
- #: admin/views/import-export.php:119
95
- #: admin/views/import-export.php:143
96
  #: admin/views/log.php:30
97
  #: admin/assets/src/components/Products.js:93
98
  msgid "ID"
@@ -132,14 +92,14 @@ msgid "Name"
132
  msgstr ""
133
 
134
  #: admin/includes/wcm-class-table.php:275
135
- #: admin/views/import-export.php:126
136
  #: admin/views/log.php:32
137
  #: admin/assets/src/components/Products.js:97
138
  msgid "Product type"
139
  msgstr ""
140
 
141
  #: admin/includes/wcm-class-table.php:285
142
- #: admin/views/import-export.php:127
143
  #: admin/views/log.php:33
144
  msgid "Parent ID"
145
  msgstr ""
@@ -165,20 +125,20 @@ msgid "Weight"
165
  msgstr ""
166
 
167
  #: admin/includes/wcm-class-table.php:325
 
 
168
  #: admin/views/components/filter.php:40
169
  #: admin/views/components/filter.php:112
170
- #: admin/views/import-export.php:122
171
- #: admin/views/import-export.php:145
172
  #: admin/assets/src/components/Products.js:139
173
  #: admin/assets/src/components/ScreenOptions.js:68
174
  msgid "Manage stock"
175
  msgstr ""
176
 
177
  #: admin/includes/wcm-class-table.php:335
 
 
178
  #: admin/views/components/filter.php:46
179
  #: admin/views/components/filter.php:114
180
- #: admin/views/import-export.php:123
181
- #: admin/views/import-export.php:146
182
  #: admin/assets/src/components/ProductFilter.js:112
183
  #: admin/assets/src/components/Products.js:142
184
  #: admin/assets/src/components/ScreenOptions.js:73
@@ -186,20 +146,20 @@ msgid "Stock status"
186
  msgstr ""
187
 
188
  #: admin/includes/wcm-class-table.php:345
 
 
189
  #: admin/views/components/filter.php:116
190
- #: admin/views/import-export.php:124
191
- #: admin/views/import-export.php:147
192
  #: admin/assets/src/components/Products.js:145
193
  #: admin/assets/src/components/ScreenOptions.js:78
194
  msgid "Backorders"
195
  msgstr ""
196
 
197
  #: admin/includes/wcm-class-table.php:355
198
- #: admin/views/components/filter.php:118
199
- #: admin/views/import-export.php:125
200
- #: admin/views/import-export.php:148
201
  #: admin/views/log-history.php:38
202
  #: admin/views/log.php:34
 
203
  #: admin/assets/src/components/Products.js:148
204
  #: admin/assets/src/components/ScreenOptions.js:83
205
  msgid "Stock"
@@ -225,6 +185,23 @@ msgstr ""
225
  msgid "Same as parent"
226
  msgstr ""
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  #: admin/includes/wcm-class-table.php:648
229
  #: admin/views/components/filter.php:47
230
  msgid "In stock"
@@ -239,189 +216,120 @@ msgstr ""
239
  msgid "On backorder"
240
  msgstr ""
241
 
242
- #: admin/views/components/filter.php:3
243
- msgid "Filter"
244
- msgstr ""
245
-
246
- #: admin/views/components/filter.php:4
247
- #: admin/views/components/filter.php:63
248
- msgid "Search by sku"
249
- msgstr ""
250
-
251
- #: admin/views/components/filter.php:5
252
- #: admin/views/components/filter.php:73
253
- msgid "Search by product name"
254
- msgstr ""
255
-
256
- #: admin/views/components/filter.php:6
257
- msgid "Display setting"
258
- msgstr ""
259
-
260
- #: admin/views/components/filter.php:15
261
- msgid "Order by"
262
- msgstr ""
263
-
264
- #: admin/views/components/filter.php:16
265
- msgid "Product name ASC"
266
- msgstr ""
267
-
268
- #: admin/views/components/filter.php:17
269
- msgid "Product name DESC"
270
- msgstr ""
271
-
272
- #: admin/views/components/filter.php:18
273
- msgid "SKU ASC"
274
- msgstr ""
275
-
276
- #: admin/views/components/filter.php:19
277
- msgid "SKU DESC"
278
- msgstr ""
279
-
280
- #: admin/views/components/filter.php:23
281
- msgid "Simple products"
282
- msgstr ""
283
-
284
- #: admin/views/components/filter.php:24
285
- msgid "Products with variation"
286
- msgstr ""
287
-
288
- #: admin/views/components/filter.php:28
289
- msgid "All categories"
290
- msgstr ""
291
-
292
- #: admin/views/components/filter.php:41
293
- msgid "No manage stock"
294
- msgstr ""
295
-
296
- #: admin/views/components/filter.php:42
297
- msgid "Yes manage stock"
298
- msgstr ""
299
-
300
- #: admin/views/components/filter.php:52
301
- msgid "Show"
302
- msgstr ""
303
-
304
- #: admin/views/components/filter.php:54
305
- msgid "Clear filter"
306
- msgstr ""
307
-
308
- #: admin/views/components/filter.php:101
309
- msgid "Hide or display cells"
310
- msgstr ""
311
-
312
- #: admin/views/components/filter.php:108
313
- msgid "Sales price"
314
- msgstr ""
315
-
316
- #: admin/views/components/filter.php:142
317
- msgid "Save setting"
318
  msgstr ""
319
 
320
- #: admin/views/import-export.php:110
321
  msgid "Import"
322
  msgstr ""
323
 
324
- #: admin/views/import-export.php:113
325
  msgid "You can upload csv file, with your stock data. "
326
  msgstr ""
327
 
328
- #: admin/views/import-export.php:114
329
  msgid "CSV file must be in this format, or you can export file with exist data and edit them. "
330
  msgstr ""
331
 
332
- #: admin/views/import-export.php:115
333
  msgid "If you have a lot of products and export/import not working, increase memory limit.. "
334
  msgstr ""
335
 
336
- #: admin/views/import-export.php:116
337
  msgid "File format"
338
  msgstr ""
339
 
340
- #: admin/views/import-export.php:121
341
  #: admin/assets/src/components/Products.js:115
342
  #: admin/assets/src/components/ScreenOptions.js:48
343
  msgid "Product name"
344
  msgstr ""
345
 
346
- #: admin/views/import-export.php:130
347
  msgid "123"
348
  msgstr ""
349
 
350
- #: admin/views/import-export.php:131
351
  msgid "abc111"
352
  msgstr ""
353
 
354
- #: admin/views/import-export.php:132
355
  msgid "T-shirt"
356
  msgstr ""
357
 
358
- #: admin/views/import-export.php:133
359
- #: admin/views/import-export.php:135
360
  msgid "yes"
361
  msgstr ""
362
 
363
- #: admin/views/import-export.php:134
364
  msgid "instock"
365
  msgstr ""
366
 
367
- #: admin/views/import-export.php:136
368
  msgid "10"
369
  msgstr ""
370
 
371
- #: admin/views/import-export.php:137
372
  msgid "simple"
373
  msgstr ""
374
 
375
- #: admin/views/import-export.php:143
376
  msgid "product id, required. Neccessary for import and export."
377
  msgstr ""
378
 
379
- #: admin/views/import-export.php:144
380
  msgid "product unique identificator."
381
  msgstr ""
382
 
 
383
  #: admin/views/import-export.php:145
384
- #: admin/views/import-export.php:147
385
  msgid "values: \"yes\", \"notify\", \"no\". If is empty \"no\" will be save."
386
  msgstr ""
387
 
388
- #: admin/views/import-export.php:146
389
  msgid "values: \"instock\", \"outofstock\". If is empty \"outofstock\" will be save."
390
  msgstr ""
391
 
392
- #: admin/views/import-export.php:148
393
  msgid "quantity value. If is empty, 0 will be save."
394
  msgstr ""
395
 
396
- #: admin/views/import-export.php:155
397
  msgid "Upload csv file"
398
  msgstr ""
399
 
400
- #: admin/views/import-export.php:163
401
  msgid "Upload"
402
  msgstr ""
403
 
404
- #: admin/views/import-export.php:174
405
  msgid "The file "
406
  msgstr ""
407
 
408
- #: admin/views/import-export.php:203
409
  msgid "Product with ID: "
410
  msgstr ""
411
 
412
- #: admin/views/import-export.php:214
413
  msgid "Sorry, there was an error uploading your file."
414
  msgstr ""
415
 
416
- #: admin/views/import-export.php:228
 
 
 
 
417
  msgid "Export"
418
  msgstr ""
419
 
420
- #: admin/views/import-export.php:231
421
  msgid "You can download csv file, with your stock data. "
422
  msgstr ""
423
 
424
- #: admin/views/import-export.php:232
425
  msgid "Create export file"
426
  msgstr ""
427
 
@@ -463,6 +371,102 @@ msgstr ""
463
  msgid "Qty input step"
464
  msgstr ""
465
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
466
  #: woocommerce-stock-manager.php:59
467
  msgid "Alert!"
468
  msgstr ""
2
  # This file is distributed under the same license as the WooCommerce Stock Manager plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: WooCommerce Stock Manager 2.6.0\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-stock-manager\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-05-28T14:37:33+05:30\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.1.0\n"
15
  "X-Domain: woocommerce-stock-manager\n"
34
  msgid "https://www.storeapps.org/"
35
  msgstr ""
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  #: admin/includes/config.php:6
38
  #: admin/includes/config.php:16
39
  #: admin/includes/config.php:21
40
  #: admin/includes/config.php:26
41
  #: admin/includes/config.php:31
42
  #: admin/includes/wcm-class-table.php:245
43
+ #: admin/views/import-export.php:119
44
+ #: admin/views/import-export.php:142
45
  #: admin/views/log.php:29
46
  #: admin/assets/src/components/ProductFilter.js:64
47
  #: admin/assets/src/components/Products.js:99
51
 
52
  #: admin/includes/config.php:11
53
  #: admin/includes/wcm-class-table.php:255
54
+ #: admin/views/import-export.php:118
55
+ #: admin/views/import-export.php:141
56
  #: admin/views/log.php:30
57
  #: admin/assets/src/components/Products.js:93
58
  msgid "ID"
92
  msgstr ""
93
 
94
  #: admin/includes/wcm-class-table.php:275
95
+ #: admin/views/import-export.php:125
96
  #: admin/views/log.php:32
97
  #: admin/assets/src/components/Products.js:97
98
  msgid "Product type"
99
  msgstr ""
100
 
101
  #: admin/includes/wcm-class-table.php:285
102
+ #: admin/views/import-export.php:126
103
  #: admin/views/log.php:33
104
  msgid "Parent ID"
105
  msgstr ""
125
  msgstr ""
126
 
127
  #: admin/includes/wcm-class-table.php:325
128
+ #: admin/views/import-export.php:121
129
+ #: admin/views/import-export.php:143
130
  #: admin/views/components/filter.php:40
131
  #: admin/views/components/filter.php:112
 
 
132
  #: admin/assets/src/components/Products.js:139
133
  #: admin/assets/src/components/ScreenOptions.js:68
134
  msgid "Manage stock"
135
  msgstr ""
136
 
137
  #: admin/includes/wcm-class-table.php:335
138
+ #: admin/views/import-export.php:122
139
+ #: admin/views/import-export.php:144
140
  #: admin/views/components/filter.php:46
141
  #: admin/views/components/filter.php:114
 
 
142
  #: admin/assets/src/components/ProductFilter.js:112
143
  #: admin/assets/src/components/Products.js:142
144
  #: admin/assets/src/components/ScreenOptions.js:73
146
  msgstr ""
147
 
148
  #: admin/includes/wcm-class-table.php:345
149
+ #: admin/views/import-export.php:123
150
+ #: admin/views/import-export.php:145
151
  #: admin/views/components/filter.php:116
 
 
152
  #: admin/assets/src/components/Products.js:145
153
  #: admin/assets/src/components/ScreenOptions.js:78
154
  msgid "Backorders"
155
  msgstr ""
156
 
157
  #: admin/includes/wcm-class-table.php:355
158
+ #: admin/views/import-export.php:124
159
+ #: admin/views/import-export.php:146
 
160
  #: admin/views/log-history.php:38
161
  #: admin/views/log.php:34
162
+ #: admin/views/components/filter.php:118
163
  #: admin/assets/src/components/Products.js:148
164
  #: admin/assets/src/components/ScreenOptions.js:83
165
  msgid "Stock"
185
  msgid "Same as parent"
186
  msgstr ""
187
 
188
+ #: admin/includes/wcm-class-table.php:541
189
+ #: admin/class-stock-manager-admin.php:169
190
+ msgid "No shipping class"
191
+ msgstr ""
192
+
193
+ #: admin/includes/wcm-class-table.php:633
194
+ #: admin/includes/wcm-class-table.php:666
195
+ #: admin/class-stock-manager-admin.php:182
196
+ msgid "Yes"
197
+ msgstr ""
198
+
199
+ #: admin/includes/wcm-class-table.php:634
200
+ #: admin/includes/wcm-class-table.php:664
201
+ #: admin/class-stock-manager-admin.php:180
202
+ msgid "No"
203
+ msgstr ""
204
+
205
  #: admin/includes/wcm-class-table.php:648
206
  #: admin/views/components/filter.php:47
207
  msgid "In stock"
216
  msgid "On backorder"
217
  msgstr ""
218
 
219
+ #: admin/includes/wcm-class-table.php:665
220
+ #: admin/class-stock-manager-admin.php:181
221
+ msgid "Notify"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
222
  msgstr ""
223
 
224
+ #: admin/views/import-export.php:109
225
  msgid "Import"
226
  msgstr ""
227
 
228
+ #: admin/views/import-export.php:112
229
  msgid "You can upload csv file, with your stock data. "
230
  msgstr ""
231
 
232
+ #: admin/views/import-export.php:113
233
  msgid "CSV file must be in this format, or you can export file with exist data and edit them. "
234
  msgstr ""
235
 
236
+ #: admin/views/import-export.php:114
237
  msgid "If you have a lot of products and export/import not working, increase memory limit.. "
238
  msgstr ""
239
 
240
+ #: admin/views/import-export.php:115
241
  msgid "File format"
242
  msgstr ""
243
 
244
+ #: admin/views/import-export.php:120
245
  #: admin/assets/src/components/Products.js:115
246
  #: admin/assets/src/components/ScreenOptions.js:48
247
  msgid "Product name"
248
  msgstr ""
249
 
250
+ #: admin/views/import-export.php:129
251
  msgid "123"
252
  msgstr ""
253
 
254
+ #: admin/views/import-export.php:130
255
  msgid "abc111"
256
  msgstr ""
257
 
258
+ #: admin/views/import-export.php:131
259
  msgid "T-shirt"
260
  msgstr ""
261
 
262
+ #: admin/views/import-export.php:132
263
+ #: admin/views/import-export.php:134
264
  msgid "yes"
265
  msgstr ""
266
 
267
+ #: admin/views/import-export.php:133
268
  msgid "instock"
269
  msgstr ""
270
 
271
+ #: admin/views/import-export.php:135
272
  msgid "10"
273
  msgstr ""
274
 
275
+ #: admin/views/import-export.php:136
276
  msgid "simple"
277
  msgstr ""
278
 
279
+ #: admin/views/import-export.php:141
280
  msgid "product id, required. Neccessary for import and export."
281
  msgstr ""
282
 
283
+ #: admin/views/import-export.php:142
284
  msgid "product unique identificator."
285
  msgstr ""
286
 
287
+ #: admin/views/import-export.php:143
288
  #: admin/views/import-export.php:145
 
289
  msgid "values: \"yes\", \"notify\", \"no\". If is empty \"no\" will be save."
290
  msgstr ""
291
 
292
+ #: admin/views/import-export.php:144
293
  msgid "values: \"instock\", \"outofstock\". If is empty \"outofstock\" will be save."
294
  msgstr ""
295
 
296
+ #: admin/views/import-export.php:146
297
  msgid "quantity value. If is empty, 0 will be save."
298
  msgstr ""
299
 
300
+ #: admin/views/import-export.php:151
301
  msgid "Upload csv file"
302
  msgstr ""
303
 
304
+ #: admin/views/import-export.php:160
305
  msgid "Upload"
306
  msgstr ""
307
 
308
+ #: admin/views/import-export.php:182
309
  msgid "The file "
310
  msgstr ""
311
 
312
+ #: admin/views/import-export.php:208
313
  msgid "Product with ID: "
314
  msgstr ""
315
 
316
+ #: admin/views/import-export.php:218
317
  msgid "Sorry, there was an error uploading your file."
318
  msgstr ""
319
 
320
+ #: admin/views/import-export.php:221
321
+ msgid "Error: You have not uploaded a CSV file."
322
+ msgstr ""
323
+
324
+ #: admin/views/import-export.php:235
325
  msgid "Export"
326
  msgstr ""
327
 
328
+ #: admin/views/import-export.php:238
329
  msgid "You can download csv file, with your stock data. "
330
  msgstr ""
331
 
332
+ #: admin/views/import-export.php:239
333
  msgid "Create export file"
334
  msgstr ""
335
 
371
  msgid "Qty input step"
372
  msgstr ""
373
 
374
+ #: admin/views/components/filter.php:3
375
+ msgid "Filter"
376
+ msgstr ""
377
+
378
+ #: admin/views/components/filter.php:4
379
+ #: admin/views/components/filter.php:63
380
+ msgid "Search by sku"
381
+ msgstr ""
382
+
383
+ #: admin/views/components/filter.php:5
384
+ #: admin/views/components/filter.php:73
385
+ msgid "Search by product name"
386
+ msgstr ""
387
+
388
+ #: admin/views/components/filter.php:6
389
+ msgid "Display setting"
390
+ msgstr ""
391
+
392
+ #: admin/views/components/filter.php:15
393
+ msgid "Order by"
394
+ msgstr ""
395
+
396
+ #: admin/views/components/filter.php:16
397
+ msgid "Product name ASC"
398
+ msgstr ""
399
+
400
+ #: admin/views/components/filter.php:17
401
+ msgid "Product name DESC"
402
+ msgstr ""
403
+
404
+ #: admin/views/components/filter.php:18
405
+ msgid "SKU ASC"
406
+ msgstr ""
407
+
408
+ #: admin/views/components/filter.php:19
409
+ msgid "SKU DESC"
410
+ msgstr ""
411
+
412
+ #: admin/views/components/filter.php:23
413
+ msgid "Simple products"
414
+ msgstr ""
415
+
416
+ #: admin/views/components/filter.php:24
417
+ msgid "Products with variation"
418
+ msgstr ""
419
+
420
+ #: admin/views/components/filter.php:28
421
+ msgid "All categories"
422
+ msgstr ""
423
+
424
+ #: admin/views/components/filter.php:41
425
+ msgid "No manage stock"
426
+ msgstr ""
427
+
428
+ #: admin/views/components/filter.php:42
429
+ msgid "Yes manage stock"
430
+ msgstr ""
431
+
432
+ #: admin/views/components/filter.php:52
433
+ msgid "Show"
434
+ msgstr ""
435
+
436
+ #: admin/views/components/filter.php:54
437
+ msgid "Clear filter"
438
+ msgstr ""
439
+
440
+ #: admin/views/components/filter.php:101
441
+ msgid "Hide or display cells"
442
+ msgstr ""
443
+
444
+ #: admin/views/components/filter.php:108
445
+ msgid "Sales price"
446
+ msgstr ""
447
+
448
+ #: admin/views/components/filter.php:142
449
+ msgid "Save setting"
450
+ msgstr ""
451
+
452
+ #: admin/class-stock-manager-admin.php:175
453
+ msgid "Taxable"
454
+ msgstr ""
455
+
456
+ #: admin/class-stock-manager-admin.php:176
457
+ msgid "Shipping only"
458
+ msgstr ""
459
+
460
+ #: admin/class-stock-manager-admin.php:177
461
+ msgctxt "Tax status"
462
+ msgid "None"
463
+ msgstr ""
464
+
465
+ #. translators: %1$s & %2$s: Opening & closing strong tag. %3$s: link to WooCommerce Stock Manager on WordPress.org
466
+ #: admin/class-stock-manager-admin.php:589
467
+ msgid "If you are liking %1$sWooCommerce Stock Manager%2$s, please rate us %3$s. A huge thanks from StoreApps in advance!"
468
+ msgstr ""
469
+
470
  #: woocommerce-stock-manager.php:59
471
  msgid "Alert!"
472
  msgstr ""
public/class-stock-manager.php CHANGED
@@ -17,7 +17,7 @@ class Stock_Manager {
17
  *
18
  * @var string
19
  */
20
- const VERSION = '2.5.7';
21
 
22
  /**
23
  * Plugin slug
17
  *
18
  * @var string
19
  */
20
+ const VERSION = '2.6.0';
21
 
22
  /**
23
  * Plugin slug
readme.txt CHANGED
@@ -5,18 +5,21 @@ Author URI: https://www.storeapps.org/
5
  Plugin URI: https://www.storeapps.org/woocommerce-plugins/?utm_source=wprepo&utm_medium=web&utm_campaign=wsm_readme
6
  Tags: stock manager, woocommerce, stock management, inventory, products
7
  Requires at least: 5.0.0
8
- Tested up to: 5.7.0
9
  Requires PHP: 5.6
10
- Stable tag: 2.5.7
11
  License: GPLv3
12
 
13
  == Description ==
14
 
15
  WooCommerce Stock Manager allows you manage stock for products and their variables from one screen.
16
 
17
- **What you can do using WooCommerce Stock Manager:**
 
18
 
19
- Manage following product fields:
 
 
20
 
21
  * SKU
22
  * Product name
@@ -31,19 +34,20 @@ Manage following product fields:
31
  * Backorders
32
  * Stock
33
 
34
- Additionally, you can:
35
 
36
  * display product thumbnail image
37
  * filter products by type, category, stock manage or stock status
38
- * sort products by name or SKU
39
  * search products by name or SKU
40
  * show/hide columns for better usability
41
- * edit the variants for variable product after clicking on "Show variables" button
42
  * save each product or variation separately, or save all displayed data
43
 
44
- #### **Manage custom fields**
45
 
46
- > To manage a custom product field or fields from any other post type like Orders, Coupons, Subscriptions etc, use our free plugin [Smart Manager For WooCommerce](https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/).
 
47
 
48
  **Product stock history**
49
 
@@ -54,22 +58,22 @@ In Stock log page, you can see the products stock history.
54
  With WooCommerce Stock Manager plugin, it is possible export all stock data of your shop, edit them and import back with CSV file.
55
  (This feature needs refactoring, so use this only on your own risk).
56
 
57
- Export file structure:
58
- Id - product ID.
59
- SKU - product unique identificator, required.
60
- Product name - Name/title of the product
61
- Manage stock - values: "yes", "notify", "no". If is empty "no" will be save.
62
- Stock status - values: "instock", "outofstock". If is empty "outofstock" will be save.
63
- Backorders - values: "yes", "notify", "no". If is empty "no" will be save.
64
- Stock - quantity value.
65
- Type - type of product.
66
- Parent ID - if product is variant, parent product ID is displayed for better filtering csv file.
67
 
68
- GDPR ready - plugin don't collect personal data.
69
 
70
  **Spread The Love ❤️**
71
 
72
- If you like WooCommerce Stock Manager, please consider leaving [five stars ⭐⭐⭐⭐⭐](https://wordpress.org/support/plugin/woocommerce-stock-manager/reviews/#new-post) for the plugin. That helps fellow website owners assess WooCommerce Stock Manager easily and benefit from it!
73
 
74
  **Contribute**
75
 
@@ -93,7 +97,7 @@ Feel free to [contact us](https://www.storeapps.org/support/contact-us/?utm_sour
93
 
94
  **Some of our other free plugins**
95
 
96
- 1. [Smart Manager For WooCommerce](https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/) - Manage and bulk edit WooCommerce products, variations, orders, coupons, any WordPress post type. All from a single screen using Excel-Like Spreadsheet.
97
  2. [Offermative](https://wordpress.org/plugins/offermative-discount-pricing-related-products-upsell-funnels-for-woocommerce/) - Dynamic discount pricing, related product recommendations, upsells and funnels for WooCommerce.
98
  3. [Temporary Login Without Password](https://wordpress.org/plugins/temporary-login-without-password/)
99
  4. [Icegram](https://wordpress.org/plugins/icegram/) - Popups, Welcome Bar, Optins and Lead Generation Plugin
@@ -102,16 +106,15 @@ Feel free to [contact us](https://www.storeapps.org/support/contact-us/?utm_sour
102
  **StoreApps’ other Pro plugins**
103
 
104
  1. [Bulk Variations Manager](https://www.storeapps.org/product/bulk-variations-manager/?utm_source=wprepo&utm_medium=web_bvm&utm_campaign=wsm_readme)
105
- 2. [WooCommerce One Click Upsell](https://www.storeapps.org/how-to-create-1-click-upsells-in-woocommerce/?utm_source=wprepo&utm_medium=web_mb&utm_campaign=wsm_readme)
106
- 3. [Smart Offers For WooCommerce](https://www.storeapps.org/product/smart-offers/?utm_source=wprepo&utm_medium=web_mb&utm_campaign=wsm_readme)
107
- 4. [Email Customizer for WooCommerce](https://www.storeapps.org/product/smart-emails/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
108
- 5. [WooCommerce Name Your Price Plugin](https://www.storeapps.org/product/offer-your-price/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
109
- 6. [Frequently Bought Together For WooCommerce](https://www.storeapps.org/product/frequently-bought-together-woocommerce/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
110
- 7. [Express Checkout For WooCommerce](https://www.storeapps.org/product/express-checkout-for-woocommerce/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
111
- 8. [WooCommerce Update Variations In Cart](https://www.storeapps.org/product/woocommerce-update-variations-in-cart/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
112
- 9. [Express Login For WordPress](https://www.storeapps.org/product/express-login-for-wordpress/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
113
 
114
- [Check out all our WooCommerce plugins and bundles](https://www.storeapps.org/woocommerce-plugins/?utm_source=wprepo&utm_medium=web_others&utm_campaign=wsm_readme)
115
 
116
  == Installation ==
117
 
@@ -138,7 +141,7 @@ Go to WooCommerce Stock Manager and click on 'Screen Options' to show/hide any c
138
 
139
  = Quantity change not working. =
140
 
141
- Be sure, that you have active stock manage.
142
 
143
  == Screenshots ==
144
 
@@ -149,6 +152,11 @@ Be sure, that you have active stock manage.
149
 
150
  == Changelog ==
151
 
 
 
 
 
 
152
  = 2.5.7 (03.04.2021) =
153
  * Fix: 'Cannot modify header information – headers already sent' in some cases
154
  * Fix: jQuery error
@@ -237,6 +245,9 @@ For the changelog of earlier versions, please refer to the separate [changelog.t
237
 
238
  == Upgrade Notice ==
239
 
 
 
 
240
  = 2.5.7 =
241
  'Cannot modify header information – headers already sent' in some cases, jQuery error, POT file. Recommended upgrade.
242
 
5
  Plugin URI: https://www.storeapps.org/woocommerce-plugins/?utm_source=wprepo&utm_medium=web&utm_campaign=wsm_readme
6
  Tags: stock manager, woocommerce, stock management, inventory, products
7
  Requires at least: 5.0.0
8
+ Tested up to: 5.7.2
9
  Requires PHP: 5.6
10
+ Stable tag: 2.6.0
11
  License: GPLv3
12
 
13
  == Description ==
14
 
15
  WooCommerce Stock Manager allows you manage stock for products and their variables from one screen.
16
 
17
+ > WooCommerce Stock Manager plugin is completely Free to use.
18
+ > There's no paid or Pro version of this plugin.
19
 
20
+ ####What you can do using WooCommerce Stock Manager
21
+
22
+ **Manage following product fields:**
23
 
24
  * SKU
25
  * Product name
34
  * Backorders
35
  * Stock
36
 
37
+ **Additionally, you can:**
38
 
39
  * display product thumbnail image
40
  * filter products by type, category, stock manage or stock status
41
+ * sort products by name
42
  * search products by name or SKU
43
  * show/hide columns for better usability
44
+ * edit the variations for variable product after clicking on "Show variables" button
45
  * save each product or variation separately, or save all displayed data
46
 
47
+ #### ➡️ Manage custom fields
48
 
49
+ > To manage custom field(s) from any post type like Products, Orders, Coupons, Subscriptions, Bookings, Memberships, etc,
50
+ > use our **another free** plugin [Smart Manager for WooCommerce](https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/).
51
 
52
  **Product stock history**
53
 
58
  With WooCommerce Stock Manager plugin, it is possible export all stock data of your shop, edit them and import back with CSV file.
59
  (This feature needs refactoring, so use this only on your own risk).
60
 
61
+ * Export file structure:
62
+ * Id - product ID.
63
+ * SKU - product unique identificator, required.
64
+ * Product name - Name/title of the product
65
+ * Manage stock - values: "yes", "notify", "no". If is empty "no" will be save.
66
+ * Stock status - values: "instock", "outofstock". If is empty "outofstock" will be save.
67
+ * Backorders - values: "yes", "notify", "no". If is empty "no" will be save.
68
+ * Stock - quantity value.
69
+ * Type - type of product.
70
+ * Parent ID - if product is variant, parent product ID is displayed for better filtering csv file.
71
 
72
+ GDPR ready - plugin doesn't collect personal data.
73
 
74
  **Spread The Love ❤️**
75
 
76
+ If you like WooCommerce Stock Manager plugin, please consider leaving [five stars ⭐⭐⭐⭐⭐](https://wordpress.org/support/plugin/woocommerce-stock-manager/reviews/#new-post) for the plugin. That helps fellow website owners assess WooCommerce Stock Manager easily and benefit from it!
77
 
78
  **Contribute**
79
 
97
 
98
  **Some of our other free plugins**
99
 
100
+ 1. [Smart Manager for WooCommerce](https://wordpress.org/plugins/smart-manager-for-wp-e-commerce/) - Manage and bulk edit WooCommerce products, variations, orders, coupons, any WordPress post type. All from a single screen using Excel-Like Spreadsheet.
101
  2. [Offermative](https://wordpress.org/plugins/offermative-discount-pricing-related-products-upsell-funnels-for-woocommerce/) - Dynamic discount pricing, related product recommendations, upsells and funnels for WooCommerce.
102
  3. [Temporary Login Without Password](https://wordpress.org/plugins/temporary-login-without-password/)
103
  4. [Icegram](https://wordpress.org/plugins/icegram/) - Popups, Welcome Bar, Optins and Lead Generation Plugin
106
  **StoreApps’ other Pro plugins**
107
 
108
  1. [Bulk Variations Manager](https://www.storeapps.org/product/bulk-variations-manager/?utm_source=wprepo&utm_medium=web_bvm&utm_campaign=wsm_readme)
109
+ 2. [Smart Offers for WooCommerce](https://www.storeapps.org/product/smart-offers/?utm_source=wprepo&utm_medium=web_mb&utm_campaign=wsm_readme) - WooCommerce One Click Upsell
110
+ 3. [Email Customizer for WooCommerce](https://www.storeapps.org/product/smart-emails/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
111
+ 4. [WooCommerce Name Your Price Plugin](https://www.storeapps.org/product/offer-your-price/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
112
+ 5. [Frequently Bought Together for WooCommerce](https://www.storeapps.org/product/frequently-bought-together-woocommerce/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
113
+ 6. [Express Checkout for WooCommerce](https://www.storeapps.org/product/express-checkout-for-woocommerce/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
114
+ 7. [WooCommerce Update Variations In Cart](https://www.storeapps.org/product/woocommerce-update-variations-in-cart/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
115
+ 8. [Express Login for WordPress](https://www.storeapps.org/product/express-login-for-wordpress/?utm_source=wprepo&utm_medium=web_se&utm_campaign=wsm_readme)
 
116
 
117
+ [Check out all our WooCommerce plugins](https://www.storeapps.org/woocommerce-plugins/?utm_source=wprepo&utm_medium=web_others&utm_campaign=wsm_readme)
118
 
119
  == Installation ==
120
 
141
 
142
  = Quantity change not working. =
143
 
144
+ Be sure, that you have active stock manager.
145
 
146
  == Screenshots ==
147
 
152
 
153
  == Changelog ==
154
 
155
+ = 2.6.0 (28.05.2021) =
156
+ * New: WooCommerce 5.2.2, 5.3.0 compatible
157
+ * Update: Strengthen security during import process [Thanks to: Chloe Chamberland | Wordfence]
158
+ * Update: POT file
159
+
160
  = 2.5.7 (03.04.2021) =
161
  * Fix: 'Cannot modify header information – headers already sent' in some cases
162
  * Fix: jQuery error
245
 
246
  == Upgrade Notice ==
247
 
248
+ = 2.6.0 =
249
+ WooCommerce 5.2.2, 5.3.0 compatible, Strengthen security during import process [Thanks to: Chloe Chamberland | Wordfence], POT file. Recommended upgrade.
250
+
251
  = 2.5.7 =
252
  'Cannot modify header information – headers already sent' in some cases, jQuery error, POT file. Recommended upgrade.
253
 
woocommerce-stock-manager.php CHANGED
@@ -3,14 +3,14 @@
3
  * Plugin Name: WooCommerce Stock Manager
4
  * Plugin URI: https://www.storeapps.org/woocommerce-plugins/
5
  * Description: Manage product's stock and price in your WooCommerce store.
6
- * Version: 2.5.7
7
  * Author: StoreApps
8
  * Author URI: https://www.storeapps.org/
9
  * Requires at least: 5.0.0
10
- * Tested up to: 5.7.0
11
  * Requires PHP: 5.6+
12
  * WC requires at least: 3.5.0
13
- * WC tested up to: 5.1.0
14
  * Text Domain: woocommerce-stock-manager
15
  * Domain Path: /languages/
16
  * Copyright (c) 2020-2021 StoreApps. All rights reserved.
@@ -25,7 +25,7 @@ if ( ! defined( 'WPINC' ) ) {
25
 
26
  define( 'STOCKDIR', plugin_dir_path( __FILE__ ) );
27
  define( 'STOCKURL', plugin_dir_url( __FILE__ ) );
28
- define( 'STOCKVERSION', '2.5.7' );
29
  if( !defined( 'WSM_PLUGIN_FILE' ) ) {
30
  define( 'WSM_PLUGIN_FILE', __FILE__ );
31
  }
3
  * Plugin Name: WooCommerce Stock Manager
4
  * Plugin URI: https://www.storeapps.org/woocommerce-plugins/
5
  * Description: Manage product's stock and price in your WooCommerce store.
6
+ * Version: 2.6.0
7
  * Author: StoreApps
8
  * Author URI: https://www.storeapps.org/
9
  * Requires at least: 5.0.0
10
+ * Tested up to: 5.7.2
11
  * Requires PHP: 5.6+
12
  * WC requires at least: 3.5.0
13
+ * WC tested up to: 5.3.0
14
  * Text Domain: woocommerce-stock-manager
15
  * Domain Path: /languages/
16
  * Copyright (c) 2020-2021 StoreApps. All rights reserved.
25
 
26
  define( 'STOCKDIR', plugin_dir_path( __FILE__ ) );
27
  define( 'STOCKURL', plugin_dir_url( __FILE__ ) );
28
+ define( 'STOCKVERSION', '2.6.0' );
29
  if( !defined( 'WSM_PLUGIN_FILE' ) ) {
30
  define( 'WSM_PLUGIN_FILE', __FILE__ );
31
  }