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 | 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 +6 -0
- admin/class-stock-manager-admin.php +1 -1
- admin/views/class-storeapps-marketplace.php +94 -69
- admin/views/import-export.php +134 -128
- languages/woocommerce-stock-manager.pot +164 -160
- public/class-stock-manager.php +1 -1
- readme.txt +43 -32
- woocommerce-stock-manager.php +4 -4
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 |
-
|
|
|
|
|
|
|
|
|
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:
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
}
|
40 |
.wsm-marketplace .addons-banner-block-item {
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
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 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
}
|
68 |
.wsm-marketplace .addons-banner-block-item-content h3 {
|
69 |
-
|
|
|
|
|
|
|
|
|
70 |
}
|
71 |
.wsm-marketplace .addons-banner-block-item-content p {
|
72 |
margin: 0 0 auto;
|
73 |
-
min-height:
|
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 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
}
|
87 |
.wsm-marketplace .addons-button {
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
}
|
97 |
.wsm-marketplace .addons-button-solid {
|
98 |
-
|
99 |
-
|
100 |
}
|
101 |
.wsm-marketplace .addons-banner-block-item-icon img {
|
102 |
-
|
103 |
-
|
104 |
}
|
105 |
.wsm-marketplace .addons-button-solid:hover {
|
106 |
-
|
107 |
-
|
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
|
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 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
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>
|
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'
|
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 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
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 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
}
|
206 |
}
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
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 |
-
|
227 |
-
|
228 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
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-
|
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:
|
84 |
-
#: admin/views/import-export.php:
|
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:
|
95 |
-
#: admin/views/import-export.php:
|
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:
|
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:
|
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/
|
199 |
-
#: admin/views/import-export.php:
|
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/
|
243 |
-
|
244 |
-
|
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:
|
321 |
msgid "Import"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: admin/views/import-export.php:
|
325 |
msgid "You can upload csv file, with your stock data. "
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: admin/views/import-export.php:
|
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:
|
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:
|
337 |
msgid "File format"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: admin/views/import-export.php:
|
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:
|
347 |
msgid "123"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: admin/views/import-export.php:
|
351 |
msgid "abc111"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: admin/views/import-export.php:
|
355 |
msgid "T-shirt"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: admin/views/import-export.php:
|
359 |
-
#: admin/views/import-export.php:
|
360 |
msgid "yes"
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: admin/views/import-export.php:
|
364 |
msgid "instock"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: admin/views/import-export.php:
|
368 |
msgid "10"
|
369 |
msgstr ""
|
370 |
|
371 |
-
#: admin/views/import-export.php:
|
372 |
msgid "simple"
|
373 |
msgstr ""
|
374 |
|
375 |
-
#: admin/views/import-export.php:
|
376 |
msgid "product id, required. Neccessary for import and export."
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: admin/views/import-export.php:
|
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:
|
389 |
msgid "values: \"instock\", \"outofstock\". If is empty \"outofstock\" will be save."
|
390 |
msgstr ""
|
391 |
|
392 |
-
#: admin/views/import-export.php:
|
393 |
msgid "quantity value. If is empty, 0 will be save."
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: admin/views/import-export.php:
|
397 |
msgid "Upload csv file"
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: admin/views/import-export.php:
|
401 |
msgid "Upload"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: admin/views/import-export.php:
|
405 |
msgid "The file "
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: admin/views/import-export.php:
|
409 |
msgid "Product with ID: "
|
410 |
msgstr ""
|
411 |
|
412 |
-
#: admin/views/import-export.php:
|
413 |
msgid "Sorry, there was an error uploading your file."
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: admin/views/import-export.php:
|
|
|
|
|
|
|
|
|
417 |
msgid "Export"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: admin/views/import-export.php:
|
421 |
msgid "You can download csv file, with your stock data. "
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: admin/views/import-export.php:
|
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.
|
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.
|
9 |
Requires PHP: 5.6
|
10 |
-
Stable tag: 2.
|
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 |
-
|
|
|
18 |
|
19 |
-
|
|
|
|
|
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
|
39 |
* search products by name or SKU
|
40 |
* show/hide columns for better usability
|
41 |
-
* edit the
|
42 |
* save each product or variation separately, or save all displayed data
|
43 |
|
44 |
-
####
|
45 |
|
46 |
-
> To manage
|
|
|
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
|
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
|
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. [
|
106 |
-
3. [
|
107 |
-
4. [
|
108 |
-
5. [
|
109 |
-
6. [
|
110 |
-
7. [
|
111 |
-
8. [
|
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
|
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
|
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.
|
7 |
* Author: StoreApps
|
8 |
* Author URI: https://www.storeapps.org/
|
9 |
* Requires at least: 5.0.0
|
10 |
-
* Tested up to: 5.7.
|
11 |
* Requires PHP: 5.6+
|
12 |
* WC requires at least: 3.5.0
|
13 |
-
* WC tested up to: 5.
|
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.
|
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 |
}
|