Version Description
Download this release
Release Info
Developer | sabbir1991 |
Plugin | Dokan – Best WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy |
Version | 2.7.8 |
Comparing to | |
See all releases |
Code changes from version 2.6.10 to 2.7.8
- assets/css/admin.css +18 -0
- assets/css/style.css +20 -17
- assets/js/dokan-admin.js +14 -0
- assets/js/dokan.js +69 -22
- assets/js/speakingurl.min.js +7 -0
- classes/admin-user-profile.php +129 -41
- classes/admin-withdraw.php +62 -49
- classes/ajax.php +37 -113
- classes/installer.php +66 -18
- classes/pageviews.php +230 -20
- classes/rewrites.php +10 -2
- classes/seller-setup-wizard.php +10 -11
- classes/template-dashboard.php +15 -2
- classes/template-orders.php +13 -3
- classes/template-products.php +14 -7
- classes/template-settings.php +34 -14
- classes/template-shortcodes.php +33 -5
- classes/template-withdraw.php +54 -8
- classes/upgrade.php +2 -0
- classes/withdraw.php +5 -0
- dokan.php +13 -14
- includes/admin-functions.php +89 -25
- includes/admin/class-admin-pointers.php +1 -1
- includes/admin/class-admin.php +30 -12
- includes/admin/class-ajax.php +5 -2
- includes/admin/class-settings.php +2 -0
- includes/admin/setup-wizard.php +3 -4
- includes/admin/views/help.php +1 -1
- includes/class-core.php +7 -4
- includes/class-scripts.php +42 -31
- includes/class-vendor.php +1 -1
- includes/functions.php +210 -52
- includes/order-functions.php +45 -13
- includes/product-functions.php +60 -0
- includes/reports.php +4 -2
- includes/template-tags.php +75 -32
- includes/upgrades/dokan-upgrade-2.7.3.php +82 -0
- includes/upgrades/dokan-upgrade-2.7.6.php +59 -0
- includes/wc-crud-functions.php +9 -3
- includes/wc-functions.php +154 -132
- includes/wc-template.php +73 -0
- includes/widgets/store-contact.php +26 -16
- includes/widgets/store-menu-category.php +4 -2
- includes/widgets/store-menu.php +10 -1
- includes/withdraw-functions.php +24 -1
- languages/dokan-lite.pot +647 -589
- lib/class-wedevs-insights.php +11 -11
- lib/class-weforms-upsell.php +0 -412
- lib/class.settings-api.php +39 -17
- package-lock.json +0 -3687
- readme.txt +612 -525
- templates/dashboard/big-counter-widget.php +1 -5
- templates/global/no-permission.php +78 -0
- templates/orders/date-export.php +3 -0
- templates/orders/details.php +48 -39
- templates/orders/downloadable.php +1 -1
- templates/orders/listing.php +51 -43
- templates/products/listing-filter.php +1 -1
- templates/products/new-product-single.php +6 -6
- templates/products/new-product.php +2 -2
- templates/products/products-listing.php +40 -18
- templates/settings/header.php +1 -1
- templates/settings/store-form.php +12 -10
- templates/store-header.php +2 -0
- templates/store.php +0 -1
- templates/withdraw/request-form.php +8 -0
assets/css/admin.css
CHANGED
@@ -163,6 +163,24 @@
|
|
163 |
padding-top: 2px;
|
164 |
margin-right: 5px;
|
165 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
.dokan-settings-wrap h2.nav-tab-wrapper {
|
167 |
flex: 1;
|
168 |
border-bottom: none;
|
163 |
padding-top: 2px;
|
164 |
margin-right: 5px;
|
165 |
}
|
166 |
+
.dokan-settings-wrap .dashicons.dashicons-admin-generic {
|
167 |
+
color: #6c75ff;
|
168 |
+
}
|
169 |
+
.dokan-settings-wrap .dashicons.dashicons-cart {
|
170 |
+
color: #00aeff;
|
171 |
+
}
|
172 |
+
.dokan-settings-wrap .dashicons.dashicons-money {
|
173 |
+
color: #d35400;
|
174 |
+
}
|
175 |
+
.dokan-settings-wrap .dashicons.dashicons-admin-page {
|
176 |
+
color: #8e44ad;
|
177 |
+
}
|
178 |
+
.dokan-settings-wrap .dashicons.dashicons-admin-appearance {
|
179 |
+
color: #3498db;
|
180 |
+
}
|
181 |
+
.dokan-settings-wrap .dashicons.dashicons-networking {
|
182 |
+
color: #1abc9c;
|
183 |
+
}
|
184 |
.dokan-settings-wrap h2.nav-tab-wrapper {
|
185 |
flex: 1;
|
186 |
border-bottom: none;
|
assets/css/style.css
CHANGED
@@ -2339,14 +2339,16 @@ div.media-sidebar a.edit-attachment {
|
|
2339 |
margin-bottom: 15px;
|
2340 |
}
|
2341 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top ul.dokan-listing-filter {
|
2342 |
-
width:
|
2343 |
}
|
2344 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top ul.dokan-listing-filter li {
|
2345 |
display: inline-block;
|
2346 |
padding: 0px 10px 0px 0px;
|
2347 |
}
|
2348 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top span.dokan-add-product-link {
|
2349 |
-
width:
|
|
|
|
|
2350 |
}
|
2351 |
.dokan-product-listing .dokan-product-listing-area form.dokan-product-search-form button[name="product_listing_search"] {
|
2352 |
float: right;
|
@@ -2452,32 +2454,29 @@ div.media-sidebar a.edit-attachment {
|
|
2452 |
.dokan-product-edit-area .featured-image {
|
2453 |
width: 35%;
|
2454 |
}
|
2455 |
-
.
|
2456 |
background: #fff;
|
2457 |
border: 1px solid #EBEBEB;
|
2458 |
margin-top: 15px;
|
2459 |
}
|
2460 |
-
.
|
2461 |
-
margin-bottom: 20px;
|
2462 |
-
}
|
2463 |
-
.product-edit-new-container .dokan-edit-row .dokan-section-heading {
|
2464 |
padding: 10px 15px;
|
2465 |
border-bottom: 1px solid #EBEBEB;
|
2466 |
overflow: hidden;
|
2467 |
cursor: pointer;
|
2468 |
}
|
2469 |
-
.
|
2470 |
font-size: 15px;
|
2471 |
}
|
2472 |
-
.
|
2473 |
margin-top: 9px;
|
2474 |
}
|
2475 |
-
.
|
2476 |
float: right;
|
2477 |
color: #888;
|
2478 |
font-size: 15px;
|
2479 |
}
|
2480 |
-
.
|
2481 |
margin: 0px;
|
2482 |
padding: 0px;
|
2483 |
float: left;
|
@@ -2485,7 +2484,7 @@ div.media-sidebar a.edit-attachment {
|
|
2485 |
font-weight: bold;
|
2486 |
line-height: 150%;
|
2487 |
}
|
2488 |
-
.
|
2489 |
float: left;
|
2490 |
vertical-align: bottom;
|
2491 |
margin-bottom: 0px;
|
@@ -2495,6 +2494,9 @@ div.media-sidebar a.edit-attachment {
|
|
2495 |
font-style: italic;
|
2496 |
font-size: 12px;
|
2497 |
}
|
|
|
|
|
|
|
2498 |
.product-edit-new-container .dokan-edit-row .dokan-section-content {
|
2499 |
padding: 15px;
|
2500 |
}
|
@@ -2868,10 +2870,10 @@ div.media-sidebar a.edit-attachment {
|
|
2868 |
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension {
|
2869 |
margin-bottom: 10px;
|
2870 |
}
|
2871 |
-
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension .dimensions_field .
|
2872 |
margin-right: 6px;
|
2873 |
}
|
2874 |
-
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension .dimensions_field .
|
2875 |
margin-right: 0px;
|
2876 |
}
|
2877 |
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variation-default-toolbar {
|
@@ -3209,7 +3211,6 @@ div.media-sidebar a.edit-attachment {
|
|
3209 |
height: 100%;
|
3210 |
color: #afafaf;
|
3211 |
font-size: 18px;
|
3212 |
-
display: block;
|
3213 |
}
|
3214 |
.product-edit-container #dokan-product-images ul.product_images li.image img,
|
3215 |
.product-edit-container #dokan-product-images ul.product_images li.dokan-sortable-placeholder img,
|
@@ -3419,7 +3420,6 @@ div.media-sidebar a.edit-attachment {
|
|
3419 |
height: 100%;
|
3420 |
color: #afafaf;
|
3421 |
font-size: 18px;
|
3422 |
-
display: block;
|
3423 |
}
|
3424 |
.dokan-add-new-product-popup #dokan-product-images ul.product_images li.image img,
|
3425 |
.dokan-add-new-product-popup #dokan-product-images ul.product_images li.dokan-sortable-placeholder img,
|
@@ -3467,7 +3467,7 @@ div.media-sidebar a.edit-attachment {
|
|
3467 |
margin-top: 10px;
|
3468 |
}
|
3469 |
.dokan-add-new-product-popup .product-container-footer {
|
3470 |
-
padding:
|
3471 |
border-top: 1px solid #eee;
|
3472 |
text-align: right;
|
3473 |
}
|
@@ -3480,6 +3480,9 @@ div.media-sidebar a.edit-attachment {
|
|
3480 |
color: #d9534f;
|
3481 |
margin-right: 8px;
|
3482 |
vertical-align: middle;
|
|
|
|
|
|
|
3483 |
}
|
3484 |
.dokan-settings-content .dokan-settings-area h1 {
|
3485 |
margin: 0px;
|
2339 |
margin-bottom: 15px;
|
2340 |
}
|
2341 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top ul.dokan-listing-filter {
|
2342 |
+
width: 60%;
|
2343 |
}
|
2344 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top ul.dokan-listing-filter li {
|
2345 |
display: inline-block;
|
2346 |
padding: 0px 10px 0px 0px;
|
2347 |
}
|
2348 |
.dokan-product-listing .dokan-product-listing-area .product-listing-top span.dokan-add-product-link {
|
2349 |
+
width: 36%;
|
2350 |
+
float: right;
|
2351 |
+
text-align: right;
|
2352 |
}
|
2353 |
.dokan-product-listing .dokan-product-listing-area form.dokan-product-search-form button[name="product_listing_search"] {
|
2354 |
float: right;
|
2454 |
.dokan-product-edit-area .featured-image {
|
2455 |
width: 35%;
|
2456 |
}
|
2457 |
+
.dokan-edit-row {
|
2458 |
background: #fff;
|
2459 |
border: 1px solid #EBEBEB;
|
2460 |
margin-top: 15px;
|
2461 |
}
|
2462 |
+
.dokan-edit-row .dokan-section-heading {
|
|
|
|
|
|
|
2463 |
padding: 10px 15px;
|
2464 |
border-bottom: 1px solid #EBEBEB;
|
2465 |
overflow: hidden;
|
2466 |
cursor: pointer;
|
2467 |
}
|
2468 |
+
.dokan-edit-row .dokan-section-heading i.fa {
|
2469 |
font-size: 15px;
|
2470 |
}
|
2471 |
+
.dokan-edit-row .dokan-section-heading i.fa.fa-flip-vertical {
|
2472 |
margin-top: 9px;
|
2473 |
}
|
2474 |
+
.dokan-edit-row .dokan-section-heading .dokan-section-toggle {
|
2475 |
float: right;
|
2476 |
color: #888;
|
2477 |
font-size: 15px;
|
2478 |
}
|
2479 |
+
.dokan-edit-row .dokan-section-heading h2 {
|
2480 |
margin: 0px;
|
2481 |
padding: 0px;
|
2482 |
float: left;
|
2484 |
font-weight: bold;
|
2485 |
line-height: 150%;
|
2486 |
}
|
2487 |
+
.dokan-edit-row .dokan-section-heading p {
|
2488 |
float: left;
|
2489 |
vertical-align: bottom;
|
2490 |
margin-bottom: 0px;
|
2494 |
font-style: italic;
|
2495 |
font-size: 12px;
|
2496 |
}
|
2497 |
+
.product-edit-new-container .dokan-edit-row.dokan-other-options {
|
2498 |
+
margin-bottom: 20px;
|
2499 |
+
}
|
2500 |
.product-edit-new-container .dokan-edit-row .dokan-section-content {
|
2501 |
padding: 15px;
|
2502 |
}
|
2870 |
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension {
|
2871 |
margin-bottom: 10px;
|
2872 |
}
|
2873 |
+
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension .dimensions_field .dokan-w3 {
|
2874 |
margin-right: 6px;
|
2875 |
}
|
2876 |
+
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variations-container .dokan-product-variation-itmes .dokan-variable-attributes .weight-dimension .dimensions_field .dokan-w3:last-child {
|
2877 |
margin-right: 0px;
|
2878 |
}
|
2879 |
.product-edit-new-container .dokan-attribute-variation-options .dokan-product-variation-wrapper .dokan-variation-default-toolbar {
|
3211 |
height: 100%;
|
3212 |
color: #afafaf;
|
3213 |
font-size: 18px;
|
|
|
3214 |
}
|
3215 |
.product-edit-container #dokan-product-images ul.product_images li.image img,
|
3216 |
.product-edit-container #dokan-product-images ul.product_images li.dokan-sortable-placeholder img,
|
3420 |
height: 100%;
|
3421 |
color: #afafaf;
|
3422 |
font-size: 18px;
|
|
|
3423 |
}
|
3424 |
.dokan-add-new-product-popup #dokan-product-images ul.product_images li.image img,
|
3425 |
.dokan-add-new-product-popup #dokan-product-images ul.product_images li.dokan-sortable-placeholder img,
|
3467 |
margin-top: 10px;
|
3468 |
}
|
3469 |
.dokan-add-new-product-popup .product-container-footer {
|
3470 |
+
padding: 20px 20px;
|
3471 |
border-top: 1px solid #eee;
|
3472 |
text-align: right;
|
3473 |
}
|
3480 |
color: #d9534f;
|
3481 |
margin-right: 8px;
|
3482 |
vertical-align: middle;
|
3483 |
+
float: left;
|
3484 |
+
display: block;
|
3485 |
+
width: 55%;
|
3486 |
}
|
3487 |
.dokan-settings-content .dokan-settings-area h1 {
|
3488 |
margin: 0px;
|
assets/js/dokan-admin.js
CHANGED
@@ -61,5 +61,19 @@ jQuery(function($) {
|
|
61 |
|
62 |
btn.parents('.dokan-settings-radio-image').addClass('active').removeClass('not-active');
|
63 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
});
|
65 |
|
61 |
|
62 |
btn.parents('.dokan-settings-radio-image').addClass('active').removeClass('not-active');
|
63 |
});
|
64 |
+
|
65 |
+
$(function(){
|
66 |
+
$('#the-list').on('click', '.editinline', function(){
|
67 |
+
var post_id = $(this).closest('tr').attr('id');
|
68 |
+
|
69 |
+
post_id = post_id.replace("post-", "");
|
70 |
+
|
71 |
+
var $vendor_id_inline_data = $('#dokan_vendor_id_inline_' + post_id).find('#dokan_vendor_id').text(),
|
72 |
+
$wc_inline_data = $('#woocommerce_inline_' + post_id );
|
73 |
+
|
74 |
+
$( 'select[name="dokan_product_author_override"] option:selected', '.inline-edit-row' ).attr( 'selected', false ).change();
|
75 |
+
$( 'select[name="dokan_product_author_override"] option[value="' + $vendor_id_inline_data + '"]' ).attr( 'selected', 'selected' ).change();
|
76 |
+
});
|
77 |
+
});
|
78 |
});
|
79 |
|
assets/js/dokan.js
CHANGED
@@ -26,11 +26,15 @@ jQuery(function($) {
|
|
26 |
$.post( dokan.ajaxurl, self.serialize(), function(response) {
|
27 |
li.unblock();
|
28 |
|
29 |
-
|
|
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
|
|
|
|
|
|
34 |
});
|
35 |
});
|
36 |
|
@@ -656,15 +660,18 @@ jQuery(function($) {
|
|
656 |
form.find( 'span.dokan-show-add-product-error' ).html('');
|
657 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'inline-block' );
|
658 |
|
|
|
659 |
|
660 |
if ( form.find( 'input[name="post_title"]' ).val() == '' ) {
|
661 |
$( 'span.dokan-show-add-product-error' ).html( dokan.product_title_required );
|
|
|
662 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
663 |
return;
|
664 |
}
|
665 |
|
666 |
if ( form.find( 'select[name="product_cat"]' ).val() == '-1' ) {
|
667 |
$( 'span.dokan-show-add-product-error' ).html( dokan.product_category_required );
|
|
|
668 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
669 |
return;
|
670 |
}
|
@@ -677,6 +684,7 @@ jQuery(function($) {
|
|
677 |
|
678 |
$.post( dokan.ajaxurl, data, function( resp ) {
|
679 |
if ( resp.success ) {
|
|
|
680 |
if ( btn_id == 'create_new' ) {
|
681 |
$.magnificPopup.close();
|
682 |
window.location.href = resp.data;
|
@@ -686,6 +694,7 @@ jQuery(function($) {
|
|
686 |
Dokan_Editor.openProductPopup();
|
687 |
}
|
688 |
} else {
|
|
|
689 |
$( 'span.dokan-show-add-product-error' ).html( resp.data );
|
690 |
}
|
691 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
@@ -1096,6 +1105,7 @@ jQuery(function($) {
|
|
1096 |
|
1097 |
// wrap.find('img').attr('src', attachment.sizes.thumbnail.url);
|
1098 |
wrap.find('img').attr('src', attachment.url);
|
|
|
1099 |
|
1100 |
instruction.addClass('dokan-hide');
|
1101 |
wrap.removeClass('dokan-hide');
|
@@ -1270,31 +1280,67 @@ jQuery(function($) {
|
|
1270 |
$( "input.dokan-product-regular-price, input.dokan-product-sales-price" ).on( 'keyup', function () {
|
1271 |
if ( dokan.commission_type == 'percentage' ) {
|
1272 |
if ( $('input.dokan-product-sales-price' ).val() == '' ) {
|
1273 |
-
$( 'span.vendor-price' ).html(
|
|
|
|
|
|
|
|
|
1274 |
} else {
|
1275 |
-
$( 'span.vendor-price' ).html(
|
1276 |
-
|
|
|
|
|
|
|
|
|
1277 |
} else {
|
|
|
1278 |
if ( $('input.dokan-product-sales-price' ).val() == '' ) {
|
1279 |
-
$( 'span.vendor-price' ).html(
|
|
|
|
|
|
|
|
|
1280 |
} else {
|
1281 |
-
$( 'span.vendor-price' ).html(
|
1282 |
-
|
|
|
|
|
|
|
|
|
1283 |
}
|
1284 |
|
1285 |
-
if (
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
|
|
|
|
1291 |
}
|
1292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1293 |
} ).trigger('keyup');
|
1294 |
|
1295 |
});
|
1296 |
|
1297 |
})(jQuery);
|
|
|
1298 |
jQuery(function($) {
|
1299 |
var api = wp.customize;
|
1300 |
|
@@ -1391,7 +1437,8 @@ jQuery(function($) {
|
|
1391 |
}
|
1392 |
|
1393 |
$('#company-name').on('focusout', function() {
|
1394 |
-
var value = $(this).val()
|
|
|
1395 |
$('#seller-url').val(value);
|
1396 |
$('#url-alart').text( value );
|
1397 |
$('#seller-url').focus();
|
@@ -1453,12 +1500,12 @@ jQuery(function($) {
|
|
1453 |
|
1454 |
$.post( dokan.ajaxurl, data, function(resp) {
|
1455 |
|
1456 |
-
if ( resp
|
1457 |
-
$('#url-alart').removeClass('text-success').addClass('text-danger');
|
1458 |
-
$('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan.seller.notAvailable);
|
1459 |
-
} else {
|
1460 |
$('#url-alart').removeClass('text-danger').addClass('text-success');
|
1461 |
$('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan.seller.available);
|
|
|
|
|
|
|
1462 |
}
|
1463 |
|
1464 |
row.unblock();
|
@@ -2044,4 +2091,4 @@ jQuery(function($) {
|
|
2044 |
}
|
2045 |
});
|
2046 |
|
2047 |
-
})(jQuery);
|
26 |
$.post( dokan.ajaxurl, self.serialize(), function(response) {
|
27 |
li.unblock();
|
28 |
|
29 |
+
if ( response.success ) {
|
30 |
+
var prev_li = li.prev();
|
31 |
|
32 |
+
li.addClass('dokan-hide');
|
33 |
+
prev_li.find('label').replaceWith(response.data);
|
34 |
+
prev_li.find('a.dokan-edit-status').removeClass('dokan-hide');
|
35 |
+
} else {
|
36 |
+
alert( response.data );
|
37 |
+
}
|
38 |
});
|
39 |
});
|
40 |
|
660 |
form.find( 'span.dokan-show-add-product-error' ).html('');
|
661 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'inline-block' );
|
662 |
|
663 |
+
self.attr( 'disabled', 'disabled' );
|
664 |
|
665 |
if ( form.find( 'input[name="post_title"]' ).val() == '' ) {
|
666 |
$( 'span.dokan-show-add-product-error' ).html( dokan.product_title_required );
|
667 |
+
self.removeAttr( 'disabled' );
|
668 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
669 |
return;
|
670 |
}
|
671 |
|
672 |
if ( form.find( 'select[name="product_cat"]' ).val() == '-1' ) {
|
673 |
$( 'span.dokan-show-add-product-error' ).html( dokan.product_category_required );
|
674 |
+
self.removeAttr( 'disabled' );
|
675 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
676 |
return;
|
677 |
}
|
684 |
|
685 |
$.post( dokan.ajaxurl, data, function( resp ) {
|
686 |
if ( resp.success ) {
|
687 |
+
self.removeAttr( 'disabled' );
|
688 |
if ( btn_id == 'create_new' ) {
|
689 |
$.magnificPopup.close();
|
690 |
window.location.href = resp.data;
|
694 |
Dokan_Editor.openProductPopup();
|
695 |
}
|
696 |
} else {
|
697 |
+
self.removeAttr( 'disabled' );
|
698 |
$( 'span.dokan-show-add-product-error' ).html( resp.data );
|
699 |
}
|
700 |
form.find( 'span.dokan-add-new-product-spinner' ).css( 'display', 'none' );
|
1105 |
|
1106 |
// wrap.find('img').attr('src', attachment.sizes.thumbnail.url);
|
1107 |
wrap.find('img').attr('src', attachment.url);
|
1108 |
+
wrap.find('img').removeAttr( 'srcset' );
|
1109 |
|
1110 |
instruction.addClass('dokan-hide');
|
1111 |
wrap.removeClass('dokan-hide');
|
1280 |
$( "input.dokan-product-regular-price, input.dokan-product-sales-price" ).on( 'keyup', function () {
|
1281 |
if ( dokan.commission_type == 'percentage' ) {
|
1282 |
if ( $('input.dokan-product-sales-price' ).val() == '' ) {
|
1283 |
+
$( 'span.vendor-price' ).html(
|
1284 |
+
parseFloat( accounting.formatNumber( ( ( $( 'input.dokan-product-regular-price' ).val() * dokan.vendor_percentage ) / 100 ), dokan.rounding_precision, '' ) )
|
1285 |
+
.toString()
|
1286 |
+
.replace( '.', dokan.mon_decimal_point )
|
1287 |
+
);
|
1288 |
} else {
|
1289 |
+
$( 'span.vendor-price' ).html(
|
1290 |
+
parseFloat( accounting.formatNumber( ( ( $( 'input.dokan-product-sales-price' ).val() * dokan.vendor_percentage ) / 100 ), dokan.rounding_precision, '' ) )
|
1291 |
+
.toString()
|
1292 |
+
.replace( '.', dokan.mon_decimal_point )
|
1293 |
+
);
|
1294 |
+
}
|
1295 |
} else {
|
1296 |
+
|
1297 |
if ( $('input.dokan-product-sales-price' ).val() == '' ) {
|
1298 |
+
$( 'span.vendor-price' ).html(
|
1299 |
+
parseFloat( accounting.formatNumber( ( $( 'input.dokan-product-regular-price' ).val() - ( 100 - dokan.vendor_percentage ) ), dokan.rounding_precision, '' ) )
|
1300 |
+
.toString()
|
1301 |
+
.replace( '.', dokan.mon_decimal_point )
|
1302 |
+
);
|
1303 |
} else {
|
1304 |
+
$( 'span.vendor-price' ).html(
|
1305 |
+
parseFloat( accounting.formatNumber( ( $( 'input.dokan-product-sales-price' ).val() - ( 100 - dokan.vendor_percentage ) ), dokan.rounding_precision, '' ) )
|
1306 |
+
.toString()
|
1307 |
+
.replace( '.', dokan.mon_decimal_point )
|
1308 |
+
);
|
1309 |
+
}
|
1310 |
}
|
1311 |
|
1312 |
+
if ( $( '#product_type' ).val() == 'simple' ) {
|
1313 |
+
if ( Number( $('span.vendor-price').text() ) < 0 ) {
|
1314 |
+
$( $('.dokan-product-less-price-alert').removeClass('dokan-hide') );
|
1315 |
+
$( 'input[type=submit]' ).attr( 'disabled', 'disabled' );
|
1316 |
+
} else {
|
1317 |
+
$( 'input[type=submit]' ).removeAttr( 'disabled');
|
1318 |
+
$( $('.dokan-product-less-price-alert').addClass('dokan-hide') );
|
1319 |
+
}
|
1320 |
}
|
1321 |
|
1322 |
+
$( '#product_type' ).on( 'change', function() {
|
1323 |
+
var self = $(this);
|
1324 |
+
|
1325 |
+
if ( self.val() == 'variable' || self.val() == 'grouped' ) {
|
1326 |
+
$( 'input[type=submit]' ).removeAttr( 'disabled' );
|
1327 |
+
} else {
|
1328 |
+
if ( Number( $('span.vendor-price').text() ) > 0 ) {
|
1329 |
+
$( 'input[type=submit]' ).removeAttr( 'disabled');
|
1330 |
+
$( $('.dokan-product-less-price-alert').addClass('dokan-hide') );
|
1331 |
+
} else {
|
1332 |
+
$( $('.dokan-product-less-price-alert').removeClass('dokan-hide') );
|
1333 |
+
$( 'input[type=submit]' ).attr( 'disabled', 'disabled' );
|
1334 |
+
}
|
1335 |
+
}
|
1336 |
+
} );
|
1337 |
+
|
1338 |
} ).trigger('keyup');
|
1339 |
|
1340 |
});
|
1341 |
|
1342 |
})(jQuery);
|
1343 |
+
|
1344 |
jQuery(function($) {
|
1345 |
var api = wp.customize;
|
1346 |
|
1437 |
}
|
1438 |
|
1439 |
$('#company-name').on('focusout', function() {
|
1440 |
+
var value = getSlug( $(this).val() );
|
1441 |
+
|
1442 |
$('#seller-url').val(value);
|
1443 |
$('#url-alart').text( value );
|
1444 |
$('#seller-url').focus();
|
1500 |
|
1501 |
$.post( dokan.ajaxurl, data, function(resp) {
|
1502 |
|
1503 |
+
if ( resp.success === true ) {
|
|
|
|
|
|
|
1504 |
$('#url-alart').removeClass('text-danger').addClass('text-success');
|
1505 |
$('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan.seller.available);
|
1506 |
+
} else {
|
1507 |
+
$('#url-alart').removeClass('text-success').addClass('text-danger');
|
1508 |
+
$('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan.seller.notAvailable);
|
1509 |
}
|
1510 |
|
1511 |
row.unblock();
|
2091 |
}
|
2092 |
});
|
2093 |
|
2094 |
+
})(jQuery);
|
assets/js/speakingurl.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* speakingurl
|
3 |
+
* @version v14.0.1
|
4 |
+
* @link http://pid.github.io/speakingurl/
|
5 |
+
* @license BSD
|
6 |
+
* @author
|
7 |
+
*/!function(a){"use strict";var e={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"Ae","Å":"A","Æ":"AE","Ç":"C","È":"E","É":"E","Ê":"E","Ë":"E","Ì":"I","Í":"I","Î":"I","Ï":"I","Ð":"D","Ñ":"N","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"Oe","Ő":"O","Ø":"O","Ù":"U","Ú":"U","Û":"U","Ü":"Ue","Ű":"U","Ý":"Y","Þ":"TH","ß":"ss","à":"a","á":"a","â":"a","ã":"a","ä":"ae","å":"a","æ":"ae","ç":"c","è":"e","é":"e","ê":"e","ë":"e","ì":"i","í":"i","î":"i","ï":"i","ð":"d","ñ":"n","ò":"o","ó":"o","ô":"o","õ":"o","ö":"oe","ő":"o","ø":"o","ù":"u","ú":"u","û":"u","ü":"ue","ű":"u","ý":"y","þ":"th","ÿ":"y","ẞ":"SS","ا":"a","أ":"a","إ":"i","آ":"aa","ؤ":"u","ئ":"e","ء":"a","ب":"b","ت":"t","ث":"th","ج":"j","ح":"h","خ":"kh","د":"d","ذ":"th","ر":"r","ز":"z","س":"s","ش":"sh","ص":"s","ض":"dh","ط":"t","ظ":"z","ع":"a","غ":"gh","ف":"f","ق":"q","ك":"k","ل":"l","م":"m","ن":"n","ه":"h","و":"w","ي":"y","ى":"a","ة":"h","ﻻ":"la","ﻷ":"laa","ﻹ":"lai","ﻵ":"laa","گ":"g","چ":"ch","پ":"p","ژ":"zh","ک":"k","ی":"y","َ":"a","ً":"an","ِ":"e","ٍ":"en","ُ":"u","ٌ":"on","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","က":"k","ခ":"kh","ဂ":"g","ဃ":"ga","င":"ng","စ":"s","ဆ":"sa","ဇ":"z","စျ":"za","ည":"ny","ဋ":"t","ဌ":"ta","ဍ":"d","ဎ":"da","ဏ":"na","တ":"t","ထ":"ta","ဒ":"d","ဓ":"da","န":"n","ပ":"p","ဖ":"pa","ဗ":"b","ဘ":"ba","မ":"m","ယ":"y","ရ":"ya","လ":"l","ဝ":"w","သ":"th","ဟ":"h","ဠ":"la","အ":"a","ြ":"y","ျ":"ya","ွ":"w","ြွ":"yw","ျွ":"ywa","ှ":"h","ဧ":"e","၏":"-e","ဣ":"i","ဤ":"-i","ဉ":"u","ဦ":"-u","ဩ":"aw","သြော":"aw","ဪ":"aw","၀":"0","၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","္":"","့":"","း":"","č":"c","ď":"d","ě":"e","ň":"n","ř":"r","š":"s","ť":"t","ů":"u","ž":"z","Č":"C","Ď":"D","Ě":"E","Ň":"N","Ř":"R","Š":"S","Ť":"T","Ů":"U","Ž":"Z","ހ":"h","ށ":"sh","ނ":"n","ރ":"r","ބ":"b","ޅ":"lh","ކ":"k","އ":"a","ވ":"v","މ":"m","ފ":"f","ދ":"dh","ތ":"th","ލ":"l","ގ":"g","ޏ":"gn","ސ":"s","ޑ":"d","ޒ":"z","ޓ":"t","ޔ":"y","ޕ":"p","ޖ":"j","ޗ":"ch","ޘ":"tt","ޙ":"hh","ޚ":"kh","ޛ":"th","ޜ":"z","ޝ":"sh","ޞ":"s","ޟ":"d","ޠ":"t","ޡ":"z","ޢ":"a","ޣ":"gh","ޤ":"q","ޥ":"w","ަ":"a","ާ":"aa","ި":"i","ީ":"ee","ު":"u","ޫ":"oo","ެ":"e","ޭ":"ey","ޮ":"o","ޯ":"oa","ް":"","ა":"a","ბ":"b","გ":"g","დ":"d","ე":"e","ვ":"v","ზ":"z","თ":"t","ი":"i","კ":"k","ლ":"l","მ":"m","ნ":"n","ო":"o","პ":"p","ჟ":"zh","რ":"r","ს":"s","ტ":"t","უ":"u","ფ":"p","ქ":"k","ღ":"gh","ყ":"q","შ":"sh","ჩ":"ch","ც":"ts","ძ":"dz","წ":"ts","ჭ":"ch","ხ":"kh","ჯ":"j","ჰ":"h","α":"a","β":"v","γ":"g","δ":"d","ε":"e","ζ":"z","η":"i","θ":"th","ι":"i","κ":"k","λ":"l","μ":"m","ν":"n","ξ":"ks","ο":"o","π":"p","ρ":"r","σ":"s","τ":"t","υ":"y","φ":"f","χ":"x","ψ":"ps","ω":"o","ά":"a","έ":"e","ί":"i","ό":"o","ύ":"y","ή":"i","ώ":"o","ς":"s","ϊ":"i","ΰ":"y","ϋ":"y","ΐ":"i","Α":"A","Β":"B","Γ":"G","Δ":"D","Ε":"E","Ζ":"Z","Η":"I","Θ":"TH","Ι":"I","Κ":"K","Λ":"L","Μ":"M","Ν":"N","Ξ":"KS","Ο":"O","Π":"P","Ρ":"R","Σ":"S","Τ":"T","Υ":"Y","Φ":"F","Χ":"X","Ψ":"PS","Ω":"O","Ά":"A","Έ":"E","Ί":"I","Ό":"O","Ύ":"Y","Ή":"I","Ώ":"O","Ϊ":"I","Ϋ":"Y","ā":"a","ē":"e","ģ":"g","ī":"i","ķ":"k","ļ":"l","ņ":"n","ū":"u","Ā":"A","Ē":"E","Ģ":"G","Ī":"I","Ķ":"k","Ļ":"L","Ņ":"N","Ū":"U","Ќ":"Kj","ќ":"kj","Љ":"Lj","љ":"lj","Њ":"Nj","њ":"nj","Тс":"Ts","тс":"ts","ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ś":"s","ź":"z","ż":"z","Ą":"A","Ć":"C","Ę":"E","Ł":"L","Ń":"N","Ś":"S","Ź":"Z","Ż":"Z","Є":"Ye","І":"I","Ї":"Yi","Ґ":"G","є":"ye","і":"i","ї":"yi","ґ":"g","ă":"a","Ă":"A","ș":"s","Ș":"S","ț":"t","Ț":"T","ţ":"t","Ţ":"T","а":"a","б":"b","в":"v","г":"g","д":"d","е":"e","ё":"yo","ж":"zh","з":"z","и":"i","й":"i","к":"k","л":"l","м":"m","н":"n","о":"o","п":"p","р":"r","с":"s","т":"t","у":"u","ф":"f","х":"kh","ц":"c","ч":"ch","ш":"sh","щ":"sh","ъ":"","ы":"y","ь":"","э":"e","ю":"yu","я":"ya","А":"A","Б":"B","В":"V","Г":"G","Д":"D","Е":"E","Ё":"Yo","Ж":"Zh","З":"Z","И":"I","Й":"I","К":"K","Л":"L","М":"M","Н":"N","О":"O","П":"P","Р":"R","С":"S","Т":"T","У":"U","Ф":"F","Х":"Kh","Ц":"C","Ч":"Ch","Ш":"Sh","Щ":"Sh","Ъ":"","Ы":"Y","Ь":"","Э":"E","Ю":"Yu","Я":"Ya","ђ":"dj","ј":"j","ћ":"c","џ":"dz","Ђ":"Dj","Ј":"j","Ћ":"C","Џ":"Dz","ľ":"l","ĺ":"l","ŕ":"r","Ľ":"L","Ĺ":"L","Ŕ":"R","ş":"s","Ş":"S","ı":"i","İ":"I","ğ":"g","Ğ":"G","ả":"a","Ả":"A","ẳ":"a","Ẳ":"A","ẩ":"a","Ẩ":"A","đ":"d","Đ":"D","ẹ":"e","Ẹ":"E","ẽ":"e","Ẽ":"E","ẻ":"e","Ẻ":"E","ế":"e","Ế":"E","ề":"e","Ề":"E","ệ":"e","Ệ":"E","ễ":"e","Ễ":"E","ể":"e","Ể":"E","ỏ":"o","ọ":"o","Ọ":"o","ố":"o","Ố":"O","ồ":"o","Ồ":"O","ổ":"o","Ổ":"O","ộ":"o","Ộ":"O","ỗ":"o","Ỗ":"O","ơ":"o","Ơ":"O","ớ":"o","Ớ":"O","ờ":"o","Ờ":"O","ợ":"o","Ợ":"O","ỡ":"o","Ỡ":"O","Ở":"o","ở":"o","ị":"i","Ị":"I","ĩ":"i","Ĩ":"I","ỉ":"i","Ỉ":"i","ủ":"u","Ủ":"U","ụ":"u","Ụ":"U","ũ":"u","Ũ":"U","ư":"u","Ư":"U","ứ":"u","Ứ":"U","ừ":"u","Ừ":"U","ự":"u","Ự":"U","ữ":"u","Ữ":"U","ử":"u","Ử":"ư","ỷ":"y","Ỷ":"y","ỳ":"y","Ỳ":"Y","ỵ":"y","Ỵ":"Y","ỹ":"y","Ỹ":"Y","ạ":"a","Ạ":"A","ấ":"a","Ấ":"A","ầ":"a","Ầ":"A","ậ":"a","Ậ":"A","ẫ":"a","Ẫ":"A","ắ":"a","Ắ":"A","ằ":"a","Ằ":"A","ặ":"a","Ặ":"A","ẵ":"a","Ẵ":"A","⓪":"0","①":"1","②":"2","③":"3","④":"4","⑤":"5","⑥":"6","⑦":"7","⑧":"8","⑨":"9","⑩":"10","⑪":"11","⑫":"12","⑬":"13","⑭":"14","⑮":"15","⑯":"16","⑰":"17","⑱":"18","⑲":"18","⑳":"18","⓵":"1","⓶":"2","⓷":"3","⓸":"4","⓹":"5","⓺":"6","⓻":"7","⓼":"8","⓽":"9","⓾":"10","⓿":"0","⓫":"11","⓬":"12","⓭":"13","⓮":"14","⓯":"15","⓰":"16","⓱":"17","⓲":"18","⓳":"19","⓴":"20","Ⓐ":"A","Ⓑ":"B","Ⓒ":"C","Ⓓ":"D","Ⓔ":"E","Ⓕ":"F","Ⓖ":"G","Ⓗ":"H","Ⓘ":"I","Ⓙ":"J","Ⓚ":"K","Ⓛ":"L","Ⓜ":"M","Ⓝ":"N","Ⓞ":"O","Ⓟ":"P","Ⓠ":"Q","Ⓡ":"R","Ⓢ":"S","Ⓣ":"T","Ⓤ":"U","Ⓥ":"V","Ⓦ":"W","Ⓧ":"X","Ⓨ":"Y","Ⓩ":"Z","ⓐ":"a","ⓑ":"b","ⓒ":"c","ⓓ":"d","ⓔ":"e","ⓕ":"f","ⓖ":"g","ⓗ":"h","ⓘ":"i","ⓙ":"j","ⓚ":"k","ⓛ":"l","ⓜ":"m","ⓝ":"n","ⓞ":"o","ⓟ":"p","ⓠ":"q","ⓡ":"r","ⓢ":"s","ⓣ":"t","ⓤ":"u","ⓦ":"v","ⓥ":"w","ⓧ":"x","ⓨ":"y","ⓩ":"z","“":'"',"”":'"',"‘":"'","’":"'","∂":"d","ƒ":"f","™":"(TM)","©":"(C)","œ":"oe","Œ":"OE","®":"(R)","†":"+","℠":"(SM)","…":"...","˚":"o","º":"o","ª":"a","•":"*","၊":",","။":".",$:"USD","€":"EUR","₢":"BRN","₣":"FRF","£":"GBP","₤":"ITL","₦":"NGN","₧":"ESP","₩":"KRW","₪":"ILS","₫":"VND","₭":"LAK","₮":"MNT","₯":"GRD","₱":"ARS","₲":"PYG","₳":"ARA","₴":"UAH","₵":"GHS","¢":"cent","¥":"CNY","元":"CNY","円":"YEN","﷼":"IRR","₠":"EWE","฿":"THB","₨":"INR","₹":"INR","₰":"PF","₺":"TRY","؋":"AFN","₼":"AZN","лв":"BGN","៛":"KHR","₡":"CRC","₸":"KZT","ден":"MKD","zł":"PLN","₽":"RUB","₾":"GEL"},n=["်","ް"],t={"ာ":"a","ါ":"a","ေ":"e","ဲ":"e","ိ":"i","ီ":"i","ို":"o","ု":"u","ူ":"u","ေါင်":"aung","ော":"aw","ော်":"aw","ေါ":"aw","ေါ်":"aw","်":"်","က်":"et","ိုက်":"aik","ောက်":"auk","င်":"in","ိုင်":"aing","ောင်":"aung","စ်":"it","ည်":"i","တ်":"at","ိတ်":"eik","ုတ်":"ok","ွတ်":"ut","ေတ်":"it","ဒ်":"d","ိုဒ်":"ok","ုဒ်":"ait","န်":"an","ာန်":"an","ိန်":"ein","ုန်":"on","ွန်":"un","ပ်":"at","ိပ်":"eik","ုပ်":"ok","ွပ်":"ut","န်ုပ်":"nub","မ်":"an","ိမ်":"ein","ုမ်":"on","ွမ်":"un","ယ်":"e","ိုလ်":"ol","ဉ်":"in","ံ":"an","ိံ":"ein","ုံ":"on","ައް":"ah","ަށް":"ah"},i={en:{},az:{"ç":"c","ə":"e","ğ":"g","ı":"i","ö":"o","ş":"s","ü":"u","Ç":"C","Ə":"E","Ğ":"G","İ":"I","Ö":"O","Ş":"S","Ü":"U"},cs:{"č":"c","ď":"d","ě":"e","ň":"n","ř":"r","š":"s","ť":"t","ů":"u","ž":"z","Č":"C","Ď":"D","Ě":"E","Ň":"N","Ř":"R","Š":"S","Ť":"T","Ů":"U","Ž":"Z"},fi:{"ä":"a","Ä":"A","ö":"o","Ö":"O"},hu:{"ä":"a","Ä":"A","ö":"o","Ö":"O","ü":"u","Ü":"U","ű":"u","Ű":"U"},lt:{"ą":"a","č":"c","ę":"e","ė":"e","į":"i","š":"s","ų":"u","ū":"u","ž":"z","Ą":"A","Č":"C","Ę":"E","Ė":"E","Į":"I","Š":"S","Ų":"U","Ū":"U"},lv:{"ā":"a","č":"c","ē":"e","ģ":"g","ī":"i","ķ":"k","ļ":"l","ņ":"n","š":"s","ū":"u","ž":"z","Ā":"A","Č":"C","Ē":"E","Ģ":"G","Ī":"i","Ķ":"k","Ļ":"L","Ņ":"N","Š":"S","Ū":"u","Ž":"Z"},pl:{"ą":"a","ć":"c","ę":"e","ł":"l","ń":"n","ó":"o","ś":"s","ź":"z","ż":"z","Ą":"A","Ć":"C","Ę":"e","Ł":"L","Ń":"N","Ó":"O","Ś":"S","Ź":"Z","Ż":"Z"},sv:{"ä":"a","Ä":"A","ö":"o","Ö":"O"},sk:{"ä":"a","Ä":"A"},sr:{"љ":"lj","њ":"nj","Љ":"Lj","Њ":"Nj","đ":"dj","Đ":"Dj"},tr:{"Ü":"U","Ö":"O","ü":"u","ö":"o"}},o={ar:{"∆":"delta","∞":"la-nihaya","♥":"hob","&":"wa","|":"aw","<":"aqal-men",">":"akbar-men","∑":"majmou","¤":"omla"},az:{},ca:{"∆":"delta","∞":"infinit","♥":"amor","&":"i","|":"o","<":"menys que",">":"mes que","∑":"suma dels","¤":"moneda"},cs:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"nebo","<":"mensi nez",">":"vetsi nez","∑":"soucet","¤":"mena"},de:{"∆":"delta","∞":"unendlich","♥":"Liebe","&":"und","|":"oder","<":"kleiner als",">":"groesser als","∑":"Summe von","¤":"Waehrung"},dv:{"∆":"delta","∞":"kolunulaa","♥":"loabi","&":"aai","|":"noonee","<":"ah vure kuda",">":"ah vure bodu","∑":"jumula","¤":"faisaa"},en:{"∆":"delta","∞":"infinity","♥":"love","&":"and","|":"or","<":"less than",">":"greater than","∑":"sum","¤":"currency"},es:{"∆":"delta","∞":"infinito","♥":"amor","&":"y","|":"u","<":"menos que",">":"mas que","∑":"suma de los","¤":"moneda"},fa:{"∆":"delta","∞":"bi-nahayat","♥":"eshgh","&":"va","|":"ya","<":"kamtar-az",">":"bishtar-az","∑":"majmooe","¤":"vahed"},fi:{"∆":"delta","∞":"aarettomyys","♥":"rakkaus","&":"ja","|":"tai","<":"pienempi kuin",">":"suurempi kuin","∑":"summa","¤":"valuutta"},fr:{"∆":"delta","∞":"infiniment","♥":"Amour","&":"et","|":"ou","<":"moins que",">":"superieure a","∑":"somme des","¤":"monnaie"},ge:{"∆":"delta","∞":"usasruloba","♥":"siqvaruli","&":"da","|":"an","<":"naklebi",">":"meti","∑":"jami","¤":"valuta"},gr:{},hu:{"∆":"delta","∞":"vegtelen","♥":"szerelem","&":"es","|":"vagy","<":"kisebb mint",">":"nagyobb mint","∑":"szumma","¤":"penznem"},it:{"∆":"delta","∞":"infinito","♥":"amore","&":"e","|":"o","<":"minore di",">":"maggiore di","∑":"somma","¤":"moneta"},lt:{"∆":"delta","∞":"begalybe","♥":"meile","&":"ir","|":"ar","<":"maziau nei",">":"daugiau nei","∑":"suma","¤":"valiuta"},lv:{"∆":"delta","∞":"bezgaliba","♥":"milestiba","&":"un","|":"vai","<":"mazak neka",">":"lielaks neka","∑":"summa","¤":"valuta"},my:{"∆":"kwahkhyaet","∞":"asaonasme","♥":"akhyait","&":"nhin","|":"tho","<":"ngethaw",">":"kyithaw","∑":"paungld","¤":"ngwekye"},mk:{},nl:{"∆":"delta","∞":"oneindig","♥":"liefde","&":"en","|":"of","<":"kleiner dan",">":"groter dan","∑":"som","¤":"valuta"},pl:{"∆":"delta","∞":"nieskonczonosc","♥":"milosc","&":"i","|":"lub","<":"mniejsze niz",">":"wieksze niz","∑":"suma","¤":"waluta"},pt:{"∆":"delta","∞":"infinito","♥":"amor","&":"e","|":"ou","<":"menor que",">":"maior que","∑":"soma","¤":"moeda"},ro:{"∆":"delta","∞":"infinit","♥":"dragoste","&":"si","|":"sau","<":"mai mic ca",">":"mai mare ca","∑":"suma","¤":"valuta"},ru:{"∆":"delta","∞":"beskonechno","♥":"lubov","&":"i","|":"ili","<":"menshe",">":"bolshe","∑":"summa","¤":"valjuta"},sk:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"alebo","<":"menej ako",">":"viac ako","∑":"sucet","¤":"mena"},sr:{},tr:{"∆":"delta","∞":"sonsuzluk","♥":"ask","&":"ve","|":"veya","<":"kucuktur",">":"buyuktur","∑":"toplam","¤":"para birimi"},uk:{"∆":"delta","∞":"bezkinechnist","♥":"lubov","&":"i","|":"abo","<":"menshe",">":"bilshe","∑":"suma","¤":"valjuta"},vn:{"∆":"delta","∞":"vo cuc","♥":"yeu","&":"va","|":"hoac","<":"nho hon",">":"lon hon","∑":"tong","¤":"tien te"}},u=[";","?",":","@","&","=","+","$",",","/"].join(""),s=[";","?",":","@","&","=","+","$",","].join(""),l=[".","!","~","*","'","(",")"].join(""),r=function(a,r){var m,d,g,k,y,f,p,z,b,A,v,E,O,j,S="-",w="",U="",C=!0,N={},R="";if("string"!=typeof a)return"";if("string"==typeof r&&(S=r),p=o.en,z=i.en,"object"==typeof r){m=r.maintainCase||!1,N=r.custom&&"object"==typeof r.custom?r.custom:N,g=+r.truncate>1&&r.truncate||!1,k=r.uric||!1,y=r.uricNoSlash||!1,f=r.mark||!1,C=!1!==r.symbols&&!1!==r.lang,S=r.separator||S,k&&(R+=u),y&&(R+=s),f&&(R+=l),p=r.lang&&o[r.lang]&&C?o[r.lang]:C?o.en:{},z=r.lang&&i[r.lang]?i[r.lang]:!1===r.lang||!0===r.lang?{}:i.en,r.titleCase&&"number"==typeof r.titleCase.length&&Array.prototype.toString.call(r.titleCase)?(r.titleCase.forEach(function(a){N[a+""]=a+""}),d=!0):d=!!r.titleCase,r.custom&&"number"==typeof r.custom.length&&Array.prototype.toString.call(r.custom)&&r.custom.forEach(function(a){N[a+""]=a+""}),Object.keys(N).forEach(function(e){var n;n=e.length>1?new RegExp("\\b"+h(e)+"\\b","gi"):new RegExp(h(e),"gi"),a=a.replace(n,N[e])});for(v in N)R+=v}for(R=h(R+=S),O=!1,j=!1,A=0,E=(a=a.replace(/(^\s+|\s+$)/g,"")).length;A<E;A++)v=a[A],c(v,N)?O=!1:z[v]?(v=O&&z[v].match(/[A-Za-z0-9]/)?" "+z[v]:z[v],O=!1):v in e?(A+1<E&&n.indexOf(a[A+1])>=0?(U+=v,v=""):!0===j?(v=t[U]+e[v],U=""):v=O&&e[v].match(/[A-Za-z0-9]/)?" "+e[v]:e[v],O=!1,j=!1):v in t?(U+=v,v="",A===E-1&&(v=t[U]),j=!0):!p[v]||k&&-1!==u.indexOf(v)||y&&-1!==s.indexOf(v)?(!0===j?(v=t[U]+v,U="",j=!1):O&&(/[A-Za-z0-9]/.test(v)||w.substr(-1).match(/A-Za-z0-9]/))&&(v=" "+v),O=!1):(v=O||w.substr(-1).match(/[A-Za-z0-9]/)?S+p[v]:p[v],v+=void 0!==a[A+1]&&a[A+1].match(/[A-Za-z0-9]/)?S:"",O=!0),w+=v.replace(new RegExp("[^\\w\\s"+R+"_-]","g"),S);return d&&(w=w.replace(/(\w)(\S*)/g,function(a,e,n){var t=e.toUpperCase()+(null!==n?n:"");return Object.keys(N).indexOf(t.toLowerCase())<0?t:t.toLowerCase()})),w=w.replace(/\s+/g,S).replace(new RegExp("\\"+S+"+","g"),S).replace(new RegExp("(^\\"+S+"+|\\"+S+"+$)","g"),""),g&&w.length>g&&(b=w.charAt(g)===S,w=w.slice(0,g),b||(w=w.slice(0,w.lastIndexOf(S)))),m||d||(w=w.toLowerCase()),w},m=function(a){return function(e){return r(e,a)}},h=function(a){return a.replace(/[-\\^$*+?.()|[\]{}\/]/g,"\\$&")},c=function(a,e){for(var n in e)if(e[n]===a)return!0};if("undefined"!=typeof module&&module.exports)module.exports=r,module.exports.createSlug=m;else if("undefined"!=typeof define&&define.amd)define([],function(){return r});else try{if(a.getSlug||a.createSlug)throw"speakingurl: globals exists /(getSlug|createSlug)/";a.getSlug=r,a.createSlug=m}catch(a){}}(this);
|
classes/admin-user-profile.php
CHANGED
@@ -26,7 +26,21 @@ class Dokan_Admin_User_Profile {
|
|
26 |
function enqueue_scripts( $page ) {
|
27 |
if ( in_array( $page, array( 'profile.php', 'user-edit.php' )) ) {
|
28 |
wp_enqueue_media();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
}
|
|
|
30 |
}
|
31 |
|
32 |
/**
|
@@ -79,60 +93,68 @@ class Dokan_Admin_User_Profile {
|
|
79 |
),
|
80 |
);
|
81 |
?>
|
82 |
-
<h3><?php
|
83 |
|
84 |
<table class="form-table">
|
85 |
<tbody>
|
86 |
<tr>
|
87 |
-
<th><?php
|
88 |
<td>
|
89 |
<div class="dokan-banner">
|
90 |
<div class="image-wrap<?php echo $banner ? '' : ' dokan-hide'; ?>">
|
91 |
<?php $banner_url = $banner ? wp_get_attachment_url( $banner ) : ''; ?>
|
92 |
-
<input type="hidden" class="dokan-file-field" value="<?php echo $banner; ?>" name="dokan_banner">
|
93 |
<img class="dokan-banner-img" src="<?php echo esc_url( $banner_url ); ?>">
|
94 |
|
95 |
<a class="close dokan-remove-banner-image">×</a>
|
96 |
</div>
|
97 |
|
98 |
-
<div class="button-area<?php echo $banner ? ' dokan-hide' : ''; ?>">
|
99 |
-
<a href="#" class="dokan-banner-drag button button-primary"><?php
|
100 |
-
<p class="description"><?php
|
101 |
</div>
|
102 |
</div> <!-- .dokan-banner -->
|
103 |
</td>
|
104 |
</tr>
|
105 |
|
106 |
<tr>
|
107 |
-
<th><?php
|
108 |
<td>
|
109 |
<input type="text" name="dokan_store_name" class="regular-text" value="<?php echo esc_attr( $store_settings['store_name'] ); ?>">
|
110 |
</td>
|
111 |
</tr>
|
112 |
|
113 |
<tr>
|
114 |
-
<th><?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
<td>
|
116 |
<input type="text" name="dokan_store_address[street_1]" class="regular-text" value="<?php echo esc_attr( $address_street1 ) ?>">
|
117 |
</td>
|
118 |
</tr>
|
119 |
|
120 |
<tr>
|
121 |
-
<th><?php
|
122 |
<td>
|
123 |
<input type="text" name="dokan_store_address[street_2]" class="regular-text" value="<?php echo esc_attr( $address_street2 ) ?>">
|
124 |
</td>
|
125 |
</tr>
|
126 |
|
127 |
<tr>
|
128 |
-
<th><?php
|
129 |
<td>
|
130 |
<input type="text" name="dokan_store_address[city]" class="regular-text" value="<?php echo esc_attr( $address_city ) ?>">
|
131 |
</td>
|
132 |
</tr>
|
133 |
|
134 |
<tr>
|
135 |
-
<th><?php
|
136 |
<td>
|
137 |
<input type="text" name="dokan_store_address[zip]" class="regular-text" value="<?php echo esc_attr( $address_zip ) ?>">
|
138 |
</td>
|
@@ -143,7 +165,7 @@ class Dokan_Admin_User_Profile {
|
|
143 |
<th><label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label></th>
|
144 |
<td>
|
145 |
<?php if ( ! empty( $field['type'] ) && 'select' == $field['type'] ) : ?>
|
146 |
-
|
147 |
<?php
|
148 |
if ( $key == 'country') {
|
149 |
$selected = esc_attr( $address_country );
|
@@ -162,7 +184,7 @@ class Dokan_Admin_User_Profile {
|
|
162 |
$value = esc_attr( $address_state );
|
163 |
}
|
164 |
?>
|
165 |
-
|
166 |
<?php endif; ?>
|
167 |
|
168 |
<span class="description"><?php echo wp_kses_post( $field['description'] ); ?></span>
|
@@ -172,7 +194,7 @@ class Dokan_Admin_User_Profile {
|
|
172 |
|
173 |
|
174 |
<tr>
|
175 |
-
<th><?php
|
176 |
<td>
|
177 |
<input type="text" name="dokan_store_phone" class="regular-text" value="<?php echo esc_attr( $store_settings['phone'] ); ?>">
|
178 |
</td>
|
@@ -181,21 +203,21 @@ class Dokan_Admin_User_Profile {
|
|
181 |
<?php foreach ($social_fields as $key => $value) { ?>
|
182 |
|
183 |
<tr>
|
184 |
-
<th><?php echo $value['title']; ?></th>
|
185 |
<td>
|
186 |
-
<input type="text" name="dokan_social[<?php echo $key; ?>]" class="regular-text" value="<?php echo isset( $store_settings['social'][$key] ) ? esc_url( $store_settings['social'][$key] ) : ''; ?>">
|
187 |
</td>
|
188 |
</tr>
|
189 |
|
190 |
<?php } ?>
|
191 |
|
192 |
<tr>
|
193 |
-
<th><?php
|
194 |
</tr>
|
195 |
|
196 |
<?php if( isset( $store_settings['payment']['paypal']['email'] ) ) { ?>
|
197 |
<tr>
|
198 |
-
<th><?php
|
199 |
<td>
|
200 |
<input type="text" disabled class="regular-text" value="<?php echo esc_attr( $store_settings['payment']['paypal']['email'] ); ?>">
|
201 |
</td>
|
@@ -203,7 +225,7 @@ class Dokan_Admin_User_Profile {
|
|
203 |
<?php } ?>
|
204 |
<?php if( isset( $store_settings['payment']['skrill']['email'] ) ) { ?>
|
205 |
<tr>
|
206 |
-
<th><?php
|
207 |
<td>
|
208 |
<input type="text" disabled class="regular-text" value="<?php echo esc_attr( $store_settings['payment']['skrill']['email'] ); ?>">
|
209 |
</td>
|
@@ -212,96 +234,99 @@ class Dokan_Admin_User_Profile {
|
|
212 |
|
213 |
<?php if( isset( $store_settings['payment']['bank'] ) ) { ?>
|
214 |
<tr>
|
215 |
-
<th><?php
|
216 |
<td>
|
217 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['bank_name'] ) ? esc_attr( $store_settings['payment']['bank']['bank_name'] ) : ''; ?>">
|
218 |
</td>
|
219 |
</tr>
|
220 |
<tr>
|
221 |
-
<th><?php
|
222 |
<td>
|
223 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['ac_name'] ) ? esc_attr( $store_settings['payment']['bank']['ac_name'] ) : ''; ?>">
|
224 |
</td>
|
225 |
</tr>
|
226 |
<tr>
|
227 |
-
<th><?php
|
228 |
<td>
|
229 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['ac_number'] ) ? esc_attr( $store_settings['payment']['bank']['ac_number'] ) : ''; ?>">
|
230 |
</td>
|
231 |
</tr>
|
232 |
<tr>
|
233 |
-
<th><?php
|
234 |
<td>
|
235 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['bank_addr'] ) ? esc_attr( $store_settings['payment']['bank']['bank_addr'] ) : ''; ?>">
|
236 |
</td>
|
237 |
</tr>
|
238 |
<tr>
|
239 |
-
<th><?php
|
240 |
<td>
|
241 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['swift'] ) ? esc_attr( $store_settings['payment']['bank']['swift'] ) : ''; ?>">
|
242 |
</td>
|
243 |
</tr>
|
244 |
<?php } ?>
|
245 |
<tr>
|
246 |
-
<th><?php
|
247 |
<td>
|
248 |
<label for="dokan_enable_selling">
|
249 |
<input type="hidden" name="dokan_enable_selling" value="no">
|
250 |
<input name="dokan_enable_selling" type="checkbox" id="dokan_enable_selling" value="yes" <?php checked( $selling, 'yes' ); ?> />
|
251 |
-
<?php
|
252 |
</label>
|
253 |
|
254 |
-
<p class="description"><?php
|
255 |
</td>
|
256 |
</tr>
|
257 |
|
258 |
<tr>
|
259 |
-
<th><?php
|
260 |
<td>
|
261 |
<label for="dokan_publish">
|
262 |
<input type="hidden" name="dokan_publish" value="no">
|
263 |
<input name="dokan_publish" type="checkbox" id="dokan_publish" value="yes" <?php checked( $publishing, 'yes' ); ?> />
|
264 |
-
<?php
|
265 |
</label>
|
266 |
|
267 |
-
<p class="description"><?php
|
268 |
</td>
|
269 |
</tr>
|
270 |
|
271 |
<tr>
|
272 |
-
<th><?php
|
273 |
<td>
|
274 |
<select id="dokan_admin_percentage_type" name="dokan_admin_percentage_type">
|
275 |
-
<option value="percentage" <?php selected( $admin_commission_type, 'percentage' ) ?> ><?php
|
276 |
-
<option value="flat" <?php selected( $admin_commission_type, 'flat' ) ?>><?php
|
277 |
</select>
|
278 |
-
<p class="description"><?php
|
279 |
</td>
|
280 |
</tr>
|
281 |
<tr>
|
282 |
-
<th><?php
|
283 |
<td>
|
284 |
<input type="text" class="small-text" name="dokan_admin_percentage" value="<?php echo esc_attr( $admin_commission ); ?>">
|
285 |
|
286 |
-
<p class="description"><?php
|
287 |
</td>
|
288 |
</tr>
|
289 |
|
290 |
<tr>
|
291 |
-
<th><?php
|
292 |
<td>
|
293 |
<label for="dokan_feature">
|
294 |
<input type="hidden" name="dokan_feature" value="no">
|
295 |
<input name="dokan_feature" type="checkbox" id="dokan_feature" value="yes" <?php checked( $feature_seller, 'yes' ); ?> />
|
296 |
-
<?php
|
297 |
</label>
|
298 |
|
299 |
-
<p class="description"><?php
|
300 |
</td>
|
301 |
</tr>
|
302 |
|
303 |
<?php do_action( 'dokan_seller_meta_fields', $user ); ?>
|
304 |
|
|
|
|
|
|
|
305 |
</tbody>
|
306 |
</table>
|
307 |
|
@@ -335,6 +360,12 @@ class Dokan_Admin_User_Profile {
|
|
335 |
display:block;
|
336 |
cursor: pointer;
|
337 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
338 |
</style>
|
339 |
|
340 |
<script type="text/javascript">
|
@@ -395,6 +426,58 @@ class Dokan_Admin_User_Profile {
|
|
395 |
};
|
396 |
|
397 |
Dokan_Settings.init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
398 |
});
|
399 |
</script>
|
400 |
<?php
|
@@ -412,13 +495,17 @@ class Dokan_Admin_User_Profile {
|
|
412 |
return;
|
413 |
}
|
414 |
|
|
|
|
|
|
|
|
|
415 |
if ( ! isset( $_POST['dokan_enable_selling'] ) ) {
|
416 |
return;
|
417 |
}
|
418 |
|
419 |
$selling = sanitize_text_field( $_POST['dokan_enable_selling'] );
|
420 |
$publishing = sanitize_text_field( $_POST['dokan_publish'] );
|
421 |
-
$percentage =
|
422 |
$percentage_type = empty( $_POST['dokan_admin_percentage_type'] ) ? 'percentage' : $_POST['dokan_admin_percentage_type'];
|
423 |
$feature_seller = sanitize_text_field( $_POST['dokan_feature'] );
|
424 |
$store_settings = dokan_get_store_info( $user_id );
|
@@ -440,6 +527,7 @@ class Dokan_Admin_User_Profile {
|
|
440 |
}
|
441 |
}
|
442 |
|
|
|
443 |
update_user_meta( $user_id, 'dokan_profile_settings', $store_settings );
|
444 |
update_user_meta( $user_id, 'dokan_enable_selling', $selling );
|
445 |
update_user_meta( $user_id, 'dokan_publishing', $publishing );
|
@@ -450,4 +538,4 @@ class Dokan_Admin_User_Profile {
|
|
450 |
|
451 |
do_action( 'dokan_process_seller_meta_fields', $user_id );
|
452 |
}
|
453 |
-
}
|
26 |
function enqueue_scripts( $page ) {
|
27 |
if ( in_array( $page, array( 'profile.php', 'user-edit.php' )) ) {
|
28 |
wp_enqueue_media();
|
29 |
+
|
30 |
+
$admin_admin_script = array(
|
31 |
+
'ajaxurl' => admin_url( 'admin-ajax.php' ),
|
32 |
+
'nonce' => wp_create_nonce( 'dokan_reviews' ),
|
33 |
+
'ajax_loader' => DOKAN_PLUGIN_ASSEST.'/images/ajax-loader.gif',
|
34 |
+
'seller' => array(
|
35 |
+
'available' => __( 'Available', 'dokan-lite' ),
|
36 |
+
'notAvailable' => __( 'Not Available', 'dokan-lite' )
|
37 |
+
),
|
38 |
+
);
|
39 |
+
|
40 |
+
wp_enqueue_script( 'speaking-url' );
|
41 |
+
wp_localize_script( 'jquery', 'dokan_user_profile', $admin_admin_script );
|
42 |
}
|
43 |
+
|
44 |
}
|
45 |
|
46 |
/**
|
93 |
),
|
94 |
);
|
95 |
?>
|
96 |
+
<h3><?php esc_html_e( 'Dokan Options', 'dokan-lite' ); ?></h3>
|
97 |
|
98 |
<table class="form-table">
|
99 |
<tbody>
|
100 |
<tr>
|
101 |
+
<th><?php esc_html_e( 'Banner', 'dokan-lite' ); ?></th>
|
102 |
<td>
|
103 |
<div class="dokan-banner">
|
104 |
<div class="image-wrap<?php echo $banner ? '' : ' dokan-hide'; ?>">
|
105 |
<?php $banner_url = $banner ? wp_get_attachment_url( $banner ) : ''; ?>
|
106 |
+
<input type="hidden" class="dokan-file-field" value="<?php echo esc_attr( $banner ); ?>" name="dokan_banner">
|
107 |
<img class="dokan-banner-img" src="<?php echo esc_url( $banner_url ); ?>">
|
108 |
|
109 |
<a class="close dokan-remove-banner-image">×</a>
|
110 |
</div>
|
111 |
|
112 |
+
<div class="button-area<?php echo esc_attr( $banner ) ? ' dokan-hide' : ''; ?>">
|
113 |
+
<a href="#" class="dokan-banner-drag button button-primary"><?php esc_html_e( 'Upload banner', 'dokan-lite' ); ?></a>
|
114 |
+
<p class="description"><?php esc_html_e( '(Upload a banner for your store. Banner size is (825x300) pixels. )', 'dokan-lite' ); ?></p>
|
115 |
</div>
|
116 |
</div> <!-- .dokan-banner -->
|
117 |
</td>
|
118 |
</tr>
|
119 |
|
120 |
<tr>
|
121 |
+
<th><?php esc_html_e( 'Store name', 'dokan-lite' ); ?></th>
|
122 |
<td>
|
123 |
<input type="text" name="dokan_store_name" class="regular-text" value="<?php echo esc_attr( $store_settings['store_name'] ); ?>">
|
124 |
</td>
|
125 |
</tr>
|
126 |
|
127 |
<tr>
|
128 |
+
<th><?php esc_html_e( 'Store URL', 'dokan-lite' ); ?></th>
|
129 |
+
<td>
|
130 |
+
<input type="text" name="dokan_store_url" class="regular-text" id="seller-url" value="<?php echo esc_attr( $user->data->user_nicename ); ?>"><strong id="url-alart-mgs"></strong>
|
131 |
+
<p><small><?php echo home_url() . '/' . dokan_get_option( 'custom_store_url', 'dokan_general', 'store' ); ?>/<strong id="url-alart"><?php echo esc_attr( $user->data->user_nicename ); ?></strong></small></p>
|
132 |
+
</td>
|
133 |
+
</tr>
|
134 |
+
|
135 |
+
<tr>
|
136 |
+
<th><?php esc_html_e( 'Address 1', 'dokan-lite' ); ?></th>
|
137 |
<td>
|
138 |
<input type="text" name="dokan_store_address[street_1]" class="regular-text" value="<?php echo esc_attr( $address_street1 ) ?>">
|
139 |
</td>
|
140 |
</tr>
|
141 |
|
142 |
<tr>
|
143 |
+
<th><?php esc_html_e( 'Address 2', 'dokan-lite' ); ?></th>
|
144 |
<td>
|
145 |
<input type="text" name="dokan_store_address[street_2]" class="regular-text" value="<?php echo esc_attr( $address_street2 ) ?>">
|
146 |
</td>
|
147 |
</tr>
|
148 |
|
149 |
<tr>
|
150 |
+
<th><?php esc_html_e( 'Town/City', 'dokan-lite' ); ?></th>
|
151 |
<td>
|
152 |
<input type="text" name="dokan_store_address[city]" class="regular-text" value="<?php echo esc_attr( $address_city ) ?>">
|
153 |
</td>
|
154 |
</tr>
|
155 |
|
156 |
<tr>
|
157 |
+
<th><?php esc_html_e( 'Zip Code', 'dokan-lite' ); ?></th>
|
158 |
<td>
|
159 |
<input type="text" name="dokan_store_address[zip]" class="regular-text" value="<?php echo esc_attr( $address_zip ) ?>">
|
160 |
</td>
|
165 |
<th><label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label></th>
|
166 |
<td>
|
167 |
<?php if ( ! empty( $field['type'] ) && 'select' == $field['type'] ) : ?>
|
168 |
+
<select name="dokan_store_address[<?php echo esc_attr( $key ); ?>]" id="<?php echo esc_attr( $key ); ?>" class="<?php echo ( ! empty( $field['class'] ) ? esc_attr( $field['class'] ) : '' ); ?>" style="width: 25em;">
|
169 |
<?php
|
170 |
if ( $key == 'country') {
|
171 |
$selected = esc_attr( $address_country );
|
184 |
$value = esc_attr( $address_state );
|
185 |
}
|
186 |
?>
|
187 |
+
<input type="text" name="dokan_store_address[<?php echo esc_attr( $key ); ?>]" id="<?php echo esc_attr( $key ); ?>" value="<?php echo esc_attr( $value ); ?>" class="<?php echo ( ! empty( $field['class'] ) ? esc_attr( $field['class'] ) : 'regular-text' ); ?>" />
|
188 |
<?php endif; ?>
|
189 |
|
190 |
<span class="description"><?php echo wp_kses_post( $field['description'] ); ?></span>
|
194 |
|
195 |
|
196 |
<tr>
|
197 |
+
<th><?php esc_html_e( 'Phone Number', 'dokan-lite' ); ?></th>
|
198 |
<td>
|
199 |
<input type="text" name="dokan_store_phone" class="regular-text" value="<?php echo esc_attr( $store_settings['phone'] ); ?>">
|
200 |
</td>
|
203 |
<?php foreach ($social_fields as $key => $value) { ?>
|
204 |
|
205 |
<tr>
|
206 |
+
<th><?php echo esc_attr( $value['title'] ); ?></th>
|
207 |
<td>
|
208 |
+
<input type="text" name="dokan_social[<?php echo esc_attr( $key ); ?>]" class="regular-text" value="<?php echo isset( $store_settings['social'][$key] ) ? esc_url( $store_settings['social'][$key] ) : ''; ?>">
|
209 |
</td>
|
210 |
</tr>
|
211 |
|
212 |
<?php } ?>
|
213 |
|
214 |
<tr>
|
215 |
+
<th><?php esc_html_e( 'Payment Options : ', 'dokan-lite' ); ?></th>
|
216 |
</tr>
|
217 |
|
218 |
<?php if( isset( $store_settings['payment']['paypal']['email'] ) ) { ?>
|
219 |
<tr>
|
220 |
+
<th><?php esc_html_e( 'Paypal Email ', 'dokan-lite' ); ?></th>
|
221 |
<td>
|
222 |
<input type="text" disabled class="regular-text" value="<?php echo esc_attr( $store_settings['payment']['paypal']['email'] ); ?>">
|
223 |
</td>
|
225 |
<?php } ?>
|
226 |
<?php if( isset( $store_settings['payment']['skrill']['email'] ) ) { ?>
|
227 |
<tr>
|
228 |
+
<th><?php esc_html_e( 'Skrill Email ', 'dokan-lite' ); ?></th>
|
229 |
<td>
|
230 |
<input type="text" disabled class="regular-text" value="<?php echo esc_attr( $store_settings['payment']['skrill']['email'] ); ?>">
|
231 |
</td>
|
234 |
|
235 |
<?php if( isset( $store_settings['payment']['bank'] ) ) { ?>
|
236 |
<tr>
|
237 |
+
<th><?php esc_html_e( 'Bank name ', 'dokan-lite' ); ?></th>
|
238 |
<td>
|
239 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['bank_name'] ) ? esc_attr( $store_settings['payment']['bank']['bank_name'] ) : ''; ?>">
|
240 |
</td>
|
241 |
</tr>
|
242 |
<tr>
|
243 |
+
<th><?php esc_html_e( 'Account Name ', 'dokan-lite' ); ?></th>
|
244 |
<td>
|
245 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['ac_name'] ) ? esc_attr( $store_settings['payment']['bank']['ac_name'] ) : ''; ?>">
|
246 |
</td>
|
247 |
</tr>
|
248 |
<tr>
|
249 |
+
<th><?php esc_html_e( 'Account Number ', 'dokan-lite' ); ?></th>
|
250 |
<td>
|
251 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['ac_number'] ) ? esc_attr( $store_settings['payment']['bank']['ac_number'] ) : ''; ?>">
|
252 |
</td>
|
253 |
</tr>
|
254 |
<tr>
|
255 |
+
<th><?php esc_html_e( 'Bank Address ', 'dokan-lite' ); ?></th>
|
256 |
<td>
|
257 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['bank_addr'] ) ? esc_attr( $store_settings['payment']['bank']['bank_addr'] ) : ''; ?>">
|
258 |
</td>
|
259 |
</tr>
|
260 |
<tr>
|
261 |
+
<th><?php esc_html_e( 'Bank Swift ', 'dokan-lite' ); ?></th>
|
262 |
<td>
|
263 |
<input type="text" disabled class="regular-text" value="<?php echo isset( $store_settings['payment']['bank']['swift'] ) ? esc_attr( $store_settings['payment']['bank']['swift'] ) : ''; ?>">
|
264 |
</td>
|
265 |
</tr>
|
266 |
<?php } ?>
|
267 |
<tr>
|
268 |
+
<th><?php esc_html_e( 'Selling', 'dokan-lite' ); ?></th>
|
269 |
<td>
|
270 |
<label for="dokan_enable_selling">
|
271 |
<input type="hidden" name="dokan_enable_selling" value="no">
|
272 |
<input name="dokan_enable_selling" type="checkbox" id="dokan_enable_selling" value="yes" <?php checked( $selling, 'yes' ); ?> />
|
273 |
+
<?php esc_html_e( 'Enable Adding Products', 'dokan-lite' ); ?>
|
274 |
</label>
|
275 |
|
276 |
+
<p class="description"><?php esc_html_e( 'Enable or disable product adding capability', 'dokan-lite' ) ?></p>
|
277 |
</td>
|
278 |
</tr>
|
279 |
|
280 |
<tr>
|
281 |
+
<th><?php esc_html_e( 'Publishing', 'dokan-lite' ); ?></th>
|
282 |
<td>
|
283 |
<label for="dokan_publish">
|
284 |
<input type="hidden" name="dokan_publish" value="no">
|
285 |
<input name="dokan_publish" type="checkbox" id="dokan_publish" value="yes" <?php checked( $publishing, 'yes' ); ?> />
|
286 |
+
<?php esc_html_e( 'Publish product directly', 'dokan-lite' ); ?>
|
287 |
</label>
|
288 |
|
289 |
+
<p class="description"><?php esc_html_e( 'Bypass pending, publish products directly', 'dokan-lite' ) ?></p>
|
290 |
</td>
|
291 |
</tr>
|
292 |
|
293 |
<tr>
|
294 |
+
<th><?php esc_html_e( 'Admin Commission Type ', 'dokan-lite' ); ?></th>
|
295 |
<td>
|
296 |
<select id="dokan_admin_percentage_type" name="dokan_admin_percentage_type">
|
297 |
+
<option value="percentage" <?php selected( $admin_commission_type, 'percentage' ) ?> ><?php esc_html_e( 'Percentage', 'dokan-lite' ) ?></option>
|
298 |
+
<option value="flat" <?php selected( $admin_commission_type, 'flat' ) ?>><?php esc_html_e( 'Flat', 'dokan-lite' ) ?></option>
|
299 |
</select>
|
300 |
+
<p class="description"><?php esc_html_e( 'Set the commmission type admin gets from this seller', 'dokan-lite' ) ?></p>
|
301 |
</td>
|
302 |
</tr>
|
303 |
<tr>
|
304 |
+
<th><?php esc_html_e( 'Admin Commission ', 'dokan-lite' ); ?></th>
|
305 |
<td>
|
306 |
<input type="text" class="small-text" name="dokan_admin_percentage" value="<?php echo esc_attr( $admin_commission ); ?>">
|
307 |
|
308 |
+
<p class="description"><?php esc_html_e( 'It will override the default commission admin gets from each sales', 'dokan-lite' ) ?></p>
|
309 |
</td>
|
310 |
</tr>
|
311 |
|
312 |
<tr>
|
313 |
+
<th><?php esc_html_e( 'Featured vendor', 'dokan-lite' ); ?></th>
|
314 |
<td>
|
315 |
<label for="dokan_feature">
|
316 |
<input type="hidden" name="dokan_feature" value="no">
|
317 |
<input name="dokan_feature" type="checkbox" id="dokan_feature" value="yes" <?php checked( $feature_seller, 'yes' ); ?> />
|
318 |
+
<?php esc_html_e( 'Mark as featured vendor', 'dokan-lite' ); ?>
|
319 |
</label>
|
320 |
|
321 |
+
<p class="description"><?php esc_html_e( 'This vendor will be marked as a featured vendor.', 'dokan-lite' ) ?></p>
|
322 |
</td>
|
323 |
</tr>
|
324 |
|
325 |
<?php do_action( 'dokan_seller_meta_fields', $user ); ?>
|
326 |
|
327 |
+
<?php
|
328 |
+
wp_nonce_field( 'dokan_update_user_profile_info', 'dokan_update_user_profile_info_nonce' );
|
329 |
+
?>
|
330 |
</tbody>
|
331 |
</table>
|
332 |
|
360 |
display:block;
|
361 |
cursor: pointer;
|
362 |
}
|
363 |
+
.text-success {
|
364 |
+
color: green;
|
365 |
+
}
|
366 |
+
.text-danger {
|
367 |
+
color: red;
|
368 |
+
}
|
369 |
</style>
|
370 |
|
371 |
<script type="text/javascript">
|
426 |
};
|
427 |
|
428 |
Dokan_Settings.init();
|
429 |
+
|
430 |
+
$('#seller-url').keydown(function(e) {
|
431 |
+
var text = $(this).val();
|
432 |
+
|
433 |
+
// Allow: backspace, delete, tab, escape, enter and .
|
434 |
+
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 109, 110, 173, 189, 190]) !== -1 ||
|
435 |
+
// Allow: Ctrl+A
|
436 |
+
(e.keyCode == 65 && e.ctrlKey === true) ||
|
437 |
+
// Allow: home, end, left, right
|
438 |
+
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
439 |
+
// let it happen, don't do anything
|
440 |
+
return;
|
441 |
+
}
|
442 |
+
|
443 |
+
if ((e.shiftKey || (e.keyCode < 65 || e.keyCode > 90) && (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) ) {
|
444 |
+
e.preventDefault();
|
445 |
+
}
|
446 |
+
});
|
447 |
+
|
448 |
+
$('#seller-url').keyup(function(e) {
|
449 |
+
$('#url-alart').text( getSlug( $(this).val() ) );
|
450 |
+
});
|
451 |
+
|
452 |
+
$('#seller-url').on('focusout', function() {
|
453 |
+
var self = $(this),
|
454 |
+
data = {
|
455 |
+
action : 'shop_url',
|
456 |
+
url_slug : self.val(),
|
457 |
+
_nonce : dokan_user_profile.nonce,
|
458 |
+
};
|
459 |
+
|
460 |
+
if ( self.val() === '' ) {
|
461 |
+
return;
|
462 |
+
}
|
463 |
+
|
464 |
+
var row = self.closest('td');
|
465 |
+
|
466 |
+
row.block({ message: null, overlayCSS: { background: '#f1f1f1 url(' + dokan_user_profile.ajax_loader + ') no-repeat center', opacity: 0.3 } });
|
467 |
+
|
468 |
+
$.post( dokan_user_profile.ajaxurl, data, function(resp) {
|
469 |
+
|
470 |
+
if ( resp.success === true ) {
|
471 |
+
$('#url-alart').removeClass('text-danger').addClass('text-success');
|
472 |
+
$('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan_user_profile.seller.available);
|
473 |
+
} else {
|
474 |
+
$('#url-alart').removeClass('text-success').addClass('text-danger');
|
475 |
+
$('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan_user_profile.seller.notAvailable);
|
476 |
+
}
|
477 |
+
|
478 |
+
row.unblock();
|
479 |
+
} );
|
480 |
+
});
|
481 |
});
|
482 |
</script>
|
483 |
<?php
|
495 |
return;
|
496 |
}
|
497 |
|
498 |
+
if ( isset( $_POST['dokan_update_user_profile_info_nonce'] ) && ! wp_verify_nonce( $_POST['dokan_update_user_profile_info_nonce'], 'dokan_update_user_profile_info' ) ) {
|
499 |
+
return;
|
500 |
+
}
|
501 |
+
|
502 |
if ( ! isset( $_POST['dokan_enable_selling'] ) ) {
|
503 |
return;
|
504 |
}
|
505 |
|
506 |
$selling = sanitize_text_field( $_POST['dokan_enable_selling'] );
|
507 |
$publishing = sanitize_text_field( $_POST['dokan_publish'] );
|
508 |
+
$percentage = isset( $_POST['dokan_admin_percentage'] ) && $_POST['dokan_admin_percentage'] != '' ? floatval( $_POST['dokan_admin_percentage'] ) : '';
|
509 |
$percentage_type = empty( $_POST['dokan_admin_percentage_type'] ) ? 'percentage' : $_POST['dokan_admin_percentage_type'];
|
510 |
$feature_seller = sanitize_text_field( $_POST['dokan_feature'] );
|
511 |
$store_settings = dokan_get_store_info( $user_id );
|
527 |
}
|
528 |
}
|
529 |
|
530 |
+
wp_update_user( array( 'ID' => $user_id, 'user_nicename' => sanitize_title( $_POST['dokan_store_url'] ) ) );
|
531 |
update_user_meta( $user_id, 'dokan_profile_settings', $store_settings );
|
532 |
update_user_meta( $user_id, 'dokan_enable_selling', $selling );
|
533 |
update_user_meta( $user_id, 'dokan_publishing', $publishing );
|
538 |
|
539 |
do_action( 'dokan_process_seller_meta_fields', $user_id );
|
540 |
}
|
541 |
+
}
|
classes/admin-withdraw.php
CHANGED
@@ -36,10 +36,15 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
36 |
* @return void admin
|
37 |
*/
|
38 |
function bulk_action_handler() {
|
|
|
39 |
if ( ! current_user_can( 'manage_woocommerce' ) ) {
|
40 |
return;
|
41 |
}
|
42 |
|
|
|
|
|
|
|
|
|
43 |
if ( ! isset( $_POST['dokan_withdraw_bulk'] ) ) {
|
44 |
return;
|
45 |
}
|
@@ -81,7 +86,7 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
81 |
$amount = $_POST['amount'][$key];
|
82 |
$method = $_POST['method'][$key];
|
83 |
$note = $_POST['note'][$key];
|
84 |
-
|
85 |
do_action( 'dokan_withdraw_request_cancelled', $user_id, $amount, $method, $note );
|
86 |
$this->update_status( $withdraw_id, $user_id, 2 );
|
87 |
}
|
@@ -97,7 +102,11 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
97 |
$user_id = $_POST['user_id'][$key];
|
98 |
$amount = $_POST['amount'][$key];
|
99 |
$method = $_POST['method'][$key];
|
100 |
-
|
|
|
|
|
|
|
|
|
101 |
$this->update_status( $withdraw_id, $user_id, 1 );
|
102 |
do_action( 'dokan_withdraw_request_approved', $user_id, $amount, $method );
|
103 |
}
|
@@ -116,8 +125,6 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
116 |
|
117 |
break;
|
118 |
}
|
119 |
-
|
120 |
-
|
121 |
}
|
122 |
|
123 |
/**
|
@@ -159,9 +166,9 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
159 |
header( 'Content-Disposition: attachment; filename="withdraw-'.date( 'd-m-y' ).'.csv"' );
|
160 |
|
161 |
foreach ( $data as $fields ) {
|
162 |
-
echo $fields['email']. ',';
|
163 |
-
echo $fields['amount']. ',';
|
164 |
-
echo $fields['currency'] . "\n";
|
165 |
}
|
166 |
|
167 |
die();
|
@@ -202,7 +209,7 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
202 |
if ( ! empty( $message ) ) {
|
203 |
?>
|
204 |
<div class="updated">
|
205 |
-
<p><strong><?php echo $message; ?></strong></p>
|
206 |
</div>
|
207 |
<?php
|
208 |
}
|
@@ -216,13 +223,13 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
216 |
<td class="check-column">
|
217 |
<input type="checkbox" class="dokan-withdraw-allcheck">
|
218 |
</td>
|
219 |
-
<th><?php
|
220 |
-
<th><?php
|
221 |
-
<th><?php
|
222 |
-
<th><?php
|
223 |
-
<th><?php
|
224 |
-
<th><?php
|
225 |
-
<th><?php
|
226 |
</tr>
|
227 |
</thead>
|
228 |
<tfoot>
|
@@ -230,13 +237,13 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
230 |
<td class="check-column">
|
231 |
<input type="checkbox" class="dokan-withdraw-allcheck">
|
232 |
</td>
|
233 |
-
<th><?php
|
234 |
-
<th><?php
|
235 |
-
<th><?php
|
236 |
-
<th><?php
|
237 |
-
<th><?php
|
238 |
-
<th><?php
|
239 |
-
<th><?php
|
240 |
</tr>
|
241 |
</tfoot>
|
242 |
|
@@ -250,33 +257,33 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
250 |
<tr class="<?php echo ( $count % 2 ) == 0 ? 'alternate': 'odd'; ?>">
|
251 |
|
252 |
<th class="check-column">
|
253 |
-
<input type="checkbox" name="id[<?php echo $row->id;?>]" value="<?php echo $row->id
|
254 |
-
<input type="hidden" name="user_id[<?php echo $row->id;?>]" value="<?php echo $row->user_id; ?>">
|
255 |
-
<input type="hidden" name="method[<?php echo $row->id;?>]" value="<?php echo esc_attr( $row->method ); ?>">
|
256 |
-
<input type="hidden" name="amount[<?php echo $row->id;?>]" value="<?php echo esc_attr( $row->amount ); ?>">
|
257 |
</th>
|
258 |
<td>
|
259 |
-
<strong><a href="<?php echo admin_url( 'user-edit.php?user_id=' . $user_data->ID )
|
260 |
<div class="row-actions">
|
261 |
<?php if ( $status == 'pending' ) { ?>
|
262 |
|
263 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="approve" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
264 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="cancel" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
265 |
|
266 |
<?php } elseif ( $status == 'completed' ) { ?>
|
267 |
|
268 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="cancel" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
269 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="pending" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
270 |
|
271 |
<?php } elseif ( $status == 'cancelled' ) { ?>
|
272 |
|
273 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="approve" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
274 |
-
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="pending" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
275 |
|
276 |
<?php } ?>
|
277 |
|
278 |
<?php if ( $result ) { ?>
|
279 |
-
<span class="trash"> | <a href="#" class="dokan-withdraw-action" data-status="delete" data-withdraw_id = "<?php echo $row->id; ?>"><?php
|
280 |
|
281 |
<?php } ?>
|
282 |
</div>
|
@@ -300,14 +307,15 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
300 |
<p class="ajax_note"><?php echo $row->note; ?></p>
|
301 |
|
302 |
<div class="row-actions">
|
303 |
-
<a href="#" class="dokan-note-field"><?php
|
304 |
</div>
|
305 |
</div>
|
306 |
|
307 |
<div class="note-form" style="display: none;">
|
308 |
<p><input type="text" class="dokan-note-text" name="note[<?php echo $row->id;?>]" value="<?php echo esc_attr( $row->note ); ?>"></p>
|
309 |
-
|
310 |
-
<a
|
|
|
311 |
</div>
|
312 |
</div>
|
313 |
|
@@ -323,7 +331,7 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
323 |
?>
|
324 |
<tr>
|
325 |
<td colspan="8">
|
326 |
-
<?php
|
327 |
</td>
|
328 |
</tr>
|
329 |
<?php
|
@@ -335,31 +343,34 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
335 |
|
336 |
<div class="alignleft actions bulkactions">
|
337 |
<select name="dokan_withdraw_bulk">
|
338 |
-
<option value="-1" selected="selected"><?php
|
339 |
|
340 |
<?php if ( $status == 'pending' ) { ?>
|
341 |
|
342 |
-
<option value="approve"><?php
|
343 |
-
<option value="cancel"><?php
|
344 |
|
345 |
<?php } elseif ( $status == 'completed' ) { ?>
|
346 |
|
347 |
-
<option value="cancel"><?php
|
348 |
-
<option value="pending"><?php
|
349 |
|
350 |
<?php } elseif ( $status == 'cancelled' ) { ?>
|
351 |
|
352 |
-
<option value="approve"><?php
|
353 |
-
<option value="pending"><?php
|
354 |
|
355 |
<?php } ?>
|
356 |
|
357 |
<?php if ( $result ) { ?>
|
358 |
-
<option value="delete"><?php
|
359 |
-
<option value="paypal"><?php
|
360 |
<?php } ?>
|
361 |
</select>
|
362 |
|
|
|
|
|
|
|
363 |
<input type="hidden" name="status_page" value="<?php echo $status; ?>">
|
364 |
<input type="submit" name="" id="doaction2" class="button button-primary" value="<?php esc_attr_e( 'Apply', 'dokan-lite' ); ?>">
|
365 |
</div>
|
@@ -370,8 +381,8 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
370 |
$page_links = paginate_links( array(
|
371 |
'base' => add_query_arg( 'paged', '%#%' ),
|
372 |
'format' => '',
|
373 |
-
'prev_text' => __( '«', '
|
374 |
-
'next_text' => __( '»', '
|
375 |
'total' => $num_of_pages,
|
376 |
'current' => $pagenum
|
377 |
) );
|
@@ -463,10 +474,12 @@ class Dokan_Admin_Withdraw extends Dokan_Withdraw {
|
|
463 |
form_wrap = self.closest('.note-form'),
|
464 |
row_id = self.data('id'),
|
465 |
note = form_wrap.find('input.dokan-note-text').val(),
|
|
|
466 |
data = {
|
467 |
'action': 'note',
|
468 |
'row_id': row_id,
|
469 |
'note': note,
|
|
|
470 |
};
|
471 |
|
472 |
$.post( '<?php echo admin_url( 'admin-ajax.php' ); ?>', data, function(resp) {
|
36 |
* @return void admin
|
37 |
*/
|
38 |
function bulk_action_handler() {
|
39 |
+
|
40 |
if ( ! current_user_can( 'manage_woocommerce' ) ) {
|
41 |
return;
|
42 |
}
|
43 |
|
44 |
+
if ( isset( $_POST['dokan_admin_withdraw_bulk_nonce'] ) && ! wp_verify_nonce( $_POST['dokan_admin_withdraw_bulk_nonce'], 'dokan_admin_withdraw_bulk_action' ) ) {
|
45 |
+
return;
|
46 |
+
}
|
47 |
+
|
48 |
if ( ! isset( $_POST['dokan_withdraw_bulk'] ) ) {
|
49 |
return;
|
50 |
}
|
86 |
$amount = $_POST['amount'][$key];
|
87 |
$method = $_POST['method'][$key];
|
88 |
$note = $_POST['note'][$key];
|
89 |
+
|
90 |
do_action( 'dokan_withdraw_request_cancelled', $user_id, $amount, $method, $note );
|
91 |
$this->update_status( $withdraw_id, $user_id, 2 );
|
92 |
}
|
102 |
$user_id = $_POST['user_id'][$key];
|
103 |
$amount = $_POST['amount'][$key];
|
104 |
$method = $_POST['method'][$key];
|
105 |
+
|
106 |
+
if ( dokan_get_seller_balance( $user_id, false ) < $amount ) {
|
107 |
+
continue;
|
108 |
+
}
|
109 |
+
|
110 |
$this->update_status( $withdraw_id, $user_id, 1 );
|
111 |
do_action( 'dokan_withdraw_request_approved', $user_id, $amount, $method );
|
112 |
}
|
125 |
|
126 |
break;
|
127 |
}
|
|
|
|
|
128 |
}
|
129 |
|
130 |
/**
|
166 |
header( 'Content-Disposition: attachment; filename="withdraw-'.date( 'd-m-y' ).'.csv"' );
|
167 |
|
168 |
foreach ( $data as $fields ) {
|
169 |
+
echo esc_html( $fields['email'] ) . ',';
|
170 |
+
echo esc_html( $fields['amount'] ) . ',';
|
171 |
+
echo esc_html( $fields['currency'] ) . "\n";
|
172 |
}
|
173 |
|
174 |
die();
|
209 |
if ( ! empty( $message ) ) {
|
210 |
?>
|
211 |
<div class="updated">
|
212 |
+
<p><strong><?php echo esc_html( $message ); ?></strong></p>
|
213 |
</div>
|
214 |
<?php
|
215 |
}
|
223 |
<td class="check-column">
|
224 |
<input type="checkbox" class="dokan-withdraw-allcheck">
|
225 |
</td>
|
226 |
+
<th><?php esc_html_e( 'User Name', 'dokan-lite' ); ?></th>
|
227 |
+
<th><?php esc_html_e( 'Amount', 'dokan-lite' ); ?></th>
|
228 |
+
<th><?php esc_html_e( 'Method', 'dokan-lite' ); ?></th>
|
229 |
+
<th><?php esc_html_e( 'Method Details', 'dokan-lite' ); ?></th>
|
230 |
+
<th><?php esc_html_e( 'Note', 'dokan-lite' ); ?></th>
|
231 |
+
<th><?php esc_html_e( 'IP', 'dokan-lite' ); ?></th>
|
232 |
+
<th><?php esc_html_e( 'Date', 'dokan-lite' ); ?></th>
|
233 |
</tr>
|
234 |
</thead>
|
235 |
<tfoot>
|
237 |
<td class="check-column">
|
238 |
<input type="checkbox" class="dokan-withdraw-allcheck">
|
239 |
</td>
|
240 |
+
<th><?php esc_html_e( 'User Name', 'dokan-lite' ); ?></th>
|
241 |
+
<th><?php esc_html_e( 'Amount', 'dokan-lite' ); ?></th>
|
242 |
+
<th><?php esc_html_e( 'Method', 'dokan-lite' ); ?></th>
|
243 |
+
<th><?php esc_html_e( 'Method Details', 'dokan-lite' ); ?></th>
|
244 |
+
<th><?php esc_html_e( 'Note', 'dokan-lite' ); ?></th>
|
245 |
+
<th><?php esc_html_e( 'IP', 'dokan-lite' ); ?></th>
|
246 |
+
<th><?php esc_html_e( 'Date', 'dokan-lite' ); ?></th>
|
247 |
</tr>
|
248 |
</tfoot>
|
249 |
|
257 |
<tr class="<?php echo ( $count % 2 ) == 0 ? 'alternate': 'odd'; ?>">
|
258 |
|
259 |
<th class="check-column">
|
260 |
+
<input type="checkbox" name="id[<?php echo esc_attr( $row->id );?>]" value="<?php echo esc_attr( $row->id )?>">
|
261 |
+
<input type="hidden" name="user_id[<?php echo esc_attr( $row->id );?>]" value="<?php echo esc_attr( $row->user_id ); ?>">
|
262 |
+
<input type="hidden" name="method[<?php echo esc_attr( $row->id );?>]" value="<?php echo esc_attr( $row->method ); ?>">
|
263 |
+
<input type="hidden" name="amount[<?php echo esc_attr( $row->id );?>]" value="<?php echo esc_attr( $row->amount ); ?>">
|
264 |
</th>
|
265 |
<td>
|
266 |
+
<strong><a href="<?php echo esc_attr( admin_url( 'user-edit.php?user_id=' . $user_data->ID ) ) ?>"><?php echo esc_attr( $user_data->user_login ); ?></a></strong>
|
267 |
<div class="row-actions">
|
268 |
<?php if ( $status == 'pending' ) { ?>
|
269 |
|
270 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="approve" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Approve', 'dokan-lite' ); ?></a> | </span>
|
271 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="cancel" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Cancel', 'dokan-lite' ); ?></a></span>
|
272 |
|
273 |
<?php } elseif ( $status == 'completed' ) { ?>
|
274 |
|
275 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="cancel" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Cancel', 'dokan-lite' ); ?></a> | </span>
|
276 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="pending" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Pending', 'dokan-lite' ); ?></a></span>
|
277 |
|
278 |
<?php } elseif ( $status == 'cancelled' ) { ?>
|
279 |
|
280 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="approve" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Approve', 'dokan-lite' ); ?></a> | </span>
|
281 |
+
<span class="edit"><a href="#" class="dokan-withdraw-action" data-status="pending" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Pending', 'dokan-lite' ); ?></a></span>
|
282 |
|
283 |
<?php } ?>
|
284 |
|
285 |
<?php if ( $result ) { ?>
|
286 |
+
<span class="trash"> | <a href="#" class="dokan-withdraw-action" data-status="delete" data-withdraw_id = "<?php echo esc_attr( $row->id ); ?>"><?php esc_html_e( 'Delete', 'dokan-lite' ); ?></a></span>
|
287 |
|
288 |
<?php } ?>
|
289 |
</div>
|
307 |
<p class="ajax_note"><?php echo $row->note; ?></p>
|
308 |
|
309 |
<div class="row-actions">
|
310 |
+
<a href="#" class="dokan-note-field"><?php esc_html_e( 'Add note', 'dokan-lite' ); ?></a>
|
311 |
</div>
|
312 |
</div>
|
313 |
|
314 |
<div class="note-form" style="display: none;">
|
315 |
<p><input type="text" class="dokan-note-text" name="note[<?php echo $row->id;?>]" value="<?php echo esc_attr( $row->note ); ?>"></p>
|
316 |
+
<?php wp_nonce_field( 'dokan_admin_action', 'dokan_admin_nonce' ); ?>
|
317 |
+
<a class="dokan-note-submit button" data-id=<?php echo $row->id; ?> href="#" ><?php esc_html_e( 'Save', 'dokan-lite' ); ?></a>
|
318 |
+
<a href="#" class="dokan-note-cancel"><?php esc_html_e( 'cancel', 'dokan-lite' ); ?></a>
|
319 |
</div>
|
320 |
</div>
|
321 |
|
331 |
?>
|
332 |
<tr>
|
333 |
<td colspan="8">
|
334 |
+
<?php esc_html_e( 'No results found', 'dokan-lite' ) ?>
|
335 |
</td>
|
336 |
</tr>
|
337 |
<?php
|
343 |
|
344 |
<div class="alignleft actions bulkactions">
|
345 |
<select name="dokan_withdraw_bulk">
|
346 |
+
<option value="-1" selected="selected"><?php esc_html_e( 'Bulk Actions', 'dokan-lite' ); ?></option>
|
347 |
|
348 |
<?php if ( $status == 'pending' ) { ?>
|
349 |
|
350 |
+
<option value="approve"><?php esc_html_e( 'Approve Requests', 'dokan-lite' ); ?></option>
|
351 |
+
<option value="cancel"><?php esc_html_e( 'Mark as Cancelled', 'dokan-lite' ); ?></option>
|
352 |
|
353 |
<?php } elseif ( $status == 'completed' ) { ?>
|
354 |
|
355 |
+
<option value="cancel"><?php esc_html_e( 'Mark as Cancelled', 'dokan-lite' ); ?></option>
|
356 |
+
<option value="pending"><?php esc_html_e( 'Mark Pending', 'dokan-lite' ); ?></option>
|
357 |
|
358 |
<?php } elseif ( $status == 'cancelled' ) { ?>
|
359 |
|
360 |
+
<option value="approve"><?php esc_html_e( 'Approve Requests', 'dokan-lite' ); ?></option>
|
361 |
+
<option value="pending"><?php esc_html_e( 'Mark Pending', 'dokan-lite' ); ?></option>
|
362 |
|
363 |
<?php } ?>
|
364 |
|
365 |
<?php if ( $result ) { ?>
|
366 |
+
<option value="delete"><?php esc_html_e( 'Delete', 'dokan-lite' ); ?></option>
|
367 |
+
<option value="paypal"><?php esc_html_e( 'Download PayPal mass payment file', 'dokan-lite' ); ?></option>
|
368 |
<?php } ?>
|
369 |
</select>
|
370 |
|
371 |
+
<?php
|
372 |
+
wp_nonce_field( 'dokan_admin_withdraw_bulk_action', 'dokan_admin_withdraw_bulk_nonce' );
|
373 |
+
?>
|
374 |
<input type="hidden" name="status_page" value="<?php echo $status; ?>">
|
375 |
<input type="submit" name="" id="doaction2" class="button button-primary" value="<?php esc_attr_e( 'Apply', 'dokan-lite' ); ?>">
|
376 |
</div>
|
381 |
$page_links = paginate_links( array(
|
382 |
'base' => add_query_arg( 'paged', '%#%' ),
|
383 |
'format' => '',
|
384 |
+
'prev_text' => __( '«', 'dokan-lite' ),
|
385 |
+
'next_text' => __( '»', 'dokan-lite' ),
|
386 |
'total' => $num_of_pages,
|
387 |
'current' => $pagenum
|
388 |
) );
|
474 |
form_wrap = self.closest('.note-form'),
|
475 |
row_id = self.data('id'),
|
476 |
note = form_wrap.find('input.dokan-note-text').val(),
|
477 |
+
nonce = form_wrap.find('input#dokan_admin_nonce').val(),
|
478 |
data = {
|
479 |
'action': 'note',
|
480 |
'row_id': row_id,
|
481 |
'note': note,
|
482 |
+
'dokan_admin_nonce' : nonce
|
483 |
};
|
484 |
|
485 |
$.post( '<?php echo admin_url( 'admin-ajax.php' ); ?>', data, function(resp) {
|
classes/ajax.php
CHANGED
@@ -52,13 +52,9 @@ class Dokan_Ajax {
|
|
52 |
add_action( 'wp_ajax_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
|
53 |
add_action( 'wp_ajax_nopriv_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
|
54 |
|
55 |
-
add_action( 'wp_ajax_dokan_toggle_seller', array( $this, 'toggle_seller_status' ) );
|
56 |
-
|
57 |
add_action( 'wp_ajax_shop_url', array($this, 'shop_url_check') );
|
58 |
add_action( 'wp_ajax_nopriv_shop_url', array($this, 'shop_url_check') );
|
59 |
|
60 |
-
add_filter( 'woocommerce_cart_item_name', array($this, 'seller_info_checkout'), 10, 2 );
|
61 |
-
|
62 |
add_action( 'wp_ajax_dokan_seller_listing_search', array($this, 'seller_listing_search') );
|
63 |
add_action( 'wp_ajax_nopriv_dokan_seller_listing_search', array($this, 'seller_listing_search') );
|
64 |
|
@@ -80,6 +76,10 @@ class Dokan_Ajax {
|
|
80 |
function create_product() {
|
81 |
check_ajax_referer( 'dokan_reviews' );
|
82 |
|
|
|
|
|
|
|
|
|
83 |
parse_str( $_POST['postdata'], $postdata );
|
84 |
|
85 |
$response = dokan_save_product( $postdata );
|
@@ -89,28 +89,18 @@ class Dokan_Ajax {
|
|
89 |
}
|
90 |
|
91 |
if ( is_int( $response ) ) {
|
92 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
93 |
} else {
|
94 |
wp_send_json_error( __( 'Something wrong, please try again later', 'dokan-lite' ) );
|
95 |
}
|
96 |
}
|
97 |
|
98 |
-
/**
|
99 |
-
* Injects seller name on checkout page
|
100 |
-
*
|
101 |
-
* @param array $item_data
|
102 |
-
* @param array $cart_item
|
103 |
-
* @return array
|
104 |
-
*/
|
105 |
-
function seller_info_checkout( $item_data, $cart_item ) {
|
106 |
-
$seller_id = get_post_field( 'post_author', $cart_item['data']->get_id() );
|
107 |
-
$info = dokan_get_store_info( $seller_id );
|
108 |
-
$seller = sprintf( __( '<br><strong> Vendor:</strong> %s', 'dokan-lite' ), $info['store_name'] );
|
109 |
-
$data = $item_data . $seller;
|
110 |
-
|
111 |
-
return apply_filters( 'dokan_seller_info_checkout', $data, $info, $item_data, $cart_item );
|
112 |
-
}
|
113 |
-
|
114 |
/**
|
115 |
* shop url check
|
116 |
*/
|
@@ -141,7 +131,10 @@ class Dokan_Ajax {
|
|
141 |
}
|
142 |
}
|
143 |
|
144 |
-
|
|
|
|
|
|
|
145 |
}
|
146 |
|
147 |
/**
|
@@ -167,7 +160,7 @@ class Dokan_Ajax {
|
|
167 |
die();
|
168 |
}
|
169 |
|
170 |
-
if ( !dokan_is_seller_has_order(
|
171 |
wp_die( __( 'You do not have permission to change this order', 'dokan-lite' ) );
|
172 |
}
|
173 |
|
@@ -201,7 +194,7 @@ class Dokan_Ajax {
|
|
201 |
die();
|
202 |
}
|
203 |
|
204 |
-
if ( !dokan_is_seller_has_order(
|
205 |
wp_die( __( 'You do not have permission to change this order', 'dokan-lite' ) );
|
206 |
}
|
207 |
|
@@ -274,6 +267,11 @@ class Dokan_Ajax {
|
|
274 |
|
275 |
check_ajax_referer( 'dokan_change_status' );
|
276 |
|
|
|
|
|
|
|
|
|
|
|
277 |
$order_id = intval( $_POST['order_id'] );
|
278 |
$order_status = $_POST['order_status'];
|
279 |
|
@@ -284,8 +282,9 @@ class Dokan_Ajax {
|
|
284 |
$status_label = isset( $statuses[$order_status] ) ? $statuses[$order_status] : $order_status;
|
285 |
$status_class = dokan_get_order_status_class( $order_status );
|
286 |
|
287 |
-
|
288 |
-
|
|
|
289 |
}
|
290 |
|
291 |
/**
|
@@ -294,10 +293,11 @@ class Dokan_Ajax {
|
|
294 |
* Catches the form submission from store page
|
295 |
*/
|
296 |
function contact_seller() {
|
297 |
-
$posted = $_POST;
|
298 |
|
299 |
check_ajax_referer( 'dokan_contact_seller' );
|
300 |
|
|
|
|
|
301 |
$contact_name = sanitize_text_field( $posted['name'] );
|
302 |
$contact_email = sanitize_text_field( $posted['email'] );
|
303 |
$contact_message = strip_tags( $posted['message'] );
|
@@ -357,7 +357,7 @@ class Dokan_Ajax {
|
|
357 |
if ( !is_user_logged_in() ) {
|
358 |
die(-1);
|
359 |
}
|
360 |
-
if ( ! current_user_can( '
|
361 |
die(-1);
|
362 |
}
|
363 |
|
@@ -390,12 +390,14 @@ class Dokan_Ajax {
|
|
390 |
*/
|
391 |
public function add_shipping_tracking_info() {
|
392 |
|
393 |
-
|
|
|
|
|
394 |
|
395 |
if ( !is_user_logged_in() ) {
|
396 |
die(-1);
|
397 |
}
|
398 |
-
if ( ! current_user_can( '
|
399 |
die(-1);
|
400 |
}
|
401 |
|
@@ -424,7 +426,7 @@ class Dokan_Ajax {
|
|
424 |
'comment_content' => $ship_info,
|
425 |
'comment_type' => 'order_note',
|
426 |
'comment_parent' => 0,
|
427 |
-
'user_id' =>
|
428 |
'comment_author_IP' => $_SERVER['REMOTE_ADDR'],
|
429 |
'comment_agent' => $_SERVER['HTTP_USER_AGENT'],
|
430 |
'comment_date' => $time,
|
@@ -445,6 +447,8 @@ class Dokan_Ajax {
|
|
445 |
echo wpautop( wptexturize( $ship_info ) );
|
446 |
echo '</div><p class="meta"><a href="#" class="delete_note">'.__( 'Delete', 'dokan-lite' ).'</a></p>';
|
447 |
echo '</li>';
|
|
|
|
|
448 |
}
|
449 |
|
450 |
// Quit out
|
@@ -476,85 +480,6 @@ class Dokan_Ajax {
|
|
476 |
die();
|
477 |
}
|
478 |
|
479 |
-
/**
|
480 |
-
* Enable/disable seller selling capability from admin seller listing page
|
481 |
-
*
|
482 |
-
* @return type
|
483 |
-
*/
|
484 |
-
function toggle_seller_status() {
|
485 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
486 |
-
return;
|
487 |
-
}
|
488 |
-
|
489 |
-
$user_id = isset( $_POST['user_id'] ) ? intval( $_POST['user_id'] ) : 0;
|
490 |
-
$status = sanitize_text_field( $_POST['type'] );
|
491 |
-
|
492 |
-
if ( $user_id && in_array( $status, array( 'yes', 'no' ) ) ) {
|
493 |
-
update_user_meta( $user_id, 'dokan_enable_selling', $status );
|
494 |
-
|
495 |
-
if ( $status == 'no' ) {
|
496 |
-
$this->make_products_pending( $user_id );
|
497 |
-
} else {
|
498 |
-
$this->make_products_published( $user_id );
|
499 |
-
}
|
500 |
-
}
|
501 |
-
|
502 |
-
wp_send_json_success();
|
503 |
-
exit;
|
504 |
-
}
|
505 |
-
|
506 |
-
/**
|
507 |
-
* Make all the products to pending once a seller is deactivated for selling
|
508 |
-
*
|
509 |
-
* @param int $seller_id
|
510 |
-
*/
|
511 |
-
function make_products_pending( $seller_id ) {
|
512 |
-
$args = array(
|
513 |
-
'post_type' => 'product',
|
514 |
-
'post_status' => 'publish',
|
515 |
-
'posts_per_page' => -1,
|
516 |
-
'author' => $seller_id,
|
517 |
-
'orderby' => 'post_date',
|
518 |
-
'order' => 'DESC'
|
519 |
-
);
|
520 |
-
|
521 |
-
$product_query = new WP_Query( $args );
|
522 |
-
$products = $product_query->get_posts();
|
523 |
-
|
524 |
-
if ( $products ) {
|
525 |
-
foreach ($products as $pro) {
|
526 |
-
update_post_meta( $pro->ID, 'inactive_product_flag', 'yes' );
|
527 |
-
wp_update_post( array( 'ID' => $pro->ID, 'post_status' => 'pending' ) );
|
528 |
-
}
|
529 |
-
}
|
530 |
-
}
|
531 |
-
|
532 |
-
/**
|
533 |
-
* Make all the products to published once a seller is activated for selling
|
534 |
-
*
|
535 |
-
* @param int $seller_id
|
536 |
-
*/
|
537 |
-
function make_products_published( $seller_id ) {
|
538 |
-
$args = array(
|
539 |
-
'post_type' => 'product',
|
540 |
-
'post_status' => 'pending',
|
541 |
-
'posts_per_page' => -1,
|
542 |
-
'author' => $seller_id,
|
543 |
-
'orderby' => 'post_date',
|
544 |
-
'order' => 'DESC',
|
545 |
-
'meta_key' => 'inactive_product_flag'
|
546 |
-
);
|
547 |
-
|
548 |
-
$product_query = new WP_Query( $args );
|
549 |
-
$products = $product_query->get_posts();
|
550 |
-
|
551 |
-
if ( $products ) {
|
552 |
-
foreach ($products as $pro) {
|
553 |
-
wp_update_post( array( 'ID' => $pro->ID, 'post_status' => 'publish' ) );
|
554 |
-
}
|
555 |
-
}
|
556 |
-
}
|
557 |
-
|
558 |
/**
|
559 |
* Search seller listing
|
560 |
*
|
@@ -626,9 +551,8 @@ class Dokan_Ajax {
|
|
626 |
* @return void
|
627 |
*/
|
628 |
public function crop_store_banner() {
|
629 |
-
check_ajax_referer( 'image_editor-' . $_POST['id'], 'nonce' );
|
630 |
|
631 |
-
if ( !
|
632 |
wp_send_json_error();
|
633 |
}
|
634 |
|
@@ -652,7 +576,7 @@ class Dokan_Ajax {
|
|
652 |
);
|
653 |
|
654 |
if ( ! $cropped || is_wp_error( $cropped ) ) {
|
655 |
-
wp_send_json_error( array( 'message' => __( 'Image could not be processed. Please go back and try again.' ) ) );
|
656 |
}
|
657 |
|
658 |
/** This filter is documented in wp-admin/custom-header.php */
|
52 |
add_action( 'wp_ajax_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
|
53 |
add_action( 'wp_ajax_nopriv_dokan_revoke_access_to_download', array( $this, 'revoke_access_to_download' ) );
|
54 |
|
|
|
|
|
55 |
add_action( 'wp_ajax_shop_url', array($this, 'shop_url_check') );
|
56 |
add_action( 'wp_ajax_nopriv_shop_url', array($this, 'shop_url_check') );
|
57 |
|
|
|
|
|
58 |
add_action( 'wp_ajax_dokan_seller_listing_search', array($this, 'seller_listing_search') );
|
59 |
add_action( 'wp_ajax_nopriv_dokan_seller_listing_search', array($this, 'seller_listing_search') );
|
60 |
|
76 |
function create_product() {
|
77 |
check_ajax_referer( 'dokan_reviews' );
|
78 |
|
79 |
+
if ( ! current_user_can( 'dokan_add_product' ) ) {
|
80 |
+
wp_send_json_error( __( 'You have no permission to do this action', 'dokan-lite' ) );
|
81 |
+
}
|
82 |
+
|
83 |
parse_str( $_POST['postdata'], $postdata );
|
84 |
|
85 |
$response = dokan_save_product( $postdata );
|
89 |
}
|
90 |
|
91 |
if ( is_int( $response ) ) {
|
92 |
+
if ( current_user_can( 'dokan_edit_product' ) ) {
|
93 |
+
$redirect = dokan_edit_product_url( $response );
|
94 |
+
} else {
|
95 |
+
$redirect = dokan_get_navigation_url( 'products' );
|
96 |
+
}
|
97 |
+
|
98 |
+
wp_send_json_success( $redirect );
|
99 |
} else {
|
100 |
wp_send_json_error( __( 'Something wrong, please try again later', 'dokan-lite' ) );
|
101 |
}
|
102 |
}
|
103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
/**
|
105 |
* shop url check
|
106 |
*/
|
131 |
}
|
132 |
}
|
133 |
|
134 |
+
wp_send_json_success( array(
|
135 |
+
'message' => __( 'Available', 'dokan-lite' ),
|
136 |
+
'url' => sanitize_user( $url_slug )
|
137 |
+
) );
|
138 |
}
|
139 |
|
140 |
/**
|
160 |
die();
|
161 |
}
|
162 |
|
163 |
+
if ( ! dokan_is_seller_has_order( dokan_get_current_user_id(), $order_id ) ) {
|
164 |
wp_die( __( 'You do not have permission to change this order', 'dokan-lite' ) );
|
165 |
}
|
166 |
|
194 |
die();
|
195 |
}
|
196 |
|
197 |
+
if ( ! dokan_is_seller_has_order( dokan_get_current_user_id(), $order_id ) ) {
|
198 |
wp_die( __( 'You do not have permission to change this order', 'dokan-lite' ) );
|
199 |
}
|
200 |
|
267 |
|
268 |
check_ajax_referer( 'dokan_change_status' );
|
269 |
|
270 |
+
if ( ! current_user_can( 'dokan_manage_order' ) ) {
|
271 |
+
wp_send_json_error( __( 'You have no permission to manage this order', 'dokan-lite' ) );
|
272 |
+
return;
|
273 |
+
}
|
274 |
+
|
275 |
$order_id = intval( $_POST['order_id'] );
|
276 |
$order_status = $_POST['order_status'];
|
277 |
|
282 |
$status_label = isset( $statuses[$order_status] ) ? $statuses[$order_status] : $order_status;
|
283 |
$status_class = dokan_get_order_status_class( $order_status );
|
284 |
|
285 |
+
$html = '<label class="dokan-label dokan-label-' . esc_attr( $status_class ) . '">' . esc_attr( $status_label ) . '</label>';
|
286 |
+
|
287 |
+
wp_send_json_success( $html );
|
288 |
}
|
289 |
|
290 |
/**
|
293 |
* Catches the form submission from store page
|
294 |
*/
|
295 |
function contact_seller() {
|
|
|
296 |
|
297 |
check_ajax_referer( 'dokan_contact_seller' );
|
298 |
|
299 |
+
$posted = $_POST;
|
300 |
+
|
301 |
$contact_name = sanitize_text_field( $posted['name'] );
|
302 |
$contact_email = sanitize_text_field( $posted['email'] );
|
303 |
$contact_message = strip_tags( $posted['message'] );
|
357 |
if ( !is_user_logged_in() ) {
|
358 |
die(-1);
|
359 |
}
|
360 |
+
if ( ! current_user_can( 'dokan_manage_order_note' ) ) {
|
361 |
die(-1);
|
362 |
}
|
363 |
|
390 |
*/
|
391 |
public function add_shipping_tracking_info() {
|
392 |
|
393 |
+
if ( isset( $_POST['dokan_security_nonce'] ) && !wp_verify_nonce( sanitize_key( $_POST['dokan_security_nonce'] ), 'dokan_security_action' ) ) {
|
394 |
+
die(-1);
|
395 |
+
}
|
396 |
|
397 |
if ( !is_user_logged_in() ) {
|
398 |
die(-1);
|
399 |
}
|
400 |
+
if ( ! current_user_can( 'dokan_manage_order_note' ) ) {
|
401 |
die(-1);
|
402 |
}
|
403 |
|
426 |
'comment_content' => $ship_info,
|
427 |
'comment_type' => 'order_note',
|
428 |
'comment_parent' => 0,
|
429 |
+
'user_id' => dokan_get_current_user_id(),
|
430 |
'comment_author_IP' => $_SERVER['REMOTE_ADDR'],
|
431 |
'comment_agent' => $_SERVER['HTTP_USER_AGENT'],
|
432 |
'comment_date' => $time,
|
447 |
echo wpautop( wptexturize( $ship_info ) );
|
448 |
echo '</div><p class="meta"><a href="#" class="delete_note">'.__( 'Delete', 'dokan-lite' ).'</a></p>';
|
449 |
echo '</li>';
|
450 |
+
|
451 |
+
do_action( 'dokan_order_tracking_updated', $post_id, dokan_get_current_user_id() );
|
452 |
}
|
453 |
|
454 |
// Quit out
|
480 |
die();
|
481 |
}
|
482 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
483 |
/**
|
484 |
* Search seller listing
|
485 |
*
|
551 |
* @return void
|
552 |
*/
|
553 |
public function crop_store_banner() {
|
|
|
554 |
|
555 |
+
if ( ! dokan_is_user_seller( get_current_user_id() ) ) {
|
556 |
wp_send_json_error();
|
557 |
}
|
558 |
|
576 |
);
|
577 |
|
578 |
if ( ! $cropped || is_wp_error( $cropped ) ) {
|
579 |
+
wp_send_json_error( array( 'message' => __( 'Image could not be processed. Please go back and try again.', 'dokan-lite' ) ) );
|
580 |
}
|
581 |
|
582 |
/** This filter is documented in wp-admin/custom-header.php */
|
classes/installer.php
CHANGED
@@ -133,25 +133,58 @@ class Dokan_Installer {
|
|
133 |
}
|
134 |
|
135 |
add_role( 'seller', __( 'Vendor', 'dokan-lite' ), array(
|
136 |
-
'read'
|
137 |
-
'publish_posts'
|
138 |
-
'edit_posts'
|
139 |
-
'delete_published_posts'
|
140 |
-
'edit_published_posts'
|
141 |
-
'delete_posts'
|
142 |
-
'manage_categories'
|
143 |
-
'moderate_comments'
|
144 |
-
'unfiltered_html'
|
145 |
-
'upload_files'
|
146 |
-
'edit_shop_orders'
|
147 |
-
'edit_product'
|
148 |
-
'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
) );
|
150 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
$wp_roles->add_cap( 'shop_manager', 'dokandar' );
|
152 |
$wp_roles->add_cap( 'administrator', 'dokandar' );
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
}
|
154 |
|
|
|
|
|
|
|
|
|
|
|
155 |
function setup_pages() {
|
156 |
$meta_key = '_wp_page_template';
|
157 |
|
@@ -237,6 +270,13 @@ class Dokan_Installer {
|
|
237 |
return false;
|
238 |
}
|
239 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
function create_tables() {
|
241 |
include_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
242 |
|
@@ -246,6 +286,11 @@ class Dokan_Installer {
|
|
246 |
$this->create_refund_table();
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
249 |
function create_withdraw_table() {
|
250 |
global $wpdb;
|
251 |
|
@@ -257,13 +302,18 @@ class Dokan_Installer {
|
|
257 |
`status` int(1) NOT NULL,
|
258 |
`method` varchar(30) NOT NULL,
|
259 |
`note` text NOT NULL,
|
260 |
-
`ip` varchar(
|
261 |
PRIMARY KEY (id)
|
262 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
|
263 |
|
264 |
dbDelta( $sql );
|
265 |
}
|
266 |
|
|
|
|
|
|
|
|
|
|
|
267 |
function create_sync_table() {
|
268 |
global $wpdb;
|
269 |
|
@@ -271,8 +321,8 @@ class Dokan_Installer {
|
|
271 |
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
272 |
`order_id` bigint(20) DEFAULT NULL,
|
273 |
`seller_id` bigint(20) DEFAULT NULL,
|
274 |
-
`order_total` float(11,
|
275 |
-
`net_amount` float(11,
|
276 |
`order_status` varchar(30) DEFAULT NULL,
|
277 |
PRIMARY KEY (`id`),
|
278 |
KEY `order_id` (`order_id`),
|
@@ -304,8 +354,6 @@ class Dokan_Installer {
|
|
304 |
|
305 |
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
306 |
dbDelta( $sql );
|
307 |
-
|
308 |
-
|
309 |
}
|
310 |
|
311 |
/**
|
133 |
}
|
134 |
|
135 |
add_role( 'seller', __( 'Vendor', 'dokan-lite' ), array(
|
136 |
+
'read' => true,
|
137 |
+
'publish_posts' => true,
|
138 |
+
'edit_posts' => true,
|
139 |
+
'delete_published_posts' => true,
|
140 |
+
'edit_published_posts' => true,
|
141 |
+
'delete_posts' => true,
|
142 |
+
'manage_categories' => true,
|
143 |
+
'moderate_comments' => true,
|
144 |
+
'unfiltered_html' => true,
|
145 |
+
'upload_files' => true,
|
146 |
+
'edit_shop_orders' => true,
|
147 |
+
'edit_product' => true,
|
148 |
+
'read_product' => true,
|
149 |
+
'delete_product' => true,
|
150 |
+
'edit_products' => true,
|
151 |
+
'publish_products' => true,
|
152 |
+
'read_private_products' => true,
|
153 |
+
'delete_products' => true,
|
154 |
+
'delete_products' => true,
|
155 |
+
'delete_private_products' => true,
|
156 |
+
'delete_published_products' => true,
|
157 |
+
'delete_published_products' => true,
|
158 |
+
'edit_private_products' => true,
|
159 |
+
'edit_published_products' => true,
|
160 |
+
'manage_product_terms' => true,
|
161 |
+
'delete_product_terms' => true,
|
162 |
+
'assign_product_terms' => true,
|
163 |
+
'dokandar' => true
|
164 |
) );
|
165 |
|
166 |
+
$capabilities = array();
|
167 |
+
$all_cap = dokan_get_all_caps();
|
168 |
+
|
169 |
+
foreach( $all_cap as $key=>$cap ) {
|
170 |
+
$capabilities = array_merge( $capabilities, $cap );
|
171 |
+
}
|
172 |
+
|
173 |
$wp_roles->add_cap( 'shop_manager', 'dokandar' );
|
174 |
$wp_roles->add_cap( 'administrator', 'dokandar' );
|
175 |
+
|
176 |
+
foreach ( $capabilities as $key => $capability ) {
|
177 |
+
$wp_roles->add_cap( 'seller', $capability );
|
178 |
+
$wp_roles->add_cap( 'administrator', $capability );
|
179 |
+
$wp_roles->add_cap( 'shop_manager', $capability );
|
180 |
+
}
|
181 |
}
|
182 |
|
183 |
+
/**
|
184 |
+
* Setup all pages for dokan
|
185 |
+
*
|
186 |
+
* @return void
|
187 |
+
*/
|
188 |
function setup_pages() {
|
189 |
$meta_key = '_wp_page_template';
|
190 |
|
270 |
return false;
|
271 |
}
|
272 |
|
273 |
+
/**
|
274 |
+
* Create necessary tables
|
275 |
+
*
|
276 |
+
* @since 1.4
|
277 |
+
*
|
278 |
+
* @return void
|
279 |
+
*/
|
280 |
function create_tables() {
|
281 |
include_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
282 |
|
286 |
$this->create_refund_table();
|
287 |
}
|
288 |
|
289 |
+
/**
|
290 |
+
* Create withdraw tabless
|
291 |
+
*
|
292 |
+
* @return void
|
293 |
+
*/
|
294 |
function create_withdraw_table() {
|
295 |
global $wpdb;
|
296 |
|
302 |
`status` int(1) NOT NULL,
|
303 |
`method` varchar(30) NOT NULL,
|
304 |
`note` text NOT NULL,
|
305 |
+
`ip` varchar(50) NOT NULL,
|
306 |
PRIMARY KEY (id)
|
307 |
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";
|
308 |
|
309 |
dbDelta( $sql );
|
310 |
}
|
311 |
|
312 |
+
/**
|
313 |
+
* Create order sync table
|
314 |
+
*
|
315 |
+
* @return void
|
316 |
+
*/
|
317 |
function create_sync_table() {
|
318 |
global $wpdb;
|
319 |
|
321 |
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
322 |
`order_id` bigint(20) DEFAULT NULL,
|
323 |
`seller_id` bigint(20) DEFAULT NULL,
|
324 |
+
`order_total` float(11,4) DEFAULT NULL,
|
325 |
+
`net_amount` float(11,4) DEFAULT NULL,
|
326 |
`order_status` varchar(30) DEFAULT NULL,
|
327 |
PRIMARY KEY (`id`),
|
328 |
KEY `order_id` (`order_id`),
|
354 |
|
355 |
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
356 |
dbDelta( $sql );
|
|
|
|
|
357 |
}
|
358 |
|
359 |
/**
|
classes/pageviews.php
CHANGED
@@ -9,29 +9,38 @@ class Dokan_Pageviews {
|
|
9 |
|
10 |
public function __construct() {
|
11 |
/* Registers the entry views extension scripts if we're on the correct page. */
|
12 |
-
add_action( 'template_redirect', array($this, 'load_views'), 25 );
|
13 |
|
14 |
/* Add the entry views AJAX actions to the appropriate hooks. */
|
15 |
-
add_action( 'wp_ajax_dokan_pageview', array($this, 'update_ajax') );
|
16 |
-
add_action( 'wp_ajax_nopriv_dokan_pageview', array($this, 'update_ajax') );
|
17 |
-
}
|
18 |
|
19 |
-
|
|
|
|
|
20 |
|
|
|
21 |
$nonce = wp_create_nonce( 'dokan_pageview' );
|
22 |
|
23 |
-
echo '<script type="text/javascript"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
}
|
25 |
|
26 |
-
function load_views() {
|
27 |
-
|
28 |
if ( is_singular( 'product' ) ) {
|
29 |
global $post;
|
30 |
|
31 |
if ( empty( $_COOKIE['dokan_product_viewed'] ) ) {
|
32 |
$dokan_viewed_products = array();
|
33 |
-
}
|
34 |
-
else {
|
35 |
$dokan_viewed_products = (array) explode( ',', $_COOKIE['dokan_product_viewed'] );
|
36 |
}
|
37 |
|
@@ -39,19 +48,15 @@ class Dokan_Pageviews {
|
|
39 |
$dokan_viewed_products[] = $post->ID;
|
40 |
|
41 |
wp_enqueue_script( 'jquery' );
|
42 |
-
|
43 |
add_action( 'wp_footer', array($this, 'load_scripts') );
|
44 |
}
|
45 |
-
|
46 |
// Store for single product view
|
47 |
setcookie( 'dokan_product_viewed', implode( ',', $dokan_viewed_products ) );
|
48 |
}
|
49 |
}
|
50 |
|
51 |
-
function update_view( $post_id = '' ) {
|
52 |
-
|
53 |
-
if ( !empty( $post_id ) ) {
|
54 |
-
|
55 |
$old_views = get_post_meta( $post_id, $this->meta_key, true );
|
56 |
$new_views = absint( $old_views ) + 1;
|
57 |
|
@@ -59,18 +64,223 @@ class Dokan_Pageviews {
|
|
59 |
}
|
60 |
}
|
61 |
|
62 |
-
function update_ajax() {
|
63 |
-
|
64 |
check_ajax_referer( 'dokan_pageview' );
|
65 |
|
66 |
if ( isset( $_POST['post_id'] ) ) {
|
67 |
$post_id = absint( $_POST['post_id'] );
|
68 |
}
|
69 |
|
70 |
-
if ( !empty( $post_id ) ) {
|
71 |
$this->update_view( $post_id );
|
72 |
}
|
73 |
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
}
|
76 |
}
|
9 |
|
10 |
public function __construct() {
|
11 |
/* Registers the entry views extension scripts if we're on the correct page. */
|
12 |
+
add_action( 'template_redirect', array( $this, 'load_views' ), 25 );
|
13 |
|
14 |
/* Add the entry views AJAX actions to the appropriate hooks. */
|
15 |
+
add_action( 'wp_ajax_dokan_pageview', array( $this, 'update_ajax' ) );
|
16 |
+
add_action( 'wp_ajax_nopriv_dokan_pageview', array( $this, 'update_ajax' ) );
|
|
|
17 |
|
18 |
+
/* Register vendor registration shortcode */
|
19 |
+
add_shortcode( 'dokan-vendor-registration', array( $this, 'vendor_registration_shortcode' ) );
|
20 |
+
}
|
21 |
|
22 |
+
public function load_scripts() {
|
23 |
$nonce = wp_create_nonce( 'dokan_pageview' );
|
24 |
|
25 |
+
echo '<script type="text/javascript">
|
26 |
+
jQuery(document).ready( function($) {
|
27 |
+
var data = {
|
28 |
+
action: "dokan_pageview",
|
29 |
+
_ajax_nonce: "'. $nonce .'",
|
30 |
+
post_id: ' . get_the_ID() . ',
|
31 |
+
}
|
32 |
+
$.post( "' . admin_url( 'admin-ajax.php' ) . '", data );
|
33 |
+
} );
|
34 |
+
</script>';
|
35 |
}
|
36 |
|
37 |
+
public function load_views() {
|
|
|
38 |
if ( is_singular( 'product' ) ) {
|
39 |
global $post;
|
40 |
|
41 |
if ( empty( $_COOKIE['dokan_product_viewed'] ) ) {
|
42 |
$dokan_viewed_products = array();
|
43 |
+
} else {
|
|
|
44 |
$dokan_viewed_products = (array) explode( ',', $_COOKIE['dokan_product_viewed'] );
|
45 |
}
|
46 |
|
48 |
$dokan_viewed_products[] = $post->ID;
|
49 |
|
50 |
wp_enqueue_script( 'jquery' );
|
|
|
51 |
add_action( 'wp_footer', array($this, 'load_scripts') );
|
52 |
}
|
|
|
53 |
// Store for single product view
|
54 |
setcookie( 'dokan_product_viewed', implode( ',', $dokan_viewed_products ) );
|
55 |
}
|
56 |
}
|
57 |
|
58 |
+
public function update_view( $post_id = '' ) {
|
59 |
+
if ( ! empty( $post_id ) ) {
|
|
|
|
|
60 |
$old_views = get_post_meta( $post_id, $this->meta_key, true );
|
61 |
$new_views = absint( $old_views ) + 1;
|
62 |
|
64 |
}
|
65 |
}
|
66 |
|
67 |
+
public function update_ajax() {
|
|
|
68 |
check_ajax_referer( 'dokan_pageview' );
|
69 |
|
70 |
if ( isset( $_POST['post_id'] ) ) {
|
71 |
$post_id = absint( $_POST['post_id'] );
|
72 |
}
|
73 |
|
74 |
+
if ( ! empty( $post_id ) ) {
|
75 |
$this->update_view( $post_id );
|
76 |
}
|
77 |
|
78 |
+
wp_die();
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Vendor regsitration form shortcode callback
|
83 |
+
*
|
84 |
+
* @return html
|
85 |
+
*/
|
86 |
+
public function vendor_registration_shortcode() {
|
87 |
+
if ( is_user_logged_in() ) {
|
88 |
+
_e( 'You are already logged in', 'dokan-lite' );
|
89 |
+
return;
|
90 |
+
}
|
91 |
+
|
92 |
+
$postdata = wc_clean( $_POST ); // WPCS: CSRF ok, input var ok.
|
93 |
+
$role = isset( $postdata['role'] ) ? $postdata['role'] : 'customer';
|
94 |
+
ob_start();
|
95 |
+
|
96 |
+
$notices = wc_get_notices();
|
97 |
+
|
98 |
+
if ( count( $notices ) > 0 ) {
|
99 |
+
wc_print_notices( $notices );
|
100 |
+
}
|
101 |
+
?>
|
102 |
+
|
103 |
+
<form id="register" method="post" class="register">
|
104 |
+
<?php do_action( 'woocommerce_register_form_start' ); ?>
|
105 |
+
|
106 |
+
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>
|
107 |
+
<p class="form-row form-group form-row-wide">
|
108 |
+
<label for="reg_username"><?php _e( 'Username', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
109 |
+
<input type="text" class="input-text form-control" name="username" id="reg_username" value="<?php if ( ! empty( $_POST['username'] ) ) esc_attr( $_POST['username'] ); ?>" required="required" />
|
110 |
+
</p>
|
111 |
+
<?php endif; ?>
|
112 |
+
|
113 |
+
<p class="form-row form-group form-row-wide">
|
114 |
+
<label for="reg_email"><?php _e( 'Email address', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
115 |
+
<input type="email" class="input-text form-control" name="email" id="reg_email" value="<?php if ( ! empty( $_POST['email'] ) ) esc_attr($_POST['email']); ?>" required="required" />
|
116 |
+
<label generated="true" class="reg_email_error"></label>
|
117 |
+
</p>
|
118 |
+
|
119 |
+
<?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>
|
120 |
+
<p class="form-row form-group form-row-wide">
|
121 |
+
<label for="reg_password"><?php _e( 'Password', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
122 |
+
<input type="password" class="input-text form-control" name="password" id="reg_password" value="<?php if ( ! empty( $_POST['password'] ) ) esc_attr( $_POST['password'] ); ?>" required="required" minlength="6" />
|
123 |
+
</p>
|
124 |
+
<?php endif; ?>
|
125 |
+
<!-- Spam Trap -->
|
126 |
+
<div style="left:-999em; position:absolute;"><label for="trap"><?php _e( 'Anti-spam', 'dokan-lite' ); ?></label><input type="text" name="email_2" id="trap" tabindex="-1" /></div>
|
127 |
+
|
128 |
+
<div class="split-row form-row-wide">
|
129 |
+
<p class="form-row form-group">
|
130 |
+
<label for="first-name"><?php _e( 'First Name', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
131 |
+
<input type="text" class="input-text form-control" name="fname" id="first-name" value="<?php if ( ! empty( $postdata['fname'] ) ) echo esc_attr($postdata['fname']); ?>" required="required" />
|
132 |
+
</p>
|
133 |
+
|
134 |
+
<p class="form-row form-group">
|
135 |
+
<label for="last-name"><?php _e( 'Last Name', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
136 |
+
<input type="text" class="input-text form-control" name="lname" id="last-name" value="<?php if ( ! empty( $postdata['lname'] ) ) echo esc_attr($postdata['lname']); ?>" required="required" />
|
137 |
+
</p>
|
138 |
+
</div>
|
139 |
+
|
140 |
+
<p class="form-row form-group form-row-wide">
|
141 |
+
<label for="company-name"><?php _e( 'Shop Name', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
142 |
+
<input type="text" class="input-text form-control" name="shopname" id="company-name" value="<?php if ( ! empty( $postdata['shopname'] ) ) echo esc_attr($postdata['shopname']); ?>" required="required" />
|
143 |
+
</p>
|
144 |
+
|
145 |
+
<p class="form-row form-group form-row-wide">
|
146 |
+
<label for="seller-url" class="pull-left"><?php _e( 'Shop URL', 'dokan-lite' ); ?> <span class="required">*</span></label>
|
147 |
+
<strong id="url-alart-mgs" class="pull-right"></strong>
|
148 |
+
<input type="text" class="input-text form-control" name="shopurl" id="seller-url" value="<?php if ( ! empty( $postdata['shopurl'] ) ) echo esc_attr($postdata['shopurl']); ?>" required="required" />
|
149 |
+
<small><?php echo home_url() . '/' . dokan_get_option( 'custom_store_url', 'dokan_general', 'store' ); ?>/<strong id="url-alart"></strong></small>
|
150 |
+
</p>
|
151 |
+
|
152 |
+
<p class="form-row form-group form-row-wide">
|
153 |
+
<label for="shop-phone"><?php _e( 'Phone Number', 'dokan-lite' ); ?><span class="required">*</span></label>
|
154 |
+
<input type="text" class="input-text form-control" name="phone" id="shop-phone" value="<?php if ( ! empty( $postdata['phone'] ) ) echo esc_attr($postdata['phone']); ?>" required="required" />
|
155 |
+
<input type="hidden" name="role" value="<?php echo esc_attr('seller') ?>">
|
156 |
+
</p>
|
157 |
+
|
158 |
+
<?php
|
159 |
+
$show_toc = dokan_get_option( 'enable_tc_on_reg', 'dokan_general' );
|
160 |
+
|
161 |
+
if ( $show_toc == 'on' ) {
|
162 |
+
$toc_page_id = dokan_get_option( 'reg_tc_page', 'dokan_pages' );
|
163 |
+
if ( $toc_page_id != -1 ) {
|
164 |
+
$toc_page_url = get_permalink( $toc_page_id ); ?>
|
165 |
+
<p class="form-row form-group form-row-wide">
|
166 |
+
<input class="tc_check_box" type="checkbox" id="tc_agree" name="tc_agree" required="required">
|
167 |
+
<label style="display: inline" for="tc_agree"><?php echo sprintf( __( 'I have read and agree to the <a target="_blank" href="%s">Terms & Conditions</a>.', 'dokan-lite' ), $toc_page_url ); ?></label>
|
168 |
+
</p>
|
169 |
+
<?php } ?>
|
170 |
+
<?php } ?>
|
171 |
+
<?php do_action( 'dokan_seller_registration_field_after' ); ?>
|
172 |
+
|
173 |
+
<?php do_action( 'register_form' ); ?>
|
174 |
+
<p class="form-row">
|
175 |
+
<?php wp_nonce_field( 'woocommerce-register', '_wpnonce' ); ?>
|
176 |
+
<input type="submit" class="dokan-btn dokan-btn-theme" name="register" value="<?php _e( 'Register', 'dokan-lite' ); ?>" />
|
177 |
+
</p>
|
178 |
+
<?php do_action( 'woocommerce_register_form_end' ); ?>
|
179 |
+
</form>
|
180 |
+
<?php
|
181 |
+
wp_enqueue_script( 'wc-password-strength-meter' );
|
182 |
+
?>
|
183 |
+
<script>
|
184 |
+
// Dokan Register
|
185 |
+
jQuery(function($) {
|
186 |
+
$('#reg_email').on('change', function() {
|
187 |
+
var self = $(this);
|
188 |
+
var re = /[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}/igm;
|
189 |
+
if ( $('#reg_email').val() == '' || !re.test( $('#reg_email').val() ) ) {
|
190 |
+
$('.reg_email_error').text('Please enter a valid email address.').show();
|
191 |
+
} else {
|
192 |
+
$('.reg_email_error').hide();
|
193 |
+
}
|
194 |
+
});
|
195 |
+
$('.user-role input[type=radio]').on('change', function() {
|
196 |
+
var value = $(this).val();
|
197 |
+
if ( value === 'seller') {
|
198 |
+
$('.show_if_seller').slideDown();
|
199 |
+
if ( $( '.tc_check_box' ).length > 0 )
|
200 |
+
$('input[name=register]').attr('disabled','disabled');
|
201 |
+
} else {
|
202 |
+
$('.show_if_seller').slideUp();
|
203 |
+
if ( $( '.tc_check_box' ).length > 0 )
|
204 |
+
$( 'input[name=register]' ).removeAttr( 'disabled' );
|
205 |
+
}
|
206 |
+
});
|
207 |
+
$( '.tc_check_box' ).on( 'click', function () {
|
208 |
+
var chk_value = $( this ).val();
|
209 |
+
if ( $( this ).prop( "checked" ) ) {
|
210 |
+
$( 'input[name=register]' ).removeAttr( 'disabled' );
|
211 |
+
$( 'input[name=dokan_migration]' ).removeAttr( 'disabled' );
|
212 |
+
} else {
|
213 |
+
$( 'input[name=register]' ).attr( 'disabled', 'disabled' );
|
214 |
+
$( 'input[name=dokan_migration]' ).attr( 'disabled', 'disabled' );
|
215 |
+
}
|
216 |
+
} );
|
217 |
+
if ( $( '.tc_check_box' ).length > 0 ){
|
218 |
+
$( 'input[name=dokan_migration]' ).attr( 'disabled', 'disabled' );
|
219 |
+
}
|
220 |
+
$('#company-name').on('focusout', function() {
|
221 |
+
var value = $(this).val().toLowerCase().replace(/-+/g, '').replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '');
|
222 |
+
$('#seller-url').val(value);
|
223 |
+
$('#url-alart').text( value );
|
224 |
+
$('#seller-url').focus();
|
225 |
+
});
|
226 |
+
$('#seller-url').keydown(function(e) {
|
227 |
+
var text = $(this).val();
|
228 |
+
// Allow: backspace, delete, tab, escape, enter and .
|
229 |
+
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 109, 110, 173, 189, 190]) !== -1 ||
|
230 |
+
// Allow: Ctrl+A
|
231 |
+
(e.keyCode == 65 && e.ctrlKey === true) ||
|
232 |
+
// Allow: home, end, left, right
|
233 |
+
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
234 |
+
// let it happen, don't do anything
|
235 |
+
return;
|
236 |
+
}
|
237 |
+
if ((e.shiftKey || (e.keyCode < 65 || e.keyCode > 90) && (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105) ) {
|
238 |
+
e.preventDefault();
|
239 |
+
}
|
240 |
+
});
|
241 |
+
$('#seller-url').keyup(function(e) {
|
242 |
+
$('#url-alart').text( $(this).val() );
|
243 |
+
});
|
244 |
+
$('#shop-phone').keydown(function(e) {
|
245 |
+
// Allow: backspace, delete, tab, escape, enter and .
|
246 |
+
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 91, 107, 109, 110, 187, 189, 190]) !== -1 ||
|
247 |
+
// Allow: Ctrl+A
|
248 |
+
(e.keyCode == 65 && e.ctrlKey === true) ||
|
249 |
+
// Allow: home, end, left, right
|
250 |
+
(e.keyCode >= 35 && e.keyCode <= 39)) {
|
251 |
+
// let it happen, don't do anything
|
252 |
+
return;
|
253 |
+
}
|
254 |
+
// Ensure that it is a number and stop the keypress
|
255 |
+
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
|
256 |
+
e.preventDefault();
|
257 |
+
}
|
258 |
+
});
|
259 |
+
$('#seller-url').on('focusout', function() {
|
260 |
+
var self = $(this),
|
261 |
+
data = {
|
262 |
+
action : 'shop_url',
|
263 |
+
url_slug : self.val(),
|
264 |
+
_nonce : dokan.nonce,
|
265 |
+
};
|
266 |
+
if ( self.val() === '' ) {
|
267 |
+
return;
|
268 |
+
}
|
269 |
+
var row = self.closest('.form-row');
|
270 |
+
row.block({ message: null, overlayCSS: { background: '#fff url(' + dokan.ajax_loader + ') no-repeat center', opacity: 0.6 } });
|
271 |
+
$.post( dokan.ajaxurl, data, function(resp) {
|
272 |
+
if ( resp == 0){
|
273 |
+
$('#url-alart').removeClass('text-success').addClass('text-danger');
|
274 |
+
$('#url-alart-mgs').removeClass('text-success').addClass('text-danger').text(dokan.seller.notAvailable);
|
275 |
+
} else {
|
276 |
+
$('#url-alart').removeClass('text-danger').addClass('text-success');
|
277 |
+
$('#url-alart-mgs').removeClass('text-danger').addClass('text-success').text(dokan.seller.available);
|
278 |
+
}
|
279 |
+
row.unblock();
|
280 |
+
} );
|
281 |
+
});
|
282 |
+
});
|
283 |
+
</script>
|
284 |
+
<?php return ob_get_clean();
|
285 |
}
|
286 |
}
|
classes/rewrites.php
CHANGED
@@ -19,7 +19,7 @@ class Dokan_Rewrites {
|
|
19 |
add_action( 'init', array( $this, 'register_rule' ) );
|
20 |
|
21 |
add_filter( 'template_include', array( $this, 'store_template' ) );
|
22 |
-
add_filter( 'template_include', array( $this, 'product_edit_template' ) );
|
23 |
add_filter( 'template_include', array( $this, 'store_toc_template' ) );
|
24 |
|
25 |
add_filter( 'query_vars', array( $this, 'register_query_var' ) );
|
@@ -165,6 +165,11 @@ class Dokan_Rewrites {
|
|
165 |
if ( !empty( $store_name ) ) {
|
166 |
$store_user = get_user_by( 'slug', $store_name );
|
167 |
|
|
|
|
|
|
|
|
|
|
|
168 |
// no user found
|
169 |
if ( ! $store_user ) {
|
170 |
return get_404_template();
|
@@ -215,6 +220,10 @@ class Dokan_Rewrites {
|
|
215 |
return $template;
|
216 |
}
|
217 |
|
|
|
|
|
|
|
|
|
218 |
if ( ! ( get_query_var( 'edit' ) && is_singular( 'product' ) ) ) {
|
219 |
return $template;
|
220 |
}
|
@@ -222,7 +231,6 @@ class Dokan_Rewrites {
|
|
222 |
$edit_product_url = dokan_locate_template( 'products/new-product-single.php' );
|
223 |
|
224 |
return apply_filters( 'dokan_get_product_edit_template', $edit_product_url );
|
225 |
-
// return apply_filters( 'dokan_get_product_edit_template', $edit_product_url );
|
226 |
}
|
227 |
|
228 |
/**
|
19 |
add_action( 'init', array( $this, 'register_rule' ) );
|
20 |
|
21 |
add_filter( 'template_include', array( $this, 'store_template' ) );
|
22 |
+
add_filter( 'template_include', array( $this, 'product_edit_template' ), 99 );
|
23 |
add_filter( 'template_include', array( $this, 'store_toc_template' ) );
|
24 |
|
25 |
add_filter( 'query_vars', array( $this, 'register_query_var' ) );
|
165 |
if ( !empty( $store_name ) ) {
|
166 |
$store_user = get_user_by( 'slug', $store_name );
|
167 |
|
168 |
+
// Bell out for Vendor Stuff extensions
|
169 |
+
if ( user_can( $store_user->ID, 'vendor_staff' ) ) {
|
170 |
+
return get_404_template();
|
171 |
+
}
|
172 |
+
|
173 |
// no user found
|
174 |
if ( ! $store_user ) {
|
175 |
return get_404_template();
|
220 |
return $template;
|
221 |
}
|
222 |
|
223 |
+
if ( ! current_user_can( 'dokan_edit_product' ) ) {
|
224 |
+
return $template;
|
225 |
+
}
|
226 |
+
|
227 |
if ( ! ( get_query_var( 'edit' ) && is_singular( 'product' ) ) ) {
|
228 |
return $template;
|
229 |
}
|
231 |
$edit_product_url = dokan_locate_template( 'products/new-product-single.php' );
|
232 |
|
233 |
return apply_filters( 'dokan_get_product_edit_template', $edit_product_url );
|
|
|
234 |
}
|
235 |
|
236 |
/**
|
classes/seller-setup-wizard.php
CHANGED
@@ -55,7 +55,7 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
55 |
$this->custom_logo = $setup_wizard_logo_url;
|
56 |
}
|
57 |
|
58 |
-
$this->store_id =
|
59 |
$this->store_info = dokan_get_store_info( $this->store_id );
|
60 |
|
61 |
$steps = array(
|
@@ -87,7 +87,7 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
87 |
|
88 |
$this->enqueue_scripts();
|
89 |
|
90 |
-
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) {
|
91 |
call_user_func( $this->steps[ $this->step ]['handler'] );
|
92 |
}
|
93 |
|
@@ -112,6 +112,7 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
112 |
<title><?php _e( 'Vendor › Setup Wizard', 'dokan-lite' ); ?></title>
|
113 |
<?php wp_print_scripts( 'wc-setup' ); ?>
|
114 |
<?php do_action( 'admin_print_styles' ); ?>
|
|
|
115 |
<style type="text/css">
|
116 |
.wc-setup-steps {
|
117 |
justify-content: center;
|
@@ -213,8 +214,8 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
213 |
<p><?php _e( 'Thank you for choosing The Marketplace to power your online store! This quick setup wizard will help you configure the basic settings. <strong>It’s completely optional and shouldn’t take longer than two minutes.</strong>', 'dokan-lite' ); ?></p>
|
214 |
<p><?php _e( 'No time right now? If you don’t want to go through the wizard, you can skip and return to the Store!', 'dokan-lite' ); ?></p>
|
215 |
<p class="wc-setup-actions step">
|
216 |
-
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button-primary button button-large button-next"><?php _e( 'Let\'s Go!', 'dokan-lite' ); ?></a>
|
217 |
-
<a href="<?php echo esc_url( $dashboard_url ); ?>" class="button button-large"><?php _e( 'Not right now', 'dokan-lite' ); ?></a>
|
218 |
</p>
|
219 |
<?php
|
220 |
do_action( 'dokan_seller_wizard_introduction', $this );
|
@@ -295,8 +296,8 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
295 |
|
296 |
</table>
|
297 |
<p class="wc-setup-actions step">
|
298 |
-
<input type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Continue', 'dokan-lite' ); ?>" name="save_step" />
|
299 |
-
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button button-large button-next"><?php _e( 'Skip this step', 'dokan-lite' ); ?></a>
|
300 |
<?php wp_nonce_field( 'dokan-seller-setup' ); ?>
|
301 |
</p>
|
302 |
</form>
|
@@ -434,15 +435,14 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
434 |
?>
|
435 |
</table>
|
436 |
<p class="wc-setup-actions step">
|
437 |
-
<input type="submit" class="button-primary button button-large button-next" value="<?php esc_attr_e( 'Continue', 'dokan-lite' ); ?>" name="save_step" />
|
438 |
-
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button button-large button-next"><?php _e( 'Skip this step', 'dokan-lite' ); ?></a>
|
439 |
<?php wp_nonce_field( 'dokan-seller-setup' ); ?>
|
440 |
</p>
|
441 |
</form>
|
442 |
<?php
|
443 |
|
444 |
do_action( 'dokan_seller_wizard_after_payment_setup_form', $this );
|
445 |
-
|
446 |
}
|
447 |
|
448 |
/**
|
@@ -501,7 +501,7 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
501 |
<div class="wc-setup-next-steps">
|
502 |
<div class="wc-setup-next-steps-first final-button">
|
503 |
<ul>
|
504 |
-
<li class="setup-product"><a class="button button-primary button-large" href="<?php echo esc_url( $dashboard_url ); ?>"><?php _e( 'Go to your Store Dashboard!', 'dokan-lite' ); ?></a></li>
|
505 |
</ul>
|
506 |
</div>
|
507 |
</div>
|
@@ -510,4 +510,3 @@ class Dokan_Seller_Setup_Wizard extends Dokan_Setup_Wizard {
|
|
510 |
}
|
511 |
}
|
512 |
|
513 |
-
new Dokan_Seller_Setup_Wizard();
|
55 |
$this->custom_logo = $setup_wizard_logo_url;
|
56 |
}
|
57 |
|
58 |
+
$this->store_id = dokan_get_current_user_id();
|
59 |
$this->store_info = dokan_get_store_info( $this->store_id );
|
60 |
|
61 |
$steps = array(
|
87 |
|
88 |
$this->enqueue_scripts();
|
89 |
|
90 |
+
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) { // WPCS: CSRF ok.
|
91 |
call_user_func( $this->steps[ $this->step ]['handler'] );
|
92 |
}
|
93 |
|
112 |
<title><?php _e( 'Vendor › Setup Wizard', 'dokan-lite' ); ?></title>
|
113 |
<?php wp_print_scripts( 'wc-setup' ); ?>
|
114 |
<?php do_action( 'admin_print_styles' ); ?>
|
115 |
+
<?php do_action( 'dokan_setup_wizard_styles' ); ?>
|
116 |
<style type="text/css">
|
117 |
.wc-setup-steps {
|
118 |
justify-content: center;
|
214 |
<p><?php _e( 'Thank you for choosing The Marketplace to power your online store! This quick setup wizard will help you configure the basic settings. <strong>It’s completely optional and shouldn’t take longer than two minutes.</strong>', 'dokan-lite' ); ?></p>
|
215 |
<p><?php _e( 'No time right now? If you don’t want to go through the wizard, you can skip and return to the Store!', 'dokan-lite' ); ?></p>
|
216 |
<p class="wc-setup-actions step">
|
217 |
+
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button-primary button button-large button-next lets-go-btn"><?php _e( 'Let\'s Go!', 'dokan-lite' ); ?></a>
|
218 |
+
<a href="<?php echo esc_url( $dashboard_url ); ?>" class="button button-large not-right-now-btn"><?php _e( 'Not right now', 'dokan-lite' ); ?></a>
|
219 |
</p>
|
220 |
<?php
|
221 |
do_action( 'dokan_seller_wizard_introduction', $this );
|
296 |
|
297 |
</table>
|
298 |
<p class="wc-setup-actions step">
|
299 |
+
<input type="submit" class="button-primary button button-large button-next store-step-continue" value="<?php esc_attr_e( 'Continue', 'dokan-lite' ); ?>" name="save_step" />
|
300 |
+
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button button-large button-next store-step-skip-btn"><?php _e( 'Skip this step', 'dokan-lite' ); ?></a>
|
301 |
<?php wp_nonce_field( 'dokan-seller-setup' ); ?>
|
302 |
</p>
|
303 |
</form>
|
435 |
?>
|
436 |
</table>
|
437 |
<p class="wc-setup-actions step">
|
438 |
+
<input type="submit" class="button-primary button button-large button-next payment-continue-btn" value="<?php esc_attr_e( 'Continue', 'dokan-lite' ); ?>" name="save_step" />
|
439 |
+
<a href="<?php echo esc_url( $this->get_next_step_link() ); ?>" class="button button-large button-next payment-step-skip-btn"><?php _e( 'Skip this step', 'dokan-lite' ); ?></a>
|
440 |
<?php wp_nonce_field( 'dokan-seller-setup' ); ?>
|
441 |
</p>
|
442 |
</form>
|
443 |
<?php
|
444 |
|
445 |
do_action( 'dokan_seller_wizard_after_payment_setup_form', $this );
|
|
|
446 |
}
|
447 |
|
448 |
/**
|
501 |
<div class="wc-setup-next-steps">
|
502 |
<div class="wc-setup-next-steps-first final-button">
|
503 |
<ul>
|
504 |
+
<li class="setup-product"><a class="button button-primary button-large go-to-dashboard-btn" href="<?php echo esc_url( $dashboard_url ); ?>"><?php _e( 'Go to your Store Dashboard!', 'dokan-lite' ); ?></a></li>
|
505 |
</ul>
|
506 |
</div>
|
507 |
</div>
|
510 |
}
|
511 |
}
|
512 |
|
|
classes/template-dashboard.php
CHANGED
@@ -21,8 +21,7 @@ class Dokan_Template_Dashboard {
|
|
21 |
* @since 2.4
|
22 |
*/
|
23 |
function __construct() {
|
24 |
-
|
25 |
-
$this->user_id = get_current_user_id();
|
26 |
$this->orders_count = $this->get_orders_count();
|
27 |
$this->post_counts = $this->get_post_counts();
|
28 |
$this->comment_counts = $this->get_comment_counts();
|
@@ -76,6 +75,9 @@ class Dokan_Template_Dashboard {
|
|
76 |
* @return void
|
77 |
*/
|
78 |
public function get_big_counter_widgets() {
|
|
|
|
|
|
|
79 |
|
80 |
dokan_get_template_part( 'dashboard/big-counter-widget', '', array(
|
81 |
'pageviews' => $this->pageviews,
|
@@ -94,6 +96,9 @@ class Dokan_Template_Dashboard {
|
|
94 |
* @return void
|
95 |
*/
|
96 |
public function get_orders_widgets() {
|
|
|
|
|
|
|
97 |
|
98 |
$order_data = array(
|
99 |
array( 'value' => $this->orders_count->{'wc-completed'}, 'color' => '#73a724' ),
|
@@ -120,6 +125,10 @@ class Dokan_Template_Dashboard {
|
|
120 |
* @return void
|
121 |
*/
|
122 |
public function get_products_widgets() {
|
|
|
|
|
|
|
|
|
123 |
dokan_get_template_part( 'dashboard/products-widget', '', array(
|
124 |
'post_counts'=> $this->post_counts,
|
125 |
'products_url'=> dokan_get_navigation_url('products'),
|
@@ -135,6 +144,10 @@ class Dokan_Template_Dashboard {
|
|
135 |
* @return void
|
136 |
*/
|
137 |
public function get_sales_report_chart_widget() {
|
|
|
|
|
|
|
|
|
138 |
dokan_get_template_part( 'dashboard/sales-chart-widget', '' );
|
139 |
}
|
140 |
|
21 |
* @since 2.4
|
22 |
*/
|
23 |
function __construct() {
|
24 |
+
$this->user_id = dokan_get_current_user_id();
|
|
|
25 |
$this->orders_count = $this->get_orders_count();
|
26 |
$this->post_counts = $this->get_post_counts();
|
27 |
$this->comment_counts = $this->get_comment_counts();
|
75 |
* @return void
|
76 |
*/
|
77 |
public function get_big_counter_widgets() {
|
78 |
+
if ( ! current_user_can( 'dokan_view_sales_overview' ) ) {
|
79 |
+
return;
|
80 |
+
}
|
81 |
|
82 |
dokan_get_template_part( 'dashboard/big-counter-widget', '', array(
|
83 |
'pageviews' => $this->pageviews,
|
96 |
* @return void
|
97 |
*/
|
98 |
public function get_orders_widgets() {
|
99 |
+
if ( ! current_user_can( 'dokan_view_order_report' ) ) {
|
100 |
+
return;
|
101 |
+
}
|
102 |
|
103 |
$order_data = array(
|
104 |
array( 'value' => $this->orders_count->{'wc-completed'}, 'color' => '#73a724' ),
|
125 |
* @return void
|
126 |
*/
|
127 |
public function get_products_widgets() {
|
128 |
+
if ( ! current_user_can( 'dokan_view_product_status_report' ) ) {
|
129 |
+
return;
|
130 |
+
}
|
131 |
+
|
132 |
dokan_get_template_part( 'dashboard/products-widget', '', array(
|
133 |
'post_counts'=> $this->post_counts,
|
134 |
'products_url'=> dokan_get_navigation_url('products'),
|
144 |
* @return void
|
145 |
*/
|
146 |
public function get_sales_report_chart_widget() {
|
147 |
+
if ( ! current_user_can( 'dokan_view_sales_report_chart' ) ) {
|
148 |
+
return;
|
149 |
+
}
|
150 |
+
|
151 |
dokan_get_template_part( 'dashboard/sales-chart-widget', '' );
|
152 |
}
|
153 |
|
classes/template-orders.php
CHANGED
@@ -73,7 +73,13 @@ class Dokan_Template_Orders {
|
|
73 |
$order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
|
74 |
|
75 |
if ( $order_id ) {
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
} else {
|
78 |
dokan_get_template_part( 'orders/date-export');
|
79 |
dokan_get_template_part( 'orders/listing' );
|
@@ -96,6 +102,10 @@ class Dokan_Template_Orders {
|
|
96 |
return;
|
97 |
}
|
98 |
|
|
|
|
|
|
|
|
|
99 |
if ( isset( $_POST['dokan_order_export_all'] ) ) {
|
100 |
|
101 |
$filename = "Orders-".time();
|
@@ -122,7 +132,7 @@ class Dokan_Template_Orders {
|
|
122 |
}
|
123 |
|
124 |
echo "\r\n";
|
125 |
-
$user_orders = dokan_get_seller_orders(
|
126 |
$statuses = wc_get_order_statuses();
|
127 |
$results = array();
|
128 |
foreach ( $user_orders as $order ) {
|
@@ -193,7 +203,7 @@ class Dokan_Template_Orders {
|
|
193 |
|
194 |
$order_date = ( isset( $_POST['order_date'] ) ) ? $_POST['order_date'] : NULL;
|
195 |
$order_status = ( isset( $_POST['order_status'] ) ) ? $_POST['order_status'] : 'all';
|
196 |
-
$user_orders = dokan_get_seller_orders(
|
197 |
$statuses = wc_get_order_statuses();
|
198 |
$results = array();
|
199 |
|
73 |
$order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
|
74 |
|
75 |
if ( $order_id ) {
|
76 |
+
|
77 |
+
if ( wp_verify_nonce( $_REQUEST['_wpnonce'], 'dokan_view_order' ) && current_user_can( 'dokan_view_order' ) ) {
|
78 |
+
dokan_get_template_part( 'orders/details' );
|
79 |
+
} else {
|
80 |
+
dokan_get_template_part( 'global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to view this order', 'dokan-lite' ) ) );
|
81 |
+
}
|
82 |
+
|
83 |
} else {
|
84 |
dokan_get_template_part( 'orders/date-export');
|
85 |
dokan_get_template_part( 'orders/listing' );
|
102 |
return;
|
103 |
}
|
104 |
|
105 |
+
if ( isset( $_POST['dokan_vendor_order_export_nonce'] ) && ! wp_verify_nonce( $_POST['dokan_vendor_order_export_nonce'], 'dokan_vendor_order_export_action' ) ) {
|
106 |
+
return;
|
107 |
+
}
|
108 |
+
|
109 |
if ( isset( $_POST['dokan_order_export_all'] ) ) {
|
110 |
|
111 |
$filename = "Orders-".time();
|
132 |
}
|
133 |
|
134 |
echo "\r\n";
|
135 |
+
$user_orders = dokan_get_seller_orders( dokan_get_current_user_id(), 'all', NULL, 10000000, 0 );
|
136 |
$statuses = wc_get_order_statuses();
|
137 |
$results = array();
|
138 |
foreach ( $user_orders as $order ) {
|
203 |
|
204 |
$order_date = ( isset( $_POST['order_date'] ) ) ? $_POST['order_date'] : NULL;
|
205 |
$order_status = ( isset( $_POST['order_status'] ) ) ? $_POST['order_status'] : 'all';
|
206 |
+
$user_orders = dokan_get_seller_orders( dokan_get_current_user_id(), $order_status, $order_date, 10000000, 0 );
|
207 |
$statuses = wc_get_order_statuses();
|
208 |
$results = array();
|
209 |
|
classes/template-products.php
CHANGED
@@ -68,8 +68,11 @@ class Dokan_Template_Products {
|
|
68 |
* @return void
|
69 |
*/
|
70 |
public function load_product_edit_template() {
|
71 |
-
if (
|
72 |
dokan_get_template_part( 'products/new-product-single' );
|
|
|
|
|
|
|
73 |
}
|
74 |
}
|
75 |
|
@@ -106,10 +109,6 @@ class Dokan_Template_Products {
|
|
106 |
self::$product_cat = -1;
|
107 |
self::$post_content = __( 'Details of your product ...', 'dokan-lite' );
|
108 |
|
109 |
-
if ( ! $_POST ) {
|
110 |
-
return;
|
111 |
-
}
|
112 |
-
|
113 |
if ( isset( $_POST['add_product'] ) && wp_verify_nonce( $_POST['dokan_add_new_product_nonce'], 'dokan_add_new_product' ) ) {
|
114 |
$post_title = trim( $_POST['post_title'] );
|
115 |
$post_content = trim( $_POST['post_content'] );
|
@@ -222,13 +221,17 @@ class Dokan_Template_Products {
|
|
222 |
|
223 |
do_action( 'dokan_new_product_added', $product_id, $post_data );
|
224 |
|
225 |
-
|
|
|
|
|
|
|
|
|
226 |
|
227 |
if ( 'create_and_add_new' === $_POST['add_product'] ) {
|
228 |
$redirect = add_query_arg( array( 'created_product' => $product_id ), dokan_get_navigation_url( 'new-product' ) );
|
229 |
}
|
230 |
|
231 |
-
wp_redirect( $redirect );
|
232 |
exit;
|
233 |
}
|
234 |
}
|
@@ -337,6 +340,10 @@ class Dokan_Template_Products {
|
|
337 |
return;
|
338 |
}
|
339 |
|
|
|
|
|
|
|
|
|
340 |
dokan_delete_product_handler();
|
341 |
}
|
342 |
|
68 |
* @return void
|
69 |
*/
|
70 |
public function load_product_edit_template() {
|
71 |
+
if ( current_user_can( 'dokan_edit_product' ) ) {
|
72 |
dokan_get_template_part( 'products/new-product-single' );
|
73 |
+
} else {
|
74 |
+
dokan_get_template_part('global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to view this page', 'dokan-lite' ) ) );
|
75 |
+
return;
|
76 |
}
|
77 |
}
|
78 |
|
109 |
self::$product_cat = -1;
|
110 |
self::$post_content = __( 'Details of your product ...', 'dokan-lite' );
|
111 |
|
|
|
|
|
|
|
|
|
112 |
if ( isset( $_POST['add_product'] ) && wp_verify_nonce( $_POST['dokan_add_new_product_nonce'], 'dokan_add_new_product' ) ) {
|
113 |
$post_title = trim( $_POST['post_title'] );
|
114 |
$post_content = trim( $_POST['post_content'] );
|
221 |
|
222 |
do_action( 'dokan_new_product_added', $product_id, $post_data );
|
223 |
|
224 |
+
if ( current_user_can( 'dokan_edit_product' ) ) {
|
225 |
+
$redirect = dokan_edit_product_url( $product_id );
|
226 |
+
} else {
|
227 |
+
$redirect = dokan_get_navigation_url( 'products' );
|
228 |
+
}
|
229 |
|
230 |
if ( 'create_and_add_new' === $_POST['add_product'] ) {
|
231 |
$redirect = add_query_arg( array( 'created_product' => $product_id ), dokan_get_navigation_url( 'new-product' ) );
|
232 |
}
|
233 |
|
234 |
+
wp_redirect( apply_filters( 'dokan_add_new_product_redirect', $redirect, $product_id ) );
|
235 |
exit;
|
236 |
}
|
237 |
}
|
340 |
return;
|
341 |
}
|
342 |
|
343 |
+
if ( ! current_user_can( 'dokan_delete_product' ) ) {
|
344 |
+
return;
|
345 |
+
}
|
346 |
+
|
347 |
dokan_delete_product_handler();
|
348 |
}
|
349 |
|
classes/template-settings.php
CHANGED
@@ -35,7 +35,7 @@ class Dokan_Template_Settings {
|
|
35 |
public static function init() {
|
36 |
static $instance = false;
|
37 |
|
38 |
-
if (
|
39 |
$instance = new Dokan_Template_Settings();
|
40 |
}
|
41 |
|
@@ -145,11 +145,19 @@ class Dokan_Template_Settings {
|
|
145 |
global $wp;
|
146 |
|
147 |
if ( isset( $wp->query_vars['settings'] ) && $wp->query_vars['settings'] == 'store' ) {
|
148 |
-
|
|
|
|
|
|
|
|
|
149 |
}
|
150 |
|
151 |
if ( isset( $wp->query_vars['settings'] ) && $wp->query_vars['settings'] == 'payment' ) {
|
152 |
-
|
|
|
|
|
|
|
|
|
153 |
}
|
154 |
|
155 |
do_action( 'dokan_render_settings_content', $wp->query_vars );
|
@@ -164,8 +172,8 @@ class Dokan_Template_Settings {
|
|
164 |
*/
|
165 |
public function load_store_content() {
|
166 |
$validate = $this->validate();
|
167 |
-
$currentuser =
|
168 |
-
$profile_info = dokan_get_store_info(
|
169 |
|
170 |
dokan_get_template_part( 'settings/store-form', '', array(
|
171 |
'current_user' => $currentuser,
|
@@ -184,8 +192,8 @@ class Dokan_Template_Settings {
|
|
184 |
*/
|
185 |
public function load_payment_content() {
|
186 |
$methods = dokan_withdraw_get_active_methods();
|
187 |
-
$currentuser =
|
188 |
-
$profile_info = dokan_get_store_info(
|
189 |
|
190 |
dokan_get_template_part( 'settings/payment', '', array(
|
191 |
'methods' => $methods,
|
@@ -209,21 +217,31 @@ class Dokan_Template_Settings {
|
|
209 |
|
210 |
$_POST['dokan_update_profile'] = '';
|
211 |
|
212 |
-
switch( $_POST['form_id'] ) {
|
213 |
case 'profile-form':
|
|
|
|
|
|
|
214 |
if ( !wp_verify_nonce( $_POST['_wpnonce'], 'dokan_profile_settings_nonce' ) ) {
|
215 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
216 |
}
|
217 |
$ajax_validate = $this->profile_validate();
|
218 |
break;
|
219 |
case 'store-form':
|
|
|
|
|
|
|
220 |
if ( !wp_verify_nonce( $_POST['_wpnonce'], 'dokan_store_settings_nonce' ) ) {
|
221 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
222 |
}
|
223 |
$ajax_validate = $this->store_validate();
|
224 |
break;
|
225 |
case 'payment-form':
|
226 |
-
if ( !
|
|
|
|
|
|
|
|
|
227 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
228 |
}
|
229 |
$ajax_validate = $this->payment_validate();
|
@@ -261,6 +279,7 @@ class Dokan_Template_Settings {
|
|
261 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
262 |
}
|
263 |
|
|
|
264 |
$error = new WP_Error();
|
265 |
|
266 |
$dokan_name = sanitize_text_field( $_POST['dokan_store_name'] );
|
@@ -434,7 +453,7 @@ class Dokan_Template_Settings {
|
|
434 |
*/
|
435 |
function insert_settings_info() {
|
436 |
|
437 |
-
$store_id =
|
438 |
$existing_dokan_settings = get_user_meta( $store_id, 'dokan_profile_settings', true );
|
439 |
$prev_dokan_settings = ! empty( $existing_dokan_settings ) ? $existing_dokan_settings : array();
|
440 |
|
@@ -471,6 +490,8 @@ class Dokan_Template_Settings {
|
|
471 |
'store_tnc' => isset( $_POST['dokan_store_tnc'] ) ? $_POST['dokan_store_tnc'] : ''
|
472 |
);
|
473 |
|
|
|
|
|
474 |
} elseif ( wp_verify_nonce( $_POST['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
|
475 |
|
476 |
//update payment settings info
|
@@ -506,13 +527,12 @@ class Dokan_Template_Settings {
|
|
506 |
|
507 |
}
|
508 |
|
509 |
-
$dokan_settings = array_merge( $prev_dokan_settings
|
510 |
|
511 |
$profile_completeness = $this->calculate_profile_completeness_value( $dokan_settings );
|
512 |
$dokan_settings['profile_completion'] = $profile_completeness;
|
513 |
|
514 |
update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
|
515 |
-
update_user_meta( $store_id, 'dokan_store_name', $dokan_settings['store_name'] );
|
516 |
|
517 |
do_action( 'dokan_store_profile_saved', $store_id, $dokan_settings );
|
518 |
|
@@ -554,7 +574,7 @@ class Dokan_Template_Settings {
|
|
554 |
);
|
555 |
|
556 |
// setting values for completion
|
557 |
-
$progress_values = apply_filters('dokan_profile_completion_values', $progress_values);
|
558 |
|
559 |
extract( $progress_values );
|
560 |
|
@@ -699,7 +719,7 @@ class Dokan_Template_Settings {
|
|
699 |
$track_val['next_todo'] = $next_add;
|
700 |
$track_val['progress'] = $profile_val;
|
701 |
$track_val['progress_vals'] = $progress_values;
|
702 |
-
|
703 |
return apply_filters( 'dokan_profile_completion_progress_value', $track_val ) ;
|
704 |
}
|
705 |
|
35 |
public static function init() {
|
36 |
static $instance = false;
|
37 |
|
38 |
+
if ( ! $instance ) {
|
39 |
$instance = new Dokan_Template_Settings();
|
40 |
}
|
41 |
|
145 |
global $wp;
|
146 |
|
147 |
if ( isset( $wp->query_vars['settings'] ) && $wp->query_vars['settings'] == 'store' ) {
|
148 |
+
if ( ! current_user_can( 'dokan_view_store_settings_menu' ) ) {
|
149 |
+
dokan_get_template_part('global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to view this page', 'dokan-lite' ) ) );
|
150 |
+
} else {
|
151 |
+
$this->load_store_content();
|
152 |
+
}
|
153 |
}
|
154 |
|
155 |
if ( isset( $wp->query_vars['settings'] ) && $wp->query_vars['settings'] == 'payment' ) {
|
156 |
+
if ( ! current_user_can( 'dokan_view_store_payment_menu' ) ) {
|
157 |
+
dokan_get_template_part('global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to view this page', 'dokan-lite' ) ) );
|
158 |
+
} else {
|
159 |
+
$this->load_payment_content();
|
160 |
+
}
|
161 |
}
|
162 |
|
163 |
do_action( 'dokan_render_settings_content', $wp->query_vars );
|
172 |
*/
|
173 |
public function load_store_content() {
|
174 |
$validate = $this->validate();
|
175 |
+
$currentuser = dokan_get_current_user_id();
|
176 |
+
$profile_info = dokan_get_store_info( dokan_get_current_user_id() );
|
177 |
|
178 |
dokan_get_template_part( 'settings/store-form', '', array(
|
179 |
'current_user' => $currentuser,
|
192 |
*/
|
193 |
public function load_payment_content() {
|
194 |
$methods = dokan_withdraw_get_active_methods();
|
195 |
+
$currentuser = dokan_get_current_user_id();
|
196 |
+
$profile_info = dokan_get_store_info( dokan_get_current_user_id() );
|
197 |
|
198 |
dokan_get_template_part( 'settings/payment', '', array(
|
199 |
'methods' => $methods,
|
217 |
|
218 |
$_POST['dokan_update_profile'] = '';
|
219 |
|
220 |
+
switch( $_POST['form_id'] ) { // WPCS: CSRF ok.
|
221 |
case 'profile-form':
|
222 |
+
if ( ! current_user_can( 'dokan_view_store_social_menu' ) ) {
|
223 |
+
wp_send_json_error( __( 'Pemission denied social', 'dokan-lite' ) );
|
224 |
+
}
|
225 |
if ( !wp_verify_nonce( $_POST['_wpnonce'], 'dokan_profile_settings_nonce' ) ) {
|
226 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
227 |
}
|
228 |
$ajax_validate = $this->profile_validate();
|
229 |
break;
|
230 |
case 'store-form':
|
231 |
+
if ( !current_user_can( 'dokan_view_store_settings_menu' ) ) {
|
232 |
+
wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
|
233 |
+
}
|
234 |
if ( !wp_verify_nonce( $_POST['_wpnonce'], 'dokan_store_settings_nonce' ) ) {
|
235 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
236 |
}
|
237 |
$ajax_validate = $this->store_validate();
|
238 |
break;
|
239 |
case 'payment-form':
|
240 |
+
if ( !current_user_can( 'dokan_view_store_payment_menu' ) ) {
|
241 |
+
wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
|
242 |
+
}
|
243 |
+
|
244 |
+
if ( ! wp_verify_nonce( $_POST['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
|
245 |
wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
|
246 |
}
|
247 |
$ajax_validate = $this->payment_validate();
|
279 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
280 |
}
|
281 |
|
282 |
+
|
283 |
$error = new WP_Error();
|
284 |
|
285 |
$dokan_name = sanitize_text_field( $_POST['dokan_store_name'] );
|
453 |
*/
|
454 |
function insert_settings_info() {
|
455 |
|
456 |
+
$store_id = dokan_get_current_user_id();
|
457 |
$existing_dokan_settings = get_user_meta( $store_id, 'dokan_profile_settings', true );
|
458 |
$prev_dokan_settings = ! empty( $existing_dokan_settings ) ? $existing_dokan_settings : array();
|
459 |
|
490 |
'store_tnc' => isset( $_POST['dokan_store_tnc'] ) ? $_POST['dokan_store_tnc'] : ''
|
491 |
);
|
492 |
|
493 |
+
update_user_meta( $store_id, 'dokan_store_name', $dokan_settings['store_name'] );
|
494 |
+
|
495 |
} elseif ( wp_verify_nonce( $_POST['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
|
496 |
|
497 |
//update payment settings info
|
527 |
|
528 |
}
|
529 |
|
530 |
+
$dokan_settings = array_merge( $prev_dokan_settings, $dokan_settings );
|
531 |
|
532 |
$profile_completeness = $this->calculate_profile_completeness_value( $dokan_settings );
|
533 |
$dokan_settings['profile_completion'] = $profile_completeness;
|
534 |
|
535 |
update_user_meta( $store_id, 'dokan_profile_settings', $dokan_settings );
|
|
|
536 |
|
537 |
do_action( 'dokan_store_profile_saved', $store_id, $dokan_settings );
|
538 |
|
574 |
);
|
575 |
|
576 |
// setting values for completion
|
577 |
+
$progress_values = apply_filters('dokan_profile_completion_values', $progress_values );
|
578 |
|
579 |
extract( $progress_values );
|
580 |
|
719 |
$track_val['next_todo'] = $next_add;
|
720 |
$track_val['progress'] = $profile_val;
|
721 |
$track_val['progress_vals'] = $progress_values;
|
722 |
+
|
723 |
return apply_filters( 'dokan_profile_completion_progress_value', $track_val ) ;
|
724 |
}
|
725 |
|
classes/template-shortcodes.php
CHANGED
@@ -50,25 +50,45 @@ class Dokan_Template_Shortcodes {
|
|
50 |
return sprintf( __( 'Please install <a href="%s"><strong>WooCommerce</strong></a> plugin first', 'dokan-lite' ), 'http://wordpress.org/plugins/woocommerce/' );
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
53 |
ob_start();
|
54 |
|
55 |
if ( isset( $wp->query_vars['products'] ) ) {
|
56 |
-
|
|
|
|
|
|
|
|
|
57 |
return ob_get_clean();
|
58 |
}
|
59 |
|
60 |
if ( isset( $wp->query_vars['new-product'] ) ) {
|
61 |
-
|
|
|
|
|
|
|
|
|
62 |
return ob_get_clean();
|
63 |
}
|
64 |
|
65 |
if ( isset( $wp->query_vars['orders'] ) ) {
|
66 |
-
|
|
|
|
|
|
|
|
|
67 |
return ob_get_clean();
|
68 |
}
|
69 |
|
70 |
if ( isset( $wp->query_vars['withdraw'] ) ) {
|
71 |
-
|
|
|
|
|
|
|
|
|
72 |
return ob_get_clean();
|
73 |
}
|
74 |
|
@@ -78,7 +98,11 @@ class Dokan_Template_Shortcodes {
|
|
78 |
}
|
79 |
|
80 |
if ( isset( $wp->query_vars['page'] ) ) {
|
81 |
-
|
|
|
|
|
|
|
|
|
82 |
return ob_get_clean();
|
83 |
}
|
84 |
if ( isset( $wp->query_vars['edit-account'] ) ) {
|
@@ -169,6 +193,10 @@ class Dokan_Template_Shortcodes {
|
|
169 |
* @return string
|
170 |
*/
|
171 |
function my_orders_page() {
|
|
|
|
|
|
|
|
|
172 |
return dokan_get_template_part( 'my-orders' );
|
173 |
}
|
174 |
}
|
50 |
return sprintf( __( 'Please install <a href="%s"><strong>WooCommerce</strong></a> plugin first', 'dokan-lite' ), 'http://wordpress.org/plugins/woocommerce/' );
|
51 |
}
|
52 |
|
53 |
+
if ( ! dokan_is_user_seller( get_current_user_id() ) ) {
|
54 |
+
return __( 'You have no permission to view this page', 'dokan-lite' );
|
55 |
+
}
|
56 |
+
|
57 |
ob_start();
|
58 |
|
59 |
if ( isset( $wp->query_vars['products'] ) ) {
|
60 |
+
if ( ! current_user_can( 'dokan_view_product_menu' ) ) {
|
61 |
+
dokan_get_template_part( 'global/no-permission' );
|
62 |
+
} else {
|
63 |
+
dokan_get_template_part( 'products/products' );
|
64 |
+
}
|
65 |
return ob_get_clean();
|
66 |
}
|
67 |
|
68 |
if ( isset( $wp->query_vars['new-product'] ) ) {
|
69 |
+
if ( ! current_user_can( 'dokan_add_product' ) ) {
|
70 |
+
dokan_get_template_part( 'global/no-permission' );
|
71 |
+
} else {
|
72 |
+
do_action( 'dokan_render_new_product_template', $wp->query_vars );
|
73 |
+
}
|
74 |
return ob_get_clean();
|
75 |
}
|
76 |
|
77 |
if ( isset( $wp->query_vars['orders'] ) ) {
|
78 |
+
if ( ! current_user_can( 'dokan_view_order_menu' ) ) {
|
79 |
+
dokan_get_template_part( 'global/no-permission' );
|
80 |
+
} else {
|
81 |
+
dokan_get_template_part( 'orders/orders' );
|
82 |
+
}
|
83 |
return ob_get_clean();
|
84 |
}
|
85 |
|
86 |
if ( isset( $wp->query_vars['withdraw'] ) ) {
|
87 |
+
if ( ! current_user_can( 'dokan_view_withdraw_menu' ) ) {
|
88 |
+
dokan_get_template_part( 'global/no-permission' );
|
89 |
+
} else {
|
90 |
+
dokan_get_template_part( 'withdraw/withdraw' );
|
91 |
+
}
|
92 |
return ob_get_clean();
|
93 |
}
|
94 |
|
98 |
}
|
99 |
|
100 |
if ( isset( $wp->query_vars['page'] ) ) {
|
101 |
+
if ( ! current_user_can( 'dokan_view_overview_menu' ) ) {
|
102 |
+
dokan_get_template_part( 'global/no-permission' );
|
103 |
+
} else {
|
104 |
+
dokan_get_template_part( 'dashboard/dashboard' );
|
105 |
+
}
|
106 |
return ob_get_clean();
|
107 |
}
|
108 |
if ( isset( $wp->query_vars['edit-account'] ) ) {
|
193 |
* @return string
|
194 |
*/
|
195 |
function my_orders_page() {
|
196 |
+
if ( ! is_user_logged_in() ) {
|
197 |
+
return;
|
198 |
+
}
|
199 |
+
|
200 |
return dokan_get_template_part( 'my-orders' );
|
201 |
}
|
202 |
}
|
classes/template-withdraw.php
CHANGED
@@ -75,6 +75,11 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
75 |
*/
|
76 |
public function withdraw_header_render() {
|
77 |
dokan_get_template_part( 'withdraw/header' );
|
|
|
|
|
|
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
@@ -102,6 +107,10 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
102 |
* @return void
|
103 |
*/
|
104 |
public function withdraw_status_filter() {
|
|
|
|
|
|
|
|
|
105 |
dokan_get_template_part( 'withdraw/status-listing', '', array( 'current' => $this->current_status ) );
|
106 |
}
|
107 |
|
@@ -113,7 +122,11 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
113 |
* @return void
|
114 |
*/
|
115 |
public function show_seller_balance() {
|
116 |
-
|
|
|
|
|
|
|
|
|
117 |
$withdraw_limit = dokan_get_option( 'withdraw_limit', 'dokan_withdraw', -1 );
|
118 |
$threshold = dokan_get_option( 'withdraw_date_limit', 'dokan_withdraw', -1 );
|
119 |
|
@@ -141,9 +154,9 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
141 |
if ( $this->current_status == 'pending' ) {
|
142 |
$this->withdraw_form( self::$validate );
|
143 |
} elseif ( $this->current_status == 'approved' ) {
|
144 |
-
$this->user_approved_withdraws(
|
145 |
} elseif ( $this->current_status == 'cancelled' ) {
|
146 |
-
$this->user_cancelled_withdraws(
|
147 |
}
|
148 |
}
|
149 |
|
@@ -177,6 +190,10 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
177 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
178 |
}
|
179 |
|
|
|
|
|
|
|
|
|
180 |
global $current_user, $wpdb;
|
181 |
|
182 |
$row_id = absint( $_GET['id'] );
|
@@ -202,9 +219,13 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
202 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
203 |
}
|
204 |
|
|
|
|
|
|
|
|
|
205 |
$error = new WP_Error();
|
206 |
$limit = $this->get_withdraw_limit();
|
207 |
-
$balance = dokan_get_seller_balance(
|
208 |
$withdraw_amount = (float) $_POST['witdraw_amount'];
|
209 |
|
210 |
if ( empty( $_POST['witdraw_amount'] ) ) {
|
@@ -234,6 +255,14 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
234 |
*/
|
235 |
function insert_withdraw_info() {
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
global $current_user;
|
238 |
|
239 |
$amount = floatval( $_POST['witdraw_amount'] );
|
@@ -263,6 +292,10 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
263 |
* @return void
|
264 |
*/
|
265 |
function withdraw_requests( $user_id ) {
|
|
|
|
|
|
|
|
|
266 |
$withdraw_requests = $this->get_withdraw_requests( $user_id );
|
267 |
|
268 |
dokan_get_template_part( 'withdraw/pending-request-listing', '', array(
|
@@ -279,6 +312,8 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
279 |
$type = isset( $_GET['message'] ) ? $_GET['message'] : '';
|
280 |
$message = '';
|
281 |
|
|
|
|
|
282 |
switch ( $type ) {
|
283 |
case 'request_cancelled':
|
284 |
$message = __( 'Your request has been cancelled successfully!', 'dokan-lite' );
|
@@ -290,11 +325,12 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
290 |
|
291 |
case 'request_error':
|
292 |
$message = __( 'Unknown error!', 'dokan-lite' );
|
|
|
293 |
break;
|
294 |
}
|
295 |
|
296 |
if ( ! empty( $message ) ) {
|
297 |
-
dokan_get_template_part(
|
298 |
}
|
299 |
}
|
300 |
|
@@ -308,6 +344,10 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
308 |
function withdraw_form( $validate = '' ) {
|
309 |
global $current_user;
|
310 |
|
|
|
|
|
|
|
|
|
311 |
// show alert messages
|
312 |
$this->show_alert_messages();
|
313 |
|
@@ -346,11 +386,11 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
346 |
return;
|
347 |
}
|
348 |
|
349 |
-
$payment_methods =
|
350 |
|
351 |
if ( is_wp_error( $validate ) ) {
|
352 |
-
$amount = $_POST['witdraw_amount'];
|
353 |
-
$withdraw_method = $_POST['withdraw_method'];
|
354 |
} else {
|
355 |
$amount = '';
|
356 |
$withdraw_method = '';
|
@@ -371,6 +411,9 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
371 |
* @return void
|
372 |
*/
|
373 |
function user_approved_withdraws( $user_id ) {
|
|
|
|
|
|
|
374 |
$requests = $this->get_withdraw_requests( $user_id, 1, 100 );
|
375 |
|
376 |
if ( $requests ) {
|
@@ -397,6 +440,9 @@ class Dokan_Template_Withdraw extends Dokan_Withdraw {
|
|
397 |
* @return void
|
398 |
*/
|
399 |
function user_cancelled_withdraws( $user_id ){
|
|
|
|
|
|
|
400 |
|
401 |
$requests = $this->get_withdraw_requests( $user_id, 2, 100 );
|
402 |
|
75 |
*/
|
76 |
public function withdraw_header_render() {
|
77 |
dokan_get_template_part( 'withdraw/header' );
|
78 |
+
|
79 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
80 |
+
dokan_get_template_part('global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to manage withdraws', 'dokan-lite' ) ) );
|
81 |
+
return;
|
82 |
+
}
|
83 |
}
|
84 |
|
85 |
/**
|
107 |
* @return void
|
108 |
*/
|
109 |
public function withdraw_status_filter() {
|
110 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
111 |
+
return;
|
112 |
+
}
|
113 |
+
|
114 |
dokan_get_template_part( 'withdraw/status-listing', '', array( 'current' => $this->current_status ) );
|
115 |
}
|
116 |
|
122 |
* @return void
|
123 |
*/
|
124 |
public function show_seller_balance() {
|
125 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
126 |
+
return;
|
127 |
+
}
|
128 |
+
|
129 |
+
$balance = dokan_get_seller_balance( dokan_get_current_user_id(), true );
|
130 |
$withdraw_limit = dokan_get_option( 'withdraw_limit', 'dokan_withdraw', -1 );
|
131 |
$threshold = dokan_get_option( 'withdraw_date_limit', 'dokan_withdraw', -1 );
|
132 |
|
154 |
if ( $this->current_status == 'pending' ) {
|
155 |
$this->withdraw_form( self::$validate );
|
156 |
} elseif ( $this->current_status == 'approved' ) {
|
157 |
+
$this->user_approved_withdraws( dokan_get_current_user_id() );
|
158 |
} elseif ( $this->current_status == 'cancelled' ) {
|
159 |
+
$this->user_cancelled_withdraws( dokan_get_current_user_id() );
|
160 |
}
|
161 |
}
|
162 |
|
190 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
191 |
}
|
192 |
|
193 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
194 |
+
wp_die( __( 'You have no permission to do this action', 'dokan-lite' ) );
|
195 |
+
}
|
196 |
+
|
197 |
global $current_user, $wpdb;
|
198 |
|
199 |
$row_id = absint( $_GET['id'] );
|
219 |
wp_die( __( 'Are you cheating?', 'dokan-lite' ) );
|
220 |
}
|
221 |
|
222 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
223 |
+
wp_die( __( 'You have no permission to do this action', 'dokan-lite' ) );
|
224 |
+
}
|
225 |
+
|
226 |
$error = new WP_Error();
|
227 |
$limit = $this->get_withdraw_limit();
|
228 |
+
$balance = dokan_get_seller_balance( dokan_get_current_user_id(), false );
|
229 |
$withdraw_amount = (float) $_POST['witdraw_amount'];
|
230 |
|
231 |
if ( empty( $_POST['witdraw_amount'] ) ) {
|
255 |
*/
|
256 |
function insert_withdraw_info() {
|
257 |
|
258 |
+
if ( isset( $_POST['dokan_withdraw_nonce'] ) && ! wp_verify_nonce( $_POST['dokan_withdraw_nonce'], 'dokan_withdraw' ) ) {
|
259 |
+
return;
|
260 |
+
}
|
261 |
+
|
262 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
263 |
+
return;
|
264 |
+
}
|
265 |
+
|
266 |
global $current_user;
|
267 |
|
268 |
$amount = floatval( $_POST['witdraw_amount'] );
|
292 |
* @return void
|
293 |
*/
|
294 |
function withdraw_requests( $user_id ) {
|
295 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
296 |
+
return;
|
297 |
+
}
|
298 |
+
|
299 |
$withdraw_requests = $this->get_withdraw_requests( $user_id );
|
300 |
|
301 |
dokan_get_template_part( 'withdraw/pending-request-listing', '', array(
|
312 |
$type = isset( $_GET['message'] ) ? $_GET['message'] : '';
|
313 |
$message = '';
|
314 |
|
315 |
+
$template = 'global/dokan-success';
|
316 |
+
|
317 |
switch ( $type ) {
|
318 |
case 'request_cancelled':
|
319 |
$message = __( 'Your request has been cancelled successfully!', 'dokan-lite' );
|
325 |
|
326 |
case 'request_error':
|
327 |
$message = __( 'Unknown error!', 'dokan-lite' );
|
328 |
+
$template = 'global/dokan-error';
|
329 |
break;
|
330 |
}
|
331 |
|
332 |
if ( ! empty( $message ) ) {
|
333 |
+
dokan_get_template_part( $template, '', array( 'deleted' => true, 'message' => $message ) );
|
334 |
}
|
335 |
}
|
336 |
|
344 |
function withdraw_form( $validate = '' ) {
|
345 |
global $current_user;
|
346 |
|
347 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
348 |
+
return;
|
349 |
+
}
|
350 |
+
|
351 |
// show alert messages
|
352 |
$this->show_alert_messages();
|
353 |
|
386 |
return;
|
387 |
}
|
388 |
|
389 |
+
$payment_methods = dokan_get_seller_active_withdraw_methods();
|
390 |
|
391 |
if ( is_wp_error( $validate ) ) {
|
392 |
+
$amount = sanitize_text_field( $_POST['witdraw_amount'] );
|
393 |
+
$withdraw_method = sanitize_text_field( $_POST['withdraw_method'] );
|
394 |
} else {
|
395 |
$amount = '';
|
396 |
$withdraw_method = '';
|
411 |
* @return void
|
412 |
*/
|
413 |
function user_approved_withdraws( $user_id ) {
|
414 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
415 |
+
return;
|
416 |
+
}
|
417 |
$requests = $this->get_withdraw_requests( $user_id, 1, 100 );
|
418 |
|
419 |
if ( $requests ) {
|
440 |
* @return void
|
441 |
*/
|
442 |
function user_cancelled_withdraws( $user_id ){
|
443 |
+
if ( ! current_user_can( 'dokan_manage_withdraw' ) ) {
|
444 |
+
return;
|
445 |
+
}
|
446 |
|
447 |
$requests = $this->get_withdraw_requests( $user_id, 2, 100 );
|
448 |
|
classes/upgrade.php
CHANGED
@@ -19,6 +19,8 @@ class Dokan_Upgrade {
|
|
19 |
'2.4.12' => 'upgrades/dokan-upgrade-2.4.12.php',
|
20 |
'2.5.7' => 'upgrades/dokan-upgrade-2.5.7.php',
|
21 |
'2.6.9' => 'upgrades/dokan-upgrade-2.6.9.php',
|
|
|
|
|
22 |
];
|
23 |
|
24 |
/**
|
19 |
'2.4.12' => 'upgrades/dokan-upgrade-2.4.12.php',
|
20 |
'2.5.7' => 'upgrades/dokan-upgrade-2.5.7.php',
|
21 |
'2.6.9' => 'upgrades/dokan-upgrade-2.6.9.php',
|
22 |
+
'2.7.3' => 'upgrades/dokan-upgrade-2.7.3.php',
|
23 |
+
'2.7.6' => 'upgrades/dokan-upgrade-2.7.6.php',
|
24 |
];
|
25 |
|
26 |
/**
|
classes/withdraw.php
CHANGED
@@ -169,6 +169,11 @@ class Dokan_Withdraw {
|
|
169 |
* @return void
|
170 |
*/
|
171 |
function note_update() {
|
|
|
|
|
|
|
|
|
|
|
172 |
global $wpdb;
|
173 |
|
174 |
$table_name = $wpdb->prefix . 'dokan_withdraw';
|
169 |
* @return void
|
170 |
*/
|
171 |
function note_update() {
|
172 |
+
|
173 |
+
if ( isset( $_POST['dokan_admin_nonce'] ) && !wp_verify_nonce( sanitize_key( $_POST['dokan_admin_nonce'] ), 'dokan_admin_action' ) ) {
|
174 |
+
return;
|
175 |
+
}
|
176 |
+
|
177 |
global $wpdb;
|
178 |
|
179 |
$table_name = $wpdb->prefix . 'dokan_withdraw';
|
dokan.php
CHANGED
@@ -3,10 +3,12 @@
|
|
3 |
Plugin Name: Dokan
|
4 |
Plugin URI: https://wordpress.org/plugins/dokan-lite/
|
5 |
Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs.
|
6 |
-
Version: 2.
|
7 |
Author: weDevs
|
8 |
Author URI: https://wedevs.com/
|
9 |
Text Domain: dokan-lite
|
|
|
|
|
10 |
Domain Path: /languages/
|
11 |
License: GPL2
|
12 |
*/
|
@@ -76,7 +78,7 @@ final class WeDevs_Dokan {
|
|
76 |
*
|
77 |
* @var string
|
78 |
*/
|
79 |
-
public $version = '2.
|
80 |
|
81 |
/**
|
82 |
* Holds various class instances
|
@@ -99,13 +101,12 @@ final class WeDevs_Dokan {
|
|
99 |
* @uses add_action()
|
100 |
*/
|
101 |
public function __construct() {
|
102 |
-
|
103 |
$this->define_constants();
|
104 |
|
105 |
register_activation_hook( __FILE__, array( $this, 'activate' ) );
|
106 |
register_deactivation_hook( __FILE__, array( $this, 'deactivate' ) );
|
107 |
|
108 |
-
add_action( '
|
109 |
}
|
110 |
|
111 |
/**
|
@@ -173,6 +174,7 @@ final class WeDevs_Dokan {
|
|
173 |
}
|
174 |
|
175 |
require_once __DIR__ . '/includes/functions.php';
|
|
|
176 |
|
177 |
$installer = new Dokan_Installer();
|
178 |
$installer->do_install();
|
@@ -229,7 +231,6 @@ final class WeDevs_Dokan {
|
|
229 |
* @return void
|
230 |
*/
|
231 |
public function init_plugin() {
|
232 |
-
|
233 |
$this->includes();
|
234 |
|
235 |
$this->init_hooks();
|
@@ -245,11 +246,10 @@ final class WeDevs_Dokan {
|
|
245 |
function init_hooks() {
|
246 |
|
247 |
// Localize our plugin
|
248 |
-
|
249 |
add_action( 'init', array( $this, 'localization_setup' ) );
|
250 |
|
251 |
// initialize the classes
|
252 |
-
add_action( '
|
253 |
add_action( 'init', array( $this, 'wpdb_table_shortcuts' ) );
|
254 |
|
255 |
add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), array( $this, 'plugin_action_links' ) );
|
@@ -296,7 +296,6 @@ final class WeDevs_Dokan {
|
|
296 |
require_once $inc_dir . 'admin/class-ajax.php';
|
297 |
require_once $inc_dir . 'admin/class-admin-pointers.php';
|
298 |
require_once $inc_dir . 'admin-functions.php';
|
299 |
-
require_once $lib_dir . '/class-weforms-upsell.php';
|
300 |
} else {
|
301 |
require_once $inc_dir . 'template-tags.php';
|
302 |
}
|
@@ -318,22 +317,21 @@ final class WeDevs_Dokan {
|
|
318 |
new Dokan_Admin_User_Profile();
|
319 |
Dokan_Admin_Ajax::init();
|
320 |
new Dokan_Upgrade();
|
321 |
-
new
|
322 |
-
} else {
|
323 |
-
new Dokan_Pageviews();
|
324 |
}
|
325 |
|
|
|
326 |
new Dokan_Rewrites();
|
327 |
new Dokan_Tracker();
|
|
|
328 |
|
329 |
$this->container['core'] = new Dokan_Core();
|
330 |
$this->container['scripts'] = new Dokan_Scripts();
|
331 |
$this->container['email'] = Dokan_Email::init();
|
332 |
$this->container['vendor'] = new Dokan_Vendor_Manager();
|
333 |
-
$this->container['product']
|
334 |
|
335 |
if ( is_user_logged_in() ) {
|
336 |
-
Dokan_Template_Shortcodes::init();
|
337 |
Dokan_Template_Main::init();
|
338 |
Dokan_Template_Dashboard::init();
|
339 |
Dokan_Template_Products::init();
|
@@ -342,10 +340,11 @@ final class WeDevs_Dokan {
|
|
342 |
Dokan_Template_Settings::init();
|
343 |
}
|
344 |
|
|
|
|
|
345 |
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
346 |
Dokan_Ajax::init()->init_ajax();
|
347 |
}
|
348 |
-
// print_r( dokan()->vendor->get_total() );
|
349 |
}
|
350 |
|
351 |
/**
|
3 |
Plugin Name: Dokan
|
4 |
Plugin URI: https://wordpress.org/plugins/dokan-lite/
|
5 |
Description: An e-commerce marketplace plugin for WordPress. Powered by WooCommerce and weDevs.
|
6 |
+
Version: 2.7.8
|
7 |
Author: weDevs
|
8 |
Author URI: https://wedevs.com/
|
9 |
Text Domain: dokan-lite
|
10 |
+
WC requires at least: 2.6
|
11 |
+
WC tested up to: 3.3.3
|
12 |
Domain Path: /languages/
|
13 |
License: GPL2
|
14 |
*/
|
78 |
*
|
79 |
* @var string
|
80 |
*/
|
81 |
+
public $version = '2.7.8';
|
82 |
|
83 |
/**
|
84 |
* Holds various class instances
|
101 |
* @uses add_action()
|
102 |
*/
|
103 |
public function __construct() {
|
|
|
104 |
$this->define_constants();
|
105 |
|
106 |
register_activation_hook( __FILE__, array( $this, 'activate' ) );
|
107 |
register_deactivation_hook( __FILE__, array( $this, 'deactivate' ) );
|
108 |
|
109 |
+
add_action( 'woocommerce_loaded', array( $this, 'init_plugin' ) );
|
110 |
}
|
111 |
|
112 |
/**
|
174 |
}
|
175 |
|
176 |
require_once __DIR__ . '/includes/functions.php';
|
177 |
+
require_once __DIR__ . '/includes/functions-compatibility.php';
|
178 |
|
179 |
$installer = new Dokan_Installer();
|
180 |
$installer->do_install();
|
231 |
* @return void
|
232 |
*/
|
233 |
public function init_plugin() {
|
|
|
234 |
$this->includes();
|
235 |
|
236 |
$this->init_hooks();
|
246 |
function init_hooks() {
|
247 |
|
248 |
// Localize our plugin
|
|
|
249 |
add_action( 'init', array( $this, 'localization_setup' ) );
|
250 |
|
251 |
// initialize the classes
|
252 |
+
add_action( 'init', array( $this, 'init_classes' ),5 );
|
253 |
add_action( 'init', array( $this, 'wpdb_table_shortcuts' ) );
|
254 |
|
255 |
add_filter( 'plugin_action_links_' . plugin_basename(__FILE__), array( $this, 'plugin_action_links' ) );
|
296 |
require_once $inc_dir . 'admin/class-ajax.php';
|
297 |
require_once $inc_dir . 'admin/class-admin-pointers.php';
|
298 |
require_once $inc_dir . 'admin-functions.php';
|
|
|
299 |
} else {
|
300 |
require_once $inc_dir . 'template-tags.php';
|
301 |
}
|
317 |
new Dokan_Admin_User_Profile();
|
318 |
Dokan_Admin_Ajax::init();
|
319 |
new Dokan_Upgrade();
|
320 |
+
new Dokan_Setup_Wizard();
|
|
|
|
|
321 |
}
|
322 |
|
323 |
+
new Dokan_Pageviews();
|
324 |
new Dokan_Rewrites();
|
325 |
new Dokan_Tracker();
|
326 |
+
new Dokan_Seller_Setup_Wizard();
|
327 |
|
328 |
$this->container['core'] = new Dokan_Core();
|
329 |
$this->container['scripts'] = new Dokan_Scripts();
|
330 |
$this->container['email'] = Dokan_Email::init();
|
331 |
$this->container['vendor'] = new Dokan_Vendor_Manager();
|
332 |
+
$this->container['product'] = new Dokan_Product_Manager();
|
333 |
|
334 |
if ( is_user_logged_in() ) {
|
|
|
335 |
Dokan_Template_Main::init();
|
336 |
Dokan_Template_Dashboard::init();
|
337 |
Dokan_Template_Products::init();
|
340 |
Dokan_Template_Settings::init();
|
341 |
}
|
342 |
|
343 |
+
Dokan_Template_Shortcodes::init();
|
344 |
+
|
345 |
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
|
346 |
Dokan_Ajax::init()->init_ajax();
|
347 |
}
|
|
|
348 |
}
|
349 |
|
350 |
/**
|
includes/admin-functions.php
CHANGED
@@ -38,19 +38,31 @@ add_filter( 'woocommerce_reports_get_order_report_query', 'dokan_admin_order_rep
|
|
38 |
function dokan_admin_shop_order_edit_columns( $existing_columns ) {
|
39 |
$columns = array();
|
40 |
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
return $columns;
|
56 |
}
|
@@ -73,7 +85,7 @@ function dokan_shop_order_custom_columns( $col ) {
|
|
73 |
}
|
74 |
|
75 |
switch ($col) {
|
76 |
-
case '
|
77 |
if ($post->post_parent !== 0) {
|
78 |
echo '<strong>';
|
79 |
echo __( 'Sub Order of', 'dokan-lite' );
|
@@ -162,6 +174,34 @@ function dokan_admin_shop_order_scripts() {
|
|
162 |
tr.sub-order {
|
163 |
background: #ECFFF2;
|
164 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
</style>
|
166 |
<?php
|
167 |
}
|
@@ -282,8 +322,8 @@ function dokan_admin_report( $group_by = 'day', $year = '' ) {
|
|
282 |
|
283 |
$group_by = apply_filters( 'dokan_report_group_by', $group_by );
|
284 |
|
285 |
-
$start_date = isset( $_POST['start_date'] ) ? $_POST['start_date'] : '';
|
286 |
-
$end_date = isset( $_POST['end_date'] ) ? $_POST['end_date'] : '';
|
287 |
$current_year = date( 'Y' );
|
288 |
|
289 |
if ( ! $start_date ) {
|
@@ -363,6 +403,18 @@ function dokan_admin_report( $group_by = 'day', $year = '' ) {
|
|
363 |
|
364 |
?>
|
365 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
<script type="text/javascript">
|
367 |
jQuery(function($) {
|
368 |
|
@@ -537,9 +589,9 @@ function dokan_send_notification_on_product_publish( $post ) {
|
|
537 |
if ( $post->post_type != 'product' ) {
|
538 |
return;
|
539 |
}
|
540 |
-
|
541 |
$seller = get_user_by( 'id', $post->post_author );
|
542 |
-
|
543 |
do_action( 'dokan_pending_product_published_notification', $post, $seller );
|
544 |
}
|
545 |
|
@@ -599,7 +651,7 @@ add_action( 'add_meta_boxes', 'dokan_add_seller_meta_box' );
|
|
599 |
**/
|
600 |
function dokan_override_product_author_by_admin( $product_id, $post ) {
|
601 |
$product = wc_get_product( $product_id );
|
602 |
-
$seller_id = !empty( $_POST['dokan_product_author_override'] ) ? $_POST['dokan_product_author_override'] : '-1';
|
603 |
|
604 |
if ( $seller_id < 0 ) {
|
605 |
return;
|
@@ -645,13 +697,13 @@ function dokan_admin_report_by_seller( $chosen_seller_id) {
|
|
645 |
$year = '';
|
646 |
$group_by = apply_filters( 'dokan_report_group_by', $group_by );
|
647 |
|
648 |
-
$start_date = isset( $_POST['start_date'] ) ? $_POST['start_date'] : '';
|
649 |
-
$end_date = isset( $_POST['end_date'] ) ? $_POST['end_date'] : '';
|
650 |
$current_year = date( 'Y' );
|
651 |
|
652 |
-
if ( !
|
653 |
-
|
654 |
-
|
655 |
|
656 |
if ( ! $start_date ) {
|
657 |
$start_date = date( 'Y-m-d', strtotime( date( 'Ym', current_time( 'timestamp' ) ) . '01' ) );
|
@@ -729,6 +781,18 @@ function dokan_admin_report_by_seller( $chosen_seller_id) {
|
|
729 |
);
|
730 |
?>
|
731 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
<script type="text/javascript">
|
733 |
jQuery(function($) {
|
734 |
|
@@ -882,4 +946,4 @@ function dokan_admin_report_by_seller( $chosen_seller_id) {
|
|
882 |
<?php
|
883 |
|
884 |
return $data;
|
885 |
-
}
|
38 |
function dokan_admin_shop_order_edit_columns( $existing_columns ) {
|
39 |
$columns = array();
|
40 |
|
41 |
+
if ( WC_VERSION > '3.2.6' ) {
|
42 |
+
$columns['cb'] = '<input type="checkbox" />';
|
43 |
+
$columns['order_number'] = __( 'Order', 'dokan-lite' );
|
44 |
+
$columns['order_date'] = __( 'Date', 'dokan-lite' );
|
45 |
+
$columns['order_status'] = __( 'Status', 'dokan-lite' );
|
46 |
+
$columns['billing_address'] = __( 'Billing', 'dokan-lite' );
|
47 |
+
$columns['shipping_address'] = __( 'Ship to', 'dokan-lite' );
|
48 |
+
$columns['order_total'] = __( 'Total', 'dokan-lite' );
|
49 |
+
$columns['seller'] = __( 'Vendor', 'dokan-lite' );
|
50 |
+
$columns['wc_actions'] = __( 'Actions', 'dokan-lite' );
|
51 |
+
$columns['suborder'] = __( 'Sub Order', 'dokan-lite' );
|
52 |
+
} else {
|
53 |
+
$columns['cb'] = '<input type="checkbox" />';
|
54 |
+
$columns['order_status'] = '<span class="status_head tips" data-tip="' . esc_attr__( 'Status', 'dokan-lite' ) . '">' . esc_attr__( 'Status', 'dokan-lite' ) . '</span>';
|
55 |
+
$columns['order_title'] = __( 'Order', 'dokan-lite' );
|
56 |
+
$columns['order_items'] = __( 'Purchased', 'dokan-lite' );
|
57 |
+
$columns['shipping_address'] = __( 'Ship to', 'dokan-lite' );
|
58 |
+
$columns['customer_message'] = '<span class="notes_head tips" data-tip="' . esc_attr__( 'Customer Message', 'dokan-lite' ) . '">' . esc_attr__( 'Customer Message', 'dokan-lite' ) . '</span>';
|
59 |
+
$columns['order_notes'] = '<span class="order-notes_head tips" data-tip="' . esc_attr__( 'Order Notes', 'dokan-lite' ) . '">' . esc_attr__( 'Order Notes', 'dokan-lite' ) . '</span>';
|
60 |
+
$columns['order_date'] = __( 'Date', 'dokan-lite' );
|
61 |
+
$columns['order_total'] = __( 'Total', 'dokan-lite' );
|
62 |
+
$columns['order_actions'] = __( 'Actions', 'dokan-lite' );
|
63 |
+
$columns['seller'] = __( 'Vendor', 'dokan-lite' );
|
64 |
+
$columns['suborder'] = __( 'Sub Order', 'dokan-lite' );
|
65 |
+
}
|
66 |
|
67 |
return $columns;
|
68 |
}
|
85 |
}
|
86 |
|
87 |
switch ($col) {
|
88 |
+
case 'order_number':
|
89 |
if ($post->post_parent !== 0) {
|
90 |
echo '<strong>';
|
91 |
echo __( 'Sub Order of', 'dokan-lite' );
|
174 |
tr.sub-order {
|
175 |
background: #ECFFF2;
|
176 |
}
|
177 |
+
|
178 |
+
th#order_number {
|
179 |
+
width: 21ch;
|
180 |
+
}
|
181 |
+
|
182 |
+
th#order_date {
|
183 |
+
width: 9ch;
|
184 |
+
}
|
185 |
+
|
186 |
+
th#order_status {
|
187 |
+
width: 12ch;
|
188 |
+
}
|
189 |
+
|
190 |
+
th#shipping_address {
|
191 |
+
width: 18ch;
|
192 |
+
}
|
193 |
+
|
194 |
+
th#wc_actions {
|
195 |
+
width: 9ch;
|
196 |
+
}
|
197 |
+
|
198 |
+
th#seller {
|
199 |
+
width: 6ch;
|
200 |
+
}
|
201 |
+
|
202 |
+
th#suborder {
|
203 |
+
width: 9ch;
|
204 |
+
}
|
205 |
</style>
|
206 |
<?php
|
207 |
}
|
322 |
|
323 |
$group_by = apply_filters( 'dokan_report_group_by', $group_by );
|
324 |
|
325 |
+
$start_date = isset( $_POST['start_date'] ) ? sanitize_text_field ( $_POST['start_date'] ): ''; // WPCS: CSRF ok.
|
326 |
+
$end_date = isset( $_POST['end_date'] ) ? sanitize_text_field( $_POST['end_date'] ): ''; // WPCS: CSRF ok.
|
327 |
$current_year = date( 'Y' );
|
328 |
|
329 |
if ( ! $start_date ) {
|
403 |
|
404 |
?>
|
405 |
|
406 |
+
<style type="text/css">
|
407 |
+
.chart-tooltip {
|
408 |
+
position: absolute;
|
409 |
+
display: none;
|
410 |
+
line-height: 1;
|
411 |
+
background: #333;
|
412 |
+
color: #fff;
|
413 |
+
padding: 3px 5px;
|
414 |
+
font-size: 11px;
|
415 |
+
border-radius: 3px;
|
416 |
+
}
|
417 |
+
</style>
|
418 |
<script type="text/javascript">
|
419 |
jQuery(function($) {
|
420 |
|
589 |
if ( $post->post_type != 'product' ) {
|
590 |
return;
|
591 |
}
|
592 |
+
|
593 |
$seller = get_user_by( 'id', $post->post_author );
|
594 |
+
|
595 |
do_action( 'dokan_pending_product_published_notification', $post, $seller );
|
596 |
}
|
597 |
|
651 |
**/
|
652 |
function dokan_override_product_author_by_admin( $product_id, $post ) {
|
653 |
$product = wc_get_product( $product_id );
|
654 |
+
$seller_id = !empty( $_POST['dokan_product_author_override'] ) ? wc_clean( $_POST['dokan_product_author_override'] ): '-1'; // WPCS: CSRF ok.
|
655 |
|
656 |
if ( $seller_id < 0 ) {
|
657 |
return;
|
697 |
$year = '';
|
698 |
$group_by = apply_filters( 'dokan_report_group_by', $group_by );
|
699 |
|
700 |
+
$start_date = isset( $_POST['start_date'] ) ? $_POST['start_date'] : ''; // WPCS: CSRF ok.
|
701 |
+
$end_date = isset( $_POST['end_date'] ) ? $_POST['end_date'] : ''; // WPCS: CSRF ok.
|
702 |
$current_year = date( 'Y' );
|
703 |
|
704 |
+
if ( !isset( $chosen_seller_id ) || $chosen_seller_id == '' || $chosen_seller_id == Null ) {
|
705 |
+
return 0;
|
706 |
+
}
|
707 |
|
708 |
if ( ! $start_date ) {
|
709 |
$start_date = date( 'Y-m-d', strtotime( date( 'Ym', current_time( 'timestamp' ) ) . '01' ) );
|
781 |
);
|
782 |
?>
|
783 |
|
784 |
+
<style type="text/css">
|
785 |
+
.chart-tooltip {
|
786 |
+
position: absolute;
|
787 |
+
display: none;
|
788 |
+
line-height: 1;
|
789 |
+
background: #333;
|
790 |
+
color: #fff;
|
791 |
+
padding: 3px 5px;
|
792 |
+
font-size: 11px;
|
793 |
+
border-radius: 3px;
|
794 |
+
}
|
795 |
+
</style>
|
796 |
<script type="text/javascript">
|
797 |
jQuery(function($) {
|
798 |
|
946 |
<?php
|
947 |
|
948 |
return $data;
|
949 |
+
}
|
includes/admin/class-admin-pointers.php
CHANGED
@@ -40,7 +40,7 @@ class Dokan_Admin_Pointers {
|
|
40 |
* @return void
|
41 |
*/
|
42 |
public function dismiss_screen( $screen = false ) {
|
43 |
-
$screen = isset( $_POST['screen'] ) ? wc_clean( $_POST['screen'] ) : $screen;
|
44 |
if ( !$screen ) {
|
45 |
return;
|
46 |
}
|
40 |
* @return void
|
41 |
*/
|
42 |
public function dismiss_screen( $screen = false ) {
|
43 |
+
$screen = isset( $_POST['screen'] ) ? wc_clean( $_POST['screen'] ) : $screen; // WPCS: CSRF ok.
|
44 |
if ( !$screen ) {
|
45 |
return;
|
46 |
}
|
includes/admin/class-admin.php
CHANGED
@@ -52,22 +52,23 @@ class Dokan_Admin {
|
|
52 |
}
|
53 |
|
54 |
// check if it has already been dismissed
|
55 |
-
$offer_key = '
|
56 |
$hide_notice = get_option( $offer_key . '_tracking_notice', 'no' );
|
57 |
|
58 |
if ( 'hide' == $hide_notice ) {
|
59 |
return;
|
60 |
}
|
61 |
|
62 |
-
$
|
63 |
-
|
64 |
-
|
65 |
-
$offer_msg .= sprintf( __( '<p>
|
66 |
?>
|
67 |
<div class="notice is-dismissible" id="dokan-promotional-offer-notice">
|
68 |
<img src="https://ps.w.org/dokan-lite/assets/icon-256x256.png?rev=1595714" alt="">
|
69 |
<?php echo $offer_msg; ?>
|
70 |
<span class="dashicons dashicons-megaphone"></span>
|
|
|
71 |
</div>
|
72 |
|
73 |
<style>
|
@@ -77,9 +78,26 @@ class Dokan_Admin {
|
|
77 |
padding-left: 83px;
|
78 |
}
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
#dokan-promotional-offer-notice h2{
|
81 |
-
font-size:
|
82 |
-
|
|
|
83 |
margin-bottom: 8px;
|
84 |
font-weight: normal;
|
85 |
margin-top: 15px;
|
@@ -92,7 +110,7 @@ class Dokan_Admin {
|
|
92 |
#dokan-promotional-offer-notice img{
|
93 |
position: absolute;
|
94 |
width: 80px;
|
95 |
-
top:
|
96 |
left: 0px;
|
97 |
}
|
98 |
|
@@ -102,6 +120,7 @@ class Dokan_Admin {
|
|
102 |
}
|
103 |
|
104 |
#dokan-promotional-offer-notice p{
|
|
|
105 |
color: rgba(250, 250, 250, 0.77);
|
106 |
font-size: 14px;
|
107 |
margin-bottom: 10px;
|
@@ -126,7 +145,7 @@ class Dokan_Admin {
|
|
126 |
#dokan-promotional-offer-notice span.dashicons-megaphone {
|
127 |
position: absolute;
|
128 |
top: 16px;
|
129 |
-
right:
|
130 |
color: rgba(253, 253, 253, 0.29);
|
131 |
font-size: 96px;
|
132 |
transform: rotate(-21deg);
|
@@ -193,9 +212,8 @@ class Dokan_Admin {
|
|
193 |
|
194 |
do_action( 'dokan_admin_menu', $capability, $menu_position );
|
195 |
|
196 |
-
add_submenu_page( 'dokan', __( 'Help', 'dokan' ), __( '<span style="color:#f18500">Help</span>', 'dokan' ), $capability, 'dokan-help', array( $this, 'help_page' ) );
|
197 |
$settings = add_submenu_page( 'dokan', __( 'Settings', 'dokan-lite' ), __( 'Settings', 'dokan-lite' ), $capability, 'dokan-settings', array( $this, 'settings_page' ) );
|
198 |
-
add_submenu_page( 'dokan', __( 'Add Ons', 'dokan-lite' ), __( 'Add-ons', 'dokan-lite' ), $capability, 'dokan-addons', array($this, 'addon_page' ) );
|
199 |
|
200 |
/**
|
201 |
* Welcome page
|
@@ -319,7 +337,7 @@ class Dokan_Admin {
|
|
319 |
|
320 |
$args = array(
|
321 |
'id' => 'dokan',
|
322 |
-
'title' => __( 'Dokan', '
|
323 |
'href' => admin_url( 'admin.php?page=dokan' )
|
324 |
);
|
325 |
|
52 |
}
|
53 |
|
54 |
// check if it has already been dismissed
|
55 |
+
$offer_key = 'dokan_package_offer';
|
56 |
$hide_notice = get_option( $offer_key . '_tracking_notice', 'no' );
|
57 |
|
58 |
if ( 'hide' == $hide_notice ) {
|
59 |
return;
|
60 |
}
|
61 |
|
62 |
+
$offer_msg = sprintf( __( '<h2>
|
63 |
+
Dokan is Getting More Affordable: Price Reduction & Changes in Packages
|
64 |
+
</h2>', 'dokan-lite' ) );
|
65 |
+
$offer_msg .= sprintf( __( '<p>Marketplaces are changing, so is Dokan Multivendor. We are reducing Dokan Pro entry package price and bringing entirely new pricing where you get addons pre-activated for free depending on your package.</p>', 'dokan-lite' ) );
|
66 |
?>
|
67 |
<div class="notice is-dismissible" id="dokan-promotional-offer-notice">
|
68 |
<img src="https://ps.w.org/dokan-lite/assets/icon-256x256.png?rev=1595714" alt="">
|
69 |
<?php echo $offer_msg; ?>
|
70 |
<span class="dashicons dashicons-megaphone"></span>
|
71 |
+
<a href="https://wedevs.com/in/dokan-new-package-blog-via-lite" class="button button-primary promo-btn" target="_blank"><?php _e( 'View Package', 'dokan-lite' ); ?></a>
|
72 |
</div>
|
73 |
|
74 |
<style>
|
78 |
padding-left: 83px;
|
79 |
}
|
80 |
|
81 |
+
#dokan-promotional-offer-notice a.promo-btn{
|
82 |
+
background: #fff;
|
83 |
+
border-color: #fafafa #fafafa #fafafa;
|
84 |
+
box-shadow: 0 1px 0 #fafafa;
|
85 |
+
color: #F35E33;
|
86 |
+
text-decoration: none;
|
87 |
+
text-shadow: none;
|
88 |
+
position: absolute;
|
89 |
+
top: 30px;
|
90 |
+
right: 26px;
|
91 |
+
height: 40px;
|
92 |
+
line-height: 40px;
|
93 |
+
width: 130px;
|
94 |
+
text-align: center;
|
95 |
+
}
|
96 |
+
|
97 |
#dokan-promotional-offer-notice h2{
|
98 |
+
font-size: 18px;
|
99 |
+
width: 85%;
|
100 |
+
color: rgba(250, 250, 250, 1);
|
101 |
margin-bottom: 8px;
|
102 |
font-weight: normal;
|
103 |
margin-top: 15px;
|
110 |
#dokan-promotional-offer-notice img{
|
111 |
position: absolute;
|
112 |
width: 80px;
|
113 |
+
top: 10px;
|
114 |
left: 0px;
|
115 |
}
|
116 |
|
120 |
}
|
121 |
|
122 |
#dokan-promotional-offer-notice p{
|
123 |
+
width: 85%;
|
124 |
color: rgba(250, 250, 250, 0.77);
|
125 |
font-size: 14px;
|
126 |
margin-bottom: 10px;
|
145 |
#dokan-promotional-offer-notice span.dashicons-megaphone {
|
146 |
position: absolute;
|
147 |
top: 16px;
|
148 |
+
right: 248px;
|
149 |
color: rgba(253, 253, 253, 0.29);
|
150 |
font-size: 96px;
|
151 |
transform: rotate(-21deg);
|
212 |
|
213 |
do_action( 'dokan_admin_menu', $capability, $menu_position );
|
214 |
|
215 |
+
add_submenu_page( 'dokan', __( 'Help', 'dokan-lite' ), __( '<span style="color:#f18500">Help</span>', 'dokan-lite' ), $capability, 'dokan-help', array( $this, 'help_page' ) );
|
216 |
$settings = add_submenu_page( 'dokan', __( 'Settings', 'dokan-lite' ), __( 'Settings', 'dokan-lite' ), $capability, 'dokan-settings', array( $this, 'settings_page' ) );
|
|
|
217 |
|
218 |
/**
|
219 |
* Welcome page
|
337 |
|
338 |
$args = array(
|
339 |
'id' => 'dokan',
|
340 |
+
'title' => __( 'Dokan', 'dokan-lite' ),
|
341 |
'href' => admin_url( 'admin.php?page=dokan' )
|
342 |
);
|
343 |
|
includes/admin/class-ajax.php
CHANGED
@@ -84,6 +84,10 @@ class Dokan_Admin_Ajax {
|
|
84 |
$amount = $postdata['amount'][$withdraw_id];
|
85 |
$method = $postdata['method'][$withdraw_id];
|
86 |
|
|
|
|
|
|
|
|
|
87 |
$withdraw->update_status( $withdraw_id, $user_id, 1 );
|
88 |
|
89 |
do_action( 'dokan_withdraw_request_approved', $user_id, $amount, $method );
|
@@ -112,9 +116,8 @@ class Dokan_Admin_Ajax {
|
|
112 |
* @return void
|
113 |
*/
|
114 |
public function dismiss_promotional_offer() {
|
115 |
-
|
116 |
if ( ! empty( $_POST['dokan_promotion_dismissed'] ) ) {
|
117 |
-
$offer_key = '
|
118 |
update_option( $offer_key . '_tracking_notice', 'hide' );
|
119 |
}
|
120 |
}
|
84 |
$amount = $postdata['amount'][$withdraw_id];
|
85 |
$method = $postdata['method'][$withdraw_id];
|
86 |
|
87 |
+
if ( dokan_get_seller_balance( $user_id, false ) < $amount ) {
|
88 |
+
continue;
|
89 |
+
}
|
90 |
+
|
91 |
$withdraw->update_status( $withdraw_id, $user_id, 1 );
|
92 |
|
93 |
do_action( 'dokan_withdraw_request_approved', $user_id, $amount, $method );
|
116 |
* @return void
|
117 |
*/
|
118 |
public function dismiss_promotional_offer() {
|
|
|
119 |
if ( ! empty( $_POST['dokan_promotion_dismissed'] ) ) {
|
120 |
+
$offer_key = 'dokan_package_offer';
|
121 |
update_option( $offer_key . '_tracking_notice', 'hide' );
|
122 |
}
|
123 |
}
|
includes/admin/class-settings.php
CHANGED
@@ -217,6 +217,8 @@ class Dokan_Settings {
|
|
217 |
'desc' => __( 'Amount you get from sales', 'dokan-lite' ),
|
218 |
'default' => '10',
|
219 |
'type' => 'number',
|
|
|
|
|
220 |
),
|
221 |
'order_status_change' => array(
|
222 |
'name' => 'order_status_change',
|
217 |
'desc' => __( 'Amount you get from sales', 'dokan-lite' ),
|
218 |
'default' => '10',
|
219 |
'type' => 'number',
|
220 |
+
'min' => '0',
|
221 |
+
'step' => 'any',
|
222 |
),
|
223 |
'order_status_change' => array(
|
224 |
'name' => 'order_status_change',
|
includes/admin/setup-wizard.php
CHANGED
@@ -104,7 +104,7 @@ class Dokan_Setup_Wizard {
|
|
104 |
|
105 |
$this->enqueue_scripts();
|
106 |
|
107 |
-
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) {
|
108 |
call_user_func( $this->steps[ $this->step ]['handler'] );
|
109 |
}
|
110 |
|
@@ -136,6 +136,7 @@ class Dokan_Setup_Wizard {
|
|
136 |
<?php wp_print_scripts( 'wc-setup' ); ?>
|
137 |
<?php do_action( 'admin_print_styles' ); ?>
|
138 |
<?php do_action( 'admin_head' ); ?>
|
|
|
139 |
<style type="text/css">
|
140 |
.wc-setup-steps {
|
141 |
justify-content: center;
|
@@ -527,6 +528,4 @@ class Dokan_Setup_Wizard {
|
|
527 |
</div>
|
528 |
<?php
|
529 |
}
|
530 |
-
}
|
531 |
-
|
532 |
-
new Dokan_Setup_Wizard();
|
104 |
|
105 |
$this->enqueue_scripts();
|
106 |
|
107 |
+
if ( ! empty( $_POST['save_step'] ) && isset( $this->steps[ $this->step ]['handler'] ) ) { // WPCS: CSRF ok.
|
108 |
call_user_func( $this->steps[ $this->step ]['handler'] );
|
109 |
}
|
110 |
|
136 |
<?php wp_print_scripts( 'wc-setup' ); ?>
|
137 |
<?php do_action( 'admin_print_styles' ); ?>
|
138 |
<?php do_action( 'admin_head' ); ?>
|
139 |
+
<?php do_action( 'dokan_setup_wizard_styles' ); ?>
|
140 |
<style type="text/css">
|
141 |
.wc-setup-steps {
|
142 |
justify-content: center;
|
528 |
</div>
|
529 |
<?php
|
530 |
}
|
531 |
+
}
|
|
|
|
includes/admin/views/help.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<div class="wrap">
|
2 |
-
<h1 style="margin-bottom: 20px;"><?php _e( 'Dokan Help', 'dokan' ); ?> <a href="http://docs.wedevs.com/docs/dokan/" target="_blank" class="page-title-action"><?php _e( 'View all Documentations', 'dokan' ); ?></a></h1>
|
3 |
|
4 |
<?php
|
5 |
$help_docs = get_transient( 'dokan_help_docs' );
|
1 |
<div class="wrap">
|
2 |
+
<h1 style="margin-bottom: 20px;"><?php _e( 'Dokan Help', 'dokan-lite' ); ?> <a href="http://docs.wedevs.com/docs/dokan/" target="_blank" class="page-title-action"><?php _e( 'View all Documentations', 'dokan-lite' ); ?></a></h1>
|
3 |
|
4 |
<?php
|
5 |
$help_docs = get_transient( 'dokan_help_docs' );
|
includes/class-core.php
CHANGED
@@ -40,8 +40,7 @@ class Dokan_Core {
|
|
40 |
$no_access = dokan_get_option( 'admin_access', 'dokan_general', 'on' );
|
41 |
$valid_pages = array( 'admin-ajax.php', 'admin-post.php', 'async-upload.php', 'media-upload.php' );
|
42 |
$user_role = reset( $current_user->roles );
|
43 |
-
|
44 |
-
if ( ( $no_access == 'on' ) && ( !in_array( $pagenow, $valid_pages ) ) && in_array( $user_role, array( 'seller', 'customer' ) ) ) {
|
45 |
wp_redirect( home_url() );
|
46 |
exit;
|
47 |
}
|
@@ -65,8 +64,12 @@ class Dokan_Core {
|
|
65 |
function hide_others_uploads( $where ) {
|
66 |
global $pagenow, $wpdb;
|
67 |
|
68 |
-
if (
|
69 |
-
$
|
|
|
|
|
|
|
|
|
70 |
|
71 |
$where .= " AND $wpdb->posts.post_author = $user_id";
|
72 |
}
|
40 |
$no_access = dokan_get_option( 'admin_access', 'dokan_general', 'on' );
|
41 |
$valid_pages = array( 'admin-ajax.php', 'admin-post.php', 'async-upload.php', 'media-upload.php' );
|
42 |
$user_role = reset( $current_user->roles );
|
43 |
+
if ( ( $no_access == 'on' ) && ( !in_array( $pagenow, $valid_pages ) ) && in_array( $user_role, array( 'seller', 'customer', 'vendor_staff' ) ) ) {
|
|
|
44 |
wp_redirect( home_url() );
|
45 |
exit;
|
46 |
}
|
64 |
function hide_others_uploads( $where ) {
|
65 |
global $pagenow, $wpdb;
|
66 |
|
67 |
+
if ( current_user_can( 'manage_woocommerce' ) ) {
|
68 |
+
return $where;
|
69 |
+
}
|
70 |
+
|
71 |
+
if ( ( $pagenow == 'upload.php' || $pagenow == 'media-upload.php' ) && current_user_can( 'dokandar' ) ) {
|
72 |
+
$user_id = dokan_get_current_user_id();
|
73 |
|
74 |
$where .= " AND $wpdb->posts.post_author = $user_id";
|
75 |
}
|
includes/class-scripts.php
CHANGED
@@ -14,7 +14,7 @@ class Dokan_Scripts {
|
|
14 |
|
15 |
add_action( 'init', array( $this, 'register_all_scripts' ), 10 );
|
16 |
add_filter( 'dokan_localized_args', array( $this, 'conditional_localized_args' ) );
|
17 |
-
|
18 |
if ( is_admin() ) {
|
19 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
20 |
} else {
|
@@ -27,10 +27,17 @@ class Dokan_Scripts {
|
|
27 |
*/
|
28 |
public function enqueue_admin_scripts( $hook ) {
|
29 |
wp_enqueue_style( 'dokan-admin-css', DOKAN_PLUGIN_ASSEST . '/css/admin.css', false, time() );
|
30 |
-
|
31 |
wp_enqueue_script( 'dokan-tooltip' );
|
32 |
wp_enqueue_script( 'dokan_slider_admin', DOKAN_PLUGIN_ASSEST . '/js/dokan-admin.js', array( 'jquery' ) );
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
if ( 'plugins.php' == $hook ) {
|
35 |
wp_enqueue_style( 'dokan-plugin-list-css', DOKAN_PLUGIN_ASSEST . '/css/plugin.css', false, null );
|
36 |
}
|
@@ -45,45 +52,45 @@ class Dokan_Scripts {
|
|
45 |
$vendor = DOKAN_PLUGIN_ASSEST . '/vendors';
|
46 |
|
47 |
// Register Vendors styles
|
48 |
-
wp_register_style( 'jquery-ui', $vendor . '/jquery-ui/jquery-ui-1.10.0.custom.css', false,
|
49 |
-
wp_register_style( 'dokan-fontawesome', $vendor . '/font-awesome/font-awesome.min.css', false,
|
50 |
-
wp_register_style( 'dokan-chosen-style', $vendor . '/chosen/chosen.min.css', false,
|
51 |
-
wp_register_style( 'dokan-magnific-popup', $vendor . '/magnific/magnific-popup.css', false,
|
52 |
-
wp_register_style( 'dokan-select2-css', $vendor . '/select2/select2.css', false,
|
53 |
|
54 |
// Core styles
|
55 |
-
wp_register_style( 'dokan-style', DOKAN_PLUGIN_ASSEST.'/css/style.css', false,
|
56 |
|
57 |
if ( is_rtl() ) {
|
58 |
// RTL supported style
|
59 |
-
wp_register_style( 'dokan-rtl-style', DOKAN_PLUGIN_ASSEST.'/css/rtl.css', false,
|
60 |
}
|
61 |
|
62 |
// Register Vendors scripts
|
63 |
-
wp_register_script( 'dokan-chart', $vendor . '/chart/Chart.min.js', false,
|
64 |
-
wp_register_script( 'dokan-tabs', $vendor . '/easytab/jquery.easytabs.min.js', false,
|
65 |
-
wp_register_script( 'dokan-chosen', $vendor . '/chosen/chosen.jquery.min.js', array( 'jquery' ),
|
66 |
-
wp_register_script( 'dokan-popup', $vendor . '/magnific/jquery.magnific-popup.min.js', array( 'jquery' ),
|
67 |
-
wp_register_script( 'dokan-tooltip', $vendor . '/tooltips/tooltips.js', array( 'jquery' ),
|
68 |
-
wp_register_script( 'dokan-form-validate', $vendor . '/form-validate/form-validate.js', array( 'jquery' ),
|
69 |
-
wp_register_script( 'dokan-select2-js', $vendor . '/select2/select2.full.min.js', array( 'jquery' ),
|
70 |
|
71 |
// Image cropping scripts
|
72 |
-
wp_register_script( 'customize-base', site_url( 'wp-includes/js/customize-base.js' ), array( 'jquery', 'json2', 'underscore' ),
|
73 |
-
wp_register_script( 'customize-model', site_url( 'wp-includes/js/customize-models.js' ), array( 'underscore', 'backbone' ),
|
74 |
|
75 |
// Register core scripts
|
76 |
-
wp_register_script( 'dokan-flot', DOKAN_PLUGIN_ASSEST.'/js/flot-all.min.js', false,
|
77 |
-
wp_register_script( '
|
|
|
78 |
|
79 |
do_action( 'dokan_register_scripts' );
|
80 |
}
|
81 |
-
|
82 |
/**
|
83 |
* Enqueue front-end scripts
|
84 |
*/
|
85 |
public function enqueue_front_scripts() {
|
86 |
-
|
87 |
|
88 |
if ( !function_exists( 'WC' ) ) {
|
89 |
return;
|
@@ -110,9 +117,11 @@ class Dokan_Scripts {
|
|
110 |
),
|
111 |
'delete_confirm' => __( 'Are you sure?', 'dokan-lite' ),
|
112 |
'wrong_message' => __( 'Something went wrong. Please try again.', 'dokan-lite' ),
|
113 |
-
'vendor_percentage' => dokan_get_seller_percentage(
|
114 |
-
'commission_type' => dokan_get_commission_type(
|
115 |
-
|
|
|
|
|
116 |
);
|
117 |
|
118 |
$localize_script = apply_filters( 'dokan_localized_args', $default_script );
|
@@ -125,7 +134,7 @@ class Dokan_Scripts {
|
|
125 |
}
|
126 |
|
127 |
// store and my account page
|
128 |
-
if ( dokan_is_store_page() || dokan_is_store_review_page() || is_account_page() ) {
|
129 |
|
130 |
if ( DOKAN_LOAD_STYLE ) {
|
131 |
wp_enqueue_style( 'dokan-select2-css' );
|
@@ -141,6 +150,7 @@ class Dokan_Scripts {
|
|
141 |
wp_enqueue_script( 'dokan-tooltip' );
|
142 |
wp_enqueue_script( 'dokan-chosen' );
|
143 |
wp_enqueue_script( 'dokan-form-validate' );
|
|
|
144 |
wp_enqueue_script( 'dokan-script' );
|
145 |
wp_enqueue_script( 'dokan-select2-js' );
|
146 |
}
|
@@ -252,12 +262,13 @@ class Dokan_Scripts {
|
|
252 |
*/
|
253 |
function conditional_localized_args( $default_args ) {
|
254 |
|
255 |
-
if ( dokan_is_seller_dashboard()
|
256 |
-
|| ( get_query_var( 'edit' ) && is_singular( 'product' ) )
|
257 |
-
|| dokan_is_store_page()
|
258 |
-
|| is_account_page()
|
|
|
259 |
|| apply_filters( 'dokan_force_load_extra_args', false )
|
260 |
-
)
|
261 |
{
|
262 |
$general_settings = get_option( 'dokan_general', array() );
|
263 |
|
14 |
|
15 |
add_action( 'init', array( $this, 'register_all_scripts' ), 10 );
|
16 |
add_filter( 'dokan_localized_args', array( $this, 'conditional_localized_args' ) );
|
17 |
+
|
18 |
if ( is_admin() ) {
|
19 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) );
|
20 |
} else {
|
27 |
*/
|
28 |
public function enqueue_admin_scripts( $hook ) {
|
29 |
wp_enqueue_style( 'dokan-admin-css', DOKAN_PLUGIN_ASSEST . '/css/admin.css', false, time() );
|
|
|
30 |
wp_enqueue_script( 'dokan-tooltip' );
|
31 |
wp_enqueue_script( 'dokan_slider_admin', DOKAN_PLUGIN_ASSEST . '/js/dokan-admin.js', array( 'jquery' ) );
|
32 |
|
33 |
+
global $post;
|
34 |
+
|
35 |
+
if ( get_post_type( $post ) == 'dokan_slider' ) {
|
36 |
+
wp_enqueue_script( 'media-upload' );
|
37 |
+
wp_enqueue_script( 'thickbox' );
|
38 |
+
wp_enqueue_style( 'thickbox' );
|
39 |
+
}
|
40 |
+
|
41 |
if ( 'plugins.php' == $hook ) {
|
42 |
wp_enqueue_style( 'dokan-plugin-list-css', DOKAN_PLUGIN_ASSEST . '/css/plugin.css', false, null );
|
43 |
}
|
52 |
$vendor = DOKAN_PLUGIN_ASSEST . '/vendors';
|
53 |
|
54 |
// Register Vendors styles
|
55 |
+
wp_register_style( 'jquery-ui', $vendor . '/jquery-ui/jquery-ui-1.10.0.custom.css', false, DOKAN_PLUGIN_VERSION );
|
56 |
+
wp_register_style( 'dokan-fontawesome', $vendor . '/font-awesome/font-awesome.min.css', false, DOKAN_PLUGIN_VERSION );
|
57 |
+
wp_register_style( 'dokan-chosen-style', $vendor . '/chosen/chosen.min.css', false, DOKAN_PLUGIN_VERSION );
|
58 |
+
wp_register_style( 'dokan-magnific-popup', $vendor . '/magnific/magnific-popup.css', false, DOKAN_PLUGIN_VERSION );
|
59 |
+
wp_register_style( 'dokan-select2-css', $vendor . '/select2/select2.css', false, DOKAN_PLUGIN_VERSION );
|
60 |
|
61 |
// Core styles
|
62 |
+
wp_register_style( 'dokan-style', DOKAN_PLUGIN_ASSEST.'/css/style.css', false, DOKAN_PLUGIN_VERSION );
|
63 |
|
64 |
if ( is_rtl() ) {
|
65 |
// RTL supported style
|
66 |
+
wp_register_style( 'dokan-rtl-style', DOKAN_PLUGIN_ASSEST.'/css/rtl.css', false, DOKAN_PLUGIN_VERSION );
|
67 |
}
|
68 |
|
69 |
// Register Vendors scripts
|
70 |
+
wp_register_script( 'dokan-chart', $vendor . '/chart/Chart.min.js', false, DOKAN_PLUGIN_VERSION, true );
|
71 |
+
wp_register_script( 'dokan-tabs', $vendor . '/easytab/jquery.easytabs.min.js', false, DOKAN_PLUGIN_VERSION, true );
|
72 |
+
wp_register_script( 'dokan-chosen', $vendor . '/chosen/chosen.jquery.min.js', array( 'jquery' ), DOKAN_PLUGIN_VERSION, true );
|
73 |
+
wp_register_script( 'dokan-popup', $vendor . '/magnific/jquery.magnific-popup.min.js', array( 'jquery' ), DOKAN_PLUGIN_VERSION, true );
|
74 |
+
wp_register_script( 'dokan-tooltip', $vendor . '/tooltips/tooltips.js', array( 'jquery' ), DOKAN_PLUGIN_VERSION, true );
|
75 |
+
wp_register_script( 'dokan-form-validate', $vendor . '/form-validate/form-validate.js', array( 'jquery' ), DOKAN_PLUGIN_VERSION, true );
|
76 |
+
wp_register_script( 'dokan-select2-js', $vendor . '/select2/select2.full.min.js', array( 'jquery' ), DOKAN_PLUGIN_VERSION, true );
|
77 |
|
78 |
// Image cropping scripts
|
79 |
+
wp_register_script( 'customize-base', site_url( 'wp-includes/js/customize-base.js' ), array( 'jquery', 'json2', 'underscore' ), DOKAN_PLUGIN_VERSION, true );
|
80 |
+
wp_register_script( 'customize-model', site_url( 'wp-includes/js/customize-models.js' ), array( 'underscore', 'backbone' ), DOKAN_PLUGIN_VERSION, true );
|
81 |
|
82 |
// Register core scripts
|
83 |
+
wp_register_script( 'dokan-flot', DOKAN_PLUGIN_ASSEST.'/js/flot-all.min.js', false, DOKAN_PLUGIN_VERSION, true );
|
84 |
+
wp_register_script( 'speaking-url', DOKAN_PLUGIN_ASSEST . '/js/speakingurl.min.js', false, DOKAN_PLUGIN_VERSION, true );
|
85 |
+
wp_register_script( 'dokan-script', DOKAN_PLUGIN_ASSEST.'/js/dokan.js', array( 'imgareaselect', 'customize-base', 'customize-model' ), DOKAN_PLUGIN_VERSION, true );
|
86 |
|
87 |
do_action( 'dokan_register_scripts' );
|
88 |
}
|
89 |
+
|
90 |
/**
|
91 |
* Enqueue front-end scripts
|
92 |
*/
|
93 |
public function enqueue_front_scripts() {
|
|
|
94 |
|
95 |
if ( !function_exists( 'WC' ) ) {
|
96 |
return;
|
117 |
),
|
118 |
'delete_confirm' => __( 'Are you sure?', 'dokan-lite' ),
|
119 |
'wrong_message' => __( 'Something went wrong. Please try again.', 'dokan-lite' ),
|
120 |
+
'vendor_percentage' => dokan_get_seller_percentage( dokan_get_current_user_id() ),
|
121 |
+
'commission_type' => dokan_get_commission_type( dokan_get_current_user_id() ),
|
122 |
+
'rounding_precision' => wc_get_rounding_precision(),
|
123 |
+
'mon_decimal_point' => wc_get_price_decimal_separator(),
|
124 |
+
|
125 |
);
|
126 |
|
127 |
$localize_script = apply_filters( 'dokan_localized_args', $default_script );
|
134 |
}
|
135 |
|
136 |
// store and my account page
|
137 |
+
if ( dokan_is_store_page() || dokan_is_store_review_page() || is_account_page() || is_product() ) {
|
138 |
|
139 |
if ( DOKAN_LOAD_STYLE ) {
|
140 |
wp_enqueue_style( 'dokan-select2-css' );
|
150 |
wp_enqueue_script( 'dokan-tooltip' );
|
151 |
wp_enqueue_script( 'dokan-chosen' );
|
152 |
wp_enqueue_script( 'dokan-form-validate' );
|
153 |
+
wp_enqueue_script( 'speaking-url' );
|
154 |
wp_enqueue_script( 'dokan-script' );
|
155 |
wp_enqueue_script( 'dokan-select2-js' );
|
156 |
}
|
262 |
*/
|
263 |
function conditional_localized_args( $default_args ) {
|
264 |
|
265 |
+
if ( dokan_is_seller_dashboard()
|
266 |
+
|| ( get_query_var( 'edit' ) && is_singular( 'product' ) )
|
267 |
+
|| dokan_is_store_page()
|
268 |
+
|| is_account_page()
|
269 |
+
|| is_product()
|
270 |
|| apply_filters( 'dokan_force_load_extra_args', false )
|
271 |
+
)
|
272 |
{
|
273 |
$general_settings = get_option( 'dokan_general', array() );
|
274 |
|
includes/class-vendor.php
CHANGED
@@ -324,7 +324,7 @@ class Dokan_Vendor {
|
|
324 |
WHERE seller_id = %d AND DATE(p.post_date) <= %s AND order_status IN({$status})";
|
325 |
|
326 |
$result = $wpdb->get_row( $wpdb->prepare( $sql, $this->id, $this->id, $date ) );
|
327 |
-
$earning = $result->earnings - $result->withdraw;
|
328 |
|
329 |
wp_cache_set( $cache_key, $earning, $cache_group );
|
330 |
dokan_cache_update_group( $cache_key , $cache_group );
|
324 |
WHERE seller_id = %d AND DATE(p.post_date) <= %s AND order_status IN({$status})";
|
325 |
|
326 |
$result = $wpdb->get_row( $wpdb->prepare( $sql, $this->id, $this->id, $date ) );
|
327 |
+
$earning = (float) $result->earnings - (float) round( $result->withdraw, wc_get_rounding_precision() );
|
328 |
|
329 |
wp_cache_set( $cache_key, $earning, $cache_group );
|
330 |
dokan_cache_update_group( $cache_key , $cache_group );
|
includes/functions.php
CHANGED
@@ -26,6 +26,28 @@ function dokana_admin_menu_capability() {
|
|
26 |
return apply_filters( 'dokan_menu_capability', 'manage_options' );
|
27 |
}
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
/**
|
30 |
* Check if a user is seller
|
31 |
*
|
@@ -70,7 +92,7 @@ function dokan_is_product_author( $product_id = 0 ) {
|
|
70 |
$author = get_post_field( 'post_author', $product_id );
|
71 |
}
|
72 |
|
73 |
-
if ( $author ==
|
74 |
return true;
|
75 |
}
|
76 |
|
@@ -133,7 +155,7 @@ function dokan_redirect_login() {
|
|
133 |
* @param string $redirect
|
134 |
*/
|
135 |
function dokan_redirect_if_not_seller( $redirect = '' ) {
|
136 |
-
if ( !dokan_is_user_seller(
|
137 |
$redirect = empty( $redirect ) ? home_url( '/' ) : $redirect;
|
138 |
|
139 |
wp_redirect( $redirect );
|
@@ -166,6 +188,7 @@ function dokan_delete_product_handler() {
|
|
166 |
}
|
167 |
|
168 |
wp_delete_post( $product_id );
|
|
|
169 |
|
170 |
$redirect = apply_filters( 'dokan_add_new_product_redirect', dokan_get_navigation_url( 'products' ), '' );
|
171 |
|
@@ -398,28 +421,30 @@ if ( !function_exists( 'dokan_get_seller_percentage' ) ) :
|
|
398 |
*/
|
399 |
function dokan_get_seller_percentage( $seller_id = 0, $product_id = 0 ) {
|
400 |
|
401 |
-
|
|
|
|
|
|
|
402 |
if ( $product_id ) {
|
403 |
$_per_product_commission = get_post_meta( $product_id, '_per_product_admin_commission', true );
|
404 |
if ( $_per_product_commission != '' ) {
|
405 |
-
|
406 |
}
|
407 |
$category_commission = dokan_get_category_wise_seller_commission( $product_id );
|
408 |
if ( !empty( $category_commission ) ) {
|
409 |
-
|
410 |
}
|
411 |
}
|
412 |
|
413 |
-
//
|
414 |
if ( $seller_id ) {
|
415 |
$admin_commission = get_user_meta( $seller_id, 'dokan_admin_percentage', true );
|
416 |
if ( $admin_commission != '' ) {
|
417 |
-
|
418 |
}
|
419 |
}
|
420 |
|
421 |
-
|
422 |
-
return (float) ( 100 - $global_percentage );
|
423 |
}
|
424 |
|
425 |
endif;
|
@@ -686,11 +711,11 @@ function dokan_get_product_types( $status = '' ) {
|
|
686 |
function dokan_posted_input( $key, $array = false ) {
|
687 |
|
688 |
//If array value is submitted return array
|
689 |
-
if ( $array && isset( $_POST[$key] ) ) {
|
690 |
-
return $_POST[$key];
|
691 |
}
|
692 |
|
693 |
-
$value = isset( $_POST[$key] ) ? trim( $_POST[$key] ) : '';
|
694 |
return esc_attr( $value );
|
695 |
}
|
696 |
|
@@ -701,7 +726,7 @@ function dokan_posted_input( $key, $array = false ) {
|
|
701 |
* @return string
|
702 |
*/
|
703 |
function dokan_posted_textarea( $key ) {
|
704 |
-
$value = isset( $_POST[$key] ) ? trim( $_POST[$key] ) : '';
|
705 |
|
706 |
return esc_textarea( $value );
|
707 |
}
|
@@ -998,13 +1023,14 @@ function dokan_log( $message ) {
|
|
998 |
* @return array
|
999 |
*/
|
1000 |
function dokan_media_uploader_restrict( $args ) {
|
|
|
1001 |
// bail out for admin and editor
|
1002 |
if ( current_user_can( 'delete_pages' ) ) {
|
1003 |
return $args;
|
1004 |
}
|
1005 |
|
1006 |
if ( current_user_can( 'dokandar' ) ) {
|
1007 |
-
$args['author'] =
|
1008 |
|
1009 |
return $args;
|
1010 |
}
|
@@ -1274,8 +1300,10 @@ function dokan_disable_admin_bar( $show_admin_bar ) {
|
|
1274 |
if ( $current_user->ID !== 0 ) {
|
1275 |
$role = reset( $current_user->roles );
|
1276 |
|
1277 |
-
if (
|
1278 |
-
|
|
|
|
|
1279 |
}
|
1280 |
}
|
1281 |
|
@@ -1284,6 +1312,49 @@ function dokan_disable_admin_bar( $show_admin_bar ) {
|
|
1284 |
|
1285 |
add_filter( 'show_admin_bar', 'dokan_disable_admin_bar' );
|
1286 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1287 |
/**
|
1288 |
* Human readable number format.
|
1289 |
*
|
@@ -1321,18 +1392,17 @@ function dokan_get_coupon_edit_url( $coupon_id, $coupon_page = '' ) {
|
|
1321 |
}
|
1322 |
|
1323 |
/**
|
1324 |
-
*
|
|
|
1325 |
*
|
1326 |
-
* @since 2.0
|
1327 |
*
|
1328 |
-
* @param
|
1329 |
-
* @param
|
1330 |
-
* @param
|
1331 |
-
* @
|
1332 |
-
* @param string $alt
|
1333 |
-
* @return string image tag of the user avatar
|
1334 |
*/
|
1335 |
-
function
|
1336 |
|
1337 |
if ( is_numeric( $id_or_email ) ) {
|
1338 |
$user = get_user_by( 'id', $id_or_email );
|
@@ -1340,29 +1410,34 @@ function dokan_get_avatar( $avatar, $id_or_email, $size, $default, $alt ) {
|
|
1340 |
if ( $id_or_email->user_id != '0' ) {
|
1341 |
$user = get_user_by( 'id', $id_or_email->user_id );
|
1342 |
} else {
|
1343 |
-
return $
|
1344 |
}
|
1345 |
} else {
|
1346 |
$user = get_user_by( 'email', $id_or_email );
|
1347 |
}
|
1348 |
|
1349 |
-
if (
|
1350 |
-
return $
|
1351 |
}
|
1352 |
|
1353 |
// see if there is a user_avatar meta field
|
1354 |
$user_avatar = get_user_meta( $user->ID, 'dokan_profile_settings', true );
|
1355 |
$gravatar_id = isset( $user_avatar['gravatar'] ) ? $user_avatar['gravatar'] : 0;
|
|
|
1356 |
if ( empty( $gravatar_id ) ) {
|
1357 |
-
return $
|
1358 |
}
|
1359 |
|
1360 |
-
$
|
|
|
|
|
|
|
|
|
1361 |
|
1362 |
-
return
|
1363 |
}
|
1364 |
|
1365 |
-
add_filter( '
|
1366 |
|
1367 |
/**
|
1368 |
* Get navigation url for the dokan dashboard
|
@@ -1549,7 +1624,7 @@ function dokan_product_listing_filter_months_dropdown( $user_id ) {
|
|
1549 |
$date = isset( $_GET['date'] ) ? (int) $_GET['date'] : 0;
|
1550 |
?>
|
1551 |
<select name="date" id="filter-by-date" class="dokan-form-control">
|
1552 |
-
<option<?php selected( $date, 0 ); ?> value="0"><?php _e( 'All dates' ); ?></option>
|
1553 |
<?php
|
1554 |
foreach ( $months as $arc_row ) {
|
1555 |
if ( 0 == $arc_row->year )
|
@@ -1562,7 +1637,7 @@ function dokan_product_listing_filter_months_dropdown( $user_id ) {
|
|
1562 |
selected( $date, $year . $month, false ),
|
1563 |
esc_attr( $year . $month ),
|
1564 |
/* translators: 1: month name, 2: 4-digit year */
|
1565 |
-
sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month ), $year )
|
1566 |
);
|
1567 |
}
|
1568 |
?>
|
@@ -1708,7 +1783,7 @@ function dokan_seller_address_fields( $verified = false, $required = false ) {
|
|
1708 |
)
|
1709 |
);
|
1710 |
|
1711 |
-
$profile_info = dokan_get_store_info(
|
1712 |
|
1713 |
dokan_get_template_part( 'settings/address-form', '', array(
|
1714 |
'disabled' => $disabled,
|
@@ -1730,7 +1805,7 @@ function dokan_seller_address_fields( $verified = false, $required = false ) {
|
|
1730 |
function dokan_get_seller_address( $seller_id = '', $get_array = false ) {
|
1731 |
|
1732 |
if ( $seller_id == '' ) {
|
1733 |
-
$seller_id =
|
1734 |
}
|
1735 |
|
1736 |
$profile_info = dokan_get_store_info( $seller_id );
|
@@ -1796,39 +1871,40 @@ function dokan_get_seller_address( $seller_id = '', $get_array = false ) {
|
|
1796 |
*/
|
1797 |
function dokan_get_seller_short_address( $store_id, $line_break = true ) {
|
1798 |
$store_address = dokan_get_seller_address( $store_id, true );
|
1799 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1800 |
$short_address = array();
|
1801 |
$formatted_address = '';
|
1802 |
|
1803 |
if ( ! empty( $store_address['street_1'] ) && empty( $store_address['street_2'] ) ) {
|
1804 |
-
$short_address[] = $store_address['street_1'];
|
1805 |
} else if ( empty( $store_address['street_1'] ) && ! empty( $store_address['street_2'] ) ) {
|
1806 |
-
$short_address[] = $store_address['street_2'];
|
1807 |
} else if ( ! empty( $store_address['street_1'] ) && ! empty( $store_address['street_2'] ) ) {
|
1808 |
-
$short_address[] = $store_address['street_1'];
|
1809 |
}
|
1810 |
|
1811 |
if ( ! empty( $store_address['city'] ) && ! empty( $store_address['city'] ) ) {
|
1812 |
-
$short_address[] = $store_address['city'];
|
1813 |
}
|
1814 |
|
1815 |
if ( ! empty( $store_address['state'] ) && ! empty( $store_address['country'] ) ) {
|
1816 |
-
$short_address[] = $store_address['state'] .
|
1817 |
} else if ( ! empty( $store_address['country'] ) ) {
|
1818 |
-
$short_address[] = $store_address['country'];
|
1819 |
}
|
1820 |
|
1821 |
if ( ! empty( $short_address ) && $line_break ) {
|
1822 |
$formatted_address = implode( '<br>', $short_address );
|
1823 |
} else {
|
1824 |
-
|
1825 |
-
$formatted_address = implode( ', ', $short_address );
|
1826 |
-
} else {
|
1827 |
-
$formatted_address = implode( ' ', $short_address );
|
1828 |
-
}
|
1829 |
}
|
1830 |
|
1831 |
-
|
1832 |
return apply_filters( 'dokan_store_header_adress', $formatted_address, $store_address, $short_address );
|
1833 |
}
|
1834 |
|
@@ -1902,7 +1978,17 @@ function dokan_set_is_home_false_on_store() {
|
|
1902 |
}
|
1903 |
}
|
1904 |
|
1905 |
-
register_sidebar(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1906 |
|
1907 |
/**
|
1908 |
* Calculate category wise commission for given product
|
@@ -2022,7 +2108,7 @@ function dokan_cache_reset_order_data_on_status( $order_id, $from_status, $to_st
|
|
2022 |
* Reset cache group related to seller products
|
2023 |
*/
|
2024 |
function dokan_cache_clear_seller_product_data( $product_id, $post_data = array() ) {
|
2025 |
-
$seller_id =
|
2026 |
|
2027 |
dokan_cache_clear_group( 'dokan_seller_product_data_' . $seller_id );
|
2028 |
delete_transient( 'dokan-store-category-' . $seller_id );
|
@@ -2056,7 +2142,7 @@ function dokan_get_earning_by_product( $product_id, $seller_id ) {
|
|
2056 |
$product = wc_get_product( $product_id );
|
2057 |
$percentage = dokan_get_seller_percentage( $seller_id, $product_id );
|
2058 |
$price = $product->get_price();
|
2059 |
-
$earning = ( $price * $percentage ) / 100;
|
2060 |
|
2061 |
return wc_format_decimal( $earning );
|
2062 |
}
|
@@ -2118,3 +2204,75 @@ function dokan_get_vendor( $vendor_id = null ) {
|
|
2118 |
return new Dokan_Vendor( $vendor_id );
|
2119 |
}
|
2120 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
return apply_filters( 'dokan_menu_capability', 'manage_options' );
|
27 |
}
|
28 |
|
29 |
+
/**
|
30 |
+
* Dokan Get current user id
|
31 |
+
*
|
32 |
+
* @since 2.7.3
|
33 |
+
*
|
34 |
+
* @return void
|
35 |
+
*/
|
36 |
+
function dokan_get_current_user_id() {
|
37 |
+
if ( current_user_can( 'vendor_staff' ) ) {
|
38 |
+
$staff_id = get_current_user_id();
|
39 |
+
$vendor_id = get_user_meta( $staff_id, '_vendor_id', true );
|
40 |
+
|
41 |
+
if ( empty( $vendor_id ) ) {
|
42 |
+
return $user_id;
|
43 |
+
}
|
44 |
+
|
45 |
+
return $vendor_id;
|
46 |
+
}
|
47 |
+
|
48 |
+
return get_current_user_id();
|
49 |
+
}
|
50 |
+
|
51 |
/**
|
52 |
* Check if a user is seller
|
53 |
*
|
92 |
$author = get_post_field( 'post_author', $product_id );
|
93 |
}
|
94 |
|
95 |
+
if ( $author == dokan_get_current_user_id() ) {
|
96 |
return true;
|
97 |
}
|
98 |
|
155 |
* @param string $redirect
|
156 |
*/
|
157 |
function dokan_redirect_if_not_seller( $redirect = '' ) {
|
158 |
+
if ( !dokan_is_user_seller( dokan_get_current_user_id() ) ) {
|
159 |
$redirect = empty( $redirect ) ? home_url( '/' ) : $redirect;
|
160 |
|
161 |
wp_redirect( $redirect );
|
188 |
}
|
189 |
|
190 |
wp_delete_post( $product_id );
|
191 |
+
do_action( 'dokan_product_deleted', $product_id );
|
192 |
|
193 |
$redirect = apply_filters( 'dokan_add_new_product_redirect', dokan_get_navigation_url( 'products' ), '' );
|
194 |
|
421 |
*/
|
422 |
function dokan_get_seller_percentage( $seller_id = 0, $product_id = 0 ) {
|
423 |
|
424 |
+
$global_percentage = dokan_get_option( 'admin_percentage', 'dokan_selling' , 0 );
|
425 |
+
$commission_val = (float) ( 100 - $global_percentage );
|
426 |
+
|
427 |
+
//product wise percentage
|
428 |
if ( $product_id ) {
|
429 |
$_per_product_commission = get_post_meta( $product_id, '_per_product_admin_commission', true );
|
430 |
if ( $_per_product_commission != '' ) {
|
431 |
+
$commission_val = (float) ( 100 - $_per_product_commission );
|
432 |
}
|
433 |
$category_commission = dokan_get_category_wise_seller_commission( $product_id );
|
434 |
if ( !empty( $category_commission ) ) {
|
435 |
+
$commission_val = (float) $category_commission;
|
436 |
}
|
437 |
}
|
438 |
|
439 |
+
//seller wise percentage
|
440 |
if ( $seller_id ) {
|
441 |
$admin_commission = get_user_meta( $seller_id, 'dokan_admin_percentage', true );
|
442 |
if ( $admin_commission != '' ) {
|
443 |
+
$commission_val = (float) ( 100 - $admin_commission );
|
444 |
}
|
445 |
}
|
446 |
|
447 |
+
return apply_filters( 'dokan_get_seller_percentage' , $commission_val, $seller_id, $product_id );
|
|
|
448 |
}
|
449 |
|
450 |
endif;
|
711 |
function dokan_posted_input( $key, $array = false ) {
|
712 |
|
713 |
//If array value is submitted return array
|
714 |
+
if ( $array && isset( $_POST[$key] ) ) { // WPCS: CSRF ok.
|
715 |
+
return $_POST[$key]; // WPCS: CSRF ok.
|
716 |
}
|
717 |
|
718 |
+
$value = isset( $_POST[$key] ) ? trim( $_POST[$key] ) : ''; // WPCS: CSRF ok.
|
719 |
return esc_attr( $value );
|
720 |
}
|
721 |
|
726 |
* @return string
|
727 |
*/
|
728 |
function dokan_posted_textarea( $key ) {
|
729 |
+
$value = isset( $_POST[$key] ) ? trim( $_POST[$key] ) : ''; // WPCS: CSRF ok.
|
730 |
|
731 |
return esc_textarea( $value );
|
732 |
}
|
1023 |
* @return array
|
1024 |
*/
|
1025 |
function dokan_media_uploader_restrict( $args ) {
|
1026 |
+
|
1027 |
// bail out for admin and editor
|
1028 |
if ( current_user_can( 'delete_pages' ) ) {
|
1029 |
return $args;
|
1030 |
}
|
1031 |
|
1032 |
if ( current_user_can( 'dokandar' ) ) {
|
1033 |
+
$args['author'] = dokan_get_current_user_id();
|
1034 |
|
1035 |
return $args;
|
1036 |
}
|
1300 |
if ( $current_user->ID !== 0 ) {
|
1301 |
$role = reset( $current_user->roles );
|
1302 |
|
1303 |
+
if ( dokan_get_option( 'admin_access', 'dokan_general' ) == 'on' ) {
|
1304 |
+
if ( in_array( $role, array( 'seller', 'customer', 'vendor_staff' ) ) ) {
|
1305 |
+
return false;
|
1306 |
+
}
|
1307 |
}
|
1308 |
}
|
1309 |
|
1312 |
|
1313 |
add_filter( 'show_admin_bar', 'dokan_disable_admin_bar' );
|
1314 |
|
1315 |
+
/**
|
1316 |
+
* Filter the orders, products and booking products of current user
|
1317 |
+
*
|
1318 |
+
* @param object $query
|
1319 |
+
* @since 2.7.3
|
1320 |
+
* @return object $query
|
1321 |
+
*/
|
1322 |
+
function dokan_filter_orders_for_current_vendor( $query ) {
|
1323 |
+
if ( current_user_can( 'manage_woocommerce' ) ) {
|
1324 |
+
return;
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
if ( ! isset( $query->query_vars['post_type'] ) ) {
|
1328 |
+
return;
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
if ( is_admin() && $query->is_main_query() && ( $query->query_vars['post_type'] == 'shop_order' || $query->query_vars['post_type'] == 'product' || $query->query_vars['post_type'] == 'wc_booking' ) ) {
|
1332 |
+
$query->set( 'author', get_current_user_id() );
|
1333 |
+
}
|
1334 |
+
|
1335 |
+
return $query;
|
1336 |
+
}
|
1337 |
+
|
1338 |
+
add_action( 'pre_get_posts', 'dokan_filter_orders_for_current_vendor' );
|
1339 |
+
|
1340 |
+
/**
|
1341 |
+
* Remove sellerdiv metabox when a seller can access the backend
|
1342 |
+
*
|
1343 |
+
* @since 2.7.8
|
1344 |
+
* @return void
|
1345 |
+
*/
|
1346 |
+
function dokan_remove_sellerdiv_metabox() {
|
1347 |
+
if ( current_user_can( 'manage_woocommerce' ) ) {
|
1348 |
+
return;
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
if ( is_admin() && get_post_type() == 'product' && ! defined( 'DOING_AJAX' ) ) {
|
1352 |
+
remove_meta_box( 'sellerdiv', 'product', 'normal' );
|
1353 |
+
}
|
1354 |
+
}
|
1355 |
+
|
1356 |
+
add_action( 'do_meta_boxes', 'dokan_remove_sellerdiv_metabox' );
|
1357 |
+
|
1358 |
/**
|
1359 |
* Human readable number format.
|
1360 |
*
|
1392 |
}
|
1393 |
|
1394 |
/**
|
1395 |
+
* Filter `get_avatar_url` to retrieve image url from dokan profile settings
|
1396 |
+
* called by `get_avatar_url()` as well as `get_avatar()`
|
1397 |
*
|
1398 |
+
* @since 2.7.0
|
1399 |
*
|
1400 |
+
* @param string $url avatar url
|
1401 |
+
* @param mixed $id_or_email userdata or user_id or user_email
|
1402 |
+
* @param array $args arguments
|
1403 |
+
* @return string maybe modified url
|
|
|
|
|
1404 |
*/
|
1405 |
+
function dokan_get_avatar_url( $url, $id_or_email, $args ) {
|
1406 |
|
1407 |
if ( is_numeric( $id_or_email ) ) {
|
1408 |
$user = get_user_by( 'id', $id_or_email );
|
1410 |
if ( $id_or_email->user_id != '0' ) {
|
1411 |
$user = get_user_by( 'id', $id_or_email->user_id );
|
1412 |
} else {
|
1413 |
+
return $url;
|
1414 |
}
|
1415 |
} else {
|
1416 |
$user = get_user_by( 'email', $id_or_email );
|
1417 |
}
|
1418 |
|
1419 |
+
if ( ! $user ) {
|
1420 |
+
return $url;
|
1421 |
}
|
1422 |
|
1423 |
// see if there is a user_avatar meta field
|
1424 |
$user_avatar = get_user_meta( $user->ID, 'dokan_profile_settings', true );
|
1425 |
$gravatar_id = isset( $user_avatar['gravatar'] ) ? $user_avatar['gravatar'] : 0;
|
1426 |
+
|
1427 |
if ( empty( $gravatar_id ) ) {
|
1428 |
+
return $url;
|
1429 |
}
|
1430 |
|
1431 |
+
$dokan_avatar_url = wp_get_attachment_thumb_url( $gravatar_id );
|
1432 |
+
|
1433 |
+
if( empty( $dokan_avatar_url ) ) {
|
1434 |
+
return $url;
|
1435 |
+
}
|
1436 |
|
1437 |
+
return esc_url( $dokan_avatar_url );
|
1438 |
}
|
1439 |
|
1440 |
+
add_filter( 'get_avatar_url', 'dokan_get_avatar_url', 99, 3 );
|
1441 |
|
1442 |
/**
|
1443 |
* Get navigation url for the dokan dashboard
|
1624 |
$date = isset( $_GET['date'] ) ? (int) $_GET['date'] : 0;
|
1625 |
?>
|
1626 |
<select name="date" id="filter-by-date" class="dokan-form-control">
|
1627 |
+
<option<?php selected( $date, 0 ); ?> value="0"><?php _e( 'All dates', 'dokan-lite' ); ?></option>
|
1628 |
<?php
|
1629 |
foreach ( $months as $arc_row ) {
|
1630 |
if ( 0 == $arc_row->year )
|
1637 |
selected( $date, $year . $month, false ),
|
1638 |
esc_attr( $year . $month ),
|
1639 |
/* translators: 1: month name, 2: 4-digit year */
|
1640 |
+
sprintf( __( '%1$s %2$d', 'dokan-lite' ), $wp_locale->get_month( $month ), $year )
|
1641 |
);
|
1642 |
}
|
1643 |
?>
|
1783 |
)
|
1784 |
);
|
1785 |
|
1786 |
+
$profile_info = dokan_get_store_info( dokan_get_current_user_id() );
|
1787 |
|
1788 |
dokan_get_template_part( 'settings/address-form', '', array(
|
1789 |
'disabled' => $disabled,
|
1805 |
function dokan_get_seller_address( $seller_id = '', $get_array = false ) {
|
1806 |
|
1807 |
if ( $seller_id == '' ) {
|
1808 |
+
$seller_id = dokan_get_current_user_id();
|
1809 |
}
|
1810 |
|
1811 |
$profile_info = dokan_get_store_info( $seller_id );
|
1871 |
*/
|
1872 |
function dokan_get_seller_short_address( $store_id, $line_break = true ) {
|
1873 |
$store_address = dokan_get_seller_address( $store_id, true );
|
1874 |
+
$address_classes = array(
|
1875 |
+
'street_1',
|
1876 |
+
'street_2',
|
1877 |
+
'city',
|
1878 |
+
'state',
|
1879 |
+
'country',
|
1880 |
+
);
|
1881 |
$short_address = array();
|
1882 |
$formatted_address = '';
|
1883 |
|
1884 |
if ( ! empty( $store_address['street_1'] ) && empty( $store_address['street_2'] ) ) {
|
1885 |
+
$short_address[] = "<span class='{$address_classes[0]}'> {$store_address['street_1']},</span>";
|
1886 |
} else if ( empty( $store_address['street_1'] ) && ! empty( $store_address['street_2'] ) ) {
|
1887 |
+
$short_address[] = "<span class='{$address_classes[1]}'> {$store_address['street_2']},</span>";
|
1888 |
} else if ( ! empty( $store_address['street_1'] ) && ! empty( $store_address['street_2'] ) ) {
|
1889 |
+
$short_address[] = "<span class='{$address_classes[0]}'> {$store_address['street_1']},</span>";
|
1890 |
}
|
1891 |
|
1892 |
if ( ! empty( $store_address['city'] ) && ! empty( $store_address['city'] ) ) {
|
1893 |
+
$short_address[] = "<span class='{$address_classes[2]}'> {$store_address['city']},</span>";
|
1894 |
}
|
1895 |
|
1896 |
if ( ! empty( $store_address['state'] ) && ! empty( $store_address['country'] ) ) {
|
1897 |
+
$short_address[] = "<span class='{$address_classes[3]}'> {$store_address['state']},</span>" . "<span class='{$address_classes[4]}'> {$store_address['country']} </span>";
|
1898 |
} else if ( ! empty( $store_address['country'] ) ) {
|
1899 |
+
$short_address[] = "<span class='{$address_classes[4]}'> {$store_address['country']} </span>";
|
1900 |
}
|
1901 |
|
1902 |
if ( ! empty( $short_address ) && $line_break ) {
|
1903 |
$formatted_address = implode( '<br>', $short_address );
|
1904 |
} else {
|
1905 |
+
$formatted_address = implode( ' ', $short_address );
|
|
|
|
|
|
|
|
|
1906 |
}
|
1907 |
|
|
|
1908 |
return apply_filters( 'dokan_store_header_adress', $formatted_address, $store_address, $short_address );
|
1909 |
}
|
1910 |
|
1978 |
}
|
1979 |
}
|
1980 |
|
1981 |
+
register_sidebar(
|
1982 |
+
apply_filters( 'dokan_store_widget_args', array(
|
1983 |
+
'name' => __( 'Dokan Store Sidebar', 'dokan-lite' ),
|
1984 |
+
'id' => 'sidebar-store',
|
1985 |
+
'before_widget' => '<aside class="widget">',
|
1986 |
+
'after_widget' => '</aside>',
|
1987 |
+
'before_title' => '<h3 class="widget-title">',
|
1988 |
+
'after_title' => '</h3>',
|
1989 |
+
)
|
1990 |
+
)
|
1991 |
+
);
|
1992 |
|
1993 |
/**
|
1994 |
* Calculate category wise commission for given product
|
2108 |
* Reset cache group related to seller products
|
2109 |
*/
|
2110 |
function dokan_cache_clear_seller_product_data( $product_id, $post_data = array() ) {
|
2111 |
+
$seller_id = dokan_get_current_user_id();
|
2112 |
|
2113 |
dokan_cache_clear_group( 'dokan_seller_product_data_' . $seller_id );
|
2114 |
delete_transient( 'dokan-store-category-' . $seller_id );
|
2142 |
$product = wc_get_product( $product_id );
|
2143 |
$percentage = dokan_get_seller_percentage( $seller_id, $product_id );
|
2144 |
$price = $product->get_price();
|
2145 |
+
$earning = ( (float)$price * $percentage ) / 100;
|
2146 |
|
2147 |
return wc_format_decimal( $earning );
|
2148 |
}
|
2204 |
return new Dokan_Vendor( $vendor_id );
|
2205 |
}
|
2206 |
|
2207 |
+
/**
|
2208 |
+
* Get all cap related to seller
|
2209 |
+
*
|
2210 |
+
* @since 2.7.3
|
2211 |
+
*
|
2212 |
+
* @return array
|
2213 |
+
*/
|
2214 |
+
function dokan_get_all_caps() {
|
2215 |
+
$capabilities = array(
|
2216 |
+
'overview' => array(
|
2217 |
+
'dokan_view_sales_overview',
|
2218 |
+
'dokan_view_sales_report_chart',
|
2219 |
+
'dokan_view_announcement',
|
2220 |
+
'dokan_view_order_report',
|
2221 |
+
'dokan_view_review_reports',
|
2222 |
+
'dokan_view_product_status_report',
|
2223 |
+
),
|
2224 |
+
'report' => array(
|
2225 |
+
'dokan_view_overview_report',
|
2226 |
+
'dokan_view_daily_sale_report',
|
2227 |
+
'dokan_view_top_selling_report',
|
2228 |
+
'dokan_view_top_earning_report',
|
2229 |
+
'dokan_view_statement_report',
|
2230 |
+
),
|
2231 |
+
'order' => array(
|
2232 |
+
'dokan_view_order',
|
2233 |
+
'dokan_manage_order',
|
2234 |
+
'dokan_manage_order_note',
|
2235 |
+
'dokan_manage_refund',
|
2236 |
+
),
|
2237 |
+
|
2238 |
+
'coupon' => array(
|
2239 |
+
'dokan_add_coupon',
|
2240 |
+
'dokan_edit_coupon',
|
2241 |
+
'dokan_delete_coupon',
|
2242 |
+
),
|
2243 |
+
'review' => array(
|
2244 |
+
'dokan_view_reviews',
|
2245 |
+
'dokan_manage_reviews',
|
2246 |
+
),
|
2247 |
+
|
2248 |
+
'withdraw' => array(
|
2249 |
+
'dokan_manage_withdraw',
|
2250 |
+
),
|
2251 |
+
'product' => array(
|
2252 |
+
'dokan_add_product',
|
2253 |
+
'dokan_edit_product',
|
2254 |
+
'dokan_delete_product',
|
2255 |
+
'dokan_view_product',
|
2256 |
+
'dokan_duplicate_product',
|
2257 |
+
'dokan_import_product',
|
2258 |
+
'dokan_export_product',
|
2259 |
+
),
|
2260 |
+
'menu' => array(
|
2261 |
+
'dokan_view_overview_menu',
|
2262 |
+
'dokan_view_product_menu',
|
2263 |
+
'dokan_view_order_menu',
|
2264 |
+
'dokan_view_coupon_menu',
|
2265 |
+
'dokan_view_report_menu',
|
2266 |
+
'dokan_view_review_menu',
|
2267 |
+
'dokan_view_withdraw_menu',
|
2268 |
+
'dokan_view_store_settings_menu',
|
2269 |
+
'dokan_view_store_payment_menu',
|
2270 |
+
'dokan_view_store_shipping_menu',
|
2271 |
+
'dokan_view_store_social_menu',
|
2272 |
+
'dokan_view_store_seo_menu',
|
2273 |
+
)
|
2274 |
+
);
|
2275 |
+
|
2276 |
+
return apply_filters( 'dokan_get_all_cap', $capabilities );
|
2277 |
+
}
|
2278 |
+
|
includes/order-functions.php
CHANGED
@@ -90,17 +90,25 @@ function dokan_get_seller_orders( $seller_id, $status = 'all', $order_date = NUL
|
|
90 |
function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = false, $status = 'all' ) {
|
91 |
global $wpdb;
|
92 |
|
93 |
-
$seller_id = ! $seller_id ?
|
94 |
|
95 |
-
$end_date
|
96 |
-
$end_date
|
97 |
-
$start_date
|
|
|
|
|
|
|
|
|
98 |
|
99 |
-
$cache_group = 'dokan_seller_data_'.$seller_id;
|
100 |
-
$cache_key = md5( 'dokan-seller-orders-' . $end_date . '-' . $end_date. '-' . $seller_id );
|
101 |
-
$orders = wp_cache_get( $cache_key, $cache_group );
|
102 |
if ( $orders === false ) {
|
103 |
-
$status_where =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
$date_query = $wpdb->prepare( ' AND DATE( p.post_date ) >= %s AND DATE( p.post_date ) <= %s', $start_date, $end_date );
|
105 |
$sql = "SELECT do.*, p.post_date
|
106 |
FROM {$wpdb->prefix}dokan_orders AS do
|
@@ -112,6 +120,7 @@ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = f
|
|
112 |
$status_where
|
113 |
GROUP BY do.order_id
|
114 |
ORDER BY p.post_date ASC";
|
|
|
115 |
$orders = $wpdb->get_results( $wpdb->prepare( $sql, $seller_id ) );
|
116 |
|
117 |
wp_cache_set( $cache_key, $orders, $cache_group, 3600*2 );
|
@@ -133,7 +142,7 @@ function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = f
|
|
133 |
function dokan_get_seller_withdraw_by_date( $start_date, $end_date, $seller_id = false ) {
|
134 |
global $wpdb;
|
135 |
|
136 |
-
$seller_id = ! $seller_id ?
|
137 |
$withdraw_status_where = $wpdb->prepare( ' AND status = %d', 1 );
|
138 |
$withdraw_date_query = $wpdb->prepare( ' AND DATE( date ) >= %s AND DATE( date ) <= %s', $start_date, $end_date );
|
139 |
|
@@ -308,15 +317,13 @@ function dokan_on_child_order_status_change( $order_id, $old_status, $new_status
|
|
308 |
$parent_order_id = $order_post->post_parent;
|
309 |
$sub_orders = get_children( array( 'post_parent' => $parent_order_id, 'post_type' => 'shop_order' ) );
|
310 |
|
311 |
-
|
312 |
// return if any child order is not completed
|
313 |
$all_complete = true;
|
314 |
|
315 |
if ( $sub_orders ) {
|
316 |
foreach ($sub_orders as $sub) {
|
317 |
$order = new WC_Order( $sub->ID );
|
318 |
-
|
319 |
-
if ( dokan_get_prop( $order, 'status' ) != 'wc-completed' ) {
|
320 |
$all_complete = false;
|
321 |
}
|
322 |
}
|
@@ -376,7 +383,7 @@ function dokan_sync_insert_order( $order_id ) {
|
|
376 |
$seller_id = dokan_get_seller_id_by_order( $order_id );
|
377 |
$order_total = $order->get_total();
|
378 |
$order_status = dokan_get_prop( $order, 'status' );
|
379 |
-
|
380 |
$net_amount = $order_total - $admin_commission;
|
381 |
$net_amount = apply_filters( 'dokan_order_net_amount', $net_amount, $order );
|
382 |
|
@@ -731,6 +738,12 @@ function dokan_get_admin_commission_by( $order, $seller_id ) {
|
|
731 |
return;
|
732 |
}
|
733 |
|
|
|
|
|
|
|
|
|
|
|
|
|
734 |
$admin_commission = 0;
|
735 |
$refund_t = 0;
|
736 |
$commissions = array();
|
@@ -802,3 +815,22 @@ if ( ! function_exists( 'dokan_get_customer_orders_by_seller' ) ) :
|
|
802 |
}
|
803 |
|
804 |
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
function dokan_get_seller_orders_by_date( $start_date, $end_date, $seller_id = false, $status = 'all' ) {
|
91 |
global $wpdb;
|
92 |
|
93 |
+
$seller_id = ! $seller_id ? dokan_get_current_user_id() : intval( $seller_id );
|
94 |
|
95 |
+
$end_date = date( 'Y-m-d 00:00:00', strtotime( $end_date ) );
|
96 |
+
$end_date = date( 'Y-m-d h:i:s', strtotime( $end_date . '-1 minute' ) );
|
97 |
+
$start_date = date( 'Y-m-d', strtotime( $start_date ) );
|
98 |
+
|
99 |
+
$cache_group = 'dokan_seller_data_' . $seller_id;
|
100 |
+
$cache_key = md5( 'dokan-seller-orders-' . $end_date . '-' . $end_date. '-' . $seller_id );
|
101 |
+
$orders = wp_cache_get( $cache_key, $cache_group );
|
102 |
|
|
|
|
|
|
|
103 |
if ( $orders === false ) {
|
104 |
+
$status_where = '';
|
105 |
+
|
106 |
+
if ( is_array( $status ) ) {
|
107 |
+
$status_where = sprintf( " AND order_status IN ('%s')", implode( "', '", $status ) );
|
108 |
+
} else {
|
109 |
+
$status_where = $wpdb->prepare( ' AND order_status = %s', $status );
|
110 |
+
}
|
111 |
+
|
112 |
$date_query = $wpdb->prepare( ' AND DATE( p.post_date ) >= %s AND DATE( p.post_date ) <= %s', $start_date, $end_date );
|
113 |
$sql = "SELECT do.*, p.post_date
|
114 |
FROM {$wpdb->prefix}dokan_orders AS do
|
120 |
$status_where
|
121 |
GROUP BY do.order_id
|
122 |
ORDER BY p.post_date ASC";
|
123 |
+
|
124 |
$orders = $wpdb->get_results( $wpdb->prepare( $sql, $seller_id ) );
|
125 |
|
126 |
wp_cache_set( $cache_key, $orders, $cache_group, 3600*2 );
|
142 |
function dokan_get_seller_withdraw_by_date( $start_date, $end_date, $seller_id = false ) {
|
143 |
global $wpdb;
|
144 |
|
145 |
+
$seller_id = ! $seller_id ? dokan_get_current_user_id() : intval( $seller_id );
|
146 |
$withdraw_status_where = $wpdb->prepare( ' AND status = %d', 1 );
|
147 |
$withdraw_date_query = $wpdb->prepare( ' AND DATE( date ) >= %s AND DATE( date ) <= %s', $start_date, $end_date );
|
148 |
|
317 |
$parent_order_id = $order_post->post_parent;
|
318 |
$sub_orders = get_children( array( 'post_parent' => $parent_order_id, 'post_type' => 'shop_order' ) );
|
319 |
|
|
|
320 |
// return if any child order is not completed
|
321 |
$all_complete = true;
|
322 |
|
323 |
if ( $sub_orders ) {
|
324 |
foreach ($sub_orders as $sub) {
|
325 |
$order = new WC_Order( $sub->ID );
|
326 |
+
if ( dokan_get_prop( $order, 'status' ) != 'completed' ) {
|
|
|
327 |
$all_complete = false;
|
328 |
}
|
329 |
}
|
383 |
$seller_id = dokan_get_seller_id_by_order( $order_id );
|
384 |
$order_total = $order->get_total();
|
385 |
$order_status = dokan_get_prop( $order, 'status' );
|
386 |
+
$admin_commission = dokan_get_admin_commission_by( $order, $seller_id );
|
387 |
$net_amount = $order_total - $admin_commission;
|
388 |
$net_amount = apply_filters( 'dokan_order_net_amount', $net_amount, $order );
|
389 |
|
738 |
return;
|
739 |
}
|
740 |
|
741 |
+
$saved_admin_fee = get_post_meta( dokan_get_prop( $order, 'id' ), '_dokan_admin_fee', true );
|
742 |
+
|
743 |
+
if ( $saved_admin_fee != '' ) {
|
744 |
+
return apply_filters( 'dokan_order_admin_commission', $saved_admin_fee, $order );
|
745 |
+
}
|
746 |
+
|
747 |
$admin_commission = 0;
|
748 |
$refund_t = 0;
|
749 |
$commissions = array();
|
815 |
}
|
816 |
|
817 |
endif;
|
818 |
+
|
819 |
+
add_action( 'dokan_checkout_update_order_meta', 'dokan_save_admin_commssion_to_order_meta', 10, 2 );
|
820 |
+
|
821 |
+
/**
|
822 |
+
* Update order meta when the order is placed
|
823 |
+
*
|
824 |
+
* @since 2.7.8
|
825 |
+
*
|
826 |
+
* @param int $order_id
|
827 |
+
*
|
828 |
+
* @param int $seller_id
|
829 |
+
*
|
830 |
+
* @return void
|
831 |
+
*/
|
832 |
+
function dokan_save_admin_commssion_to_order_meta( $order_id, $seller_id ) {
|
833 |
+
$seller_order = wc_get_order( $order_id );
|
834 |
+
$admin_fee = dokan_get_admin_commission_by( $seller_order, $seller_id );
|
835 |
+
update_post_meta( $order_id , '_dokan_admin_fee', $admin_fee );
|
836 |
+
}
|
includes/product-functions.php
CHANGED
@@ -430,6 +430,66 @@ function dokan_products_array_filter_editable( $product ) {
|
|
430 |
return $product && is_a( $product, 'WC_Product' ) && current_user_can( 'dokandar', $product->get_id() );
|
431 |
}
|
432 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
433 |
|
434 |
|
435 |
|
430 |
return $product && is_a( $product, 'WC_Product' ) && current_user_can( 'dokandar', $product->get_id() );
|
431 |
}
|
432 |
|
433 |
+
/**
|
434 |
+
* Get row action for product
|
435 |
+
*
|
436 |
+
* @since 2.7.3
|
437 |
+
*
|
438 |
+
* @param object $post
|
439 |
+
*
|
440 |
+
* @return array
|
441 |
+
*/
|
442 |
+
function dokan_product_get_row_action( $post ) {
|
443 |
+
|
444 |
+
if ( empty( $post->ID ) ) {
|
445 |
+
return $row_action;
|
446 |
+
}
|
447 |
+
|
448 |
+
$row_action = array();
|
449 |
+
$row_action_html = array();
|
450 |
+
$product_id = $post->ID;
|
451 |
+
|
452 |
+
if ( current_user_can( 'dokan_edit_product' ) ) {
|
453 |
+
$row_action['edit'] = array(
|
454 |
+
'title' => __( 'Edit', 'dokan-lite' ),
|
455 |
+
'url' => dokan_edit_product_url( $product_id ),
|
456 |
+
'class' => 'edit',
|
457 |
+
);
|
458 |
+
}
|
459 |
+
|
460 |
+
if ( current_user_can( 'dokan_delete_product' ) ) {
|
461 |
+
$row_action['delete'] = array(
|
462 |
+
'title' => __( 'Delete Permanently', 'dokan-lite' ),
|
463 |
+
'url' => wp_nonce_url( add_query_arg( array( 'action' => 'dokan-delete-product', 'product_id' => $product_id ), dokan_get_navigation_url('products') ), 'dokan-delete-product' ),
|
464 |
+
'class' => 'delete',
|
465 |
+
'other' => 'onclick="return confirm( \'Are you sure?\' );"'
|
466 |
+
);
|
467 |
+
}
|
468 |
+
|
469 |
+
if ( current_user_can( 'dokan_view_product' ) && $post->post_status != 'pending' ) {
|
470 |
+
$row_action['view'] = array(
|
471 |
+
'title' => __( 'View', 'dokan-lite' ),
|
472 |
+
'url' => get_permalink( $product_id ),
|
473 |
+
'class' => 'view',
|
474 |
+
);
|
475 |
+
}
|
476 |
+
|
477 |
+
$row_action = apply_filters( 'dokan_product_row_actions', $row_action, $post );
|
478 |
+
|
479 |
+
if ( empty( $row_action ) ) {
|
480 |
+
return $row_action;
|
481 |
+
}
|
482 |
+
|
483 |
+
foreach ( $row_action as $key => $action ) {
|
484 |
+
$row_action_html[$key] = sprintf( '<span class="%s"><a href="%s" %s>%s</a></span>', $action['class'], esc_url( $action['url'] ), isset( $action['other'] ) ? $action['other'] : '', $action['title'] );
|
485 |
+
}
|
486 |
+
|
487 |
+
$row_action_html = apply_filters( 'dokan_product_row_action_html', $row_action_html, $post );
|
488 |
+
|
489 |
+
return implode( ' | ', $row_action_html );
|
490 |
+
}
|
491 |
+
|
492 |
+
|
493 |
|
494 |
|
495 |
|
includes/reports.php
CHANGED
@@ -15,7 +15,9 @@
|
|
15 |
* @return obj
|
16 |
*/
|
17 |
function dokan_get_order_report_data( $args = array(), $start_date, $end_date ) {
|
18 |
-
global $wpdb
|
|
|
|
|
19 |
|
20 |
$defaults = array(
|
21 |
'data' => array(),
|
@@ -110,7 +112,7 @@ function dokan_get_order_report_data( $args = array(), $start_date, $end_date )
|
|
110 |
$query['where'] = "
|
111 |
WHERE posts.post_type = 'shop_order'
|
112 |
AND posts.post_status != 'trash'
|
113 |
-
AND do.seller_id = {$current_user
|
114 |
AND do.order_status IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'wc-completed', 'wc-processing', 'wc-on-hold' ) ) ) . "')
|
115 |
";
|
116 |
|
15 |
* @return obj
|
16 |
*/
|
17 |
function dokan_get_order_report_data( $args = array(), $start_date, $end_date ) {
|
18 |
+
global $wpdb;
|
19 |
+
|
20 |
+
$current_user = dokan_get_current_user_id();
|
21 |
|
22 |
$defaults = array(
|
23 |
'data' => array(),
|
112 |
$query['where'] = "
|
113 |
WHERE posts.post_type = 'shop_order'
|
114 |
AND posts.post_status != 'trash'
|
115 |
+
AND do.seller_id = {$current_user}
|
116 |
AND do.order_status IN ('" . implode( "','", apply_filters( 'woocommerce_reports_order_statuses', array( 'wc-completed', 'wc-processing', 'wc-on-hold' ) ) ) . "')
|
117 |
";
|
118 |
|
includes/template-tags.php
CHANGED
@@ -150,7 +150,7 @@ function dokan_product_dashboard_errors() {
|
|
150 |
function dokan_product_listing_status_filter() {
|
151 |
$permalink = dokan_get_navigation_url( 'products' );
|
152 |
$status_class = isset( $_GET['post_status'] ) ? $_GET['post_status'] : 'all';
|
153 |
-
$post_counts = dokan_count_posts( 'product',
|
154 |
$statuses = dokan_get_post_status();
|
155 |
|
156 |
dokan_get_template_part( 'products/listing-status-filter', '', array(
|
@@ -165,7 +165,7 @@ function dokan_order_listing_status_filter() {
|
|
165 |
$orders_url = dokan_get_navigation_url( 'orders' );
|
166 |
|
167 |
$status_class = isset( $_GET['order_status'] ) ? $_GET['order_status'] : 'all';
|
168 |
-
$orders_counts = dokan_count_orders(
|
169 |
$order_date = ( isset( $_GET['order_date'] ) ) ? $_GET['order_date'] : '';
|
170 |
$date_filter = array();
|
171 |
$all_order_url = array();
|
@@ -299,29 +299,33 @@ function dokan_get_dashboard_nav() {
|
|
299 |
|
300 |
$urls = array(
|
301 |
'dashboard' => array(
|
302 |
-
'title'
|
303 |
-
'icon'
|
304 |
-
'url'
|
305 |
-
'pos'
|
|
|
306 |
),
|
307 |
'products' => array(
|
308 |
-
'title'
|
309 |
-
'icon'
|
310 |
-
'url'
|
311 |
-
'pos'
|
|
|
312 |
),
|
313 |
'orders' => array(
|
314 |
-
'title'
|
315 |
-
'icon'
|
316 |
-
'url'
|
317 |
-
'pos'
|
|
|
318 |
),
|
319 |
|
320 |
'withdraw' => array(
|
321 |
-
'title'
|
322 |
-
'icon'
|
323 |
-
'url'
|
324 |
-
'pos'
|
|
|
325 |
),
|
326 |
);
|
327 |
|
@@ -340,16 +344,18 @@ function dokan_get_dashboard_nav() {
|
|
340 |
'pos' => 10
|
341 |
),
|
342 |
'store' => array(
|
343 |
-
'title'
|
344 |
-
'icon'
|
345 |
-
'url'
|
346 |
-
'pos'
|
|
|
347 |
),
|
348 |
'payment' => array(
|
349 |
-
'title'
|
350 |
-
'icon'
|
351 |
-
'url'
|
352 |
-
'pos'
|
|
|
353 |
)
|
354 |
);
|
355 |
|
@@ -361,17 +367,35 @@ function dokan_get_dashboard_nav() {
|
|
361 |
*
|
362 |
* @param array.
|
363 |
*/
|
364 |
-
$
|
|
|
|
|
|
|
|
|
|
|
365 |
|
|
|
|
|
366 |
|
367 |
uasort( $settings['sub'], 'dokan_nav_sort_by_pos' );
|
368 |
|
369 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
|
371 |
$nav_urls = apply_filters( 'dokan_get_dashboard_nav', $urls );
|
372 |
|
373 |
uasort( $nav_urls, 'dokan_nav_sort_by_pos' );
|
374 |
|
|
|
|
|
|
|
375 |
/**
|
376 |
* Filter to get the final seller dashboard navigation.
|
377 |
*
|
@@ -382,6 +406,21 @@ function dokan_get_dashboard_nav() {
|
|
382 |
return $nav_urls;
|
383 |
}
|
384 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
385 |
/**
|
386 |
* Renders the Dokan dashboard menu
|
387 |
*
|
@@ -399,7 +438,11 @@ function dokan_dashboard_nav( $active_menu = '' ) {
|
|
399 |
$nav_menu = dokan_get_dashboard_nav();
|
400 |
$active_menu_parts = explode( '/', $active_menu );
|
401 |
|
402 |
-
if ( isset( $active_menu_parts[1] )
|
|
|
|
|
|
|
|
|
403 |
$urls = $nav_menu['settings']['sub'];
|
404 |
$active_menu = $active_menu_parts[1];
|
405 |
} else {
|
@@ -408,13 +451,13 @@ function dokan_dashboard_nav( $active_menu = '' ) {
|
|
408 |
|
409 |
$menu = '<ul class="dokan-dashboard-menu">';
|
410 |
|
411 |
-
foreach ($urls as $key => $item) {
|
412 |
$class = ( $active_menu == $key ) ? 'active ' . $key : $key;
|
413 |
$menu .= sprintf( '<li class="%s"><a href="%s">%s %s</a></li>', $class, $item['url'], $item['icon'], $item['title'] );
|
414 |
}
|
415 |
|
416 |
$common_links = '<li class="dokan-common-links dokan-clearfix">
|
417 |
-
<a title="' . __( 'Visit Store', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . dokan_get_store_url(
|
418 |
<a title="' . __( 'Edit Account', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . dokan_get_navigation_url( 'edit-account' ) . '"><i class="fa fa-user"></i></a>
|
419 |
<a title="' . __( 'Log out', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . wp_logout_url( home_url() ) . '"><i class="fa fa-power-off"></i></a>
|
420 |
</li>';
|
@@ -495,7 +538,7 @@ add_action( 'delete_post', 'dokan_store_category_delete_transient' );
|
|
495 |
add_action( 'save_post', 'dokan_store_category_delete_transient' );
|
496 |
|
497 |
function dokan_seller_reg_form_fields() {
|
498 |
-
$postdata = $_POST;
|
499 |
$role = isset( $postdata['role'] ) ? $postdata['role'] : 'customer';
|
500 |
$role_style = ( $role == 'customer' ) ? ' style="display:none"' : '';
|
501 |
|
150 |
function dokan_product_listing_status_filter() {
|
151 |
$permalink = dokan_get_navigation_url( 'products' );
|
152 |
$status_class = isset( $_GET['post_status'] ) ? $_GET['post_status'] : 'all';
|
153 |
+
$post_counts = dokan_count_posts( 'product', dokan_get_current_user_id() );
|
154 |
$statuses = dokan_get_post_status();
|
155 |
|
156 |
dokan_get_template_part( 'products/listing-status-filter', '', array(
|
165 |
$orders_url = dokan_get_navigation_url( 'orders' );
|
166 |
|
167 |
$status_class = isset( $_GET['order_status'] ) ? $_GET['order_status'] : 'all';
|
168 |
+
$orders_counts = dokan_count_orders( dokan_get_current_user_id() );
|
169 |
$order_date = ( isset( $_GET['order_date'] ) ) ? $_GET['order_date'] : '';
|
170 |
$date_filter = array();
|
171 |
$all_order_url = array();
|
299 |
|
300 |
$urls = array(
|
301 |
'dashboard' => array(
|
302 |
+
'title' => __( 'Dashboard', 'dokan-lite'),
|
303 |
+
'icon' => '<i class="fa fa-tachometer"></i>',
|
304 |
+
'url' => dokan_get_navigation_url(),
|
305 |
+
'pos' => 10,
|
306 |
+
'permission' => 'dokan_view_overview_menu'
|
307 |
),
|
308 |
'products' => array(
|
309 |
+
'title' => __( 'Products', 'dokan-lite'),
|
310 |
+
'icon' => '<i class="fa fa-briefcase"></i>',
|
311 |
+
'url' => dokan_get_navigation_url( 'products' ),
|
312 |
+
'pos' => 30,
|
313 |
+
'permission' => 'dokan_view_product_menu'
|
314 |
),
|
315 |
'orders' => array(
|
316 |
+
'title' => __( 'Orders', 'dokan-lite'),
|
317 |
+
'icon' => '<i class="fa fa-shopping-cart"></i>',
|
318 |
+
'url' => dokan_get_navigation_url( 'orders' ),
|
319 |
+
'pos' => 50,
|
320 |
+
'permission' => 'dokan_view_order_menu'
|
321 |
),
|
322 |
|
323 |
'withdraw' => array(
|
324 |
+
'title' => __( 'Withdraw', 'dokan-lite'),
|
325 |
+
'icon' => '<i class="fa fa-upload"></i>',
|
326 |
+
'url' => dokan_get_navigation_url( 'withdraw' ),
|
327 |
+
'pos' => 70,
|
328 |
+
'permission' => 'dokan_view_withdraw_menu'
|
329 |
),
|
330 |
);
|
331 |
|
344 |
'pos' => 10
|
345 |
),
|
346 |
'store' => array(
|
347 |
+
'title' => __( 'Store', 'dokan-lite'),
|
348 |
+
'icon' => '<i class="fa fa-university"></i>',
|
349 |
+
'url' => dokan_get_navigation_url( 'settings/store' ),
|
350 |
+
'pos' => 30,
|
351 |
+
'permission' => 'dokan_view_store_settings_menu'
|
352 |
),
|
353 |
'payment' => array(
|
354 |
+
'title' => __( 'Payment', 'dokan-lite'),
|
355 |
+
'icon' => '<i class="fa fa-credit-card"></i>',
|
356 |
+
'url' => dokan_get_navigation_url( 'settings/payment' ),
|
357 |
+
'pos' => 50,
|
358 |
+
'permission' => 'dokan_view_store_payment_menu'
|
359 |
)
|
360 |
);
|
361 |
|
367 |
*
|
368 |
* @param array.
|
369 |
*/
|
370 |
+
$sub_settings = apply_filters( 'dokan_get_dashboard_settings_nav', $settings_sub );
|
371 |
+
|
372 |
+
foreach ( $sub_settings as $key => $sub_setting ) {
|
373 |
+
if ( ! isset( $sub_setting['pos'] ) && empty( $sub_setting['pos'] ) ) {
|
374 |
+
$sub_setting['pos'] = '200';
|
375 |
+
}
|
376 |
|
377 |
+
$settings['sub'][$key] = $sub_setting;
|
378 |
+
}
|
379 |
|
380 |
uasort( $settings['sub'], 'dokan_nav_sort_by_pos' );
|
381 |
|
382 |
+
// Filter Sub setting menu according to permission
|
383 |
+
$settings['sub'] = array_filter( $settings['sub'], 'dokan_check_menu_permission' );
|
384 |
+
|
385 |
+
// Manage main settings url after re-render permission cheching
|
386 |
+
if ( count( $settings['sub'] ) > 1 ) {
|
387 |
+
$urls['settings'] = $settings;
|
388 |
+
$sub_settings_key = array_keys( $settings['sub'] );
|
389 |
+
$urls['settings']['url'] = $settings['sub'][$sub_settings_key[1]]['url'];
|
390 |
+
}
|
391 |
|
392 |
$nav_urls = apply_filters( 'dokan_get_dashboard_nav', $urls );
|
393 |
|
394 |
uasort( $nav_urls, 'dokan_nav_sort_by_pos' );
|
395 |
|
396 |
+
// Filter main menu according to permission
|
397 |
+
$nav_urls = array_filter( $nav_urls, 'dokan_check_menu_permission' );
|
398 |
+
|
399 |
/**
|
400 |
* Filter to get the final seller dashboard navigation.
|
401 |
*
|
406 |
return $nav_urls;
|
407 |
}
|
408 |
|
409 |
+
/**
|
410 |
+
* Checking menu permissions
|
411 |
+
*
|
412 |
+
* @since 2.7.3
|
413 |
+
*
|
414 |
+
* @return boolean
|
415 |
+
*/
|
416 |
+
function dokan_check_menu_permission( $menu ) {
|
417 |
+
if ( isset( $menu['permission'] ) && !current_user_can( $menu['permission'] ) ) {
|
418 |
+
return false;
|
419 |
+
}
|
420 |
+
|
421 |
+
return true;
|
422 |
+
}
|
423 |
+
|
424 |
/**
|
425 |
* Renders the Dokan dashboard menu
|
426 |
*
|
438 |
$nav_menu = dokan_get_dashboard_nav();
|
439 |
$active_menu_parts = explode( '/', $active_menu );
|
440 |
|
441 |
+
if ( isset( $active_menu_parts[1] )
|
442 |
+
&& $active_menu_parts[0] == 'settings'
|
443 |
+
&& isset( $nav_menu['settings']['sub'] )
|
444 |
+
&& array_key_exists( $active_menu_parts[1], $nav_menu['settings']['sub'] )
|
445 |
+
) {
|
446 |
$urls = $nav_menu['settings']['sub'];
|
447 |
$active_menu = $active_menu_parts[1];
|
448 |
} else {
|
451 |
|
452 |
$menu = '<ul class="dokan-dashboard-menu">';
|
453 |
|
454 |
+
foreach ( $urls as $key => $item ) {
|
455 |
$class = ( $active_menu == $key ) ? 'active ' . $key : $key;
|
456 |
$menu .= sprintf( '<li class="%s"><a href="%s">%s %s</a></li>', $class, $item['url'], $item['icon'], $item['title'] );
|
457 |
}
|
458 |
|
459 |
$common_links = '<li class="dokan-common-links dokan-clearfix">
|
460 |
+
<a title="' . __( 'Visit Store', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . dokan_get_store_url( dokan_get_current_user_id() ) .'" target="_blank"><i class="fa fa-external-link"></i></a>
|
461 |
<a title="' . __( 'Edit Account', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . dokan_get_navigation_url( 'edit-account' ) . '"><i class="fa fa-user"></i></a>
|
462 |
<a title="' . __( 'Log out', 'dokan-lite' ) . '" class="tips" data-placement="top" href="' . wp_logout_url( home_url() ) . '"><i class="fa fa-power-off"></i></a>
|
463 |
</li>';
|
538 |
add_action( 'save_post', 'dokan_store_category_delete_transient' );
|
539 |
|
540 |
function dokan_seller_reg_form_fields() {
|
541 |
+
$postdata = wc_clean( $_POST ); // WPCS: CSRF ok, input var ok.
|
542 |
$role = isset( $postdata['role'] ) ? $postdata['role'] : 'customer';
|
543 |
$role_style = ( $role == 'customer' ) ? ' style="display:none"' : '';
|
544 |
|
includes/upgrades/dokan-upgrade-2.7.3.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Save admin fee as meta for existing sub-orders
|
4 |
+
*/
|
5 |
+
function dokan_update_order_meta_273(){
|
6 |
+
$args = array(
|
7 |
+
'post_type' => 'shop_order',
|
8 |
+
'posts_per_page' => -1,
|
9 |
+
'post_status' => 'any',
|
10 |
+
'meta_query' => array(
|
11 |
+
array(
|
12 |
+
'key' => 'has_sub_order',
|
13 |
+
'compare' => 'NOT EXISTS',
|
14 |
+
),
|
15 |
+
array(
|
16 |
+
'key' => '_dokan_admin_fee',
|
17 |
+
'compare' => 'NOT EXISTS',
|
18 |
+
),
|
19 |
+
)
|
20 |
+
);
|
21 |
+
|
22 |
+
$query = new WP_Query( $args );
|
23 |
+
|
24 |
+
foreach ( $query->posts as $sub_order ) {
|
25 |
+
$order = wc_get_order( $sub_order->ID );
|
26 |
+
$admin_fee = dokan_get_admin_commission_by( $order, dokan_get_seller_id_by_order( $sub_order->ID ) );
|
27 |
+
update_post_meta( $sub_order->ID , '_dokan_admin_fee', $admin_fee );
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Modify column structure to support upto 4 decimals
|
33 |
+
*/
|
34 |
+
function dokan_update_table_structure_273(){
|
35 |
+
global $wpdb;
|
36 |
+
|
37 |
+
$wpdb->query(
|
38 |
+
"ALTER TABLE `{$wpdb->prefix}dokan_orders`
|
39 |
+
MODIFY COLUMN order_total float(11,4)"
|
40 |
+
);
|
41 |
+
|
42 |
+
$wpdb->query(
|
43 |
+
"ALTER TABLE `{$wpdb->prefix}dokan_orders`
|
44 |
+
MODIFY COLUMN net_amount float(11,4)"
|
45 |
+
);
|
46 |
+
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Update seller capabilities
|
51 |
+
*
|
52 |
+
* @since 2.7.3
|
53 |
+
*
|
54 |
+
* @return void
|
55 |
+
*/
|
56 |
+
function dokan_update_user_capabilities_273() {
|
57 |
+
global $wp_roles;
|
58 |
+
|
59 |
+
if ( class_exists( 'WP_Roles' ) && ! isset( $wp_roles ) ) {
|
60 |
+
$wp_roles = new WP_Roles();
|
61 |
+
}
|
62 |
+
|
63 |
+
$capabilities = array();
|
64 |
+
$all_cap = dokan_get_all_caps();
|
65 |
+
|
66 |
+
foreach( $all_cap as $key=>$cap ) {
|
67 |
+
$capabilities = array_merge( $capabilities, $cap );
|
68 |
+
}
|
69 |
+
|
70 |
+
foreach ( $capabilities as $key => $capability ) {
|
71 |
+
$wp_roles->add_cap( 'seller', $capability );
|
72 |
+
$wp_roles->add_cap( 'administrator', $capability );
|
73 |
+
$wp_roles->add_cap( 'shop_manager', $capability );
|
74 |
+
}
|
75 |
+
}
|
76 |
+
|
77 |
+
|
78 |
+
dokan_update_table_structure_273();
|
79 |
+
dokan_update_order_meta_273();
|
80 |
+
dokan_update_user_capabilities_273();
|
81 |
+
|
82 |
+
|
includes/upgrades/dokan-upgrade-2.7.6.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Modify ip column to support the max possible length of IPv6
|
4 |
+
*/
|
5 |
+
function dokan_update_table_structure_276(){
|
6 |
+
global $wpdb;
|
7 |
+
|
8 |
+
$wpdb->query(
|
9 |
+
"ALTER TABLE `{$wpdb->prefix}dokan_withdraw`
|
10 |
+
MODIFY COLUMN ip varchar(50) NOT NULL"
|
11 |
+
);
|
12 |
+
}
|
13 |
+
|
14 |
+
function dokan_update_user_capabilities_276() {
|
15 |
+
global $wp_roles;
|
16 |
+
|
17 |
+
if ( class_exists( 'WP_Roles' ) && ! isset( $wp_roles ) ) {
|
18 |
+
$wp_roles = new WP_Roles();
|
19 |
+
}
|
20 |
+
|
21 |
+
$caps = array(
|
22 |
+
'publish_posts' => true,
|
23 |
+
'edit_posts' => true,
|
24 |
+
'delete_published_posts' => true,
|
25 |
+
'edit_published_posts' => true,
|
26 |
+
'delete_posts' => true,
|
27 |
+
'manage_categories' => true,
|
28 |
+
'moderate_comments' => true,
|
29 |
+
'unfiltered_html' => true,
|
30 |
+
'upload_files' => true,
|
31 |
+
'edit_shop_orders' => true,
|
32 |
+
'edit_product' => true,
|
33 |
+
'read_product' => true,
|
34 |
+
'delete_product' => true,
|
35 |
+
'edit_products' => true,
|
36 |
+
'publish_products' => true,
|
37 |
+
'read_private_products' => true,
|
38 |
+
'delete_products' => true,
|
39 |
+
'delete_products' => true,
|
40 |
+
'delete_private_products' => true,
|
41 |
+
'delete_published_products' => true,
|
42 |
+
'delete_published_products' => true,
|
43 |
+
'edit_private_products' => true,
|
44 |
+
'edit_published_products' => true,
|
45 |
+
'manage_product_terms' => true,
|
46 |
+
'delete_product_terms' => true,
|
47 |
+
'assign_product_terms' => true,
|
48 |
+
);
|
49 |
+
|
50 |
+
foreach ( $caps as $cap => $val ) {
|
51 |
+
error_log( print_r( $cap, true ) );
|
52 |
+
$wp_roles->add_cap( 'seller', $cap );
|
53 |
+
}
|
54 |
+
|
55 |
+
}
|
56 |
+
|
57 |
+
|
58 |
+
dokan_update_table_structure_276();
|
59 |
+
dokan_update_user_capabilities_276();
|
includes/wc-crud-functions.php
CHANGED
@@ -57,7 +57,12 @@ function dokan_create_sub_order( $parent_order_id ) {
|
|
57 |
if ( count( $sellers ) == 1 ) {
|
58 |
$temp = array_keys( $sellers );
|
59 |
$seller_id = reset( $temp );
|
|
|
60 |
wp_update_post( array( 'ID' => $parent_order_id, 'post_author' => $seller_id ) );
|
|
|
|
|
|
|
|
|
61 |
return;
|
62 |
}
|
63 |
|
@@ -147,13 +152,14 @@ function dokan_create_seller_order( $parent_order, $seller_id, $seller_products
|
|
147 |
$shipping_tax = $shipping_values['tax'];
|
148 |
|
149 |
// do tax
|
|
|
|
|
150 |
foreach( $parent_order->get_items( array( 'tax' ) ) as $tax ) {
|
151 |
$item_id = wc_add_order_item( $order_id, array(
|
152 |
'order_item_name' => $tax->get_name(),
|
153 |
'order_item_type' => 'tax'
|
154 |
) );
|
155 |
|
156 |
-
$seller_order = wc_get_order( $order_id );
|
157 |
$seller_shipping = $seller_order->get_items( 'shipping' );
|
158 |
$seller_shipping = reset( $seller_shipping );
|
159 |
|
@@ -162,7 +168,7 @@ function dokan_create_seller_order( $parent_order, $seller_id, $seller_products
|
|
162 |
'label' => $tax->get_label(),
|
163 |
'compound' => $tax->get_compound(),
|
164 |
'tax_amount' => wc_format_decimal( array_sum( $items_tax[$tax->get_rate_id()] ) ),
|
165 |
-
'shipping_tax_amount' => $seller_shipping->get_total_tax()
|
166 |
);
|
167 |
|
168 |
foreach( $tax_metas as $meta_key => $meta_value ) {
|
@@ -195,7 +201,7 @@ function dokan_create_seller_order( $parent_order, $seller_id, $seller_products
|
|
195 |
update_post_meta( $order_id, '_prices_include_tax', $parent_order->get_prices_include_tax() );
|
196 |
update_post_meta( $order_id, '_customer_ip_address', get_post_meta( $parent_order->get_id(), '_customer_ip_address', true ) );
|
197 |
update_post_meta( $order_id, '_customer_user_agent', get_post_meta( $parent_order->get_id(), '_customer_user_agent', true ) );
|
198 |
-
|
199 |
do_action( 'dokan_checkout_update_order_meta', $order_id, $seller_id );
|
200 |
} // if order
|
201 |
}
|
57 |
if ( count( $sellers ) == 1 ) {
|
58 |
$temp = array_keys( $sellers );
|
59 |
$seller_id = reset( $temp );
|
60 |
+
|
61 |
wp_update_post( array( 'ID' => $parent_order_id, 'post_author' => $seller_id ) );
|
62 |
+
|
63 |
+
$admin_fee = dokan_get_admin_commission_by( $parent_order, $seller_id );
|
64 |
+
|
65 |
+
update_post_meta( $parent_order_id , '_dokan_admin_fee', $admin_fee );
|
66 |
return;
|
67 |
}
|
68 |
|
152 |
$shipping_tax = $shipping_values['tax'];
|
153 |
|
154 |
// do tax
|
155 |
+
$seller_order = wc_get_order( $order_id );
|
156 |
+
|
157 |
foreach( $parent_order->get_items( array( 'tax' ) ) as $tax ) {
|
158 |
$item_id = wc_add_order_item( $order_id, array(
|
159 |
'order_item_name' => $tax->get_name(),
|
160 |
'order_item_type' => 'tax'
|
161 |
) );
|
162 |
|
|
|
163 |
$seller_shipping = $seller_order->get_items( 'shipping' );
|
164 |
$seller_shipping = reset( $seller_shipping );
|
165 |
|
168 |
'label' => $tax->get_label(),
|
169 |
'compound' => $tax->get_compound(),
|
170 |
'tax_amount' => wc_format_decimal( array_sum( $items_tax[$tax->get_rate_id()] ) ),
|
171 |
+
'shipping_tax_amount' => is_bool( $seller_shipping ) ? '' : $seller_shipping->get_total_tax()
|
172 |
);
|
173 |
|
174 |
foreach( $tax_metas as $meta_key => $meta_value ) {
|
201 |
update_post_meta( $order_id, '_prices_include_tax', $parent_order->get_prices_include_tax() );
|
202 |
update_post_meta( $order_id, '_customer_ip_address', get_post_meta( $parent_order->get_id(), '_customer_ip_address', true ) );
|
203 |
update_post_meta( $order_id, '_customer_user_agent', get_post_meta( $parent_order->get_id(), '_customer_user_agent', true ) );
|
204 |
+
|
205 |
do_action( 'dokan_checkout_update_order_meta', $order_id, $seller_id );
|
206 |
} // if order
|
207 |
}
|
includes/wc-functions.php
CHANGED
@@ -123,18 +123,29 @@ function dokan_process_product_meta( $post_id ) {
|
|
123 |
|
124 |
if ( $is_taxonomy ) {
|
125 |
|
126 |
-
$values_are_slugs = false;
|
127 |
-
|
128 |
if ( isset( $attribute_values[ $i ] ) ) {
|
129 |
|
130 |
// Select based attributes - Format values (posted values are slugs)
|
131 |
if ( is_array( $attribute_values[ $i ] ) ) {
|
132 |
-
$values
|
133 |
-
$values_are_slugs = true;
|
134 |
|
135 |
-
// Text based attributes - Posted values are term names
|
136 |
} else {
|
137 |
-
$values
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
}
|
139 |
|
140 |
// Remove empty items in the array
|
@@ -146,34 +157,21 @@ function dokan_process_product_meta( $post_id ) {
|
|
146 |
|
147 |
// Update post terms
|
148 |
if ( taxonomy_exists( $attribute_names[ $i ] ) ) {
|
149 |
-
|
150 |
-
foreach ( $values as $key => $value ) {
|
151 |
-
$term = get_term_by( $values_are_slugs ? 'slug' : 'name', trim( $value ), $attribute_names[ $i ] );
|
152 |
-
|
153 |
-
if ( $term ) {
|
154 |
-
$values[ $key ] = intval( $term->term_id );
|
155 |
-
} else {
|
156 |
-
$term = wp_insert_term( trim( $value ), $attribute_names[ $i ] );
|
157 |
-
if ( isset( $term->term_id ) ) {
|
158 |
-
$values[ $key ] = intval( $term->term_id );
|
159 |
-
}
|
160 |
-
}
|
161 |
-
}
|
162 |
-
|
163 |
wp_set_object_terms( $post_id, $values, $attribute_names[ $i ] );
|
164 |
}
|
165 |
|
166 |
if ( ! empty( $values ) ) {
|
167 |
// Add attribute to array, but don't set values
|
168 |
$attributes[ sanitize_title( $attribute_names[ $i ] ) ] = array(
|
169 |
-
'name'
|
170 |
-
'value'
|
171 |
-
'position'
|
172 |
-
'is_visible'
|
173 |
-
'is_variation'
|
174 |
-
'is_taxonomy'
|
175 |
);
|
176 |
}
|
|
|
177 |
} elseif ( isset( $attribute_values[ $i ] ) ) {
|
178 |
|
179 |
// Text based, possibly separated by pipes (WC_DELIMITER). Preserve line breaks in non-variation attributes.
|
@@ -181,14 +179,15 @@ function dokan_process_product_meta( $post_id ) {
|
|
181 |
|
182 |
// Custom attribute - Add attribute to array and set the values
|
183 |
$attributes[ sanitize_title( $attribute_names[ $i ] ) ] = array(
|
184 |
-
'name'
|
185 |
-
'value'
|
186 |
-
'position'
|
187 |
-
'is_visible'
|
188 |
-
'is_variation'
|
189 |
-
'is_taxonomy'
|
190 |
);
|
191 |
}
|
|
|
192 |
}
|
193 |
}
|
194 |
uasort( $attributes, 'wc_product_attribute_uasort_comparison' );
|
@@ -511,7 +510,7 @@ function dokan_new_customer_data( $data ) {
|
|
511 |
if ( $role == 'seller' ) {
|
512 |
$data['first_name'] = strip_tags( $_POST['fname'] );
|
513 |
$data['last_name'] = strip_tags( $_POST['lname'] );
|
514 |
-
$data['user_nicename'] =
|
515 |
}
|
516 |
|
517 |
return $data;
|
@@ -562,8 +561,8 @@ add_action( 'woocommerce_created_customer', 'dokan_on_create_seller', 10, 2);
|
|
562 |
*/
|
563 |
function dokan_seller_displayname ( $display_name ) {
|
564 |
|
565 |
-
if (
|
566 |
-
$seller_info = dokan_get_store_info (
|
567 |
$display_name = ( !empty( $seller_info['store_name'] ) ) ? $seller_info['store_name'] : $display_name;
|
568 |
|
569 |
}
|
@@ -876,103 +875,103 @@ function dokan_filter_woocommerce_dashboard_status_widget_sales_query( $query )
|
|
876 |
*/
|
877 |
function dokan_save_account_details(){
|
878 |
|
879 |
-
if ( 'POST' !== strtoupper( $_SERVER[
|
880 |
-
|
881 |
-
|
882 |
-
|
883 |
-
|
884 |
-
|
885 |
-
|
886 |
-
|
887 |
-
|
888 |
-
|
889 |
-
|
890 |
-
|
891 |
-
|
892 |
-
|
893 |
-
|
894 |
-
|
895 |
-
|
896 |
-
|
897 |
-
|
898 |
-
|
899 |
-
|
900 |
-
|
901 |
-
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
906 |
-
|
907 |
-
|
908 |
-
|
909 |
-
|
910 |
-
|
911 |
-
|
912 |
-
|
913 |
-
|
914 |
-
|
915 |
-
|
916 |
-
|
917 |
-
|
918 |
-
|
919 |
-
|
920 |
-
|
921 |
-
|
922 |
-
|
923 |
-
|
924 |
-
|
925 |
-
|
926 |
-
|
927 |
-
|
928 |
-
|
929 |
-
|
930 |
-
|
931 |
-
|
932 |
-
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
|
943 |
-
|
944 |
-
|
945 |
-
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
|
951 |
-
|
952 |
-
|
953 |
-
|
954 |
-
|
955 |
-
|
956 |
-
|
957 |
-
|
958 |
-
|
959 |
-
|
960 |
-
|
961 |
-
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
}
|
977 |
|
978 |
add_action( 'template_redirect', 'dokan_save_account_details' );
|
@@ -1017,3 +1016,26 @@ if ( ! function_exists( 'dokan_date_time_format' ) ) {
|
|
1017 |
}
|
1018 |
|
1019 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
|
124 |
if ( $is_taxonomy ) {
|
125 |
|
|
|
|
|
126 |
if ( isset( $attribute_values[ $i ] ) ) {
|
127 |
|
128 |
// Select based attributes - Format values (posted values are slugs)
|
129 |
if ( is_array( $attribute_values[ $i ] ) ) {
|
130 |
+
$values = array_map( 'wc_clean', $attribute_values[ $i ] );
|
|
|
131 |
|
132 |
+
// Text based attributes - Posted values are term names, wp_set_object_terms wants ids or slugs.
|
133 |
} else {
|
134 |
+
$values = array();
|
135 |
+
$raw_values = array_map( 'wc_sanitize_term_text_based', explode( WC_DELIMITER, $attribute_values[ $i ] ) );
|
136 |
+
|
137 |
+
foreach ( $raw_values as $value ) {
|
138 |
+
$term = get_term_by( 'name', $value, $attribute_names[ $i ] );
|
139 |
+
if ( ! $term ) {
|
140 |
+
$term = wp_insert_term( $value, $attribute_names[ $i ] );
|
141 |
+
|
142 |
+
if ( $term && ! is_wp_error( $term ) ) {
|
143 |
+
$values[] = $term['term_id'];
|
144 |
+
}
|
145 |
+
} else {
|
146 |
+
$values[] = $term->term_id;
|
147 |
+
}
|
148 |
+
}
|
149 |
}
|
150 |
|
151 |
// Remove empty items in the array
|
157 |
|
158 |
// Update post terms
|
159 |
if ( taxonomy_exists( $attribute_names[ $i ] ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
wp_set_object_terms( $post_id, $values, $attribute_names[ $i ] );
|
161 |
}
|
162 |
|
163 |
if ( ! empty( $values ) ) {
|
164 |
// Add attribute to array, but don't set values
|
165 |
$attributes[ sanitize_title( $attribute_names[ $i ] ) ] = array(
|
166 |
+
'name' => wc_clean( $attribute_names[ $i ] ),
|
167 |
+
'value' => '',
|
168 |
+
'position' => $attribute_position[ $i ],
|
169 |
+
'is_visible' => $is_visible,
|
170 |
+
'is_variation' => $is_variation,
|
171 |
+
'is_taxonomy' => $is_taxonomy
|
172 |
);
|
173 |
}
|
174 |
+
|
175 |
} elseif ( isset( $attribute_values[ $i ] ) ) {
|
176 |
|
177 |
// Text based, possibly separated by pipes (WC_DELIMITER). Preserve line breaks in non-variation attributes.
|
179 |
|
180 |
// Custom attribute - Add attribute to array and set the values
|
181 |
$attributes[ sanitize_title( $attribute_names[ $i ] ) ] = array(
|
182 |
+
'name' => wc_clean( $attribute_names[ $i ] ),
|
183 |
+
'value' => $values,
|
184 |
+
'position' => $attribute_position[ $i ],
|
185 |
+
'is_visible' => $is_visible,
|
186 |
+
'is_variation' => $is_variation,
|
187 |
+
'is_taxonomy' => $is_taxonomy
|
188 |
);
|
189 |
}
|
190 |
+
|
191 |
}
|
192 |
}
|
193 |
uasort( $attributes, 'wc_product_attribute_uasort_comparison' );
|
510 |
if ( $role == 'seller' ) {
|
511 |
$data['first_name'] = strip_tags( $_POST['fname'] );
|
512 |
$data['last_name'] = strip_tags( $_POST['lname'] );
|
513 |
+
$data['user_nicename'] = sanitize_user( $_POST['shopurl'] );
|
514 |
}
|
515 |
|
516 |
return $data;
|
561 |
*/
|
562 |
function dokan_seller_displayname ( $display_name ) {
|
563 |
|
564 |
+
if ( current_user_can( 'seller' ) && !is_admin() ) {
|
565 |
+
$seller_info = dokan_get_store_info ( dokan_get_current_user_id() );
|
566 |
$display_name = ( !empty( $seller_info['store_name'] ) ) ? $seller_info['store_name'] : $display_name;
|
567 |
|
568 |
}
|
875 |
*/
|
876 |
function dokan_save_account_details(){
|
877 |
|
878 |
+
if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
|
879 |
+
return;
|
880 |
+
}
|
881 |
+
|
882 |
+
if ( empty( $_POST['_wpnonce'] ) || !wp_verify_nonce( $_POST['_wpnonce'], 'dokan_save_account_details' ) ) {
|
883 |
+
return;
|
884 |
+
}
|
885 |
+
|
886 |
+
$errors = new WP_Error();
|
887 |
+
$user = new stdClass();
|
888 |
+
|
889 |
+
$user->ID = (int) get_current_user_id();
|
890 |
+
$current_user = get_user_by( 'id', $user->ID );
|
891 |
+
|
892 |
+
if ( $user->ID <= 0 ) {
|
893 |
+
return;
|
894 |
+
}
|
895 |
+
|
896 |
+
$account_first_name = !empty( $_POST['account_first_name'] ) ? wc_clean( $_POST['account_first_name'] ) : '';
|
897 |
+
$account_last_name = !empty( $_POST['account_last_name'] ) ? wc_clean( $_POST['account_last_name'] ) : '';
|
898 |
+
$account_email = !empty( $_POST['account_email'] ) ? sanitize_email( $_POST['account_email'] ) : '';
|
899 |
+
$pass_cur = !empty( $_POST['password_current'] ) ? $_POST['password_current'] : '';
|
900 |
+
$pass1 = !empty( $_POST['password_1'] ) ? $_POST['password_1'] : '';
|
901 |
+
$pass2 = !empty( $_POST['password_2'] ) ? $_POST['password_2'] : '';
|
902 |
+
$save_pass = true;
|
903 |
+
|
904 |
+
$user->first_name = $account_first_name;
|
905 |
+
$user->last_name = $account_last_name;
|
906 |
+
|
907 |
+
// Prevent emails being displayed, or leave alone.
|
908 |
+
$user->display_name = is_email( $current_user->display_name ) ? $user->first_name : $current_user->display_name;
|
909 |
+
|
910 |
+
// Handle required fields
|
911 |
+
$required_fields = apply_filters( 'woocommerce_save_account_details_required_fields', array(
|
912 |
+
'account_first_name' => __( 'First Name', 'dokan-lite' ),
|
913 |
+
'account_last_name' => __( 'Last Name', 'dokan-lite' ),
|
914 |
+
'account_email' => __( 'Email address', 'dokan-lite' ),
|
915 |
+
) );
|
916 |
+
|
917 |
+
foreach ( $required_fields as $field_key => $field_name ) {
|
918 |
+
if ( empty( $_POST[$field_key] ) ) {
|
919 |
+
wc_add_notice( '<strong>' . esc_html( $field_name ) . '</strong> ' . __( 'is a required field.', 'dokan-lite' ), 'error' );
|
920 |
+
}
|
921 |
+
}
|
922 |
+
|
923 |
+
if ( $account_email ) {
|
924 |
+
if ( !is_email( $account_email ) ) {
|
925 |
+
wc_add_notice( __( 'Please provide a valid email address.', 'dokan-lite' ), 'error' );
|
926 |
+
} elseif ( email_exists( $account_email ) && $account_email !== $current_user->user_email ) {
|
927 |
+
wc_add_notice( __( 'This email address is already registered.', 'dokan-lite' ), 'error' );
|
928 |
+
}
|
929 |
+
$user->user_email = $account_email;
|
930 |
+
}
|
931 |
+
|
932 |
+
if ( !empty( $pass1 ) && !wp_check_password( $pass_cur, $current_user->user_pass, $current_user->ID ) ) {
|
933 |
+
wc_add_notice( __( 'Your current password is incorrect.', 'dokan-lite' ), 'error' );
|
934 |
+
$save_pass = false;
|
935 |
+
}
|
936 |
+
|
937 |
+
if ( !empty( $pass_cur ) && empty( $pass1 ) && empty( $pass2 ) ) {
|
938 |
+
wc_add_notice( __( 'Please fill out all password fields.', 'dokan-lite' ), 'error' );
|
939 |
+
$save_pass = false;
|
940 |
+
} elseif ( !empty( $pass1 ) && empty( $pass_cur ) ) {
|
941 |
+
wc_add_notice( __( 'Please enter your current password.', 'dokan-lite' ), 'error' );
|
942 |
+
$save_pass = false;
|
943 |
+
} elseif ( !empty( $pass1 ) && empty( $pass2 ) ) {
|
944 |
+
wc_add_notice( __( 'Please re-enter your password.', 'dokan-lite' ), 'error' );
|
945 |
+
$save_pass = false;
|
946 |
+
} elseif ( (!empty( $pass1 ) || !empty( $pass2 ) ) && $pass1 !== $pass2 ) {
|
947 |
+
wc_add_notice( __( 'New passwords do not match.', 'dokan-lite' ), 'error' );
|
948 |
+
$save_pass = false;
|
949 |
+
}
|
950 |
+
|
951 |
+
if ( $pass1 && $save_pass ) {
|
952 |
+
$user->user_pass = $pass1;
|
953 |
+
}
|
954 |
+
|
955 |
+
// Allow plugins to return their own errors.
|
956 |
+
do_action_ref_array( 'woocommerce_save_account_details_errors', array( &$errors, &$user ) );
|
957 |
+
|
958 |
+
if ( $errors->get_error_messages() ) {
|
959 |
+
foreach ( $errors->get_error_messages() as $error ) {
|
960 |
+
wc_add_notice( $error, 'error' );
|
961 |
+
}
|
962 |
+
}
|
963 |
+
|
964 |
+
if ( wc_notice_count( 'error' ) === 0 ) {
|
965 |
+
|
966 |
+
wp_update_user( $user );
|
967 |
+
|
968 |
+
wc_add_notice( __( 'Account details changed successfully.', 'dokan-lite' ) );
|
969 |
+
|
970 |
+
do_action( 'woocommerce_save_account_details', $user->ID );
|
971 |
+
|
972 |
+
wp_safe_redirect( dokan_get_navigation_url( ' edit-account' ) );
|
973 |
+
exit;
|
974 |
+
}
|
975 |
}
|
976 |
|
977 |
add_action( 'template_redirect', 'dokan_save_account_details' );
|
1016 |
}
|
1017 |
|
1018 |
}
|
1019 |
+
|
1020 |
+
/**
|
1021 |
+
* Remove banner when without banner layout
|
1022 |
+
* selected for profile
|
1023 |
+
*
|
1024 |
+
* @param array $progress_values
|
1025 |
+
*
|
1026 |
+
* @return array
|
1027 |
+
*/
|
1028 |
+
function dokan_split_profile_completion_value( $progress_values ) {
|
1029 |
+
$store_banner = dokan_get_option( 'store_header_template', 'dokan_appearance' );
|
1030 |
+
|
1031 |
+
if ( 'layout3' == $store_banner ) {
|
1032 |
+
unset( $progress_values['banner_val'] );
|
1033 |
+
$progress_values['store_name_val'] = 15;
|
1034 |
+
$progress_values['phone_val'] = 15;
|
1035 |
+
$progress_values['address_val'] = 15;
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
return $progress_values;
|
1039 |
+
}
|
1040 |
+
|
1041 |
+
add_filter( 'dokan_profile_completion_values', 'dokan_split_profile_completion_value', 10 );
|
includes/wc-template.php
CHANGED
@@ -124,3 +124,76 @@ function dokan_manage_capability_for_woocommerce_product( $capability ) {
|
|
124 |
|
125 |
add_filter( 'woocommerce_register_post_type_product', 'dokan_manage_capability_for_woocommerce_product' );
|
126 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
|
125 |
add_filter( 'woocommerce_register_post_type_product', 'dokan_manage_capability_for_woocommerce_product' );
|
126 |
|
127 |
+
/**
|
128 |
+
* Author field for product quick edit
|
129 |
+
*
|
130 |
+
* @return void
|
131 |
+
*/
|
132 |
+
function dokan_author_field_quick_edit(){
|
133 |
+
$admin_user = get_user_by( 'id', get_current_user_id() );
|
134 |
+
$user_query = new WP_User_Query( array( 'role' => 'seller' ) );
|
135 |
+
$sellers = $user_query->get_results();
|
136 |
+
?>
|
137 |
+
<div class="dokan-product-author-field">
|
138 |
+
<label class="alignleft">
|
139 |
+
<span class="title"><?php _e( 'Vendor', 'dokan-lite' ); ?></span>
|
140 |
+
<span class="input-text-wrap">
|
141 |
+
<select name="dokan_product_author_override" id="dokan_product_author_override" class="">
|
142 |
+
<?php if ( ! $sellers ): ?>
|
143 |
+
<option value="<?php echo $admin_user->ID ?>"><?php echo $admin_user->display_name; ?></option>
|
144 |
+
<?php else: ?>
|
145 |
+
<option value="<?php echo $admin_user->ID; ?>"><?php echo $admin_user->display_name; ?></option>
|
146 |
+
<?php foreach ( $sellers as $key => $user): ?>
|
147 |
+
<option value="<?php echo $user->ID ?>"><?php echo $user->display_name; ?></option>
|
148 |
+
<?php endforeach ?>
|
149 |
+
<?php endif ?>
|
150 |
+
</select>
|
151 |
+
</span>
|
152 |
+
</label>
|
153 |
+
</div>
|
154 |
+
<?php
|
155 |
+
}
|
156 |
+
|
157 |
+
add_action( 'woocommerce_product_quick_edit_end', 'dokan_author_field_quick_edit' );
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Assign value for quick edit data
|
161 |
+
*
|
162 |
+
* @param array $column
|
163 |
+
* @param integer $post_id
|
164 |
+
*
|
165 |
+
* @return void
|
166 |
+
*/
|
167 |
+
function dokan_vendor_quick_edit_data( $column,$post_id ) {
|
168 |
+
switch ( $column ) {
|
169 |
+
case 'name' :
|
170 |
+
?>
|
171 |
+
<div class="hidden dokan_vendor_id_inline" id="dokan_vendor_id_inline_<?php echo $post_id; ?>">
|
172 |
+
<div id="dokan_vendor_id"><?php echo get_post_field( 'post_author', $post_id ); ?></div>
|
173 |
+
</div>
|
174 |
+
<?php
|
175 |
+
break;
|
176 |
+
default :
|
177 |
+
break;
|
178 |
+
}
|
179 |
+
}
|
180 |
+
|
181 |
+
add_action( 'manage_product_posts_custom_column', 'dokan_vendor_quick_edit_data', 99, 2 );
|
182 |
+
|
183 |
+
/**
|
184 |
+
* Save quick edit data
|
185 |
+
*
|
186 |
+
* @param object $product
|
187 |
+
*
|
188 |
+
* @return void
|
189 |
+
*/
|
190 |
+
function dokan_save_quick_edit_vendor_data ( $product ){
|
191 |
+
if ( isset( $_REQUEST['dokan_product_author_override'] ) ) {
|
192 |
+
$vendor_id = esc_attr( $_REQUEST['dokan_product_author_override'] );
|
193 |
+
wp_update_post( array( 'ID' => $product->get_id(), 'post_author' => $vendor_id ) );
|
194 |
+
}
|
195 |
+
}
|
196 |
+
|
197 |
+
add_action( 'woocommerce_product_quick_edit_save', 'dokan_save_quick_edit_vendor_data', 10, 1 );
|
198 |
+
|
199 |
+
|
includes/widgets/store-contact.php
CHANGED
@@ -29,28 +29,38 @@ class Dokan_Store_Contact_Form extends WP_Widget {
|
|
29 |
**/
|
30 |
function widget( $args, $instance ) {
|
31 |
|
32 |
-
if (
|
33 |
-
|
34 |
-
|
35 |
|
36 |
-
|
|
|
|
|
|
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
|
42 |
-
|
|
|
|
|
43 |
|
44 |
-
|
45 |
-
echo $args['before_title'] . $title . $args['after_title'];
|
46 |
-
}
|
47 |
|
48 |
-
|
49 |
-
'seller_id' => $seller_id,
|
50 |
-
'store_info' => $store_info,
|
51 |
-
) );
|
52 |
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
}
|
55 |
|
56 |
/**
|
29 |
**/
|
30 |
function widget( $args, $instance ) {
|
31 |
|
32 |
+
if ( dokan_is_store_page() || is_product() ) {
|
33 |
+
extract( $args, EXTR_SKIP );
|
34 |
+
$title = apply_filters( 'widget_title', $instance['title'] );
|
35 |
|
36 |
+
if ( is_product() ) {
|
37 |
+
global $post;
|
38 |
+
$seller_id = get_post_field( 'post_author', $post->ID );
|
39 |
+
}
|
40 |
|
41 |
+
if ( dokan_is_store_page() ) {
|
42 |
+
$seller_id = (int) get_query_var( 'author' );
|
43 |
+
}
|
44 |
|
45 |
+
if ( empty( $seller_id ) ) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
|
49 |
+
$store_info = dokan_get_store_info( $seller_id );
|
|
|
|
|
50 |
|
51 |
+
echo $before_widget;
|
|
|
|
|
|
|
52 |
|
53 |
+
if ( ! empty( $title ) ) {
|
54 |
+
echo $args['before_title'] . $title . $args['after_title'];
|
55 |
+
}
|
56 |
+
|
57 |
+
dokan_get_template_part( 'widgets/store-contact-form', '', array(
|
58 |
+
'seller_id' => $seller_id,
|
59 |
+
'store_info' => $store_info,
|
60 |
+
) );
|
61 |
+
|
62 |
+
echo $after_widget;
|
63 |
+
}
|
64 |
}
|
65 |
|
66 |
/**
|
includes/widgets/store-menu-category.php
CHANGED
@@ -14,15 +14,17 @@ class Dokan_Store_Category_Walker extends Dokan_Category_Walker {
|
|
14 |
$indent = str_repeat( "\t", $depth );
|
15 |
|
16 |
$url = $this->store_url . 'section/' . $category->term_id;
|
|
|
|
|
17 |
|
18 |
if ( $depth == 0 ) {
|
19 |
$caret = $args['has_children'] ? ' <span class="caret-icon"><i class="fa fa-angle-right" aria-hidden="true"></i></span>' : '';
|
20 |
$class_name = $args['has_children'] ? ' class="has-children parent-cat-wrap"' : ' class="parent-cat-wrap"';
|
21 |
-
$output .= $indent . '<li' . $class_name . '>' . "\n\t" .'<a href="' . $url . '">' . $category->name . $caret . '</a>' . "\n";
|
22 |
} else {
|
23 |
$caret = $args['has_children'] ? ' <span class="caret-icon"><i class="fa fa-angle-right" aria-hidden="true"></i></span>' : '';
|
24 |
$class_name = $args['has_children'] ? ' class="has-children"' : '';
|
25 |
-
$output .= $indent . '<li' . $class_name . '><a href="' . $url . '">' . $category->name . $caret . '</a>';
|
26 |
}
|
27 |
}
|
28 |
}
|
14 |
$indent = str_repeat( "\t", $depth );
|
15 |
|
16 |
$url = $this->store_url . 'section/' . $category->term_id;
|
17 |
+
$selected_cat = get_query_var( 'term' );
|
18 |
+
$a_selected_class = $selected_cat == $category->term_id ? 'class="selected"' : '';
|
19 |
|
20 |
if ( $depth == 0 ) {
|
21 |
$caret = $args['has_children'] ? ' <span class="caret-icon"><i class="fa fa-angle-right" aria-hidden="true"></i></span>' : '';
|
22 |
$class_name = $args['has_children'] ? ' class="has-children parent-cat-wrap"' : ' class="parent-cat-wrap"';
|
23 |
+
$output .= $indent . '<li' . $class_name . '>' . "\n\t" .'<a href="' . $url . '"'. $a_selected_class .'>' . $category->name . $caret . '</a>' . "\n";
|
24 |
} else {
|
25 |
$caret = $args['has_children'] ? ' <span class="caret-icon"><i class="fa fa-angle-right" aria-hidden="true"></i></span>' : '';
|
26 |
$class_name = $args['has_children'] ? ' class="has-children"' : '';
|
27 |
+
$output .= $indent . '<li' . $class_name . '><a href="' . $url . '"'.$a_selected_class.'>' . $category->name . $caret . '</a>';
|
28 |
}
|
29 |
}
|
30 |
}
|
includes/widgets/store-menu.php
CHANGED
@@ -36,7 +36,7 @@ class Dokan_Store_Category_Menu extends WP_Widget {
|
|
36 |
$seller_id = (int) get_query_var( 'author' );
|
37 |
|
38 |
dokan_store_category_menu( $seller_id, $title );
|
39 |
-
|
40 |
?>
|
41 |
<script>
|
42 |
( function ( $ ) {
|
@@ -63,6 +63,15 @@ class Dokan_Store_Category_Menu extends WP_Widget {
|
|
63 |
}
|
64 |
} );
|
65 |
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
} )( jQuery );
|
67 |
</script>
|
68 |
|
36 |
$seller_id = (int) get_query_var( 'author' );
|
37 |
|
38 |
dokan_store_category_menu( $seller_id, $title );
|
39 |
+
|
40 |
?>
|
41 |
<script>
|
42 |
( function ( $ ) {
|
63 |
}
|
64 |
} );
|
65 |
} );
|
66 |
+
|
67 |
+
$(document).ready(function(){
|
68 |
+
var selectedLi = $('#cat-drop-stack ul').find( 'a.selected' );
|
69 |
+
selectedLi.css({ fontWeight: 'bold' });
|
70 |
+
|
71 |
+
selectedLi.parents('ul.children').each( function( i, val ) {
|
72 |
+
$( val ).css({ display: 'block' });
|
73 |
+
});
|
74 |
+
});
|
75 |
} )( jQuery );
|
76 |
</script>
|
77 |
|
includes/withdraw-functions.php
CHANGED
@@ -49,6 +49,29 @@ function dokan_withdraw_get_active_methods() {
|
|
49 |
return $methods;
|
50 |
}
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
/**
|
53 |
* Get a single withdraw method based on key
|
54 |
*
|
@@ -238,4 +261,4 @@ function dokan_withdraw_get_active_order_status_in_comma() {
|
|
238 |
$order_status = dokan_withdraw_get_active_order_status();
|
239 |
$status = "'" . implode("', '", $order_status ) . "'";
|
240 |
return $status;
|
241 |
-
}
|
49 |
return $methods;
|
50 |
}
|
51 |
|
52 |
+
/**
|
53 |
+
* Get active withdraw methods for seller.
|
54 |
+
* @return array
|
55 |
+
*/
|
56 |
+
function dokan_get_seller_active_withdraw_methods() {
|
57 |
+
$payment_methods = get_user_meta( dokan_get_current_user_id(), 'dokan_profile_settings' );
|
58 |
+
$paypal = isset( $payment_methods[0]['payment']['paypal']['email'] ) && $payment_methods[0]['payment']['paypal']['email'] !== false ? 'paypal' : '';
|
59 |
+
$bank = isset( $payment_methods[0]['payment']['bank']['ac_number'] ) && $payment_methods[0]['payment']['bank']['ac_number'] !== '' ? 'bank' : '';
|
60 |
+
$skrill = isset( $payment_methods[0]['payment']['skrill']['email'] ) && $payment_methods[0]['payment']['skrill']['email'] !== false ? 'skrill' : '';
|
61 |
+
|
62 |
+
$payment_methods = array( $paypal, $bank, $skrill );
|
63 |
+
$active_payment_methods = array();
|
64 |
+
|
65 |
+
foreach ( $payment_methods as $payment_method ) {
|
66 |
+
if ( ! empty( $payment_method ) ) {
|
67 |
+
array_push( $active_payment_methods, $payment_method );
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
return apply_filters( 'dokan_get_seller_active_withdraw_methods', $active_payment_methods );
|
72 |
+
}
|
73 |
+
|
74 |
+
|
75 |
/**
|
76 |
* Get a single withdraw method based on key
|
77 |
*
|
261 |
$order_status = dokan_withdraw_get_active_order_status();
|
262 |
$status = "'" . implode("', '", $order_status ) . "'";
|
263 |
return $status;
|
264 |
+
}
|
languages/dokan-lite.pot
CHANGED
@@ -1,232 +1,256 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the GPL2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Dokan 2.
|
6 |
-
"Report-Msgid-Bugs-To:
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
|
14 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
#: templates/products/new-product-single.php:461
|
17 |
msgid "1"
|
18 |
msgstr ""
|
19 |
|
20 |
-
#: classes/admin-user-profile.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
msgid "Country"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: classes/admin-user-profile.php:
|
25 |
msgid "Select a country…"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: classes/admin-user-profile.php:
|
29 |
msgid "State/County"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: classes/admin-user-profile.php:
|
33 |
msgid "State/County or state code"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#: classes/admin-user-profile.php:
|
37 |
msgid "Dokan Options"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#: classes/admin-user-profile.php:
|
41 |
msgid "Banner"
|
42 |
msgstr ""
|
43 |
|
44 |
-
#: classes/admin-user-profile.php:
|
45 |
msgid "Upload banner"
|
46 |
msgstr ""
|
47 |
|
48 |
-
#: classes/admin-user-profile.php:
|
49 |
msgid "(Upload a banner for your store. Banner size is (825x300) pixels. )"
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: classes/admin-user-profile.php:
|
53 |
msgid "Store name"
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: classes/admin-user-profile.php:
|
|
|
|
|
|
|
|
|
57 |
msgid "Address 1"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: classes/admin-user-profile.php:
|
61 |
msgid "Address 2"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: classes/admin-user-profile.php:
|
65 |
msgid "Town/City"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: classes/admin-user-profile.php:
|
69 |
msgid "Zip Code"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: classes/admin-user-profile.php:
|
73 |
#: templates/global/seller-registration-form.php:38
|
74 |
msgid "Phone Number"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: classes/admin-user-profile.php:
|
78 |
msgid "Payment Options : "
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: classes/admin-user-profile.php:
|
82 |
msgid "Paypal Email "
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: classes/admin-user-profile.php:
|
86 |
msgid "Skrill Email "
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: classes/admin-user-profile.php:
|
90 |
msgid "Bank name "
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: classes/admin-user-profile.php:
|
94 |
msgid "Account Name "
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: classes/admin-user-profile.php:
|
98 |
msgid "Account Number "
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: classes/admin-user-profile.php:
|
102 |
msgid "Bank Address "
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: classes/admin-user-profile.php:
|
106 |
msgid "Bank Swift "
|
107 |
msgstr ""
|
108 |
|
109 |
-
#: classes/admin-user-profile.php:
|
110 |
msgid "Selling"
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: classes/admin-user-profile.php:
|
114 |
msgid "Enable Adding Products"
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: classes/admin-user-profile.php:
|
118 |
msgid "Enable or disable product adding capability"
|
119 |
msgstr ""
|
120 |
|
121 |
-
#: classes/admin-user-profile.php:
|
122 |
msgid "Publishing"
|
123 |
msgstr ""
|
124 |
|
125 |
-
#: classes/admin-user-profile.php:
|
126 |
msgid "Publish product directly"
|
127 |
msgstr ""
|
128 |
|
129 |
-
#: classes/admin-user-profile.php:
|
130 |
msgid "Bypass pending, publish products directly"
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: classes/admin-user-profile.php:
|
134 |
msgid "Admin Commission Type "
|
135 |
msgstr ""
|
136 |
|
137 |
-
#: classes/admin-user-profile.php:
|
138 |
msgid "Percentage"
|
139 |
msgstr ""
|
140 |
|
141 |
-
#: classes/admin-user-profile.php:
|
142 |
msgid "Flat"
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: classes/admin-user-profile.php:
|
146 |
msgid "Set the commmission type admin gets from this seller"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: classes/admin-user-profile.php:
|
150 |
msgid "Admin Commission "
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: classes/admin-user-profile.php:
|
154 |
msgid "It will override the default commission admin gets from each sales"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: classes/admin-user-profile.php:
|
158 |
msgid "Featured vendor"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: classes/admin-user-profile.php:
|
162 |
msgid "Mark as featured vendor"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: classes/admin-user-profile.php:
|
166 |
msgid "This vendor will be marked as a featured vendor."
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: classes/admin-withdraw.php:
|
170 |
msgid "Requests Deleted!"
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: classes/admin-withdraw.php:
|
174 |
msgid "Requests Cancelled!"
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: classes/admin-withdraw.php:
|
178 |
msgid "Requests Approved!"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: classes/admin-withdraw.php:
|
182 |
msgid "User Name"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: classes/admin-withdraw.php:
|
186 |
#: templates/withdraw/approved-request-listing.php:14
|
187 |
#: templates/withdraw/cancelled-request-listing.php:14
|
188 |
#: templates/withdraw/pending-request-listing.php:14
|
189 |
msgid "Amount"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: classes/admin-withdraw.php:
|
193 |
#: templates/withdraw/approved-request-listing.php:15
|
194 |
#: templates/withdraw/cancelled-request-listing.php:15
|
195 |
#: templates/withdraw/pending-request-listing.php:15
|
196 |
msgid "Method"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: classes/admin-withdraw.php:
|
200 |
msgid "Method Details"
|
201 |
msgstr ""
|
202 |
|
203 |
-
#: classes/admin-withdraw.php:
|
204 |
#: templates/withdraw/cancelled-request-listing.php:17
|
205 |
msgid "Note"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: classes/admin-withdraw.php:
|
209 |
msgid "IP"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: classes/admin-withdraw.php:
|
213 |
-
#: includes/admin-functions.php:
|
214 |
-
#: templates/orders
|
215 |
-
#: templates/products/products-listing.php:
|
216 |
-
#: templates/products/products-listing.php:
|
217 |
#: templates/withdraw/approved-request-listing.php:16
|
218 |
#: templates/withdraw/cancelled-request-listing.php:16
|
219 |
#: templates/withdraw/pending-request-listing.php:16
|
220 |
msgid "Date"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: classes/admin-withdraw.php:
|
224 |
msgid "Approve"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: classes/admin-withdraw.php:
|
228 |
#: includes/product-functions.php:297 templates/my-orders.php:83
|
229 |
-
#: templates/orders/details.php:
|
230 |
#: templates/products/new-product-single.php:226
|
231 |
#: templates/products/new-product.php:159
|
232 |
#: templates/products/tmpl-add-product-popup.php:61
|
@@ -235,99 +259,104 @@ msgstr ""
|
|
235 |
msgid "Cancel"
|
236 |
msgstr ""
|
237 |
|
238 |
-
#: classes/admin-withdraw.php:
|
239 |
#: includes/admin/views/withdraw.php:14
|
240 |
#: templates/dashboard/orders-widget.php:31
|
241 |
msgid "Pending"
|
242 |
msgstr ""
|
243 |
|
244 |
-
#: classes/admin-withdraw.php:
|
245 |
-
#: classes/ajax.php:
|
246 |
#: includes/woo-views/html-product-download.php:38
|
247 |
msgid "Delete"
|
248 |
msgstr ""
|
249 |
|
250 |
-
#: classes/admin-withdraw.php:
|
251 |
msgid "Add note"
|
252 |
msgstr ""
|
253 |
|
254 |
-
#: classes/admin-withdraw.php:
|
255 |
msgid "Save"
|
256 |
msgstr ""
|
257 |
|
258 |
-
#: classes/admin-withdraw.php:
|
259 |
msgid "cancel"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: classes/admin-withdraw.php:
|
263 |
msgid "No results found"
|
264 |
msgstr ""
|
265 |
|
266 |
-
#: classes/admin-withdraw.php:
|
267 |
msgid "Bulk Actions"
|
268 |
msgstr ""
|
269 |
|
270 |
-
#: classes/admin-withdraw.php:
|
271 |
msgid "Approve Requests"
|
272 |
msgstr ""
|
273 |
|
274 |
-
#: classes/admin-withdraw.php:
|
275 |
msgid "Mark as Cancelled"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: classes/admin-withdraw.php:
|
279 |
msgid "Mark Pending"
|
280 |
msgstr ""
|
281 |
|
282 |
-
#: classes/admin-withdraw.php:
|
283 |
msgid "Download PayPal mass payment file"
|
284 |
msgstr ""
|
285 |
|
286 |
-
#: classes/admin-withdraw.php:
|
287 |
msgid "Apply"
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: classes/admin-withdraw.php:
|
291 |
msgid "«"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: classes/admin-withdraw.php:
|
295 |
msgid "»"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: classes/ajax.php:
|
299 |
-
|
|
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: classes/ajax.php:
|
303 |
-
msgid "
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: classes/ajax.php:
|
307 |
-
#: classes/template-settings.php:
|
308 |
-
#: classes/template-settings.php:
|
309 |
-
#: classes/template-settings.php:
|
310 |
-
#: classes/template-settings.php:
|
311 |
-
#: classes/template-withdraw.php:
|
312 |
msgid "Are you cheating?"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: classes/ajax.php:
|
316 |
msgid "You do not have sufficient permissions to access this page."
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: classes/ajax.php:
|
320 |
msgid "You have taken too long. Please go back and retry."
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: classes/ajax.php:
|
324 |
msgid "You do not have permission to change this order"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: classes/ajax.php:
|
328 |
msgid "File %d"
|
329 |
msgstr ""
|
330 |
|
|
|
|
|
|
|
|
|
331 |
#: classes/ajax.php:307 classes/ajax.php:312
|
332 |
msgid "Please provide your name."
|
333 |
msgstr ""
|
@@ -340,15 +369,15 @@ msgstr ""
|
|
340 |
msgid "Email sent successfully!"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: classes/ajax.php:380 templates/orders/details.php:
|
344 |
msgid "Delete note"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: classes/ajax.php:
|
348 |
msgid "Error: Nonce verification failed"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: classes/ajax.php:
|
352 |
msgid "Image could not be processed. Please go back and try again."
|
353 |
msgstr ""
|
354 |
|
@@ -417,36 +446,86 @@ msgid "Footer Widget link hover"
|
|
417 |
msgstr ""
|
418 |
|
419 |
#: classes/installer.php:135 includes/admin/class-settings.php:167
|
420 |
-
#: includes/admin/setup-wizard.php:
|
421 |
-
#: includes/admin-functions.php:
|
422 |
-
#: includes/
|
|
|
423 |
msgid "Vendor"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: classes/installer.php:
|
427 |
-
#: includes/admin/class-settings.php:
|
428 |
msgid "Dashboard"
|
429 |
msgstr ""
|
430 |
|
431 |
-
#: classes/installer.php:
|
432 |
msgid "Store List"
|
433 |
msgstr ""
|
434 |
|
435 |
-
#: classes/installer.php:
|
436 |
#: templates/global/header-menu.php:46
|
437 |
msgid "My Orders"
|
438 |
msgstr ""
|
439 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
440 |
#: classes/seller-setup-wizard.php:63 includes/admin/setup-wizard.php:78
|
441 |
msgid "Introduction"
|
442 |
msgstr ""
|
443 |
|
444 |
#: classes/seller-setup-wizard.php:68 includes/admin/setup-wizard.php:83
|
445 |
-
#: includes/template-tags.php:
|
446 |
msgid "Store"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: classes/seller-setup-wizard.php:73 includes/template-tags.php:
|
450 |
msgid "Payment"
|
451 |
msgstr ""
|
452 |
|
@@ -458,92 +537,92 @@ msgstr ""
|
|
458 |
msgid "Vendor › Setup Wizard"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: classes/seller-setup-wizard.php:
|
462 |
msgid "Return to the Marketplace"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: classes/seller-setup-wizard.php:
|
466 |
msgid "Welcome to the Marketplace!"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: classes/seller-setup-wizard.php:
|
470 |
msgid ""
|
471 |
"Thank you for choosing The Marketplace to power your online store! This "
|
472 |
"quick setup wizard will help you configure the basic settings. <strong>It’s "
|
473 |
"completely optional and shouldn’t take longer than two minutes.</strong>"
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: classes/seller-setup-wizard.php:
|
477 |
msgid ""
|
478 |
"No time right now? If you don’t want to go through the wizard, you can skip "
|
479 |
"and return to the Store!"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: classes/seller-setup-wizard.php:
|
483 |
msgid "Let's Go!"
|
484 |
msgstr ""
|
485 |
|
486 |
-
#: classes/seller-setup-wizard.php:
|
487 |
msgid "Not right now"
|
488 |
msgstr ""
|
489 |
|
490 |
-
#: classes/seller-setup-wizard.php:
|
491 |
msgid "Store Setup"
|
492 |
msgstr ""
|
493 |
|
494 |
-
#: classes/seller-setup-wizard.php:
|
495 |
msgid "Store Product Per Page"
|
496 |
msgstr ""
|
497 |
|
498 |
-
#: classes/seller-setup-wizard.php:
|
499 |
msgid "Street"
|
500 |
msgstr ""
|
501 |
|
502 |
-
#: classes/seller-setup-wizard.php:
|
503 |
msgid "Street 2"
|
504 |
msgstr ""
|
505 |
|
506 |
-
#: classes/seller-setup-wizard.php:
|
507 |
msgid "City"
|
508 |
msgstr ""
|
509 |
|
510 |
-
#: classes/seller-setup-wizard.php:
|
511 |
msgid "Post/Zip Code"
|
512 |
msgstr ""
|
513 |
|
514 |
-
#: classes/seller-setup-wizard.php:
|
515 |
msgid "State"
|
516 |
msgstr ""
|
517 |
|
518 |
-
#: classes/seller-setup-wizard.php:
|
519 |
msgid "State Name"
|
520 |
msgstr ""
|
521 |
|
522 |
-
#: classes/seller-setup-wizard.php:
|
523 |
msgid "Email"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: classes/seller-setup-wizard.php:
|
527 |
msgid "Show email address in store"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: classes/seller-setup-wizard.php:298 classes/seller-setup-wizard.php:437
|
531 |
-
#: includes/admin/setup-wizard.php:293 includes/admin/setup-wizard.php:373
|
532 |
-
#: includes/admin/setup-wizard.php:484
|
533 |
-
msgid "Continue"
|
534 |
-
msgstr ""
|
535 |
-
|
536 |
#: classes/seller-setup-wizard.php:299 classes/seller-setup-wizard.php:438
|
537 |
#: includes/admin/setup-wizard.php:294 includes/admin/setup-wizard.php:374
|
538 |
#: includes/admin/setup-wizard.php:485
|
|
|
|
|
|
|
|
|
|
|
|
|
539 |
msgid "Skip this step"
|
540 |
msgstr ""
|
541 |
|
542 |
-
#: classes/seller-setup-wizard.php:
|
543 |
msgid "Select an option…"
|
544 |
msgstr ""
|
545 |
|
546 |
-
#: classes/seller-setup-wizard.php:
|
547 |
msgid "Payment Setup"
|
548 |
msgstr ""
|
549 |
|
@@ -555,82 +634,92 @@ msgstr ""
|
|
555 |
msgid "Go to your Store Dashboard!"
|
556 |
msgstr ""
|
557 |
|
558 |
-
#: classes/template-orders.php:
|
|
|
|
|
|
|
|
|
559 |
msgid "Order No"
|
560 |
msgstr ""
|
561 |
|
562 |
-
#: classes/template-orders.php:
|
563 |
#: templates/orders/details.php:21
|
564 |
msgid "Order Items"
|
565 |
msgstr ""
|
566 |
|
567 |
-
#: classes/template-orders.php:
|
568 |
msgid "Shipping method"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: classes/template-orders.php:
|
572 |
msgid "Shipping Cost"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: classes/template-orders.php:
|
576 |
msgid "Payment method"
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: classes/template-orders.php:
|
580 |
-
#: templates/orders/listing.php:18 templates/orders/listing.php:
|
581 |
msgid "Order Total"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: classes/template-orders.php:
|
585 |
msgid "Order Status"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: classes/template-orders.php:
|
589 |
msgid "Order Date"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: classes/template-orders.php:
|
593 |
msgid "Customer Name"
|
594 |
msgstr ""
|
595 |
|
596 |
-
#: classes/template-orders.php:
|
597 |
msgid "Customer Email"
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: classes/template-orders.php:
|
601 |
msgid "Customer Phone"
|
602 |
msgstr ""
|
603 |
|
604 |
-
#: classes/template-orders.php:
|
605 |
msgid "Customer IP"
|
606 |
msgstr ""
|
607 |
|
608 |
-
#: classes/template-products.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
609 |
msgid "Details of your product ..."
|
610 |
msgstr ""
|
611 |
|
612 |
-
#: classes/template-products.php:
|
613 |
#: includes/product-functions.php:32
|
614 |
msgid "Please enter product title"
|
615 |
msgstr ""
|
616 |
|
617 |
-
#: classes/template-products.php:
|
618 |
#: includes/product-functions.php:38
|
619 |
msgid "Please select a category"
|
620 |
msgstr ""
|
621 |
|
622 |
-
#: classes/template-products.php:
|
623 |
#: includes/product-functions.php:42
|
624 |
msgid "Please select AT LEAST ONE category"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: classes/template-products.php:
|
628 |
msgid "No product found !"
|
629 |
msgstr ""
|
630 |
|
631 |
#: classes/template-settings.php:70 classes/template-settings.php:74
|
632 |
-
#: dokan.php:
|
633 |
-
#: includes/admin/class-admin.php:
|
634 |
#: includes/admin/views/welcome.php:20
|
635 |
msgid "Settings"
|
636 |
msgstr ""
|
@@ -646,77 +735,85 @@ msgid ""
|
|
646 |
"payments seamlessly."
|
647 |
msgstr ""
|
648 |
|
649 |
-
#: classes/template-settings.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
650 |
msgid "Your information has been saved successfully"
|
651 |
msgstr ""
|
652 |
|
653 |
-
#: classes/template-settings.php:
|
654 |
msgid "Store name required"
|
655 |
msgstr ""
|
656 |
|
657 |
-
#: classes/template-settings.php:
|
658 |
-
#: classes/template-settings.php:
|
659 |
msgid "Store type required"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: classes/template-settings.php:
|
663 |
-
#: classes/template-settings.php:
|
664 |
msgid "Invalid email"
|
665 |
msgstr ""
|
666 |
|
667 |
-
#: classes/template-settings.php:
|
668 |
msgid "Address field for %s is required"
|
669 |
msgstr ""
|
670 |
|
671 |
-
#: classes/template-settings.php:
|
672 |
msgid "Add Profile Picture to gain %s%% progress"
|
673 |
msgstr ""
|
674 |
|
675 |
-
#: classes/template-settings.php:
|
676 |
msgid "Facebook"
|
677 |
msgstr ""
|
678 |
|
679 |
-
#: classes/template-settings.php:
|
680 |
msgid "Google+"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: classes/template-settings.php:
|
684 |
msgid "Add %s profile link to gain %s%% progress"
|
685 |
msgstr ""
|
686 |
|
687 |
-
#: classes/template-settings.php:
|
688 |
msgid "Add Phone to gain %s%% progress"
|
689 |
msgstr ""
|
690 |
|
691 |
-
#: classes/template-settings.php:
|
692 |
msgid "Add Banner to gain %s%% progress"
|
693 |
msgstr ""
|
694 |
|
695 |
-
#: classes/template-settings.php:
|
696 |
msgid "Add Store Name to gain %s%% progress"
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: classes/template-settings.php:
|
700 |
msgid "Add address to gain %s%% progress"
|
701 |
msgstr ""
|
702 |
|
703 |
-
#: classes/template-settings.php:
|
704 |
msgid "Add a Payment method to gain %s%% progress"
|
705 |
msgstr ""
|
706 |
|
707 |
-
#: classes/template-settings.php:
|
708 |
msgid "Add Map location to gain %s%% progress"
|
709 |
msgstr ""
|
710 |
|
711 |
-
#: classes/template-settings.php:
|
712 |
msgid "Book"
|
713 |
msgstr ""
|
714 |
|
715 |
-
#: classes/template-settings.php:
|
716 |
msgid "Dress"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: classes/template-settings.php:
|
720 |
msgid "Electronic"
|
721 |
msgstr ""
|
722 |
|
@@ -724,65 +821,69 @@ msgstr ""
|
|
724 |
msgid "Please install <a href=\"%s\"><strong>WooCommerce</strong></a> plugin first"
|
725 |
msgstr ""
|
726 |
|
727 |
-
#: classes/template-withdraw.php:
|
|
|
|
|
|
|
|
|
728 |
msgid "Current Balance: %s "
|
729 |
msgstr ""
|
730 |
|
731 |
-
#: classes/template-withdraw.php:
|
732 |
msgid "<br>Minimum Withdraw amount: %s "
|
733 |
msgstr ""
|
734 |
|
735 |
-
#: classes/template-withdraw.php:
|
736 |
msgid "<br>Withdraw Threshold: %d days "
|
737 |
msgstr ""
|
738 |
|
739 |
-
#: classes/template-withdraw.php:
|
740 |
msgid "Withdraw amount required "
|
741 |
msgstr ""
|
742 |
|
743 |
-
#: classes/template-withdraw.php:
|
744 |
msgid "You don't have enough balance for this request"
|
745 |
msgstr ""
|
746 |
|
747 |
-
#: classes/template-withdraw.php:
|
748 |
msgid "Withdraw amount must be greater than %d"
|
749 |
msgstr ""
|
750 |
|
751 |
-
#: classes/template-withdraw.php:
|
752 |
msgid "withdraw method required"
|
753 |
msgstr ""
|
754 |
|
755 |
-
#: classes/template-withdraw.php:
|
756 |
msgid "Your request has been cancelled successfully!"
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: classes/template-withdraw.php:
|
760 |
msgid "Your request has been received successfully and being reviewed!"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: classes/template-withdraw.php:
|
764 |
msgid "Unknown error!"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: classes/template-withdraw.php:
|
768 |
msgid "You already withdrawed %s. This amount will deducted from your balance."
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: classes/template-withdraw.php:
|
772 |
msgid "You already have pending withdraw request(s)."
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: classes/template-withdraw.php:
|
776 |
msgid ""
|
777 |
"Please submit your request after approval or cancellation of your previous "
|
778 |
"request."
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: classes/template-withdraw.php:
|
782 |
msgid "You don't have sufficient balance for a withdraw request!"
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: classes/template-withdraw.php:
|
786 |
msgid "Sorry, no transactions were found!"
|
787 |
msgstr ""
|
788 |
|
@@ -793,39 +894,39 @@ msgid ""
|
|
793 |
"<strong>20% discount</strong> on upgrades and add-on purchase."
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: classes/upgrade.php:
|
797 |
msgid ""
|
798 |
"<strong>Dokan Data Update Required</strong> – We need to update your "
|
799 |
"install to the latest version"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: classes/upgrade.php:
|
803 |
msgid "Run the updater"
|
804 |
msgstr ""
|
805 |
|
806 |
-
#: classes/upgrade.php:
|
807 |
msgid ""
|
808 |
"It is strongly recommended that you backup your database before proceeding. "
|
809 |
"Are you sure you wish to run the updater now?"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: classes/withdraw.php:
|
813 |
msgid "Pending Reivew"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: classes/withdraw.php:
|
817 |
msgid "Accepted"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: dokan.php:
|
821 |
msgid "<b>Dokan</b> requires %sWooCommerce%s to be installed & activated!"
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: dokan.php:
|
825 |
msgid "Get Pro"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: dokan.php:
|
829 |
msgid "Documentation"
|
830 |
msgstr ""
|
831 |
|
@@ -898,35 +999,32 @@ msgid "Dokan requires some pages to be configured and you can set them up here"
|
|
898 |
msgstr ""
|
899 |
|
900 |
#: includes/admin/class-admin.php:62
|
901 |
-
msgid "Pro upgrade and all extensions"
|
902 |
-
msgstr ""
|
903 |
-
|
904 |
-
#: includes/admin/class-admin.php:62
|
905 |
-
msgid "all extensions"
|
906 |
-
msgstr ""
|
907 |
-
|
908 |
-
#: includes/admin/class-admin.php:64
|
909 |
msgid ""
|
910 |
-
"<h2
|
911 |
-
"
|
|
|
|
|
912 |
msgstr ""
|
913 |
|
914 |
#: includes/admin/class-admin.php:65
|
915 |
msgid ""
|
916 |
-
"<p>
|
917 |
-
"
|
918 |
-
"
|
919 |
-
"soon!</p>"
|
920 |
msgstr ""
|
921 |
|
922 |
-
#: includes/admin/class-admin.php:
|
923 |
-
|
924 |
-
|
|
|
|
|
|
|
|
|
925 |
#: templates/withdraw/header.php:11
|
926 |
msgid "Withdraw"
|
927 |
msgstr ""
|
928 |
|
929 |
-
#: includes/admin/class-admin.php:
|
930 |
msgid "Withdraw %s"
|
931 |
msgstr ""
|
932 |
|
@@ -934,32 +1032,24 @@ msgstr ""
|
|
934 |
msgid "Dokan"
|
935 |
msgstr ""
|
936 |
|
937 |
-
#: includes/admin/class-admin.php:
|
938 |
#: includes/admin/views/dashboard.php:96
|
939 |
msgid "Dokan Dashboard"
|
940 |
msgstr ""
|
941 |
|
942 |
-
#: includes/admin/class-admin.php:
|
943 |
msgid "PRO Features"
|
944 |
msgstr ""
|
945 |
|
946 |
-
#: includes/admin/class-admin.php:
|
947 |
msgid "Help"
|
948 |
msgstr ""
|
949 |
|
950 |
-
#: includes/admin/class-admin.php:
|
951 |
msgid "<span style=\"color:#f18500\">Help</span>"
|
952 |
msgstr ""
|
953 |
|
954 |
-
#: includes/admin/class-admin.php:
|
955 |
-
msgid "Add Ons"
|
956 |
-
msgstr ""
|
957 |
-
|
958 |
-
#: includes/admin/class-admin.php:198
|
959 |
-
msgid "Add-ons"
|
960 |
-
msgstr ""
|
961 |
-
|
962 |
-
#: includes/admin/class-admin.php:205 includes/admin/views/welcome.php:12
|
963 |
msgid "Welcome to Dokan"
|
964 |
msgstr ""
|
965 |
|
@@ -987,7 +1077,7 @@ msgstr ""
|
|
987 |
msgid "Disable Vendors and Customers from accessing the wp-admin dashboard area"
|
988 |
msgstr ""
|
989 |
|
990 |
-
#: includes/admin/class-settings.php:150 includes/admin/setup-wizard.php:
|
991 |
msgid "Vendor Store URL"
|
992 |
msgstr ""
|
993 |
|
@@ -995,8 +1085,8 @@ msgstr ""
|
|
995 |
msgid "Define the seller store URL (%s<strong>[this-text]</strong>/[seller-name])"
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: includes/admin/class-settings.php:157 includes/functions.php:
|
999 |
-
#: templates/settings/store-form.php:
|
1000 |
msgid "Terms and Conditions"
|
1001 |
msgstr ""
|
1002 |
|
@@ -1004,7 +1094,7 @@ msgstr ""
|
|
1004 |
msgid "Enable Terms and Conditions for vendor stores"
|
1005 |
msgstr ""
|
1006 |
|
1007 |
-
#: includes/admin/class-settings.php:164 includes/admin/setup-wizard.php:
|
1008 |
msgid "Extra Fee Recipient"
|
1009 |
msgstr ""
|
1010 |
|
@@ -1012,7 +1102,7 @@ msgstr ""
|
|
1012 |
msgid "Should extra fees, such as Shipping and Tax, go to the Vendor or the Admin?"
|
1013 |
msgstr ""
|
1014 |
|
1015 |
-
#: includes/admin/class-settings.php:167 includes/admin/setup-wizard.php:
|
1016 |
msgid "Admin"
|
1017 |
msgstr ""
|
1018 |
|
@@ -1074,69 +1164,69 @@ msgstr ""
|
|
1074 |
msgid "Amount you get from sales"
|
1075 |
msgstr ""
|
1076 |
|
1077 |
-
#: includes/admin/class-settings.php:
|
1078 |
msgid "Order Status Change"
|
1079 |
msgstr ""
|
1080 |
|
1081 |
-
#: includes/admin/class-settings.php:
|
1082 |
msgid "Vendor can update order status"
|
1083 |
msgstr ""
|
1084 |
|
1085 |
-
#: includes/admin/class-settings.php:
|
1086 |
msgid "Disable Product Popup"
|
1087 |
msgstr ""
|
1088 |
|
1089 |
-
#: includes/admin/class-settings.php:
|
1090 |
msgid "Disable add new product in popup view"
|
1091 |
msgstr ""
|
1092 |
|
1093 |
-
#: includes/admin/class-settings.php:
|
1094 |
msgid "Disable Welcome Wizard"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
-
#: includes/admin/class-settings.php:
|
1098 |
msgid "Disable welcome wizard for newly registered vendors"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
-
#: includes/admin/class-settings.php:
|
1102 |
msgid "Withdraw Methods"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
-
#: includes/admin/class-settings.php:
|
1106 |
msgid "Withdraw methods for vendors"
|
1107 |
msgstr ""
|
1108 |
|
1109 |
-
#: includes/admin/class-settings.php:
|
1110 |
msgid "Minimum Withdraw Limit"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: includes/admin/class-settings.php:
|
1114 |
msgid ""
|
1115 |
"Minimum balance required to make a withdraw request. Leave blank to set no "
|
1116 |
"minimum limits."
|
1117 |
msgstr ""
|
1118 |
|
1119 |
-
#: includes/admin/class-settings.php:
|
1120 |
msgid "Terms and Conditions Page"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
-
#: includes/admin/class-settings.php:
|
1124 |
msgid ""
|
1125 |
"Select where you want to add Dokan pages <a target=\"_blank\" href=\"%s\"> "
|
1126 |
"Learn More </a>"
|
1127 |
msgstr ""
|
1128 |
|
1129 |
-
#: includes/admin/class-settings.php:
|
1130 |
msgid "Vendor Setup Wizard Logo"
|
1131 |
msgstr ""
|
1132 |
|
1133 |
-
#: includes/admin/class-settings.php:
|
1134 |
msgid ""
|
1135 |
"Recommended Logo size ( 270px X 90px ). If no logo is uploaded, site title "
|
1136 |
"is shown by default."
|
1137 |
msgstr ""
|
1138 |
|
1139 |
-
#: includes/admin/class-settings.php:
|
1140 |
msgid "Store Header Template"
|
1141 |
msgstr ""
|
1142 |
|
@@ -1144,145 +1234,145 @@ msgstr ""
|
|
1144 |
msgid "Dokan › Setup Wizard"
|
1145 |
msgstr ""
|
1146 |
|
1147 |
-
#: includes/admin/setup-wizard.php:
|
1148 |
msgid "Return to the WordPress Dashboard"
|
1149 |
msgstr ""
|
1150 |
|
1151 |
-
#: includes/admin/setup-wizard.php:
|
1152 |
msgid "Welcome to the world of Dokan!"
|
1153 |
msgstr ""
|
1154 |
|
1155 |
-
#: includes/admin/setup-wizard.php:
|
1156 |
msgid ""
|
1157 |
"Thank you for choosing Dokan to power your online marketplace! This quick "
|
1158 |
"setup wizard will help you configure the basic settings. <strong>It’s "
|
1159 |
"completely optional and shouldn’t take longer than three minutes.</strong>"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: includes/admin/setup-wizard.php:
|
1163 |
msgid ""
|
1164 |
"No time right now? If you don’t want to go through the wizard, you can skip "
|
1165 |
"and return to the WordPress dashboard. Come back anytime if you change your "
|
1166 |
"mind!"
|
1167 |
msgstr ""
|
1168 |
|
1169 |
-
#: includes/admin/setup-wizard.php:
|
1170 |
msgid "Define vendor store URL"
|
1171 |
msgstr ""
|
1172 |
|
1173 |
-
#: includes/admin/setup-wizard.php:
|
1174 |
msgid "Extra fees like shipping and tax will go to"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
-
#: includes/admin/setup-wizard.php:
|
1178 |
msgid "Tab View"
|
1179 |
msgstr ""
|
1180 |
|
1181 |
-
#: includes/admin/setup-wizard.php:
|
1182 |
msgid "Flat View"
|
1183 |
msgstr ""
|
1184 |
|
1185 |
-
#: includes/admin/setup-wizard.php:
|
1186 |
msgid "Selling Setup"
|
1187 |
msgstr ""
|
1188 |
|
1189 |
-
#: includes/admin/setup-wizard.php:
|
1190 |
msgid "New Vendor Enable Selling"
|
1191 |
msgstr ""
|
1192 |
|
1193 |
-
#: includes/admin/setup-wizard.php:
|
1194 |
msgid "Make selling status enable for new registred vendor"
|
1195 |
msgstr ""
|
1196 |
|
1197 |
-
#: includes/admin/setup-wizard.php:
|
1198 |
msgid "Vendor Commission %"
|
1199 |
msgstr ""
|
1200 |
|
1201 |
-
#: includes/admin/setup-wizard.php:
|
1202 |
msgid "How much amount (%) a vendor will get from each order"
|
1203 |
msgstr ""
|
1204 |
|
1205 |
-
#: includes/admin/setup-wizard.php:
|
1206 |
msgid "Vendor can change order status"
|
1207 |
msgstr ""
|
1208 |
|
1209 |
-
#: includes/admin/setup-wizard.php:
|
1210 |
msgid "Add/Edit Product Style"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
-
#: includes/admin/setup-wizard.php:
|
1214 |
msgid "The style you prefer for vendor to add or edit products."
|
1215 |
msgstr ""
|
1216 |
|
1217 |
-
#: includes/admin/setup-wizard.php:
|
1218 |
msgid "Withdraw Setup"
|
1219 |
msgstr ""
|
1220 |
|
1221 |
-
#: includes/admin/setup-wizard.php:
|
1222 |
msgid "Paypal"
|
1223 |
msgstr ""
|
1224 |
|
1225 |
-
#: includes/admin/setup-wizard.php:
|
1226 |
msgid "Enable paypal for your vendor as a withdraw method"
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: includes/admin/setup-wizard.php:
|
1230 |
msgid "Bank"
|
1231 |
msgstr ""
|
1232 |
|
1233 |
-
#: includes/admin/setup-wizard.php:
|
1234 |
msgid "Enable bank transfer for your vendor as a withdraw method"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
-
#: includes/admin/setup-wizard.php:
|
1238 |
msgid "Skrill"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
-
#: includes/admin/setup-wizard.php:
|
1242 |
msgid "Enable skrill for your vendor as a withdraw method"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
-
#: includes/admin/setup-wizard.php:
|
1246 |
msgid ""
|
1247 |
"Minimum balance required to make a withdraw request ( Leave it blank to set "
|
1248 |
"no limits )"
|
1249 |
msgstr ""
|
1250 |
|
1251 |
-
#: includes/admin/setup-wizard.php:
|
1252 |
msgid "Order Status for Withdraw"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: includes/admin/setup-wizard.php:
|
1256 |
#: templates/dashboard/orders-widget.php:26
|
1257 |
msgid "Completed"
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: includes/admin/setup-wizard.php:
|
1261 |
-
#: templates/dashboard/orders-widget.php:36 templates/orders/listing.php:
|
1262 |
msgid "Processing"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: includes/admin/setup-wizard.php:
|
1266 |
msgid "On-hold"
|
1267 |
msgstr ""
|
1268 |
|
1269 |
-
#: includes/admin/setup-wizard.php:
|
1270 |
msgid "Order status for which vendor can make a withdraw request."
|
1271 |
msgstr ""
|
1272 |
|
1273 |
-
#: includes/admin/setup-wizard.php:
|
1274 |
msgid "Your Marketplace is Ready!"
|
1275 |
msgstr ""
|
1276 |
|
1277 |
-
#: includes/admin/setup-wizard.php:
|
1278 |
msgid "Next Steps"
|
1279 |
msgstr ""
|
1280 |
|
1281 |
-
#: includes/admin/setup-wizard.php:
|
1282 |
msgid "Setup your dokan!"
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: includes/admin/setup-wizard.php:
|
1286 |
msgid "Learn More"
|
1287 |
msgstr ""
|
1288 |
|
@@ -1425,99 +1515,105 @@ msgstr ""
|
|
1425 |
msgid "Approved"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
-
#: includes/admin/views/withdraw.php:24 includes/order-functions.php:
|
1429 |
#: templates/dashboard/orders-widget.php:41
|
1430 |
msgid "Cancelled"
|
1431 |
msgstr ""
|
1432 |
|
1433 |
-
#: includes/admin-functions.php:
|
1434 |
-
#: templates/
|
1435 |
-
#: templates/orders/listing.php:37 templates/products/products-listing.php:59
|
1436 |
-
#: templates/products/products-listing.php:125 templates/sub-orders.php:27
|
1437 |
-
#: templates/withdraw/pending-request-listing.php:18
|
1438 |
-
msgid "Status"
|
1439 |
-
msgstr ""
|
1440 |
-
|
1441 |
-
#: includes/admin-functions.php:43
|
1442 |
-
#: templates/dashboard/big-counter-widget.php:32 templates/my-orders.php:27
|
1443 |
#: templates/orders/details.php:21 templates/orders/listing.php:17
|
1444 |
-
#: templates/orders/listing.php:
|
1445 |
msgid "Order"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
-
#: includes/admin-functions.php:
|
1449 |
-
|
|
|
|
|
|
|
|
|
|
|
1450 |
msgstr ""
|
1451 |
|
1452 |
-
#: includes/admin-functions.php:
|
1453 |
-
msgid "
|
1454 |
msgstr ""
|
1455 |
|
1456 |
-
#: includes/admin-functions.php:47
|
1457 |
-
msgid "
|
1458 |
-
msgstr ""
|
1459 |
-
|
1460 |
-
#: includes/admin-functions.php:48 templates/orders/details.php:242
|
1461 |
-
msgid "Order Notes"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
-
#: includes/admin-functions.php:
|
|
|
1465 |
#: templates/dashboard/products-widget.php:26 templates/my-orders.php:30
|
1466 |
#: templates/orders/order-fee-html.php:17 templates/sub-orders.php:28
|
1467 |
msgid "Total"
|
1468 |
msgstr ""
|
1469 |
|
1470 |
-
#: includes/admin-functions.php:
|
1471 |
msgid "Actions"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: includes/admin-functions.php:
|
1475 |
msgid "Sub Order"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: includes/admin-functions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1479 |
msgid "Sub Order of"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: includes/admin-functions.php:
|
1483 |
msgid "Show Sub-Orders"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#: includes/admin-functions.php:
|
1487 |
msgid "Hide Sub-Orders"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#: includes/admin-functions.php:
|
1491 |
msgid "Toggle Sub-orders"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: includes/admin-functions.php:
|
1495 |
msgid "Total Sales"
|
1496 |
msgstr ""
|
1497 |
|
1498 |
-
#: includes/admin-functions.php:
|
1499 |
msgid "Total: "
|
1500 |
msgstr ""
|
1501 |
|
1502 |
-
#: includes/admin-functions.php:
|
1503 |
-
#: includes/reports.php:
|
1504 |
msgid "Number of orders"
|
1505 |
msgstr ""
|
1506 |
|
1507 |
-
#: includes/admin-functions.php:
|
1508 |
-
#: includes/reports.php:
|
1509 |
msgid "sales"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
-
#: includes/admin-functions.php:
|
1513 |
msgid "Commision"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
-
#: includes/admin-functions.php:
|
1517 |
msgid "Commision: "
|
1518 |
msgstr ""
|
1519 |
|
1520 |
-
#: includes/class-core.php:
|
1521 |
msgid "Page %s"
|
1522 |
msgstr ""
|
1523 |
|
@@ -1557,218 +1653,210 @@ msgstr ""
|
|
1557 |
msgid "[%s] Your product has been approved!"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
-
#: includes/class-scripts.php:
|
1561 |
-
msgid "Available"
|
1562 |
-
msgstr ""
|
1563 |
-
|
1564 |
-
#: includes/class-scripts.php:109
|
1565 |
-
msgid "Not Available"
|
1566 |
-
msgstr ""
|
1567 |
-
|
1568 |
-
#: includes/class-scripts.php:111
|
1569 |
msgid "Are you sure?"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
-
#: includes/class-scripts.php:
|
1573 |
msgid "Something went wrong. Please try again."
|
1574 |
msgstr ""
|
1575 |
|
1576 |
-
#: includes/class-scripts.php:
|
1577 |
msgid "This field is required"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: includes/class-scripts.php:
|
1581 |
msgid "Please fix this field."
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#: includes/class-scripts.php:
|
1585 |
msgid "Please enter a valid email address."
|
1586 |
msgstr ""
|
1587 |
|
1588 |
-
#: includes/class-scripts.php:
|
1589 |
msgid "Please enter a valid URL."
|
1590 |
msgstr ""
|
1591 |
|
1592 |
-
#: includes/class-scripts.php:
|
1593 |
msgid "Please enter a valid date."
|
1594 |
msgstr ""
|
1595 |
|
1596 |
-
#: includes/class-scripts.php:
|
1597 |
msgid "Please enter a valid date (ISO)."
|
1598 |
msgstr ""
|
1599 |
|
1600 |
-
#: includes/class-scripts.php:
|
1601 |
msgid "Please enter a valid number."
|
1602 |
msgstr ""
|
1603 |
|
1604 |
-
#: includes/class-scripts.php:
|
1605 |
msgid "Please enter only digits."
|
1606 |
msgstr ""
|
1607 |
|
1608 |
-
#: includes/class-scripts.php:
|
1609 |
msgid "Please enter a valid credit card number."
|
1610 |
msgstr ""
|
1611 |
|
1612 |
-
#: includes/class-scripts.php:
|
1613 |
msgid "Please enter the same value again."
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#: includes/class-scripts.php:
|
1617 |
msgid "Please enter no more than {0} characters."
|
1618 |
msgstr ""
|
1619 |
|
1620 |
-
#: includes/class-scripts.php:
|
1621 |
msgid "Please enter at least {0} characters."
|
1622 |
msgstr ""
|
1623 |
|
1624 |
-
#: includes/class-scripts.php:
|
1625 |
msgid "Please enter a value between {0} and {1} characters long."
|
1626 |
msgstr ""
|
1627 |
|
1628 |
-
#: includes/class-scripts.php:
|
1629 |
msgid "Please enter a value between {0} and {1}."
|
1630 |
msgstr ""
|
1631 |
|
1632 |
-
#: includes/class-scripts.php:
|
1633 |
msgid "Please enter a value less than or equal to {0}."
|
1634 |
msgstr ""
|
1635 |
|
1636 |
-
#: includes/class-scripts.php:
|
1637 |
msgid "Please enter a value greater than or equal to {0}."
|
1638 |
msgstr ""
|
1639 |
|
1640 |
-
#: includes/class-scripts.php:
|
1641 |
msgid "Upload featured image"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
-
#: includes/class-scripts.php:
|
1645 |
msgid "Choose a file"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
-
#: includes/class-scripts.php:
|
1649 |
msgid "Add Images to Product Gallery"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
-
#: includes/class-scripts.php:
|
1653 |
msgid "Set featured image"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
-
#: includes/class-scripts.php:
|
1657 |
#: includes/woo-views/html-product-download.php:17
|
1658 |
#: includes/woo-views/html-product-download.php:32
|
1659 |
msgid "Insert file URL"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
-
#: includes/class-scripts.php:
|
1663 |
msgid "Add to gallery"
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: includes/class-scripts.php:
|
1667 |
msgid "Sorry, this attribute option already exists, Try a different one."
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: includes/class-scripts.php:
|
1671 |
msgid ""
|
1672 |
"Warning! This product will not have any variations if this option is not "
|
1673 |
"checked."
|
1674 |
msgstr ""
|
1675 |
|
1676 |
-
#: includes/class-scripts.php:
|
1677 |
msgid "Enter a name for the new attribute term:"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
-
#: includes/class-scripts.php:
|
1681 |
msgid "Remove this attribute?"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
-
#: includes/class-scripts.php:
|
1685 |
msgid ""
|
1686 |
"Are you sure you want to link all variations? This will create a new "
|
1687 |
"variation for each and every possible combination of variation attributes "
|
1688 |
"(max %d per run)."
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: includes/class-scripts.php:
|
1692 |
msgid "Enter a value"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: includes/class-scripts.php:
|
1696 |
msgid "Variation menu order (determines position in the list of variations)"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: includes/class-scripts.php:
|
1700 |
msgid "Enter a value (fixed or %)"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: includes/class-scripts.php:
|
1704 |
msgid "Are you sure you want to delete all variations? This cannot be undone."
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: includes/class-scripts.php:
|
1708 |
msgid "Last warning, are you sure?"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: includes/class-scripts.php:
|
1712 |
msgid "Choose an image"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: includes/class-scripts.php:
|
1716 |
msgid "Set variation image"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: includes/class-scripts.php:
|
1720 |
msgid "variation added"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: includes/class-scripts.php:
|
1724 |
msgid "variations added"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: includes/class-scripts.php:
|
1728 |
msgid "No variations added"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: includes/class-scripts.php:
|
1732 |
msgid "Are you sure you want to remove this variation?"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: includes/class-scripts.php:
|
1736 |
msgid "Sale start date (YYYY-MM-DD format or leave blank)"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: includes/class-scripts.php:
|
1740 |
msgid "Sale end date (YYYY-MM-DD format or leave blank)"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: includes/class-scripts.php:
|
1744 |
msgid "Save changes before changing page?"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: includes/class-scripts.php:
|
1748 |
msgid "%qty% variation"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: includes/class-scripts.php:
|
1752 |
msgid "%qty% variations"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: includes/class-scripts.php:
|
1756 |
msgid "No Result Found"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: includes/class-scripts.php:
|
1760 |
msgid "Select and Crop"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: includes/class-scripts.php:
|
1764 |
msgid "Choose Image"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: includes/class-scripts.php:
|
1768 |
msgid "Product title is required"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: includes/class-scripts.php:
|
1772 |
msgid "Product category is required"
|
1773 |
msgstr ""
|
1774 |
|
@@ -2028,177 +2116,177 @@ msgstr ""
|
|
2028 |
msgid "Withdrawal request for {amount} is cancelled"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
-
#: includes/functions.php:
|
2032 |
msgid "Online"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: includes/functions.php:
|
2036 |
msgid "Draft"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
-
#: includes/functions.php:
|
2040 |
msgid "Pending Review"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
-
#: includes/functions.php:
|
2044 |
msgid "Simple Product"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
-
#: includes/functions.php:
|
2048 |
msgid "Variable Product"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
-
#: includes/functions.php:
|
2052 |
msgid "Grouped Product"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
-
#: includes/functions.php:
|
2056 |
msgid "Scheduled Product"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: includes/functions.php:
|
2060 |
msgid "Author"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: includes/functions.php:
|
2064 |
#: templates/dashboard/products-widget.php:16
|
2065 |
msgid "Products"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
-
#: includes/functions.php:
|
2069 |
msgid "Account Name: %s"
|
2070 |
msgstr ""
|
2071 |
|
2072 |
-
#: includes/functions.php:
|
2073 |
msgid "Account Number: %s"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
-
#: includes/functions.php:
|
2077 |
msgid "Bank Name: %s"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
-
#: includes/functions.php:
|
2081 |
msgid "Address: %s"
|
2082 |
msgstr ""
|
2083 |
|
2084 |
-
#: includes/functions.php:
|
2085 |
msgid "Routing Number: %s"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
-
#: includes/functions.php:
|
2089 |
msgid "IBAN: %s"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
-
#: includes/functions.php:
|
2093 |
msgid "SWIFT: %s"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
-
#: includes/functions.php:
|
2097 |
msgid "- Select a location -"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
-
#: includes/functions.php:
|
2101 |
msgid "Everywhere Else"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
-
#: includes/functions.php:
|
2105 |
msgid "- Select a State -"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
-
#: includes/functions.php:
|
2109 |
msgid "Ready to ship in..."
|
2110 |
msgstr ""
|
2111 |
|
2112 |
-
#: includes/functions.php:
|
2113 |
msgid "1 business day"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: includes/functions.php:
|
2117 |
msgid "1-2 business day"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: includes/functions.php:
|
2121 |
msgid "1-3 business day"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
-
#: includes/functions.php:
|
2125 |
msgid "3-5 business day"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
-
#: includes/functions.php:
|
2129 |
msgid "1-2 weeks"
|
2130 |
msgstr ""
|
2131 |
|
2132 |
-
#: includes/functions.php:
|
2133 |
msgid "2-3 weeks"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: includes/functions.php:
|
2137 |
msgid "3-4 weeks"
|
2138 |
msgstr ""
|
2139 |
|
2140 |
-
#: includes/functions.php:
|
2141 |
msgid "4-6 weeks"
|
2142 |
msgstr ""
|
2143 |
|
2144 |
-
#: includes/functions.php:
|
2145 |
msgid "6-8 weeks"
|
2146 |
msgstr ""
|
2147 |
|
2148 |
-
#: includes/functions.php:
|
2149 |
msgid "All dates"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
-
#: includes/functions.php:
|
2153 |
#. translators: 1: month name, 2: 4-digit year
|
2154 |
msgid "%1$s %2$d"
|
2155 |
msgstr ""
|
2156 |
|
2157 |
-
#: includes/functions.php:
|
2158 |
msgid "Google Plus"
|
2159 |
msgstr ""
|
2160 |
|
2161 |
-
#: includes/functions.php:
|
2162 |
msgid "Twitter"
|
2163 |
msgstr ""
|
2164 |
|
2165 |
-
#: includes/functions.php:
|
2166 |
msgid "Pinterest"
|
2167 |
msgstr ""
|
2168 |
|
2169 |
-
#: includes/functions.php:
|
2170 |
msgid "LinkedIn"
|
2171 |
msgstr ""
|
2172 |
|
2173 |
-
#: includes/functions.php:
|
2174 |
msgid "Youtube"
|
2175 |
msgstr ""
|
2176 |
|
2177 |
-
#: includes/functions.php:
|
2178 |
msgid "Instagram"
|
2179 |
msgstr ""
|
2180 |
|
2181 |
-
#: includes/functions.php:
|
2182 |
msgid "Flickr"
|
2183 |
msgstr ""
|
2184 |
|
2185 |
-
#: includes/functions.php:
|
2186 |
msgid "Dokan Store Sidebar"
|
2187 |
msgstr ""
|
2188 |
|
2189 |
-
#: includes/order-functions.php:
|
2190 |
msgid "Mark parent order completed when all child orders are completed."
|
2191 |
msgstr ""
|
2192 |
|
2193 |
-
#: includes/order-functions.php:
|
2194 |
msgid "Pending Payment"
|
2195 |
msgstr ""
|
2196 |
|
2197 |
-
#: includes/order-functions.php:
|
2198 |
msgid "Refunded"
|
2199 |
msgstr ""
|
2200 |
|
2201 |
-
#: includes/order-functions.php:
|
2202 |
msgid "Failed"
|
2203 |
msgstr ""
|
2204 |
|
@@ -2274,8 +2362,8 @@ msgid "Toggle "Manage stock""
|
|
2274 |
msgstr ""
|
2275 |
|
2276 |
#: includes/product-functions.php:217
|
2277 |
-
#: templates/products/products-listing.php:
|
2278 |
-
#: templates/products/products-listing.php:
|
2279 |
msgid "Stock"
|
2280 |
msgstr ""
|
2281 |
|
@@ -2339,7 +2427,7 @@ msgstr[1] ""
|
|
2339 |
msgid "Expand"
|
2340 |
msgstr ""
|
2341 |
|
2342 |
-
#: includes/product-functions.php:302 templates/orders/details.php:
|
2343 |
msgid "Close"
|
2344 |
msgstr ""
|
2345 |
|
@@ -2384,7 +2472,20 @@ msgstr ""
|
|
2384 |
msgid "Hidden"
|
2385 |
msgstr ""
|
2386 |
|
2387 |
-
#: includes/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2388 |
msgid "Sales total"
|
2389 |
msgstr ""
|
2390 |
|
@@ -2429,32 +2530,32 @@ msgstr ""
|
|
2429 |
msgid "Refunded (%d)"
|
2430 |
msgstr ""
|
2431 |
|
2432 |
-
#: includes/template-tags.php:
|
2433 |
msgid "Orders"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: includes/template-tags.php:
|
2437 |
msgid "Settings <i class=\"fa fa-angle-right pull-right\"></i>"
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: includes/template-tags.php:
|
2441 |
msgid "Back to Dashboard"
|
2442 |
msgstr ""
|
2443 |
|
2444 |
-
#: includes/template-tags.php:
|
2445 |
#: templates/store-lists-loop.php:61
|
2446 |
msgid "Visit Store"
|
2447 |
msgstr ""
|
2448 |
|
2449 |
-
#: includes/template-tags.php:
|
2450 |
msgid "Edit Account"
|
2451 |
msgstr ""
|
2452 |
|
2453 |
-
#: includes/template-tags.php:
|
2454 |
msgid "Log out"
|
2455 |
msgstr ""
|
2456 |
|
2457 |
-
#: includes/wc-crud-functions.php:
|
2458 |
msgid "Order – %s"
|
2459 |
msgstr ""
|
2460 |
|
@@ -2462,77 +2563,63 @@ msgstr ""
|
|
2462 |
msgid "Product SKU must be unique."
|
2463 |
msgstr ""
|
2464 |
|
2465 |
-
#: includes/wc-functions.php:
|
2466 |
msgid "Cheating, eh?"
|
2467 |
msgstr ""
|
2468 |
|
2469 |
-
#: includes/wc-functions.php:
|
2470 |
msgid "Please enter your first name."
|
2471 |
msgstr ""
|
2472 |
|
2473 |
-
#: includes/wc-functions.php:
|
2474 |
msgid "Please enter your last name."
|
2475 |
msgstr ""
|
2476 |
|
2477 |
-
#: includes/wc-functions.php:
|
2478 |
msgid "Please enter your phone number."
|
2479 |
msgstr ""
|
2480 |
|
2481 |
-
#: includes/wc-functions.php:
|
2482 |
msgid "Your {site_title} order receipt from {order_date}"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
-
#: includes/wc-functions.php:
|
2486 |
msgid "Your {site_title} order from {order_date} is complete"
|
2487 |
msgstr ""
|
2488 |
|
2489 |
-
#: includes/wc-functions.php:
|
2490 |
-
#: templates/global/seller-registration-form.php:15
|
2491 |
-
msgid "First Name"
|
2492 |
-
msgstr ""
|
2493 |
-
|
2494 |
-
#: includes/wc-functions.php:914
|
2495 |
-
#: templates/global/seller-registration-form.php:20
|
2496 |
-
msgid "Last Name"
|
2497 |
-
msgstr ""
|
2498 |
-
|
2499 |
-
#: includes/wc-functions.php:915 templates/dashboard/edit-account.php:62
|
2500 |
-
msgid "Email address"
|
2501 |
-
msgstr ""
|
2502 |
-
|
2503 |
-
#: includes/wc-functions.php:920
|
2504 |
msgid "is a required field."
|
2505 |
msgstr ""
|
2506 |
|
2507 |
-
#: includes/wc-functions.php:
|
2508 |
msgid "Please provide a valid email address."
|
2509 |
msgstr ""
|
2510 |
|
2511 |
-
#: includes/wc-functions.php:
|
2512 |
msgid "This email address is already registered."
|
2513 |
msgstr ""
|
2514 |
|
2515 |
-
#: includes/wc-functions.php:
|
2516 |
msgid "Your current password is incorrect."
|
2517 |
msgstr ""
|
2518 |
|
2519 |
-
#: includes/wc-functions.php:
|
2520 |
msgid "Please fill out all password fields."
|
2521 |
msgstr ""
|
2522 |
|
2523 |
-
#: includes/wc-functions.php:
|
2524 |
msgid "Please enter your current password."
|
2525 |
msgstr ""
|
2526 |
|
2527 |
-
#: includes/wc-functions.php:
|
2528 |
msgid "Please re-enter your password."
|
2529 |
msgstr ""
|
2530 |
|
2531 |
-
#: includes/wc-functions.php:
|
2532 |
msgid "New passwords do not match."
|
2533 |
msgstr ""
|
2534 |
|
2535 |
-
#: includes/wc-functions.php:
|
2536 |
msgid "Account details changed successfully."
|
2537 |
msgstr ""
|
2538 |
|
@@ -2545,8 +2632,8 @@ msgid "Best Selling Product"
|
|
2545 |
msgstr ""
|
2546 |
|
2547 |
#: includes/widgets/bestselling-product.php:62
|
2548 |
-
#: includes/widgets/menu-category.php:176 includes/widgets/store-contact.php:
|
2549 |
-
#: includes/widgets/store-location.php:94 includes/widgets/store-menu.php:
|
2550 |
#: includes/widgets/top-rated-product.php:61
|
2551 |
msgid "Title:"
|
2552 |
msgstr ""
|
@@ -2577,8 +2664,8 @@ msgstr ""
|
|
2577 |
msgid "Dokan: Store Contact Form"
|
2578 |
msgstr ""
|
2579 |
|
2580 |
-
#: includes/widgets/store-contact.php:
|
2581 |
-
#: templates/store.php:
|
2582 |
msgid "Contact Vendor"
|
2583 |
msgstr ""
|
2584 |
|
@@ -2591,7 +2678,7 @@ msgid "Dokan: Store Location"
|
|
2591 |
msgstr ""
|
2592 |
|
2593 |
#: includes/widgets/store-location.php:88 templates/store-toc.php:33
|
2594 |
-
#: templates/store.php:
|
2595 |
msgid "Store Location"
|
2596 |
msgstr ""
|
2597 |
|
@@ -2603,7 +2690,7 @@ msgstr ""
|
|
2603 |
msgid "Dokan: Store Category Menu"
|
2604 |
msgstr ""
|
2605 |
|
2606 |
-
#: includes/widgets/store-menu.php:
|
2607 |
#: templates/products/new-product-single.php:261
|
2608 |
#: templates/products/new-product-single.php:292
|
2609 |
msgid "Category"
|
@@ -2629,35 +2716,35 @@ msgstr ""
|
|
2629 |
msgid "Bank Transfer"
|
2630 |
msgstr ""
|
2631 |
|
2632 |
-
#: includes/withdraw-functions.php:
|
2633 |
msgid "E-mail"
|
2634 |
msgstr ""
|
2635 |
|
2636 |
-
#: includes/withdraw-functions.php:
|
2637 |
msgid "Your bank account name"
|
2638 |
msgstr ""
|
2639 |
|
2640 |
-
#: includes/withdraw-functions.php:
|
2641 |
msgid "Your bank account number"
|
2642 |
msgstr ""
|
2643 |
|
2644 |
-
#: includes/withdraw-functions.php:
|
2645 |
msgid "Name of bank"
|
2646 |
msgstr ""
|
2647 |
|
2648 |
-
#: includes/withdraw-functions.php:
|
2649 |
msgid "Address of your bank"
|
2650 |
msgstr ""
|
2651 |
|
2652 |
-
#: includes/withdraw-functions.php:
|
2653 |
msgid "Routing number"
|
2654 |
msgstr ""
|
2655 |
|
2656 |
-
#: includes/withdraw-functions.php:
|
2657 |
msgid "IBAN"
|
2658 |
msgstr ""
|
2659 |
|
2660 |
-
#: includes/withdraw-functions.php:
|
2661 |
msgid "Swift code"
|
2662 |
msgstr ""
|
2663 |
|
@@ -2735,18 +2822,6 @@ msgstr ""
|
|
2735 |
msgid "Canel"
|
2736 |
msgstr ""
|
2737 |
|
2738 |
-
#: lib/class-weforms-upsell.php:77
|
2739 |
-
msgid "Install Now"
|
2740 |
-
msgstr ""
|
2741 |
-
|
2742 |
-
#: lib/class-weforms-upsell.php:80 lib/class-weforms-upsell.php:81
|
2743 |
-
msgid "Dismiss this notice."
|
2744 |
-
msgstr ""
|
2745 |
-
|
2746 |
-
#: lib/class-weforms-upsell.php:353
|
2747 |
-
msgid "You don't have permission to install the plugins"
|
2748 |
-
msgstr ""
|
2749 |
-
|
2750 |
#: lib/class.dokan-settings-api.php:31
|
2751 |
msgid "Active"
|
2752 |
msgstr ""
|
@@ -2759,17 +2834,17 @@ msgstr ""
|
|
2759 |
msgid "Choose File"
|
2760 |
msgstr ""
|
2761 |
|
2762 |
-
#: templates/dashboard/big-counter-widget.php:
|
2763 |
msgid "Sales"
|
2764 |
msgstr ""
|
2765 |
|
2766 |
-
#: templates/dashboard/big-counter-widget.php:
|
2767 |
-
#: templates/products/products-listing.php:
|
2768 |
-
#: templates/products/products-listing.php:
|
2769 |
msgid "Earning"
|
2770 |
msgstr ""
|
2771 |
|
2772 |
-
#: templates/dashboard/big-counter-widget.php:
|
2773 |
msgid "Pageview"
|
2774 |
msgstr ""
|
2775 |
|
@@ -3054,20 +3129,6 @@ msgstr ""
|
|
3054 |
msgid "Address:"
|
3055 |
msgstr ""
|
3056 |
|
3057 |
-
#: templates/global/seller-registration-form.php:26
|
3058 |
-
msgid "Shop Name"
|
3059 |
-
msgstr ""
|
3060 |
-
|
3061 |
-
#: templates/global/seller-registration-form.php:31
|
3062 |
-
msgid "Shop URL"
|
3063 |
-
msgstr ""
|
3064 |
-
|
3065 |
-
#: templates/global/seller-registration-form.php:52
|
3066 |
-
msgid ""
|
3067 |
-
"I have read and agree to the <a target=\"_blank\" href=\"%s\">Terms & "
|
3068 |
-
"Conditions</a>."
|
3069 |
-
msgstr ""
|
3070 |
-
|
3071 |
#: templates/global/seller-registration-form.php:65
|
3072 |
msgid "I am a customer"
|
3073 |
msgstr ""
|
@@ -3104,11 +3165,6 @@ msgstr ""
|
|
3104 |
msgid "Pay"
|
3105 |
msgstr ""
|
3106 |
|
3107 |
-
#: templates/my-orders.php:88 templates/orders/listing.php:115
|
3108 |
-
#: templates/products/products-listing.php:121 templates/sub-orders.php:59
|
3109 |
-
msgid "View"
|
3110 |
-
msgstr ""
|
3111 |
-
|
3112 |
#: templates/my-orders.php:106
|
3113 |
msgid "No orders found!"
|
3114 |
msgstr ""
|
@@ -3121,11 +3177,11 @@ msgstr ""
|
|
3121 |
msgid "Filter"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: templates/orders/date-export.php:
|
3125 |
msgid "Export All"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: templates/orders/date-export.php:
|
3129 |
msgid "Export Filtered"
|
3130 |
msgstr ""
|
3131 |
|
@@ -3165,67 +3221,67 @@ msgstr ""
|
|
3165 |
msgid " Edit"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
-
#: templates/orders/details.php:
|
3169 |
msgid "Update"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
-
#: templates/orders/details.php:
|
3173 |
msgid "Order Date:"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#: templates/orders/details.php:
|
3177 |
msgid "Customer:"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: templates/orders/details.php:
|
3181 |
msgid "Email:"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: templates/orders/details.php:
|
3185 |
msgid "Phone:"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
-
#: templates/orders/details.php:
|
3189 |
msgid "Customer IP:"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: templates/orders/details.php:
|
3193 |
msgid "Customer Note:"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: templates/orders/details.php:
|
3197 |
msgid "added %s ago"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: templates/orders/details.php:
|
3201 |
msgid "There are no notes for this order yet."
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: templates/orders/details.php:
|
3205 |
msgid "Customer note"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: templates/orders/details.php:
|
3209 |
msgid "Private note"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: templates/orders/details.php:
|
3213 |
msgid "Add Note"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: templates/orders/details.php:
|
3217 |
msgid "Tracking Number"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: templates/orders/details.php:
|
3221 |
msgid "Shipping Provider Name / URL"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: templates/orders/details.php:
|
3225 |
msgid "Date Shipped"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: templates/orders/details.php:
|
3229 |
#: templates/products/new-product-single.php:246
|
3230 |
#: templates/products/new-product-single.php:253
|
3231 |
#: templates/products/new-product.php:173
|
@@ -3235,7 +3291,7 @@ msgstr ""
|
|
3235 |
msgid "YYYY-MM-DD"
|
3236 |
msgstr ""
|
3237 |
|
3238 |
-
#: templates/orders/details.php:
|
3239 |
msgid "Add Tracking Details"
|
3240 |
msgstr ""
|
3241 |
|
@@ -3247,44 +3303,44 @@ msgstr ""
|
|
3247 |
msgid "Grant Access"
|
3248 |
msgstr ""
|
3249 |
|
3250 |
-
#: templates/orders/listing.php:20 templates/orders/listing.php:
|
3251 |
msgid "Customer"
|
3252 |
msgstr ""
|
3253 |
|
3254 |
-
#: templates/orders/listing.php:
|
3255 |
#: templates/products/new-product-single.php:530
|
3256 |
msgid "Action"
|
3257 |
msgstr ""
|
3258 |
|
3259 |
-
#: templates/orders/listing.php:
|
3260 |
msgid "Order %s"
|
3261 |
msgstr ""
|
3262 |
|
3263 |
-
#: templates/orders/listing.php:
|
3264 |
msgid "Guest"
|
3265 |
msgstr ""
|
3266 |
|
3267 |
-
#: templates/orders/listing.php:
|
3268 |
msgid "Unpublished"
|
3269 |
msgstr ""
|
3270 |
|
3271 |
-
#: templates/orders/listing.php:
|
3272 |
msgid "Y/m/d g:i:s A"
|
3273 |
msgstr ""
|
3274 |
|
3275 |
-
#: templates/orders/listing.php:
|
3276 |
msgid "%s ago"
|
3277 |
msgstr ""
|
3278 |
|
3279 |
-
#: templates/orders/listing.php:
|
3280 |
msgid "Y/m/d"
|
3281 |
msgstr ""
|
3282 |
|
3283 |
-
#: templates/orders/listing.php:
|
3284 |
msgid "Complete"
|
3285 |
msgstr ""
|
3286 |
|
3287 |
-
#: templates/orders/listing.php:
|
3288 |
msgid "No orders found"
|
3289 |
msgstr ""
|
3290 |
|
@@ -3361,7 +3417,7 @@ msgstr ""
|
|
3361 |
msgid "Access Denied, No product found"
|
3362 |
msgstr ""
|
3363 |
|
3364 |
-
#: templates/products/new-product-single.php:
|
3365 |
msgid "Access Denied"
|
3366 |
msgstr ""
|
3367 |
|
@@ -3411,7 +3467,7 @@ msgid ""
|
|
3411 |
msgstr ""
|
3412 |
|
3413 |
#: templates/products/new-product-single.php:196
|
3414 |
-
#: templates/products/products-listing.php:
|
3415 |
msgid "Downloadable"
|
3416 |
msgstr ""
|
3417 |
|
@@ -3420,7 +3476,7 @@ msgid "Downloadable products give access to a file upon purchase."
|
|
3420 |
msgstr ""
|
3421 |
|
3422 |
#: templates/products/new-product-single.php:201
|
3423 |
-
#: templates/products/products-listing.php:
|
3424 |
msgid "Virtual"
|
3425 |
msgstr ""
|
3426 |
|
@@ -3430,8 +3486,8 @@ msgstr ""
|
|
3430 |
|
3431 |
#: templates/products/new-product-single.php:213
|
3432 |
#: templates/products/new-product.php:147
|
3433 |
-
#: templates/products/products-listing.php:
|
3434 |
-
#: templates/products/products-listing.php:
|
3435 |
#: templates/products/tmpl-add-product-popup.php:49
|
3436 |
msgid "Price"
|
3437 |
msgstr ""
|
@@ -3524,8 +3580,8 @@ msgid "Manage inventory for this product."
|
|
3524 |
msgstr ""
|
3525 |
|
3526 |
#: templates/products/new-product-single.php:438
|
3527 |
-
#: templates/products/products-listing.php:
|
3528 |
-
#: templates/products/products-listing.php:
|
3529 |
msgid "SKU"
|
3530 |
msgstr ""
|
3531 |
|
@@ -3582,8 +3638,8 @@ msgid "Add File"
|
|
3582 |
msgstr ""
|
3583 |
|
3584 |
#: templates/products/new-product-single.php:528
|
3585 |
-
#: templates/products/products-listing.php:
|
3586 |
-
#: templates/products/products-listing.php:
|
3587 |
msgid "Name"
|
3588 |
msgstr ""
|
3589 |
|
@@ -3669,82 +3725,74 @@ msgstr ""
|
|
3669 |
msgid "Create Product"
|
3670 |
msgstr ""
|
3671 |
|
3672 |
-
#: templates/products/products-listing.php:
|
3673 |
msgid "Add new product"
|
3674 |
msgstr ""
|
3675 |
|
3676 |
-
#: templates/products/products-listing.php:
|
3677 |
-
#: templates/products/products-listing.php:
|
3678 |
msgid "Image"
|
3679 |
msgstr ""
|
3680 |
|
3681 |
-
#: templates/products/products-listing.php:
|
3682 |
-
#: templates/products/products-listing.php:
|
3683 |
msgid "Type"
|
3684 |
msgstr ""
|
3685 |
|
3686 |
-
#: templates/products/products-listing.php:
|
3687 |
-
#: templates/products/products-listing.php:
|
3688 |
msgid "Views"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
-
#: templates/products/products-listing.php:
|
3692 |
-
msgid "Edit"
|
3693 |
-
msgstr ""
|
3694 |
-
|
3695 |
-
#: templates/products/products-listing.php:120
|
3696 |
-
msgid "Delete Permanently"
|
3697 |
-
msgstr ""
|
3698 |
-
|
3699 |
-
#: templates/products/products-listing.php:140
|
3700 |
msgid "In stock"
|
3701 |
msgstr ""
|
3702 |
|
3703 |
-
#: templates/products/products-listing.php:
|
3704 |
msgid "Out of stock"
|
3705 |
msgstr ""
|
3706 |
|
3707 |
-
#: templates/products/products-listing.php:
|
3708 |
msgid "Grouped"
|
3709 |
msgstr ""
|
3710 |
|
3711 |
-
#: templates/products/products-listing.php:
|
3712 |
msgid "External/Affiliate"
|
3713 |
msgstr ""
|
3714 |
|
3715 |
-
#: templates/products/products-listing.php:
|
3716 |
msgid "Simple"
|
3717 |
msgstr ""
|
3718 |
|
3719 |
-
#: templates/products/products-listing.php:
|
3720 |
msgid "Variable"
|
3721 |
msgstr ""
|
3722 |
|
3723 |
-
#: templates/products/products-listing.php:
|
3724 |
msgid "Published"
|
3725 |
msgstr ""
|
3726 |
|
3727 |
-
#: templates/products/products-listing.php:
|
3728 |
msgid "Missed schedule"
|
3729 |
msgstr ""
|
3730 |
|
3731 |
-
#: templates/products/products-listing.php:
|
3732 |
msgid "Scheduled"
|
3733 |
msgstr ""
|
3734 |
|
3735 |
-
#: templates/products/products-listing.php:
|
3736 |
msgid "Last Modified"
|
3737 |
msgstr ""
|
3738 |
|
3739 |
-
#: templates/products/products-listing.php:
|
3740 |
msgid "No product found"
|
3741 |
msgstr ""
|
3742 |
|
3743 |
-
#: templates/products/products-listing.php:
|
3744 |
msgid "« Previous"
|
3745 |
msgstr ""
|
3746 |
|
3747 |
-
#: templates/products/products-listing.php:
|
3748 |
msgid "Next »"
|
3749 |
msgstr ""
|
3750 |
|
@@ -3796,63 +3844,63 @@ msgstr ""
|
|
3796 |
msgid "State "
|
3797 |
msgstr ""
|
3798 |
|
3799 |
-
#: templates/settings/payment.php:39 templates/settings/store-form.php:
|
3800 |
msgid "Update Settings"
|
3801 |
msgstr ""
|
3802 |
|
3803 |
-
#: templates/settings/store-form.php:
|
3804 |
msgid "Upload a banner for your store. Banner size is (%sx%s) pixels."
|
3805 |
msgstr ""
|
3806 |
|
3807 |
-
#: templates/settings/store-form.php:
|
3808 |
msgid "Profile Picture"
|
3809 |
msgstr ""
|
3810 |
|
3811 |
-
#: templates/settings/store-form.php:
|
3812 |
msgid "Upload Photo"
|
3813 |
msgstr ""
|
3814 |
|
3815 |
-
#: templates/settings/store-form.php:
|
3816 |
msgid "Store Name"
|
3817 |
msgstr ""
|
3818 |
|
3819 |
-
#: templates/settings/store-form.php:
|
3820 |
msgid "store name"
|
3821 |
msgstr ""
|
3822 |
|
3823 |
-
#: templates/settings/store-form.php:
|
3824 |
msgid "Phone No"
|
3825 |
msgstr ""
|
3826 |
|
3827 |
-
#: templates/settings/store-form.php:
|
3828 |
msgid "+123456.."
|
3829 |
msgstr ""
|
3830 |
|
3831 |
-
#: templates/settings/store-form.php:
|
3832 |
msgid "More product"
|
3833 |
msgstr ""
|
3834 |
|
3835 |
-
#: templates/settings/store-form.php:
|
3836 |
msgid "Enable tab on product single page view"
|
3837 |
msgstr ""
|
3838 |
|
3839 |
-
#: templates/settings/store-form.php:
|
3840 |
msgid "Map"
|
3841 |
msgstr ""
|
3842 |
|
3843 |
-
#: templates/settings/store-form.php:
|
3844 |
msgid "Type an address to find"
|
3845 |
msgstr ""
|
3846 |
|
3847 |
-
#: templates/settings/store-form.php:
|
3848 |
msgid "Find Address"
|
3849 |
msgstr ""
|
3850 |
|
3851 |
-
#: templates/settings/store-form.php:
|
3852 |
msgid "Show terms and conditions in store page"
|
3853 |
msgstr ""
|
3854 |
|
3855 |
-
#: templates/settings/store-form.php:
|
3856 |
msgid "TOC Details"
|
3857 |
msgstr ""
|
3858 |
|
@@ -3880,7 +3928,7 @@ msgstr ""
|
|
3880 |
msgid "Search seller …"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
-
#: templates/store-toc.php:31 templates/store.php:
|
3884 |
msgid "Store Category"
|
3885 |
msgstr ""
|
3886 |
|
@@ -3888,7 +3936,7 @@ msgstr ""
|
|
3888 |
msgid "Terms And Conditions"
|
3889 |
msgstr ""
|
3890 |
|
3891 |
-
#: templates/store.php:
|
3892 |
msgid "No products were found of this vendor!"
|
3893 |
msgstr ""
|
3894 |
|
@@ -3927,18 +3975,28 @@ msgstr ""
|
|
3927 |
msgid "No products found"
|
3928 |
msgstr ""
|
3929 |
|
3930 |
-
#: templates/withdraw/request-form.php:
|
3931 |
msgid "Withdraw Amount"
|
3932 |
msgstr ""
|
3933 |
|
3934 |
-
#: templates/withdraw/request-form.php:
|
3935 |
msgid "Payment Method"
|
3936 |
msgstr ""
|
3937 |
|
3938 |
-
#: templates/withdraw/request-form.php:
|
3939 |
msgid "Submit Request"
|
3940 |
msgstr ""
|
3941 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3942 |
#: templates/withdraw/status-listing.php:12
|
3943 |
msgid "Withdraw Request"
|
3944 |
msgstr ""
|
@@ -4044,7 +4102,7 @@ msgctxt "Next post link"
|
|
4044 |
msgid "→"
|
4045 |
msgstr ""
|
4046 |
|
4047 |
-
#: includes/wc-crud-functions.php:
|
4048 |
msgctxt "Order date parsed by strftime"
|
4049 |
msgid "%b %d, %Y @ %I:%M %p"
|
4050 |
msgstr ""
|
1 |
+
# Copyright (C) 2018 weDevs
|
2 |
# This file is distributed under the GPL2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Dokan 2.7.8\n"
|
6 |
+
"Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
|
7 |
+
"POT-Creation-Date: 2018-03-05 06:38:16+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
|
14 |
+
"Language: en\n"
|
15 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
16 |
+
"X-Poedit-Country: United States\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"X-Poedit-KeywordsList: "
|
19 |
+
"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
|
20 |
+
"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
|
21 |
+
"X-Poedit-Basepath: ../\n"
|
22 |
+
"X-Poedit-SearchPath-0: .\n"
|
23 |
+
"X-Poedit-Bookmarks: \n"
|
24 |
+
"X-Textdomain-Support: yes\n"
|
25 |
+
"X-Generator: grunt-wp-i18n1.0.0\n"
|
26 |
|
27 |
#: templates/products/new-product-single.php:461
|
28 |
msgid "1"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: classes/admin-user-profile.php:35 classes/ajax.php:135
|
32 |
+
#: includes/class-scripts.php:115
|
33 |
+
msgid "Available"
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: classes/admin-user-profile.php:36 includes/class-scripts.php:116
|
37 |
+
msgid "Not Available"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: classes/admin-user-profile.php:83 classes/seller-setup-wizard.php:275
|
41 |
msgid "Country"
|
42 |
msgstr ""
|
43 |
|
44 |
+
#: classes/admin-user-profile.php:87
|
45 |
msgid "Select a country…"
|
46 |
msgstr ""
|
47 |
|
48 |
+
#: classes/admin-user-profile.php:90
|
49 |
msgid "State/County"
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: classes/admin-user-profile.php:91
|
53 |
msgid "State/County or state code"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: classes/admin-user-profile.php:96
|
57 |
msgid "Dokan Options"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: classes/admin-user-profile.php:101
|
61 |
msgid "Banner"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: classes/admin-user-profile.php:113 templates/settings/store-form.php:69
|
65 |
msgid "Upload banner"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: classes/admin-user-profile.php:114
|
69 |
msgid "(Upload a banner for your store. Banner size is (825x300) pixels. )"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: classes/admin-user-profile.php:121
|
73 |
msgid "Store name"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: classes/admin-user-profile.php:128
|
77 |
+
msgid "Store URL"
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: classes/admin-user-profile.php:136
|
81 |
msgid "Address 1"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: classes/admin-user-profile.php:143
|
85 |
msgid "Address 2"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: classes/admin-user-profile.php:150
|
89 |
msgid "Town/City"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: classes/admin-user-profile.php:157
|
93 |
msgid "Zip Code"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: classes/admin-user-profile.php:197 classes/pageviews.php:153
|
97 |
#: templates/global/seller-registration-form.php:38
|
98 |
msgid "Phone Number"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: classes/admin-user-profile.php:215
|
102 |
msgid "Payment Options : "
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: classes/admin-user-profile.php:220
|
106 |
msgid "Paypal Email "
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: classes/admin-user-profile.php:228
|
110 |
msgid "Skrill Email "
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: classes/admin-user-profile.php:237
|
114 |
msgid "Bank name "
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: classes/admin-user-profile.php:243
|
118 |
msgid "Account Name "
|
119 |
msgstr ""
|
120 |
|
121 |
+
#: classes/admin-user-profile.php:249
|
122 |
msgid "Account Number "
|
123 |
msgstr ""
|
124 |
|
125 |
+
#: classes/admin-user-profile.php:255
|
126 |
msgid "Bank Address "
|
127 |
msgstr ""
|
128 |
|
129 |
+
#: classes/admin-user-profile.php:261
|
130 |
msgid "Bank Swift "
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: classes/admin-user-profile.php:268 includes/admin/setup-wizard.php:88
|
134 |
msgid "Selling"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: classes/admin-user-profile.php:273
|
138 |
msgid "Enable Adding Products"
|
139 |
msgstr ""
|
140 |
|
141 |
+
#: classes/admin-user-profile.php:276
|
142 |
msgid "Enable or disable product adding capability"
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: classes/admin-user-profile.php:281
|
146 |
msgid "Publishing"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: classes/admin-user-profile.php:286
|
150 |
msgid "Publish product directly"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: classes/admin-user-profile.php:289
|
154 |
msgid "Bypass pending, publish products directly"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: classes/admin-user-profile.php:294
|
158 |
msgid "Admin Commission Type "
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: classes/admin-user-profile.php:297 includes/admin/class-settings.php:136
|
162 |
msgid "Percentage"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: classes/admin-user-profile.php:298 includes/admin/class-settings.php:135
|
166 |
msgid "Flat"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: classes/admin-user-profile.php:300
|
170 |
msgid "Set the commmission type admin gets from this seller"
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: classes/admin-user-profile.php:304
|
174 |
msgid "Admin Commission "
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: classes/admin-user-profile.php:308
|
178 |
msgid "It will override the default commission admin gets from each sales"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: classes/admin-user-profile.php:313
|
182 |
msgid "Featured vendor"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: classes/admin-user-profile.php:318
|
186 |
msgid "Mark as featured vendor"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: classes/admin-user-profile.php:321
|
190 |
msgid "This vendor will be marked as a featured vendor."
|
191 |
msgstr ""
|
192 |
|
193 |
+
#: classes/admin-withdraw.php:197
|
194 |
msgid "Requests Deleted!"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: classes/admin-withdraw.php:201
|
198 |
msgid "Requests Cancelled!"
|
199 |
msgstr ""
|
200 |
|
201 |
+
#: classes/admin-withdraw.php:205
|
202 |
msgid "Requests Approved!"
|
203 |
msgstr ""
|
204 |
|
205 |
+
#: classes/admin-withdraw.php:226 classes/admin-withdraw.php:240
|
206 |
msgid "User Name"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: classes/admin-withdraw.php:227 classes/admin-withdraw.php:241
|
210 |
#: templates/withdraw/approved-request-listing.php:14
|
211 |
#: templates/withdraw/cancelled-request-listing.php:14
|
212 |
#: templates/withdraw/pending-request-listing.php:14
|
213 |
msgid "Amount"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: classes/admin-withdraw.php:228 classes/admin-withdraw.php:242
|
217 |
#: templates/withdraw/approved-request-listing.php:15
|
218 |
#: templates/withdraw/cancelled-request-listing.php:15
|
219 |
#: templates/withdraw/pending-request-listing.php:15
|
220 |
msgid "Method"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: classes/admin-withdraw.php:229 classes/admin-withdraw.php:243
|
224 |
msgid "Method Details"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: classes/admin-withdraw.php:230 classes/admin-withdraw.php:244
|
228 |
#: templates/withdraw/cancelled-request-listing.php:17
|
229 |
msgid "Note"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: classes/admin-withdraw.php:231 classes/admin-withdraw.php:245
|
233 |
msgid "IP"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: classes/admin-withdraw.php:232 classes/admin-withdraw.php:246
|
237 |
+
#: includes/admin-functions.php:44 includes/admin-functions.php:60
|
238 |
+
#: templates/my-orders.php:28 templates/orders/listing.php:21
|
239 |
+
#: templates/orders/listing.php:73 templates/products/products-listing.php:72
|
240 |
+
#: templates/products/products-listing.php:218 templates/sub-orders.php:26
|
241 |
#: templates/withdraw/approved-request-listing.php:16
|
242 |
#: templates/withdraw/cancelled-request-listing.php:16
|
243 |
#: templates/withdraw/pending-request-listing.php:16
|
244 |
msgid "Date"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: classes/admin-withdraw.php:270 classes/admin-withdraw.php:280
|
248 |
msgid "Approve"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: classes/admin-withdraw.php:271 classes/admin-withdraw.php:275
|
252 |
#: includes/product-functions.php:297 templates/my-orders.php:83
|
253 |
+
#: templates/orders/details.php:188
|
254 |
#: templates/products/new-product-single.php:226
|
255 |
#: templates/products/new-product.php:159
|
256 |
#: templates/products/tmpl-add-product-popup.php:61
|
259 |
msgid "Cancel"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: classes/admin-withdraw.php:276 classes/admin-withdraw.php:281
|
263 |
#: includes/admin/views/withdraw.php:14
|
264 |
#: templates/dashboard/orders-widget.php:31
|
265 |
msgid "Pending"
|
266 |
msgstr ""
|
267 |
|
268 |
+
#: classes/admin-withdraw.php:286 classes/admin-withdraw.php:366
|
269 |
+
#: classes/ajax.php:448 includes/woo-views/html-product-download.php:18
|
270 |
#: includes/woo-views/html-product-download.php:38
|
271 |
msgid "Delete"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: classes/admin-withdraw.php:310 templates/orders/details.php:287
|
275 |
msgid "Add note"
|
276 |
msgstr ""
|
277 |
|
278 |
+
#: classes/admin-withdraw.php:317
|
279 |
msgid "Save"
|
280 |
msgstr ""
|
281 |
|
282 |
+
#: classes/admin-withdraw.php:318
|
283 |
msgid "cancel"
|
284 |
msgstr ""
|
285 |
|
286 |
+
#: classes/admin-withdraw.php:334
|
287 |
msgid "No results found"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: classes/admin-withdraw.php:346
|
291 |
msgid "Bulk Actions"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: classes/admin-withdraw.php:350 classes/admin-withdraw.php:360
|
295 |
msgid "Approve Requests"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: classes/admin-withdraw.php:351 classes/admin-withdraw.php:355
|
299 |
msgid "Mark as Cancelled"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: classes/admin-withdraw.php:356 classes/admin-withdraw.php:361
|
303 |
msgid "Mark Pending"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: classes/admin-withdraw.php:367
|
307 |
msgid "Download PayPal mass payment file"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: classes/admin-withdraw.php:375
|
311 |
msgid "Apply"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: classes/admin-withdraw.php:384
|
315 |
msgid "«"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: classes/admin-withdraw.php:385
|
319 |
msgid "»"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: classes/ajax.php:80 classes/template-withdraw.php:194
|
323 |
+
#: classes/template-withdraw.php:223
|
324 |
+
msgid "You have no permission to do this action"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: classes/ajax.php:100
|
328 |
+
msgid "Something wrong, please try again later"
|
329 |
msgstr ""
|
330 |
|
331 |
+
#: classes/ajax.php:113 classes/template-settings.php:215
|
332 |
+
#: classes/template-settings.php:226 classes/template-settings.php:235
|
333 |
+
#: classes/template-settings.php:245 classes/template-settings.php:279
|
334 |
+
#: classes/template-settings.php:342 classes/template-settings.php:381
|
335 |
+
#: classes/template-settings.php:428 classes/template-withdraw.php:190
|
336 |
+
#: classes/template-withdraw.php:219
|
337 |
msgid "Are you cheating?"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: classes/ajax.php:151 classes/ajax.php:185
|
341 |
msgid "You do not have sufficient permissions to access this page."
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: classes/ajax.php:155 classes/ajax.php:189
|
345 |
msgid "You have taken too long. Please go back and retry."
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: classes/ajax.php:164 classes/ajax.php:198
|
349 |
msgid "You do not have permission to change this order"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: classes/ajax.php:249
|
353 |
msgid "File %d"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: classes/ajax.php:271
|
357 |
+
msgid "You have no permission to manage this order"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
#: classes/ajax.php:307 classes/ajax.php:312
|
361 |
msgid "Please provide your name."
|
362 |
msgstr ""
|
369 |
msgid "Email sent successfully!"
|
370 |
msgstr ""
|
371 |
|
372 |
+
#: classes/ajax.php:380 templates/orders/details.php:271
|
373 |
msgid "Delete note"
|
374 |
msgstr ""
|
375 |
|
376 |
+
#: classes/ajax.php:490
|
377 |
msgid "Error: Nonce verification failed"
|
378 |
msgstr ""
|
379 |
|
380 |
+
#: classes/ajax.php:579
|
381 |
msgid "Image could not be processed. Please go back and try again."
|
382 |
msgstr ""
|
383 |
|
446 |
msgstr ""
|
447 |
|
448 |
#: classes/installer.php:135 includes/admin/class-settings.php:167
|
449 |
+
#: includes/admin/setup-wizard.php:264 includes/admin-functions.php:49
|
450 |
+
#: includes/admin-functions.php:63 includes/admin-functions.php:616
|
451 |
+
#: includes/admin-functions.php:640 includes/wc-template.php:14
|
452 |
+
#: includes/wc-template.php:139 templates/my-orders.php:31
|
453 |
msgid "Vendor"
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: classes/installer.php:199 includes/admin/class-admin.php:209
|
457 |
+
#: includes/admin/class-settings.php:265 includes/template-tags.php:302
|
458 |
msgid "Dashboard"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: classes/installer.php:205
|
462 |
msgid "Store List"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: classes/installer.php:211 includes/admin/class-settings.php:271
|
466 |
#: templates/global/header-menu.php:46
|
467 |
msgid "My Orders"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: classes/pageviews.php:88
|
471 |
+
msgid "You are already logged in"
|
472 |
+
msgstr ""
|
473 |
+
|
474 |
+
#: classes/pageviews.php:108
|
475 |
+
msgid "Username"
|
476 |
+
msgstr ""
|
477 |
+
|
478 |
+
#: classes/pageviews.php:114 includes/wc-functions.php:914
|
479 |
+
#: templates/dashboard/edit-account.php:62
|
480 |
+
msgid "Email address"
|
481 |
+
msgstr ""
|
482 |
+
|
483 |
+
#: classes/pageviews.php:121
|
484 |
+
msgid "Password"
|
485 |
+
msgstr ""
|
486 |
+
|
487 |
+
#: classes/pageviews.php:126
|
488 |
+
msgid "Anti-spam"
|
489 |
+
msgstr ""
|
490 |
+
|
491 |
+
#: classes/pageviews.php:130 includes/wc-functions.php:912
|
492 |
+
#: templates/global/seller-registration-form.php:15
|
493 |
+
msgid "First Name"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: classes/pageviews.php:135 includes/wc-functions.php:913
|
497 |
+
#: templates/global/seller-registration-form.php:20
|
498 |
+
msgid "Last Name"
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: classes/pageviews.php:141 templates/global/seller-registration-form.php:26
|
502 |
+
msgid "Shop Name"
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: classes/pageviews.php:146 templates/global/seller-registration-form.php:31
|
506 |
+
msgid "Shop URL"
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: classes/pageviews.php:167 templates/global/seller-registration-form.php:52
|
510 |
+
msgid ""
|
511 |
+
"I have read and agree to the <a target=\"_blank\" href=\"%s\">Terms & "
|
512 |
+
"Conditions</a>."
|
513 |
+
msgstr ""
|
514 |
+
|
515 |
+
#: classes/pageviews.php:176
|
516 |
+
msgid "Register"
|
517 |
+
msgstr ""
|
518 |
+
|
519 |
#: classes/seller-setup-wizard.php:63 includes/admin/setup-wizard.php:78
|
520 |
msgid "Introduction"
|
521 |
msgstr ""
|
522 |
|
523 |
#: classes/seller-setup-wizard.php:68 includes/admin/setup-wizard.php:83
|
524 |
+
#: includes/template-tags.php:347
|
525 |
msgid "Store"
|
526 |
msgstr ""
|
527 |
|
528 |
+
#: classes/seller-setup-wizard.php:73 includes/template-tags.php:354
|
529 |
msgid "Payment"
|
530 |
msgstr ""
|
531 |
|
537 |
msgid "Vendor › Setup Wizard"
|
538 |
msgstr ""
|
539 |
|
540 |
+
#: classes/seller-setup-wizard.php:200
|
541 |
msgid "Return to the Marketplace"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: classes/seller-setup-wizard.php:213
|
545 |
msgid "Welcome to the Marketplace!"
|
546 |
msgstr ""
|
547 |
|
548 |
+
#: classes/seller-setup-wizard.php:214
|
549 |
msgid ""
|
550 |
"Thank you for choosing The Marketplace to power your online store! This "
|
551 |
"quick setup wizard will help you configure the basic settings. <strong>It’s "
|
552 |
"completely optional and shouldn’t take longer than two minutes.</strong>"
|
553 |
msgstr ""
|
554 |
|
555 |
+
#: classes/seller-setup-wizard.php:215
|
556 |
msgid ""
|
557 |
"No time right now? If you don’t want to go through the wizard, you can skip "
|
558 |
"and return to the Store!"
|
559 |
msgstr ""
|
560 |
|
561 |
+
#: classes/seller-setup-wizard.php:217 includes/admin/setup-wizard.php:249
|
562 |
msgid "Let's Go!"
|
563 |
msgstr ""
|
564 |
|
565 |
+
#: classes/seller-setup-wizard.php:218 includes/admin/setup-wizard.php:250
|
566 |
msgid "Not right now"
|
567 |
msgstr ""
|
568 |
|
569 |
+
#: classes/seller-setup-wizard.php:243 includes/admin/setup-wizard.php:268
|
570 |
msgid "Store Setup"
|
571 |
msgstr ""
|
572 |
|
573 |
+
#: classes/seller-setup-wizard.php:247 templates/settings/store-form.php:119
|
574 |
msgid "Store Product Per Page"
|
575 |
msgstr ""
|
576 |
|
577 |
+
#: classes/seller-setup-wizard.php:253
|
578 |
msgid "Street"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: classes/seller-setup-wizard.php:259 templates/settings/address-form.php:44
|
582 |
msgid "Street 2"
|
583 |
msgstr ""
|
584 |
|
585 |
+
#: classes/seller-setup-wizard.php:265 templates/settings/address-form.php:60
|
586 |
msgid "City"
|
587 |
msgstr ""
|
588 |
|
589 |
+
#: classes/seller-setup-wizard.php:270
|
590 |
msgid "Post/Zip Code"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: classes/seller-setup-wizard.php:282
|
594 |
msgid "State"
|
595 |
msgstr ""
|
596 |
|
597 |
+
#: classes/seller-setup-wizard.php:284
|
598 |
msgid "State Name"
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: classes/seller-setup-wizard.php:288 templates/settings/store-form.php:149
|
602 |
msgid "Email"
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: classes/seller-setup-wizard.php:291 templates/settings/store-form.php:154
|
606 |
msgid "Show email address in store"
|
607 |
msgstr ""
|
608 |
|
|
|
|
|
|
|
|
|
|
|
|
|
609 |
#: classes/seller-setup-wizard.php:299 classes/seller-setup-wizard.php:438
|
610 |
#: includes/admin/setup-wizard.php:294 includes/admin/setup-wizard.php:374
|
611 |
#: includes/admin/setup-wizard.php:485
|
612 |
+
msgid "Continue"
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: classes/seller-setup-wizard.php:300 classes/seller-setup-wizard.php:439
|
616 |
+
#: includes/admin/setup-wizard.php:295 includes/admin/setup-wizard.php:375
|
617 |
+
#: includes/admin/setup-wizard.php:486
|
618 |
msgid "Skip this step"
|
619 |
msgstr ""
|
620 |
|
621 |
+
#: classes/seller-setup-wizard.php:319
|
622 |
msgid "Select an option…"
|
623 |
msgstr ""
|
624 |
|
625 |
+
#: classes/seller-setup-wizard.php:414
|
626 |
msgid "Payment Setup"
|
627 |
msgstr ""
|
628 |
|
634 |
msgid "Go to your Store Dashboard!"
|
635 |
msgstr ""
|
636 |
|
637 |
+
#: classes/template-orders.php:80
|
638 |
+
msgid "You have no permission to view this order"
|
639 |
+
msgstr ""
|
640 |
+
|
641 |
+
#: classes/template-orders.php:116 classes/template-orders.php:185
|
642 |
msgid "Order No"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: classes/template-orders.php:117 classes/template-orders.php:186
|
646 |
#: templates/orders/details.php:21
|
647 |
msgid "Order Items"
|
648 |
msgstr ""
|
649 |
|
650 |
+
#: classes/template-orders.php:118 classes/template-orders.php:187
|
651 |
msgid "Shipping method"
|
652 |
msgstr ""
|
653 |
|
654 |
+
#: classes/template-orders.php:119 classes/template-orders.php:188
|
655 |
msgid "Shipping Cost"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: classes/template-orders.php:120 classes/template-orders.php:189
|
659 |
msgid "Payment method"
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: classes/template-orders.php:121 classes/template-orders.php:190
|
663 |
+
#: templates/orders/listing.php:18 templates/orders/listing.php:40
|
664 |
msgid "Order Total"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: classes/template-orders.php:122 classes/template-orders.php:191
|
668 |
msgid "Order Status"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: classes/template-orders.php:123 classes/template-orders.php:192
|
672 |
msgid "Order Date"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: classes/template-orders.php:124 classes/template-orders.php:193
|
676 |
msgid "Customer Name"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: classes/template-orders.php:125 classes/template-orders.php:194
|
680 |
msgid "Customer Email"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: classes/template-orders.php:126 classes/template-orders.php:195
|
684 |
msgid "Customer Phone"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: classes/template-orders.php:127 classes/template-orders.php:196
|
688 |
msgid "Customer IP"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: classes/template-products.php:74 classes/template-settings.php:149
|
692 |
+
#: classes/template-settings.php:157 classes/template-shortcodes.php:54
|
693 |
+
#: templates/global/no-permission.php:50
|
694 |
+
msgid "You have no permission to view this page"
|
695 |
+
msgstr ""
|
696 |
+
|
697 |
+
#: classes/template-products.php:110
|
698 |
msgid "Details of your product ..."
|
699 |
msgstr ""
|
700 |
|
701 |
+
#: classes/template-products.php:119 classes/template-products.php:245
|
702 |
#: includes/product-functions.php:32
|
703 |
msgid "Please enter product title"
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: classes/template-products.php:125 classes/template-products.php:251
|
707 |
#: includes/product-functions.php:38
|
708 |
msgid "Please select a category"
|
709 |
msgstr ""
|
710 |
|
711 |
+
#: classes/template-products.php:129 classes/template-products.php:255
|
712 |
#: includes/product-functions.php:42
|
713 |
msgid "Please select AT LEAST ONE category"
|
714 |
msgstr ""
|
715 |
|
716 |
+
#: classes/template-products.php:262
|
717 |
msgid "No product found !"
|
718 |
msgstr ""
|
719 |
|
720 |
#: classes/template-settings.php:70 classes/template-settings.php:74
|
721 |
+
#: dokan.php:408 includes/admin/class-admin.php:216
|
722 |
+
#: includes/admin/class-admin.php:238 includes/admin/class-admin.php:370
|
723 |
#: includes/admin/views/welcome.php:20
|
724 |
msgid "Settings"
|
725 |
msgstr ""
|
735 |
"payments seamlessly."
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: classes/template-settings.php:223
|
739 |
+
msgid "Pemission denied social"
|
740 |
+
msgstr ""
|
741 |
+
|
742 |
+
#: classes/template-settings.php:232 classes/template-settings.php:241
|
743 |
+
msgid "Pemission denied"
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: classes/template-settings.php:258
|
747 |
msgid "Your information has been saved successfully"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: classes/template-settings.php:288 classes/template-settings.php:389
|
751 |
msgid "Store name required"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: classes/template-settings.php:294 classes/template-settings.php:350
|
755 |
+
#: classes/template-settings.php:395
|
756 |
msgid "Store type required"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: classes/template-settings.php:301 classes/template-settings.php:358
|
760 |
+
#: classes/template-settings.php:402 classes/template-settings.php:437
|
761 |
msgid "Invalid email"
|
762 |
msgstr ""
|
763 |
|
764 |
+
#: classes/template-settings.php:318
|
765 |
msgid "Address field for %s is required"
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: classes/template-settings.php:588
|
769 |
msgid "Add Profile Picture to gain %s%% progress"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: classes/template-settings.php:607 includes/functions.php:1709
|
773 |
msgid "Facebook"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: classes/template-settings.php:607
|
777 |
msgid "Google+"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: classes/template-settings.php:608
|
781 |
msgid "Add %s profile link to gain %s%% progress"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: classes/template-settings.php:622
|
785 |
msgid "Add Phone to gain %s%% progress"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: classes/template-settings.php:635
|
789 |
msgid "Add Banner to gain %s%% progress"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: classes/template-settings.php:647
|
793 |
msgid "Add Store Name to gain %s%% progress"
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: classes/template-settings.php:659
|
797 |
msgid "Add address to gain %s%% progress"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: classes/template-settings.php:707
|
801 |
msgid "Add a Payment method to gain %s%% progress"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: classes/template-settings.php:715
|
805 |
msgid "Add Map location to gain %s%% progress"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: classes/template-settings.php:735
|
809 |
msgid "Book"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: classes/template-settings.php:736
|
813 |
msgid "Dress"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: classes/template-settings.php:737
|
817 |
msgid "Electronic"
|
818 |
msgstr ""
|
819 |
|
821 |
msgid "Please install <a href=\"%s\"><strong>WooCommerce</strong></a> plugin first"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: classes/template-withdraw.php:80
|
825 |
+
msgid "You have no permission to manage withdraws"
|
826 |
+
msgstr ""
|
827 |
+
|
828 |
+
#: classes/template-withdraw.php:133
|
829 |
msgid "Current Balance: %s "
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: classes/template-withdraw.php:136
|
833 |
msgid "<br>Minimum Withdraw amount: %s "
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: classes/template-withdraw.php:139
|
837 |
msgid "<br>Withdraw Threshold: %d days "
|
838 |
msgstr ""
|
839 |
|
840 |
+
#: classes/template-withdraw.php:232
|
841 |
msgid "Withdraw amount required "
|
842 |
msgstr ""
|
843 |
|
844 |
+
#: classes/template-withdraw.php:235
|
845 |
msgid "You don't have enough balance for this request"
|
846 |
msgstr ""
|
847 |
|
848 |
+
#: classes/template-withdraw.php:237
|
849 |
msgid "Withdraw amount must be greater than %d"
|
850 |
msgstr ""
|
851 |
|
852 |
+
#: classes/template-withdraw.php:241
|
853 |
msgid "withdraw method required"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: classes/template-withdraw.php:319
|
857 |
msgid "Your request has been cancelled successfully!"
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: classes/template-withdraw.php:323
|
861 |
msgid "Your request has been received successfully and being reviewed!"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: classes/template-withdraw.php:327
|
865 |
msgid "Unknown error!"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: classes/template-withdraw.php:359
|
869 |
msgid "You already withdrawed %s. This amount will deducted from your balance."
|
870 |
msgstr ""
|
871 |
|
872 |
+
#: classes/template-withdraw.php:368
|
873 |
msgid "You already have pending withdraw request(s)."
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: classes/template-withdraw.php:368
|
877 |
msgid ""
|
878 |
"Please submit your request after approval or cancellation of your previous "
|
879 |
"request."
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: classes/template-withdraw.php:383
|
883 |
msgid "You don't have sufficient balance for a withdraw request!"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: classes/template-withdraw.php:429 classes/template-withdraw.php:459
|
887 |
msgid "Sorry, no transactions were found!"
|
888 |
msgstr ""
|
889 |
|
894 |
"<strong>20% discount</strong> on upgrades and add-on purchase."
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: classes/upgrade.php:78 includes/admin/class-admin.php:433
|
898 |
msgid ""
|
899 |
"<strong>Dokan Data Update Required</strong> – We need to update your "
|
900 |
"install to the latest version"
|
901 |
msgstr ""
|
902 |
|
903 |
+
#: classes/upgrade.php:79 includes/admin/class-admin.php:434
|
904 |
msgid "Run the updater"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: classes/upgrade.php:84 includes/admin/class-admin.php:439
|
908 |
msgid ""
|
909 |
"It is strongly recommended that you backup your database before proceeding. "
|
910 |
"Are you sure you wish to run the updater now?"
|
911 |
msgstr ""
|
912 |
|
913 |
+
#: classes/withdraw.php:243 templates/withdraw/pending-request-listing.php:41
|
914 |
msgid "Pending Reivew"
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: classes/withdraw.php:247 templates/withdraw/pending-request-listing.php:43
|
918 |
msgid "Accepted"
|
919 |
msgstr ""
|
920 |
|
921 |
+
#: dokan.php:173
|
922 |
msgid "<b>Dokan</b> requires %sWooCommerce%s to be installed & activated!"
|
923 |
msgstr ""
|
924 |
|
925 |
+
#: dokan.php:405
|
926 |
msgid "Get Pro"
|
927 |
msgstr ""
|
928 |
|
929 |
+
#: dokan.php:409 includes/admin/views/welcome.php:21
|
930 |
msgid "Documentation"
|
931 |
msgstr ""
|
932 |
|
999 |
msgstr ""
|
1000 |
|
1001 |
#: includes/admin/class-admin.php:62
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1002 |
msgid ""
|
1003 |
+
"<h2>\n"
|
1004 |
+
" Dokan is Getting More Affordable: Price Reduction & "
|
1005 |
+
"Changes in Packages\n"
|
1006 |
+
" </h2>"
|
1007 |
msgstr ""
|
1008 |
|
1009 |
#: includes/admin/class-admin.php:65
|
1010 |
msgid ""
|
1011 |
+
"<p>Marketplaces are changing, so is Dokan Multivendor. We are reducing "
|
1012 |
+
"Dokan Pro entry package price and bringing entirely new pricing where you "
|
1013 |
+
"get addons pre-activated for free depending on your package.</p>"
|
|
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: includes/admin/class-admin.php:71
|
1017 |
+
msgid "View Package"
|
1018 |
+
msgstr ""
|
1019 |
+
|
1020 |
+
#: includes/admin/class-admin.php:202 includes/admin/class-admin.php:210
|
1021 |
+
#: includes/admin/class-admin.php:356 includes/admin/setup-wizard.php:93
|
1022 |
+
#: includes/admin/views/dashboard.php:72 includes/template-tags.php:324
|
1023 |
#: templates/withdraw/header.php:11
|
1024 |
msgid "Withdraw"
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: includes/admin/class-admin.php:205
|
1028 |
msgid "Withdraw %s"
|
1029 |
msgstr ""
|
1030 |
|
1032 |
msgid "Dokan"
|
1033 |
msgstr ""
|
1034 |
|
1035 |
+
#: includes/admin/class-admin.php:209 includes/admin/class-admin.php:349
|
1036 |
#: includes/admin/views/dashboard.php:96
|
1037 |
msgid "Dokan Dashboard"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: includes/admin/class-admin.php:211 includes/admin/class-admin.php:363
|
1041 |
msgid "PRO Features"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: includes/admin/class-admin.php:215
|
1045 |
msgid "Help"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: includes/admin/class-admin.php:215
|
1049 |
msgid "<span style=\"color:#f18500\">Help</span>"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: includes/admin/class-admin.php:223 includes/admin/views/welcome.php:12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1053 |
msgid "Welcome to Dokan"
|
1054 |
msgstr ""
|
1055 |
|
1077 |
msgid "Disable Vendors and Customers from accessing the wp-admin dashboard area"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
+
#: includes/admin/class-settings.php:150 includes/admin/setup-wizard.php:272
|
1081 |
msgid "Vendor Store URL"
|
1082 |
msgstr ""
|
1083 |
|
1085 |
msgid "Define the seller store URL (%s<strong>[this-text]</strong>/[seller-name])"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
+
#: includes/admin/class-settings.php:157 includes/functions.php:1093
|
1089 |
+
#: templates/settings/store-form.php:196
|
1090 |
msgid "Terms and Conditions"
|
1091 |
msgstr ""
|
1092 |
|
1094 |
msgid "Enable Terms and Conditions for vendor stores"
|
1095 |
msgstr ""
|
1096 |
|
1097 |
+
#: includes/admin/class-settings.php:164 includes/admin/setup-wizard.php:279
|
1098 |
msgid "Extra Fee Recipient"
|
1099 |
msgstr ""
|
1100 |
|
1102 |
msgid "Should extra fees, such as Shipping and Tax, go to the Vendor or the Admin?"
|
1103 |
msgstr ""
|
1104 |
|
1105 |
+
#: includes/admin/class-settings.php:167 includes/admin/setup-wizard.php:265
|
1106 |
msgid "Admin"
|
1107 |
msgstr ""
|
1108 |
|
1164 |
msgid "Amount you get from sales"
|
1165 |
msgstr ""
|
1166 |
|
1167 |
+
#: includes/admin/class-settings.php:225 includes/admin/setup-wizard.php:352
|
1168 |
msgid "Order Status Change"
|
1169 |
msgstr ""
|
1170 |
|
1171 |
+
#: includes/admin/class-settings.php:226
|
1172 |
msgid "Vendor can update order status"
|
1173 |
msgstr ""
|
1174 |
|
1175 |
+
#: includes/admin/class-settings.php:232
|
1176 |
msgid "Disable Product Popup"
|
1177 |
msgstr ""
|
1178 |
|
1179 |
+
#: includes/admin/class-settings.php:233
|
1180 |
msgid "Disable add new product in popup view"
|
1181 |
msgstr ""
|
1182 |
|
1183 |
+
#: includes/admin/class-settings.php:239
|
1184 |
msgid "Disable Welcome Wizard"
|
1185 |
msgstr ""
|
1186 |
|
1187 |
+
#: includes/admin/class-settings.php:240
|
1188 |
msgid "Disable welcome wizard for newly registered vendors"
|
1189 |
msgstr ""
|
1190 |
|
1191 |
+
#: includes/admin/class-settings.php:248 includes/admin/setup-wizard.php:414
|
1192 |
msgid "Withdraw Methods"
|
1193 |
msgstr ""
|
1194 |
|
1195 |
+
#: includes/admin/class-settings.php:249
|
1196 |
msgid "Withdraw methods for vendors"
|
1197 |
msgstr ""
|
1198 |
|
1199 |
+
#: includes/admin/class-settings.php:256 includes/admin/setup-wizard.php:467
|
1200 |
msgid "Minimum Withdraw Limit"
|
1201 |
msgstr ""
|
1202 |
|
1203 |
+
#: includes/admin/class-settings.php:257
|
1204 |
msgid ""
|
1205 |
"Minimum balance required to make a withdraw request. Leave blank to set no "
|
1206 |
"minimum limits."
|
1207 |
msgstr ""
|
1208 |
|
1209 |
+
#: includes/admin/class-settings.php:277
|
1210 |
msgid "Terms and Conditions Page"
|
1211 |
msgstr ""
|
1212 |
|
1213 |
+
#: includes/admin/class-settings.php:280
|
1214 |
msgid ""
|
1215 |
"Select where you want to add Dokan pages <a target=\"_blank\" href=\"%s\"> "
|
1216 |
"Learn More </a>"
|
1217 |
msgstr ""
|
1218 |
|
1219 |
+
#: includes/admin/class-settings.php:286
|
1220 |
msgid "Vendor Setup Wizard Logo"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
+
#: includes/admin/class-settings.php:288
|
1224 |
msgid ""
|
1225 |
"Recommended Logo size ( 270px X 90px ). If no logo is uploaded, site title "
|
1226 |
"is shown by default."
|
1227 |
msgstr ""
|
1228 |
|
1229 |
+
#: includes/admin/class-settings.php:292
|
1230 |
msgid "Store Header Template"
|
1231 |
msgstr ""
|
1232 |
|
1234 |
msgid "Dokan › Setup Wizard"
|
1235 |
msgstr ""
|
1236 |
|
1237 |
+
#: includes/admin/setup-wizard.php:203
|
1238 |
msgid "Return to the WordPress Dashboard"
|
1239 |
msgstr ""
|
1240 |
|
1241 |
+
#: includes/admin/setup-wizard.php:245
|
1242 |
msgid "Welcome to the world of Dokan!"
|
1243 |
msgstr ""
|
1244 |
|
1245 |
+
#: includes/admin/setup-wizard.php:246
|
1246 |
msgid ""
|
1247 |
"Thank you for choosing Dokan to power your online marketplace! This quick "
|
1248 |
"setup wizard will help you configure the basic settings. <strong>It’s "
|
1249 |
"completely optional and shouldn’t take longer than three minutes.</strong>"
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: includes/admin/setup-wizard.php:247
|
1253 |
msgid ""
|
1254 |
"No time right now? If you don’t want to go through the wizard, you can skip "
|
1255 |
"and return to the WordPress dashboard. Come back anytime if you change your "
|
1256 |
"mind!"
|
1257 |
msgstr ""
|
1258 |
|
1259 |
+
#: includes/admin/setup-wizard.php:275
|
1260 |
msgid "Define vendor store URL"
|
1261 |
msgstr ""
|
1262 |
|
1263 |
+
#: includes/admin/setup-wizard.php:289
|
1264 |
msgid "Extra fees like shipping and tax will go to"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: includes/admin/setup-wizard.php:329
|
1268 |
msgid "Tab View"
|
1269 |
msgstr ""
|
1270 |
|
1271 |
+
#: includes/admin/setup-wizard.php:330
|
1272 |
msgid "Flat View"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
+
#: includes/admin/setup-wizard.php:334
|
1276 |
msgid "Selling Setup"
|
1277 |
msgstr ""
|
1278 |
|
1279 |
+
#: includes/admin/setup-wizard.php:338
|
1280 |
msgid "New Vendor Enable Selling"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: includes/admin/setup-wizard.php:341
|
1284 |
msgid "Make selling status enable for new registred vendor"
|
1285 |
msgstr ""
|
1286 |
|
1287 |
+
#: includes/admin/setup-wizard.php:345
|
1288 |
msgid "Vendor Commission %"
|
1289 |
msgstr ""
|
1290 |
|
1291 |
+
#: includes/admin/setup-wizard.php:348
|
1292 |
msgid "How much amount (%) a vendor will get from each order"
|
1293 |
msgstr ""
|
1294 |
|
1295 |
+
#: includes/admin/setup-wizard.php:355
|
1296 |
msgid "Vendor can change order status"
|
1297 |
msgstr ""
|
1298 |
|
1299 |
+
#: includes/admin/setup-wizard.php:359
|
1300 |
msgid "Add/Edit Product Style"
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: includes/admin/setup-wizard.php:369
|
1304 |
msgid "The style you prefer for vendor to add or edit products."
|
1305 |
msgstr ""
|
1306 |
|
1307 |
+
#: includes/admin/setup-wizard.php:410
|
1308 |
msgid "Withdraw Setup"
|
1309 |
msgstr ""
|
1310 |
|
1311 |
+
#: includes/admin/setup-wizard.php:421
|
1312 |
msgid "Paypal"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: includes/admin/setup-wizard.php:424
|
1316 |
msgid "Enable paypal for your vendor as a withdraw method"
|
1317 |
msgstr ""
|
1318 |
|
1319 |
+
#: includes/admin/setup-wizard.php:436
|
1320 |
msgid "Bank"
|
1321 |
msgstr ""
|
1322 |
|
1323 |
+
#: includes/admin/setup-wizard.php:439
|
1324 |
msgid "Enable bank transfer for your vendor as a withdraw method"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
+
#: includes/admin/setup-wizard.php:451
|
1328 |
msgid "Skrill"
|
1329 |
msgstr ""
|
1330 |
|
1331 |
+
#: includes/admin/setup-wizard.php:454
|
1332 |
msgid "Enable skrill for your vendor as a withdraw method"
|
1333 |
msgstr ""
|
1334 |
|
1335 |
+
#: includes/admin/setup-wizard.php:470
|
1336 |
msgid ""
|
1337 |
"Minimum balance required to make a withdraw request ( Leave it blank to set "
|
1338 |
"no limits )"
|
1339 |
msgstr ""
|
1340 |
|
1341 |
+
#: includes/admin/setup-wizard.php:474
|
1342 |
msgid "Order Status for Withdraw"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: includes/admin/setup-wizard.php:476 includes/order-functions.php:518
|
1346 |
#: templates/dashboard/orders-widget.php:26
|
1347 |
msgid "Completed"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: includes/admin/setup-wizard.php:477 includes/order-functions.php:533
|
1351 |
+
#: templates/dashboard/orders-widget.php:36 templates/orders/listing.php:103
|
1352 |
msgid "Processing"
|
1353 |
msgstr ""
|
1354 |
|
1355 |
+
#: includes/admin/setup-wizard.php:478 includes/order-functions.php:528
|
1356 |
msgid "On-hold"
|
1357 |
msgstr ""
|
1358 |
|
1359 |
+
#: includes/admin/setup-wizard.php:480
|
1360 |
msgid "Order status for which vendor can make a withdraw request."
|
1361 |
msgstr ""
|
1362 |
|
1363 |
+
#: includes/admin/setup-wizard.php:516
|
1364 |
msgid "Your Marketplace is Ready!"
|
1365 |
msgstr ""
|
1366 |
|
1367 |
+
#: includes/admin/setup-wizard.php:520
|
1368 |
msgid "Next Steps"
|
1369 |
msgstr ""
|
1370 |
|
1371 |
+
#: includes/admin/setup-wizard.php:522
|
1372 |
msgid "Setup your dokan!"
|
1373 |
msgstr ""
|
1374 |
|
1375 |
+
#: includes/admin/setup-wizard.php:526
|
1376 |
msgid "Learn More"
|
1377 |
msgstr ""
|
1378 |
|
1515 |
msgid "Approved"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
+
#: includes/admin/views/withdraw.php:24 includes/order-functions.php:543
|
1519 |
#: templates/dashboard/orders-widget.php:41
|
1520 |
msgid "Cancelled"
|
1521 |
msgstr ""
|
1522 |
|
1523 |
+
#: includes/admin-functions.php:43 includes/admin-functions.php:55
|
1524 |
+
#: templates/dashboard/big-counter-widget.php:29 templates/my-orders.php:27
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1525 |
#: templates/orders/details.php:21 templates/orders/listing.php:17
|
1526 |
+
#: templates/orders/listing.php:33 templates/sub-orders.php:25
|
1527 |
msgid "Order"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
+
#: includes/admin-functions.php:45 includes/admin-functions.php:54
|
1531 |
+
#: includes/product-functions.php:201 templates/my-orders.php:29
|
1532 |
+
#: templates/orders/listing.php:19 templates/orders/listing.php:43
|
1533 |
+
#: templates/products/products-listing.php:65
|
1534 |
+
#: templates/products/products-listing.php:147 templates/sub-orders.php:27
|
1535 |
+
#: templates/withdraw/pending-request-listing.php:18
|
1536 |
+
msgid "Status"
|
1537 |
msgstr ""
|
1538 |
|
1539 |
+
#: includes/admin-functions.php:46
|
1540 |
+
msgid "Billing"
|
1541 |
msgstr ""
|
1542 |
|
1543 |
+
#: includes/admin-functions.php:47 includes/admin-functions.php:57
|
1544 |
+
msgid "Ship to"
|
|
|
|
|
|
|
|
|
1545 |
msgstr ""
|
1546 |
|
1547 |
+
#: includes/admin-functions.php:48 includes/admin-functions.php:61
|
1548 |
+
#: templates/dashboard/orders-widget.php:21
|
1549 |
#: templates/dashboard/products-widget.php:26 templates/my-orders.php:30
|
1550 |
#: templates/orders/order-fee-html.php:17 templates/sub-orders.php:28
|
1551 |
msgid "Total"
|
1552 |
msgstr ""
|
1553 |
|
1554 |
+
#: includes/admin-functions.php:50 includes/admin-functions.php:62
|
1555 |
msgid "Actions"
|
1556 |
msgstr ""
|
1557 |
|
1558 |
+
#: includes/admin-functions.php:51 includes/admin-functions.php:64
|
1559 |
msgid "Sub Order"
|
1560 |
msgstr ""
|
1561 |
|
1562 |
+
#: includes/admin-functions.php:56
|
1563 |
+
msgid "Purchased"
|
1564 |
+
msgstr ""
|
1565 |
+
|
1566 |
+
#: includes/admin-functions.php:58
|
1567 |
+
msgid "Customer Message"
|
1568 |
+
msgstr ""
|
1569 |
+
|
1570 |
+
#: includes/admin-functions.php:59 templates/orders/details.php:245
|
1571 |
+
msgid "Order Notes"
|
1572 |
+
msgstr ""
|
1573 |
+
|
1574 |
+
#: includes/admin-functions.php:91
|
1575 |
msgid "Sub Order of"
|
1576 |
msgstr ""
|
1577 |
|
1578 |
+
#: includes/admin-functions.php:101
|
1579 |
msgid "Show Sub-Orders"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
+
#: includes/admin-functions.php:101
|
1583 |
msgid "Hide Sub-Orders"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
+
#: includes/admin-functions.php:286
|
1587 |
msgid "Toggle Sub-orders"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
+
#: includes/admin-functions.php:427 includes/admin-functions.php:802
|
1591 |
msgid "Total Sales"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
+
#: includes/admin-functions.php:434 includes/admin-functions.php:809
|
1595 |
msgid "Total: "
|
1596 |
msgstr ""
|
1597 |
|
1598 |
+
#: includes/admin-functions.php:437 includes/admin-functions.php:812
|
1599 |
+
#: includes/reports.php:349
|
1600 |
msgid "Number of orders"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: includes/admin-functions.php:444 includes/admin-functions.php:819
|
1604 |
+
#: includes/reports.php:356
|
1605 |
msgid "sales"
|
1606 |
msgstr ""
|
1607 |
|
1608 |
+
#: includes/admin-functions.php:447 includes/admin-functions.php:822
|
1609 |
msgid "Commision"
|
1610 |
msgstr ""
|
1611 |
|
1612 |
+
#: includes/admin-functions.php:454 includes/admin-functions.php:829
|
1613 |
msgid "Commision: "
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: includes/class-core.php:134
|
1617 |
msgid "Page %s"
|
1618 |
msgstr ""
|
1619 |
|
1653 |
msgid "[%s] Your product has been approved!"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: includes/class-scripts.php:118
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1657 |
msgid "Are you sure?"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: includes/class-scripts.php:119
|
1661 |
msgid "Something went wrong. Please try again."
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: includes/class-scripts.php:171
|
1665 |
msgid "This field is required"
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: includes/class-scripts.php:172
|
1669 |
msgid "Please fix this field."
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: includes/class-scripts.php:173
|
1673 |
msgid "Please enter a valid email address."
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: includes/class-scripts.php:174
|
1677 |
msgid "Please enter a valid URL."
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: includes/class-scripts.php:175
|
1681 |
msgid "Please enter a valid date."
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: includes/class-scripts.php:176
|
1685 |
msgid "Please enter a valid date (ISO)."
|
1686 |
msgstr ""
|
1687 |
|
1688 |
+
#: includes/class-scripts.php:177
|
1689 |
msgid "Please enter a valid number."
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: includes/class-scripts.php:178
|
1693 |
msgid "Please enter only digits."
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: includes/class-scripts.php:179
|
1697 |
msgid "Please enter a valid credit card number."
|
1698 |
msgstr ""
|
1699 |
|
1700 |
+
#: includes/class-scripts.php:180
|
1701 |
msgid "Please enter the same value again."
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#: includes/class-scripts.php:181
|
1705 |
msgid "Please enter no more than {0} characters."
|
1706 |
msgstr ""
|
1707 |
|
1708 |
+
#: includes/class-scripts.php:182
|
1709 |
msgid "Please enter at least {0} characters."
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
#: includes/class-scripts.php:183
|
1713 |
msgid "Please enter a value between {0} and {1} characters long."
|
1714 |
msgstr ""
|
1715 |
|
1716 |
+
#: includes/class-scripts.php:184
|
1717 |
msgid "Please enter a value between {0} and {1}."
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: includes/class-scripts.php:185
|
1721 |
msgid "Please enter a value less than or equal to {0}."
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: includes/class-scripts.php:186
|
1725 |
msgid "Please enter a value greater than or equal to {0}."
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: includes/class-scripts.php:281
|
1729 |
msgid "Upload featured image"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: includes/class-scripts.php:282
|
1733 |
msgid "Choose a file"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: includes/class-scripts.php:283
|
1737 |
msgid "Add Images to Product Gallery"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: includes/class-scripts.php:284
|
1741 |
msgid "Set featured image"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: includes/class-scripts.php:285
|
1745 |
#: includes/woo-views/html-product-download.php:17
|
1746 |
#: includes/woo-views/html-product-download.php:32
|
1747 |
msgid "Insert file URL"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
+
#: includes/class-scripts.php:286
|
1751 |
msgid "Add to gallery"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
+
#: includes/class-scripts.php:287
|
1755 |
msgid "Sorry, this attribute option already exists, Try a different one."
|
1756 |
msgstr ""
|
1757 |
|
1758 |
+
#: includes/class-scripts.php:288
|
1759 |
msgid ""
|
1760 |
"Warning! This product will not have any variations if this option is not "
|
1761 |
"checked."
|
1762 |
msgstr ""
|
1763 |
|
1764 |
+
#: includes/class-scripts.php:289
|
1765 |
msgid "Enter a name for the new attribute term:"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
+
#: includes/class-scripts.php:290
|
1769 |
msgid "Remove this attribute?"
|
1770 |
msgstr ""
|
1771 |
|
1772 |
+
#: includes/class-scripts.php:298
|
1773 |
msgid ""
|
1774 |
"Are you sure you want to link all variations? This will create a new "
|
1775 |
"variation for each and every possible combination of variation attributes "
|
1776 |
"(max %d per run)."
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: includes/class-scripts.php:299
|
1780 |
msgid "Enter a value"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: includes/class-scripts.php:300
|
1784 |
msgid "Variation menu order (determines position in the list of variations)"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: includes/class-scripts.php:301
|
1788 |
msgid "Enter a value (fixed or %)"
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: includes/class-scripts.php:302
|
1792 |
msgid "Are you sure you want to delete all variations? This cannot be undone."
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: includes/class-scripts.php:303
|
1796 |
msgid "Last warning, are you sure?"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: includes/class-scripts.php:304
|
1800 |
msgid "Choose an image"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: includes/class-scripts.php:305
|
1804 |
msgid "Set variation image"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: includes/class-scripts.php:306
|
1808 |
msgid "variation added"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: includes/class-scripts.php:307
|
1812 |
msgid "variations added"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: includes/class-scripts.php:308
|
1816 |
msgid "No variations added"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: includes/class-scripts.php:309
|
1820 |
msgid "Are you sure you want to remove this variation?"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: includes/class-scripts.php:310
|
1824 |
msgid "Sale start date (YYYY-MM-DD format or leave blank)"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: includes/class-scripts.php:311
|
1828 |
msgid "Sale end date (YYYY-MM-DD format or leave blank)"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: includes/class-scripts.php:312
|
1832 |
msgid "Save changes before changing page?"
|
1833 |
msgstr ""
|
1834 |
|
1835 |
+
#: includes/class-scripts.php:313
|
1836 |
msgid "%qty% variation"
|
1837 |
msgstr ""
|
1838 |
|
1839 |
+
#: includes/class-scripts.php:314
|
1840 |
msgid "%qty% variations"
|
1841 |
msgstr ""
|
1842 |
|
1843 |
+
#: includes/class-scripts.php:315
|
1844 |
msgid "No Result Found"
|
1845 |
msgstr ""
|
1846 |
|
1847 |
+
#: includes/class-scripts.php:318
|
1848 |
msgid "Select and Crop"
|
1849 |
msgstr ""
|
1850 |
|
1851 |
+
#: includes/class-scripts.php:319
|
1852 |
msgid "Choose Image"
|
1853 |
msgstr ""
|
1854 |
|
1855 |
+
#: includes/class-scripts.php:320
|
1856 |
msgid "Product title is required"
|
1857 |
msgstr ""
|
1858 |
|
1859 |
+
#: includes/class-scripts.php:321
|
1860 |
msgid "Product category is required"
|
1861 |
msgstr ""
|
1862 |
|
2116 |
msgid "Withdrawal request for {amount} is cancelled"
|
2117 |
msgstr ""
|
2118 |
|
2119 |
+
#: includes/functions.php:648 templates/products/new-product-single.php:580
|
2120 |
msgid "Online"
|
2121 |
msgstr ""
|
2122 |
|
2123 |
+
#: includes/functions.php:649 templates/products/new-product-single.php:581
|
2124 |
msgid "Draft"
|
2125 |
msgstr ""
|
2126 |
|
2127 |
+
#: includes/functions.php:650 templates/dashboard/products-widget.php:41
|
2128 |
msgid "Pending Review"
|
2129 |
msgstr ""
|
2130 |
|
2131 |
+
#: includes/functions.php:692
|
2132 |
msgid "Simple Product"
|
2133 |
msgstr ""
|
2134 |
|
2135 |
+
#: includes/functions.php:693
|
2136 |
msgid "Variable Product"
|
2137 |
msgstr ""
|
2138 |
|
2139 |
+
#: includes/functions.php:694
|
2140 |
msgid "Grouped Product"
|
2141 |
msgstr ""
|
2142 |
|
2143 |
+
#: includes/functions.php:695
|
2144 |
msgid "Scheduled Product"
|
2145 |
msgstr ""
|
2146 |
|
2147 |
+
#: includes/functions.php:893
|
2148 |
msgid "Author"
|
2149 |
msgstr ""
|
2150 |
|
2151 |
+
#: includes/functions.php:1083 includes/template-tags.php:309
|
2152 |
#: templates/dashboard/products-widget.php:16
|
2153 |
msgid "Products"
|
2154 |
msgstr ""
|
2155 |
|
2156 |
+
#: includes/functions.php:1130
|
2157 |
msgid "Account Name: %s"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
+
#: includes/functions.php:1134
|
2161 |
msgid "Account Number: %s"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
+
#: includes/functions.php:1138
|
2165 |
msgid "Bank Name: %s"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
+
#: includes/functions.php:1142
|
2169 |
msgid "Address: %s"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
+
#: includes/functions.php:1146
|
2173 |
msgid "Routing Number: %s"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: includes/functions.php:1150
|
2177 |
msgid "IBAN: %s"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
+
#: includes/functions.php:1154
|
2181 |
msgid "SWIFT: %s"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
+
#: includes/functions.php:1473
|
2185 |
msgid "- Select a location -"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
+
#: includes/functions.php:1477 includes/functions.php:1500
|
2189 |
msgid "Everywhere Else"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
+
#: includes/functions.php:1496
|
2193 |
msgid "- Select a State -"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
#: includes/functions.php:1518
|
2197 |
msgid "Ready to ship in..."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
+
#: includes/functions.php:1519
|
2201 |
msgid "1 business day"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
+
#: includes/functions.php:1520
|
2205 |
msgid "1-2 business day"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: includes/functions.php:1521
|
2209 |
msgid "1-3 business day"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: includes/functions.php:1522
|
2213 |
msgid "3-5 business day"
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: includes/functions.php:1523
|
2217 |
msgid "1-2 weeks"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: includes/functions.php:1524
|
2221 |
msgid "2-3 weeks"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: includes/functions.php:1525
|
2225 |
msgid "3-4 weeks"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: includes/functions.php:1526
|
2229 |
msgid "4-6 weeks"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: includes/functions.php:1527
|
2233 |
msgid "6-8 weeks"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
+
#: includes/functions.php:1627
|
2237 |
msgid "All dates"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
+
#: includes/functions.php:1640
|
2241 |
#. translators: 1: month name, 2: 4-digit year
|
2242 |
msgid "%1$s %2$d"
|
2243 |
msgstr ""
|
2244 |
|
2245 |
+
#: includes/functions.php:1713
|
2246 |
msgid "Google Plus"
|
2247 |
msgstr ""
|
2248 |
|
2249 |
+
#: includes/functions.php:1717
|
2250 |
msgid "Twitter"
|
2251 |
msgstr ""
|
2252 |
|
2253 |
+
#: includes/functions.php:1721
|
2254 |
msgid "Pinterest"
|
2255 |
msgstr ""
|
2256 |
|
2257 |
+
#: includes/functions.php:1725
|
2258 |
msgid "LinkedIn"
|
2259 |
msgstr ""
|
2260 |
|
2261 |
+
#: includes/functions.php:1729
|
2262 |
msgid "Youtube"
|
2263 |
msgstr ""
|
2264 |
|
2265 |
+
#: includes/functions.php:1733
|
2266 |
msgid "Instagram"
|
2267 |
msgstr ""
|
2268 |
|
2269 |
+
#: includes/functions.php:1737
|
2270 |
msgid "Flickr"
|
2271 |
msgstr ""
|
2272 |
|
2273 |
+
#: includes/functions.php:1983
|
2274 |
msgid "Dokan Store Sidebar"
|
2275 |
msgstr ""
|
2276 |
|
2277 |
+
#: includes/order-functions.php:336
|
2278 |
msgid "Mark parent order completed when all child orders are completed."
|
2279 |
msgstr ""
|
2280 |
|
2281 |
+
#: includes/order-functions.php:523
|
2282 |
msgid "Pending Payment"
|
2283 |
msgstr ""
|
2284 |
|
2285 |
+
#: includes/order-functions.php:538 templates/dashboard/orders-widget.php:46
|
2286 |
msgid "Refunded"
|
2287 |
msgstr ""
|
2288 |
|
2289 |
+
#: includes/order-functions.php:548
|
2290 |
msgid "Failed"
|
2291 |
msgstr ""
|
2292 |
|
2362 |
msgstr ""
|
2363 |
|
2364 |
#: includes/product-functions.php:217
|
2365 |
+
#: templates/products/products-listing.php:67
|
2366 |
+
#: templates/products/products-listing.php:159
|
2367 |
msgid "Stock"
|
2368 |
msgstr ""
|
2369 |
|
2427 |
msgid "Expand"
|
2428 |
msgstr ""
|
2429 |
|
2430 |
+
#: includes/product-functions.php:302 templates/orders/details.php:336
|
2431 |
msgid "Close"
|
2432 |
msgstr ""
|
2433 |
|
2472 |
msgid "Hidden"
|
2473 |
msgstr ""
|
2474 |
|
2475 |
+
#: includes/product-functions.php:454
|
2476 |
+
msgid "Edit"
|
2477 |
+
msgstr ""
|
2478 |
+
|
2479 |
+
#: includes/product-functions.php:462
|
2480 |
+
msgid "Delete Permanently"
|
2481 |
+
msgstr ""
|
2482 |
+
|
2483 |
+
#: includes/product-functions.php:471 templates/my-orders.php:88
|
2484 |
+
#: templates/orders/listing.php:122 templates/sub-orders.php:59
|
2485 |
+
msgid "View"
|
2486 |
+
msgstr ""
|
2487 |
+
|
2488 |
+
#: includes/reports.php:339
|
2489 |
msgid "Sales total"
|
2490 |
msgstr ""
|
2491 |
|
2530 |
msgid "Refunded (%d)"
|
2531 |
msgstr ""
|
2532 |
|
2533 |
+
#: includes/template-tags.php:316 templates/dashboard/orders-widget.php:15
|
2534 |
msgid "Orders"
|
2535 |
msgstr ""
|
2536 |
|
2537 |
+
#: includes/template-tags.php:333
|
2538 |
msgid "Settings <i class=\"fa fa-angle-right pull-right\"></i>"
|
2539 |
msgstr ""
|
2540 |
|
2541 |
+
#: includes/template-tags.php:341
|
2542 |
msgid "Back to Dashboard"
|
2543 |
msgstr ""
|
2544 |
|
2545 |
+
#: includes/template-tags.php:460 templates/settings/header.php:13
|
2546 |
#: templates/store-lists-loop.php:61
|
2547 |
msgid "Visit Store"
|
2548 |
msgstr ""
|
2549 |
|
2550 |
+
#: includes/template-tags.php:461 templates/global/header-menu.php:48
|
2551 |
msgid "Edit Account"
|
2552 |
msgstr ""
|
2553 |
|
2554 |
+
#: includes/template-tags.php:462
|
2555 |
msgid "Log out"
|
2556 |
msgstr ""
|
2557 |
|
2558 |
+
#: includes/wc-crud-functions.php:90 includes/wc-legacy-functions.php:61
|
2559 |
msgid "Order – %s"
|
2560 |
msgstr ""
|
2561 |
|
2563 |
msgid "Product SKU must be unique."
|
2564 |
msgstr ""
|
2565 |
|
2566 |
+
#: includes/wc-functions.php:471
|
2567 |
msgid "Cheating, eh?"
|
2568 |
msgstr ""
|
2569 |
|
2570 |
+
#: includes/wc-functions.php:477
|
2571 |
msgid "Please enter your first name."
|
2572 |
msgstr ""
|
2573 |
|
2574 |
+
#: includes/wc-functions.php:478
|
2575 |
msgid "Please enter your last name."
|
2576 |
msgstr ""
|
2577 |
|
2578 |
+
#: includes/wc-functions.php:479
|
2579 |
msgid "Please enter your phone number."
|
2580 |
msgstr ""
|
2581 |
|
2582 |
+
#: includes/wc-functions.php:814
|
2583 |
msgid "Your {site_title} order receipt from {order_date}"
|
2584 |
msgstr ""
|
2585 |
|
2586 |
+
#: includes/wc-functions.php:815
|
2587 |
msgid "Your {site_title} order from {order_date} is complete"
|
2588 |
msgstr ""
|
2589 |
|
2590 |
+
#: includes/wc-functions.php:919
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2591 |
msgid "is a required field."
|
2592 |
msgstr ""
|
2593 |
|
2594 |
+
#: includes/wc-functions.php:925
|
2595 |
msgid "Please provide a valid email address."
|
2596 |
msgstr ""
|
2597 |
|
2598 |
+
#: includes/wc-functions.php:927
|
2599 |
msgid "This email address is already registered."
|
2600 |
msgstr ""
|
2601 |
|
2602 |
+
#: includes/wc-functions.php:933
|
2603 |
msgid "Your current password is incorrect."
|
2604 |
msgstr ""
|
2605 |
|
2606 |
+
#: includes/wc-functions.php:938
|
2607 |
msgid "Please fill out all password fields."
|
2608 |
msgstr ""
|
2609 |
|
2610 |
+
#: includes/wc-functions.php:941
|
2611 |
msgid "Please enter your current password."
|
2612 |
msgstr ""
|
2613 |
|
2614 |
+
#: includes/wc-functions.php:944
|
2615 |
msgid "Please re-enter your password."
|
2616 |
msgstr ""
|
2617 |
|
2618 |
+
#: includes/wc-functions.php:947
|
2619 |
msgid "New passwords do not match."
|
2620 |
msgstr ""
|
2621 |
|
2622 |
+
#: includes/wc-functions.php:968
|
2623 |
msgid "Account details changed successfully."
|
2624 |
msgstr ""
|
2625 |
|
2632 |
msgstr ""
|
2633 |
|
2634 |
#: includes/widgets/bestselling-product.php:62
|
2635 |
+
#: includes/widgets/menu-category.php:176 includes/widgets/store-contact.php:97
|
2636 |
+
#: includes/widgets/store-location.php:94 includes/widgets/store-menu.php:110
|
2637 |
#: includes/widgets/top-rated-product.php:61
|
2638 |
msgid "Title:"
|
2639 |
msgstr ""
|
2664 |
msgid "Dokan: Store Contact Form"
|
2665 |
msgstr ""
|
2666 |
|
2667 |
+
#: includes/widgets/store-contact.php:91 templates/store-toc.php:36
|
2668 |
+
#: templates/store.php:40
|
2669 |
msgid "Contact Vendor"
|
2670 |
msgstr ""
|
2671 |
|
2678 |
msgstr ""
|
2679 |
|
2680 |
#: includes/widgets/store-location.php:88 templates/store-toc.php:33
|
2681 |
+
#: templates/store.php:36
|
2682 |
msgid "Store Location"
|
2683 |
msgstr ""
|
2684 |
|
2690 |
msgid "Dokan: Store Category Menu"
|
2691 |
msgstr ""
|
2692 |
|
2693 |
+
#: includes/widgets/store-menu.php:104
|
2694 |
#: templates/products/new-product-single.php:261
|
2695 |
#: templates/products/new-product-single.php:292
|
2696 |
msgid "Category"
|
2716 |
msgid "Bank Transfer"
|
2717 |
msgstr ""
|
2718 |
|
2719 |
+
#: includes/withdraw-functions.php:121 includes/withdraw-functions.php:143
|
2720 |
msgid "E-mail"
|
2721 |
msgstr ""
|
2722 |
|
2723 |
+
#: includes/withdraw-functions.php:168
|
2724 |
msgid "Your bank account name"
|
2725 |
msgstr ""
|
2726 |
|
2727 |
+
#: includes/withdraw-functions.php:174
|
2728 |
msgid "Your bank account number"
|
2729 |
msgstr ""
|
2730 |
|
2731 |
+
#: includes/withdraw-functions.php:180
|
2732 |
msgid "Name of bank"
|
2733 |
msgstr ""
|
2734 |
|
2735 |
+
#: includes/withdraw-functions.php:186
|
2736 |
msgid "Address of your bank"
|
2737 |
msgstr ""
|
2738 |
|
2739 |
+
#: includes/withdraw-functions.php:192
|
2740 |
msgid "Routing number"
|
2741 |
msgstr ""
|
2742 |
|
2743 |
+
#: includes/withdraw-functions.php:198
|
2744 |
msgid "IBAN"
|
2745 |
msgstr ""
|
2746 |
|
2747 |
+
#: includes/withdraw-functions.php:204
|
2748 |
msgid "Swift code"
|
2749 |
msgstr ""
|
2750 |
|
2822 |
msgid "Canel"
|
2823 |
msgstr ""
|
2824 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2825 |
#: lib/class.dokan-settings-api.php:31
|
2826 |
msgid "Active"
|
2827 |
msgstr ""
|
2834 |
msgid "Choose File"
|
2835 |
msgstr ""
|
2836 |
|
2837 |
+
#: templates/dashboard/big-counter-widget.php:17
|
2838 |
msgid "Sales"
|
2839 |
msgstr ""
|
2840 |
|
2841 |
+
#: templates/dashboard/big-counter-widget.php:21
|
2842 |
+
#: templates/products/products-listing.php:69
|
2843 |
+
#: templates/products/products-listing.php:181
|
2844 |
msgid "Earning"
|
2845 |
msgstr ""
|
2846 |
|
2847 |
+
#: templates/dashboard/big-counter-widget.php:25
|
2848 |
msgid "Pageview"
|
2849 |
msgstr ""
|
2850 |
|
3129 |
msgid "Address:"
|
3130 |
msgstr ""
|
3131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3132 |
#: templates/global/seller-registration-form.php:65
|
3133 |
msgid "I am a customer"
|
3134 |
msgstr ""
|
3165 |
msgid "Pay"
|
3166 |
msgstr ""
|
3167 |
|
|
|
|
|
|
|
|
|
|
|
3168 |
#: templates/my-orders.php:106
|
3169 |
msgid "No orders found!"
|
3170 |
msgstr ""
|
3177 |
msgid "Filter"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
+
#: templates/orders/date-export.php:26
|
3181 |
msgid "Export All"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
+
#: templates/orders/date-export.php:27
|
3185 |
msgid "Export Filtered"
|
3186 |
msgstr ""
|
3187 |
|
3221 |
msgid " Edit"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
+
#: templates/orders/details.php:186
|
3225 |
msgid "Update"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
+
#: templates/orders/details.php:194
|
3229 |
msgid "Order Date:"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: templates/orders/details.php:201
|
3233 |
msgid "Customer:"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: templates/orders/details.php:214
|
3237 |
msgid "Email:"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: templates/orders/details.php:218
|
3241 |
msgid "Phone:"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
+
#: templates/orders/details.php:222
|
3245 |
msgid "Customer IP:"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: templates/orders/details.php:234
|
3249 |
msgid "Customer Note:"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: templates/orders/details.php:269
|
3253 |
msgid "added %s ago"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
+
#: templates/orders/details.php:278
|
3257 |
msgid "There are no notes for this order yet."
|
3258 |
msgstr ""
|
3259 |
|
3260 |
+
#: templates/orders/details.php:295
|
3261 |
msgid "Customer note"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
+
#: templates/orders/details.php:296
|
3265 |
msgid "Private note"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
+
#: templates/orders/details.php:304
|
3269 |
msgid "Add Note"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
+
#: templates/orders/details.php:311 templates/orders/details.php:320
|
3273 |
msgid "Tracking Number"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
+
#: templates/orders/details.php:315
|
3277 |
msgid "Shipping Provider Name / URL"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: templates/orders/details.php:325
|
3281 |
msgid "Date Shipped"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
+
#: templates/orders/details.php:326
|
3285 |
#: templates/products/new-product-single.php:246
|
3286 |
#: templates/products/new-product-single.php:253
|
3287 |
#: templates/products/new-product.php:173
|
3291 |
msgid "YYYY-MM-DD"
|
3292 |
msgstr ""
|
3293 |
|
3294 |
+
#: templates/orders/details.php:335
|
3295 |
msgid "Add Tracking Details"
|
3296 |
msgstr ""
|
3297 |
|
3303 |
msgid "Grant Access"
|
3304 |
msgstr ""
|
3305 |
|
3306 |
+
#: templates/orders/listing.php:20 templates/orders/listing.php:46
|
3307 |
msgid "Customer"
|
3308 |
msgstr ""
|
3309 |
|
3310 |
+
#: templates/orders/listing.php:23 templates/orders/listing.php:93
|
3311 |
#: templates/products/new-product-single.php:530
|
3312 |
msgid "Action"
|
3313 |
msgstr ""
|
3314 |
|
3315 |
+
#: templates/orders/listing.php:35 templates/orders/listing.php:37
|
3316 |
msgid "Order %s"
|
3317 |
msgstr ""
|
3318 |
|
3319 |
+
#: templates/orders/listing.php:67
|
3320 |
msgid "Guest"
|
3321 |
msgstr ""
|
3322 |
|
3323 |
+
#: templates/orders/listing.php:76 templates/products/products-listing.php:221
|
3324 |
msgid "Unpublished"
|
3325 |
msgstr ""
|
3326 |
|
3327 |
+
#: templates/orders/listing.php:78 templates/products/products-listing.php:224
|
3328 |
msgid "Y/m/d g:i:s A"
|
3329 |
msgstr ""
|
3330 |
|
3331 |
+
#: templates/orders/listing.php:84 templates/products/products-listing.php:231
|
3332 |
msgid "%s ago"
|
3333 |
msgstr ""
|
3334 |
|
3335 |
+
#: templates/orders/listing.php:86 templates/products/products-listing.php:233
|
3336 |
msgid "Y/m/d"
|
3337 |
msgstr ""
|
3338 |
|
3339 |
+
#: templates/orders/listing.php:112
|
3340 |
msgid "Complete"
|
3341 |
msgstr ""
|
3342 |
|
3343 |
+
#: templates/orders/listing.php:185
|
3344 |
msgid "No orders found"
|
3345 |
msgstr ""
|
3346 |
|
3417 |
msgid "Access Denied, No product found"
|
3418 |
msgstr ""
|
3419 |
|
3420 |
+
#: templates/products/new-product-single.php:32
|
3421 |
msgid "Access Denied"
|
3422 |
msgstr ""
|
3423 |
|
3467 |
msgstr ""
|
3468 |
|
3469 |
#: templates/products/new-product-single.php:196
|
3470 |
+
#: templates/products/products-listing.php:202
|
3471 |
msgid "Downloadable"
|
3472 |
msgstr ""
|
3473 |
|
3476 |
msgstr ""
|
3477 |
|
3478 |
#: templates/products/new-product-single.php:201
|
3479 |
+
#: templates/products/products-listing.php:200
|
3480 |
msgid "Virtual"
|
3481 |
msgstr ""
|
3482 |
|
3486 |
|
3487 |
#: templates/products/new-product-single.php:213
|
3488 |
#: templates/products/new-product.php:147
|
3489 |
+
#: templates/products/products-listing.php:68
|
3490 |
+
#: templates/products/products-listing.php:172
|
3491 |
#: templates/products/tmpl-add-product-popup.php:49
|
3492 |
msgid "Price"
|
3493 |
msgstr ""
|
3580 |
msgstr ""
|
3581 |
|
3582 |
#: templates/products/new-product-single.php:438
|
3583 |
+
#: templates/products/products-listing.php:66
|
3584 |
+
#: templates/products/products-listing.php:150
|
3585 |
msgid "SKU"
|
3586 |
msgstr ""
|
3587 |
|
3638 |
msgstr ""
|
3639 |
|
3640 |
#: templates/products/new-product-single.php:528
|
3641 |
+
#: templates/products/products-listing.php:64
|
3642 |
+
#: templates/products/products-listing.php:134
|
3643 |
msgid "Name"
|
3644 |
msgstr ""
|
3645 |
|
3725 |
msgid "Create Product"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
+
#: templates/products/products-listing.php:42
|
3729 |
msgid "Add new product"
|
3730 |
msgstr ""
|
3731 |
|
3732 |
+
#: templates/products/products-listing.php:63
|
3733 |
+
#: templates/products/products-listing.php:127
|
3734 |
msgid "Image"
|
3735 |
msgstr ""
|
3736 |
|
3737 |
+
#: templates/products/products-listing.php:70
|
3738 |
+
#: templates/products/products-listing.php:190
|
3739 |
msgid "Type"
|
3740 |
msgstr ""
|
3741 |
|
3742 |
+
#: templates/products/products-listing.php:71
|
3743 |
+
#: templates/products/products-listing.php:215
|
3744 |
msgid "Views"
|
3745 |
msgstr ""
|
3746 |
|
3747 |
+
#: templates/products/products-listing.php:162
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3748 |
msgid "In stock"
|
3749 |
msgstr ""
|
3750 |
|
3751 |
+
#: templates/products/products-listing.php:164
|
3752 |
msgid "Out of stock"
|
3753 |
msgstr ""
|
3754 |
|
3755 |
+
#: templates/products/products-listing.php:194
|
3756 |
msgid "Grouped"
|
3757 |
msgstr ""
|
3758 |
|
3759 |
+
#: templates/products/products-listing.php:196
|
3760 |
msgid "External/Affiliate"
|
3761 |
msgstr ""
|
3762 |
|
3763 |
+
#: templates/products/products-listing.php:204
|
3764 |
msgid "Simple"
|
3765 |
msgstr ""
|
3766 |
|
3767 |
+
#: templates/products/products-listing.php:208
|
3768 |
msgid "Variable"
|
3769 |
msgstr ""
|
3770 |
|
3771 |
+
#: templates/products/products-listing.php:240
|
3772 |
msgid "Published"
|
3773 |
msgstr ""
|
3774 |
|
3775 |
+
#: templates/products/products-listing.php:243
|
3776 |
msgid "Missed schedule"
|
3777 |
msgstr ""
|
3778 |
|
3779 |
+
#: templates/products/products-listing.php:245
|
3780 |
msgid "Scheduled"
|
3781 |
msgstr ""
|
3782 |
|
3783 |
+
#: templates/products/products-listing.php:248
|
3784 |
msgid "Last Modified"
|
3785 |
msgstr ""
|
3786 |
|
3787 |
+
#: templates/products/products-listing.php:260
|
3788 |
msgid "No product found"
|
3789 |
msgstr ""
|
3790 |
|
3791 |
+
#: templates/products/products-listing.php:283
|
3792 |
msgid "« Previous"
|
3793 |
msgstr ""
|
3794 |
|
3795 |
+
#: templates/products/products-listing.php:284
|
3796 |
msgid "Next »"
|
3797 |
msgstr ""
|
3798 |
|
3844 |
msgid "State "
|
3845 |
msgstr ""
|
3846 |
|
3847 |
+
#: templates/settings/payment.php:39 templates/settings/store-form.php:228
|
3848 |
msgid "Update Settings"
|
3849 |
msgstr ""
|
3850 |
|
3851 |
+
#: templates/settings/store-form.php:82
|
3852 |
msgid "Upload a banner for your store. Banner size is (%sx%s) pixels."
|
3853 |
msgstr ""
|
3854 |
|
3855 |
+
#: templates/settings/store-form.php:95
|
3856 |
msgid "Profile Picture"
|
3857 |
msgstr ""
|
3858 |
|
3859 |
+
#: templates/settings/store-form.php:105
|
3860 |
msgid "Upload Photo"
|
3861 |
msgstr ""
|
3862 |
|
3863 |
+
#: templates/settings/store-form.php:111
|
3864 |
msgid "Store Name"
|
3865 |
msgstr ""
|
3866 |
|
3867 |
+
#: templates/settings/store-form.php:114
|
3868 |
msgid "store name"
|
3869 |
msgstr ""
|
3870 |
|
3871 |
+
#: templates/settings/store-form.php:142
|
3872 |
msgid "Phone No"
|
3873 |
msgstr ""
|
3874 |
|
3875 |
+
#: templates/settings/store-form.php:144
|
3876 |
msgid "+123456.."
|
3877 |
msgstr ""
|
3878 |
|
3879 |
+
#: templates/settings/store-form.php:161
|
3880 |
msgid "More product"
|
3881 |
msgstr ""
|
3882 |
|
3883 |
+
#: templates/settings/store-form.php:166
|
3884 |
msgid "Enable tab on product single page view"
|
3885 |
msgstr ""
|
3886 |
|
3887 |
+
#: templates/settings/store-form.php:174
|
3888 |
msgid "Map"
|
3889 |
msgstr ""
|
3890 |
|
3891 |
+
#: templates/settings/store-form.php:181
|
3892 |
msgid "Type an address to find"
|
3893 |
msgstr ""
|
3894 |
|
3895 |
+
#: templates/settings/store-form.php:182
|
3896 |
msgid "Find Address"
|
3897 |
msgstr ""
|
3898 |
|
3899 |
+
#: templates/settings/store-form.php:200
|
3900 |
msgid "Show terms and conditions in store page"
|
3901 |
msgstr ""
|
3902 |
|
3903 |
+
#: templates/settings/store-form.php:206
|
3904 |
msgid "TOC Details"
|
3905 |
msgstr ""
|
3906 |
|
3928 |
msgid "Search seller …"
|
3929 |
msgstr ""
|
3930 |
|
3931 |
+
#: templates/store-toc.php:31 templates/store.php:33
|
3932 |
msgid "Store Category"
|
3933 |
msgstr ""
|
3934 |
|
3936 |
msgid "Terms And Conditions"
|
3937 |
msgstr ""
|
3938 |
|
3939 |
+
#: templates/store.php:83
|
3940 |
msgid "No products were found of this vendor!"
|
3941 |
msgstr ""
|
3942 |
|
3975 |
msgid "No products found"
|
3976 |
msgstr ""
|
3977 |
|
3978 |
+
#: templates/withdraw/request-form.php:16
|
3979 |
msgid "Withdraw Amount"
|
3980 |
msgstr ""
|
3981 |
|
3982 |
+
#: templates/withdraw/request-form.php:29
|
3983 |
msgid "Payment Method"
|
3984 |
msgstr ""
|
3985 |
|
3986 |
+
#: templates/withdraw/request-form.php:44
|
3987 |
msgid "Submit Request"
|
3988 |
msgstr ""
|
3989 |
|
3990 |
+
#: templates/withdraw/request-form.php:50
|
3991 |
+
msgid ""
|
3992 |
+
"No withdraw method is available. Please update your payment method to "
|
3993 |
+
"withdraw funds."
|
3994 |
+
msgstr ""
|
3995 |
+
|
3996 |
+
#: templates/withdraw/request-form.php:50
|
3997 |
+
msgid "Payment Settings Setup"
|
3998 |
+
msgstr ""
|
3999 |
+
|
4000 |
#: templates/withdraw/status-listing.php:12
|
4001 |
msgid "Withdraw Request"
|
4002 |
msgstr ""
|
4102 |
msgid "→"
|
4103 |
msgstr ""
|
4104 |
|
4105 |
+
#: includes/wc-crud-functions.php:90 includes/wc-legacy-functions.php:61
|
4106 |
msgctxt "Order date parsed by strftime"
|
4107 |
msgid "%b %d, %Y @ %I:%M %p"
|
4108 |
msgstr ""
|
lib/class-wedevs-insights.php
CHANGED
@@ -279,19 +279,19 @@ class WeDevs_Insights {
|
|
279 |
$optout_url = add_query_arg( $this->slug . '_tracker_optout', 'true' );
|
280 |
|
281 |
if ( empty( $this->notice ) ) {
|
282 |
-
$notice = sprintf( __( 'Want to help make <strong>%s</strong> even more awesome? Allow weDevs to collect non-sensitive diagnostic data and usage information.', '
|
283 |
} else {
|
284 |
$notice = $this->notice;
|
285 |
}
|
286 |
|
287 |
-
$notice .= ' (<a class="insights-data-we-collect" href="#">' . __( 'what we collect', '
|
288 |
$notice .= '<p class="description" style="display:none;">' . implode( ', ', $this->data_we_collect() ) . '. No sensitive data is tracked.</p>';
|
289 |
|
290 |
echo '<div class="updated"><p>';
|
291 |
echo $notice;
|
292 |
echo '</p><p class="submit">';
|
293 |
-
echo ' <a href="' . esc_url( $optin_url ) . '" class="button-primary button-large">' . __( 'Allow', '
|
294 |
-
echo ' <a href="' . esc_url( $optout_url ) . '" class="button-secondary button-large">' . __( 'No thanks', '
|
295 |
echo '</p></div>';
|
296 |
|
297 |
echo "<script type='text/javascript'>jQuery('.insights-data-we-collect').on('click', function(e) {
|
@@ -468,7 +468,7 @@ class WeDevs_Insights {
|
|
468 |
|
469 |
$schedules['weekly'] = array(
|
470 |
'interval' => DAY_IN_SECONDS * 7,
|
471 |
-
'display' => __( 'Once Weekly', '
|
472 |
);
|
473 |
|
474 |
return $schedules;
|
@@ -560,14 +560,14 @@ class WeDevs_Insights {
|
|
560 |
public function uninstall_reason_submission() {
|
561 |
global $wpdb;
|
562 |
|
563 |
-
if ( ! isset( $_POST['reason_id'] ) ) {
|
564 |
wp_send_json_error();
|
565 |
}
|
566 |
|
567 |
$current_user = wp_get_current_user();
|
568 |
|
569 |
$data = array(
|
570 |
-
'reason_id' => sanitize_text_field( $_POST['reason_id'] ),
|
571 |
'plugin' => $this->slug,
|
572 |
'url' => home_url(),
|
573 |
'user_email' => $current_user->user_email,
|
@@ -604,7 +604,7 @@ class WeDevs_Insights {
|
|
604 |
<div class="wd-dr-modal" id="<?php echo $this->slug; ?>-wd-dr-modal">
|
605 |
<div class="wd-dr-modal-wrap">
|
606 |
<div class="wd-dr-modal-header">
|
607 |
-
<h3><?php _e( 'If you have a moment, please let us know why you are deactivating:', '
|
608 |
</div>
|
609 |
|
610 |
<div class="wd-dr-modal-body">
|
@@ -618,9 +618,9 @@ class WeDevs_Insights {
|
|
618 |
</div>
|
619 |
|
620 |
<div class="wd-dr-modal-footer">
|
621 |
-
<a href="#" class="dont-bother-me"><?php _e( 'I rather wouldn\'t say', '
|
622 |
-
<button class="button-secondary"><?php _e( 'Submit & Deactivate', '
|
623 |
-
<button class="button-primary"><?php _e( 'Canel', '
|
624 |
</div>
|
625 |
</div>
|
626 |
</div>
|
279 |
$optout_url = add_query_arg( $this->slug . '_tracker_optout', 'true' );
|
280 |
|
281 |
if ( empty( $this->notice ) ) {
|
282 |
+
$notice = sprintf( __( 'Want to help make <strong>%s</strong> even more awesome? Allow weDevs to collect non-sensitive diagnostic data and usage information.', 'dokan-lite' ), $this->name );
|
283 |
} else {
|
284 |
$notice = $this->notice;
|
285 |
}
|
286 |
|
287 |
+
$notice .= ' (<a class="insights-data-we-collect" href="#">' . __( 'what we collect', 'dokan-lite' ) . '</a>)';
|
288 |
$notice .= '<p class="description" style="display:none;">' . implode( ', ', $this->data_we_collect() ) . '. No sensitive data is tracked.</p>';
|
289 |
|
290 |
echo '<div class="updated"><p>';
|
291 |
echo $notice;
|
292 |
echo '</p><p class="submit">';
|
293 |
+
echo ' <a href="' . esc_url( $optin_url ) . '" class="button-primary button-large">' . __( 'Allow', 'dokan-lite' ) . '</a>';
|
294 |
+
echo ' <a href="' . esc_url( $optout_url ) . '" class="button-secondary button-large">' . __( 'No thanks', 'dokan-lite' ) . '</a>';
|
295 |
echo '</p></div>';
|
296 |
|
297 |
echo "<script type='text/javascript'>jQuery('.insights-data-we-collect').on('click', function(e) {
|
468 |
|
469 |
$schedules['weekly'] = array(
|
470 |
'interval' => DAY_IN_SECONDS * 7,
|
471 |
+
'display' => __( 'Once Weekly', 'dokan-lite' )
|
472 |
);
|
473 |
|
474 |
return $schedules;
|
560 |
public function uninstall_reason_submission() {
|
561 |
global $wpdb;
|
562 |
|
563 |
+
if ( ! isset( $_POST['reason_id'] ) ) { // WPCS: CSRF ok, Input var ok.
|
564 |
wp_send_json_error();
|
565 |
}
|
566 |
|
567 |
$current_user = wp_get_current_user();
|
568 |
|
569 |
$data = array(
|
570 |
+
'reason_id' => sanitize_text_field( $_POST['reason_id'] ), // WPCS: CSRF ok, Input var ok.
|
571 |
'plugin' => $this->slug,
|
572 |
'url' => home_url(),
|
573 |
'user_email' => $current_user->user_email,
|
604 |
<div class="wd-dr-modal" id="<?php echo $this->slug; ?>-wd-dr-modal">
|
605 |
<div class="wd-dr-modal-wrap">
|
606 |
<div class="wd-dr-modal-header">
|
607 |
+
<h3><?php _e( 'If you have a moment, please let us know why you are deactivating:', 'dokan-lite' ); ?></h3>
|
608 |
</div>
|
609 |
|
610 |
<div class="wd-dr-modal-body">
|
618 |
</div>
|
619 |
|
620 |
<div class="wd-dr-modal-footer">
|
621 |
+
<a href="#" class="dont-bother-me"><?php _e( 'I rather wouldn\'t say', 'dokan-lite' ); ?></a>
|
622 |
+
<button class="button-secondary"><?php _e( 'Submit & Deactivate', 'dokan-lite' ); ?></button>
|
623 |
+
<button class="button-primary"><?php _e( 'Canel', 'dokan-lite' ); ?></button>
|
624 |
</div>
|
625 |
</div>
|
626 |
</div>
|
lib/class-weforms-upsell.php
DELETED
@@ -1,412 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
if ( ! class_exists( 'WeForms_Upsell' ) ) :
|
4 |
-
|
5 |
-
/**
|
6 |
-
* weForms Upsell Class
|
7 |
-
*/
|
8 |
-
class WeForms_Upsell {
|
9 |
-
|
10 |
-
/**
|
11 |
-
* Affiliate code for referal tracking
|
12 |
-
*
|
13 |
-
* @var string
|
14 |
-
*/
|
15 |
-
private $affiliate;
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Learn more link
|
19 |
-
*
|
20 |
-
* @var string
|
21 |
-
*/
|
22 |
-
private $learn_more = 'https://wedevs.com/weforms-details/';
|
23 |
-
|
24 |
-
/**
|
25 |
-
* Instantiate the class
|
26 |
-
*
|
27 |
-
* @param string $affiliate
|
28 |
-
*/
|
29 |
-
function __construct( $affiliate = '' ) {
|
30 |
-
$this->affiliate = $affiliate;
|
31 |
-
|
32 |
-
add_action( 'init', array( $this, 'init_hooks' ) );
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Initialize the hooks
|
37 |
-
*
|
38 |
-
* @return void
|
39 |
-
*/
|
40 |
-
public function init_hooks() {
|
41 |
-
|
42 |
-
if ( class_exists( 'weForms' ) ) {
|
43 |
-
return;
|
44 |
-
}
|
45 |
-
|
46 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
47 |
-
return;
|
48 |
-
}
|
49 |
-
|
50 |
-
add_action( 'admin_notices', array( $this, 'activation_notice' ) );
|
51 |
-
|
52 |
-
add_action( 'wp_ajax_weforms_upsell_installer', array( $this, 'install_weforms' ) );
|
53 |
-
add_action( 'wp_ajax_weforms_upsell_dismiss', array( $this, 'dismiss_weforms_notice' ) );
|
54 |
-
}
|
55 |
-
|
56 |
-
/**
|
57 |
-
* Show the plugin installation notice
|
58 |
-
*
|
59 |
-
* @return void
|
60 |
-
*/
|
61 |
-
public function activation_notice() {
|
62 |
-
|
63 |
-
if ( $this->is_dismissed() ) {
|
64 |
-
return;
|
65 |
-
}
|
66 |
-
?>
|
67 |
-
<div class="updated" id="weforms-upsell-prompt">
|
68 |
-
<div class="weforms-upsell-logo">
|
69 |
-
<img src="https://wedevs-com-wedevs.netdna-ssl.com/wp-content/uploads/2017/08/weforms-upsell.png" width="272" height="71" alt="weForms Logo">
|
70 |
-
</div>
|
71 |
-
<div class="weforms-upsell-text">
|
72 |
-
<h2>weForms is here!</h2>
|
73 |
-
|
74 |
-
<p>weForms is the next generation contact form plugin for WordPress.</p>
|
75 |
-
</div>
|
76 |
-
<div class="weforms-upsell-cta">
|
77 |
-
<button id="weforms-upsell-prompt-btn" class="button"><?php _e( 'Install Now', 'weforms' ); ?></button>
|
78 |
-
<a href="#" class="learn-more" data-tube="NJvjy9WFyAM">Learn More</a>
|
79 |
-
</div>
|
80 |
-
<button type="button" class="notice-dismiss" style="padding: 3px;" title="<?php _e( 'Dismiss this notice.' ); ?>">
|
81 |
-
<span class="screen-reader-text"><?php _e( 'Dismiss this notice.' ); ?></span>
|
82 |
-
</button>
|
83 |
-
</div>
|
84 |
-
|
85 |
-
<div class="weforms-upsell-modal" id="weforms-upsell-modal">
|
86 |
-
<a class="close">
|
87 |
-
×
|
88 |
-
<span class="screen-reader-text">Close modal window</span>
|
89 |
-
</a>
|
90 |
-
<div class="video-wrap">
|
91 |
-
<iframe id="weforms-upsell-modal-iframe" width="1280" height="720" src="" frameborder="0" allowfullscreen></iframe>
|
92 |
-
</div>
|
93 |
-
|
94 |
-
<div class="learn-more">
|
95 |
-
<a href="<?php echo $this->learn_more_link(); ?>" target="_blank" class="button button-primary">Learn more about weForms</a>
|
96 |
-
</div>
|
97 |
-
</div>
|
98 |
-
<div class="weforms-upsell-modal-backdrop" id="weforms-upsell-modal-backdrop"></div>
|
99 |
-
|
100 |
-
<style type="text/css">
|
101 |
-
div#weforms-upsell-prompt * {
|
102 |
-
box-sizing: border-box;
|
103 |
-
}
|
104 |
-
|
105 |
-
div#weforms-upsell-prompt {
|
106 |
-
display: flex;
|
107 |
-
flex-direction: row;
|
108 |
-
flex-wrap: nowrap;
|
109 |
-
justify-content: flex-start;
|
110 |
-
align-content: flex-start;
|
111 |
-
align-items: flex-start;
|
112 |
-
position: relative;
|
113 |
-
border: none;
|
114 |
-
margin: 5px 0 15px;
|
115 |
-
padding: 0 0 0 10px;
|
116 |
-
}
|
117 |
-
|
118 |
-
.weforms-upsell-logo {
|
119 |
-
margin: 0;
|
120 |
-
height: 71px;
|
121 |
-
order: 0;
|
122 |
-
flex: 0 1 272px;
|
123 |
-
align-self: auto;
|
124 |
-
padding-left: 15px;
|
125 |
-
}
|
126 |
-
|
127 |
-
.weforms-upsell-text {
|
128 |
-
background: #46b450;
|
129 |
-
color: #fff;
|
130 |
-
padding: 0;
|
131 |
-
height: 71px;
|
132 |
-
margin-left: -35px;
|
133 |
-
order: 0;
|
134 |
-
flex: 1 1 auto;
|
135 |
-
align-self: auto;
|
136 |
-
}
|
137 |
-
|
138 |
-
.weforms-upsell-text h2 {
|
139 |
-
color: #fff;
|
140 |
-
margin: 10px 0;
|
141 |
-
}
|
142 |
-
|
143 |
-
.weforms-upsell-cta {
|
144 |
-
text-align: center;
|
145 |
-
order: 0;
|
146 |
-
flex: 0 1 220px;
|
147 |
-
align-self: auto;
|
148 |
-
padding-top: 20px;
|
149 |
-
vertical-align: middle;
|
150 |
-
height: 71px;
|
151 |
-
line-height: 28px;
|
152 |
-
}
|
153 |
-
|
154 |
-
.weforms-upsell-modal {
|
155 |
-
background: #fff;
|
156 |
-
position: fixed;
|
157 |
-
top: 5%;
|
158 |
-
bottom: 5%;
|
159 |
-
right: 10%;
|
160 |
-
left: 10%;
|
161 |
-
display: none;
|
162 |
-
box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1);
|
163 |
-
z-index: 160000;
|
164 |
-
}
|
165 |
-
|
166 |
-
.weforms-upsell-modal .video-wrap {
|
167 |
-
position: relative;
|
168 |
-
padding-bottom: 56.25%; /* 16:9 */
|
169 |
-
padding-top: 25px;
|
170 |
-
height: 0;
|
171 |
-
}
|
172 |
-
|
173 |
-
.weforms-upsell-modal .video-wrap iframe {
|
174 |
-
position: absolute;
|
175 |
-
top: 0;
|
176 |
-
left: 0;
|
177 |
-
width: 100%;
|
178 |
-
height: 100%;
|
179 |
-
}
|
180 |
-
|
181 |
-
.weforms-upsell-modal .learn-more {
|
182 |
-
position: absolute;
|
183 |
-
bottom: 0;
|
184 |
-
right: 10px;
|
185 |
-
background: #fff;
|
186 |
-
padding: 10px;
|
187 |
-
border-radius: 3px;
|
188 |
-
}
|
189 |
-
|
190 |
-
.weforms-upsell-modal a.close {
|
191 |
-
position: absolute;
|
192 |
-
top: 20px;
|
193 |
-
right: -60px;
|
194 |
-
font: 300 1.71429em "dashicons" !important;
|
195 |
-
content: '\f335';
|
196 |
-
display: inline-block;
|
197 |
-
padding: 10px 20px 0 20px;
|
198 |
-
z-index: 5;
|
199 |
-
text-decoration: none;
|
200 |
-
height: 40px;
|
201 |
-
cursor: pointer;
|
202 |
-
background: #000;
|
203 |
-
color: #fff;
|
204 |
-
border-radius: 50%;
|
205 |
-
}
|
206 |
-
|
207 |
-
.weforms-upsell-modal-backdrop {
|
208 |
-
position: fixed;
|
209 |
-
z-index: 159999;
|
210 |
-
top: 0;
|
211 |
-
left: 0;
|
212 |
-
right: 0;
|
213 |
-
bottom: 0;
|
214 |
-
min-height: 360px;
|
215 |
-
background: #000;
|
216 |
-
opacity: .7;
|
217 |
-
display: none;
|
218 |
-
}
|
219 |
-
|
220 |
-
.weforms-upsell-modal.show,
|
221 |
-
.weforms-upsell-modal-backdrop.show {
|
222 |
-
display: block;
|
223 |
-
}
|
224 |
-
</style>
|
225 |
-
|
226 |
-
<script type="text/javascript">
|
227 |
-
(function ($) {
|
228 |
-
var wrapper = $('#weforms-upsell-prompt'),
|
229 |
-
modal = $('#weforms-upsell-modal'),
|
230 |
-
modalBackdrop = $('#weforms-upsell-modal-backdrop'),
|
231 |
-
iframe = $('#weforms-upsell-modal-iframe');
|
232 |
-
|
233 |
-
wrapper.on('click', '#weforms-upsell-prompt-btn', function (e) {
|
234 |
-
var self = $(this);
|
235 |
-
|
236 |
-
e.preventDefault();
|
237 |
-
self.addClass('install-now updating-message');
|
238 |
-
self.text('<?php echo esc_js( 'Installing...' ); ?>');
|
239 |
-
|
240 |
-
wp.ajax.send( 'weforms_upsell_installer', {
|
241 |
-
data: {
|
242 |
-
_wpnonce: '<?php echo wp_create_nonce('weforms_upsell_installer'); ?>'
|
243 |
-
},
|
244 |
-
|
245 |
-
success: function(response) {
|
246 |
-
self.text('<?php echo esc_js( 'Installed' ); ?>');
|
247 |
-
window.location.href = '<?php echo admin_url( 'admin.php?page=weforms' ); ?>';
|
248 |
-
},
|
249 |
-
|
250 |
-
error: function(error) {
|
251 |
-
self.removeClass('install-now updating-message');
|
252 |
-
alert( error );
|
253 |
-
},
|
254 |
-
|
255 |
-
complete: function() {
|
256 |
-
self.attr('disabled', 'disabled');
|
257 |
-
self.removeClass('install-now updating-message');
|
258 |
-
}
|
259 |
-
});
|
260 |
-
});
|
261 |
-
|
262 |
-
wrapper.on('click', '.notice-dismiss', function (e) {
|
263 |
-
e.preventDefault();
|
264 |
-
|
265 |
-
var self = $(this);
|
266 |
-
|
267 |
-
wp.ajax.send( 'weforms_upsell_dismiss' );
|
268 |
-
|
269 |
-
self.closest('.updated').slideUp('fast', function() {
|
270 |
-
self.remove();
|
271 |
-
});
|
272 |
-
});
|
273 |
-
|
274 |
-
wrapper.on('click', 'a.learn-more', function(e) {
|
275 |
-
e.preventDefault();
|
276 |
-
|
277 |
-
modal.addClass('show');
|
278 |
-
modalBackdrop.addClass('show');
|
279 |
-
|
280 |
-
iframe.attr( 'src', 'https://www.youtube.com/embed/sqP-nvyqUdQ?rel=0&controls=0&showinfo=0&autoplay=1' );
|
281 |
-
});
|
282 |
-
|
283 |
-
$('body').on('click', '.weforms-upsell-modal a.close', function(e) {
|
284 |
-
e.preventDefault();
|
285 |
-
|
286 |
-
console.log('close modal');
|
287 |
-
|
288 |
-
modal.removeClass('show');
|
289 |
-
modalBackdrop.removeClass('show');
|
290 |
-
|
291 |
-
iframe.attr( 'src', '' );
|
292 |
-
});
|
293 |
-
})(jQuery);
|
294 |
-
</script>
|
295 |
-
<?php
|
296 |
-
}
|
297 |
-
|
298 |
-
/**
|
299 |
-
* Check if the notice is dimissed
|
300 |
-
*
|
301 |
-
* @return boolean
|
302 |
-
*/
|
303 |
-
public function is_dismissed() {
|
304 |
-
return 'yes' == get_option( 'weforms_upsell_dismiss', 'no' );
|
305 |
-
}
|
306 |
-
|
307 |
-
/**
|
308 |
-
* Dismiss the weForms notice
|
309 |
-
*
|
310 |
-
* @return void
|
311 |
-
*/
|
312 |
-
public function dismiss_notice() {
|
313 |
-
update_option( 'weforms_upsell_dismiss', 'yes' );
|
314 |
-
}
|
315 |
-
|
316 |
-
/**
|
317 |
-
* Learn more link, append affiliate link if present
|
318 |
-
*
|
319 |
-
* @return string
|
320 |
-
*/
|
321 |
-
public function learn_more_link() {
|
322 |
-
$link = $this->learn_more;
|
323 |
-
|
324 |
-
if ( ! empty( $this->affiliate ) ) {
|
325 |
-
$link = add_query_arg( array( 'ref' => $this->affiliate ), $link );
|
326 |
-
}
|
327 |
-
|
328 |
-
return $link;
|
329 |
-
}
|
330 |
-
|
331 |
-
/**
|
332 |
-
* Fail if plugin installtion/activation fails
|
333 |
-
*
|
334 |
-
* @param Object $thing
|
335 |
-
*
|
336 |
-
* @return void
|
337 |
-
*/
|
338 |
-
public function fail_on_error( $thing ) {
|
339 |
-
if ( is_wp_error( $thing ) ) {
|
340 |
-
wp_send_json_error( $thing->get_error_message() );
|
341 |
-
}
|
342 |
-
}
|
343 |
-
|
344 |
-
/**
|
345 |
-
* Install weForms
|
346 |
-
*
|
347 |
-
* @return void
|
348 |
-
*/
|
349 |
-
public function install_weforms() {
|
350 |
-
check_ajax_referer( 'weforms_upsell_installer' );
|
351 |
-
|
352 |
-
if ( ! current_user_can( 'manage_options' ) ) {
|
353 |
-
wp_send_json_error( __( 'You don\'t have permission to install the plugins' ) );
|
354 |
-
}
|
355 |
-
|
356 |
-
$weforms_status = $this->install_plugin( 'weforms', 'weforms.php' );
|
357 |
-
$this->fail_on_error( $weforms_status );
|
358 |
-
|
359 |
-
$this->dismiss_notice();
|
360 |
-
|
361 |
-
if ( ! empty( $this->affiliate ) ) {
|
362 |
-
update_option( '_weforms_aff_ref', $this->affiliate );
|
363 |
-
}
|
364 |
-
|
365 |
-
wp_send_json_success();
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Install and activate a plugin
|
370 |
-
*
|
371 |
-
* @param string $slug
|
372 |
-
* @param string $file
|
373 |
-
*
|
374 |
-
* @return WP_Error|null
|
375 |
-
*/
|
376 |
-
public function install_plugin( $slug, $file ) {
|
377 |
-
include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
|
378 |
-
include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
379 |
-
|
380 |
-
$plugin_basename = $slug . '/' . $file;
|
381 |
-
|
382 |
-
// if exists and not activated
|
383 |
-
if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_basename ) ) {
|
384 |
-
return activate_plugin( $plugin_basename );
|
385 |
-
}
|
386 |
-
|
387 |
-
// seems like the plugin doesn't exists. Download and activate it
|
388 |
-
$upgrader = new Plugin_Upgrader( new WP_Ajax_Upgrader_Skin() );
|
389 |
-
|
390 |
-
$api = plugins_api( 'plugin_information', array( 'slug' => $slug, 'fields' => array( 'sections' => false ) ) );
|
391 |
-
$result = $upgrader->install( $api->download_link );
|
392 |
-
|
393 |
-
if ( is_wp_error( $result ) ) {
|
394 |
-
return $result;
|
395 |
-
}
|
396 |
-
|
397 |
-
return activate_plugin( $plugin_basename );
|
398 |
-
}
|
399 |
-
|
400 |
-
/**
|
401 |
-
* Dismiss the notice via Ajax
|
402 |
-
*
|
403 |
-
* @return void
|
404 |
-
*/
|
405 |
-
public function dismiss_weforms_notice() {
|
406 |
-
$this->dismiss_notice();
|
407 |
-
|
408 |
-
wp_send_json_success();
|
409 |
-
}
|
410 |
-
}
|
411 |
-
|
412 |
-
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/class.settings-api.php
CHANGED
@@ -10,7 +10,6 @@
|
|
10 |
* @example example/oop-example.php How to use the class
|
11 |
*/
|
12 |
if ( !class_exists( 'WeDevs_Settings_API' ) ):
|
13 |
-
|
14 |
class WeDevs_Settings_API {
|
15 |
|
16 |
/**
|
@@ -28,7 +27,7 @@ class WeDevs_Settings_API {
|
|
28 |
protected $settings_fields = array();
|
29 |
|
30 |
public function __construct() {
|
31 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' )
|
32 |
}
|
33 |
|
34 |
/**
|
@@ -127,7 +126,8 @@ class WeDevs_Settings_API {
|
|
127 |
|
128 |
$args = array(
|
129 |
'id' => $name,
|
130 |
-
'
|
|
|
131 |
'desc' => isset( $option['desc'] ) ? $option['desc'] : '',
|
132 |
'name' => $label,
|
133 |
'section' => $section,
|
@@ -204,9 +204,9 @@ class WeDevs_Settings_API {
|
|
204 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
205 |
$type = isset( $args['type'] ) ? $args['type'] : 'number';
|
206 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
|
207 |
-
$min =
|
208 |
-
$max =
|
209 |
-
$step =
|
210 |
|
211 |
$html = sprintf( '<input type="%1$s" class="%2$s-number" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s%7$s%8$s%9$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $min, $max, $step );
|
212 |
$html .= $this->get_field_description( $args );
|
@@ -234,7 +234,7 @@ class WeDevs_Settings_API {
|
|
234 |
}
|
235 |
|
236 |
/**
|
237 |
-
* Displays a multicheckbox a settings field
|
238 |
*
|
239 |
* @param array $args settings field args
|
240 |
*/
|
@@ -257,7 +257,7 @@ class WeDevs_Settings_API {
|
|
257 |
}
|
258 |
|
259 |
/**
|
260 |
-
* Displays a
|
261 |
*
|
262 |
* @param array $args settings field args
|
263 |
*/
|
@@ -317,7 +317,7 @@ class WeDevs_Settings_API {
|
|
317 |
}
|
318 |
|
319 |
/**
|
320 |
-
* Displays
|
321 |
*
|
322 |
* @param array $args settings field args
|
323 |
* @return string
|
@@ -365,7 +365,7 @@ class WeDevs_Settings_API {
|
|
365 |
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
366 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
367 |
$id = $args['section'] . '[' . $args['id'] . ']';
|
368 |
-
$label = isset( $args['options']['button_label'] ) ? $args['options']['button_label'] : __( 'Choose File' );
|
369 |
|
370 |
$html = sprintf( '<input type="text" class="%1$s-text wpsa-url" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
|
371 |
$html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
|
@@ -406,6 +406,24 @@ class WeDevs_Settings_API {
|
|
406 |
echo $html;
|
407 |
}
|
408 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
409 |
/**
|
410 |
* Sanitize callback for Settings API
|
411 |
*
|
@@ -483,20 +501,15 @@ class WeDevs_Settings_API {
|
|
483 |
*/
|
484 |
function show_navigation() {
|
485 |
$html = '<h2 class="nav-tab-wrapper">';
|
486 |
-
|
487 |
$count = count( $this->settings_sections );
|
488 |
-
|
489 |
// don't show the navigation if only one section exists
|
490 |
if ( $count === 1 ) {
|
491 |
return;
|
492 |
}
|
493 |
-
|
494 |
foreach ( $this->settings_sections as $tab ) {
|
495 |
$html .= sprintf( '<a href="#%1$s" class="nav-tab" id="%1$s-tab"><span class="dashicons %3$s"></span> %2$s</a>', $tab['id'], $tab['title'], ! empty( $tab['icon'] ) ? $tab['icon'] : '' );
|
496 |
}
|
497 |
-
|
498 |
$html .= '</h2>';
|
499 |
-
|
500 |
echo $html;
|
501 |
}
|
502 |
|
@@ -518,7 +531,7 @@ class WeDevs_Settings_API {
|
|
518 |
do_action( 'wsa_form_bottom_' . $form['id'], $form );
|
519 |
if ( isset( $this->settings_fields[ $form['id'] ] ) ):
|
520 |
?>
|
521 |
-
<div>
|
522 |
<?php submit_button(); ?>
|
523 |
</div>
|
524 |
<?php endif; ?>
|
@@ -548,6 +561,15 @@ class WeDevs_Settings_API {
|
|
548 |
if (typeof(localStorage) != 'undefined' ) {
|
549 |
activetab = localStorage.getItem("activetab");
|
550 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
551 |
if (activetab != '' && $(activetab).length ) {
|
552 |
$(activetab).fadeIn();
|
553 |
} else {
|
@@ -626,4 +648,4 @@ class WeDevs_Settings_API {
|
|
626 |
|
627 |
}
|
628 |
|
629 |
-
endif;
|
10 |
* @example example/oop-example.php How to use the class
|
11 |
*/
|
12 |
if ( !class_exists( 'WeDevs_Settings_API' ) ):
|
|
|
13 |
class WeDevs_Settings_API {
|
14 |
|
15 |
/**
|
27 |
protected $settings_fields = array();
|
28 |
|
29 |
public function __construct() {
|
30 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
|
31 |
}
|
32 |
|
33 |
/**
|
126 |
|
127 |
$args = array(
|
128 |
'id' => $name,
|
129 |
+
'class' => isset( $option['class'] ) ? $option['class'] : $name,
|
130 |
+
'label_for' => "{$section}[{$name}]",
|
131 |
'desc' => isset( $option['desc'] ) ? $option['desc'] : '',
|
132 |
'name' => $label,
|
133 |
'section' => $section,
|
204 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
205 |
$type = isset( $args['type'] ) ? $args['type'] : 'number';
|
206 |
$placeholder = empty( $args['placeholder'] ) ? '' : ' placeholder="' . $args['placeholder'] . '"';
|
207 |
+
$min = ( $args['min'] == '' ) ? '' : ' min="' . $args['min'] . '"';
|
208 |
+
$max = ( $args['max'] == '' ) ? '' : ' max="' . $args['max'] . '"';
|
209 |
+
$step = ( $args['step'] == '' ) ? '' : ' step="' . $args['step'] . '"';
|
210 |
|
211 |
$html = sprintf( '<input type="%1$s" class="%2$s-number" id="%3$s[%4$s]" name="%3$s[%4$s]" value="%5$s"%6$s%7$s%8$s%9$s/>', $type, $size, $args['section'], $args['id'], $value, $placeholder, $min, $max, $step );
|
212 |
$html .= $this->get_field_description( $args );
|
234 |
}
|
235 |
|
236 |
/**
|
237 |
+
* Displays a multicheckbox for a settings field
|
238 |
*
|
239 |
* @param array $args settings field args
|
240 |
*/
|
257 |
}
|
258 |
|
259 |
/**
|
260 |
+
* Displays a radio button for a settings field
|
261 |
*
|
262 |
* @param array $args settings field args
|
263 |
*/
|
317 |
}
|
318 |
|
319 |
/**
|
320 |
+
* Displays the html for a settings field
|
321 |
*
|
322 |
* @param array $args settings field args
|
323 |
* @return string
|
365 |
$value = esc_attr( $this->get_option( $args['id'], $args['section'], $args['std'] ) );
|
366 |
$size = isset( $args['size'] ) && !is_null( $args['size'] ) ? $args['size'] : 'regular';
|
367 |
$id = $args['section'] . '[' . $args['id'] . ']';
|
368 |
+
$label = isset( $args['options']['button_label'] ) ? $args['options']['button_label'] : __( 'Choose File', 'dokan-lite' );
|
369 |
|
370 |
$html = sprintf( '<input type="text" class="%1$s-text wpsa-url" id="%2$s[%3$s]" name="%2$s[%3$s]" value="%4$s"/>', $size, $args['section'], $args['id'], $value );
|
371 |
$html .= '<input type="button" class="button wpsa-browse" value="' . $label . '" />';
|
406 |
echo $html;
|
407 |
}
|
408 |
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Displays a select box for creating the pages select box
|
412 |
+
*
|
413 |
+
* @param array $args settings field args
|
414 |
+
*/
|
415 |
+
function callback_pages( $args ) {
|
416 |
+
|
417 |
+
$dropdown_args = array(
|
418 |
+
'selected' => esc_attr($this->get_option($args['id'], $args['section'], $args['std'] ) ),
|
419 |
+
'name' => $args['section'] . '[' . $args['id'] . ']',
|
420 |
+
'id' => $args['section'] . '[' . $args['id'] . ']',
|
421 |
+
'echo' => 0
|
422 |
+
);
|
423 |
+
$html = wp_dropdown_pages( $dropdown_args );
|
424 |
+
echo $html;
|
425 |
+
}
|
426 |
+
|
427 |
/**
|
428 |
* Sanitize callback for Settings API
|
429 |
*
|
501 |
*/
|
502 |
function show_navigation() {
|
503 |
$html = '<h2 class="nav-tab-wrapper">';
|
|
|
504 |
$count = count( $this->settings_sections );
|
|
|
505 |
// don't show the navigation if only one section exists
|
506 |
if ( $count === 1 ) {
|
507 |
return;
|
508 |
}
|
|
|
509 |
foreach ( $this->settings_sections as $tab ) {
|
510 |
$html .= sprintf( '<a href="#%1$s" class="nav-tab" id="%1$s-tab"><span class="dashicons %3$s"></span> %2$s</a>', $tab['id'], $tab['title'], ! empty( $tab['icon'] ) ? $tab['icon'] : '' );
|
511 |
}
|
|
|
512 |
$html .= '</h2>';
|
|
|
513 |
echo $html;
|
514 |
}
|
515 |
|
531 |
do_action( 'wsa_form_bottom_' . $form['id'], $form );
|
532 |
if ( isset( $this->settings_fields[ $form['id'] ] ) ):
|
533 |
?>
|
534 |
+
<div style="padding-left: 10px">
|
535 |
<?php submit_button(); ?>
|
536 |
</div>
|
537 |
<?php endif; ?>
|
561 |
if (typeof(localStorage) != 'undefined' ) {
|
562 |
activetab = localStorage.getItem("activetab");
|
563 |
}
|
564 |
+
|
565 |
+
//if url has section id as hash then set it as active or override the current local storage value
|
566 |
+
if(window.location.hash){
|
567 |
+
activetab = window.location.hash;
|
568 |
+
if (typeof(localStorage) != 'undefined' ) {
|
569 |
+
localStorage.setItem("activetab", activetab);
|
570 |
+
}
|
571 |
+
}
|
572 |
+
|
573 |
if (activetab != '' && $(activetab).length ) {
|
574 |
$(activetab).fadeIn();
|
575 |
} else {
|
648 |
|
649 |
}
|
650 |
|
651 |
+
endif;
|
package-lock.json
DELETED
@@ -1,3687 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "dokan",
|
3 |
-
"version": "2.6.8",
|
4 |
-
"lockfileVersion": 1,
|
5 |
-
"dependencies": {
|
6 |
-
"abbrev": {
|
7 |
-
"version": "1.1.1",
|
8 |
-
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
9 |
-
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
10 |
-
"dev": true
|
11 |
-
},
|
12 |
-
"ajv": {
|
13 |
-
"version": "5.2.3",
|
14 |
-
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
|
15 |
-
"integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
|
16 |
-
"dev": true,
|
17 |
-
"optional": true
|
18 |
-
},
|
19 |
-
"align-text": {
|
20 |
-
"version": "0.1.4",
|
21 |
-
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
|
22 |
-
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
|
23 |
-
"dev": true
|
24 |
-
},
|
25 |
-
"ansi-regex": {
|
26 |
-
"version": "2.1.1",
|
27 |
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
28 |
-
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
29 |
-
"dev": true
|
30 |
-
},
|
31 |
-
"ansi-styles": {
|
32 |
-
"version": "2.2.1",
|
33 |
-
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
34 |
-
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
35 |
-
"dev": true
|
36 |
-
},
|
37 |
-
"aproba": {
|
38 |
-
"version": "1.2.0",
|
39 |
-
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
40 |
-
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
41 |
-
},
|
42 |
-
"archive-type": {
|
43 |
-
"version": "3.2.0",
|
44 |
-
"resolved": "https://registry.npmjs.org/archive-type/-/archive-type-3.2.0.tgz",
|
45 |
-
"integrity": "sha1-nNnABpV+vpX62tW9YJiUKoE3N/Y=",
|
46 |
-
"dev": true
|
47 |
-
},
|
48 |
-
"archiver": {
|
49 |
-
"version": "1.3.0",
|
50 |
-
"resolved": "https://registry.npmjs.org/archiver/-/archiver-1.3.0.tgz",
|
51 |
-
"integrity": "sha1-TyGU1tj5nfP1MeaIHxTxXVX6ryI=",
|
52 |
-
"dev": true,
|
53 |
-
"dependencies": {
|
54 |
-
"async": {
|
55 |
-
"version": "2.5.0",
|
56 |
-
"resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
|
57 |
-
"integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
|
58 |
-
"dev": true
|
59 |
-
},
|
60 |
-
"lodash": {
|
61 |
-
"version": "4.17.4",
|
62 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
63 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
64 |
-
"dev": true
|
65 |
-
}
|
66 |
-
}
|
67 |
-
},
|
68 |
-
"archiver-utils": {
|
69 |
-
"version": "1.3.0",
|
70 |
-
"resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-1.3.0.tgz",
|
71 |
-
"integrity": "sha1-5QtMCccL89aA4y/xt5lOn52JUXQ=",
|
72 |
-
"dev": true,
|
73 |
-
"dependencies": {
|
74 |
-
"lodash": {
|
75 |
-
"version": "4.17.4",
|
76 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
77 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
78 |
-
"dev": true
|
79 |
-
}
|
80 |
-
}
|
81 |
-
},
|
82 |
-
"are-we-there-yet": {
|
83 |
-
"version": "1.1.4",
|
84 |
-
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
|
85 |
-
"integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0="
|
86 |
-
},
|
87 |
-
"argparse": {
|
88 |
-
"version": "1.0.9",
|
89 |
-
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz",
|
90 |
-
"integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=",
|
91 |
-
"dev": true
|
92 |
-
},
|
93 |
-
"arr-diff": {
|
94 |
-
"version": "2.0.0",
|
95 |
-
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
|
96 |
-
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
|
97 |
-
"dev": true
|
98 |
-
},
|
99 |
-
"arr-flatten": {
|
100 |
-
"version": "1.1.0",
|
101 |
-
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
|
102 |
-
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
|
103 |
-
"dev": true
|
104 |
-
},
|
105 |
-
"array-differ": {
|
106 |
-
"version": "1.0.0",
|
107 |
-
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
|
108 |
-
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
|
109 |
-
"dev": true
|
110 |
-
},
|
111 |
-
"array-find-index": {
|
112 |
-
"version": "1.0.2",
|
113 |
-
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
|
114 |
-
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
|
115 |
-
"dev": true
|
116 |
-
},
|
117 |
-
"array-uniq": {
|
118 |
-
"version": "1.0.3",
|
119 |
-
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
|
120 |
-
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
|
121 |
-
"dev": true
|
122 |
-
},
|
123 |
-
"array-unique": {
|
124 |
-
"version": "0.2.1",
|
125 |
-
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
|
126 |
-
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
|
127 |
-
"dev": true
|
128 |
-
},
|
129 |
-
"asap": {
|
130 |
-
"version": "2.0.6",
|
131 |
-
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
132 |
-
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
|
133 |
-
"dev": true,
|
134 |
-
"optional": true
|
135 |
-
},
|
136 |
-
"asn1": {
|
137 |
-
"version": "0.2.3",
|
138 |
-
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
|
139 |
-
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
|
140 |
-
"dev": true
|
141 |
-
},
|
142 |
-
"assert-plus": {
|
143 |
-
"version": "1.0.0",
|
144 |
-
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
145 |
-
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
146 |
-
"dev": true
|
147 |
-
},
|
148 |
-
"async": {
|
149 |
-
"version": "1.5.2",
|
150 |
-
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
151 |
-
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
|
152 |
-
"dev": true
|
153 |
-
},
|
154 |
-
"async-each-series": {
|
155 |
-
"version": "1.1.0",
|
156 |
-
"resolved": "https://registry.npmjs.org/async-each-series/-/async-each-series-1.1.0.tgz",
|
157 |
-
"integrity": "sha1-9C/YFV048hpbjqB8KOBj7RcAsTg=",
|
158 |
-
"dev": true,
|
159 |
-
"optional": true
|
160 |
-
},
|
161 |
-
"asynckit": {
|
162 |
-
"version": "0.4.0",
|
163 |
-
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
164 |
-
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
165 |
-
"dev": true,
|
166 |
-
"optional": true
|
167 |
-
},
|
168 |
-
"aws-sign2": {
|
169 |
-
"version": "0.7.0",
|
170 |
-
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
171 |
-
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
172 |
-
"dev": true,
|
173 |
-
"optional": true
|
174 |
-
},
|
175 |
-
"aws4": {
|
176 |
-
"version": "1.6.0",
|
177 |
-
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
|
178 |
-
"integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
|
179 |
-
"dev": true,
|
180 |
-
"optional": true
|
181 |
-
},
|
182 |
-
"balanced-match": {
|
183 |
-
"version": "1.0.0",
|
184 |
-
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
185 |
-
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
186 |
-
"dev": true
|
187 |
-
},
|
188 |
-
"bcrypt-pbkdf": {
|
189 |
-
"version": "1.0.1",
|
190 |
-
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
|
191 |
-
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
|
192 |
-
"dev": true,
|
193 |
-
"optional": true
|
194 |
-
},
|
195 |
-
"beeper": {
|
196 |
-
"version": "1.1.1",
|
197 |
-
"resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz",
|
198 |
-
"integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=",
|
199 |
-
"dev": true
|
200 |
-
},
|
201 |
-
"bin-build": {
|
202 |
-
"version": "2.2.0",
|
203 |
-
"resolved": "https://registry.npmjs.org/bin-build/-/bin-build-2.2.0.tgz",
|
204 |
-
"integrity": "sha1-EfjdYfcP/Por3KpbRvXo/t1CIcw=",
|
205 |
-
"dev": true,
|
206 |
-
"optional": true
|
207 |
-
},
|
208 |
-
"bin-check": {
|
209 |
-
"version": "2.0.0",
|
210 |
-
"resolved": "https://registry.npmjs.org/bin-check/-/bin-check-2.0.0.tgz",
|
211 |
-
"integrity": "sha1-hvjm9CU4k99g3DFpV/WvAqywWTA=",
|
212 |
-
"dev": true,
|
213 |
-
"optional": true
|
214 |
-
},
|
215 |
-
"bin-version": {
|
216 |
-
"version": "1.0.4",
|
217 |
-
"resolved": "https://registry.npmjs.org/bin-version/-/bin-version-1.0.4.tgz",
|
218 |
-
"integrity": "sha1-nrSY7m/Xb3q5p8FgQ2+JV5Q1144=",
|
219 |
-
"dev": true,
|
220 |
-
"optional": true
|
221 |
-
},
|
222 |
-
"bin-version-check": {
|
223 |
-
"version": "2.1.0",
|
224 |
-
"resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-2.1.0.tgz",
|
225 |
-
"integrity": "sha1-5OXfKQuQaffRETJAMe/BP90RpbA=",
|
226 |
-
"dev": true,
|
227 |
-
"optional": true,
|
228 |
-
"dependencies": {
|
229 |
-
"semver": {
|
230 |
-
"version": "4.3.6",
|
231 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
232 |
-
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
|
233 |
-
"dev": true,
|
234 |
-
"optional": true
|
235 |
-
}
|
236 |
-
}
|
237 |
-
},
|
238 |
-
"bin-wrapper": {
|
239 |
-
"version": "3.0.2",
|
240 |
-
"resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz",
|
241 |
-
"integrity": "sha1-Z9MwYmLksaXy+I7iNGT2plVneus=",
|
242 |
-
"dev": true,
|
243 |
-
"optional": true
|
244 |
-
},
|
245 |
-
"bl": {
|
246 |
-
"version": "1.2.1",
|
247 |
-
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz",
|
248 |
-
"integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=",
|
249 |
-
"dev": true
|
250 |
-
},
|
251 |
-
"block-stream": {
|
252 |
-
"version": "0.0.9",
|
253 |
-
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
|
254 |
-
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo="
|
255 |
-
},
|
256 |
-
"bluebird": {
|
257 |
-
"version": "3.5.1",
|
258 |
-
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
|
259 |
-
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
|
260 |
-
"dev": true
|
261 |
-
},
|
262 |
-
"body-parser": {
|
263 |
-
"version": "1.14.2",
|
264 |
-
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
265 |
-
"integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=",
|
266 |
-
"dev": true,
|
267 |
-
"dependencies": {
|
268 |
-
"iconv-lite": {
|
269 |
-
"version": "0.4.13",
|
270 |
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
271 |
-
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
|
272 |
-
"dev": true
|
273 |
-
},
|
274 |
-
"qs": {
|
275 |
-
"version": "5.2.0",
|
276 |
-
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
277 |
-
"integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
|
278 |
-
"dev": true
|
279 |
-
}
|
280 |
-
}
|
281 |
-
},
|
282 |
-
"boom": {
|
283 |
-
"version": "4.3.1",
|
284 |
-
"resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
|
285 |
-
"integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
|
286 |
-
"dev": true,
|
287 |
-
"optional": true
|
288 |
-
},
|
289 |
-
"brace-expansion": {
|
290 |
-
"version": "1.1.8",
|
291 |
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
|
292 |
-
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
|
293 |
-
"dev": true
|
294 |
-
},
|
295 |
-
"braces": {
|
296 |
-
"version": "1.8.5",
|
297 |
-
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
|
298 |
-
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
|
299 |
-
"dev": true
|
300 |
-
},
|
301 |
-
"browserify-zlib": {
|
302 |
-
"version": "0.1.4",
|
303 |
-
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
|
304 |
-
"integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
|
305 |
-
"dev": true
|
306 |
-
},
|
307 |
-
"buffer-crc32": {
|
308 |
-
"version": "0.2.13",
|
309 |
-
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
310 |
-
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
311 |
-
"dev": true
|
312 |
-
},
|
313 |
-
"buffer-to-vinyl": {
|
314 |
-
"version": "1.1.0",
|
315 |
-
"resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
|
316 |
-
"integrity": "sha1-APFfruOreh3aLN5tkSG//dB7ImI=",
|
317 |
-
"dev": true,
|
318 |
-
"dependencies": {
|
319 |
-
"uuid": {
|
320 |
-
"version": "2.0.3",
|
321 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
|
322 |
-
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
|
323 |
-
"dev": true
|
324 |
-
}
|
325 |
-
}
|
326 |
-
},
|
327 |
-
"builtin-modules": {
|
328 |
-
"version": "1.1.1",
|
329 |
-
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
330 |
-
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
|
331 |
-
"dev": true
|
332 |
-
},
|
333 |
-
"bytes": {
|
334 |
-
"version": "2.2.0",
|
335 |
-
"resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz",
|
336 |
-
"integrity": "sha1-/TVGSkA/b5EXwt42Cez/nK4ABYg=",
|
337 |
-
"dev": true
|
338 |
-
},
|
339 |
-
"cache-swap": {
|
340 |
-
"version": "0.3.0",
|
341 |
-
"resolved": "https://registry.npmjs.org/cache-swap/-/cache-swap-0.3.0.tgz",
|
342 |
-
"integrity": "sha1-HFQaoQilAQb2ML3Zj+HeyLoTP1E=",
|
343 |
-
"dev": true,
|
344 |
-
"dependencies": {
|
345 |
-
"rimraf": {
|
346 |
-
"version": "2.6.2",
|
347 |
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
348 |
-
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
349 |
-
"dev": true
|
350 |
-
}
|
351 |
-
}
|
352 |
-
},
|
353 |
-
"camelcase": {
|
354 |
-
"version": "2.1.1",
|
355 |
-
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
|
356 |
-
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
|
357 |
-
"dev": true
|
358 |
-
},
|
359 |
-
"camelcase-keys": {
|
360 |
-
"version": "2.1.0",
|
361 |
-
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
|
362 |
-
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
|
363 |
-
"dev": true
|
364 |
-
},
|
365 |
-
"capture-stack-trace": {
|
366 |
-
"version": "1.0.0",
|
367 |
-
"resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
|
368 |
-
"integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
|
369 |
-
"dev": true
|
370 |
-
},
|
371 |
-
"caseless": {
|
372 |
-
"version": "0.12.0",
|
373 |
-
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
374 |
-
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
375 |
-
"dev": true,
|
376 |
-
"optional": true
|
377 |
-
},
|
378 |
-
"caw": {
|
379 |
-
"version": "1.2.0",
|
380 |
-
"resolved": "https://registry.npmjs.org/caw/-/caw-1.2.0.tgz",
|
381 |
-
"integrity": "sha1-/7Im/n78VHKI3GLuPpcHPCEtEDQ=",
|
382 |
-
"dev": true,
|
383 |
-
"dependencies": {
|
384 |
-
"object-assign": {
|
385 |
-
"version": "3.0.0",
|
386 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
387 |
-
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
|
388 |
-
"dev": true
|
389 |
-
},
|
390 |
-
"tunnel-agent": {
|
391 |
-
"version": "0.4.3",
|
392 |
-
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
393 |
-
"integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=",
|
394 |
-
"dev": true
|
395 |
-
}
|
396 |
-
}
|
397 |
-
},
|
398 |
-
"center-align": {
|
399 |
-
"version": "0.1.3",
|
400 |
-
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
|
401 |
-
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
|
402 |
-
"dev": true
|
403 |
-
},
|
404 |
-
"chalk": {
|
405 |
-
"version": "1.1.3",
|
406 |
-
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
407 |
-
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
408 |
-
"dev": true
|
409 |
-
},
|
410 |
-
"chownr": {
|
411 |
-
"version": "1.0.1",
|
412 |
-
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
|
413 |
-
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
|
414 |
-
},
|
415 |
-
"clap": {
|
416 |
-
"version": "1.2.3",
|
417 |
-
"resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
|
418 |
-
"integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
|
419 |
-
"dev": true,
|
420 |
-
"optional": true
|
421 |
-
},
|
422 |
-
"cli": {
|
423 |
-
"version": "1.0.1",
|
424 |
-
"resolved": "https://registry.npmjs.org/cli/-/cli-1.0.1.tgz",
|
425 |
-
"integrity": "sha1-IoF1NPJL+klQw01TLUjsvGIbjBQ=",
|
426 |
-
"dev": true,
|
427 |
-
"dependencies": {
|
428 |
-
"glob": {
|
429 |
-
"version": "7.1.2",
|
430 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
431 |
-
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
432 |
-
"dev": true
|
433 |
-
}
|
434 |
-
}
|
435 |
-
},
|
436 |
-
"cliui": {
|
437 |
-
"version": "2.1.0",
|
438 |
-
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
|
439 |
-
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
|
440 |
-
"dev": true
|
441 |
-
},
|
442 |
-
"clone": {
|
443 |
-
"version": "1.0.2",
|
444 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
|
445 |
-
"integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
|
446 |
-
"dev": true
|
447 |
-
},
|
448 |
-
"clone-stats": {
|
449 |
-
"version": "0.0.1",
|
450 |
-
"resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
|
451 |
-
"integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=",
|
452 |
-
"dev": true
|
453 |
-
},
|
454 |
-
"co": {
|
455 |
-
"version": "4.6.0",
|
456 |
-
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
457 |
-
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
|
458 |
-
"dev": true,
|
459 |
-
"optional": true
|
460 |
-
},
|
461 |
-
"coa": {
|
462 |
-
"version": "1.0.4",
|
463 |
-
"resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
|
464 |
-
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
|
465 |
-
"dev": true,
|
466 |
-
"optional": true
|
467 |
-
},
|
468 |
-
"code-point-at": {
|
469 |
-
"version": "1.1.0",
|
470 |
-
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
471 |
-
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
|
472 |
-
},
|
473 |
-
"coffee-script": {
|
474 |
-
"version": "1.10.0",
|
475 |
-
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.10.0.tgz",
|
476 |
-
"integrity": "sha1-EpOLz5vhlI+gBvkuDEyegXBRCMA=",
|
477 |
-
"dev": true
|
478 |
-
},
|
479 |
-
"colors": {
|
480 |
-
"version": "1.1.2",
|
481 |
-
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
|
482 |
-
"integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
|
483 |
-
"dev": true
|
484 |
-
},
|
485 |
-
"combined-stream": {
|
486 |
-
"version": "1.0.5",
|
487 |
-
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
|
488 |
-
"integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
|
489 |
-
"dev": true
|
490 |
-
},
|
491 |
-
"commander": {
|
492 |
-
"version": "2.8.1",
|
493 |
-
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
|
494 |
-
"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
|
495 |
-
"dev": true
|
496 |
-
},
|
497 |
-
"compress-commons": {
|
498 |
-
"version": "1.2.1",
|
499 |
-
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-1.2.1.tgz",
|
500 |
-
"integrity": "sha1-A77UVxhQv4dLQoOnNyaSh2j2Ry8=",
|
501 |
-
"dev": true
|
502 |
-
},
|
503 |
-
"concat-map": {
|
504 |
-
"version": "0.0.1",
|
505 |
-
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
506 |
-
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
507 |
-
"dev": true
|
508 |
-
},
|
509 |
-
"concat-stream": {
|
510 |
-
"version": "1.6.0",
|
511 |
-
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
|
512 |
-
"integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
|
513 |
-
"dev": true
|
514 |
-
},
|
515 |
-
"console-browserify": {
|
516 |
-
"version": "1.1.0",
|
517 |
-
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
|
518 |
-
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
|
519 |
-
"dev": true
|
520 |
-
},
|
521 |
-
"console-control-strings": {
|
522 |
-
"version": "1.1.0",
|
523 |
-
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
524 |
-
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
|
525 |
-
},
|
526 |
-
"console-stream": {
|
527 |
-
"version": "0.1.1",
|
528 |
-
"resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz",
|
529 |
-
"integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=",
|
530 |
-
"dev": true,
|
531 |
-
"optional": true
|
532 |
-
},
|
533 |
-
"content-type": {
|
534 |
-
"version": "1.0.4",
|
535 |
-
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
536 |
-
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
|
537 |
-
"dev": true
|
538 |
-
},
|
539 |
-
"convert-source-map": {
|
540 |
-
"version": "1.5.0",
|
541 |
-
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz",
|
542 |
-
"integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=",
|
543 |
-
"dev": true
|
544 |
-
},
|
545 |
-
"core-util-is": {
|
546 |
-
"version": "1.0.2",
|
547 |
-
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
548 |
-
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
549 |
-
"dev": true
|
550 |
-
},
|
551 |
-
"crc": {
|
552 |
-
"version": "3.5.0",
|
553 |
-
"resolved": "https://registry.npmjs.org/crc/-/crc-3.5.0.tgz",
|
554 |
-
"integrity": "sha1-mLi6fUiWZbo5efWbITgTdBAaGWQ=",
|
555 |
-
"dev": true
|
556 |
-
},
|
557 |
-
"crc32-stream": {
|
558 |
-
"version": "2.0.0",
|
559 |
-
"resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-2.0.0.tgz",
|
560 |
-
"integrity": "sha1-483TtN8xaN10494/u8t7KX/pCPQ=",
|
561 |
-
"dev": true
|
562 |
-
},
|
563 |
-
"create-error-class": {
|
564 |
-
"version": "3.0.2",
|
565 |
-
"resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
|
566 |
-
"integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
|
567 |
-
"dev": true
|
568 |
-
},
|
569 |
-
"cryptiles": {
|
570 |
-
"version": "3.1.2",
|
571 |
-
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz",
|
572 |
-
"integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
|
573 |
-
"dev": true,
|
574 |
-
"optional": true,
|
575 |
-
"dependencies": {
|
576 |
-
"boom": {
|
577 |
-
"version": "5.2.0",
|
578 |
-
"resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz",
|
579 |
-
"integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
|
580 |
-
"dev": true,
|
581 |
-
"optional": true
|
582 |
-
}
|
583 |
-
}
|
584 |
-
},
|
585 |
-
"csso": {
|
586 |
-
"version": "2.0.0",
|
587 |
-
"resolved": "https://registry.npmjs.org/csso/-/csso-2.0.0.tgz",
|
588 |
-
"integrity": "sha1-F4tDpEYhIhwndWCG9THgL0KQDug=",
|
589 |
-
"dev": true,
|
590 |
-
"optional": true
|
591 |
-
},
|
592 |
-
"currently-unhandled": {
|
593 |
-
"version": "0.4.1",
|
594 |
-
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
|
595 |
-
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
|
596 |
-
"dev": true
|
597 |
-
},
|
598 |
-
"dashdash": {
|
599 |
-
"version": "1.14.1",
|
600 |
-
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
601 |
-
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
602 |
-
"dev": true,
|
603 |
-
"optional": true
|
604 |
-
},
|
605 |
-
"date-now": {
|
606 |
-
"version": "0.1.4",
|
607 |
-
"resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
|
608 |
-
"integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
|
609 |
-
"dev": true
|
610 |
-
},
|
611 |
-
"dateformat": {
|
612 |
-
"version": "1.0.12",
|
613 |
-
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
|
614 |
-
"integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
|
615 |
-
"dev": true
|
616 |
-
},
|
617 |
-
"debug": {
|
618 |
-
"version": "2.2.0",
|
619 |
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
620 |
-
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
621 |
-
"dev": true
|
622 |
-
},
|
623 |
-
"decamelize": {
|
624 |
-
"version": "1.2.0",
|
625 |
-
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
626 |
-
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
|
627 |
-
"dev": true
|
628 |
-
},
|
629 |
-
"decompress": {
|
630 |
-
"version": "3.0.0",
|
631 |
-
"resolved": "https://registry.npmjs.org/decompress/-/decompress-3.0.0.tgz",
|
632 |
-
"integrity": "sha1-rx3VDQbjv8QyRh033hGzjA2ZG+0=",
|
633 |
-
"dev": true
|
634 |
-
},
|
635 |
-
"decompress-tar": {
|
636 |
-
"version": "3.1.0",
|
637 |
-
"resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-3.1.0.tgz",
|
638 |
-
"integrity": "sha1-IXx4n5uURQ76rcXF5TeXj8MzxGY=",
|
639 |
-
"dev": true,
|
640 |
-
"dependencies": {
|
641 |
-
"clone": {
|
642 |
-
"version": "0.2.0",
|
643 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
|
644 |
-
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
|
645 |
-
"dev": true
|
646 |
-
},
|
647 |
-
"object-assign": {
|
648 |
-
"version": "2.1.1",
|
649 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
|
650 |
-
"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
|
651 |
-
"dev": true
|
652 |
-
},
|
653 |
-
"vinyl": {
|
654 |
-
"version": "0.4.6",
|
655 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
|
656 |
-
"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
|
657 |
-
"dev": true
|
658 |
-
}
|
659 |
-
}
|
660 |
-
},
|
661 |
-
"decompress-tarbz2": {
|
662 |
-
"version": "3.1.0",
|
663 |
-
"resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-3.1.0.tgz",
|
664 |
-
"integrity": "sha1-iyOTVoE1X58YnYclag+L3ZbZZm0=",
|
665 |
-
"dev": true,
|
666 |
-
"dependencies": {
|
667 |
-
"clone": {
|
668 |
-
"version": "0.2.0",
|
669 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
|
670 |
-
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
|
671 |
-
"dev": true
|
672 |
-
},
|
673 |
-
"object-assign": {
|
674 |
-
"version": "2.1.1",
|
675 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
|
676 |
-
"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
|
677 |
-
"dev": true
|
678 |
-
},
|
679 |
-
"vinyl": {
|
680 |
-
"version": "0.4.6",
|
681 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
|
682 |
-
"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
|
683 |
-
"dev": true
|
684 |
-
}
|
685 |
-
}
|
686 |
-
},
|
687 |
-
"decompress-targz": {
|
688 |
-
"version": "3.1.0",
|
689 |
-
"resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-3.1.0.tgz",
|
690 |
-
"integrity": "sha1-ssE9+YFmJomRtxXWRH9kLpaW9aA=",
|
691 |
-
"dev": true,
|
692 |
-
"dependencies": {
|
693 |
-
"clone": {
|
694 |
-
"version": "0.2.0",
|
695 |
-
"resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz",
|
696 |
-
"integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=",
|
697 |
-
"dev": true
|
698 |
-
},
|
699 |
-
"object-assign": {
|
700 |
-
"version": "2.1.1",
|
701 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
|
702 |
-
"integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo=",
|
703 |
-
"dev": true
|
704 |
-
},
|
705 |
-
"vinyl": {
|
706 |
-
"version": "0.4.6",
|
707 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz",
|
708 |
-
"integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=",
|
709 |
-
"dev": true
|
710 |
-
}
|
711 |
-
}
|
712 |
-
},
|
713 |
-
"decompress-unzip": {
|
714 |
-
"version": "3.4.0",
|
715 |
-
"resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-3.4.0.tgz",
|
716 |
-
"integrity": "sha1-YUdbQVIGa74/7hL51inRX+ZHjus=",
|
717 |
-
"dev": true,
|
718 |
-
"dependencies": {
|
719 |
-
"through2": {
|
720 |
-
"version": "2.0.3",
|
721 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
722 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
723 |
-
"dev": true
|
724 |
-
}
|
725 |
-
}
|
726 |
-
},
|
727 |
-
"deep-extend": {
|
728 |
-
"version": "0.4.2",
|
729 |
-
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
|
730 |
-
"integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
|
731 |
-
"dev": true
|
732 |
-
},
|
733 |
-
"define-properties": {
|
734 |
-
"version": "1.1.2",
|
735 |
-
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
|
736 |
-
"integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
|
737 |
-
"dev": true
|
738 |
-
},
|
739 |
-
"delayed-stream": {
|
740 |
-
"version": "1.0.0",
|
741 |
-
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
742 |
-
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
743 |
-
"dev": true
|
744 |
-
},
|
745 |
-
"delegates": {
|
746 |
-
"version": "1.0.0",
|
747 |
-
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
748 |
-
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
|
749 |
-
},
|
750 |
-
"depd": {
|
751 |
-
"version": "1.1.1",
|
752 |
-
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
|
753 |
-
"integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=",
|
754 |
-
"dev": true
|
755 |
-
},
|
756 |
-
"detect-libc": {
|
757 |
-
"version": "0.2.0",
|
758 |
-
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-0.2.0.tgz",
|
759 |
-
"integrity": "sha1-R/31ZzSKF+wl/L8LnkRjSKdvn7U="
|
760 |
-
},
|
761 |
-
"dom-serializer": {
|
762 |
-
"version": "0.1.0",
|
763 |
-
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
|
764 |
-
"integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
|
765 |
-
"dev": true,
|
766 |
-
"dependencies": {
|
767 |
-
"domelementtype": {
|
768 |
-
"version": "1.1.3",
|
769 |
-
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz",
|
770 |
-
"integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=",
|
771 |
-
"dev": true
|
772 |
-
},
|
773 |
-
"entities": {
|
774 |
-
"version": "1.1.1",
|
775 |
-
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz",
|
776 |
-
"integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=",
|
777 |
-
"dev": true
|
778 |
-
}
|
779 |
-
}
|
780 |
-
},
|
781 |
-
"domelementtype": {
|
782 |
-
"version": "1.3.0",
|
783 |
-
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz",
|
784 |
-
"integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=",
|
785 |
-
"dev": true
|
786 |
-
},
|
787 |
-
"domhandler": {
|
788 |
-
"version": "2.3.0",
|
789 |
-
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
|
790 |
-
"integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
|
791 |
-
"dev": true
|
792 |
-
},
|
793 |
-
"domutils": {
|
794 |
-
"version": "1.5.1",
|
795 |
-
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
|
796 |
-
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
|
797 |
-
"dev": true
|
798 |
-
},
|
799 |
-
"download": {
|
800 |
-
"version": "4.4.3",
|
801 |
-
"resolved": "https://registry.npmjs.org/download/-/download-4.4.3.tgz",
|
802 |
-
"integrity": "sha1-qlX9rTktldS2jowr4D4MKqIbqaw=",
|
803 |
-
"dev": true
|
804 |
-
},
|
805 |
-
"duplexer2": {
|
806 |
-
"version": "0.1.4",
|
807 |
-
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
|
808 |
-
"integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
|
809 |
-
"dev": true
|
810 |
-
},
|
811 |
-
"duplexify": {
|
812 |
-
"version": "3.5.1",
|
813 |
-
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.1.tgz",
|
814 |
-
"integrity": "sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==",
|
815 |
-
"dev": true
|
816 |
-
},
|
817 |
-
"each-async": {
|
818 |
-
"version": "1.1.1",
|
819 |
-
"resolved": "https://registry.npmjs.org/each-async/-/each-async-1.1.1.tgz",
|
820 |
-
"integrity": "sha1-3uUim98KtrogEqOV4bhpq/iBNHM=",
|
821 |
-
"dev": true
|
822 |
-
},
|
823 |
-
"ecc-jsbn": {
|
824 |
-
"version": "0.1.1",
|
825 |
-
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
|
826 |
-
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
|
827 |
-
"dev": true,
|
828 |
-
"optional": true
|
829 |
-
},
|
830 |
-
"ee-first": {
|
831 |
-
"version": "1.1.1",
|
832 |
-
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
833 |
-
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
|
834 |
-
"dev": true
|
835 |
-
},
|
836 |
-
"encoding": {
|
837 |
-
"version": "0.1.12",
|
838 |
-
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
|
839 |
-
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
|
840 |
-
"dev": true
|
841 |
-
},
|
842 |
-
"end-of-stream": {
|
843 |
-
"version": "1.4.0",
|
844 |
-
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
|
845 |
-
"integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
|
846 |
-
"dev": true
|
847 |
-
},
|
848 |
-
"entities": {
|
849 |
-
"version": "1.0.0",
|
850 |
-
"resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
|
851 |
-
"integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=",
|
852 |
-
"dev": true
|
853 |
-
},
|
854 |
-
"errno": {
|
855 |
-
"version": "0.1.4",
|
856 |
-
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
|
857 |
-
"integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
|
858 |
-
"dev": true,
|
859 |
-
"optional": true
|
860 |
-
},
|
861 |
-
"error-ex": {
|
862 |
-
"version": "1.3.1",
|
863 |
-
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
|
864 |
-
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
|
865 |
-
"dev": true
|
866 |
-
},
|
867 |
-
"escape-string-regexp": {
|
868 |
-
"version": "1.0.5",
|
869 |
-
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
870 |
-
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
|
871 |
-
"dev": true
|
872 |
-
},
|
873 |
-
"esprima": {
|
874 |
-
"version": "2.7.3",
|
875 |
-
"resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
|
876 |
-
"integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
|
877 |
-
"dev": true
|
878 |
-
},
|
879 |
-
"eventemitter2": {
|
880 |
-
"version": "0.4.14",
|
881 |
-
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
|
882 |
-
"integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
|
883 |
-
"dev": true
|
884 |
-
},
|
885 |
-
"exec-buffer": {
|
886 |
-
"version": "2.0.1",
|
887 |
-
"resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-2.0.1.tgz",
|
888 |
-
"integrity": "sha1-ACijG+CxRgth0HX5avRYO54zXqA=",
|
889 |
-
"dev": true,
|
890 |
-
"optional": true
|
891 |
-
},
|
892 |
-
"exec-series": {
|
893 |
-
"version": "1.0.3",
|
894 |
-
"resolved": "https://registry.npmjs.org/exec-series/-/exec-series-1.0.3.tgz",
|
895 |
-
"integrity": "sha1-bSV6m+rEgqhyx3g7yGFYOfx3FDo=",
|
896 |
-
"dev": true,
|
897 |
-
"optional": true
|
898 |
-
},
|
899 |
-
"executable": {
|
900 |
-
"version": "1.1.0",
|
901 |
-
"resolved": "https://registry.npmjs.org/executable/-/executable-1.1.0.tgz",
|
902 |
-
"integrity": "sha1-h3mA6REvM5EGbaNyZd562ENKtNk=",
|
903 |
-
"dev": true,
|
904 |
-
"optional": true
|
905 |
-
},
|
906 |
-
"exit": {
|
907 |
-
"version": "0.1.2",
|
908 |
-
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
|
909 |
-
"integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
|
910 |
-
"dev": true
|
911 |
-
},
|
912 |
-
"expand-brackets": {
|
913 |
-
"version": "0.1.5",
|
914 |
-
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
|
915 |
-
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
|
916 |
-
"dev": true
|
917 |
-
},
|
918 |
-
"expand-range": {
|
919 |
-
"version": "1.8.2",
|
920 |
-
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
|
921 |
-
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
|
922 |
-
"dev": true
|
923 |
-
},
|
924 |
-
"expand-template": {
|
925 |
-
"version": "1.1.0",
|
926 |
-
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz",
|
927 |
-
"integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ=="
|
928 |
-
},
|
929 |
-
"extend": {
|
930 |
-
"version": "3.0.1",
|
931 |
-
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
|
932 |
-
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
|
933 |
-
"dev": true
|
934 |
-
},
|
935 |
-
"extend-shallow": {
|
936 |
-
"version": "2.0.1",
|
937 |
-
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
|
938 |
-
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
|
939 |
-
"dev": true
|
940 |
-
},
|
941 |
-
"extglob": {
|
942 |
-
"version": "0.3.2",
|
943 |
-
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
|
944 |
-
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
|
945 |
-
"dev": true,
|
946 |
-
"dependencies": {
|
947 |
-
"is-extglob": {
|
948 |
-
"version": "1.0.0",
|
949 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
950 |
-
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
|
951 |
-
"dev": true
|
952 |
-
}
|
953 |
-
}
|
954 |
-
},
|
955 |
-
"extsprintf": {
|
956 |
-
"version": "1.3.0",
|
957 |
-
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
958 |
-
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
959 |
-
"dev": true
|
960 |
-
},
|
961 |
-
"fancy-log": {
|
962 |
-
"version": "1.3.0",
|
963 |
-
"resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz",
|
964 |
-
"integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=",
|
965 |
-
"dev": true
|
966 |
-
},
|
967 |
-
"fast-deep-equal": {
|
968 |
-
"version": "1.0.0",
|
969 |
-
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
|
970 |
-
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
|
971 |
-
"dev": true,
|
972 |
-
"optional": true
|
973 |
-
},
|
974 |
-
"faye-websocket": {
|
975 |
-
"version": "0.10.0",
|
976 |
-
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
|
977 |
-
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
|
978 |
-
"dev": true
|
979 |
-
},
|
980 |
-
"fd-slicer": {
|
981 |
-
"version": "1.0.1",
|
982 |
-
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
|
983 |
-
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
|
984 |
-
"dev": true
|
985 |
-
},
|
986 |
-
"figures": {
|
987 |
-
"version": "1.7.0",
|
988 |
-
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
|
989 |
-
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
|
990 |
-
"dev": true
|
991 |
-
},
|
992 |
-
"file-sync-cmp": {
|
993 |
-
"version": "0.1.1",
|
994 |
-
"resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
|
995 |
-
"integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
|
996 |
-
"dev": true
|
997 |
-
},
|
998 |
-
"file-type": {
|
999 |
-
"version": "3.9.0",
|
1000 |
-
"resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
|
1001 |
-
"integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=",
|
1002 |
-
"dev": true
|
1003 |
-
},
|
1004 |
-
"filename-regex": {
|
1005 |
-
"version": "2.0.1",
|
1006 |
-
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
|
1007 |
-
"integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=",
|
1008 |
-
"dev": true
|
1009 |
-
},
|
1010 |
-
"filename-reserved-regex": {
|
1011 |
-
"version": "1.0.0",
|
1012 |
-
"resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz",
|
1013 |
-
"integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=",
|
1014 |
-
"dev": true
|
1015 |
-
},
|
1016 |
-
"filenamify": {
|
1017 |
-
"version": "1.2.1",
|
1018 |
-
"resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz",
|
1019 |
-
"integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=",
|
1020 |
-
"dev": true
|
1021 |
-
},
|
1022 |
-
"fill-range": {
|
1023 |
-
"version": "2.2.3",
|
1024 |
-
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz",
|
1025 |
-
"integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=",
|
1026 |
-
"dev": true
|
1027 |
-
},
|
1028 |
-
"find-up": {
|
1029 |
-
"version": "1.1.2",
|
1030 |
-
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
|
1031 |
-
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
|
1032 |
-
"dev": true
|
1033 |
-
},
|
1034 |
-
"find-versions": {
|
1035 |
-
"version": "1.2.1",
|
1036 |
-
"resolved": "https://registry.npmjs.org/find-versions/-/find-versions-1.2.1.tgz",
|
1037 |
-
"integrity": "sha1-y96fEuOFdaCvG+G5osXV/Y8Ya2I=",
|
1038 |
-
"dev": true,
|
1039 |
-
"optional": true
|
1040 |
-
},
|
1041 |
-
"findup-sync": {
|
1042 |
-
"version": "0.3.0",
|
1043 |
-
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
|
1044 |
-
"integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
|
1045 |
-
"dev": true,
|
1046 |
-
"dependencies": {
|
1047 |
-
"glob": {
|
1048 |
-
"version": "5.0.15",
|
1049 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
1050 |
-
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
|
1051 |
-
"dev": true
|
1052 |
-
}
|
1053 |
-
}
|
1054 |
-
},
|
1055 |
-
"first-chunk-stream": {
|
1056 |
-
"version": "1.0.0",
|
1057 |
-
"resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz",
|
1058 |
-
"integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=",
|
1059 |
-
"dev": true
|
1060 |
-
},
|
1061 |
-
"for-in": {
|
1062 |
-
"version": "1.0.2",
|
1063 |
-
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
|
1064 |
-
"integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
|
1065 |
-
"dev": true
|
1066 |
-
},
|
1067 |
-
"for-own": {
|
1068 |
-
"version": "0.1.5",
|
1069 |
-
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
|
1070 |
-
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
|
1071 |
-
"dev": true
|
1072 |
-
},
|
1073 |
-
"foreach": {
|
1074 |
-
"version": "2.0.5",
|
1075 |
-
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
|
1076 |
-
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
|
1077 |
-
"dev": true
|
1078 |
-
},
|
1079 |
-
"forever-agent": {
|
1080 |
-
"version": "0.6.1",
|
1081 |
-
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
1082 |
-
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
1083 |
-
"dev": true,
|
1084 |
-
"optional": true
|
1085 |
-
},
|
1086 |
-
"form-data": {
|
1087 |
-
"version": "2.3.1",
|
1088 |
-
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
|
1089 |
-
"integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
|
1090 |
-
"dev": true,
|
1091 |
-
"optional": true
|
1092 |
-
},
|
1093 |
-
"fs.realpath": {
|
1094 |
-
"version": "1.0.0",
|
1095 |
-
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
1096 |
-
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
1097 |
-
"dev": true
|
1098 |
-
},
|
1099 |
-
"fstream": {
|
1100 |
-
"version": "1.0.11",
|
1101 |
-
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
1102 |
-
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE="
|
1103 |
-
},
|
1104 |
-
"function-bind": {
|
1105 |
-
"version": "1.1.1",
|
1106 |
-
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
1107 |
-
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
1108 |
-
"dev": true
|
1109 |
-
},
|
1110 |
-
"gauge": {
|
1111 |
-
"version": "2.7.4",
|
1112 |
-
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
1113 |
-
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c="
|
1114 |
-
},
|
1115 |
-
"gaze": {
|
1116 |
-
"version": "1.1.2",
|
1117 |
-
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz",
|
1118 |
-
"integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=",
|
1119 |
-
"dev": true
|
1120 |
-
},
|
1121 |
-
"get-proxy": {
|
1122 |
-
"version": "1.1.0",
|
1123 |
-
"resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-1.1.0.tgz",
|
1124 |
-
"integrity": "sha1-iUhUSRvFkbDxR9euVw9cZ4tyVus=",
|
1125 |
-
"dev": true
|
1126 |
-
},
|
1127 |
-
"get-stdin": {
|
1128 |
-
"version": "4.0.1",
|
1129 |
-
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
1130 |
-
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
|
1131 |
-
"dev": true
|
1132 |
-
},
|
1133 |
-
"getobject": {
|
1134 |
-
"version": "0.1.0",
|
1135 |
-
"resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
|
1136 |
-
"integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
|
1137 |
-
"dev": true
|
1138 |
-
},
|
1139 |
-
"getpass": {
|
1140 |
-
"version": "0.1.7",
|
1141 |
-
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
1142 |
-
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
1143 |
-
"dev": true,
|
1144 |
-
"optional": true
|
1145 |
-
},
|
1146 |
-
"gettext-parser": {
|
1147 |
-
"version": "1.3.0",
|
1148 |
-
"resolved": "https://registry.npmjs.org/gettext-parser/-/gettext-parser-1.3.0.tgz",
|
1149 |
-
"integrity": "sha512-iloxjcw+uTPnQ8DrGICWtqkHNgk3mAiDI77pLmXQCnhM+BxFQXstzTA4zj3EpIYMysRQnnNzHyHzBUEazz80Sw==",
|
1150 |
-
"dev": true
|
1151 |
-
},
|
1152 |
-
"gifsicle": {
|
1153 |
-
"version": "3.0.4",
|
1154 |
-
"resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-3.0.4.tgz",
|
1155 |
-
"integrity": "sha1-9Fy17RAWW2ZdySng6TKLbIId+js=",
|
1156 |
-
"dev": true,
|
1157 |
-
"optional": true
|
1158 |
-
},
|
1159 |
-
"github-from-package": {
|
1160 |
-
"version": "0.0.0",
|
1161 |
-
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
1162 |
-
"integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
|
1163 |
-
},
|
1164 |
-
"glob": {
|
1165 |
-
"version": "7.0.6",
|
1166 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
|
1167 |
-
"integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
|
1168 |
-
"dev": true
|
1169 |
-
},
|
1170 |
-
"glob-base": {
|
1171 |
-
"version": "0.3.0",
|
1172 |
-
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
|
1173 |
-
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
|
1174 |
-
"dev": true,
|
1175 |
-
"dependencies": {
|
1176 |
-
"glob-parent": {
|
1177 |
-
"version": "2.0.0",
|
1178 |
-
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
|
1179 |
-
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
|
1180 |
-
"dev": true
|
1181 |
-
},
|
1182 |
-
"is-extglob": {
|
1183 |
-
"version": "1.0.0",
|
1184 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
1185 |
-
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
|
1186 |
-
"dev": true
|
1187 |
-
},
|
1188 |
-
"is-glob": {
|
1189 |
-
"version": "2.0.1",
|
1190 |
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
1191 |
-
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
1192 |
-
"dev": true
|
1193 |
-
}
|
1194 |
-
}
|
1195 |
-
},
|
1196 |
-
"glob-parent": {
|
1197 |
-
"version": "3.1.0",
|
1198 |
-
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
|
1199 |
-
"integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
|
1200 |
-
"dev": true
|
1201 |
-
},
|
1202 |
-
"glob-stream": {
|
1203 |
-
"version": "5.3.5",
|
1204 |
-
"resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz",
|
1205 |
-
"integrity": "sha1-pVZlqajM3EGRWofHAeMtTgFvrSI=",
|
1206 |
-
"dev": true,
|
1207 |
-
"dependencies": {
|
1208 |
-
"glob": {
|
1209 |
-
"version": "5.0.15",
|
1210 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
|
1211 |
-
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
|
1212 |
-
"dev": true
|
1213 |
-
}
|
1214 |
-
}
|
1215 |
-
},
|
1216 |
-
"globule": {
|
1217 |
-
"version": "1.2.0",
|
1218 |
-
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
|
1219 |
-
"integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
|
1220 |
-
"dev": true,
|
1221 |
-
"dependencies": {
|
1222 |
-
"glob": {
|
1223 |
-
"version": "7.1.2",
|
1224 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
1225 |
-
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
1226 |
-
"dev": true
|
1227 |
-
},
|
1228 |
-
"lodash": {
|
1229 |
-
"version": "4.17.4",
|
1230 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
1231 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
1232 |
-
"dev": true
|
1233 |
-
}
|
1234 |
-
}
|
1235 |
-
},
|
1236 |
-
"glogg": {
|
1237 |
-
"version": "1.0.0",
|
1238 |
-
"resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz",
|
1239 |
-
"integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=",
|
1240 |
-
"dev": true
|
1241 |
-
},
|
1242 |
-
"got": {
|
1243 |
-
"version": "5.7.1",
|
1244 |
-
"resolved": "https://registry.npmjs.org/got/-/got-5.7.1.tgz",
|
1245 |
-
"integrity": "sha1-X4FjWmHkplifGAVp6k44FoClHzU=",
|
1246 |
-
"dev": true
|
1247 |
-
},
|
1248 |
-
"graceful-fs": {
|
1249 |
-
"version": "4.1.11",
|
1250 |
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
1251 |
-
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
|
1252 |
-
"dev": true
|
1253 |
-
},
|
1254 |
-
"graceful-readlink": {
|
1255 |
-
"version": "1.0.1",
|
1256 |
-
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
1257 |
-
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
|
1258 |
-
"dev": true
|
1259 |
-
},
|
1260 |
-
"grunt": {
|
1261 |
-
"version": "1.0.1",
|
1262 |
-
"resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.1.tgz",
|
1263 |
-
"integrity": "sha1-6HeHZOlEsY8yuw8QuQeEdcnftWs=",
|
1264 |
-
"dev": true,
|
1265 |
-
"dependencies": {
|
1266 |
-
"grunt-cli": {
|
1267 |
-
"version": "1.2.0",
|
1268 |
-
"resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
|
1269 |
-
"integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
|
1270 |
-
"dev": true
|
1271 |
-
}
|
1272 |
-
}
|
1273 |
-
},
|
1274 |
-
"grunt-contrib-clean": {
|
1275 |
-
"version": "1.1.0",
|
1276 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz",
|
1277 |
-
"integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=",
|
1278 |
-
"dev": true,
|
1279 |
-
"dependencies": {
|
1280 |
-
"rimraf": {
|
1281 |
-
"version": "2.6.2",
|
1282 |
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
1283 |
-
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
1284 |
-
"dev": true
|
1285 |
-
}
|
1286 |
-
}
|
1287 |
-
},
|
1288 |
-
"grunt-contrib-compress": {
|
1289 |
-
"version": "1.4.3",
|
1290 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-compress/-/grunt-contrib-compress-1.4.3.tgz",
|
1291 |
-
"integrity": "sha1-Ac7/ucY39S5wgfRjdQmD0KOw+nM=",
|
1292 |
-
"dev": true,
|
1293 |
-
"dependencies": {
|
1294 |
-
"lodash": {
|
1295 |
-
"version": "4.17.4",
|
1296 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
1297 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
1298 |
-
"dev": true
|
1299 |
-
}
|
1300 |
-
}
|
1301 |
-
},
|
1302 |
-
"grunt-contrib-concat": {
|
1303 |
-
"version": "1.0.1",
|
1304 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-concat/-/grunt-contrib-concat-1.0.1.tgz",
|
1305 |
-
"integrity": "sha1-YVCYYwhOhx1+ht5IwBUlntl3Rb0=",
|
1306 |
-
"dev": true
|
1307 |
-
},
|
1308 |
-
"grunt-contrib-copy": {
|
1309 |
-
"version": "1.0.0",
|
1310 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
|
1311 |
-
"integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
|
1312 |
-
"dev": true
|
1313 |
-
},
|
1314 |
-
"grunt-contrib-imagemin": {
|
1315 |
-
"version": "1.0.1",
|
1316 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-imagemin/-/grunt-contrib-imagemin-1.0.1.tgz",
|
1317 |
-
"integrity": "sha1-5Ho1YTN29MqpwfkERlA8rhyUTXk=",
|
1318 |
-
"dev": true,
|
1319 |
-
"dependencies": {
|
1320 |
-
"pretty-bytes": {
|
1321 |
-
"version": "3.0.1",
|
1322 |
-
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
|
1323 |
-
"integrity": "sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8=",
|
1324 |
-
"dev": true
|
1325 |
-
}
|
1326 |
-
}
|
1327 |
-
},
|
1328 |
-
"grunt-contrib-jshint": {
|
1329 |
-
"version": "1.1.0",
|
1330 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-jshint/-/grunt-contrib-jshint-1.1.0.tgz",
|
1331 |
-
"integrity": "sha1-Np2QmyWTxA6L55lAshNAhQx5Oaw=",
|
1332 |
-
"dev": true
|
1333 |
-
},
|
1334 |
-
"grunt-contrib-less": {
|
1335 |
-
"version": "1.4.1",
|
1336 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-less/-/grunt-contrib-less-1.4.1.tgz",
|
1337 |
-
"integrity": "sha1-O73sC3XRLOqlXWKUNiXAsIYc328=",
|
1338 |
-
"dev": true,
|
1339 |
-
"dependencies": {
|
1340 |
-
"async": {
|
1341 |
-
"version": "2.5.0",
|
1342 |
-
"resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz",
|
1343 |
-
"integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==",
|
1344 |
-
"dev": true
|
1345 |
-
},
|
1346 |
-
"lodash": {
|
1347 |
-
"version": "4.17.4",
|
1348 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
1349 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
1350 |
-
"dev": true
|
1351 |
-
}
|
1352 |
-
}
|
1353 |
-
},
|
1354 |
-
"grunt-contrib-uglify": {
|
1355 |
-
"version": "2.3.0",
|
1356 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz",
|
1357 |
-
"integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=",
|
1358 |
-
"dev": true
|
1359 |
-
},
|
1360 |
-
"grunt-contrib-watch": {
|
1361 |
-
"version": "1.0.0",
|
1362 |
-
"resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.0.0.tgz",
|
1363 |
-
"integrity": "sha1-hKGnodar0m7VaEE0lscxM+mQAY8=",
|
1364 |
-
"dev": true
|
1365 |
-
},
|
1366 |
-
"grunt-known-options": {
|
1367 |
-
"version": "1.1.0",
|
1368 |
-
"resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
|
1369 |
-
"integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=",
|
1370 |
-
"dev": true
|
1371 |
-
},
|
1372 |
-
"grunt-legacy-log": {
|
1373 |
-
"version": "1.0.0",
|
1374 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-1.0.0.tgz",
|
1375 |
-
"integrity": "sha1-+4bxgJhHvAfcR4Q/ns1srLYt8tU=",
|
1376 |
-
"dev": true
|
1377 |
-
},
|
1378 |
-
"grunt-legacy-log-utils": {
|
1379 |
-
"version": "1.0.0",
|
1380 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz",
|
1381 |
-
"integrity": "sha1-p7ji0Ps1taUPSvmG/BEnSevJbz0=",
|
1382 |
-
"dev": true,
|
1383 |
-
"dependencies": {
|
1384 |
-
"lodash": {
|
1385 |
-
"version": "4.3.0",
|
1386 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
|
1387 |
-
"integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
|
1388 |
-
"dev": true
|
1389 |
-
}
|
1390 |
-
}
|
1391 |
-
},
|
1392 |
-
"grunt-legacy-util": {
|
1393 |
-
"version": "1.0.0",
|
1394 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz",
|
1395 |
-
"integrity": "sha1-OGqnjcbtUJhsKxiVcmWxtIq7m4Y=",
|
1396 |
-
"dev": true,
|
1397 |
-
"dependencies": {
|
1398 |
-
"lodash": {
|
1399 |
-
"version": "4.3.0",
|
1400 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.3.0.tgz",
|
1401 |
-
"integrity": "sha1-79nEpuxT87BUEkKZFcPkgk5NJaQ=",
|
1402 |
-
"dev": true
|
1403 |
-
}
|
1404 |
-
}
|
1405 |
-
},
|
1406 |
-
"grunt-phplint": {
|
1407 |
-
"version": "0.1.0",
|
1408 |
-
"resolved": "https://registry.npmjs.org/grunt-phplint/-/grunt-phplint-0.1.0.tgz",
|
1409 |
-
"integrity": "sha1-bb4uauxTqiKc+sCtmnyZ4kGEhI0=",
|
1410 |
-
"dev": true,
|
1411 |
-
"dependencies": {
|
1412 |
-
"argparse": {
|
1413 |
-
"version": "0.1.16",
|
1414 |
-
"resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz",
|
1415 |
-
"integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=",
|
1416 |
-
"dev": true,
|
1417 |
-
"dependencies": {
|
1418 |
-
"underscore.string": {
|
1419 |
-
"version": "2.4.0",
|
1420 |
-
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.4.0.tgz",
|
1421 |
-
"integrity": "sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=",
|
1422 |
-
"dev": true
|
1423 |
-
}
|
1424 |
-
}
|
1425 |
-
},
|
1426 |
-
"async": {
|
1427 |
-
"version": "0.1.22",
|
1428 |
-
"resolved": "https://registry.npmjs.org/async/-/async-0.1.22.tgz",
|
1429 |
-
"integrity": "sha1-D8GqoIig4+8Ovi2IMbqw3PiEUGE=",
|
1430 |
-
"dev": true
|
1431 |
-
},
|
1432 |
-
"coffee-script": {
|
1433 |
-
"version": "1.3.3",
|
1434 |
-
"resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.3.3.tgz",
|
1435 |
-
"integrity": "sha1-FQ1rTLUiiUNp7+1qIQHCC8f0pPQ=",
|
1436 |
-
"dev": true
|
1437 |
-
},
|
1438 |
-
"colors": {
|
1439 |
-
"version": "0.6.2",
|
1440 |
-
"resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
|
1441 |
-
"integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=",
|
1442 |
-
"dev": true
|
1443 |
-
},
|
1444 |
-
"dateformat": {
|
1445 |
-
"version": "1.0.2-1.2.3",
|
1446 |
-
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.2-1.2.3.tgz",
|
1447 |
-
"integrity": "sha1-sCIMAt6YYXQztyhRz0fePfLNvuk=",
|
1448 |
-
"dev": true
|
1449 |
-
},
|
1450 |
-
"esprima": {
|
1451 |
-
"version": "1.0.4",
|
1452 |
-
"resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz",
|
1453 |
-
"integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=",
|
1454 |
-
"dev": true
|
1455 |
-
},
|
1456 |
-
"findup-sync": {
|
1457 |
-
"version": "0.1.3",
|
1458 |
-
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.1.3.tgz",
|
1459 |
-
"integrity": "sha1-fz56l7gjksZTvwZYm9hRkOk8NoM=",
|
1460 |
-
"dev": true,
|
1461 |
-
"dependencies": {
|
1462 |
-
"glob": {
|
1463 |
-
"version": "3.2.11",
|
1464 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz",
|
1465 |
-
"integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=",
|
1466 |
-
"dev": true
|
1467 |
-
},
|
1468 |
-
"lodash": {
|
1469 |
-
"version": "2.4.2",
|
1470 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
|
1471 |
-
"integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
|
1472 |
-
"dev": true
|
1473 |
-
},
|
1474 |
-
"minimatch": {
|
1475 |
-
"version": "0.3.0",
|
1476 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz",
|
1477 |
-
"integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=",
|
1478 |
-
"dev": true
|
1479 |
-
}
|
1480 |
-
}
|
1481 |
-
},
|
1482 |
-
"glob": {
|
1483 |
-
"version": "3.1.21",
|
1484 |
-
"resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz",
|
1485 |
-
"integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=",
|
1486 |
-
"dev": true,
|
1487 |
-
"dependencies": {
|
1488 |
-
"inherits": {
|
1489 |
-
"version": "1.0.2",
|
1490 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz",
|
1491 |
-
"integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=",
|
1492 |
-
"dev": true
|
1493 |
-
}
|
1494 |
-
}
|
1495 |
-
},
|
1496 |
-
"graceful-fs": {
|
1497 |
-
"version": "1.2.3",
|
1498 |
-
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
|
1499 |
-
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
|
1500 |
-
"dev": true
|
1501 |
-
},
|
1502 |
-
"grunt": {
|
1503 |
-
"version": "0.4.5",
|
1504 |
-
"resolved": "https://registry.npmjs.org/grunt/-/grunt-0.4.5.tgz",
|
1505 |
-
"integrity": "sha1-VpN81RlDJK3/bSB2MYMqnWuk5/A=",
|
1506 |
-
"dev": true
|
1507 |
-
},
|
1508 |
-
"grunt-legacy-log": {
|
1509 |
-
"version": "0.1.3",
|
1510 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-0.1.3.tgz",
|
1511 |
-
"integrity": "sha1-7ClCboAwIa9ZAp+H0vnNczWgVTE=",
|
1512 |
-
"dev": true,
|
1513 |
-
"dependencies": {
|
1514 |
-
"lodash": {
|
1515 |
-
"version": "2.4.2",
|
1516 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
|
1517 |
-
"integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
|
1518 |
-
"dev": true
|
1519 |
-
},
|
1520 |
-
"underscore.string": {
|
1521 |
-
"version": "2.3.3",
|
1522 |
-
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
|
1523 |
-
"integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
|
1524 |
-
"dev": true
|
1525 |
-
}
|
1526 |
-
}
|
1527 |
-
},
|
1528 |
-
"grunt-legacy-log-utils": {
|
1529 |
-
"version": "0.1.1",
|
1530 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-0.1.1.tgz",
|
1531 |
-
"integrity": "sha1-wHBrndkGThFvNvI/5OawSGcsD34=",
|
1532 |
-
"dev": true,
|
1533 |
-
"dependencies": {
|
1534 |
-
"lodash": {
|
1535 |
-
"version": "2.4.2",
|
1536 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz",
|
1537 |
-
"integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=",
|
1538 |
-
"dev": true
|
1539 |
-
},
|
1540 |
-
"underscore.string": {
|
1541 |
-
"version": "2.3.3",
|
1542 |
-
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.3.3.tgz",
|
1543 |
-
"integrity": "sha1-ccCL9rQosRM/N+ePo6Icgvcymw0=",
|
1544 |
-
"dev": true
|
1545 |
-
}
|
1546 |
-
}
|
1547 |
-
},
|
1548 |
-
"grunt-legacy-util": {
|
1549 |
-
"version": "0.2.0",
|
1550 |
-
"resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-0.2.0.tgz",
|
1551 |
-
"integrity": "sha1-kzJIhNv343qf98Am3/RR2UqeVUs=",
|
1552 |
-
"dev": true
|
1553 |
-
},
|
1554 |
-
"iconv-lite": {
|
1555 |
-
"version": "0.2.11",
|
1556 |
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.2.11.tgz",
|
1557 |
-
"integrity": "sha1-HOYKOleGSiktEyH/RgnKS7llrcg=",
|
1558 |
-
"dev": true
|
1559 |
-
},
|
1560 |
-
"js-yaml": {
|
1561 |
-
"version": "2.0.5",
|
1562 |
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-2.0.5.tgz",
|
1563 |
-
"integrity": "sha1-olrmUJmZ6X3yeMZxnaEb0Gh3Q6g=",
|
1564 |
-
"dev": true
|
1565 |
-
},
|
1566 |
-
"lodash": {
|
1567 |
-
"version": "0.9.2",
|
1568 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-0.9.2.tgz",
|
1569 |
-
"integrity": "sha1-jzSZxSRdNG1oLlsNO0B2fgnxqSw=",
|
1570 |
-
"dev": true
|
1571 |
-
},
|
1572 |
-
"minimatch": {
|
1573 |
-
"version": "0.2.14",
|
1574 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
|
1575 |
-
"integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=",
|
1576 |
-
"dev": true
|
1577 |
-
},
|
1578 |
-
"nopt": {
|
1579 |
-
"version": "1.0.10",
|
1580 |
-
"resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
|
1581 |
-
"integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
|
1582 |
-
"dev": true
|
1583 |
-
},
|
1584 |
-
"underscore.string": {
|
1585 |
-
"version": "2.2.1",
|
1586 |
-
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-2.2.1.tgz",
|
1587 |
-
"integrity": "sha1-18D6KvXVoaZ/QlPa7pgTLnM/Dxk=",
|
1588 |
-
"dev": true
|
1589 |
-
},
|
1590 |
-
"which": {
|
1591 |
-
"version": "1.0.9",
|
1592 |
-
"resolved": "https://registry.npmjs.org/which/-/which-1.0.9.tgz",
|
1593 |
-
"integrity": "sha1-RgwdoPgQED0DIam2M6+eV15kSG8=",
|
1594 |
-
"dev": true
|
1595 |
-
}
|
1596 |
-
}
|
1597 |
-
},
|
1598 |
-
"grunt-ssh": {
|
1599 |
-
"version": "0.12.9",
|
1600 |
-
"resolved": "https://registry.npmjs.org/grunt-ssh/-/grunt-ssh-0.12.9.tgz",
|
1601 |
-
"integrity": "sha1-IVUaNzmB8Ooo3HmdOKdp5UzU2QQ=",
|
1602 |
-
"dev": true
|
1603 |
-
},
|
1604 |
-
"grunt-wp-i18n": {
|
1605 |
-
"version": "1.0.0",
|
1606 |
-
"resolved": "https://registry.npmjs.org/grunt-wp-i18n/-/grunt-wp-i18n-1.0.0.tgz",
|
1607 |
-
"integrity": "sha1-ks0J6DXkV+4jiSYo6yNRYcxKZ5A=",
|
1608 |
-
"dev": true
|
1609 |
-
},
|
1610 |
-
"gulp-decompress": {
|
1611 |
-
"version": "1.2.0",
|
1612 |
-
"resolved": "https://registry.npmjs.org/gulp-decompress/-/gulp-decompress-1.2.0.tgz",
|
1613 |
-
"integrity": "sha1-jutlpeAV+O2FMsr+KEVJYGJvDcc=",
|
1614 |
-
"dev": true
|
1615 |
-
},
|
1616 |
-
"gulp-rename": {
|
1617 |
-
"version": "1.2.2",
|
1618 |
-
"resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.2.2.tgz",
|
1619 |
-
"integrity": "sha1-OtRCh2PwXidk3sHGfYaNsnVoeBc=",
|
1620 |
-
"dev": true
|
1621 |
-
},
|
1622 |
-
"gulp-sourcemaps": {
|
1623 |
-
"version": "1.6.0",
|
1624 |
-
"resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz",
|
1625 |
-
"integrity": "sha1-uG/zSdgBzrVuHZ59x7vLS33uYAw=",
|
1626 |
-
"dev": true,
|
1627 |
-
"dependencies": {
|
1628 |
-
"through2": {
|
1629 |
-
"version": "2.0.3",
|
1630 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1631 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1632 |
-
"dev": true
|
1633 |
-
}
|
1634 |
-
}
|
1635 |
-
},
|
1636 |
-
"gulp-util": {
|
1637 |
-
"version": "3.0.8",
|
1638 |
-
"resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz",
|
1639 |
-
"integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=",
|
1640 |
-
"dev": true,
|
1641 |
-
"dependencies": {
|
1642 |
-
"dateformat": {
|
1643 |
-
"version": "2.2.0",
|
1644 |
-
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz",
|
1645 |
-
"integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=",
|
1646 |
-
"dev": true
|
1647 |
-
},
|
1648 |
-
"object-assign": {
|
1649 |
-
"version": "3.0.0",
|
1650 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
|
1651 |
-
"integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=",
|
1652 |
-
"dev": true
|
1653 |
-
},
|
1654 |
-
"through2": {
|
1655 |
-
"version": "2.0.3",
|
1656 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1657 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1658 |
-
"dev": true
|
1659 |
-
},
|
1660 |
-
"vinyl": {
|
1661 |
-
"version": "0.5.3",
|
1662 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz",
|
1663 |
-
"integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=",
|
1664 |
-
"dev": true
|
1665 |
-
}
|
1666 |
-
}
|
1667 |
-
},
|
1668 |
-
"gulplog": {
|
1669 |
-
"version": "1.0.0",
|
1670 |
-
"resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz",
|
1671 |
-
"integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=",
|
1672 |
-
"dev": true
|
1673 |
-
},
|
1674 |
-
"gzip-size": {
|
1675 |
-
"version": "1.0.0",
|
1676 |
-
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
|
1677 |
-
"integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
|
1678 |
-
"dev": true
|
1679 |
-
},
|
1680 |
-
"har-schema": {
|
1681 |
-
"version": "2.0.0",
|
1682 |
-
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
1683 |
-
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
1684 |
-
"dev": true,
|
1685 |
-
"optional": true
|
1686 |
-
},
|
1687 |
-
"har-validator": {
|
1688 |
-
"version": "5.0.3",
|
1689 |
-
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
|
1690 |
-
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
|
1691 |
-
"dev": true,
|
1692 |
-
"optional": true
|
1693 |
-
},
|
1694 |
-
"has-ansi": {
|
1695 |
-
"version": "2.0.0",
|
1696 |
-
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
|
1697 |
-
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
|
1698 |
-
"dev": true
|
1699 |
-
},
|
1700 |
-
"has-gulplog": {
|
1701 |
-
"version": "0.1.0",
|
1702 |
-
"resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz",
|
1703 |
-
"integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=",
|
1704 |
-
"dev": true
|
1705 |
-
},
|
1706 |
-
"has-unicode": {
|
1707 |
-
"version": "2.0.1",
|
1708 |
-
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
1709 |
-
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
|
1710 |
-
},
|
1711 |
-
"hawk": {
|
1712 |
-
"version": "6.0.2",
|
1713 |
-
"resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
|
1714 |
-
"integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
|
1715 |
-
"dev": true,
|
1716 |
-
"optional": true
|
1717 |
-
},
|
1718 |
-
"hoek": {
|
1719 |
-
"version": "4.2.0",
|
1720 |
-
"resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
|
1721 |
-
"integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
|
1722 |
-
"dev": true
|
1723 |
-
},
|
1724 |
-
"hooker": {
|
1725 |
-
"version": "0.2.3",
|
1726 |
-
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
|
1727 |
-
"integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
|
1728 |
-
"dev": true
|
1729 |
-
},
|
1730 |
-
"hosted-git-info": {
|
1731 |
-
"version": "2.5.0",
|
1732 |
-
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
|
1733 |
-
"integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
|
1734 |
-
"dev": true
|
1735 |
-
},
|
1736 |
-
"htmlparser2": {
|
1737 |
-
"version": "3.8.3",
|
1738 |
-
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
|
1739 |
-
"integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
|
1740 |
-
"dev": true,
|
1741 |
-
"dependencies": {
|
1742 |
-
"isarray": {
|
1743 |
-
"version": "0.0.1",
|
1744 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
1745 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
1746 |
-
"dev": true
|
1747 |
-
},
|
1748 |
-
"readable-stream": {
|
1749 |
-
"version": "1.1.14",
|
1750 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
1751 |
-
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
1752 |
-
"dev": true
|
1753 |
-
},
|
1754 |
-
"string_decoder": {
|
1755 |
-
"version": "0.10.31",
|
1756 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
1757 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
1758 |
-
"dev": true
|
1759 |
-
}
|
1760 |
-
}
|
1761 |
-
},
|
1762 |
-
"http-errors": {
|
1763 |
-
"version": "1.3.1",
|
1764 |
-
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz",
|
1765 |
-
"integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=",
|
1766 |
-
"dev": true
|
1767 |
-
},
|
1768 |
-
"http-parser-js": {
|
1769 |
-
"version": "0.4.9",
|
1770 |
-
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.9.tgz",
|
1771 |
-
"integrity": "sha1-6hoE+2St/wJC6ZdPKX3Uw8rSceE=",
|
1772 |
-
"dev": true
|
1773 |
-
},
|
1774 |
-
"http-signature": {
|
1775 |
-
"version": "1.2.0",
|
1776 |
-
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
1777 |
-
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
1778 |
-
"dev": true,
|
1779 |
-
"optional": true
|
1780 |
-
},
|
1781 |
-
"iconv-lite": {
|
1782 |
-
"version": "0.4.19",
|
1783 |
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
|
1784 |
-
"integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
|
1785 |
-
"dev": true
|
1786 |
-
},
|
1787 |
-
"iltorb": {
|
1788 |
-
"version": "1.3.9",
|
1789 |
-
"resolved": "https://registry.npmjs.org/iltorb/-/iltorb-1.3.9.tgz",
|
1790 |
-
"integrity": "sha512-ry0dJz4CZuZya1UcDY7m9Yb+rdGmn4R86I0EoKgXmyNRzUdzM0kfR7G9Ioj9mH5aiDa/V9b0JaCH8S0JniveEA=="
|
1791 |
-
},
|
1792 |
-
"image-size": {
|
1793 |
-
"version": "0.5.5",
|
1794 |
-
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
1795 |
-
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
|
1796 |
-
"dev": true,
|
1797 |
-
"optional": true
|
1798 |
-
},
|
1799 |
-
"imagemin": {
|
1800 |
-
"version": "4.0.0",
|
1801 |
-
"resolved": "https://registry.npmjs.org/imagemin/-/imagemin-4.0.0.tgz",
|
1802 |
-
"integrity": "sha1-6Q5/CTaDZZXxj6Ff6Qb0+iWeqEc=",
|
1803 |
-
"dev": true
|
1804 |
-
},
|
1805 |
-
"imagemin-gifsicle": {
|
1806 |
-
"version": "4.2.0",
|
1807 |
-
"resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-4.2.0.tgz",
|
1808 |
-
"integrity": "sha1-D++butNHbmt2iFc2zFsLh6CHV8o=",
|
1809 |
-
"dev": true,
|
1810 |
-
"optional": true
|
1811 |
-
},
|
1812 |
-
"imagemin-jpegtran": {
|
1813 |
-
"version": "4.3.2",
|
1814 |
-
"resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-4.3.2.tgz",
|
1815 |
-
"integrity": "sha1-G8bR4r0T/bZNJFUm1jWn5d/rEvw=",
|
1816 |
-
"dev": true,
|
1817 |
-
"optional": true,
|
1818 |
-
"dependencies": {
|
1819 |
-
"through2": {
|
1820 |
-
"version": "2.0.3",
|
1821 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1822 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1823 |
-
"dev": true,
|
1824 |
-
"optional": true
|
1825 |
-
}
|
1826 |
-
}
|
1827 |
-
},
|
1828 |
-
"imagemin-optipng": {
|
1829 |
-
"version": "4.3.0",
|
1830 |
-
"resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-4.3.0.tgz",
|
1831 |
-
"integrity": "sha1-dgRmOrLuMVczJ0cm/Rw3TStErbY=",
|
1832 |
-
"dev": true,
|
1833 |
-
"optional": true
|
1834 |
-
},
|
1835 |
-
"imagemin-svgo": {
|
1836 |
-
"version": "4.2.1",
|
1837 |
-
"resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-4.2.1.tgz",
|
1838 |
-
"integrity": "sha1-VPB9xW9HJgRi32phxUvvtEtXvlU=",
|
1839 |
-
"dev": true,
|
1840 |
-
"optional": true,
|
1841 |
-
"dependencies": {
|
1842 |
-
"through2": {
|
1843 |
-
"version": "2.0.3",
|
1844 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
1845 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
1846 |
-
"dev": true,
|
1847 |
-
"optional": true
|
1848 |
-
}
|
1849 |
-
}
|
1850 |
-
},
|
1851 |
-
"indent-string": {
|
1852 |
-
"version": "2.1.0",
|
1853 |
-
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
|
1854 |
-
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
|
1855 |
-
"dev": true
|
1856 |
-
},
|
1857 |
-
"inflight": {
|
1858 |
-
"version": "1.0.6",
|
1859 |
-
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
1860 |
-
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
1861 |
-
"dev": true
|
1862 |
-
},
|
1863 |
-
"inherits": {
|
1864 |
-
"version": "2.0.3",
|
1865 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
1866 |
-
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
1867 |
-
"dev": true
|
1868 |
-
},
|
1869 |
-
"ini": {
|
1870 |
-
"version": "1.3.4",
|
1871 |
-
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
|
1872 |
-
"integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
|
1873 |
-
"dev": true
|
1874 |
-
},
|
1875 |
-
"ip-regex": {
|
1876 |
-
"version": "1.0.3",
|
1877 |
-
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz",
|
1878 |
-
"integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=",
|
1879 |
-
"dev": true,
|
1880 |
-
"optional": true
|
1881 |
-
},
|
1882 |
-
"is-absolute": {
|
1883 |
-
"version": "0.1.7",
|
1884 |
-
"resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-0.1.7.tgz",
|
1885 |
-
"integrity": "sha1-hHSREZ/MtftDYhfMc39/qtUPYD8=",
|
1886 |
-
"dev": true
|
1887 |
-
},
|
1888 |
-
"is-arrayish": {
|
1889 |
-
"version": "0.2.1",
|
1890 |
-
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
1891 |
-
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
|
1892 |
-
"dev": true
|
1893 |
-
},
|
1894 |
-
"is-buffer": {
|
1895 |
-
"version": "1.1.5",
|
1896 |
-
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz",
|
1897 |
-
"integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=",
|
1898 |
-
"dev": true
|
1899 |
-
},
|
1900 |
-
"is-builtin-module": {
|
1901 |
-
"version": "1.0.0",
|
1902 |
-
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
|
1903 |
-
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
|
1904 |
-
"dev": true
|
1905 |
-
},
|
1906 |
-
"is-bzip2": {
|
1907 |
-
"version": "1.0.0",
|
1908 |
-
"resolved": "https://registry.npmjs.org/is-bzip2/-/is-bzip2-1.0.0.tgz",
|
1909 |
-
"integrity": "sha1-XuWOqlounIDiFAe+3yOuWsCRs/w=",
|
1910 |
-
"dev": true
|
1911 |
-
},
|
1912 |
-
"is-dotfile": {
|
1913 |
-
"version": "1.0.3",
|
1914 |
-
"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
|
1915 |
-
"integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=",
|
1916 |
-
"dev": true
|
1917 |
-
},
|
1918 |
-
"is-equal-shallow": {
|
1919 |
-
"version": "0.1.3",
|
1920 |
-
"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
|
1921 |
-
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
|
1922 |
-
"dev": true
|
1923 |
-
},
|
1924 |
-
"is-extendable": {
|
1925 |
-
"version": "0.1.1",
|
1926 |
-
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
|
1927 |
-
"integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=",
|
1928 |
-
"dev": true
|
1929 |
-
},
|
1930 |
-
"is-extglob": {
|
1931 |
-
"version": "2.1.1",
|
1932 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
1933 |
-
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
1934 |
-
"dev": true
|
1935 |
-
},
|
1936 |
-
"is-finite": {
|
1937 |
-
"version": "1.0.2",
|
1938 |
-
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
|
1939 |
-
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
|
1940 |
-
"dev": true
|
1941 |
-
},
|
1942 |
-
"is-fullwidth-code-point": {
|
1943 |
-
"version": "1.0.0",
|
1944 |
-
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
1945 |
-
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs="
|
1946 |
-
},
|
1947 |
-
"is-gif": {
|
1948 |
-
"version": "1.0.0",
|
1949 |
-
"resolved": "https://registry.npmjs.org/is-gif/-/is-gif-1.0.0.tgz",
|
1950 |
-
"integrity": "sha1-ptKumIkwB7/6l6HYwB1jIFgyCX4=",
|
1951 |
-
"dev": true,
|
1952 |
-
"optional": true
|
1953 |
-
},
|
1954 |
-
"is-glob": {
|
1955 |
-
"version": "3.1.0",
|
1956 |
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
|
1957 |
-
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
|
1958 |
-
"dev": true
|
1959 |
-
},
|
1960 |
-
"is-gzip": {
|
1961 |
-
"version": "1.0.0",
|
1962 |
-
"resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz",
|
1963 |
-
"integrity": "sha1-bKiwe5nHeZgCWQDlVc7Y7YCHmoM=",
|
1964 |
-
"dev": true
|
1965 |
-
},
|
1966 |
-
"is-jpg": {
|
1967 |
-
"version": "1.0.0",
|
1968 |
-
"resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-1.0.0.tgz",
|
1969 |
-
"integrity": "sha1-KVnBfnNDDbOCZNp1uQ3VTy2G2hw=",
|
1970 |
-
"dev": true,
|
1971 |
-
"optional": true
|
1972 |
-
},
|
1973 |
-
"is-natural-number": {
|
1974 |
-
"version": "2.1.1",
|
1975 |
-
"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-2.1.1.tgz",
|
1976 |
-
"integrity": "sha1-fUxXKDd+84bD4ZSpkRv1fG3DNec=",
|
1977 |
-
"dev": true
|
1978 |
-
},
|
1979 |
-
"is-number": {
|
1980 |
-
"version": "2.1.0",
|
1981 |
-
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
|
1982 |
-
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
|
1983 |
-
"dev": true
|
1984 |
-
},
|
1985 |
-
"is-obj": {
|
1986 |
-
"version": "1.0.1",
|
1987 |
-
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
|
1988 |
-
"integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
|
1989 |
-
"dev": true
|
1990 |
-
},
|
1991 |
-
"is-png": {
|
1992 |
-
"version": "1.1.0",
|
1993 |
-
"resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz",
|
1994 |
-
"integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=",
|
1995 |
-
"dev": true,
|
1996 |
-
"optional": true
|
1997 |
-
},
|
1998 |
-
"is-posix-bracket": {
|
1999 |
-
"version": "0.1.1",
|
2000 |
-
"resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz",
|
2001 |
-
"integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=",
|
2002 |
-
"dev": true
|
2003 |
-
},
|
2004 |
-
"is-primitive": {
|
2005 |
-
"version": "2.0.0",
|
2006 |
-
"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
|
2007 |
-
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=",
|
2008 |
-
"dev": true
|
2009 |
-
},
|
2010 |
-
"is-redirect": {
|
2011 |
-
"version": "1.0.0",
|
2012 |
-
"resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
|
2013 |
-
"integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
|
2014 |
-
"dev": true
|
2015 |
-
},
|
2016 |
-
"is-relative": {
|
2017 |
-
"version": "0.1.3",
|
2018 |
-
"resolved": "https://registry.npmjs.org/is-relative/-/is-relative-0.1.3.tgz",
|
2019 |
-
"integrity": "sha1-kF/uiuhvRbPsYUvDwVyGnfCHboI=",
|
2020 |
-
"dev": true
|
2021 |
-
},
|
2022 |
-
"is-retry-allowed": {
|
2023 |
-
"version": "1.1.0",
|
2024 |
-
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
|
2025 |
-
"integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
|
2026 |
-
"dev": true
|
2027 |
-
},
|
2028 |
-
"is-stream": {
|
2029 |
-
"version": "1.1.0",
|
2030 |
-
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
2031 |
-
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
|
2032 |
-
"dev": true
|
2033 |
-
},
|
2034 |
-
"is-svg": {
|
2035 |
-
"version": "1.1.1",
|
2036 |
-
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-1.1.1.tgz",
|
2037 |
-
"integrity": "sha1-rA76r7ZTrFhHNwix+HNjbKEQ4xs=",
|
2038 |
-
"dev": true,
|
2039 |
-
"optional": true
|
2040 |
-
},
|
2041 |
-
"is-tar": {
|
2042 |
-
"version": "1.0.0",
|
2043 |
-
"resolved": "https://registry.npmjs.org/is-tar/-/is-tar-1.0.0.tgz",
|
2044 |
-
"integrity": "sha1-L2suF5LB9bs2UZrKqdZcDSb+hT0=",
|
2045 |
-
"dev": true
|
2046 |
-
},
|
2047 |
-
"is-typedarray": {
|
2048 |
-
"version": "1.0.0",
|
2049 |
-
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
2050 |
-
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
2051 |
-
"dev": true,
|
2052 |
-
"optional": true
|
2053 |
-
},
|
2054 |
-
"is-url": {
|
2055 |
-
"version": "1.2.2",
|
2056 |
-
"resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz",
|
2057 |
-
"integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=",
|
2058 |
-
"dev": true
|
2059 |
-
},
|
2060 |
-
"is-utf8": {
|
2061 |
-
"version": "0.2.1",
|
2062 |
-
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
|
2063 |
-
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
|
2064 |
-
"dev": true
|
2065 |
-
},
|
2066 |
-
"is-valid-glob": {
|
2067 |
-
"version": "0.3.0",
|
2068 |
-
"resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz",
|
2069 |
-
"integrity": "sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=",
|
2070 |
-
"dev": true
|
2071 |
-
},
|
2072 |
-
"is-zip": {
|
2073 |
-
"version": "1.0.0",
|
2074 |
-
"resolved": "https://registry.npmjs.org/is-zip/-/is-zip-1.0.0.tgz",
|
2075 |
-
"integrity": "sha1-R7Co/004p2QxzP2ZqOFaTIa6IyU=",
|
2076 |
-
"dev": true
|
2077 |
-
},
|
2078 |
-
"isarray": {
|
2079 |
-
"version": "1.0.0",
|
2080 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
2081 |
-
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
2082 |
-
"dev": true
|
2083 |
-
},
|
2084 |
-
"isexe": {
|
2085 |
-
"version": "2.0.0",
|
2086 |
-
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
2087 |
-
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
2088 |
-
"dev": true
|
2089 |
-
},
|
2090 |
-
"isobject": {
|
2091 |
-
"version": "2.1.0",
|
2092 |
-
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
|
2093 |
-
"integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
|
2094 |
-
"dev": true
|
2095 |
-
},
|
2096 |
-
"isstream": {
|
2097 |
-
"version": "0.1.2",
|
2098 |
-
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
2099 |
-
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
2100 |
-
"dev": true,
|
2101 |
-
"optional": true
|
2102 |
-
},
|
2103 |
-
"jpegtran-bin": {
|
2104 |
-
"version": "3.2.0",
|
2105 |
-
"resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-3.2.0.tgz",
|
2106 |
-
"integrity": "sha1-9g7PSumZwL2tLp+83ytvCYHnops=",
|
2107 |
-
"dev": true,
|
2108 |
-
"optional": true
|
2109 |
-
},
|
2110 |
-
"js-yaml": {
|
2111 |
-
"version": "3.5.5",
|
2112 |
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
|
2113 |
-
"integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
|
2114 |
-
"dev": true
|
2115 |
-
},
|
2116 |
-
"jsbn": {
|
2117 |
-
"version": "0.1.1",
|
2118 |
-
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
2119 |
-
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
2120 |
-
"dev": true,
|
2121 |
-
"optional": true
|
2122 |
-
},
|
2123 |
-
"jshint": {
|
2124 |
-
"version": "2.9.5",
|
2125 |
-
"resolved": "https://registry.npmjs.org/jshint/-/jshint-2.9.5.tgz",
|
2126 |
-
"integrity": "sha1-HnJSkVzmgbQIJ+4UJIxG006apiw=",
|
2127 |
-
"dev": true,
|
2128 |
-
"dependencies": {
|
2129 |
-
"lodash": {
|
2130 |
-
"version": "3.7.0",
|
2131 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.7.0.tgz",
|
2132 |
-
"integrity": "sha1-Nni9irmVBXwHreg27S7wh9qBHUU=",
|
2133 |
-
"dev": true
|
2134 |
-
},
|
2135 |
-
"strip-json-comments": {
|
2136 |
-
"version": "1.0.4",
|
2137 |
-
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz",
|
2138 |
-
"integrity": "sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=",
|
2139 |
-
"dev": true
|
2140 |
-
}
|
2141 |
-
}
|
2142 |
-
},
|
2143 |
-
"json-schema": {
|
2144 |
-
"version": "0.2.3",
|
2145 |
-
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
2146 |
-
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
2147 |
-
"dev": true,
|
2148 |
-
"optional": true
|
2149 |
-
},
|
2150 |
-
"json-schema-traverse": {
|
2151 |
-
"version": "0.3.1",
|
2152 |
-
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
|
2153 |
-
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
|
2154 |
-
"dev": true,
|
2155 |
-
"optional": true
|
2156 |
-
},
|
2157 |
-
"json-stable-stringify": {
|
2158 |
-
"version": "1.0.1",
|
2159 |
-
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
|
2160 |
-
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
|
2161 |
-
"dev": true
|
2162 |
-
},
|
2163 |
-
"json-stringify-safe": {
|
2164 |
-
"version": "5.0.1",
|
2165 |
-
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
2166 |
-
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
2167 |
-
"dev": true,
|
2168 |
-
"optional": true
|
2169 |
-
},
|
2170 |
-
"jsonify": {
|
2171 |
-
"version": "0.0.0",
|
2172 |
-
"resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
|
2173 |
-
"integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
|
2174 |
-
"dev": true
|
2175 |
-
},
|
2176 |
-
"jsprim": {
|
2177 |
-
"version": "1.4.1",
|
2178 |
-
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
2179 |
-
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
2180 |
-
"dev": true,
|
2181 |
-
"optional": true
|
2182 |
-
},
|
2183 |
-
"kind-of": {
|
2184 |
-
"version": "3.2.2",
|
2185 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
2186 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
2187 |
-
"dev": true
|
2188 |
-
},
|
2189 |
-
"lazy-cache": {
|
2190 |
-
"version": "1.0.4",
|
2191 |
-
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
|
2192 |
-
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
|
2193 |
-
"dev": true
|
2194 |
-
},
|
2195 |
-
"lazy-req": {
|
2196 |
-
"version": "1.1.0",
|
2197 |
-
"resolved": "https://registry.npmjs.org/lazy-req/-/lazy-req-1.1.0.tgz",
|
2198 |
-
"integrity": "sha1-va6+rTD42CQDnODOFJ1Nqge6H6w=",
|
2199 |
-
"dev": true,
|
2200 |
-
"optional": true
|
2201 |
-
},
|
2202 |
-
"lazystream": {
|
2203 |
-
"version": "1.0.0",
|
2204 |
-
"resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz",
|
2205 |
-
"integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=",
|
2206 |
-
"dev": true
|
2207 |
-
},
|
2208 |
-
"less": {
|
2209 |
-
"version": "2.7.2",
|
2210 |
-
"resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz",
|
2211 |
-
"integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=",
|
2212 |
-
"dev": true
|
2213 |
-
},
|
2214 |
-
"livereload-js": {
|
2215 |
-
"version": "2.2.2",
|
2216 |
-
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.2.2.tgz",
|
2217 |
-
"integrity": "sha1-bIclfmSKtHW8JOoldFftzB+NC8I=",
|
2218 |
-
"dev": true
|
2219 |
-
},
|
2220 |
-
"load-json-file": {
|
2221 |
-
"version": "1.1.0",
|
2222 |
-
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
2223 |
-
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
|
2224 |
-
"dev": true
|
2225 |
-
},
|
2226 |
-
"lodash": {
|
2227 |
-
"version": "3.10.1",
|
2228 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
2229 |
-
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
|
2230 |
-
"dev": true
|
2231 |
-
},
|
2232 |
-
"lodash._basecopy": {
|
2233 |
-
"version": "3.0.1",
|
2234 |
-
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
|
2235 |
-
"integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=",
|
2236 |
-
"dev": true
|
2237 |
-
},
|
2238 |
-
"lodash._basetostring": {
|
2239 |
-
"version": "3.0.1",
|
2240 |
-
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz",
|
2241 |
-
"integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=",
|
2242 |
-
"dev": true
|
2243 |
-
},
|
2244 |
-
"lodash._basevalues": {
|
2245 |
-
"version": "3.0.0",
|
2246 |
-
"resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz",
|
2247 |
-
"integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=",
|
2248 |
-
"dev": true
|
2249 |
-
},
|
2250 |
-
"lodash._getnative": {
|
2251 |
-
"version": "3.9.1",
|
2252 |
-
"resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
|
2253 |
-
"integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
|
2254 |
-
"dev": true
|
2255 |
-
},
|
2256 |
-
"lodash._isiterateecall": {
|
2257 |
-
"version": "3.0.9",
|
2258 |
-
"resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz",
|
2259 |
-
"integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=",
|
2260 |
-
"dev": true
|
2261 |
-
},
|
2262 |
-
"lodash._reescape": {
|
2263 |
-
"version": "3.0.0",
|
2264 |
-
"resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz",
|
2265 |
-
"integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=",
|
2266 |
-
"dev": true
|
2267 |
-
},
|
2268 |
-
"lodash._reevaluate": {
|
2269 |
-
"version": "3.0.0",
|
2270 |
-
"resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz",
|
2271 |
-
"integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=",
|
2272 |
-
"dev": true
|
2273 |
-
},
|
2274 |
-
"lodash._reinterpolate": {
|
2275 |
-
"version": "3.0.0",
|
2276 |
-
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
|
2277 |
-
"integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=",
|
2278 |
-
"dev": true
|
2279 |
-
},
|
2280 |
-
"lodash._root": {
|
2281 |
-
"version": "3.0.1",
|
2282 |
-
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
|
2283 |
-
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
|
2284 |
-
"dev": true
|
2285 |
-
},
|
2286 |
-
"lodash.escape": {
|
2287 |
-
"version": "3.2.0",
|
2288 |
-
"resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz",
|
2289 |
-
"integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=",
|
2290 |
-
"dev": true
|
2291 |
-
},
|
2292 |
-
"lodash.isarguments": {
|
2293 |
-
"version": "3.1.0",
|
2294 |
-
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
2295 |
-
"integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=",
|
2296 |
-
"dev": true
|
2297 |
-
},
|
2298 |
-
"lodash.isarray": {
|
2299 |
-
"version": "3.0.4",
|
2300 |
-
"resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz",
|
2301 |
-
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
|
2302 |
-
"dev": true
|
2303 |
-
},
|
2304 |
-
"lodash.isequal": {
|
2305 |
-
"version": "4.5.0",
|
2306 |
-
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
2307 |
-
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
|
2308 |
-
"dev": true
|
2309 |
-
},
|
2310 |
-
"lodash.keys": {
|
2311 |
-
"version": "3.1.2",
|
2312 |
-
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
|
2313 |
-
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
|
2314 |
-
"dev": true
|
2315 |
-
},
|
2316 |
-
"lodash.restparam": {
|
2317 |
-
"version": "3.6.1",
|
2318 |
-
"resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
|
2319 |
-
"integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
|
2320 |
-
"dev": true
|
2321 |
-
},
|
2322 |
-
"lodash.template": {
|
2323 |
-
"version": "3.6.2",
|
2324 |
-
"resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz",
|
2325 |
-
"integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=",
|
2326 |
-
"dev": true
|
2327 |
-
},
|
2328 |
-
"lodash.templatesettings": {
|
2329 |
-
"version": "3.1.1",
|
2330 |
-
"resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz",
|
2331 |
-
"integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=",
|
2332 |
-
"dev": true
|
2333 |
-
},
|
2334 |
-
"logalot": {
|
2335 |
-
"version": "2.1.0",
|
2336 |
-
"resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
|
2337 |
-
"integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
|
2338 |
-
"dev": true,
|
2339 |
-
"optional": true
|
2340 |
-
},
|
2341 |
-
"longest": {
|
2342 |
-
"version": "1.0.1",
|
2343 |
-
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
|
2344 |
-
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
|
2345 |
-
"dev": true
|
2346 |
-
},
|
2347 |
-
"loud-rejection": {
|
2348 |
-
"version": "1.6.0",
|
2349 |
-
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
|
2350 |
-
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
|
2351 |
-
"dev": true
|
2352 |
-
},
|
2353 |
-
"lowercase-keys": {
|
2354 |
-
"version": "1.0.0",
|
2355 |
-
"resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
|
2356 |
-
"integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
|
2357 |
-
"dev": true
|
2358 |
-
},
|
2359 |
-
"lpad-align": {
|
2360 |
-
"version": "1.1.2",
|
2361 |
-
"resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
|
2362 |
-
"integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=",
|
2363 |
-
"dev": true,
|
2364 |
-
"optional": true
|
2365 |
-
},
|
2366 |
-
"lru-cache": {
|
2367 |
-
"version": "2.7.3",
|
2368 |
-
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
2369 |
-
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
|
2370 |
-
"dev": true
|
2371 |
-
},
|
2372 |
-
"map-obj": {
|
2373 |
-
"version": "1.0.1",
|
2374 |
-
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
|
2375 |
-
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
|
2376 |
-
"dev": true
|
2377 |
-
},
|
2378 |
-
"maxmin": {
|
2379 |
-
"version": "1.1.0",
|
2380 |
-
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
|
2381 |
-
"integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
|
2382 |
-
"dev": true,
|
2383 |
-
"dependencies": {
|
2384 |
-
"pretty-bytes": {
|
2385 |
-
"version": "1.0.4",
|
2386 |
-
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
|
2387 |
-
"integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
|
2388 |
-
"dev": true
|
2389 |
-
}
|
2390 |
-
}
|
2391 |
-
},
|
2392 |
-
"media-typer": {
|
2393 |
-
"version": "0.3.0",
|
2394 |
-
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
2395 |
-
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
|
2396 |
-
"dev": true
|
2397 |
-
},
|
2398 |
-
"meow": {
|
2399 |
-
"version": "3.7.0",
|
2400 |
-
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
|
2401 |
-
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
|
2402 |
-
"dev": true
|
2403 |
-
},
|
2404 |
-
"merge-stream": {
|
2405 |
-
"version": "1.0.1",
|
2406 |
-
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz",
|
2407 |
-
"integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
|
2408 |
-
"dev": true
|
2409 |
-
},
|
2410 |
-
"micromatch": {
|
2411 |
-
"version": "2.3.11",
|
2412 |
-
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
|
2413 |
-
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
|
2414 |
-
"dev": true,
|
2415 |
-
"dependencies": {
|
2416 |
-
"is-extglob": {
|
2417 |
-
"version": "1.0.0",
|
2418 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
2419 |
-
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
|
2420 |
-
"dev": true
|
2421 |
-
},
|
2422 |
-
"is-glob": {
|
2423 |
-
"version": "2.0.1",
|
2424 |
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
2425 |
-
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
2426 |
-
"dev": true
|
2427 |
-
}
|
2428 |
-
}
|
2429 |
-
},
|
2430 |
-
"mime": {
|
2431 |
-
"version": "1.4.1",
|
2432 |
-
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
2433 |
-
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
2434 |
-
"dev": true,
|
2435 |
-
"optional": true
|
2436 |
-
},
|
2437 |
-
"mime-db": {
|
2438 |
-
"version": "1.30.0",
|
2439 |
-
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
|
2440 |
-
"integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
|
2441 |
-
"dev": true
|
2442 |
-
},
|
2443 |
-
"mime-types": {
|
2444 |
-
"version": "2.1.17",
|
2445 |
-
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
|
2446 |
-
"integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
|
2447 |
-
"dev": true
|
2448 |
-
},
|
2449 |
-
"minimatch": {
|
2450 |
-
"version": "3.0.4",
|
2451 |
-
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
2452 |
-
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
2453 |
-
"dev": true
|
2454 |
-
},
|
2455 |
-
"minimist": {
|
2456 |
-
"version": "1.2.0",
|
2457 |
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
2458 |
-
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
2459 |
-
"dev": true
|
2460 |
-
},
|
2461 |
-
"mkdirp": {
|
2462 |
-
"version": "0.5.1",
|
2463 |
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
2464 |
-
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
2465 |
-
"dev": true,
|
2466 |
-
"dependencies": {
|
2467 |
-
"minimist": {
|
2468 |
-
"version": "0.0.8",
|
2469 |
-
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
|
2470 |
-
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
|
2471 |
-
"dev": true
|
2472 |
-
}
|
2473 |
-
}
|
2474 |
-
},
|
2475 |
-
"ms": {
|
2476 |
-
"version": "0.7.1",
|
2477 |
-
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
2478 |
-
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
2479 |
-
"dev": true
|
2480 |
-
},
|
2481 |
-
"multipipe": {
|
2482 |
-
"version": "0.1.2",
|
2483 |
-
"resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz",
|
2484 |
-
"integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=",
|
2485 |
-
"dev": true,
|
2486 |
-
"dependencies": {
|
2487 |
-
"duplexer2": {
|
2488 |
-
"version": "0.0.2",
|
2489 |
-
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
|
2490 |
-
"integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
|
2491 |
-
"dev": true
|
2492 |
-
},
|
2493 |
-
"isarray": {
|
2494 |
-
"version": "0.0.1",
|
2495 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
2496 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
2497 |
-
"dev": true
|
2498 |
-
},
|
2499 |
-
"readable-stream": {
|
2500 |
-
"version": "1.1.14",
|
2501 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
|
2502 |
-
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
|
2503 |
-
"dev": true
|
2504 |
-
},
|
2505 |
-
"string_decoder": {
|
2506 |
-
"version": "0.10.31",
|
2507 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
2508 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
2509 |
-
"dev": true
|
2510 |
-
}
|
2511 |
-
}
|
2512 |
-
},
|
2513 |
-
"nan": {
|
2514 |
-
"version": "2.7.0",
|
2515 |
-
"resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz",
|
2516 |
-
"integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY="
|
2517 |
-
},
|
2518 |
-
"node-abi": {
|
2519 |
-
"version": "2.1.1",
|
2520 |
-
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.1.tgz",
|
2521 |
-
"integrity": "sha512-6oxV13poCOv7TfGvhsSz6XZWpXeKkdGVh72++cs33OfMh3KAX8lN84dCvmqSETyDXAFcUHtV7eJrgFBoOqZbNQ=="
|
2522 |
-
},
|
2523 |
-
"node-gyp": {
|
2524 |
-
"version": "3.6.2",
|
2525 |
-
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
|
2526 |
-
"integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
|
2527 |
-
"dependencies": {
|
2528 |
-
"semver": {
|
2529 |
-
"version": "5.3.0",
|
2530 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
2531 |
-
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
|
2532 |
-
}
|
2533 |
-
}
|
2534 |
-
},
|
2535 |
-
"node-status-codes": {
|
2536 |
-
"version": "1.0.0",
|
2537 |
-
"resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
|
2538 |
-
"integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
|
2539 |
-
"dev": true
|
2540 |
-
},
|
2541 |
-
"node-wp-i18n": {
|
2542 |
-
"version": "1.0.2",
|
2543 |
-
"resolved": "https://registry.npmjs.org/node-wp-i18n/-/node-wp-i18n-1.0.2.tgz",
|
2544 |
-
"integrity": "sha1-fwKe9busKlzBazCwkG7R4OVykHA=",
|
2545 |
-
"dev": true,
|
2546 |
-
"dependencies": {
|
2547 |
-
"lodash": {
|
2548 |
-
"version": "4.17.4",
|
2549 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
2550 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
2551 |
-
"dev": true
|
2552 |
-
}
|
2553 |
-
}
|
2554 |
-
},
|
2555 |
-
"noop-logger": {
|
2556 |
-
"version": "0.1.1",
|
2557 |
-
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
2558 |
-
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
|
2559 |
-
},
|
2560 |
-
"nopt": {
|
2561 |
-
"version": "3.0.6",
|
2562 |
-
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
2563 |
-
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
2564 |
-
"dev": true
|
2565 |
-
},
|
2566 |
-
"normalize-package-data": {
|
2567 |
-
"version": "2.4.0",
|
2568 |
-
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
|
2569 |
-
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
|
2570 |
-
"dev": true
|
2571 |
-
},
|
2572 |
-
"normalize-path": {
|
2573 |
-
"version": "2.1.1",
|
2574 |
-
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
|
2575 |
-
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
|
2576 |
-
"dev": true
|
2577 |
-
},
|
2578 |
-
"npmlog": {
|
2579 |
-
"version": "4.1.2",
|
2580 |
-
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
2581 |
-
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="
|
2582 |
-
},
|
2583 |
-
"number-is-nan": {
|
2584 |
-
"version": "1.0.1",
|
2585 |
-
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
2586 |
-
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
|
2587 |
-
"dev": true
|
2588 |
-
},
|
2589 |
-
"oauth-sign": {
|
2590 |
-
"version": "0.8.2",
|
2591 |
-
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
|
2592 |
-
"integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
|
2593 |
-
"dev": true,
|
2594 |
-
"optional": true
|
2595 |
-
},
|
2596 |
-
"object-assign": {
|
2597 |
-
"version": "4.1.1",
|
2598 |
-
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
2599 |
-
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
2600 |
-
"dev": true
|
2601 |
-
},
|
2602 |
-
"object-keys": {
|
2603 |
-
"version": "1.0.11",
|
2604 |
-
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
|
2605 |
-
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
|
2606 |
-
"dev": true
|
2607 |
-
},
|
2608 |
-
"object.assign": {
|
2609 |
-
"version": "4.0.4",
|
2610 |
-
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz",
|
2611 |
-
"integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=",
|
2612 |
-
"dev": true
|
2613 |
-
},
|
2614 |
-
"object.omit": {
|
2615 |
-
"version": "2.0.1",
|
2616 |
-
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
|
2617 |
-
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
|
2618 |
-
"dev": true
|
2619 |
-
},
|
2620 |
-
"on-finished": {
|
2621 |
-
"version": "2.3.0",
|
2622 |
-
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
2623 |
-
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
2624 |
-
"dev": true
|
2625 |
-
},
|
2626 |
-
"once": {
|
2627 |
-
"version": "1.4.0",
|
2628 |
-
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
2629 |
-
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
2630 |
-
"dev": true
|
2631 |
-
},
|
2632 |
-
"onetime": {
|
2633 |
-
"version": "1.1.0",
|
2634 |
-
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
|
2635 |
-
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
|
2636 |
-
"dev": true
|
2637 |
-
},
|
2638 |
-
"optional": {
|
2639 |
-
"version": "0.1.4",
|
2640 |
-
"resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
|
2641 |
-
"integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==",
|
2642 |
-
"dev": true
|
2643 |
-
},
|
2644 |
-
"optipng-bin": {
|
2645 |
-
"version": "3.1.4",
|
2646 |
-
"resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-3.1.4.tgz",
|
2647 |
-
"integrity": "sha1-ldNPLEiHBPb9cGBr/qDGWfHZXYQ=",
|
2648 |
-
"dev": true,
|
2649 |
-
"optional": true
|
2650 |
-
},
|
2651 |
-
"ordered-read-streams": {
|
2652 |
-
"version": "0.3.0",
|
2653 |
-
"resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz",
|
2654 |
-
"integrity": "sha1-cTfmmzKYuzQiR6G77jiByA4v14s=",
|
2655 |
-
"dev": true
|
2656 |
-
},
|
2657 |
-
"os-filter-obj": {
|
2658 |
-
"version": "1.0.3",
|
2659 |
-
"resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz",
|
2660 |
-
"integrity": "sha1-WRUzDZDs7VV9LZOKMcbdIU2cY60=",
|
2661 |
-
"dev": true,
|
2662 |
-
"optional": true
|
2663 |
-
},
|
2664 |
-
"os-homedir": {
|
2665 |
-
"version": "1.0.2",
|
2666 |
-
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
|
2667 |
-
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
|
2668 |
-
},
|
2669 |
-
"os-tmpdir": {
|
2670 |
-
"version": "1.0.2",
|
2671 |
-
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
2672 |
-
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
2673 |
-
"dev": true
|
2674 |
-
},
|
2675 |
-
"osenv": {
|
2676 |
-
"version": "0.1.4",
|
2677 |
-
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
|
2678 |
-
"integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ="
|
2679 |
-
},
|
2680 |
-
"pako": {
|
2681 |
-
"version": "0.2.9",
|
2682 |
-
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
|
2683 |
-
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
|
2684 |
-
"dev": true
|
2685 |
-
},
|
2686 |
-
"parse-glob": {
|
2687 |
-
"version": "3.0.4",
|
2688 |
-
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
|
2689 |
-
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
|
2690 |
-
"dev": true,
|
2691 |
-
"dependencies": {
|
2692 |
-
"is-extglob": {
|
2693 |
-
"version": "1.0.0",
|
2694 |
-
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
|
2695 |
-
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
|
2696 |
-
"dev": true
|
2697 |
-
},
|
2698 |
-
"is-glob": {
|
2699 |
-
"version": "2.0.1",
|
2700 |
-
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
|
2701 |
-
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
|
2702 |
-
"dev": true
|
2703 |
-
}
|
2704 |
-
}
|
2705 |
-
},
|
2706 |
-
"parse-json": {
|
2707 |
-
"version": "2.2.0",
|
2708 |
-
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
2709 |
-
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
|
2710 |
-
"dev": true
|
2711 |
-
},
|
2712 |
-
"parseurl": {
|
2713 |
-
"version": "1.3.2",
|
2714 |
-
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
2715 |
-
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=",
|
2716 |
-
"dev": true
|
2717 |
-
},
|
2718 |
-
"path-dirname": {
|
2719 |
-
"version": "1.0.2",
|
2720 |
-
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
|
2721 |
-
"integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
|
2722 |
-
"dev": true
|
2723 |
-
},
|
2724 |
-
"path-exists": {
|
2725 |
-
"version": "2.1.0",
|
2726 |
-
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
|
2727 |
-
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
|
2728 |
-
"dev": true
|
2729 |
-
},
|
2730 |
-
"path-is-absolute": {
|
2731 |
-
"version": "1.0.1",
|
2732 |
-
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
2733 |
-
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
|
2734 |
-
"dev": true
|
2735 |
-
},
|
2736 |
-
"path-type": {
|
2737 |
-
"version": "1.1.0",
|
2738 |
-
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
|
2739 |
-
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
|
2740 |
-
"dev": true
|
2741 |
-
},
|
2742 |
-
"pend": {
|
2743 |
-
"version": "1.2.0",
|
2744 |
-
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
2745 |
-
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
2746 |
-
"dev": true
|
2747 |
-
},
|
2748 |
-
"performance-now": {
|
2749 |
-
"version": "2.1.0",
|
2750 |
-
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
2751 |
-
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
2752 |
-
"dev": true,
|
2753 |
-
"optional": true
|
2754 |
-
},
|
2755 |
-
"pify": {
|
2756 |
-
"version": "2.3.0",
|
2757 |
-
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
2758 |
-
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
|
2759 |
-
"dev": true
|
2760 |
-
},
|
2761 |
-
"pinkie": {
|
2762 |
-
"version": "2.0.4",
|
2763 |
-
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
|
2764 |
-
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
|
2765 |
-
"dev": true
|
2766 |
-
},
|
2767 |
-
"pinkie-promise": {
|
2768 |
-
"version": "2.0.1",
|
2769 |
-
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
|
2770 |
-
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
|
2771 |
-
"dev": true
|
2772 |
-
},
|
2773 |
-
"prebuild-install": {
|
2774 |
-
"version": "2.3.0",
|
2775 |
-
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.3.0.tgz",
|
2776 |
-
"integrity": "sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw=="
|
2777 |
-
},
|
2778 |
-
"prepend-http": {
|
2779 |
-
"version": "1.0.4",
|
2780 |
-
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
|
2781 |
-
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
|
2782 |
-
"dev": true
|
2783 |
-
},
|
2784 |
-
"preserve": {
|
2785 |
-
"version": "0.2.0",
|
2786 |
-
"resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
|
2787 |
-
"integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=",
|
2788 |
-
"dev": true
|
2789 |
-
},
|
2790 |
-
"pretty-bytes": {
|
2791 |
-
"version": "4.0.2",
|
2792 |
-
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
|
2793 |
-
"integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
|
2794 |
-
"dev": true
|
2795 |
-
},
|
2796 |
-
"process-nextick-args": {
|
2797 |
-
"version": "1.0.7",
|
2798 |
-
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
|
2799 |
-
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
|
2800 |
-
"dev": true
|
2801 |
-
},
|
2802 |
-
"progress": {
|
2803 |
-
"version": "1.1.8",
|
2804 |
-
"resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz",
|
2805 |
-
"integrity": "sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=",
|
2806 |
-
"dev": true
|
2807 |
-
},
|
2808 |
-
"promise": {
|
2809 |
-
"version": "7.3.1",
|
2810 |
-
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
2811 |
-
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
2812 |
-
"dev": true,
|
2813 |
-
"optional": true
|
2814 |
-
},
|
2815 |
-
"prr": {
|
2816 |
-
"version": "0.0.0",
|
2817 |
-
"resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
|
2818 |
-
"integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
|
2819 |
-
"dev": true,
|
2820 |
-
"optional": true
|
2821 |
-
},
|
2822 |
-
"pump": {
|
2823 |
-
"version": "1.0.2",
|
2824 |
-
"resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz",
|
2825 |
-
"integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE="
|
2826 |
-
},
|
2827 |
-
"punycode": {
|
2828 |
-
"version": "1.4.1",
|
2829 |
-
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
2830 |
-
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
2831 |
-
"dev": true,
|
2832 |
-
"optional": true
|
2833 |
-
},
|
2834 |
-
"q": {
|
2835 |
-
"version": "1.5.0",
|
2836 |
-
"resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz",
|
2837 |
-
"integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=",
|
2838 |
-
"dev": true,
|
2839 |
-
"optional": true
|
2840 |
-
},
|
2841 |
-
"qs": {
|
2842 |
-
"version": "6.5.1",
|
2843 |
-
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
|
2844 |
-
"integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
|
2845 |
-
"dev": true,
|
2846 |
-
"optional": true
|
2847 |
-
},
|
2848 |
-
"randomatic": {
|
2849 |
-
"version": "1.1.7",
|
2850 |
-
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz",
|
2851 |
-
"integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==",
|
2852 |
-
"dev": true,
|
2853 |
-
"dependencies": {
|
2854 |
-
"is-number": {
|
2855 |
-
"version": "3.0.0",
|
2856 |
-
"resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
|
2857 |
-
"integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=",
|
2858 |
-
"dev": true,
|
2859 |
-
"dependencies": {
|
2860 |
-
"kind-of": {
|
2861 |
-
"version": "3.2.2",
|
2862 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
|
2863 |
-
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
|
2864 |
-
"dev": true
|
2865 |
-
}
|
2866 |
-
}
|
2867 |
-
},
|
2868 |
-
"kind-of": {
|
2869 |
-
"version": "4.0.0",
|
2870 |
-
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
|
2871 |
-
"integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=",
|
2872 |
-
"dev": true
|
2873 |
-
}
|
2874 |
-
}
|
2875 |
-
},
|
2876 |
-
"raw-body": {
|
2877 |
-
"version": "2.1.7",
|
2878 |
-
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.7.tgz",
|
2879 |
-
"integrity": "sha1-rf6s4uT7MJgFgBTQjActzFl1h3Q=",
|
2880 |
-
"dev": true,
|
2881 |
-
"dependencies": {
|
2882 |
-
"bytes": {
|
2883 |
-
"version": "2.4.0",
|
2884 |
-
"resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
|
2885 |
-
"integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=",
|
2886 |
-
"dev": true
|
2887 |
-
},
|
2888 |
-
"iconv-lite": {
|
2889 |
-
"version": "0.4.13",
|
2890 |
-
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
2891 |
-
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
|
2892 |
-
"dev": true
|
2893 |
-
}
|
2894 |
-
}
|
2895 |
-
},
|
2896 |
-
"rc": {
|
2897 |
-
"version": "1.2.1",
|
2898 |
-
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
|
2899 |
-
"integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
|
2900 |
-
"dev": true
|
2901 |
-
},
|
2902 |
-
"read-all-stream": {
|
2903 |
-
"version": "3.1.0",
|
2904 |
-
"resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
|
2905 |
-
"integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
|
2906 |
-
"dev": true
|
2907 |
-
},
|
2908 |
-
"read-pkg": {
|
2909 |
-
"version": "1.1.0",
|
2910 |
-
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
2911 |
-
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
|
2912 |
-
"dev": true
|
2913 |
-
},
|
2914 |
-
"read-pkg-up": {
|
2915 |
-
"version": "1.0.1",
|
2916 |
-
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
|
2917 |
-
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
|
2918 |
-
"dev": true
|
2919 |
-
},
|
2920 |
-
"readable-stream": {
|
2921 |
-
"version": "2.3.3",
|
2922 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
|
2923 |
-
"integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
|
2924 |
-
"dev": true
|
2925 |
-
},
|
2926 |
-
"redent": {
|
2927 |
-
"version": "1.0.0",
|
2928 |
-
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
|
2929 |
-
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
|
2930 |
-
"dev": true
|
2931 |
-
},
|
2932 |
-
"regex-cache": {
|
2933 |
-
"version": "0.4.4",
|
2934 |
-
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
|
2935 |
-
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
|
2936 |
-
"dev": true
|
2937 |
-
},
|
2938 |
-
"remove-trailing-separator": {
|
2939 |
-
"version": "1.1.0",
|
2940 |
-
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
2941 |
-
"integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=",
|
2942 |
-
"dev": true
|
2943 |
-
},
|
2944 |
-
"repeat-element": {
|
2945 |
-
"version": "1.1.2",
|
2946 |
-
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
|
2947 |
-
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=",
|
2948 |
-
"dev": true
|
2949 |
-
},
|
2950 |
-
"repeat-string": {
|
2951 |
-
"version": "1.6.1",
|
2952 |
-
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
|
2953 |
-
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
|
2954 |
-
"dev": true
|
2955 |
-
},
|
2956 |
-
"repeating": {
|
2957 |
-
"version": "2.0.1",
|
2958 |
-
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
|
2959 |
-
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
|
2960 |
-
"dev": true
|
2961 |
-
},
|
2962 |
-
"replace-ext": {
|
2963 |
-
"version": "0.0.1",
|
2964 |
-
"resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
|
2965 |
-
"integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=",
|
2966 |
-
"dev": true
|
2967 |
-
},
|
2968 |
-
"request": {
|
2969 |
-
"version": "2.83.0",
|
2970 |
-
"resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
|
2971 |
-
"integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
|
2972 |
-
"dev": true,
|
2973 |
-
"optional": true
|
2974 |
-
},
|
2975 |
-
"resolve": {
|
2976 |
-
"version": "1.1.7",
|
2977 |
-
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
|
2978 |
-
"integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
|
2979 |
-
"dev": true
|
2980 |
-
},
|
2981 |
-
"right-align": {
|
2982 |
-
"version": "0.1.3",
|
2983 |
-
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
|
2984 |
-
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
|
2985 |
-
"dev": true
|
2986 |
-
},
|
2987 |
-
"rimraf": {
|
2988 |
-
"version": "2.2.8",
|
2989 |
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
2990 |
-
"integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=",
|
2991 |
-
"dev": true
|
2992 |
-
},
|
2993 |
-
"safe-buffer": {
|
2994 |
-
"version": "5.1.1",
|
2995 |
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
|
2996 |
-
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
|
2997 |
-
"dev": true
|
2998 |
-
},
|
2999 |
-
"sax": {
|
3000 |
-
"version": "1.2.4",
|
3001 |
-
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
3002 |
-
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
|
3003 |
-
"dev": true,
|
3004 |
-
"optional": true
|
3005 |
-
},
|
3006 |
-
"seek-bzip": {
|
3007 |
-
"version": "1.0.5",
|
3008 |
-
"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
|
3009 |
-
"integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=",
|
3010 |
-
"dev": true
|
3011 |
-
},
|
3012 |
-
"semver": {
|
3013 |
-
"version": "5.4.1",
|
3014 |
-
"resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
|
3015 |
-
"integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
|
3016 |
-
"dev": true
|
3017 |
-
},
|
3018 |
-
"semver-regex": {
|
3019 |
-
"version": "1.0.0",
|
3020 |
-
"resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz",
|
3021 |
-
"integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=",
|
3022 |
-
"dev": true,
|
3023 |
-
"optional": true
|
3024 |
-
},
|
3025 |
-
"semver-truncate": {
|
3026 |
-
"version": "1.1.2",
|
3027 |
-
"resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
|
3028 |
-
"integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
|
3029 |
-
"dev": true,
|
3030 |
-
"optional": true
|
3031 |
-
},
|
3032 |
-
"set-blocking": {
|
3033 |
-
"version": "2.0.0",
|
3034 |
-
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
3035 |
-
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
|
3036 |
-
},
|
3037 |
-
"set-immediate-shim": {
|
3038 |
-
"version": "1.0.1",
|
3039 |
-
"resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
|
3040 |
-
"integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=",
|
3041 |
-
"dev": true
|
3042 |
-
},
|
3043 |
-
"shelljs": {
|
3044 |
-
"version": "0.3.0",
|
3045 |
-
"resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.3.0.tgz",
|
3046 |
-
"integrity": "sha1-NZbmMHp4FUT1kfN9phg2DzHbV7E=",
|
3047 |
-
"dev": true
|
3048 |
-
},
|
3049 |
-
"sigmund": {
|
3050 |
-
"version": "1.0.1",
|
3051 |
-
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz",
|
3052 |
-
"integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=",
|
3053 |
-
"dev": true
|
3054 |
-
},
|
3055 |
-
"signal-exit": {
|
3056 |
-
"version": "3.0.2",
|
3057 |
-
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
|
3058 |
-
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
3059 |
-
"dev": true
|
3060 |
-
},
|
3061 |
-
"simple-get": {
|
3062 |
-
"version": "1.4.3",
|
3063 |
-
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz",
|
3064 |
-
"integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s="
|
3065 |
-
},
|
3066 |
-
"sntp": {
|
3067 |
-
"version": "2.0.2",
|
3068 |
-
"resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz",
|
3069 |
-
"integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
|
3070 |
-
"dev": true,
|
3071 |
-
"optional": true
|
3072 |
-
},
|
3073 |
-
"source-map": {
|
3074 |
-
"version": "0.5.7",
|
3075 |
-
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
3076 |
-
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
3077 |
-
"dev": true
|
3078 |
-
},
|
3079 |
-
"sparkles": {
|
3080 |
-
"version": "1.0.0",
|
3081 |
-
"resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz",
|
3082 |
-
"integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=",
|
3083 |
-
"dev": true
|
3084 |
-
},
|
3085 |
-
"spdx-correct": {
|
3086 |
-
"version": "1.0.2",
|
3087 |
-
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
|
3088 |
-
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
|
3089 |
-
"dev": true
|
3090 |
-
},
|
3091 |
-
"spdx-expression-parse": {
|
3092 |
-
"version": "1.0.4",
|
3093 |
-
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
|
3094 |
-
"integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
|
3095 |
-
"dev": true
|
3096 |
-
},
|
3097 |
-
"spdx-license-ids": {
|
3098 |
-
"version": "1.2.2",
|
3099 |
-
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
|
3100 |
-
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
|
3101 |
-
"dev": true
|
3102 |
-
},
|
3103 |
-
"sprintf-js": {
|
3104 |
-
"version": "1.0.3",
|
3105 |
-
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
3106 |
-
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
3107 |
-
"dev": true
|
3108 |
-
},
|
3109 |
-
"squeak": {
|
3110 |
-
"version": "1.3.0",
|
3111 |
-
"resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
|
3112 |
-
"integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
|
3113 |
-
"dev": true,
|
3114 |
-
"optional": true
|
3115 |
-
},
|
3116 |
-
"ssh2": {
|
3117 |
-
"version": "0.4.15",
|
3118 |
-
"resolved": "https://registry.npmjs.org/ssh2/-/ssh2-0.4.15.tgz",
|
3119 |
-
"integrity": "sha1-B8b0EG2fe26m5N9jbGxT8fmBf/g=",
|
3120 |
-
"dev": true,
|
3121 |
-
"dependencies": {
|
3122 |
-
"isarray": {
|
3123 |
-
"version": "0.0.1",
|
3124 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
3125 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
3126 |
-
"dev": true
|
3127 |
-
},
|
3128 |
-
"readable-stream": {
|
3129 |
-
"version": "1.0.34",
|
3130 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
3131 |
-
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
3132 |
-
"dev": true
|
3133 |
-
},
|
3134 |
-
"string_decoder": {
|
3135 |
-
"version": "0.10.31",
|
3136 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
3137 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
3138 |
-
"dev": true
|
3139 |
-
}
|
3140 |
-
}
|
3141 |
-
},
|
3142 |
-
"ssh2-streams": {
|
3143 |
-
"version": "0.0.23",
|
3144 |
-
"resolved": "https://registry.npmjs.org/ssh2-streams/-/ssh2-streams-0.0.23.tgz",
|
3145 |
-
"integrity": "sha1-ru8wgxu1/Er2qj9tCiYaQTUxYSs=",
|
3146 |
-
"dev": true,
|
3147 |
-
"dependencies": {
|
3148 |
-
"isarray": {
|
3149 |
-
"version": "0.0.1",
|
3150 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
3151 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
3152 |
-
"dev": true
|
3153 |
-
},
|
3154 |
-
"readable-stream": {
|
3155 |
-
"version": "1.0.34",
|
3156 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
3157 |
-
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
3158 |
-
"dev": true
|
3159 |
-
},
|
3160 |
-
"string_decoder": {
|
3161 |
-
"version": "0.10.31",
|
3162 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
3163 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
3164 |
-
"dev": true
|
3165 |
-
}
|
3166 |
-
}
|
3167 |
-
},
|
3168 |
-
"sshpk": {
|
3169 |
-
"version": "1.13.1",
|
3170 |
-
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
|
3171 |
-
"integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
|
3172 |
-
"dev": true,
|
3173 |
-
"optional": true
|
3174 |
-
},
|
3175 |
-
"stat-mode": {
|
3176 |
-
"version": "0.2.2",
|
3177 |
-
"resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz",
|
3178 |
-
"integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=",
|
3179 |
-
"dev": true
|
3180 |
-
},
|
3181 |
-
"statuses": {
|
3182 |
-
"version": "1.3.1",
|
3183 |
-
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
|
3184 |
-
"integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=",
|
3185 |
-
"dev": true
|
3186 |
-
},
|
3187 |
-
"stream-buffers": {
|
3188 |
-
"version": "2.2.0",
|
3189 |
-
"resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz",
|
3190 |
-
"integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=",
|
3191 |
-
"dev": true
|
3192 |
-
},
|
3193 |
-
"stream-combiner2": {
|
3194 |
-
"version": "1.1.1",
|
3195 |
-
"resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz",
|
3196 |
-
"integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=",
|
3197 |
-
"dev": true
|
3198 |
-
},
|
3199 |
-
"stream-shift": {
|
3200 |
-
"version": "1.0.0",
|
3201 |
-
"resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
|
3202 |
-
"integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
|
3203 |
-
"dev": true
|
3204 |
-
},
|
3205 |
-
"streamsearch": {
|
3206 |
-
"version": "0.1.2",
|
3207 |
-
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
|
3208 |
-
"integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
|
3209 |
-
"dev": true
|
3210 |
-
},
|
3211 |
-
"string_decoder": {
|
3212 |
-
"version": "1.0.3",
|
3213 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
|
3214 |
-
"integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
|
3215 |
-
"dev": true
|
3216 |
-
},
|
3217 |
-
"string-width": {
|
3218 |
-
"version": "1.0.2",
|
3219 |
-
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
3220 |
-
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M="
|
3221 |
-
},
|
3222 |
-
"stringstream": {
|
3223 |
-
"version": "0.0.5",
|
3224 |
-
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
|
3225 |
-
"integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
|
3226 |
-
"dev": true,
|
3227 |
-
"optional": true
|
3228 |
-
},
|
3229 |
-
"strip-ansi": {
|
3230 |
-
"version": "3.0.1",
|
3231 |
-
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
3232 |
-
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
3233 |
-
"dev": true
|
3234 |
-
},
|
3235 |
-
"strip-bom": {
|
3236 |
-
"version": "2.0.0",
|
3237 |
-
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
|
3238 |
-
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
|
3239 |
-
"dev": true
|
3240 |
-
},
|
3241 |
-
"strip-bom-stream": {
|
3242 |
-
"version": "1.0.0",
|
3243 |
-
"resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz",
|
3244 |
-
"integrity": "sha1-5xRDmFd9Uaa+0PoZlPoF9D/ZiO4=",
|
3245 |
-
"dev": true
|
3246 |
-
},
|
3247 |
-
"strip-dirs": {
|
3248 |
-
"version": "1.1.1",
|
3249 |
-
"resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-1.1.1.tgz",
|
3250 |
-
"integrity": "sha1-lgu9EoeETzl1pFWKoQOoJV4kVqA=",
|
3251 |
-
"dev": true
|
3252 |
-
},
|
3253 |
-
"strip-indent": {
|
3254 |
-
"version": "1.0.1",
|
3255 |
-
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
|
3256 |
-
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
|
3257 |
-
"dev": true
|
3258 |
-
},
|
3259 |
-
"strip-json-comments": {
|
3260 |
-
"version": "2.0.1",
|
3261 |
-
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
3262 |
-
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
|
3263 |
-
"dev": true
|
3264 |
-
},
|
3265 |
-
"strip-outer": {
|
3266 |
-
"version": "1.0.0",
|
3267 |
-
"resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.0.tgz",
|
3268 |
-
"integrity": "sha1-qsC6YNLpDF1PJ1/Yhp/ZotMQ/7g=",
|
3269 |
-
"dev": true
|
3270 |
-
},
|
3271 |
-
"sum-up": {
|
3272 |
-
"version": "1.0.3",
|
3273 |
-
"resolved": "https://registry.npmjs.org/sum-up/-/sum-up-1.0.3.tgz",
|
3274 |
-
"integrity": "sha1-HGYfZnBX9jvLeHWqFDi8FiUlFW4=",
|
3275 |
-
"dev": true
|
3276 |
-
},
|
3277 |
-
"supports-color": {
|
3278 |
-
"version": "2.0.0",
|
3279 |
-
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
3280 |
-
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
3281 |
-
"dev": true
|
3282 |
-
},
|
3283 |
-
"svgo": {
|
3284 |
-
"version": "0.6.6",
|
3285 |
-
"resolved": "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz",
|
3286 |
-
"integrity": "sha1-s0CIkDbyD5tEdUMHfQ9Vc+0ETAg=",
|
3287 |
-
"dev": true,
|
3288 |
-
"optional": true,
|
3289 |
-
"dependencies": {
|
3290 |
-
"js-yaml": {
|
3291 |
-
"version": "3.6.1",
|
3292 |
-
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz",
|
3293 |
-
"integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=",
|
3294 |
-
"dev": true,
|
3295 |
-
"optional": true
|
3296 |
-
}
|
3297 |
-
}
|
3298 |
-
},
|
3299 |
-
"tar": {
|
3300 |
-
"version": "2.2.1",
|
3301 |
-
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
3302 |
-
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE="
|
3303 |
-
},
|
3304 |
-
"tar-fs": {
|
3305 |
-
"version": "1.16.0",
|
3306 |
-
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz",
|
3307 |
-
"integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg=="
|
3308 |
-
},
|
3309 |
-
"tar-stream": {
|
3310 |
-
"version": "1.5.4",
|
3311 |
-
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz",
|
3312 |
-
"integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=",
|
3313 |
-
"dev": true
|
3314 |
-
},
|
3315 |
-
"tempfile": {
|
3316 |
-
"version": "1.1.1",
|
3317 |
-
"resolved": "https://registry.npmjs.org/tempfile/-/tempfile-1.1.1.tgz",
|
3318 |
-
"integrity": "sha1-W8xOrsxKsscH2LwR2ZzMmiyyh/I=",
|
3319 |
-
"dev": true,
|
3320 |
-
"dependencies": {
|
3321 |
-
"uuid": {
|
3322 |
-
"version": "2.0.3",
|
3323 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
|
3324 |
-
"integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=",
|
3325 |
-
"dev": true
|
3326 |
-
}
|
3327 |
-
}
|
3328 |
-
},
|
3329 |
-
"through2": {
|
3330 |
-
"version": "0.6.5",
|
3331 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
3332 |
-
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
3333 |
-
"dev": true,
|
3334 |
-
"dependencies": {
|
3335 |
-
"isarray": {
|
3336 |
-
"version": "0.0.1",
|
3337 |
-
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
3338 |
-
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
|
3339 |
-
"dev": true
|
3340 |
-
},
|
3341 |
-
"readable-stream": {
|
3342 |
-
"version": "1.0.34",
|
3343 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
|
3344 |
-
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
|
3345 |
-
"dev": true
|
3346 |
-
},
|
3347 |
-
"string_decoder": {
|
3348 |
-
"version": "0.10.31",
|
3349 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
3350 |
-
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
3351 |
-
"dev": true
|
3352 |
-
}
|
3353 |
-
}
|
3354 |
-
},
|
3355 |
-
"through2-filter": {
|
3356 |
-
"version": "2.0.0",
|
3357 |
-
"resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-2.0.0.tgz",
|
3358 |
-
"integrity": "sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw=",
|
3359 |
-
"dev": true,
|
3360 |
-
"dependencies": {
|
3361 |
-
"through2": {
|
3362 |
-
"version": "2.0.3",
|
3363 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
3364 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
3365 |
-
"dev": true
|
3366 |
-
}
|
3367 |
-
}
|
3368 |
-
},
|
3369 |
-
"time-stamp": {
|
3370 |
-
"version": "1.1.0",
|
3371 |
-
"resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz",
|
3372 |
-
"integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=",
|
3373 |
-
"dev": true
|
3374 |
-
},
|
3375 |
-
"timed-out": {
|
3376 |
-
"version": "3.1.3",
|
3377 |
-
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz",
|
3378 |
-
"integrity": "sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc=",
|
3379 |
-
"dev": true
|
3380 |
-
},
|
3381 |
-
"tiny-lr": {
|
3382 |
-
"version": "0.2.1",
|
3383 |
-
"resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-0.2.1.tgz",
|
3384 |
-
"integrity": "sha1-s/26gC5dVqM8L28QeUsy5Hescp0=",
|
3385 |
-
"dev": true,
|
3386 |
-
"dependencies": {
|
3387 |
-
"qs": {
|
3388 |
-
"version": "5.1.0",
|
3389 |
-
"resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
3390 |
-
"integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=",
|
3391 |
-
"dev": true
|
3392 |
-
}
|
3393 |
-
}
|
3394 |
-
},
|
3395 |
-
"tmp": {
|
3396 |
-
"version": "0.0.28",
|
3397 |
-
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz",
|
3398 |
-
"integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=",
|
3399 |
-
"dev": true
|
3400 |
-
},
|
3401 |
-
"to-absolute-glob": {
|
3402 |
-
"version": "0.1.1",
|
3403 |
-
"resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz",
|
3404 |
-
"integrity": "sha1-HN+kcqnvUMI57maZm2YsoOs5k38=",
|
3405 |
-
"dev": true
|
3406 |
-
},
|
3407 |
-
"tough-cookie": {
|
3408 |
-
"version": "2.3.3",
|
3409 |
-
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
|
3410 |
-
"integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
|
3411 |
-
"dev": true,
|
3412 |
-
"optional": true
|
3413 |
-
},
|
3414 |
-
"trim-newlines": {
|
3415 |
-
"version": "1.0.0",
|
3416 |
-
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
3417 |
-
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
|
3418 |
-
"dev": true
|
3419 |
-
},
|
3420 |
-
"trim-repeated": {
|
3421 |
-
"version": "1.0.0",
|
3422 |
-
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
|
3423 |
-
"integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
|
3424 |
-
"dev": true
|
3425 |
-
},
|
3426 |
-
"tunnel-agent": {
|
3427 |
-
"version": "0.6.0",
|
3428 |
-
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
3429 |
-
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
3430 |
-
"dev": true,
|
3431 |
-
"optional": true
|
3432 |
-
},
|
3433 |
-
"tweetnacl": {
|
3434 |
-
"version": "0.14.5",
|
3435 |
-
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
3436 |
-
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
3437 |
-
"dev": true,
|
3438 |
-
"optional": true
|
3439 |
-
},
|
3440 |
-
"type-is": {
|
3441 |
-
"version": "1.6.15",
|
3442 |
-
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz",
|
3443 |
-
"integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=",
|
3444 |
-
"dev": true
|
3445 |
-
},
|
3446 |
-
"typedarray": {
|
3447 |
-
"version": "0.0.6",
|
3448 |
-
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
|
3449 |
-
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
|
3450 |
-
"dev": true
|
3451 |
-
},
|
3452 |
-
"uglify-js": {
|
3453 |
-
"version": "2.8.29",
|
3454 |
-
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
|
3455 |
-
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
|
3456 |
-
"dev": true
|
3457 |
-
},
|
3458 |
-
"uglify-to-browserify": {
|
3459 |
-
"version": "1.0.2",
|
3460 |
-
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
|
3461 |
-
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
|
3462 |
-
"dev": true,
|
3463 |
-
"optional": true
|
3464 |
-
},
|
3465 |
-
"underscore": {
|
3466 |
-
"version": "1.7.0",
|
3467 |
-
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz",
|
3468 |
-
"integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=",
|
3469 |
-
"dev": true
|
3470 |
-
},
|
3471 |
-
"underscore.string": {
|
3472 |
-
"version": "3.2.3",
|
3473 |
-
"resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.2.3.tgz",
|
3474 |
-
"integrity": "sha1-gGmSYzZl1eX8tNsfs6hi62jp5to=",
|
3475 |
-
"dev": true
|
3476 |
-
},
|
3477 |
-
"unique-stream": {
|
3478 |
-
"version": "2.2.1",
|
3479 |
-
"resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.2.1.tgz",
|
3480 |
-
"integrity": "sha1-WqADz76Uxf+GbE59ZouxxNuts2k=",
|
3481 |
-
"dev": true
|
3482 |
-
},
|
3483 |
-
"unpipe": {
|
3484 |
-
"version": "1.0.0",
|
3485 |
-
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
3486 |
-
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
|
3487 |
-
"dev": true
|
3488 |
-
},
|
3489 |
-
"unzip-response": {
|
3490 |
-
"version": "1.0.2",
|
3491 |
-
"resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
|
3492 |
-
"integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
|
3493 |
-
"dev": true
|
3494 |
-
},
|
3495 |
-
"uri-path": {
|
3496 |
-
"version": "1.0.0",
|
3497 |
-
"resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
|
3498 |
-
"integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
|
3499 |
-
"dev": true
|
3500 |
-
},
|
3501 |
-
"url-parse-lax": {
|
3502 |
-
"version": "1.0.0",
|
3503 |
-
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
|
3504 |
-
"integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
|
3505 |
-
"dev": true
|
3506 |
-
},
|
3507 |
-
"url-regex": {
|
3508 |
-
"version": "3.2.0",
|
3509 |
-
"resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz",
|
3510 |
-
"integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=",
|
3511 |
-
"dev": true,
|
3512 |
-
"optional": true
|
3513 |
-
},
|
3514 |
-
"util-deprecate": {
|
3515 |
-
"version": "1.0.2",
|
3516 |
-
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
3517 |
-
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
3518 |
-
"dev": true
|
3519 |
-
},
|
3520 |
-
"uuid": {
|
3521 |
-
"version": "3.1.0",
|
3522 |
-
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
|
3523 |
-
"integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
|
3524 |
-
"dev": true,
|
3525 |
-
"optional": true
|
3526 |
-
},
|
3527 |
-
"vali-date": {
|
3528 |
-
"version": "1.0.0",
|
3529 |
-
"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
|
3530 |
-
"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
|
3531 |
-
"dev": true
|
3532 |
-
},
|
3533 |
-
"validate-npm-package-license": {
|
3534 |
-
"version": "3.0.1",
|
3535 |
-
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
|
3536 |
-
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
|
3537 |
-
"dev": true
|
3538 |
-
},
|
3539 |
-
"verror": {
|
3540 |
-
"version": "1.10.0",
|
3541 |
-
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
3542 |
-
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
3543 |
-
"dev": true,
|
3544 |
-
"optional": true
|
3545 |
-
},
|
3546 |
-
"vinyl": {
|
3547 |
-
"version": "1.2.0",
|
3548 |
-
"resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
|
3549 |
-
"integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=",
|
3550 |
-
"dev": true
|
3551 |
-
},
|
3552 |
-
"vinyl-assign": {
|
3553 |
-
"version": "1.2.1",
|
3554 |
-
"resolved": "https://registry.npmjs.org/vinyl-assign/-/vinyl-assign-1.2.1.tgz",
|
3555 |
-
"integrity": "sha1-TRmIkbVRWRHXcajNnFSApGoHSkU=",
|
3556 |
-
"dev": true
|
3557 |
-
},
|
3558 |
-
"vinyl-fs": {
|
3559 |
-
"version": "2.4.4",
|
3560 |
-
"resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-2.4.4.tgz",
|
3561 |
-
"integrity": "sha1-vm/zJwy1Xf19MGNkDegfJddTIjk=",
|
3562 |
-
"dev": true,
|
3563 |
-
"dependencies": {
|
3564 |
-
"through2": {
|
3565 |
-
"version": "2.0.3",
|
3566 |
-
"resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
|
3567 |
-
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
|
3568 |
-
"dev": true
|
3569 |
-
}
|
3570 |
-
}
|
3571 |
-
},
|
3572 |
-
"walkdir": {
|
3573 |
-
"version": "0.0.11",
|
3574 |
-
"resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.0.11.tgz",
|
3575 |
-
"integrity": "sha1-oW0CXrkxvQO1LzCMrtD0D86+lTI=",
|
3576 |
-
"dev": true
|
3577 |
-
},
|
3578 |
-
"ware": {
|
3579 |
-
"version": "1.3.0",
|
3580 |
-
"resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz",
|
3581 |
-
"integrity": "sha1-0bFPOdLiy0q4xAmPdW/ksWTkc9Q=",
|
3582 |
-
"dev": true
|
3583 |
-
},
|
3584 |
-
"websocket-driver": {
|
3585 |
-
"version": "0.7.0",
|
3586 |
-
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
|
3587 |
-
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
|
3588 |
-
"dev": true
|
3589 |
-
},
|
3590 |
-
"websocket-extensions": {
|
3591 |
-
"version": "0.1.2",
|
3592 |
-
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.2.tgz",
|
3593 |
-
"integrity": "sha1-Dhh4HeYpoYMIzhSBZQ9n/6JpOl0=",
|
3594 |
-
"dev": true
|
3595 |
-
},
|
3596 |
-
"whet.extend": {
|
3597 |
-
"version": "0.9.9",
|
3598 |
-
"resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz",
|
3599 |
-
"integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=",
|
3600 |
-
"dev": true,
|
3601 |
-
"optional": true
|
3602 |
-
},
|
3603 |
-
"which": {
|
3604 |
-
"version": "1.2.14",
|
3605 |
-
"resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz",
|
3606 |
-
"integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=",
|
3607 |
-
"dev": true
|
3608 |
-
},
|
3609 |
-
"wide-align": {
|
3610 |
-
"version": "1.1.2",
|
3611 |
-
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
|
3612 |
-
"integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w=="
|
3613 |
-
},
|
3614 |
-
"window-size": {
|
3615 |
-
"version": "0.1.0",
|
3616 |
-
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
|
3617 |
-
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
|
3618 |
-
"dev": true
|
3619 |
-
},
|
3620 |
-
"wordwrap": {
|
3621 |
-
"version": "0.0.2",
|
3622 |
-
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
|
3623 |
-
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
|
3624 |
-
"dev": true
|
3625 |
-
},
|
3626 |
-
"wrap-fn": {
|
3627 |
-
"version": "0.1.5",
|
3628 |
-
"resolved": "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz",
|
3629 |
-
"integrity": "sha1-8htuQQFv9KfjFyDbxjoJAWvfmEU=",
|
3630 |
-
"dev": true,
|
3631 |
-
"dependencies": {
|
3632 |
-
"co": {
|
3633 |
-
"version": "3.1.0",
|
3634 |
-
"resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz",
|
3635 |
-
"integrity": "sha1-TqVOpaCJOBUxheFSEMaNkJK8G3g=",
|
3636 |
-
"dev": true
|
3637 |
-
}
|
3638 |
-
}
|
3639 |
-
},
|
3640 |
-
"wrappy": {
|
3641 |
-
"version": "1.0.2",
|
3642 |
-
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
3643 |
-
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
|
3644 |
-
"dev": true
|
3645 |
-
},
|
3646 |
-
"xtend": {
|
3647 |
-
"version": "4.0.1",
|
3648 |
-
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
3649 |
-
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
|
3650 |
-
"dev": true
|
3651 |
-
},
|
3652 |
-
"yargs": {
|
3653 |
-
"version": "3.10.0",
|
3654 |
-
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
|
3655 |
-
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
|
3656 |
-
"dev": true,
|
3657 |
-
"dependencies": {
|
3658 |
-
"camelcase": {
|
3659 |
-
"version": "1.2.1",
|
3660 |
-
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
|
3661 |
-
"integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
|
3662 |
-
"dev": true
|
3663 |
-
}
|
3664 |
-
}
|
3665 |
-
},
|
3666 |
-
"yauzl": {
|
3667 |
-
"version": "2.8.0",
|
3668 |
-
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.8.0.tgz",
|
3669 |
-
"integrity": "sha1-eUUK/yKyqcWkHvVOAtuQfM+/nuI=",
|
3670 |
-
"dev": true
|
3671 |
-
},
|
3672 |
-
"zip-stream": {
|
3673 |
-
"version": "1.2.0",
|
3674 |
-
"resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-1.2.0.tgz",
|
3675 |
-
"integrity": "sha1-qLxF9MG0lpnGuQGYuqyqzbzUugQ=",
|
3676 |
-
"dev": true,
|
3677 |
-
"dependencies": {
|
3678 |
-
"lodash": {
|
3679 |
-
"version": "4.17.4",
|
3680 |
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz",
|
3681 |
-
"integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=",
|
3682 |
-
"dev": true
|
3683 |
-
}
|
3684 |
-
}
|
3685 |
-
}
|
3686 |
-
}
|
3687 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -1,525 +1,612 @@
|
|
1 |
-
=== Dokan Multivendor Marketplace ===
|
2 |
-
Contributors: tareq1988, wedevs,
|
3 |
-
Donate Link: http://tareq.co/donate/
|
4 |
-
Tags: woocommerce, multivendor, multi-vendor,
|
5 |
-
Requires at least: 4.4
|
6 |
-
Tested up to: 4.
|
7 |
-
WC requires at least: 2.6
|
8 |
-
WC tested up to: 3.
|
9 |
-
Requires PHP: 5.6
|
10 |
-
Stable tag: trunk
|
11 |
-
License: GPLv2 or later
|
12 |
-
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
13 |
-
|
14 |
-
The pioneer multi-vendor plugin for WordPress. Start your own marketplace in minutes!
|
15 |
-
|
16 |
-
== Description ==
|
17 |
-
|
18 |
-
= Dokan Multivendor Marketplace Plugin For WordPress =
|
19 |
-
|
20 |
-
Dokan is the best front end multi vendor marketplace on WordPress, powered by WooCommerce. Build your own Amazon, Shopify, eBay, Magento like marketplace in just 30 minutes. Dokan is the fastest way to start ecommerce and earn through commissions with products ranging from digital, physical to variable.
|
21 |
-
|
22 |
-
**The best Frontend user interface**
|
23 |
-
|
24 |
-
We love the philosophy of a complete frontend experience. So, vendors have their personalised dashboard on the store frontend where they can find all what they need. Backend access is restricted to the admin only. This sets Dokan apart on a higher ground. All of our add-ons are frontend compatible. Dokan(Pro) comes with a free responsive ecommerce theme that has widgets specially made for Dokan.
|
25 |
-
|
26 |
-
**It’s fast and easy to use**
|
27 |
-
|
28 |
-
Your business operations with Dokan is smooth and fast. Everything will work as you expected because we have designed the experience following the best intuitive practices from popular ecommerce activators like WooCommerce, Bigcommerce etc.
|
29 |
-
|
30 |
-
**Reliable yet a growing platform**
|
31 |
-
|
32 |
-
We regularly keep our version updated for flawless operation and integration with dependable services. We just not only keep things compatible, we have a style of adding the most trendy new features to Dokan with every update.
|
33 |
-
|
34 |
-
**A really scalable market**
|
35 |
-
|
36 |
-
You can have unlimited vendors and vendors can create unlimited products. Currently 5 product types are supported eg. physical product, downloadable product, variable product, bookable products through the [Dokan WC Bookings](https://wedevs.com/products/plugins/dokan/woocommerce-booking-integration/) add on and auction products through the [Dokan Simple Auction](https://wedevs.com/products/plugins/dokan/dokan-simple-auctions/) add on.
|
37 |
-
|
38 |
-
**Earn in many ways**
|
39 |
-
|
40 |
-
Profit doesn’t only rely on sales. Multiple ways allow earning through vendor commissions or product based commissions. You can also create subscription packs that allow you to charge for product uploads, product limits and time.
|
41 |
-
|
42 |
-
**Puts you in control**
|
43 |
-
|
44 |
-
As a an admin, you can use Dokan in a way where you can control everything that happens in your marketplace. Product publishing, vendor registration, subscription renewal and every other vendor activity can be re routed through you.
|
45 |
-
|
46 |
-
> Get the [**Pro Version**](https://wedevs.com/dokan/?utm_source=wporg&utm_medium=cta&utm_campaign=dokan-lite) with bunch of super features, updates and scope for powerful add-ons.
|
47 |
-
|
48 |
-
= Features =
|
49 |
-
**Marketplace with Independent Stores**
|
50 |
-
|
51 |
-
* Every seller gets their own store with a unique URL and branding.
|
52 |
-
* Beautiful storefront styles with contact details and widgets
|
53 |
-
* Store location map on store front. (Pro feature)
|
54 |
-
|
55 |
-
**Frontend Dashboard For Each Seller**
|
56 |
-
|
57 |
-
* WordPress admin area can be accessed only by admin.
|
58 |
-
* Vendors manage products, orders, withdraws everything from site frontend.
|
59 |
-
|
60 |
-
**Earn From Each Sale**
|
61 |
-
|
62 |
-
* A part of the sale value is sent to admin as commission.
|
63 |
-
* Commission rate can be customized.
|
64 |
-
* Per vendor percentage override. (**Pro feature**)
|
65 |
-
|
66 |
-
**Product Management**
|
67 |
-
|
68 |
-
* Create and manage your products from the frontend.
|
69 |
-
* Create variable or downloadable products. (**Pro Feature**)
|
70 |
-
* Vendors have option to manage product shipping, attributes. (**Pro Feature**)
|
71 |
-
* Vendors can manage downloadable product permission, expiry date and download limit. (**Pro Feature**)
|
72 |
-
|
73 |
-
**Reports (Pro Feature)**
|
74 |
-
|
75 |
-
* Vendors can see their sales report, generate statements and overview from frontend.
|
76 |
-
* Admins can overview orders and filter by sale, by date, top vendors or top earners.
|
77 |
-
* Export order reports to CSV.
|
78 |
-
|
79 |
-
**Coupon Management (Pro Feature)**
|
80 |
-
|
81 |
-
* Manage and offer discounts for each product.
|
82 |
-
* Set expiry and restriction for coupons.
|
83 |
-
|
84 |
-
**Manage Product Reviews (Pro Feature)**
|
85 |
-
|
86 |
-
* All product reviews are managed by vendors (with admin override)
|
87 |
-
* View all reviews on products left by customers.
|
88 |
-
|
89 |
-
**Pro Features Continued**
|
90 |
-
|
91 |
-
*The admin panel gives you some powerful management tools*
|
92 |
-
|
93 |
-
* Admin can view and manage vendor list
|
94 |
-
* Admin can view his as well as every vendor’s earning reports individually
|
95 |
-
* Dokan Pro has update and support option for customer.
|
96 |
-
* Dokan tools option has page installer and Sync table option
|
97 |
-
* Advanced settings for the admin -
|
98 |
-
* General Settings
|
99 |
-
* Admin can enable/disable the map on the store page.
|
100 |
-
* Admin can enable/disable the contact form on the store page
|
101 |
-
* Admin can also enable/disable the store sidebar from theme.
|
102 |
-
|
103 |
-
* Selling Options
|
104 |
-
* Admin can manage new product status.
|
105 |
-
* Admin can set the order status for withdraw.
|
106 |
-
* Admin can seth threshold withdraw day for the vendor.
|
107 |
-
* Admin can change the vendor store URL.
|
108 |
-
* Admin can also enable/disable the permission of review editing for the vendor.
|
109 |
-
|
110 |
-
* Widgets
|
111 |
-
* Best vendor widget
|
112 |
-
* Featured vendor widget
|
113 |
-
* Store contact widget
|
114 |
-
* Store location widget
|
115 |
-
|
116 |
-
And much more. Checkout the [**Pro Version**](https://wedevs.com/dokan/?utm_source=wporg&utm_medium=cta&utm_campaign=dokan-lite)
|
117 |
-
|
118 |
-
= Contribute =
|
119 |
-
This may have bugs and lack of many features. If you want to contribute on this project, you are more than welcome. Please fork the repository from [Github](https://github.com/weDevsOfficial/dokan).
|
120 |
-
|
121 |
-
= Author =
|
122 |
-
Brought to you by [Tareq Hasan](http://tareq.co) from [weDevs](http://wedevs.com)
|
123 |
-
|
124 |
-
== Installation ==
|
125 |
-
|
126 |
-
Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page.
|
127 |
-
|
128 |
-
== Frequently Asked Questions ==
|
129 |
-
|
130 |
-
= Q. Can I add a payment method? =
|
131 |
-
A. Just use any standard WooCommerce payment gateway.
|
132 |
-
|
133 |
-
= Q. How do withdrawals work? =
|
134 |
-
A. Right now, we offer PayPal, Bank and Skrill (pro) withdraw method for "Dokan". For PayPal withdraw, you can generate Mass Payment File to payout your sellers at once. Other methods are manual though.
|
135 |
-
|
136 |
-
= Q. Does Dokan integrate with BuddyPress? =
|
137 |
-
A. Not for the moment. We have plans to integrate with BuddyPress via an add-on in the near future.
|
138 |
-
|
139 |
-
= Q. Is Dokan responsive? =
|
140 |
-
A. Yes, Dokan is fully responsive. We take mobile first approach and it displays very well in mobile and tablet devices. We are using Twitter Bootstrap as a framework and it just works.
|
141 |
-
|
142 |
-
= Q. Does it supports variable products? =
|
143 |
-
A. The **Pro** version does! You can seller normal products, downloadable products and variable products with your own attributes.
|
144 |
-
|
145 |
-
= Q. Can each vendor customize his store? =
|
146 |
-
A. Right now we have options for only changing the store banner page. We are working on a better customizable seller store page.
|
147 |
-
|
148 |
-
= Q. Does Dokan supports PayPal adaptive payments? =
|
149 |
-
A. Yes it does! We have [an add-on](http://wedevs.com/plugin/dokan/paypal-adaptive-payments/) that brings PayPal adaptive payment support.
|
150 |
-
|
151 |
-
= Q. Will it be possible to take a cut or commission from the sales? =
|
152 |
-
A. Yes, that's how Dokan works. In every sales, you can cut a commission from a order. That's configurable from Dokan settings.
|
153 |
-
|
154 |
-
= Q. Can Dokan be used in a single seller mode? =
|
155 |
-
A. Obviously, you can use this on a single seller site to give them a nice front-end experience.
|
156 |
-
|
157 |
-
= Q. How to upgrade to the Pro version?
|
158 |
-
A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://wedevs.com/contact/) staff first.
|
159 |
-
|
160 |
-
== Screenshots ==
|
161 |
-
|
162 |
-
1. Admin Dashboard
|
163 |
-
2. Withdraw requests from sellers
|
164 |
-
3. Settings → General
|
165 |
-
4. Settings → Selling Options
|
166 |
-
5. Settings → Withdraw Options
|
167 |
-
6. Settings → Page Settings
|
168 |
-
7. Settings → Appearance
|
169 |
-
8. Seller Dashboard in site frontend
|
170 |
-
9. Frontend → Products Listing
|
171 |
-
10. Frontend → Create a new Product
|
172 |
-
11. Frontend → Edit a product
|
173 |
-
12. Frontend → Orders Listing
|
174 |
-
13. Frontend → Orders → Details
|
175 |
-
14. Frontend → Submit withdraw request
|
176 |
-
15. Frontend → Store Settings
|
177 |
-
16. Frontend → Store Payment Settings
|
178 |
-
17. Frontend → Individual Seller Store-1
|
179 |
-
18. Frontend → Individual Seller Store-2
|
180 |
-
19. Frontend → Individual Seller Store-3
|
181 |
-
|
182 |
-
== Changelog ==
|
183 |
-
|
184 |
-
v2.
|
185 |
-
|
186 |
-
-
|
187 |
-
-
|
188 |
-
-
|
189 |
-
-
|
190 |
-
-
|
191 |
-
-
|
192 |
-
-
|
193 |
-
-
|
194 |
-
-
|
195 |
-
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
-
|
202 |
-
-
|
203 |
-
-
|
204 |
-
-
|
205 |
-
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
-
|
214 |
-
-
|
215 |
-
-
|
216 |
-
-
|
217 |
-
-
|
218 |
-
|
219 |
-
v2.
|
220 |
-
---------------------
|
221 |
-
-
|
222 |
-
-
|
223 |
-
|
224 |
-
v2.
|
225 |
-
---------------------
|
226 |
-
-
|
227 |
-
-
|
228 |
-
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
-
|
237 |
-
-
|
238 |
-
-
|
239 |
-
-
|
240 |
-
-
|
241 |
-
-
|
242 |
-
-
|
243 |
-
-
|
244 |
-
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
-
|
255 |
-
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
-
|
260 |
-
-
|
261 |
-
-
|
262 |
-
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
-
|
268 |
-
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
-
|
273 |
-
-
|
274 |
-
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
-
|
279 |
-
-
|
280 |
-
-
|
281 |
-
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
-
|
286 |
-
-
|
287 |
-
-
|
288 |
-
-
|
289 |
-
-
|
290 |
-
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
-
|
295 |
-
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
-
|
300 |
-
-
|
301 |
-
-
|
302 |
-
-
|
303 |
-
-
|
304 |
-
|
305 |
-
v2.
|
306 |
-
|
307 |
-
-
|
308 |
-
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
-
|
313 |
-
-
|
314 |
-
-
|
315 |
-
-
|
316 |
-
-
|
317 |
-
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
-
|
323 |
-
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
-
|
328 |
-
-
|
329 |
-
-
|
330 |
-
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
-
|
337 |
-
-
|
338 |
-
-
|
339 |
-
-
|
340 |
-
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
-
|
346 |
-
-
|
347 |
-
-
|
348 |
-
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
-
|
354 |
-
-
|
355 |
-
-
|
356 |
-
-
|
357 |
-
-
|
358 |
-
-
|
359 |
-
-
|
360 |
-
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
-
|
366 |
-
-
|
367 |
-
-
|
368 |
-
-
|
369 |
-
-
|
370 |
-
-
|
371 |
-
-
|
372 |
-
-
|
373 |
-
-
|
374 |
-
-
|
375 |
-
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
-
|
381 |
-
-
|
382 |
-
-
|
383 |
-
-
|
384 |
-
-
|
385 |
-
-
|
386 |
-
-
|
387 |
-
-
|
388 |
-
-
|
389 |
-
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
-
|
397 |
-
-
|
398 |
-
-
|
399 |
-
-
|
400 |
-
-
|
401 |
-
-
|
402 |
-
-
|
403 |
-
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
-
|
414 |
-
-
|
415 |
-
-
|
416 |
-
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
-
|
421 |
-
-
|
422 |
-
-
|
423 |
-
-
|
424 |
-
-
|
425 |
-
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
-
|
431 |
-
-
|
432 |
-
-
|
433 |
-
-
|
434 |
-
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
-
|
439 |
-
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
-
|
444 |
-
-
|
445 |
-
-
|
446 |
-
-
|
447 |
-
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
-
|
453 |
-
-
|
454 |
-
-
|
455 |
-
-
|
456 |
-
-
|
457 |
-
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
-
|
466 |
-
-
|
467 |
-
-
|
468 |
-
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
=== Dokan Multivendor Marketplace ===
|
2 |
+
Contributors: tareq1988, wedevs, sabbir1991, rafsuntaskin
|
3 |
+
Donate Link: http://tareq.co/donate/
|
4 |
+
Tags: woocommerce, multivendor, multi-vendor, vendor, multishop, paypal , seller, store, sell, online, amazon, dokan, ebay, Etsy, multi seller, multi store, multi vendor, multi vendors, multistore, multivendor, product vendor, product vendors, vendor, vendor system, vendors, wc market place, wc marketplace, wc vendors, woo vendors, woocommerce market place, woocommerce marketplace, woocommerce multi vendor, commission rate, e-commerce, ebay, ecommerce, yith, yithemes
|
5 |
+
Requires at least: 4.4
|
6 |
+
Tested up to: 4.9.4
|
7 |
+
WC requires at least: 2.6
|
8 |
+
WC tested up to: 3.3.3
|
9 |
+
Requires PHP: 5.6
|
10 |
+
Stable tag: trunk
|
11 |
+
License: GPLv2 or later
|
12 |
+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
13 |
+
|
14 |
+
The pioneer multi-vendor plugin for WordPress. Start your own marketplace in minutes!
|
15 |
+
|
16 |
+
== Description ==
|
17 |
+
|
18 |
+
= Dokan Multivendor Marketplace Plugin For WordPress =
|
19 |
+
|
20 |
+
Dokan is the best front end multi vendor marketplace on WordPress, powered by WooCommerce. Build your own Amazon, Shopify, eBay, Magento like marketplace in just 30 minutes. Dokan is the fastest way to start ecommerce and earn through commissions with products ranging from digital, physical to variable.
|
21 |
+
|
22 |
+
**The best Frontend user interface**
|
23 |
+
|
24 |
+
We love the philosophy of a complete frontend experience. So, vendors have their personalised dashboard on the store frontend where they can find all what they need. Backend access is restricted to the admin only. This sets Dokan apart on a higher ground. All of our add-ons are frontend compatible. Dokan(Pro) comes with a free responsive ecommerce theme that has widgets specially made for Dokan.
|
25 |
+
|
26 |
+
**It’s fast and easy to use**
|
27 |
+
|
28 |
+
Your business operations with Dokan is smooth and fast. Everything will work as you expected because we have designed the experience following the best intuitive practices from popular ecommerce activators like WooCommerce, Bigcommerce etc.
|
29 |
+
|
30 |
+
**Reliable yet a growing platform**
|
31 |
+
|
32 |
+
We regularly keep our version updated for flawless operation and integration with dependable services. We just not only keep things compatible, we have a style of adding the most trendy new features to Dokan with every update.
|
33 |
+
|
34 |
+
**A really scalable market**
|
35 |
+
|
36 |
+
You can have unlimited vendors and vendors can create unlimited products. Currently 5 product types are supported eg. physical product, downloadable product, variable product, bookable products through the [Dokan WC Bookings](https://wedevs.com/products/plugins/dokan/woocommerce-booking-integration/) add on and auction products through the [Dokan Simple Auction](https://wedevs.com/products/plugins/dokan/dokan-simple-auctions/) add on.
|
37 |
+
|
38 |
+
**Earn in many ways**
|
39 |
+
|
40 |
+
Profit doesn’t only rely on sales. Multiple ways allow earning through vendor commissions or product based commissions. You can also create subscription packs that allow you to charge for product uploads, product limits and time.
|
41 |
+
|
42 |
+
**Puts you in control**
|
43 |
+
|
44 |
+
As a an admin, you can use Dokan in a way where you can control everything that happens in your marketplace. Product publishing, vendor registration, subscription renewal and every other vendor activity can be re routed through you.
|
45 |
+
|
46 |
+
> Get the [**Pro Version**](https://wedevs.com/dokan/?utm_source=wporg&utm_medium=cta&utm_campaign=dokan-lite) with bunch of super features, updates and scope for powerful add-ons.
|
47 |
+
|
48 |
+
= Features =
|
49 |
+
**Marketplace with Independent Stores**
|
50 |
+
|
51 |
+
* Every seller gets their own store with a unique URL and branding.
|
52 |
+
* Beautiful storefront styles with contact details and widgets
|
53 |
+
* Store location map on store front. (Pro feature)
|
54 |
+
|
55 |
+
**Frontend Dashboard For Each Seller**
|
56 |
+
|
57 |
+
* WordPress admin area can be accessed only by admin.
|
58 |
+
* Vendors manage products, orders, withdraws everything from site frontend.
|
59 |
+
|
60 |
+
**Earn From Each Sale**
|
61 |
+
|
62 |
+
* A part of the sale value is sent to admin as commission.
|
63 |
+
* Commission rate can be customized.
|
64 |
+
* Per vendor percentage override. (**Pro feature**)
|
65 |
+
|
66 |
+
**Product Management**
|
67 |
+
|
68 |
+
* Create and manage your products from the frontend.
|
69 |
+
* Create variable or downloadable products. (**Pro Feature**)
|
70 |
+
* Vendors have option to manage product shipping, attributes. (**Pro Feature**)
|
71 |
+
* Vendors can manage downloadable product permission, expiry date and download limit. (**Pro Feature**)
|
72 |
+
|
73 |
+
**Reports (Pro Feature)**
|
74 |
+
|
75 |
+
* Vendors can see their sales report, generate statements and overview from frontend.
|
76 |
+
* Admins can overview orders and filter by sale, by date, top vendors or top earners.
|
77 |
+
* Export order reports to CSV.
|
78 |
+
|
79 |
+
**Coupon Management (Pro Feature)**
|
80 |
+
|
81 |
+
* Manage and offer discounts for each product.
|
82 |
+
* Set expiry and restriction for coupons.
|
83 |
+
|
84 |
+
**Manage Product Reviews (Pro Feature)**
|
85 |
+
|
86 |
+
* All product reviews are managed by vendors (with admin override)
|
87 |
+
* View all reviews on products left by customers.
|
88 |
+
|
89 |
+
**Pro Features Continued**
|
90 |
+
|
91 |
+
*The admin panel gives you some powerful management tools*
|
92 |
+
|
93 |
+
* Admin can view and manage vendor list
|
94 |
+
* Admin can view his as well as every vendor’s earning reports individually
|
95 |
+
* Dokan Pro has update and support option for customer.
|
96 |
+
* Dokan tools option has page installer and Sync table option
|
97 |
+
* Advanced settings for the admin -
|
98 |
+
* General Settings
|
99 |
+
* Admin can enable/disable the map on the store page.
|
100 |
+
* Admin can enable/disable the contact form on the store page
|
101 |
+
* Admin can also enable/disable the store sidebar from theme.
|
102 |
+
|
103 |
+
* Selling Options
|
104 |
+
* Admin can manage new product status.
|
105 |
+
* Admin can set the order status for withdraw.
|
106 |
+
* Admin can seth threshold withdraw day for the vendor.
|
107 |
+
* Admin can change the vendor store URL.
|
108 |
+
* Admin can also enable/disable the permission of review editing for the vendor.
|
109 |
+
|
110 |
+
* Widgets
|
111 |
+
* Best vendor widget
|
112 |
+
* Featured vendor widget
|
113 |
+
* Store contact widget
|
114 |
+
* Store location widget
|
115 |
+
|
116 |
+
And much more. Checkout the [**Pro Version**](https://wedevs.com/dokan/?utm_source=wporg&utm_medium=cta&utm_campaign=dokan-lite)
|
117 |
+
|
118 |
+
= Contribute =
|
119 |
+
This may have bugs and lack of many features. If you want to contribute on this project, you are more than welcome. Please fork the repository from [Github](https://github.com/weDevsOfficial/dokan).
|
120 |
+
|
121 |
+
= Author =
|
122 |
+
Brought to you by [Tareq Hasan](http://tareq.co) from [weDevs](http://wedevs.com)
|
123 |
+
|
124 |
+
== Installation ==
|
125 |
+
|
126 |
+
Extract the zip file and just drop the contents in the wp-content/plugins/ directory of your WordPress installation and then activate the Plugin from Plugins page.
|
127 |
+
|
128 |
+
== Frequently Asked Questions ==
|
129 |
+
|
130 |
+
= Q. Can I add a payment method? =
|
131 |
+
A. Just use any standard WooCommerce payment gateway.
|
132 |
+
|
133 |
+
= Q. How do withdrawals work? =
|
134 |
+
A. Right now, we offer PayPal, Bank and Skrill (pro) withdraw method for "Dokan". For PayPal withdraw, you can generate Mass Payment File to payout your sellers at once. Other methods are manual though.
|
135 |
+
|
136 |
+
= Q. Does Dokan integrate with BuddyPress? =
|
137 |
+
A. Not for the moment. We have plans to integrate with BuddyPress via an add-on in the near future.
|
138 |
+
|
139 |
+
= Q. Is Dokan responsive? =
|
140 |
+
A. Yes, Dokan is fully responsive. We take mobile first approach and it displays very well in mobile and tablet devices. We are using Twitter Bootstrap as a framework and it just works.
|
141 |
+
|
142 |
+
= Q. Does it supports variable products? =
|
143 |
+
A. The **Pro** version does! You can seller normal products, downloadable products and variable products with your own attributes.
|
144 |
+
|
145 |
+
= Q. Can each vendor customize his store? =
|
146 |
+
A. Right now we have options for only changing the store banner page. We are working on a better customizable seller store page.
|
147 |
+
|
148 |
+
= Q. Does Dokan supports PayPal adaptive payments? =
|
149 |
+
A. Yes it does! We have [an add-on](http://wedevs.com/plugin/dokan/paypal-adaptive-payments/) that brings PayPal adaptive payment support.
|
150 |
+
|
151 |
+
= Q. Will it be possible to take a cut or commission from the sales? =
|
152 |
+
A. Yes, that's how Dokan works. In every sales, you can cut a commission from a order. That's configurable from Dokan settings.
|
153 |
+
|
154 |
+
= Q. Can Dokan be used in a single seller mode? =
|
155 |
+
A. Obviously, you can use this on a single seller site to give them a nice front-end experience.
|
156 |
+
|
157 |
+
= Q. How to upgrade to the Pro version?
|
158 |
+
A. Just install and activate the PRO version without deleting the free plugin. All your data will be safe on the database and some extra features will be added. If you feel something may go wrong, please consult with our [support](https://wedevs.com/contact/) staff first.
|
159 |
+
|
160 |
+
== Screenshots ==
|
161 |
+
|
162 |
+
1. Admin Dashboard
|
163 |
+
2. Withdraw requests from sellers
|
164 |
+
3. Settings → General
|
165 |
+
4. Settings → Selling Options
|
166 |
+
5. Settings → Withdraw Options
|
167 |
+
6. Settings → Page Settings
|
168 |
+
7. Settings → Appearance
|
169 |
+
8. Seller Dashboard in site frontend
|
170 |
+
9. Frontend → Products Listing
|
171 |
+
10. Frontend → Create a new Product
|
172 |
+
11. Frontend → Edit a product
|
173 |
+
12. Frontend → Orders Listing
|
174 |
+
13. Frontend → Orders → Details
|
175 |
+
14. Frontend → Submit withdraw request
|
176 |
+
15. Frontend → Store Settings
|
177 |
+
16. Frontend → Store Payment Settings
|
178 |
+
17. Frontend → Individual Seller Store-1
|
179 |
+
18. Frontend → Individual Seller Store-2
|
180 |
+
19. Frontend → Individual Seller Store-3
|
181 |
+
|
182 |
+
== Changelog ==
|
183 |
+
|
184 |
+
v2.7.8 -> March 05, 2018
|
185 |
+
------------------------
|
186 |
+
- **Tweak:** Added vendor field in the product quick edit page
|
187 |
+
- **Tweak:** Removed sellerdiv metabox when a seller can access the backend
|
188 |
+
- **Fix:** Sometimes seller balance turn into minus figure
|
189 |
+
- **Fix:** Vendor name is showing twice on the cart checkout page
|
190 |
+
- **Fix:** Seller balance is not updating when the withdraw request is approved
|
191 |
+
- **Fix:** Extra fee (shipping & tax) is not adding to admin balance when a new order is made
|
192 |
+
- **Fix:** Unable to save variable product if admin commission is set to fixed
|
193 |
+
- **Fix:** Product thumbnail image is not changing on updating new image
|
194 |
+
- **Fix:** Fixed withdraw approving issue from admin side
|
195 |
+
- **Fix:** Vendor profile completion need upload banner even there are no settings to add banner
|
196 |
+
- **Fix:** Fixed bulk withdraw approving issue
|
197 |
+
- **Fix:** Completion of suborders does not make the parent order status to complete
|
198 |
+
|
199 |
+
v2.7.7 -> Feb 4, 2018
|
200 |
+
---------------------
|
201 |
+
- **New:** Add store URL field in backend user edit form
|
202 |
+
- **Tweak:** Compatibility with WooCommerce 3.3+
|
203 |
+
- **Fix:** Fixed wpdb error when multiple withdraw method enabled for vendor
|
204 |
+
- **Fix:** Fix settings icon issue
|
205 |
+
- **Fix:** Tooltip does not work in admin dashboard
|
206 |
+
|
207 |
+
v2.7.6 -> Feb 4, 2018
|
208 |
+
---------------------
|
209 |
+
- **New:** Vendors can now add products from backend
|
210 |
+
- **Fix:** Error in new products creation while booking is enabled
|
211 |
+
- **Fix:** Admin is unable to see vendor's media in backend
|
212 |
+
- **Fix:** Fixed dependency check for WooCommerce
|
213 |
+
- **Fix:** Shop manager does not have any ability to manage WooCommerce
|
214 |
+
- **Fix:** Shortcode not rendering if user not logged in
|
215 |
+
- **Fix:** Changed ip column data size for withdraw table for comapatibility with ipv6 address
|
216 |
+
- **Fix:** Fixed settings menu redirecting to dashboad menu issue
|
217 |
+
- **Tweak:** Fixed admin order layout compatibility issue with WooCommerce 3.3
|
218 |
+
|
219 |
+
v2.7.5 -> Jan 24, 2018
|
220 |
+
---------------------
|
221 |
+
- **Fix:** Fix tinymce conflict issue
|
222 |
+
- **Fix:** Fix showing other vendor products in vendor dashboard
|
223 |
+
|
224 |
+
v2.7.4 -> Jan 22, 2018
|
225 |
+
---------------------
|
226 |
+
- **Fix:** Fix random plugin activation problem for older version udpating
|
227 |
+
- **Fix:** Fix order details page issue in vendor dashboard
|
228 |
+
- **Fix:** Updated product edit template priority so that it works with the latest version of WooCommerce
|
229 |
+
|
230 |
+
v2.7.3 -> Jan 21, 2018
|
231 |
+
---------------------
|
232 |
+
- **New:** Added permissions for vendors
|
233 |
+
- **New:** Separate the vendor registration form through Shortcode
|
234 |
+
- **New:** Added different class for vendor address is fixed
|
235 |
+
- **New:** Product upload is now available on the backend for vendor
|
236 |
+
- **New:** Added filter `dokan_get_seller_percentage`
|
237 |
+
- **Fix:** Can't withdraw full fractional amount from vendor withdraw
|
238 |
+
- **Fix:** Internal server error while placing order from multiple vendors
|
239 |
+
- **Fix:** Sync order is still working even if we change admin commission fee
|
240 |
+
- **Fix:** Slider js issue fixed
|
241 |
+
- **Fix:** Product pageview counting issue
|
242 |
+
- **Fix:** Vendors wp-admin bar does not showing
|
243 |
+
- **Fix:** A vendor is supposed to have backend access to see his orders instead all vendors order is shown
|
244 |
+
- **Tweak:** Added admin fee as a order meta for better experience
|
245 |
+
|
246 |
+
v2.7.2 -> Dec 18, 2017
|
247 |
+
---------------------
|
248 |
+
- **Fix:** Product attributes not saving properly
|
249 |
+
- **Fix:** missing text domains updated
|
250 |
+
- **Tweak:** Disabled withdraw request if no withdraw method is set
|
251 |
+
|
252 |
+
v2.7.1 -> Dec 13, 2017
|
253 |
+
---------------------
|
254 |
+
- **Fix:** Added Order shipping track security nonce
|
255 |
+
- **Fix:** Fixed xss warnings
|
256 |
+
- **Fix:** Fix store widget register issue
|
257 |
+
- **Fix:** Added icon style in settings page
|
258 |
+
- **Fix:** Change user avatar rendering issue
|
259 |
+
- **Fix:** Store category value selected after reloading
|
260 |
+
- **Fix:** Fix attribute saving issue
|
261 |
+
- **Fix:** Store contact form widget is now working in single product page
|
262 |
+
- **Fix:** Fix some styling issue in product popup page
|
263 |
+
|
264 |
+
v2.7.0 -> Nov 23, 2017
|
265 |
+
---------------------
|
266 |
+
- **Fix:** Remove duplicate help menu and unwanted text
|
267 |
+
- **Fix:** Fixed price suggestion when flat rate commission set from admin fixed
|
268 |
+
- **Fix:** Fixed xss and csrf issues for some security
|
269 |
+
|
270 |
+
v2.6.10 -> Nov 13, 2017
|
271 |
+
---------------------
|
272 |
+
- **New:** Added dokan CRUD classes
|
273 |
+
- **New:** Added help menu on Dokan Admin Dashboard
|
274 |
+
- **Tweak:** Dokan Admin settings page redesigned
|
275 |
+
- **Tweak:** Price suggestion made compatible with Flat commission
|
276 |
+
- **Tweak:** Admin setup wizard styles updated
|
277 |
+
- **Fix:** Fixed casting issue in updater class
|
278 |
+
- **Fix:** Product status update on vendor status toggle
|
279 |
+
- **Fix:** Commission calculation issue fixed
|
280 |
+
- **Fix:** Store banner width and height not working properly
|
281 |
+
- **Fix:** Order filtering is showing wrong pagination
|
282 |
+
|
283 |
+
v2.6.9 -> Oct 17, 2017
|
284 |
+
---------------------
|
285 |
+
- **New:** Depends on vendor commission, pricing suggession is added in new and edit product template
|
286 |
+
- **New:** Added admin settings for showing/hiding customer info in order details page
|
287 |
+
- **New:** Both flat and percentage commission system added for vendor
|
288 |
+
- **New:** Added functinality for deleting vendor details when the vendor account is deleted
|
289 |
+
- **New:** Added documentaion links in dokan settings and pages
|
290 |
+
- **Fix:** Clearing and restoring all caching issue
|
291 |
+
- **Fix:** Disabled order editing option when the order status is cancelled or refunded
|
292 |
+
- **Fix:** Product image uploading permission issue fixed
|
293 |
+
- **Fix:** Store layout breaks when the address is too long fixed
|
294 |
+
- **Fix:** Non numerical error fixed for php latest versions
|
295 |
+
- **Fix:** Fix vendor order inserting undefined notices
|
296 |
+
|
297 |
+
v2.6.8 -> Sep 7, 2017
|
298 |
+
---------------------
|
299 |
+
- **New:** Dokan Emails now configurable from WooCommerce Email settings with theme override support
|
300 |
+
- **New:** Canceled withdraw requests are now shown for vendor
|
301 |
+
- **Fix:** Date time format fixed for order and product listing to support global format
|
302 |
+
- **Fix:** saving variable product prices
|
303 |
+
- **Tweak:** fontawesome library updated
|
304 |
+
|
305 |
+
v2.6.7 -> Aug 3, 2017
|
306 |
+
---------------------
|
307 |
+
- **Fix:** Fix multiple vendor order creating issue
|
308 |
+
- **Fix:** Disable pre defined attribute which already set with product
|
309 |
+
|
310 |
+
v2.6.6 -> July 31, 2017
|
311 |
+
---------------------
|
312 |
+
- **Fix:** Dokan Emails are not translating
|
313 |
+
- **Fix:** 'No result found' text on product edit page not translating
|
314 |
+
- **Fix:** Order sync offset problem during checkout
|
315 |
+
- **Fix:** All graph rtl problem
|
316 |
+
- **Tweak:** Vendor dashboard graph RTL enhanced
|
317 |
+
- **Tweak:** Filter added to customize shop address
|
318 |
+
- **Tweak:** Several other code enhancement and optimization
|
319 |
+
|
320 |
+
v2.6.5 -> July 16, 2017
|
321 |
+
---------------------
|
322 |
+
- **New:** Added IBAN and Routing number fields for vendor's Bank info section
|
323 |
+
- **New:** Added settings in admin panel to disable Vendor Welcome Wizard
|
324 |
+
- **New:** Added filter `dokan_seller_registration_required_fields`
|
325 |
+
- **New:** Store Category widget design updated
|
326 |
+
- **New:** Added Dokan logo as menu icon in admin dashboard
|
327 |
+
- **New:** Dokan Store Sidebar widget area now available for all themes
|
328 |
+
- **Fix:** Store categories are not updating properly
|
329 |
+
- **Fix:** Showing store location widget if location is not set
|
330 |
+
- **Fix:** Withdraw not working for IP address with port number
|
331 |
+
- **Tweak:** Enahanced RTL support
|
332 |
+
- **Tweak:** Profile Completion progress filter args updated
|
333 |
+
|
334 |
+
v2.6.4 -> June 22, 2017
|
335 |
+
---------------------
|
336 |
+
- **Fix:** Store page product loop pagination not showing
|
337 |
+
- **Fix:** Order exporting not working properly
|
338 |
+
- **Fix:** Earning calculation date range issue
|
339 |
+
- **Tweak:** Banner upload is now available in store settings for all appearances
|
340 |
+
- **Tweak:** Profile completion progress custom values logic updated
|
341 |
+
- **Tweak:** Downloadable product section performance tweaks
|
342 |
+
|
343 |
+
v2.6.3 -> June 08, 2017
|
344 |
+
---------------------
|
345 |
+
- **Fix:** Missing text domains updated
|
346 |
+
- **Fix:** Featured Seller, Best Seller and Top Seller query fixed for older version of WooCommerce
|
347 |
+
- **Fix:** Translation issue fixed on withdraw template
|
348 |
+
- **Fix:** Store pages template conflitcs with theme home page
|
349 |
+
- **Tweak:** Various other code improvements
|
350 |
+
|
351 |
+
v2.6.2 -> May 18, 2017
|
352 |
+
---------------------
|
353 |
+
- **New:** Dynamic state select option for Vendor Setup Wizard
|
354 |
+
- **Fix:** Change Product Seller from admin not working properly for variation products
|
355 |
+
- **Fix:** Store listing search not showing same result if submitted
|
356 |
+
- **Fix:** Store listing search sending multiple requests on AJAX
|
357 |
+
- **Fix:** Feature products, Best selling products and Top rated seller queries fixed
|
358 |
+
- **Fix:** Fixed Order status label issue in seller order listing
|
359 |
+
- **Tweak:** Added currency argument for wc_price
|
360 |
+
- **Tweak:** Various helper text labels updated
|
361 |
+
|
362 |
+
v2.6.1 -> May 04, 2017
|
363 |
+
---------------------
|
364 |
+
- **New:** Filter added `dokan_get_seller_earnings`
|
365 |
+
- **Fix:** `dokan-dashboard` shortcode not rendering properly
|
366 |
+
- **Fix:** Clear cache on vendor balance update
|
367 |
+
- **Fix:** Order regenerate order status issue
|
368 |
+
- **Fix:** Vendor wizard showing blank page
|
369 |
+
- **Fix:** Downloadable product grant access issue in vendor order
|
370 |
+
- **Fix:** Rating display on widget not working properly
|
371 |
+
- **Fix:** Single product view sales schedule issue fixed
|
372 |
+
- **Fix:** Vendor Product visibility and catalog issue fixed
|
373 |
+
- **Fix:** Date range issue fixed for vendor balance
|
374 |
+
- **Tweak:** Refill submitted values on error while adding new product
|
375 |
+
- **Tweak:** Updated posted value handler function
|
376 |
+
- **Tweak:** Hide view action on product listing if status is pending
|
377 |
+
|
378 |
+
v2.6.0 -> April 18, 2017
|
379 |
+
---------------------
|
380 |
+
- **New:** Made dokan compatible with WC 3.0
|
381 |
+
- **New:** Store listing design updated with city added
|
382 |
+
- **Tweak:** Store listing banner image streched for full view
|
383 |
+
- **Fix:** Variations attribute issue fixed
|
384 |
+
- **Fix:** Sub-order not created for multiple seller is fixed
|
385 |
+
- **Fix:** Seller dashboard product and order listing showing notices fixed
|
386 |
+
- **Fix:** Seller new product add page showing notices fixed
|
387 |
+
- **Fix:** Saving digital product data with WC 3.0
|
388 |
+
- **Fix:** Saving variation product data with WC 3.0
|
389 |
+
- **Fix:** Registration form now working with WC 3.0
|
390 |
+
|
391 |
+
v2.5.7 -> March 30, 2017
|
392 |
+
----------------------
|
393 |
+
- **New:** New design for store listing page
|
394 |
+
- **New:** Added gallery image uploader in add new product popup and page
|
395 |
+
- **New:** Added `dokan_get_seller_amount_from_order` filter
|
396 |
+
- **Fix:** Shipping tracking modal issue for third-party theme conflicting
|
397 |
+
- **Fix:** Dokan updater issue fixed
|
398 |
+
- **Fix:** Fix store listing search
|
399 |
+
- **Fix:** "More tab" checkbox saving issue on store settings
|
400 |
+
- **Fix:** Some translation issue fixed in product page
|
401 |
+
- **Tweak:** Remove modal js library
|
402 |
+
- **Tweak:** Remove default placeholder content from product description in new product page
|
403 |
+
- **Tweak:** Change required field state to country in store settings
|
404 |
+
|
405 |
+
v2.5.6 -> March 16, 2017
|
406 |
+
----------------------
|
407 |
+
- **Fix:** If no withdraw limit is set then it defaults to ‘0’
|
408 |
+
- **Fix:** Remove add to cart fragment filter for thirdparty theme conflicting
|
409 |
+
- **New:** Added `dokan_seller_total_sales`, `dokan_get_formatted_seller_balance` and `dokan_get_seller_balance` filter
|
410 |
+
|
411 |
+
v2.5.5 -> March 13, 2017
|
412 |
+
---------------------
|
413 |
+
- **Tweak:** Enabled showing cancelled orders in case of multiple sub-orders
|
414 |
+
- **Fix:** Fixed js error on my-account page
|
415 |
+
- **Fix:** Fixed reports showing wrong curve
|
416 |
+
- **Fix:** Text domain issue fixed
|
417 |
+
|
418 |
+
v2.5.4 -> March 8, 2017
|
419 |
+
----------------------
|
420 |
+
- **Tweak:** Changed text domain from 'dokan' to 'dokan-lite'
|
421 |
+
- **New:** Added settings to turn on/off new product form pop-up
|
422 |
+
- **New:** Added schedule discount price fields in new product form template when popup settings is disabled
|
423 |
+
- **Fix:** Dokan Tabs css fixed for better compatibility with all themes
|
424 |
+
- **Fix:** Fixed issues with saving product types other than simple like booking/auction
|
425 |
+
- **Fix:** Fixed issues with withdraw balance and status
|
426 |
+
- **Fix:** Template rendering issue on Store page and Review page for vendors is fixed.
|
427 |
+
|
428 |
+
v2.5.3 -> February 14, 2017
|
429 |
+
----------------------
|
430 |
+
- **Fix:** Order Tracking modal not working properly in some themes
|
431 |
+
- **Fix:** Fixed showing notice on customer order table for multiple vendors
|
432 |
+
- **Fix:** Fixed product listing status count issue
|
433 |
+
- **Fix:** Fixed withdraw status messages and calculation
|
434 |
+
- **Tweak:** Removed un-necessary codes and optimized code structure
|
435 |
+
|
436 |
+
v2.5.2 -> January 25, 2017
|
437 |
+
----------------------
|
438 |
+
- **New:** Added filter 'dokan_new_product_popup_args' to enable custom validation on new product add
|
439 |
+
- **New:** Enabled vendors to select all products while creating coupon
|
440 |
+
- **Fix:** On plugin activation auto flush rewrite rules
|
441 |
+
- **Fix:** Seller Setup wizard not translating properly in some cases
|
442 |
+
- **Fix:** Shipping tracking modal not showing while bootstrap loaded is fixed
|
443 |
+
- **Fix:** Vendor statement enhanced for calculating per product commission
|
444 |
+
- **Tweak:** Seller setup wizard enhanced for responsiveness
|
445 |
+
- **Tweak:** Seller dashboard widgets enhanced for better responsiveness
|
446 |
+
- **Tweak:** Add new product pop up enhanced for better responsiveness
|
447 |
+
- **Tweak:** Several other optimizations to codebase for better and stable performance
|
448 |
+
|
449 |
+
v2.5.1 -> January 12, 2017
|
450 |
+
---------------------
|
451 |
+
- **New:** Front-End product template new UI
|
452 |
+
- **Tweak:** All SELLER text is changed to VENDOR
|
453 |
+
- **Tweak:** Updated Seller Earning Statement Report View
|
454 |
+
- **Tweak:** Fixed variable product data saving issues
|
455 |
+
- **Tweak:** Changed Order Tracking options from Select to Text box for sellers
|
456 |
+
- **Tweak:** Improved Responsiveness on seller dashboard pages
|
457 |
+
- **Tweak:** Product commission option is moved to advance tab from general
|
458 |
+
- **Fix:** Improved Seller Setup wizard for better UX
|
459 |
+
- **Fix:** Improved Seller Setup wizard for better UX
|
460 |
+
- **Fix:** Fixed showing error If Google MAP API is not given
|
461 |
+
- **Fix:** Fixed Extra fee receiver not working issue
|
462 |
+
|
463 |
+
= v2.5 -> October 18, 2016 =
|
464 |
+
---------------------
|
465 |
+
- **New:** Setup Wizard on Admin panel
|
466 |
+
- **New:** Setup Wizard for seller settings after new seller registration
|
467 |
+
- **New:** Multiple header templates for store template
|
468 |
+
- **New:** Added DOKAN shortcode insert button on post/page editor
|
469 |
+
- **New:** Added store search option on store listing page
|
470 |
+
- **New:** Added detailed income and withdraw statement for sellers
|
471 |
+
- **New:** Added option to choose tax and shipping receiver as admin or seller.
|
472 |
+
- **New:** Show seller payment options on user profile in back-end.
|
473 |
+
- **Tweak:** Dokan store listing shortcode has more options
|
474 |
+
- **Tweak:** Flat rate shipping synced with zone ID
|
475 |
+
- **Tweak:** Fixed Tab view variation products
|
476 |
+
- **Tweak:** Added active states in product review status filter
|
477 |
+
- **Fix:** Fixed front-end variation issue for other languages
|
478 |
+
- **Fix:** Fixed product add while selling is disabled for sellers
|
479 |
+
|
480 |
+
= v2.4.12 -> August 08, 2016 =
|
481 |
+
---------------------
|
482 |
+
- **New:** Product base admin commission
|
483 |
+
- **New:** Sellers coupon show on store
|
484 |
+
- **Tweak:** Added Settings for gMap API key
|
485 |
+
- **Fix:** Product with same sku
|
486 |
+
- **Fix:** Product permalink, defaults to 'product'
|
487 |
+
- **Fix:** Image upload attribute undefined issue
|
488 |
+
- **Fix:** Multiple seller order mail
|
489 |
+
- **Fix:** Product sku search
|
490 |
+
- **Fix:** Store search by store name
|
491 |
+
|
492 |
+
|
493 |
+
= v2.4.11 -> May 29, 2016 =
|
494 |
+
---------------------
|
495 |
+
- **New:** Refund request from seller to admin by sellers order details page
|
496 |
+
- **New:** Tracker added
|
497 |
+
- **Fix:** Checkout issue if flat rate shipping set as null
|
498 |
+
- **Fix:** Change seller display name to store name
|
499 |
+
- **Fix:** Multiple submit request on product add/edit
|
500 |
+
- **Fix:** Undefine error on cart page for shipping additional price
|
501 |
+
- **Fix:** Product edit page permission
|
502 |
+
- **Fix:** Remove duplicate insert on dokan order table
|
503 |
+
|
504 |
+
= v2.4.10 -> February 24, 2016 =
|
505 |
+
---------------------
|
506 |
+
- **New:** New dashboard menu added for 'store link', 'edit account' and 'sign out'
|
507 |
+
- **Fix:** Remove repeated data rendering on admin panel dokan earning section
|
508 |
+
- **Fix:** Terms and condition not showing on registration issue
|
509 |
+
- **Fix:** Dashboard/orders page single view responsive issue
|
510 |
+
- **Fix:** Product edit and add issue on Firefox and IE browser
|
511 |
+
- **Fix:** Product variation save and update issues
|
512 |
+
|
513 |
+
= v2.4.9 -> February 01, 2016 =
|
514 |
+
---------------------
|
515 |
+
- **New:** Plugin help page added
|
516 |
+
- **New:** Seller search added on store listing
|
517 |
+
- **Tweak:** Some validation on contact seller email handler and after sent hook updated
|
518 |
+
- **Tweak:** Category check added on new product add without reloading page
|
519 |
+
- **Tweak:** Auto suggestion and clear button on flat view variation product attributes input field
|
520 |
+
- **Fix:** Downloadable file change in product after order issue fixed
|
521 |
+
- **Fix:** Order status translation issue on order listing page
|
522 |
+
- **Fix:** Email not send to seller on new order issue fixed
|
523 |
+
- **Fix:** Allow float number for seller percentage
|
524 |
+
- **Fix:** SEO hook updated for YOAST to make compatible with WP 4.4
|
525 |
+
- **Fix:** Browser jump issue in tab view on click of tabs
|
526 |
+
|
527 |
+
= v2.4.8 -> November 21, 2015 =
|
528 |
+
---------------------
|
529 |
+
- **Tweak:** Email template override system added
|
530 |
+
- **Fix:** Change dokan SEO admin option section
|
531 |
+
- **Fix:** Ajax url fixed to prevent conflict
|
532 |
+
- **Fix:** Fix Arrow (reverted) for pagination
|
533 |
+
- **Fix:** Hide unapproved comment from store review tab
|
534 |
+
- **Fix:** Update cart discount meta on suborder create
|
535 |
+
|
536 |
+
= v2.4.7 -> October 20, 2015 =
|
537 |
+
------------------------------
|
538 |
+
- **Fix:** Fix Coupon discount redundancy
|
539 |
+
- **Fix:** Fix product gallery image delete issue on tab view
|
540 |
+
- **Fix:** Fix translation issue on user migration form
|
541 |
+
- **Fix:** Fix Store listing template view for not logged-in user
|
542 |
+
- **Fix:** parent sub-order creation on unsuccessful payment by card
|
543 |
+
- **Fix:** Store page breadcrumb fixed to show Store name and listing link properly
|
544 |
+
|
545 |
+
|
546 |
+
= v2.4.6 -> October 12, 2015 =
|
547 |
+
------------------------------
|
548 |
+
- **Tweak:** Added terms and condition option field on Registration form
|
549 |
+
- **Fix:** Remove required for product per page field on store settings
|
550 |
+
- **Fix:** Fix delete variation product issue on tab view for seller
|
551 |
+
- **Fix:** Fix redundant data for guest users
|
552 |
+
- **Fix:** Fix responsive issue on front page product listing
|
553 |
+
- **Fix:** Seller store banner size to cover
|
554 |
+
- **Fix:** Store template fix for Twenty Twelve theme
|
555 |
+
|
556 |
+
|
557 |
+
= v2.4.5 -> September 14, 2015 =
|
558 |
+
------------------------------
|
559 |
+
|
560 |
+
- **Fix:** Fix responsive style issue for store page
|
561 |
+
- **Fix:** Fix undefined parent order object issue on creat sub-order
|
562 |
+
- **Fix:** Fix seller dashboard product comments count on widget
|
563 |
+
|
564 |
+
= v2.4.4 -> September 4, 2015 =
|
565 |
+
|
566 |
+
- **New:** Seller balance re-sync by checking unexpected order button added on tools page
|
567 |
+
- **Fix:** Make some text translatable on contact seller widget
|
568 |
+
- **Fix:** Optimize sql query to make regenerate process fast
|
569 |
+
- **Fix:** Fix WooCommerce deactivate dependency issue
|
570 |
+
- **Fix:** Fix plugin bulk activate issue with dokan welcome page
|
571 |
+
|
572 |
+
= v2.4.3 -> August 25, 2015 =
|
573 |
+
|
574 |
+
- **New:** Welcome page on activation with re-sync button added
|
575 |
+
- **Tweak:** Visual Progress bar added for re-sync Order progress
|
576 |
+
- **Fix:** Sub-order duplicate issue fixed
|
577 |
+
- **Fix:** Fix WP editor compatible to 4.3
|
578 |
+
- **Fix:** Compatible with WordPress 4.3 widget __construct functions
|
579 |
+
- **Fix:** Fix table name in sync table sql
|
580 |
+
- **Fix:** Fix store review rewrite problem, Move store functionality in Dokan_Pro_Store class
|
581 |
+
- **Fix:** Fix seller migration template loader
|
582 |
+
- **Fix:** Fix same seller multiple product type shipping issue
|
583 |
+
- **Fix:** Fix flat rate shipping issue for multi seller
|
584 |
+
|
585 |
+
= v2.4.2 -> August 12, 2015 =
|
586 |
+
|
587 |
+
- **Tweak:** New hook on store header: dokan_store_before_social
|
588 |
+
- **Tweak:** Re-arrange dokan admin settings fields
|
589 |
+
- **Tweak:** Add field on seller store settings to manage store product per page
|
590 |
+
- **Tweak:** Sellers redirected to dashboard after login
|
591 |
+
- **Fix:** Feature seller widget display template path
|
592 |
+
- **Fix:** Best seller widget display seller name changed to store name
|
593 |
+
- **Fix:** Fix problem with showing variation data on order details
|
594 |
+
- **Fix:** Update "dokan_create_seller_order" function to save variation order meta on sub-order
|
595 |
+
- **Fix:** Update "dokan_post_input_box" function to add option for making text field and number field required
|
596 |
+
- **Fix:** Fix balance separator problem on withdraw
|
597 |
+
- **Fix:** Fix total sales balance display on seller dashboard page
|
598 |
+
- **Fix:** Keep value saved of override shipping fields meta even when the option unchecked
|
599 |
+
- **Fix:** English language phrases correction on several place
|
600 |
+
- **Fix:** Fix calculation of sub-orders in WooCommerce dashboard status widget sales query
|
601 |
+
|
602 |
+
= 2.4.1 (August 1, 2015) =
|
603 |
+
- **New:** Pro version rewrite to Free
|
604 |
+
|
605 |
+
= 1.0 =
|
606 |
+
Initial version released
|
607 |
+
|
608 |
+
|
609 |
+
== Upgrade Notice ==
|
610 |
+
|
611 |
+
= 2.6.0 =
|
612 |
+
**Important Update** This update is compatible with WooCommerce 3.0. Make sure to backup and read full [changelog](https://docs.wedevs.com/docs/dokan/changelog/) for more details.
|
templates/dashboard/big-counter-widget.php
CHANGED
@@ -11,9 +11,6 @@
|
|
11 |
* @package dokan
|
12 |
*/
|
13 |
?>
|
14 |
-
<style>
|
15 |
-
|
16 |
-
</style>
|
17 |
<div class="dashboard-widget big-counter">
|
18 |
<ul class="list-inline">
|
19 |
<li>
|
@@ -22,7 +19,7 @@
|
|
22 |
</li>
|
23 |
<li>
|
24 |
<div class="title"><?php _e( 'Earning', 'dokan-lite' ); ?></div>
|
25 |
-
<div class="count"><?php echo wc_price( dokan_get_seller_earnings(
|
26 |
</li>
|
27 |
<li>
|
28 |
<div class="title"><?php _e( 'Pageview', 'dokan-lite' ); ?></div>
|
@@ -43,6 +40,5 @@
|
|
43 |
</li>
|
44 |
|
45 |
<?php do_action( 'dokan_seller_dashboard_widget_counter' ); ?>
|
46 |
-
|
47 |
</ul>
|
48 |
</div> <!-- .big-counter -->
|
11 |
* @package dokan
|
12 |
*/
|
13 |
?>
|
|
|
|
|
|
|
14 |
<div class="dashboard-widget big-counter">
|
15 |
<ul class="list-inline">
|
16 |
<li>
|
19 |
</li>
|
20 |
<li>
|
21 |
<div class="title"><?php _e( 'Earning', 'dokan-lite' ); ?></div>
|
22 |
+
<div class="count"><?php echo wc_price( dokan_get_seller_earnings( dokan_get_current_user_id() ) ) ?></div>
|
23 |
</li>
|
24 |
<li>
|
25 |
<div class="title"><?php _e( 'Pageview', 'dokan-lite' ); ?></div>
|
40 |
</li>
|
41 |
|
42 |
<?php do_action( 'dokan_seller_dashboard_widget_counter' ); ?>
|
|
|
43 |
</ul>
|
44 |
</div> <!-- .big-counter -->
|
templates/global/no-permission.php
ADDED
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Dokan Dashboard Template
|
4 |
+
*
|
5 |
+
* Dokan Main Dahsboard template for Fron-end
|
6 |
+
*
|
7 |
+
* @since 2.4
|
8 |
+
*
|
9 |
+
* @package dokan
|
10 |
+
*/
|
11 |
+
?>
|
12 |
+
<div class="dokan-dashboard-wrap">
|
13 |
+
<?php
|
14 |
+
|
15 |
+
/**
|
16 |
+
* dokan_dashboard_content_before hook
|
17 |
+
*
|
18 |
+
* @hooked get_dashboard_side_navigation
|
19 |
+
*
|
20 |
+
* @since 2.4
|
21 |
+
*/
|
22 |
+
do_action( 'dokan_dashboard_content_before' );
|
23 |
+
?>
|
24 |
+
|
25 |
+
<div class="dokan-dashboard-content">
|
26 |
+
|
27 |
+
<?php
|
28 |
+
|
29 |
+
/**
|
30 |
+
* dokan_dashboard_content_before hook
|
31 |
+
*
|
32 |
+
* @hooked show_seller_dashboard_notice
|
33 |
+
*
|
34 |
+
* @since 2.4
|
35 |
+
*/
|
36 |
+
do_action( 'dokan_dashboard_content_inside_before' );
|
37 |
+
?>
|
38 |
+
|
39 |
+
<article class="dashboard-content-area">
|
40 |
+
|
41 |
+
<?php
|
42 |
+
|
43 |
+
/**
|
44 |
+
* dokan_dashboard_before_widgets hook
|
45 |
+
*
|
46 |
+
* @hooked dokan_show_profile_progressbar
|
47 |
+
*
|
48 |
+
* @since 2.4
|
49 |
+
*/
|
50 |
+
dokan_get_template_part( 'global/dokan-error', '', array( 'deleted' => false, 'message' => __( 'You have no permission to view this page', 'dokan-lite' ) ) );
|
51 |
+
?>
|
52 |
+
|
53 |
+
</article><!-- .dashboard-content-area -->
|
54 |
+
|
55 |
+
<?php
|
56 |
+
|
57 |
+
/**
|
58 |
+
* dokan_dashboard_content_inside_after hook
|
59 |
+
*
|
60 |
+
* @since 2.4
|
61 |
+
*/
|
62 |
+
do_action( 'dokan_dashboard_content_inside_after' );
|
63 |
+
?>
|
64 |
+
|
65 |
+
|
66 |
+
</div><!-- .dokan-dashboard-content -->
|
67 |
+
|
68 |
+
<?php
|
69 |
+
|
70 |
+
/**
|
71 |
+
* dokan_dashboard_content_after hook
|
72 |
+
*
|
73 |
+
* @since 2.4
|
74 |
+
*/
|
75 |
+
do_action( 'dokan_dashboard_content_after' );
|
76 |
+
?>
|
77 |
+
|
78 |
+
</div><!-- .dokan-dashboard-wrap -->
|
templates/orders/date-export.php
CHANGED
@@ -20,6 +20,9 @@
|
|
20 |
|
21 |
<form action="" method="POST" class="dokan-right">
|
22 |
<div class="dokan-form-group">
|
|
|
|
|
|
|
23 |
<input type="submit" name="dokan_order_export_all" class="dokan-btn dokan-btn-sm dokan-btn-danger dokan-btn-theme" value="<?php esc_attr_e( 'Export All', 'dokan-lite' ); ?>">
|
24 |
<input type="submit" name="dokan_order_export_filtered" class="dokan-btn dokan-btn-sm dokan-btn-danger dokan-btn-theme" value="<?php esc_attr_e( 'Export Filtered', 'dokan-lite' ); ?>">
|
25 |
<input type="hidden" name="order_date" value="<?php echo isset( $_GET['order_date'] ) ? sanitize_key( $_GET['order_date'] ) : ''; ?>">
|
20 |
|
21 |
<form action="" method="POST" class="dokan-right">
|
22 |
<div class="dokan-form-group">
|
23 |
+
<?php
|
24 |
+
wp_nonce_field( 'dokan_vendor_order_export_action', 'dokan_vendor_order_export_nonce' );
|
25 |
+
?>
|
26 |
<input type="submit" name="dokan_order_export_all" class="dokan-btn dokan-btn-sm dokan-btn-danger dokan-btn-theme" value="<?php esc_attr_e( 'Export All', 'dokan-lite' ); ?>">
|
27 |
<input type="submit" name="dokan_order_export_filtered" class="dokan-btn dokan-btn-sm dokan-btn-danger dokan-btn-theme" value="<?php esc_attr_e( 'Export Filtered', 'dokan-lite' ); ?>">
|
28 |
<input type="hidden" name="order_date" value="<?php echo isset( $_GET['order_date'] ) ? sanitize_key( $_GET['order_date'] ) : ''; ?>">
|
templates/orders/details.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
-
global $woocommerce, $
|
3 |
|
4 |
$order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
|
5 |
|
6 |
-
if ( !dokan_is_seller_has_order(
|
7 |
echo '<div class="dokan-alert dokan-alert-danger">' . __( 'This is not yours, I swear!', 'dokan-lite' ) . '</div>';
|
8 |
return;
|
9 |
}
|
@@ -164,29 +164,32 @@ $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', '
|
|
164 |
<span><?php _e( 'Order Status:', 'dokan-lite' ); ?></span>
|
165 |
<label class="dokan-label dokan-label-<?php echo dokan_get_order_status_class( dokan_get_prop( $order, 'status' ) ); ?>"><?php echo isset( $statuses[dokan_get_prop( $order, 'status' )] ) ? $statuses[dokan_get_prop( $order, 'status' )] : dokan_get_prop( $order, 'status' ); ?></label>
|
166 |
|
167 |
-
<?php if ( dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) == 'on' && $order->get_status() !== 'cancelled' && $order->get_status() !== 'refunded' ) {?>
|
168 |
<a href="#" class="dokan-edit-status"><small><?php _e( ' Edit', 'dokan-lite' ); ?></small></a>
|
169 |
<?php } ?>
|
170 |
</li>
|
171 |
-
|
172 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
}
|
179 |
-
?>
|
180 |
-
</select>
|
181 |
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
|
187 |
-
<a href="#" class="dokan-btn dokan-btn-default dokan-btn-sm dokan-cancel-status"><?php _e( 'Cancel', 'dokan-lite' ) ?></a>
|
188 |
-
</form>
|
189 |
-
</li>
|
190 |
<li>
|
191 |
<span><?php _e( 'Order Date:', 'dokan-lite' ); ?></span>
|
192 |
<?php echo dokan_get_date_created( $order ); ?>
|
@@ -263,7 +266,10 @@ $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', '
|
|
263 |
<?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?>
|
264 |
</div>
|
265 |
<p class="meta">
|
266 |
-
<?php printf( __( 'added %s ago', 'dokan-lite' ), human_time_diff( strtotime( $note->comment_date_gmt ), current_time( 'timestamp', 1 ) ) ); ?>
|
|
|
|
|
|
|
267 |
</p>
|
268 |
</li>
|
269 |
<?php
|
@@ -277,26 +283,28 @@ $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', '
|
|
277 |
add_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10, 1 );
|
278 |
?>
|
279 |
<div class="add_note">
|
280 |
-
|
281 |
-
|
282 |
-
<
|
283 |
-
<
|
284 |
-
|
285 |
-
|
286 |
-
<div class="
|
287 |
-
<
|
288 |
-
<
|
289 |
-
|
290 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
291 |
</div>
|
292 |
-
|
293 |
-
|
294 |
-
<input type="hidden" name="delete-note-security" id="delete-note-security" value="<?php echo wp_create_nonce('delete-order-note'); ?>">
|
295 |
-
<input type="hidden" name="post_id" value="<?php echo dokan_get_prop( $order, 'id' ); ?>">
|
296 |
-
<input type="hidden" name="action" value="dokan_add_order_note">
|
297 |
-
<input type="submit" name="add_order_note" class="add_note btn btn-sm btn-theme" value="<?php esc_attr_e( 'Add Note', 'dokan-lite' ); ?>">
|
298 |
-
</div>
|
299 |
-
</form>
|
300 |
|
301 |
<div class="clearfix dokan-form-group" style="margin-top: 10px;">
|
302 |
<!-- Trigger the modal with a button -->
|
@@ -319,6 +327,7 @@ $hide_customer_info = dokan_get_option( 'hide_customer_info', 'dokan_selling', '
|
|
319 |
</div>
|
320 |
|
321 |
<input type="hidden" name="security" id="security" value="<?php echo wp_create_nonce('add-shipping-tracking-info'); ?>">
|
|
|
322 |
<input type="hidden" name="post_id" id="post-id" value="<?php echo dokan_get_prop( $order, 'id' ); ?>">
|
323 |
<input type="hidden" name="action" id="action" value="dokan_add_shipping_tracking_info">
|
324 |
|
1 |
<?php
|
2 |
+
global $woocommerce, $wpdb;
|
3 |
|
4 |
$order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
|
5 |
|
6 |
+
if ( !dokan_is_seller_has_order( dokan_get_current_user_id(), $order_id ) ) {
|
7 |
echo '<div class="dokan-alert dokan-alert-danger">' . __( 'This is not yours, I swear!', 'dokan-lite' ) . '</div>';
|
8 |
return;
|
9 |
}
|
164 |
<span><?php _e( 'Order Status:', 'dokan-lite' ); ?></span>
|
165 |
<label class="dokan-label dokan-label-<?php echo dokan_get_order_status_class( dokan_get_prop( $order, 'status' ) ); ?>"><?php echo isset( $statuses[dokan_get_prop( $order, 'status' )] ) ? $statuses[dokan_get_prop( $order, 'status' )] : dokan_get_prop( $order, 'status' ); ?></label>
|
166 |
|
167 |
+
<?php if ( current_user_can( 'dokan_manage_order' ) && dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) == 'on' && $order->get_status() !== 'cancelled' && $order->get_status() !== 'refunded' ) {?>
|
168 |
<a href="#" class="dokan-edit-status"><small><?php _e( ' Edit', 'dokan-lite' ); ?></small></a>
|
169 |
<?php } ?>
|
170 |
</li>
|
171 |
+
<?php if ( current_user_can( 'dokan_manage_order' ) ): ?>
|
172 |
+
<li class="dokan-hide">
|
173 |
+
<form id="dokan-order-status-form" action="" method="post">
|
174 |
+
|
175 |
+
<select id="order_status" name="order_status" class="form-control">
|
176 |
+
<?php
|
177 |
+
foreach ( $statuses as $status => $label ) {
|
178 |
+
echo '<option value="' . esc_attr( $status ) . '" ' . selected( $status, 'wc-' . dokan_get_prop( $order, 'status' ), false ) . '>' . esc_html__( $label, 'dokan-lite' ) . '</option>';
|
179 |
+
}
|
180 |
+
?>
|
181 |
+
</select>
|
182 |
|
183 |
+
<input type="hidden" name="order_id" value="<?php echo dokan_get_prop( $order, 'id' ); ?>">
|
184 |
+
<input type="hidden" name="action" value="dokan_change_status">
|
185 |
+
<input type="hidden" name="_wpnonce" value="<?php echo wp_create_nonce( 'dokan_change_status' ); ?>">
|
186 |
+
<input type="submit" class="dokan-btn dokan-btn-success dokan-btn-sm" name="dokan_change_status" value="<?php _e( 'Update', 'dokan-lite' ); ?>">
|
|
|
|
|
|
|
187 |
|
188 |
+
<a href="#" class="dokan-btn dokan-btn-default dokan-btn-sm dokan-cancel-status"><?php _e( 'Cancel', 'dokan-lite' ) ?></a>
|
189 |
+
</form>
|
190 |
+
</li>
|
191 |
+
<?php endif ?>
|
192 |
|
|
|
|
|
|
|
193 |
<li>
|
194 |
<span><?php _e( 'Order Date:', 'dokan-lite' ); ?></span>
|
195 |
<?php echo dokan_get_date_created( $order ); ?>
|
266 |
<?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?>
|
267 |
</div>
|
268 |
<p class="meta">
|
269 |
+
<?php printf( __( 'added %s ago', 'dokan-lite' ), human_time_diff( strtotime( $note->comment_date_gmt ), current_time( 'timestamp', 1 ) ) ); ?>
|
270 |
+
<?php if ( current_user_can( 'dokan_manage_order_note' ) ): ?>
|
271 |
+
<a href="#" class="delete_note"><?php _e( 'Delete note', 'dokan-lite' ); ?></a>
|
272 |
+
<?php endif ?>
|
273 |
</p>
|
274 |
</li>
|
275 |
<?php
|
283 |
add_filter( 'comments_clauses', array( 'WC_Comments', 'exclude_order_comments' ), 10, 1 );
|
284 |
?>
|
285 |
<div class="add_note">
|
286 |
+
<?php if ( current_user_can( 'dokan_manage_order_note' ) ): ?>
|
287 |
+
<h4><?php _e( 'Add note', 'dokan-lite' ); ?></h4>
|
288 |
+
<form class="dokan-form-inline" id="add-order-note" role="form" method="post">
|
289 |
+
<p>
|
290 |
+
<textarea type="text" id="add-note-content" name="note" class="form-control" cols="19" rows="3"></textarea>
|
291 |
+
</p>
|
292 |
+
<div class="clearfix">
|
293 |
+
<div class="order_note_type dokan-form-group">
|
294 |
+
<select name="note_type" id="order_note_type" class="dokan-form-control">
|
295 |
+
<option value="customer"><?php _e( 'Customer note', 'dokan-lite' ); ?></option>
|
296 |
+
<option value=""><?php _e( 'Private note', 'dokan-lite' ); ?></option>
|
297 |
+
</select>
|
298 |
+
</div>
|
299 |
+
|
300 |
+
<input type="hidden" name="security" value="<?php echo wp_create_nonce('add-order-note'); ?>">
|
301 |
+
<input type="hidden" name="delete-note-security" id="delete-note-security" value="<?php echo wp_create_nonce('delete-order-note'); ?>">
|
302 |
+
<input type="hidden" name="post_id" value="<?php echo dokan_get_prop( $order, 'id' ); ?>">
|
303 |
+
<input type="hidden" name="action" value="dokan_add_order_note">
|
304 |
+
<input type="submit" name="add_order_note" class="add_note btn btn-sm btn-theme" value="<?php esc_attr_e( 'Add Note', 'dokan-lite' ); ?>">
|
305 |
</div>
|
306 |
+
</form>
|
307 |
+
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
308 |
|
309 |
<div class="clearfix dokan-form-group" style="margin-top: 10px;">
|
310 |
<!-- Trigger the modal with a button -->
|
327 |
</div>
|
328 |
|
329 |
<input type="hidden" name="security" id="security" value="<?php echo wp_create_nonce('add-shipping-tracking-info'); ?>">
|
330 |
+
<?php wp_nonce_field( 'dokan_security_action', 'dokan_security_nonce' ); ?>
|
331 |
<input type="hidden" name="post_id" id="post-id" value="<?php echo dokan_get_prop( $order, 'id' ); ?>">
|
332 |
<input type="hidden" name="action" id="action" value="dokan_add_shipping_tracking_info">
|
333 |
|
templates/orders/downloadable.php
CHANGED
@@ -39,7 +39,7 @@ global $wpdb;
|
|
39 |
<?php
|
40 |
echo '<option value=""></option>';
|
41 |
global $wpdb;
|
42 |
-
$user_id =
|
43 |
|
44 |
$sql = "SELECT $wpdb->posts.* FROM $wpdb->posts
|
45 |
INNER JOIN $wpdb->postmeta
|
39 |
<?php
|
40 |
echo '<option value=""></option>';
|
41 |
global $wpdb;
|
42 |
+
$user_id = dokan_get_current_user_id();
|
43 |
|
44 |
$sql = "SELECT $wpdb->posts.* FROM $wpdb->posts
|
45 |
INNER JOIN $wpdb->postmeta
|
templates/orders/listing.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
global $woocommerce;
|
3 |
|
4 |
-
$seller_id =
|
5 |
$order_status = isset( $_GET['order_status'] ) ? sanitize_key( $_GET['order_status'] ) : 'all';
|
6 |
$paged = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
|
7 |
$limit = 10;
|
@@ -19,7 +19,9 @@ if ( $user_orders ) {
|
|
19 |
<th><?php _e( 'Status', 'dokan-lite' ); ?></th>
|
20 |
<th><?php _e( 'Customer', 'dokan-lite' ); ?></th>
|
21 |
<th><?php _e( 'Date', 'dokan-lite' ); ?></th>
|
22 |
-
|
|
|
|
|
23 |
</tr>
|
24 |
</thead>
|
25 |
<tbody>
|
@@ -29,13 +31,17 @@ if ( $user_orders ) {
|
|
29 |
?>
|
30 |
<tr >
|
31 |
<td class="dokan-order-id" data-title="<?php _e( 'Order', 'dokan-lite' ); ?>" >
|
32 |
-
<?php
|
|
|
|
|
|
|
|
|
33 |
</td>
|
34 |
<td class="dokan-order-total" data-title="<?php _e( 'Order Total', 'dokan-lite' ); ?>" >
|
35 |
<?php echo $the_order->get_formatted_order_total(); ?>
|
36 |
</td>
|
37 |
<td class="dokan-order-status" data-title="<?php _e( 'Status', 'dokan-lite' ); ?>" >
|
38 |
-
<?php echo '<span class="dokan-label dokan-label-' . dokan_get_order_status_class( dokan_get_prop( $the_order, 'status' ) ) . '">' .
|
39 |
</td>
|
40 |
<td class="dokan-order-customer" data-title="<?php _e( 'Customer', 'dokan-lite' ); ?>" >
|
41 |
<?php
|
@@ -83,50 +89,52 @@ if ( $user_orders ) {
|
|
83 |
echo '<abbr title="' . esc_attr( dokan_date_time_format( $t_time ) ) . '">' . esc_html( apply_filters( 'post_date_column_time', dokan_date_time_format( $h_time, true ) , dokan_get_prop( $the_order, 'id' ) ) ) . '</abbr>';
|
84 |
?>
|
85 |
</td>
|
86 |
-
|
87 |
-
<?php
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
if (
|
94 |
-
$
|
95 |
-
'
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
|
102 |
-
if ( in_array( dokan_get_prop( $the_order, 'status' ), array( 'pending', 'on-hold', 'processing' ) ) ) {
|
103 |
-
$actions['complete'] = array(
|
104 |
-
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=dokan-mark-order-complete&order_id=' . dokan_get_prop( $the_order, 'id' ) ), 'dokan-mark-order-complete' ),
|
105 |
-
'name' => __( 'Complete', 'dokan-lite' ),
|
106 |
-
'action' => "complete",
|
107 |
-
'icon' => '<i class="fa fa-check"> </i>'
|
108 |
-
);
|
109 |
}
|
110 |
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
-
|
114 |
-
'url' => wp_nonce_url( add_query_arg( array( 'order_id' => dokan_get_prop( $the_order, 'id' ) ), dokan_get_navigation_url( 'orders' ) ), 'dokan_view_order' ),
|
115 |
-
'name' => __( 'View', 'dokan-lite' ),
|
116 |
-
'action' => "view",
|
117 |
-
'icon' => '<i class="fa fa-eye"> </i>'
|
118 |
-
);
|
119 |
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
printf( '<a class="dokan-btn dokan-btn-default dokan-btn-sm tips" href="%s" data-toggle="tooltip" data-placement="top" title="%s">%s</a> ', esc_url( $action['url'] ), esc_attr( $action['name'] ), $icon );
|
125 |
-
}
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
|
|
130 |
<td class="diviader"></td>
|
131 |
</tr>
|
132 |
|
@@ -149,7 +157,7 @@ if ( $user_orders ) {
|
|
149 |
} else {
|
150 |
$num_of_pages = ceil( $order_count / $limit );
|
151 |
}
|
152 |
-
|
153 |
|
154 |
$base_url = dokan_get_navigation_url( 'orders' );
|
155 |
|
1 |
<?php
|
2 |
global $woocommerce;
|
3 |
|
4 |
+
$seller_id = dokan_get_current_user_id();
|
5 |
$order_status = isset( $_GET['order_status'] ) ? sanitize_key( $_GET['order_status'] ) : 'all';
|
6 |
$paged = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
|
7 |
$limit = 10;
|
19 |
<th><?php _e( 'Status', 'dokan-lite' ); ?></th>
|
20 |
<th><?php _e( 'Customer', 'dokan-lite' ); ?></th>
|
21 |
<th><?php _e( 'Date', 'dokan-lite' ); ?></th>
|
22 |
+
<?php if ( current_user_can( 'dokan_manage_order' ) ): ?>
|
23 |
+
<th width="17%"><?php _e( 'Action', 'dokan-lite' ); ?></th>
|
24 |
+
<?php endif ?>
|
25 |
</tr>
|
26 |
</thead>
|
27 |
<tbody>
|
31 |
?>
|
32 |
<tr >
|
33 |
<td class="dokan-order-id" data-title="<?php _e( 'Order', 'dokan-lite' ); ?>" >
|
34 |
+
<?php if ( current_user_can( 'dokan_view_order' ) ): ?>
|
35 |
+
<?php echo '<a href="' . wp_nonce_url( add_query_arg( array( 'order_id' => dokan_get_prop( $the_order, 'id' ) ), dokan_get_navigation_url( 'orders' ) ), 'dokan_view_order' ) . '"><strong>' . sprintf( __( 'Order %s', 'dokan-lite' ), esc_attr( $the_order->get_order_number() ) ) . '</strong></a>'; ?>
|
36 |
+
<?php else: ?>
|
37 |
+
<?php echo '<strong>' . sprintf( __( 'Order %s', 'dokan-lite' ), esc_attr( $the_order->get_order_number() ) ) . '</strong>'; ?>
|
38 |
+
<?php endif ?>
|
39 |
</td>
|
40 |
<td class="dokan-order-total" data-title="<?php _e( 'Order Total', 'dokan-lite' ); ?>" >
|
41 |
<?php echo $the_order->get_formatted_order_total(); ?>
|
42 |
</td>
|
43 |
<td class="dokan-order-status" data-title="<?php _e( 'Status', 'dokan-lite' ); ?>" >
|
44 |
+
<?php echo '<span class="dokan-label dokan-label-' . dokan_get_order_status_class( dokan_get_prop( $the_order, 'status' ) ) . '">' . dokan_get_order_status_translated( dokan_get_prop( $the_order, 'status' ) ) . '</span>'; ?>
|
45 |
</td>
|
46 |
<td class="dokan-order-customer" data-title="<?php _e( 'Customer', 'dokan-lite' ); ?>" >
|
47 |
<?php
|
89 |
echo '<abbr title="' . esc_attr( dokan_date_time_format( $t_time ) ) . '">' . esc_html( apply_filters( 'post_date_column_time', dokan_date_time_format( $h_time, true ) , dokan_get_prop( $the_order, 'id' ) ) ) . '</abbr>';
|
90 |
?>
|
91 |
</td>
|
92 |
+
<?php if ( current_user_can( 'dokan_manage_order' ) ): ?>
|
93 |
+
<td class="dokan-order-action" width="17%" data-title="<?php _e( 'Action', 'dokan-lite' ); ?>" >
|
94 |
+
<?php
|
95 |
+
do_action( 'woocommerce_admin_order_actions_start', $the_order );
|
96 |
+
|
97 |
+
$actions = array();
|
98 |
+
|
99 |
+
if ( dokan_get_option( 'order_status_change', 'dokan_selling', 'on' ) == 'on' ) {
|
100 |
+
if ( in_array( dokan_get_prop( $the_order, 'status' ), array( 'pending', 'on-hold' ) ) ) {
|
101 |
+
$actions['processing'] = array(
|
102 |
+
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=dokan-mark-order-processing&order_id=' . dokan_get_prop( $the_order, 'id' ) ), 'dokan-mark-order-processing' ),
|
103 |
+
'name' => __( 'Processing', 'dokan-lite' ),
|
104 |
+
'action' => "processing",
|
105 |
+
'icon' => '<i class="fa fa-clock-o"> </i>'
|
106 |
+
);
|
107 |
+
}
|
108 |
+
|
109 |
+
if ( in_array( dokan_get_prop( $the_order, 'status' ), array( 'pending', 'on-hold', 'processing' ) ) ) {
|
110 |
+
$actions['complete'] = array(
|
111 |
+
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=dokan-mark-order-complete&order_id=' . dokan_get_prop( $the_order, 'id' ) ), 'dokan-mark-order-complete' ),
|
112 |
+
'name' => __( 'Complete', 'dokan-lite' ),
|
113 |
+
'action' => "complete",
|
114 |
+
'icon' => '<i class="fa fa-check"> </i>'
|
115 |
+
);
|
116 |
+
}
|
117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
|
120 |
+
$actions['view'] = array(
|
121 |
+
'url' => wp_nonce_url( add_query_arg( array( 'order_id' => dokan_get_prop( $the_order, 'id' ) ), dokan_get_navigation_url( 'orders' ) ), 'dokan_view_order' ),
|
122 |
+
'name' => __( 'View', 'dokan-lite' ),
|
123 |
+
'action' => "view",
|
124 |
+
'icon' => '<i class="fa fa-eye"> </i>'
|
125 |
+
);
|
126 |
|
127 |
+
$actions = apply_filters( 'woocommerce_admin_order_actions', $actions, $the_order );
|
|
|
|
|
|
|
|
|
|
|
128 |
|
129 |
+
foreach ($actions as $action) {
|
130 |
+
$icon = ( isset( $action['icon'] ) ) ? $action['icon'] : '';
|
131 |
+
printf( '<a class="dokan-btn dokan-btn-default dokan-btn-sm tips" href="%s" data-toggle="tooltip" data-placement="top" title="%s">%s</a> ', esc_url( $action['url'] ), esc_attr( $action['name'] ), $icon );
|
132 |
+
}
|
|
|
|
|
133 |
|
134 |
+
do_action( 'woocommerce_admin_order_actions_end', $the_order );
|
135 |
+
?>
|
136 |
+
</td>
|
137 |
+
<?php endif ?>
|
138 |
<td class="diviader"></td>
|
139 |
</tr>
|
140 |
|
157 |
} else {
|
158 |
$num_of_pages = ceil( $order_count / $limit );
|
159 |
}
|
160 |
+
|
161 |
|
162 |
$base_url = dokan_get_navigation_url( 'orders' );
|
163 |
|
templates/products/listing-filter.php
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
<form class="dokan-form-inline dokan-w6 dokan-product-date-filter" method="get" >
|
14 |
|
15 |
<div class="dokan-form-group">
|
16 |
-
<?php dokan_product_listing_filter_months_dropdown(
|
17 |
</div>
|
18 |
|
19 |
<div class="dokan-form-group">
|
13 |
<form class="dokan-form-inline dokan-w6 dokan-product-date-filter" method="get" >
|
14 |
|
15 |
<div class="dokan-form-group">
|
16 |
+
<?php dokan_product_listing_filter_months_dropdown( dokan_get_current_user_id() ); ?>
|
17 |
</div>
|
18 |
|
19 |
<div class="dokan-form-group">
|
templates/products/new-product-single.php
CHANGED
@@ -9,11 +9,6 @@ if ( !isset( $post->ID ) && ! isset( $_GET['product_id'] ) ) {
|
|
9 |
}
|
10 |
|
11 |
if( isset( $post->ID ) && $post->ID && $post->post_type == 'product' ) {
|
12 |
-
|
13 |
-
if ( $post->post_author != get_current_user_id() ) {
|
14 |
-
wp_die( __( 'Access Denied', 'dokan-lite' ) );
|
15 |
-
}
|
16 |
-
|
17 |
$post_id = $post->ID;
|
18 |
$post_title = $post->post_title;
|
19 |
$post_content = $post->post_content;
|
@@ -33,6 +28,11 @@ if ( isset( $_GET['product_id'] ) ) {
|
|
33 |
$from_shortcode = true;
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
36 |
$_regular_price = get_post_meta( $post_id, '_regular_price', true );
|
37 |
$_sale_price = get_post_meta( $post_id, '_sale_price', true );
|
38 |
$is_discount = !empty( $_sale_price ) ? true : false;
|
@@ -236,7 +236,7 @@ if ( ! $from_shortcode ) {
|
|
236 |
<div class="dokan-form-group dokan-clearfix dokan-price-container">
|
237 |
<div class="dokan-product-less-price-alert dokan-hide">
|
238 |
<?php _e('Product price can\'t be less than the vendor fee!', 'dokan-lite' ); ?>
|
239 |
-
</div>
|
240 |
</div>
|
241 |
|
242 |
<div class="sale_price_dates_fields dokan-clearfix dokan-form-group <?php echo ( ! $show_schedule ) ? 'dokan-hide' : ''; ?>">
|
9 |
}
|
10 |
|
11 |
if( isset( $post->ID ) && $post->ID && $post->post_type == 'product' ) {
|
|
|
|
|
|
|
|
|
|
|
12 |
$post_id = $post->ID;
|
13 |
$post_title = $post->post_title;
|
14 |
$post_content = $post->post_content;
|
28 |
$from_shortcode = true;
|
29 |
}
|
30 |
|
31 |
+
if ( ! dokan_is_product_author( $post_id ) ) {
|
32 |
+
wp_die( __( 'Access Denied', 'dokan-lite' ) );
|
33 |
+
exit();
|
34 |
+
}
|
35 |
+
|
36 |
$_regular_price = get_post_meta( $post_id, '_regular_price', true );
|
37 |
$_sale_price = get_post_meta( $post_id, '_sale_price', true );
|
38 |
$is_discount = !empty( $_sale_price ) ? true : false;
|
236 |
<div class="dokan-form-group dokan-clearfix dokan-price-container">
|
237 |
<div class="dokan-product-less-price-alert dokan-hide">
|
238 |
<?php _e('Product price can\'t be less than the vendor fee!', 'dokan-lite' ); ?>
|
239 |
+
</div>
|
240 |
</div>
|
241 |
|
242 |
<div class="sale_price_dates_fields dokan-clearfix dokan-form-group <?php echo ( ! $show_schedule ) ? 'dokan-hide' : ''; ?>">
|
templates/products/new-product.php
CHANGED
@@ -105,8 +105,8 @@
|
|
105 |
<div id="product_images_container">
|
106 |
<ul class="product_images dokan-clearfix">
|
107 |
<?php
|
108 |
-
if ( isset( $_POST['product_image_gallery'] ) ) {
|
109 |
-
$product_images = $_POST['product_image_gallery'];
|
110 |
$gallery = explode( ',', $product_images );
|
111 |
|
112 |
if ( $gallery ) {
|
105 |
<div id="product_images_container">
|
106 |
<ul class="product_images dokan-clearfix">
|
107 |
<?php
|
108 |
+
if ( isset( $_POST['product_image_gallery'] ) ) { // WPCS: CSRF ok, input var ok.
|
109 |
+
$product_images = $_POST['product_image_gallery']; // WPCS: CSRF ok, input var ok.
|
110 |
$gallery = explode( ',', $product_images );
|
111 |
|
112 |
if ( $gallery ) {
|
templates/products/products-listing.php
CHANGED
@@ -36,10 +36,16 @@
|
|
36 |
|
37 |
<?php if ( dokan_is_seller_enabled( get_current_user_id() ) ): ?>
|
38 |
<span class="dokan-add-product-link">
|
39 |
-
|
40 |
-
<
|
41 |
-
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
</span>
|
44 |
<?php endif; ?>
|
45 |
</div>
|
@@ -68,12 +74,20 @@
|
|
68 |
</thead>
|
69 |
<tbody>
|
70 |
<?php
|
71 |
-
$pagenum
|
72 |
-
|
73 |
$args = array(
|
74 |
'posts_per_page' => 10,
|
75 |
-
'paged'
|
76 |
-
'author'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
);
|
78 |
|
79 |
if ( isset( $_GET['post_status']) && in_array( $_GET['post_status'], $post_statuses ) ) {
|
@@ -98,29 +112,37 @@
|
|
98 |
}
|
99 |
|
100 |
$original_post = $post;
|
101 |
-
$product_query = dokan()->product->all( $args );
|
102 |
|
103 |
if ( $product_query->have_posts() ) {
|
104 |
while ($product_query->have_posts()) {
|
105 |
$product_query->the_post();
|
106 |
|
|
|
107 |
$tr_class = ($post->post_status == 'pending' ) ? ' class="danger"' : '';
|
108 |
$view_class = ($post->post_status == 'pending' ) ? 'dokan-hide' : '';
|
109 |
$product = wc_get_product( $post->ID );
|
110 |
?>
|
111 |
<tr<?php echo $tr_class; ?>>
|
112 |
<td data-title="<?php _e( 'Image', 'dokan-lite' ); ?>">
|
113 |
-
|
|
|
|
|
|
|
|
|
114 |
</td>
|
115 |
<td data-title="<?php _e( 'Name', 'dokan-lite' ); ?>">
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
<
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
|
|
124 |
</td>
|
125 |
<td class="post-status" data-title="<?php _e( 'Status', 'dokan-lite' ); ?>">
|
126 |
<label class="dokan-label <?php echo dokan_get_post_status_label_class( $post->post_status ); ?>"><?php echo dokan_get_post_status( $post->post_status ); ?></label>
|
36 |
|
37 |
<?php if ( dokan_is_seller_enabled( get_current_user_id() ) ): ?>
|
38 |
<span class="dokan-add-product-link">
|
39 |
+
<?php if ( current_user_can( 'dokan_add_product' ) ): ?>
|
40 |
+
<a href="<?php echo dokan_get_navigation_url( 'new-product' ); ?>" class="dokan-btn dokan-btn-theme <?php echo ( 'on' == dokan_get_option( 'disable_product_popup', 'dokan_selling', 'off' ) ) ? '' : 'dokan-add-new-product'; ?>">
|
41 |
+
<i class="fa fa-briefcase"> </i>
|
42 |
+
<?php _e( 'Add new product', 'dokan-lite' ); ?>
|
43 |
+
</a>
|
44 |
+
<?php endif ?>
|
45 |
+
|
46 |
+
<?php
|
47 |
+
do_action( 'dokan_after_add_product_btn' );
|
48 |
+
?>
|
49 |
</span>
|
50 |
<?php endif; ?>
|
51 |
</div>
|
74 |
</thead>
|
75 |
<tbody>
|
76 |
<?php
|
77 |
+
$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
|
78 |
+
$post_statuses = array( 'publish', 'draft', 'pending' );
|
79 |
$args = array(
|
80 |
'posts_per_page' => 10,
|
81 |
+
'paged' => $pagenum,
|
82 |
+
'author' => get_current_user_id(),
|
83 |
+
'tax_query' => array(
|
84 |
+
array(
|
85 |
+
'taxonomy' => 'product_type',
|
86 |
+
'field' => 'slug',
|
87 |
+
'terms' => apply_filters( 'dokan_product_listing_exclude_type', array() ),
|
88 |
+
'operator' => 'NOT IN',
|
89 |
+
),
|
90 |
+
),
|
91 |
);
|
92 |
|
93 |
if ( isset( $_GET['post_status']) && in_array( $_GET['post_status'], $post_statuses ) ) {
|
112 |
}
|
113 |
|
114 |
$original_post = $post;
|
115 |
+
$product_query = dokan()->product->all( apply_filters( 'dokan_product_listing_arg', $args ) );
|
116 |
|
117 |
if ( $product_query->have_posts() ) {
|
118 |
while ($product_query->have_posts()) {
|
119 |
$product_query->the_post();
|
120 |
|
121 |
+
$row_actions = dokan_product_get_row_action( $post );
|
122 |
$tr_class = ($post->post_status == 'pending' ) ? ' class="danger"' : '';
|
123 |
$view_class = ($post->post_status == 'pending' ) ? 'dokan-hide' : '';
|
124 |
$product = wc_get_product( $post->ID );
|
125 |
?>
|
126 |
<tr<?php echo $tr_class; ?>>
|
127 |
<td data-title="<?php _e( 'Image', 'dokan-lite' ); ?>">
|
128 |
+
<?php if ( current_user_can( 'dokan_edit_product' ) ): ?>
|
129 |
+
<a href="<?php echo dokan_edit_product_url( $post->ID ); ?>"><?php echo $product->get_image(); ?></a>
|
130 |
+
<?php else: ?>
|
131 |
+
<?php echo $product->get_image(); ?>
|
132 |
+
<?php endif ?>
|
133 |
</td>
|
134 |
<td data-title="<?php _e( 'Name', 'dokan-lite' ); ?>">
|
135 |
+
<?php if ( current_user_can( 'dokan_edit_product' ) ): ?>
|
136 |
+
<p><a href="<?php echo dokan_edit_product_url( $post->ID ); ?>"><?php echo $product->get_title(); ?></a></p>
|
137 |
+
<?php else: ?>
|
138 |
+
<p><a href=""><?php echo $product->get_title(); ?></a></p>
|
139 |
+
<?php endif ?>
|
140 |
+
|
141 |
+
<?php if ( !empty( $row_actions ) ): ?>
|
142 |
+
<div class="row-actions">
|
143 |
+
<?php echo $row_actions; ?>
|
144 |
+
</div>
|
145 |
+
<?php endif ?>
|
146 |
</td>
|
147 |
<td class="post-status" data-title="<?php _e( 'Status', 'dokan-lite' ); ?>">
|
148 |
<label class="dokan-label <?php echo dokan_get_post_status_label_class( $post->post_status ); ?>"><?php echo dokan_get_post_status( $post->post_status ); ?></label>
|
templates/settings/header.php
CHANGED
@@ -10,6 +10,6 @@
|
|
10 |
<header class="dokan-dashboard-header">
|
11 |
<h1 class="entry-title">
|
12 |
<?php echo $heading; ?>
|
13 |
-
<small>→ <a href="<?php echo dokan_get_store_url(
|
14 |
</h1>
|
15 |
</header><!-- .dokan-dashboard-header -->
|
10 |
<header class="dokan-dashboard-header">
|
11 |
<h1 class="entry-title">
|
12 |
<?php echo $heading; ?>
|
13 |
+
<small>→ <a href="<?php echo dokan_get_store_url( dokan_get_current_user_id() ); ?>"><?php _e( 'Visit Store', 'dokan-lite' ); ?></a></small>
|
14 |
</h1>
|
15 |
</header><!-- .dokan-dashboard-header -->
|
templates/settings/store-form.php
CHANGED
@@ -30,16 +30,18 @@
|
|
30 |
$store_tnc = isset( $profile_info['store_tnc'] ) ? $profile_info['store_tnc'] : '' ;
|
31 |
|
32 |
if ( is_wp_error( $validate ) ) {
|
33 |
-
$storename = $_POST['dokan_store_name'];
|
34 |
-
$map_location = $_POST['location'];
|
35 |
-
$map_address = $_POST['find_address'];
|
36 |
-
|
37 |
-
$
|
38 |
-
|
39 |
-
$
|
40 |
-
$
|
41 |
-
$
|
42 |
-
$
|
|
|
|
|
43 |
}
|
44 |
|
45 |
$dokan_appearance = dokan_get_option( 'store_header_template', 'dokan_appearance', 'default' );
|
30 |
$store_tnc = isset( $profile_info['store_tnc'] ) ? $profile_info['store_tnc'] : '' ;
|
31 |
|
32 |
if ( is_wp_error( $validate ) ) {
|
33 |
+
$storename = $_POST['dokan_store_name']; // WPCS: CSRF ok, Input var ok.
|
34 |
+
$map_location = $_POST['location']; // WPCS: CSRF ok, Input var ok.
|
35 |
+
$map_address = $_POST['find_address']; // WPCS: CSRF ok, Input var ok.
|
36 |
+
|
37 |
+
$posted_address = wc_clean( $_POST['dokan_address'] ); // WPCS: CSRF ok, Input var ok.
|
38 |
+
|
39 |
+
$address_street1 = $posted_address['street_1'];
|
40 |
+
$address_street2 = $posted_address['street_2'];
|
41 |
+
$address_city = $posted_address['city'];
|
42 |
+
$address_zip = $posted_address['zip'];
|
43 |
+
$address_country = $posted_address['country'];
|
44 |
+
$address_state = $posted_address['state'];
|
45 |
}
|
46 |
|
47 |
$dokan_appearance = dokan_get_option( 'store_header_template', 'dokan_appearance', 'default' );
|
templates/store-header.php
CHANGED
@@ -83,6 +83,8 @@ if ( 'layout3' === $profile_layout ) {
|
|
83 |
<i class="fa fa-star"></i>
|
84 |
<?php dokan_get_readable_seller_rating( $store_user->get_id() ); ?>
|
85 |
</li>
|
|
|
|
|
86 |
</ul>
|
87 |
|
88 |
<?php if ( $social_fields ) { ?>
|
83 |
<i class="fa fa-star"></i>
|
84 |
<?php dokan_get_readable_seller_rating( $store_user->get_id() ); ?>
|
85 |
</li>
|
86 |
+
|
87 |
+
<?php do_action( 'dokan_store_header_info_fields', $store_user->get_id() ); ?>
|
88 |
</ul>
|
89 |
|
90 |
<?php if ( $social_fields ) { ?>
|
templates/store.php
CHANGED
@@ -22,7 +22,6 @@ get_header( 'shop' );
|
|
22 |
<?php do_action( 'dokan_sidebar_store_before', $store_user->data, $store_info ); ?>
|
23 |
<?php
|
24 |
if ( ! dynamic_sidebar( 'sidebar-store' ) ) {
|
25 |
-
|
26 |
$args = array(
|
27 |
'before_widget' => '<aside class="widget">',
|
28 |
'after_widget' => '</aside>',
|
22 |
<?php do_action( 'dokan_sidebar_store_before', $store_user->data, $store_info ); ?>
|
23 |
<?php
|
24 |
if ( ! dynamic_sidebar( 'sidebar-store' ) ) {
|
|
|
25 |
$args = array(
|
26 |
'before_widget' => '<aside class="widget">',
|
27 |
'after_widget' => '</aside>',
|
templates/withdraw/request-form.php
CHANGED
@@ -7,7 +7,10 @@
|
|
7 |
* @package dokan
|
8 |
*/
|
9 |
?>
|
|
|
10 |
<form class="dokan-form-horizontal withdraw" role="form" method="post">
|
|
|
|
|
11 |
<div class="dokan-form-group">
|
12 |
<label for="withdraw-amount" class="dokan-w3 dokan-control-label">
|
13 |
<?php _e( 'Withdraw Amount', 'dokan-lite' ); ?>
|
@@ -42,3 +45,8 @@
|
|
42 |
</div>
|
43 |
</div>
|
44 |
</form>
|
|
|
|
|
|
|
|
|
|
7 |
* @package dokan
|
8 |
*/
|
9 |
?>
|
10 |
+
<?php if ( ! empty( $payment_methods ) ) : ?>
|
11 |
<form class="dokan-form-horizontal withdraw" role="form" method="post">
|
12 |
+
<?php wp_nonce_field( 'dokan_withdraw', 'dokan_withdraw_nonce' ); ?>
|
13 |
+
|
14 |
<div class="dokan-form-group">
|
15 |
<label for="withdraw-amount" class="dokan-w3 dokan-control-label">
|
16 |
<?php _e( 'Withdraw Amount', 'dokan-lite' ); ?>
|
45 |
</div>
|
46 |
</div>
|
47 |
</form>
|
48 |
+
<?php else : ?>
|
49 |
+
<div class="dokan-alert dokan-alert-warning">
|
50 |
+
<strong><?php echo sprintf( '%s <a href="%s">%s</a>', __( 'No withdraw method is available. Please update your payment method to withdraw funds.', 'dokan-lite' ), esc_url( dokan_get_navigation_url( 'settings/payment' ) ), __( 'Payment Settings Setup', 'dokan-lite' ) ) ?></strong>
|
51 |
+
</div>
|
52 |
+
<?php endif; ?>
|