Dokan – Best WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy - Version 3.2.1

Version Description

Download this release

Release Info

Developer tareq1988
Plugin Icon wp plugin Dokan – Best WooCommerce Multivendor Marketplace Solution – Build Your Own Amazon, eBay, Etsy
Version 3.2.1
Comparing to
See all releases

Code changes from version 3.2.0 to 3.2.1

dokan.php CHANGED
@@ -3,12 +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: 3.2.0
7
  * Author: weDevs
8
  * Author URI: https://wedevs.com/
9
  * Text Domain: dokan-lite
10
  * WC requires at least: 3.0
11
- * WC tested up to: 4.9.2
12
  * Domain Path: /languages/
13
  * License: GPL2
14
  */
@@ -56,7 +56,7 @@ final class WeDevs_Dokan {
56
  *
57
  * @var string
58
  */
59
- public $version = '3.2.0';
60
 
61
  /**
62
  * Instance of self
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: 3.2.1
7
  * Author: weDevs
8
  * Author URI: https://wedevs.com/
9
  * Text Domain: dokan-lite
10
  * WC requires at least: 3.0
11
+ * WC tested up to: 5.0.0
12
  * Domain Path: /languages/
13
  * License: GPL2
14
  */
56
  *
57
  * @var string
58
  */
59
+ public $version = '3.2.1';
60
 
61
  /**
62
  * Instance of self
includes/Abstracts/DokanPromotion.php CHANGED
@@ -186,7 +186,7 @@ abstract class DokanPromotion {
186
  wp_send_json_error( __( 'You have no permission to do that', 'dokan-lite' ) );
187
  }
188
 
189
- if ( ! wp_verify_nonce( $post_data['nonce'], 'dokan_admin' ) ) {
190
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
191
  }
192
 
186
  wp_send_json_error( __( 'You have no permission to do that', 'dokan-lite' ) );
187
  }
188
 
189
+ if ( ! isset( $post_data['nonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['nonce'] ), 'dokan_admin' ) ) {
190
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
191
  }
192
 
includes/Admin/LimitedTimePromotion.php CHANGED
@@ -200,7 +200,7 @@ class LimitedTimePromotion {
200
  wp_send_json_error( __( 'You have no permission to do that', 'dokan-lite' ) );
201
  }
202
 
203
- if ( ! wp_verify_nonce( $post_data['nonce'], 'dokan_admin' ) ) {
204
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
205
  }
206
 
200
  wp_send_json_error( __( 'You have no permission to do that', 'dokan-lite' ) );
201
  }
202
 
203
+ if ( ! isset( $post_data['nonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['nonce'] ), 'dokan_admin' ) ) {
204
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
205
  }
206
 
includes/Admin/Settings.php CHANGED
@@ -68,7 +68,7 @@ class Settings {
68
 
69
  $_post_data = wp_unslash( $_POST );
70
 
71
- if ( ! wp_verify_nonce( sanitize_text_field( $_post_data['nonce'] ), 'dokan_admin' ) ) {
72
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
73
  }
74
 
@@ -96,7 +96,7 @@ class Settings {
96
 
97
  $_post_data = wp_unslash( $_POST );
98
 
99
- if ( ! wp_verify_nonce( sanitize_text_field( $_post_data['nonce'] ), 'dokan_admin' ) ) {
100
  throw new DokanException( 'dokan_settings_invalid_nonce', __( 'Invalid nonce', 'dokan-lite' ), 403 );
101
  }
102
 
@@ -360,6 +360,7 @@ class Settings {
360
  'store_products_per_page' => [
361
  'name' => 'store_products_per_page',
362
  'label' => __( 'Store Products Per Page', 'dokan-lite' ),
 
363
  'type' => 'number',
364
  'default' => '12',
365
  ],
@@ -512,7 +513,6 @@ class Settings {
512
  'reg_tc_page' => [
513
  'name' => 'reg_tc_page',
514
  'label' => __( 'Terms and Conditions Page', 'dokan-lite' ),
515
- //'desc' => __( 'Select a page to show Terms and Conditions', 'dokan-lite' ),
516
  'type' => 'select',
517
  'placeholder' => __( 'Select page', 'dokan-lite' ),
518
  'options' => $pages_array,
68
 
69
  $_post_data = wp_unslash( $_POST );
70
 
71
+ if ( ! isset( $_post_data['nonce'] ) || ! wp_verify_nonce( sanitize_key( $_post_data['nonce'] ), 'dokan_admin' ) ) {
72
  wp_send_json_error( __( 'Invalid nonce', 'dokan-lite' ) );
73
  }
74
 
96
 
97
  $_post_data = wp_unslash( $_POST );
98
 
99
+ if ( ! isset( $_post_data['nonce'] ) || ! wp_verify_nonce( sanitize_key( $_post_data['nonce'] ), 'dokan_admin' ) ) {
100
  throw new DokanException( 'dokan_settings_invalid_nonce', __( 'Invalid nonce', 'dokan-lite' ), 403 );
101
  }
102
 
360
  'store_products_per_page' => [
361
  'name' => 'store_products_per_page',
362
  'label' => __( 'Store Products Per Page', 'dokan-lite' ),
363
+ 'desc' => __( 'Set how many products to display per page on the vendor store page. It will affect only if the vendor isn\'t set this value on their vendor setting page.', 'dokan-lite' ),
364
  'type' => 'number',
365
  'default' => '12',
366
  ],
513
  'reg_tc_page' => [
514
  'name' => 'reg_tc_page',
515
  'label' => __( 'Terms and Conditions Page', 'dokan-lite' ),
 
516
  'type' => 'select',
517
  'placeholder' => __( 'Select page', 'dokan-lite' ),
518
  'options' => $pages_array,
includes/Admin/UserProfile.php CHANGED
@@ -26,8 +26,8 @@ class UserProfile {
26
  *
27
  * @return void
28
  */
29
- function enqueue_scripts( $page ) {
30
- if ( in_array( $page, array( 'profile.php', 'user-edit.php' ) ) ) {
31
  wp_enqueue_media();
32
 
33
  $admin_admin_script = array(
@@ -52,7 +52,7 @@ class UserProfile {
52
  *
53
  * @return void|false
54
  */
55
- function add_meta_fields( $user ) {
56
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
57
  return;
58
  }
@@ -81,7 +81,7 @@ class UserProfile {
81
 
82
  $banner_width = dokan_get_option( 'store_banner_width', 'dokan_appearance', 625 );
83
  $banner_height = dokan_get_option( 'store_banner_height', 'dokan_appearance', 300 );
84
- $admin_commission = ( 'flat' == $admin_commission_type ) ? wc_format_localized_price( $admin_commission ) : wc_format_localized_decimal( $admin_commission );
85
 
86
  $country_state = array(
87
  'country' => array(
@@ -119,6 +119,7 @@ class UserProfile {
119
  <p class="description">
120
  <?php
121
  echo sprintf(
 
122
  esc_attr__( 'Upload a banner for your store. Banner size is (%1$sx%2$s) pixels.', 'dokan-lite' ),
123
  esc_attr( $banner_width ),
124
  esc_attr( $banner_height )
@@ -177,10 +178,10 @@ class UserProfile {
177
  <tr>
178
  <th><label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label></th>
179
  <td>
180
- <?php if ( ! empty( $field['type'] ) && 'select' == $field['type'] ) : ?>
181
  <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;">
182
  <?php
183
- if ( 'country' == $key ) {
184
  $selected = esc_attr( $address_country );
185
  } else {
186
  $selected = esc_attr( $address_state );
@@ -192,7 +193,7 @@ class UserProfile {
192
  </select>
193
  <?php else : ?>
194
  <?php
195
- if ( 'country' == $key ) {
196
  $value = esc_attr( $address_country );
197
  } else {
198
  $value = esc_attr( $address_state );
@@ -531,14 +532,14 @@ class UserProfile {
531
  *
532
  * @return void
533
  */
534
- function save_meta_fields( $user_id ) {
535
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
536
  return;
537
  }
538
 
539
  $post_data = wp_unslash( $_POST );
540
 
541
- if ( isset( $post_data['dokan_update_user_profile_info_nonce'] ) && ! wp_verify_nonce( $post_data['dokan_update_user_profile_info_nonce'], 'dokan_update_user_profile_info' ) ) {
542
  return;
543
  }
544
 
@@ -548,7 +549,7 @@ class UserProfile {
548
 
549
  $selling = sanitize_text_field( $post_data['dokan_enable_selling'] );
550
  $publishing = sanitize_text_field( $post_data['dokan_publish'] );
551
- $percentage = isset( $post_data['dokan_admin_percentage'] ) && $post_data['dokan_admin_percentage'] != '' ? $post_data['dokan_admin_percentage'] : '';
552
  $percentage_type = empty( $post_data['dokan_admin_percentage_type'] ) ? 'percentage' : sanitize_text_field( $post_data['dokan_admin_percentage_type'] );
553
  $feature_seller = sanitize_text_field( $post_data['dokan_feature'] );
554
  $store_settings = dokan_get_store_info( $user_id );
26
  *
27
  * @return void
28
  */
29
+ public function enqueue_scripts( $page ) {
30
+ if ( in_array( $page, array( 'profile.php', 'user-edit.php' ), true ) ) {
31
  wp_enqueue_media();
32
 
33
  $admin_admin_script = array(
52
  *
53
  * @return void|false
54
  */
55
+ public function add_meta_fields( $user ) {
56
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
57
  return;
58
  }
81
 
82
  $banner_width = dokan_get_option( 'store_banner_width', 'dokan_appearance', 625 );
83
  $banner_height = dokan_get_option( 'store_banner_height', 'dokan_appearance', 300 );
84
+ $admin_commission = ( 'flat' === $admin_commission_type ) ? wc_format_localized_price( $admin_commission ) : wc_format_localized_decimal( $admin_commission );
85
 
86
  $country_state = array(
87
  'country' => array(
119
  <p class="description">
120
  <?php
121
  echo sprintf(
122
+ /* translators: %1$s: banner width, %2$s: banner height in integers */
123
  esc_attr__( 'Upload a banner for your store. Banner size is (%1$sx%2$s) pixels.', 'dokan-lite' ),
124
  esc_attr( $banner_width ),
125
  esc_attr( $banner_height )
178
  <tr>
179
  <th><label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $field['label'] ); ?></label></th>
180
  <td>
181
+ <?php if ( ! empty( $field['type'] ) && 'select' === (string) $field['type'] ) : ?>
182
  <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;">
183
  <?php
184
+ if ( 'country' === (string) $key ) {
185
  $selected = esc_attr( $address_country );
186
  } else {
187
  $selected = esc_attr( $address_state );
193
  </select>
194
  <?php else : ?>
195
  <?php
196
+ if ( 'country' === (string) $key ) {
197
  $value = esc_attr( $address_country );
198
  } else {
199
  $value = esc_attr( $address_state );
532
  *
533
  * @return void
534
  */
535
+ public function save_meta_fields( $user_id ) {
536
  if ( ! current_user_can( 'manage_woocommerce' ) ) {
537
  return;
538
  }
539
 
540
  $post_data = wp_unslash( $_POST );
541
 
542
+ if ( ! isset( $post_data['dokan_update_user_profile_info_nonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['dokan_update_user_profile_info_nonce'] ), 'dokan_update_user_profile_info' ) ) {
543
  return;
544
  }
545
 
549
 
550
  $selling = sanitize_text_field( $post_data['dokan_enable_selling'] );
551
  $publishing = sanitize_text_field( $post_data['dokan_publish'] );
552
+ $percentage = isset( $post_data['dokan_admin_percentage'] ) && $post_data['dokan_admin_percentage'] !== '' ? $post_data['dokan_admin_percentage'] : '';
553
  $percentage_type = empty( $post_data['dokan_admin_percentage_type'] ) ? 'percentage' : sanitize_text_field( $post_data['dokan_admin_percentage_type'] );
554
  $feature_seller = sanitize_text_field( $post_data['dokan_feature'] );
555
  $store_settings = dokan_get_store_info( $user_id );
includes/Ajax.php CHANGED
@@ -101,11 +101,7 @@ class Ajax {
101
  * @return void
102
  */
103
  public function shop_url_check() {
104
- global $user_ID;
105
-
106
- $nonce = isset( $_POST['_nonce'] ) ? sanitize_text_field( wp_unslash( $_POST['_nonce'] ) ) : '';
107
-
108
- if ( ! wp_verify_nonce( $nonce, 'dokan_reviews' ) ) {
109
  wp_send_json_error(
110
  [
111
  'type' => 'nonce',
@@ -114,6 +110,8 @@ class Ajax {
114
  );
115
  }
116
 
 
 
117
  $url_slug = isset( $_POST['url_slug'] ) ? sanitize_text_field( wp_unslash( $_POST['url_slug'] ) ) : '';
118
  $check = true;
119
  $user = get_user_by( 'slug', $url_slug );
@@ -418,7 +416,7 @@ class Ajax {
418
  * Add shipping tracking info via ajax
419
  */
420
  public function add_shipping_tracking_info() {
421
- if ( isset( $_POST['dokan_security_nonce'] ) && ! wp_verify_nonce( sanitize_key( $_POST['dokan_security_nonce'] ), 'dokan_security_action' ) ) {
422
  die( -1 );
423
  }
424
 
@@ -518,9 +516,7 @@ class Ajax {
518
  * @return void
519
  */
520
  public function seller_listing_search() {
521
- $nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_key( $_REQUEST['_wpnonce'] ) : '';
522
-
523
- if ( ! $nonce || ! wp_verify_nonce( $nonce, 'dokan-seller-listing-search' ) ) {
524
  wp_send_json_error( __( 'Error: Nonce verification failed', 'dokan-lite' ) );
525
  }
526
 
@@ -538,7 +534,7 @@ class Ajax {
538
  $per_row = isset( $_REQUEST['per_row'] ) ? absint( $_REQUEST['per_row'] ) : '3';
539
 
540
  if ( '' !== $search_term ) {
541
- $seller_args['meta_query'] = [
542
  [
543
  'key' => 'dokan_store_name',
544
  'value' => $search_term,
@@ -947,7 +943,7 @@ class Ajax {
947
 
948
  foreach ( $headers as $header ) {
949
  if ( 0 === strpos( $header, 'Set-Cookie: ' . LOGGED_IN_COOKIE ) ) {
950
- $value = str_replace( '&', urlencode( '&' ), substr( $header, 12 ) );
951
  parse_str( current( explode( ';', $value, 1 ) ), $pair );
952
  $_COOKIE[ LOGGED_IN_COOKIE ] = $pair[ LOGGED_IN_COOKIE ];
953
  break;
101
  * @return void
102
  */
103
  public function shop_url_check() {
104
+ if ( ! isset( $_POST['_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_nonce'] ), 'dokan_reviews' ) ) {
 
 
 
 
105
  wp_send_json_error(
106
  [
107
  'type' => 'nonce',
110
  );
111
  }
112
 
113
+ global $user_ID;
114
+
115
  $url_slug = isset( $_POST['url_slug'] ) ? sanitize_text_field( wp_unslash( $_POST['url_slug'] ) ) : '';
116
  $check = true;
117
  $user = get_user_by( 'slug', $url_slug );
416
  * Add shipping tracking info via ajax
417
  */
418
  public function add_shipping_tracking_info() {
419
+ if ( ! isset( $_POST['dokan_security_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['dokan_security_nonce'] ), 'dokan_security_action' ) ) {
420
  die( -1 );
421
  }
422
 
516
  * @return void
517
  */
518
  public function seller_listing_search() {
519
+ if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'dokan-seller-listing-search' ) ) {
 
 
520
  wp_send_json_error( __( 'Error: Nonce verification failed', 'dokan-lite' ) );
521
  }
522
 
534
  $per_row = isset( $_REQUEST['per_row'] ) ? absint( $_REQUEST['per_row'] ) : '3';
535
 
536
  if ( '' !== $search_term ) {
537
+ $seller_args['meta_query'] = [ // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
538
  [
539
  'key' => 'dokan_store_name',
540
  'value' => $search_term,
943
 
944
  foreach ( $headers as $header ) {
945
  if ( 0 === strpos( $header, 'Set-Cookie: ' . LOGGED_IN_COOKIE ) ) {
946
+ $value = str_replace( '&', rawurlencode( '&' ), substr( $header, 12 ) );
947
  parse_str( current( explode( ';', $value, 1 ) ), $pair );
948
  $_COOKIE[ LOGGED_IN_COOKIE ] = $pair[ LOGGED_IN_COOKIE ];
949
  break;
includes/Dashboard/Templates/Orders.php CHANGED
@@ -61,7 +61,7 @@ class Orders {
61
  $order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
62
 
63
  if ( $order_id ) {
64
- $_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ) : '';
65
 
66
  if ( wp_verify_nonce( $_nonce, 'dokan_view_order' ) && current_user_can( 'dokan_view_order' ) ) {
67
  dokan_get_template_part( 'orders/details' );
@@ -95,11 +95,7 @@ class Orders {
95
 
96
  $post_data = wp_unslash( $_POST );
97
 
98
- if ( ! isset( $post_data['dokan_vendor_order_export_nonce'] ) ) {
99
- return;
100
- }
101
-
102
- if ( ! wp_verify_nonce( sanitize_text_field( $post_data['dokan_vendor_order_export_nonce'] ), 'dokan_vendor_order_export_action' ) ) {
103
  return;
104
  }
105
 
61
  $order_id = isset( $_GET['order_id'] ) ? intval( $_GET['order_id'] ) : 0;
62
 
63
  if ( $order_id ) {
64
+ $_nonce = isset( $_REQUEST['_wpnonce'] ) ? sanitize_key( $_REQUEST['_wpnonce'] ) : '';
65
 
66
  if ( wp_verify_nonce( $_nonce, 'dokan_view_order' ) && current_user_can( 'dokan_view_order' ) ) {
67
  dokan_get_template_part( 'orders/details' );
95
 
96
  $post_data = wp_unslash( $_POST );
97
 
98
+ if ( ! isset( $post_data['dokan_vendor_order_export_nonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['dokan_vendor_order_export_nonce'] ), 'dokan_vendor_order_export_action' ) ) {
 
 
 
 
99
  return;
100
  }
101
 
includes/Dashboard/Templates/Products.php CHANGED
@@ -220,16 +220,12 @@ class Products {
220
  return;
221
  }
222
 
223
- if ( ! isset( $_POST['dokan_add_new_product_nonce'] ) ) {
224
  return;
225
  }
226
 
227
  $postdata = wp_unslash( $_POST );
228
 
229
- if ( ! wp_verify_nonce( sanitize_key( $postdata['dokan_add_new_product_nonce'] ), 'dokan_add_new_product' ) ) {
230
- return;
231
- }
232
-
233
  $errors = array();
234
  self::$product_cat = -1;
235
  self::$post_content = __( 'Details of your product ...', 'dokan-lite' );
@@ -379,12 +375,12 @@ class Products {
379
  return;
380
  }
381
 
382
- $postdata = wp_unslash( $_POST );
383
-
384
- if ( ! wp_verify_nonce( sanitize_key( $postdata['dokan_edit_product_nonce'] ), 'dokan_edit_product' ) ) {
385
  return;
386
  }
387
 
 
 
388
  $errors = array();
389
  $post_title = sanitize_text_field( $postdata['post_title'] );
390
 
@@ -500,35 +496,35 @@ class Products {
500
  return;
501
  }
502
 
503
- if ( isset( $_GET['action'] ) && $_GET['action'] == 'dokan-delete-product' ) {
504
- $product_id = isset( $_GET['product_id'] ) ? (int) $_GET['product_id'] : 0;
 
505
 
506
- $getdata = wp_unslash( $_GET );
 
 
 
507
 
508
- if ( ! $product_id ) {
509
- wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
510
- return;
511
- }
512
 
513
- if ( ! wp_verify_nonce( $getdata['_wpnonce'], 'dokan-delete-product' ) ) {
514
- wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
515
- return;
516
- }
517
 
518
- if ( ! dokan_is_product_author( $product_id ) ) {
519
- wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
520
- return;
521
- }
522
 
523
- dokan()->product->delete( $product_id, true );
524
 
525
- do_action( 'dokan_product_deleted', $product_id );
526
 
527
- $redirect = apply_filters( 'dokan_add_new_product_redirect', dokan_get_navigation_url( 'products' ), '' );
528
 
529
- wp_redirect( add_query_arg( array( 'message' => 'product_deleted' ), $redirect ) );
530
- exit;
531
- }
532
  }
533
 
534
  }
220
  return;
221
  }
222
 
223
+ if ( ! isset( $_POST['dokan_add_new_product_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['dokan_add_new_product_nonce'] ), 'dokan_add_new_product' ) ) {
224
  return;
225
  }
226
 
227
  $postdata = wp_unslash( $_POST );
228
 
 
 
 
 
229
  $errors = array();
230
  self::$product_cat = -1;
231
  self::$post_content = __( 'Details of your product ...', 'dokan-lite' );
375
  return;
376
  }
377
 
378
+ if ( ! isset( $_POST['dokan_edit_product_nonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['dokan_edit_product_nonce'] ), 'dokan_edit_product' ) ) {
 
 
379
  return;
380
  }
381
 
382
+ $postdata = wp_unslash( $_POST );
383
+
384
  $errors = array();
385
  $post_title = sanitize_text_field( $postdata['post_title'] );
386
 
496
  return;
497
  }
498
 
499
+ if ( ! isset( $_GET['action'] ) || $_GET['action'] !== 'dokan-delete-product' ) {
500
+ return;
501
+ }
502
 
503
+ if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'dokan-delete-product' ) ) {
504
+ wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
505
+ exit;
506
+ }
507
 
508
+ $product_id = isset( $_GET['product_id'] ) ? (int) wp_unslash( $_GET['product_id'] ) : 0;
 
 
 
509
 
510
+ if ( ! $product_id ) {
511
+ wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
512
+ exit;
513
+ }
514
 
515
+ if ( ! dokan_is_product_author( $product_id ) ) {
516
+ wp_redirect( add_query_arg( array( 'message' => 'error' ), dokan_get_navigation_url( 'products' ) ) );
517
+ exit;
518
+ }
519
 
520
+ dokan()->product->delete( $product_id, true );
521
 
522
+ do_action( 'dokan_product_deleted', $product_id );
523
 
524
+ $redirect = apply_filters( 'dokan_add_new_product_redirect', dokan_get_navigation_url( 'products' ), '' );
525
 
526
+ wp_redirect( add_query_arg( array( 'message' => 'product_deleted' ), $redirect ) );
527
+ exit;
 
528
  }
529
 
530
  }
includes/Dashboard/Templates/Settings.php CHANGED
@@ -213,6 +213,10 @@ class Settings {
213
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
214
  }
215
 
 
 
 
 
216
  $post_data = wp_unslash( $_POST );
217
 
218
  $post_data['dokan_update_profile'] = '';
@@ -223,7 +227,7 @@ class Settings {
223
  wp_send_json_error( __( 'Pemission denied social', 'dokan-lite' ) );
224
  }
225
 
226
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_profile_settings_nonce' ) ) {
227
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
228
  }
229
 
@@ -235,7 +239,7 @@ class Settings {
235
  wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
236
  }
237
 
238
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_store_settings_nonce' ) ) {
239
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
240
  }
241
 
@@ -247,7 +251,7 @@ class Settings {
247
  wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
248
  }
249
 
250
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
251
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
252
  }
253
 
@@ -284,7 +288,7 @@ class Settings {
284
  return false;
285
  }
286
 
287
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_settings_nonce' ) ) {
288
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
289
  }
290
 
@@ -350,7 +354,7 @@ class Settings {
350
  return false;
351
  }
352
 
353
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_profile_settings_nonce' ) ) {
354
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
355
  }
356
 
@@ -391,7 +395,7 @@ class Settings {
391
  return false;
392
  }
393
 
394
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_store_settings_nonce' ) ) {
395
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
396
  }
397
 
@@ -441,7 +445,7 @@ class Settings {
441
  return false;
442
  }
443
 
444
- if ( ! wp_verify_nonce( $post_data['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
445
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
446
  }
447
 
@@ -474,7 +478,11 @@ class Settings {
474
  $prev_dokan_settings = ! empty( $existing_dokan_settings ) ? $existing_dokan_settings : array();
475
  $post_data = wp_unslash( $_POST );
476
 
477
- if ( wp_verify_nonce( $post_data['_wpnonce'], 'dokan_profile_settings_nonce' ) ) {
 
 
 
 
478
 
479
  // update profile settings info
480
  $social = $post_data['settings']['social'];
@@ -489,7 +497,7 @@ class Settings {
489
  }
490
  }
491
 
492
- } elseif ( wp_verify_nonce( $post_data['_wpnonce'], 'dokan_store_settings_nonce' ) ) {
493
 
494
  $default_locations = dokan_get_option( 'location', 'dokan_geolocation' );
495
  $find_address = ! empty( $post_data['find_address'] ) ? sanitize_text_field( $post_data['find_address'] ) : $default_locations['address'];
@@ -554,7 +562,7 @@ class Settings {
554
 
555
  update_user_meta( $store_id, 'dokan_store_name', $dokan_settings['store_name'] );
556
 
557
- } elseif ( wp_verify_nonce( $post_data['_wpnonce'], 'dokan_payment_settings_nonce' ) ) {
558
 
559
  //update payment settings info
560
  $dokan_settings = array(
213
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
214
  }
215
 
216
+ if ( ! isset( $_POST['_wpnonce'] ) ) {
217
+ wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
218
+ }
219
+
220
  $post_data = wp_unslash( $_POST );
221
 
222
  $post_data['dokan_update_profile'] = '';
227
  wp_send_json_error( __( 'Pemission denied social', 'dokan-lite' ) );
228
  }
229
 
230
+ if ( ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_profile_settings_nonce' ) ) {
231
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
232
  }
233
 
239
  wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
240
  }
241
 
242
+ if ( ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_store_settings_nonce' ) ) {
243
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
244
  }
245
 
251
  wp_send_json_error( __( 'Pemission denied', 'dokan-lite' ) );
252
  }
253
 
254
+ if ( ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_payment_settings_nonce' ) ) {
255
  wp_send_json_error( __( 'Are you cheating?', 'dokan-lite' ) );
256
  }
257
 
288
  return false;
289
  }
290
 
291
+ if ( ! isset( $post_data['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_settings_nonce' ) ) {
292
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
293
  }
294
 
354
  return false;
355
  }
356
 
357
+ if ( ! isset( $post_data['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_profile_settings_nonce' ) ) {
358
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
359
  }
360
 
395
  return false;
396
  }
397
 
398
+ if ( ! isset( $post_data['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_store_settings_nonce' ) ) {
399
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
400
  }
401
 
445
  return false;
446
  }
447
 
448
+ if ( ! isset( $post_data['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_payment_settings_nonce' ) ) {
449
  wp_die( esc_attr__( 'Are you cheating?', 'dokan-lite' ) );
450
  }
451
 
478
  $prev_dokan_settings = ! empty( $existing_dokan_settings ) ? $existing_dokan_settings : array();
479
  $post_data = wp_unslash( $_POST );
480
 
481
+ if ( ! isset( $post_data['_wpnonce'] ) ) {
482
+ return;
483
+ }
484
+
485
+ if ( wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_profile_settings_nonce' ) ) {
486
 
487
  // update profile settings info
488
  $social = $post_data['settings']['social'];
497
  }
498
  }
499
 
500
+ } elseif ( wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_store_settings_nonce' ) ) {
501
 
502
  $default_locations = dokan_get_option( 'location', 'dokan_geolocation' );
503
  $find_address = ! empty( $post_data['find_address'] ) ? sanitize_text_field( $post_data['find_address'] ) : $default_locations['address'];
562
 
563
  update_user_meta( $store_id, 'dokan_store_name', $dokan_settings['store_name'] );
564
 
565
+ } elseif ( wp_verify_nonce( sanitize_key( $post_data['_wpnonce'] ), 'dokan_payment_settings_nonce' ) ) {
566
 
567
  //update payment settings info
568
  $dokan_settings = array(
includes/Dashboard/Templates/Withdraw.php CHANGED
@@ -102,7 +102,7 @@ class Withdraw {
102
  protected function handle_cancel_request() {
103
  $get_data = wp_unslash( $_GET );
104
 
105
- if ( ! wp_verify_nonce( $get_data['_wpnonce'], 'dokan_cancel_withdraw' ) ) {
106
  $this->add_error( esc_html__( 'Are you cheating?', 'dokan-lite' ) );
107
  }
108
 
@@ -110,7 +110,7 @@ class Withdraw {
110
  $this->add_error( esc_html__( 'You have no permission to do this action', 'dokan-lite' ) );
111
  }
112
 
113
- if ( empty( $get_data['id'] ) ) {
114
  $this->add_error( esc_html__( 'Missing withdraw id.', 'dokan-lite' ) );
115
  }
116
 
@@ -119,7 +119,7 @@ class Withdraw {
119
  }
120
 
121
  $user_id = get_current_user_id();
122
- $withdraw_id = absint( $get_data['id'] );
123
 
124
  if ( ! dokan_is_seller_enabled( $user_id ) ) {
125
  return $this->add_error( esc_html__( 'Your account is not enabled for selling, please contact the admin', 'dokan-lite' ) );
102
  protected function handle_cancel_request() {
103
  $get_data = wp_unslash( $_GET );
104
 
105
+ if ( ! isset( $get_data['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $get_data['_wpnonce'] ), 'dokan_cancel_withdraw' ) ) {
106
  $this->add_error( esc_html__( 'Are you cheating?', 'dokan-lite' ) );
107
  }
108
 
110
  $this->add_error( esc_html__( 'You have no permission to do this action', 'dokan-lite' ) );
111
  }
112
 
113
+ if ( empty( wp_unslash( $get_data['id'] ) ) ) {
114
  $this->add_error( esc_html__( 'Missing withdraw id.', 'dokan-lite' ) );
115
  }
116
 
119
  }
120
 
121
  $user_id = get_current_user_id();
122
+ $withdraw_id = absint( wp_unslash( $get_data['id'] ) );
123
 
124
  if ( ! dokan_is_seller_enabled( $user_id ) ) {
125
  return $this->add_error( esc_html__( 'Your account is not enabled for selling, please contact the admin', 'dokan-lite' ) );
includes/Product/Hooks.php CHANGED
@@ -35,7 +35,7 @@ class Hooks {
35
 
36
  $post_data = wp_unslash( $_POST );
37
 
38
- if ( ! isset( $post_data['security'] ) || ! wp_verify_nonce( $post_data['security'], 'bulk_product_status_change' ) ) {
39
  return;
40
  }
41
  if ( ! isset( $post_data['status'] ) || ! isset( $post_data['bulk_products'] ) ) {
35
 
36
  $post_data = wp_unslash( $_POST );
37
 
38
+ if ( ! isset( $post_data['security'] ) || ! wp_verify_nonce( sanitize_key( $post_data['security'] ), 'bulk_product_status_change' ) ) {
39
  return;
40
  }
41
  if ( ! isset( $post_data['status'] ) || ! isset( $post_data['bulk_products'] ) ) {
includes/Registration.php CHANGED
@@ -11,7 +11,7 @@ use WP_Error;
11
  */
12
  class Registration {
13
 
14
- function __construct() {
15
  // validate registration
16
  add_filter( 'woocommerce_process_registration_errors', array( $this, 'validate_registration' ) );
17
  add_filter( 'woocommerce_registration_errors', array( $this, 'validate_registration' ) );
@@ -28,7 +28,7 @@ class Registration {
28
  *
29
  * @return \WP_Error
30
  */
31
- function validate_registration( $error ) {
32
  if ( is_checkout() ) {
33
  return $error;
34
  }
@@ -41,10 +41,10 @@ class Registration {
41
  $nonce_check = apply_filters( 'dokan_register_nonce_check', true );
42
 
43
  if ( $nonce_check ) {
44
- $nonce_value = isset( $post_data['_wpnonce'] ) ? $post_data['_wpnonce'] : '';
45
- $nonce_value = isset( $post_data['woocommerce-register-nonce'] ) ? $post_data['woocommerce-register-nonce'] : $nonce_value;
46
 
47
- if ( ! wp_verify_nonce( $nonce_value, 'woocommerce-register' ) ) {
48
  return new WP_Error( 'nonce_verification_failed', __( 'Nonce verification failed', 'dokan-lite' ) );
49
  }
50
  }
@@ -52,7 +52,7 @@ class Registration {
52
  $allowed_roles = apply_filters( 'dokan_register_user_role', array( 'customer', 'seller' ) );
53
 
54
  // is the role name allowed or user is trying to manipulate?
55
- if ( isset( $post_data['role'] ) && ! in_array( $post_data['role'], $allowed_roles ) ) {
56
  return new WP_Error( 'role-error', __( 'Cheating, eh?', 'dokan-lite' ) );
57
  }
58
 
@@ -67,7 +67,7 @@ class Registration {
67
  )
68
  );
69
 
70
- if ( $role == 'seller' ) {
71
  foreach ( $required_fields as $field => $msg ) {
72
  if ( empty( trim( $post_data[ $field ] ) ) ) {
73
  return new WP_Error( "$field-error", $msg );
@@ -84,20 +84,20 @@ class Registration {
84
  * @param array $data
85
  * @return array
86
  */
87
- function set_new_vendor_names( $data ) {
88
- $post_data = wp_unslash( $_POST ); // WPCS: CSRF ok.
89
 
90
  $allowed_roles = apply_filters( 'dokan_register_user_role', array( 'customer', 'seller' ) );
91
- $role = ( isset( $post_data['role'] ) && in_array( $post_data['role'], $allowed_roles ) ) ? $post_data['role'] : 'customer';
92
 
93
  $data['role'] = $role;
94
 
95
- if ( $role != 'seller' ) {
96
  return $data;
97
  }
98
 
99
- $data['first_name'] = strip_tags( $post_data['fname'] );
100
- $data['last_name'] = strip_tags( $post_data['lname'] );
101
  $data['user_nicename'] = sanitize_user( $post_data['shopurl'] );
102
 
103
  return $data;
@@ -111,10 +111,10 @@ class Registration {
111
  *
112
  * @return void
113
  */
114
- function save_vendor_info( $user_id, $data ) {
115
- $post_data = wp_unslash( $_POST ); // WPCS: CSRF ok.
116
 
117
- if ( ! isset( $data['role'] ) || $data['role'] != 'seller' ) {
118
  return;
119
  }
120
 
11
  */
12
  class Registration {
13
 
14
+ public function __construct() {
15
  // validate registration
16
  add_filter( 'woocommerce_process_registration_errors', array( $this, 'validate_registration' ) );
17
  add_filter( 'woocommerce_registration_errors', array( $this, 'validate_registration' ) );
28
  *
29
  * @return \WP_Error
30
  */
31
+ public function validate_registration( $error ) {
32
  if ( is_checkout() ) {
33
  return $error;
34
  }
41
  $nonce_check = apply_filters( 'dokan_register_nonce_check', true );
42
 
43
  if ( $nonce_check ) {
44
+ $nonce_value = isset( $post_data['_wpnonce'] ) ? sanitize_key( $post_data['_wpnonce'] ) : '';
45
+ $nonce_value = isset( $post_data['woocommerce-register-nonce'] ) ? sanitize_key( $post_data['woocommerce-register-nonce'] ) : $nonce_value;
46
 
47
+ if ( empty( $nonce_value ) || ! wp_verify_nonce( $nonce_value, 'woocommerce-register' ) ) {
48
  return new WP_Error( 'nonce_verification_failed', __( 'Nonce verification failed', 'dokan-lite' ) );
49
  }
50
  }
52
  $allowed_roles = apply_filters( 'dokan_register_user_role', array( 'customer', 'seller' ) );
53
 
54
  // is the role name allowed or user is trying to manipulate?
55
+ if ( isset( $post_data['role'] ) && ! in_array( $post_data['role'], $allowed_roles, true ) ) {
56
  return new WP_Error( 'role-error', __( 'Cheating, eh?', 'dokan-lite' ) );
57
  }
58
 
67
  )
68
  );
69
 
70
+ if ( $role === 'seller' ) {
71
  foreach ( $required_fields as $field => $msg ) {
72
  if ( empty( trim( $post_data[ $field ] ) ) ) {
73
  return new WP_Error( "$field-error", $msg );
84
  * @param array $data
85
  * @return array
86
  */
87
+ public function set_new_vendor_names( $data ) {
88
+ $post_data = wp_unslash( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification
89
 
90
  $allowed_roles = apply_filters( 'dokan_register_user_role', array( 'customer', 'seller' ) );
91
+ $role = ( isset( $post_data['role'] ) && in_array( $post_data['role'], $allowed_roles, true ) ) ? $post_data['role'] : 'customer';
92
 
93
  $data['role'] = $role;
94
 
95
+ if ( $role !== 'seller' ) {
96
  return $data;
97
  }
98
 
99
+ $data['first_name'] = wp_strip_all_tags( $post_data['fname'] );
100
+ $data['last_name'] = wp_strip_all_tags( $post_data['lname'] );
101
  $data['user_nicename'] = sanitize_user( $post_data['shopurl'] );
102
 
103
  return $data;
111
  *
112
  * @return void
113
  */
114
+ public function save_vendor_info( $user_id, $data ) {
115
+ $post_data = wp_unslash( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification
116
 
117
+ if ( ! isset( $data['role'] ) || $data['role'] !== 'seller' ) {
118
  return;
119
  }
120
 
includes/Vendor/SetupWizard.php CHANGED
@@ -330,13 +330,7 @@ class SetupWizard extends DokanSetupWizard {
330
  * Save store options.
331
  */
332
  public function dokan_setup_store_save() {
333
- if ( ! isset( $_POST['_wpnonce'] ) ) {
334
- return;
335
- }
336
-
337
- $nonce = sanitize_text_field( wp_unslash( $_POST['_wpnonce'] ) );
338
-
339
- if ( ! wp_verify_nonce( $nonce, 'dokan-seller-setup' ) ) {
340
  return;
341
  }
342
 
@@ -350,14 +344,14 @@ class SetupWizard extends DokanSetupWizard {
350
  if ( $dokan_settings['address'] ) {
351
  $dokan_settings['profile_completion']['address'] = 10;
352
  $profile_settings = get_user_meta( $this->store_id, 'dokan_profile_settings', true );
353
-
354
  if ( ! empty( $profile_settings['profile_completion']['progress'] ) ) {
355
- $dokan_settings['profile_completion']['progress'] = $profile_settings['profile_completion']['progress'] + 10;
356
  }
357
  }
358
 
359
  update_user_meta( $this->store_id, 'dokan_profile_settings', $dokan_settings );
360
-
361
  do_action( 'dokan_seller_wizard_store_field_save', $this );
362
 
363
  wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
@@ -407,22 +401,16 @@ class SetupWizard extends DokanSetupWizard {
407
  * Save payment options.
408
  */
409
  public function dokan_setup_payment_save() {
410
- $posted_data = wp_unslash( $_POST );
411
-
412
- if ( ! isset( $posted_data['_wpnonce'] ) ) {
413
  return;
414
  }
415
 
416
- $nonce = sanitize_text_field( wp_unslash( $posted_data['_wpnonce'] ) );
417
-
418
- if ( ! wp_verify_nonce( $nonce, 'dokan-seller-setup' ) ) {
419
- return;
420
- }
421
 
422
  $dokan_settings = $this->store_info;
423
 
424
  if ( isset( $posted_data['settings']['bank'] ) ) {
425
- $bank = array_map( 'sanitize_text_field', array_map( 'wp_unslash', $posted_data['settings']['bank'] ) );
426
 
427
  $dokan_settings['payment']['bank'] = array(
428
  'ac_name' => sanitize_text_field( $bank['ac_name'] ),
@@ -455,7 +443,7 @@ class SetupWizard extends DokanSetupWizard {
455
  if ( isset( $posted_data['settings']['paypal'] ) || isset( $posted_data['settings']['skrill'] ) ) {
456
  $profile_settings = get_user_meta( $this->store_id, 'dokan_profile_settings', true );
457
  if ( ! empty( $profile_settings['profile_completion']['progress'] ) ) {
458
- $dokan_settings['profile_completion']['progress'] = $profile_settings['profile_completion']['progress'] + 15;
459
  }
460
  }
461
 
330
  * Save store options.
331
  */
332
  public function dokan_setup_store_save() {
333
+ if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_wpnonce'] ), 'dokan-seller-setup' ) ) {
 
 
 
 
 
 
334
  return;
335
  }
336
 
344
  if ( $dokan_settings['address'] ) {
345
  $dokan_settings['profile_completion']['address'] = 10;
346
  $profile_settings = get_user_meta( $this->store_id, 'dokan_profile_settings', true );
347
+
348
  if ( ! empty( $profile_settings['profile_completion']['progress'] ) ) {
349
+ $dokan_settings['profile_completion']['progress'] = $profile_settings['profile_completion']['progress'] + 10;
350
  }
351
  }
352
 
353
  update_user_meta( $this->store_id, 'dokan_profile_settings', $dokan_settings );
354
+
355
  do_action( 'dokan_seller_wizard_store_field_save', $this );
356
 
357
  wp_redirect( esc_url_raw( $this->get_next_step_link() ) );
401
  * Save payment options.
402
  */
403
  public function dokan_setup_payment_save() {
404
+ if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_wpnonce'] ), 'dokan-seller-setup' ) ) {
 
 
405
  return;
406
  }
407
 
408
+ $posted_data = wp_unslash( $_POST );
 
 
 
 
409
 
410
  $dokan_settings = $this->store_info;
411
 
412
  if ( isset( $posted_data['settings']['bank'] ) ) {
413
+ $bank = $posted_data['settings']['bank'];
414
 
415
  $dokan_settings['payment']['bank'] = array(
416
  'ac_name' => sanitize_text_field( $bank['ac_name'] ),
443
  if ( isset( $posted_data['settings']['paypal'] ) || isset( $posted_data['settings']['skrill'] ) ) {
444
  $profile_settings = get_user_meta( $this->store_id, 'dokan_profile_settings', true );
445
  if ( ! empty( $profile_settings['profile_completion']['progress'] ) ) {
446
+ $dokan_settings['profile_completion']['progress'] = $profile_settings['profile_completion']['progress'] + 15;
447
  }
448
  }
449
 
includes/Vendor/UserSwitch.php CHANGED
@@ -118,7 +118,7 @@ class UserSwitch {
118
  * @return void
119
  * */
120
  public function install_user_switching() {
121
- if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( $_REQUEST['_wpnonce'], 'user-switching-installer-nonce' ) ) {
122
  wp_send_json_error( __( 'Error: Nonce verification failed', 'dokan-lite' ) );
123
  }
124
 
118
  * @return void
119
  * */
120
  public function install_user_switching() {
121
+ if ( ! isset( $_REQUEST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_REQUEST['_wpnonce'] ), 'user-switching-installer-nonce' ) ) {
122
  wp_send_json_error( __( 'Error: Nonce verification failed', 'dokan-lite' ) );
123
  }
124
 
includes/functions.php CHANGED
@@ -7,7 +7,7 @@
7
  * @return void
8
  */
9
  function dokan_admin_menu_position() {
10
- return apply_filters( 'dokan_menu_position', 55.4 );
11
  }
12
 
13
  /**
@@ -2274,7 +2274,7 @@ function dokan_product_search_by_sku( $where ) {
2274
 
2275
  $getdata = wp_unslash( $_GET );
2276
 
2277
- if ( ! isset( $getdata['product_search_name'] ) || empty( $getdata['product_search_name'] ) || ! isset( $getdata['dokan_product_search_nonce'] ) || ! wp_verify_nonce( wc_clean( $getdata['dokan_product_search_nonce'] ), 'dokan_product_search' ) ) {
2278
  return $where;
2279
  }
2280
 
7
  * @return void
8
  */
9
  function dokan_admin_menu_position() {
10
+ return apply_filters( 'dokan_menu_position', '55.4' );
11
  }
12
 
13
  /**
2274
 
2275
  $getdata = wp_unslash( $_GET );
2276
 
2277
+ if ( empty( $getdata['product_search_name'] ) || ! isset( $getdata['dokan_product_search_nonce'] ) || ! wp_verify_nonce( sanitize_key( $getdata['dokan_product_search_nonce'] ), 'dokan_product_search' ) ) {
2278
  return $where;
2279
  }
2280
 
includes/wc-functions.php CHANGED
@@ -842,7 +842,7 @@ function dokan_save_account_details() {
842
 
843
  $postdata = wp_unslash( $_POST );
844
 
845
- if ( empty( $postdata['_wpnonce'] ) || ! wp_verify_nonce( $postdata['_wpnonce'], 'dokan_save_account_details' ) ) {
846
  return;
847
  }
848
 
@@ -1092,7 +1092,7 @@ function dokan_bulk_order_status_change() {
1092
 
1093
  $postdata = wp_unslash( $_POST );
1094
 
1095
- if ( ! isset( $postdata['security'] ) || ! wp_verify_nonce( $postdata['security'], 'bulk_order_status_change' ) ) {
1096
  return;
1097
  }
1098
 
842
 
843
  $postdata = wp_unslash( $_POST );
844
 
845
+ if ( empty( $postdata['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $postdata['_wpnonce'] ), 'dokan_save_account_details' ) ) {
846
  return;
847
  }
848
 
1092
 
1093
  $postdata = wp_unslash( $_POST );
1094
 
1095
+ if ( ! isset( $postdata['security'] ) || ! wp_verify_nonce( sanitize_key( $postdata['security'] ), 'bulk_order_status_change' ) ) {
1096
  return;
1097
  }
1098
 
includes/wc-template.php CHANGED
@@ -246,7 +246,7 @@ function dokan_save_quick_edit_vendor_data( $product ) {
246
 
247
  $get_data = wp_unslash( $_REQUEST );
248
 
249
- if ( ! isset( $get_data['woocommerce_quick_edit_nonce'] ) || ! wp_verify_nonce( $get_data['woocommerce_quick_edit_nonce'], 'woocommerce_quick_edit_nonce' ) ) {
250
  return;
251
  }
252
 
246
 
247
  $get_data = wp_unslash( $_REQUEST );
248
 
249
+ if ( ! isset( $get_data['woocommerce_quick_edit_nonce'] ) || ! wp_verify_nonce( sanitize_key( $get_data['woocommerce_quick_edit_nonce'] ), 'woocommerce_quick_edit_nonce' ) ) {
250
  return;
251
  }
252
 
languages/dokan-lite.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the GPL2.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Dokan 3.2.0\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
- "POT-Creation-Date: 2021-01-29 11:32:18+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -121,7 +121,7 @@ msgid "Dokan"
121
  msgstr ""
122
 
123
  #: includes/Admin/AdminBar.php:54 includes/Admin/Menu.php:43
124
- #: includes/Admin/Settings.php:490 includes/Install/Installer.php:157
125
  #: includes/template-tags.php:378 src/admin/pages/Dashboard.vue:5
126
  msgid "Dashboard"
127
  msgstr ""
@@ -143,7 +143,7 @@ msgstr ""
143
 
144
  #: includes/Admin/Hooks.php:64 includes/Admin/Hooks.php:70
145
  #: includes/Admin/Hooks.php:357 includes/Admin/Hooks.php:379
146
- #: includes/Admin/Settings.php:401 includes/Admin/Settings.php:412
147
  #: includes/Admin/SetupWizard.php:345 includes/Install/Installer.php:93
148
  #: includes/wc-template.php:17 includes/wc-template.php:172
149
  #: includes/wc-template.php:321 src/admin/pages/Dashboard.vue:38
@@ -422,136 +422,142 @@ msgstr ""
422
  msgid "Store Products Per Page"
423
  msgstr ""
424
 
425
- #: includes/Admin/Settings.php:373
 
 
 
 
 
 
426
  msgid "Commission"
427
  msgstr ""
428
 
429
- #: includes/Admin/Settings.php:378
430
  msgid "Commission Type "
431
  msgstr ""
432
 
433
- #: includes/Admin/Settings.php:379
434
  msgid "Select a commission type for Vendor"
435
  msgstr ""
436
 
437
- #: includes/Admin/Settings.php:386 src/admin/pages/VendorPaymentFields.vue:69
438
  #: src/admin/pages/VendorPaymentFields.vue:78
439
  #: templates/admin-setup-wizard/step-selling.php:31
440
  msgid "Admin Commission"
441
  msgstr ""
442
 
443
- #: includes/Admin/Settings.php:387
444
  msgid "Amount you get from each sale"
445
  msgstr ""
446
 
447
- #: includes/Admin/Settings.php:397
448
  #: templates/admin-setup-wizard/step-store.php:14
449
  msgid "Shipping Fee Recipient"
450
  msgstr ""
451
 
452
- #: includes/Admin/Settings.php:398
453
  msgid "Who will be receiving the Shipping fees"
454
  msgstr ""
455
 
456
- #: includes/Admin/Settings.php:402 includes/Admin/Settings.php:413
457
  #: includes/Admin/SetupWizard.php:346
458
  msgid "Admin"
459
  msgstr ""
460
 
461
- #: includes/Admin/Settings.php:408
462
  #: templates/admin-setup-wizard/step-store.php:28
463
  msgid "Tax Fee Recipient"
464
  msgstr ""
465
 
466
- #: includes/Admin/Settings.php:409
467
  msgid "Who will be receiving the Tax fees"
468
  msgstr ""
469
 
470
- #: includes/Admin/Settings.php:424
471
  msgid "Vendor Capability"
472
  msgstr ""
473
 
474
- #: includes/Admin/Settings.php:429
475
  msgid "New Vendor Product Upload"
476
  msgstr ""
477
 
478
- #: includes/Admin/Settings.php:430
479
  msgid "Allow newly registered vendors to add products"
480
  msgstr ""
481
 
482
- #: includes/Admin/Settings.php:436
483
  msgid "Disable Product Popup"
484
  msgstr ""
485
 
486
- #: includes/Admin/Settings.php:437
487
  msgid "Disable add new product in popup view"
488
  msgstr ""
489
 
490
- #: includes/Admin/Settings.php:443 src/admin/pages/VendorCapabilities.vue:89
491
  #: templates/admin-setup-wizard/step-selling.php:39
492
  msgid "Order Status Change"
493
  msgstr ""
494
 
495
- #: includes/Admin/Settings.php:444
496
  msgid "Allow vendor to update order status"
497
  msgstr ""
498
 
499
- #: includes/Admin/Settings.php:463 includes/Admin/SetupWizard.php:465
500
  msgid "Withdraw Methods"
501
  msgstr ""
502
 
503
- #: includes/Admin/Settings.php:464
504
  msgid "Select suitable Withdraw methods for Vendors"
505
  msgstr ""
506
 
507
- #: includes/Admin/Settings.php:471 includes/Admin/SetupWizard.php:502
508
  msgid "Minimum Withdraw Limit"
509
  msgstr ""
510
 
511
- #: includes/Admin/Settings.php:472
512
  msgid ""
513
  "Minimum balance required to make a withdraw request. Leave blank to set no "
514
  "minimum limits."
515
  msgstr ""
516
 
517
- #: includes/Admin/Settings.php:481
518
  msgid "Exclude COD Payments"
519
  msgstr ""
520
 
521
- #: includes/Admin/Settings.php:482
522
  msgid ""
523
  "If an order is paid with Cash on Delivery (COD), then exclude that payment "
524
  "from vendor balance."
525
  msgstr ""
526
 
527
- #: includes/Admin/Settings.php:491
528
  msgid "Select a page to show Vendor Dashboard"
529
  msgstr ""
530
 
531
- #: includes/Admin/Settings.php:493 includes/Admin/Settings.php:501
532
- #: includes/Admin/Settings.php:509 includes/Admin/Settings.php:517
533
  #: includes/Admin/Settings.php:627
534
  msgid "Select page"
535
  msgstr ""
536
 
537
- #: includes/Admin/Settings.php:498 includes/Install/Installer.php:169
538
  #: templates/global/header-menu.php:46
539
  msgid "My Orders"
540
  msgstr ""
541
 
542
- #: includes/Admin/Settings.php:499
543
  msgid "Select a page to show My Orders"
544
  msgstr ""
545
 
546
- #: includes/Admin/Settings.php:506
547
  msgid "Store Listing"
548
  msgstr ""
549
 
550
- #: includes/Admin/Settings.php:507
551
  msgid "Select a page to show all Stores"
552
  msgstr ""
553
 
554
- #: includes/Admin/Settings.php:514
555
  msgid "Terms and Conditions Page"
556
  msgstr ""
557
 
@@ -650,7 +656,7 @@ msgstr ""
650
  msgid "Email Address"
651
  msgstr ""
652
 
653
- #: includes/Admin/Settings.php:609 includes/Admin/UserProfile.php:211
654
  #: src/admin/pages/VendorAccountFields.vue:64
655
  #: templates/account/vendor-registration.php:33
656
  #: templates/global/seller-registration-form.php:36
@@ -701,7 +707,7 @@ msgstr ""
701
  msgid "Store"
702
  msgstr ""
703
 
704
- #: includes/Admin/SetupWizard.php:155 includes/Admin/UserProfile.php:294
705
  msgid "Selling"
706
  msgstr ""
707
 
@@ -791,14 +797,14 @@ msgstr ""
791
 
792
  #: includes/Admin/SetupWizard.php:537 includes/Admin/SetupWizard.php:600
793
  #: includes/Admin/SetupWizardWCAdmin.php:232
794
- #: includes/Vendor/SetupWizard.php:243 includes/Vendor/SetupWizard.php:396
795
  #: templates/admin-setup-wizard/step-selling.php:53
796
  #: templates/admin-setup-wizard/step-store.php:100
797
  msgid "Continue"
798
  msgstr ""
799
 
800
  #: includes/Admin/SetupWizard.php:538 includes/Vendor/SetupWizard.php:244
801
- #: includes/Vendor/SetupWizard.php:397
802
  #: templates/admin-setup-wizard/step-selling.php:54
803
  #: templates/admin-setup-wizard/step-store.php:101
804
  msgid "Skip this step"
@@ -942,7 +948,7 @@ msgstr ""
942
  msgid "We'll use %1$s for product weight and %2$s for product dimensions."
943
  msgstr ""
944
 
945
- #: includes/Admin/UserProfile.php:38 includes/Ajax.php:145
946
  #: includes/Assets.php:413 src/admin/pages/VendorAccountFields.vue:279
947
  #: src/admin/pages/VendorAccountFields.vue:311
948
  #: src/admin/pages/VendorAccountFields.vue:343
@@ -986,121 +992,122 @@ msgstr ""
986
  msgid "Upload banner"
987
  msgstr ""
988
 
989
- #: includes/Admin/UserProfile.php:122
 
990
  msgid "Upload a banner for your store. Banner size is (%1$sx%2$s) pixels."
991
  msgstr ""
992
 
993
- #: includes/Admin/UserProfile.php:134
994
  msgid "Store name"
995
  msgstr ""
996
 
997
- #: includes/Admin/UserProfile.php:141
998
  #: src/admin/pages/VendorAccountFields.vue:53
999
  msgid "Store URL"
1000
  msgstr ""
1001
 
1002
- #: includes/Admin/UserProfile.php:149 includes/Privacy.php:223
1003
  msgid "Address 1"
1004
  msgstr ""
1005
 
1006
- #: includes/Admin/UserProfile.php:156 includes/Privacy.php:224
1007
  msgid "Address 2"
1008
  msgstr ""
1009
 
1010
- #: includes/Admin/UserProfile.php:163
1011
  msgid "Town/City"
1012
  msgstr ""
1013
 
1014
- #: includes/Admin/UserProfile.php:170
1015
  msgid "Zip Code"
1016
  msgstr ""
1017
 
1018
- #: includes/Admin/UserProfile.php:229
1019
  msgid "Payment Options : "
1020
  msgstr ""
1021
 
1022
- #: includes/Admin/UserProfile.php:234
1023
  msgid "Paypal Email "
1024
  msgstr ""
1025
 
1026
- #: includes/Admin/UserProfile.php:242
1027
  msgid "Skrill Email "
1028
  msgstr ""
1029
 
1030
- #: includes/Admin/UserProfile.php:251
1031
  msgid "Bank name "
1032
  msgstr ""
1033
 
1034
- #: includes/Admin/UserProfile.php:257
1035
  msgid "Account Name "
1036
  msgstr ""
1037
 
1038
- #: includes/Admin/UserProfile.php:263
1039
  msgid "Account Number "
1040
  msgstr ""
1041
 
1042
- #: includes/Admin/UserProfile.php:269
1043
  msgid "Bank Address "
1044
  msgstr ""
1045
 
1046
- #: includes/Admin/UserProfile.php:275 includes/Privacy.php:279
1047
  #: src/admin/pages/VendorPaymentFields.vue:30
1048
  msgid "Routing Number"
1049
  msgstr ""
1050
 
1051
- #: includes/Admin/UserProfile.php:281
1052
  msgid "Bank IBAN "
1053
  msgstr ""
1054
 
1055
- #: includes/Admin/UserProfile.php:287
1056
  msgid "Bank Swift "
1057
  msgstr ""
1058
 
1059
- #: includes/Admin/UserProfile.php:299
1060
  msgid "Enable Adding Products"
1061
  msgstr ""
1062
 
1063
- #: includes/Admin/UserProfile.php:302
1064
  msgid "Enable or disable product adding capability"
1065
  msgstr ""
1066
 
1067
- #: includes/Admin/UserProfile.php:307
1068
  msgid "Publishing"
1069
  msgstr ""
1070
 
1071
- #: includes/Admin/UserProfile.php:312
1072
  msgid "Publish product directly"
1073
  msgstr ""
1074
 
1075
- #: includes/Admin/UserProfile.php:315
1076
  msgid "Bypass pending, publish products directly"
1077
  msgstr ""
1078
 
1079
- #: includes/Admin/UserProfile.php:320
1080
  msgid "Admin Commission Type "
1081
  msgstr ""
1082
 
1083
- #: includes/Admin/UserProfile.php:327
1084
  msgid "Set the commmission type admin gets from this seller"
1085
  msgstr ""
1086
 
1087
- #: includes/Admin/UserProfile.php:331
1088
  msgid "Admin Commission "
1089
  msgstr ""
1090
 
1091
- #: includes/Admin/UserProfile.php:335
1092
  msgid "It will override the default commission admin gets from each sales"
1093
  msgstr ""
1094
 
1095
- #: includes/Admin/UserProfile.php:340
1096
  msgid "Featured vendor"
1097
  msgstr ""
1098
 
1099
- #: includes/Admin/UserProfile.php:345
1100
  msgid "Mark as featured vendor"
1101
  msgstr ""
1102
 
1103
- #: includes/Admin/UserProfile.php:348
1104
  msgid "This vendor will be marked as a featured vendor."
1105
  msgstr ""
1106
 
@@ -1131,7 +1138,7 @@ msgstr ""
1131
  msgid "Commision: "
1132
  msgstr ""
1133
 
1134
- #: includes/Ajax.php:72 includes/Ajax.php:1003 includes/Ajax.php:1033
1135
  #: includes/Dashboard/Templates/Withdraw.php:110
1136
  #: includes/Dashboard/Templates/Withdraw.php:175
1137
  msgid "You have no permission to do this action"
@@ -1141,98 +1148,99 @@ msgstr ""
1141
  msgid "Something wrong, please try again later"
1142
  msgstr ""
1143
 
1144
- #: includes/Ajax.php:112 includes/Dashboard/Templates/Settings.php:213
1145
- #: includes/Dashboard/Templates/Settings.php:227
1146
- #: includes/Dashboard/Templates/Settings.php:239
1147
- #: includes/Dashboard/Templates/Settings.php:251
1148
- #: includes/Dashboard/Templates/Settings.php:288
1149
- #: includes/Dashboard/Templates/Settings.php:354
1150
- #: includes/Dashboard/Templates/Settings.php:395
1151
- #: includes/Dashboard/Templates/Settings.php:445
 
1152
  #: includes/Dashboard/Templates/Withdraw.php:106
1153
  #: includes/Dashboard/Templates/Withdraw.php:171
1154
  msgid "Are you cheating?"
1155
  msgstr ""
1156
 
1157
- #: includes/Ajax.php:163 includes/Ajax.php:198
1158
  msgid "You do not have sufficient permissions to access this page."
1159
  msgstr ""
1160
 
1161
- #: includes/Ajax.php:167 includes/Ajax.php:202
1162
  msgid "You have taken too long. Please go back and retry."
1163
  msgstr ""
1164
 
1165
- #: includes/Ajax.php:177 includes/Ajax.php:212
1166
  msgid "You do not have permission to change this order"
1167
  msgstr ""
1168
 
1169
- #: includes/Ajax.php:275
1170
  #. translators: numeric number of files
1171
  msgid "File %d"
1172
  msgstr ""
1173
 
1174
- #: includes/Ajax.php:296
1175
  msgid "You have no permission to manage this order"
1176
  msgstr ""
1177
 
1178
- #: includes/Ajax.php:332 includes/Ajax.php:337
1179
  msgid "Please provide your name."
1180
  msgstr ""
1181
 
1182
- #: includes/Ajax.php:344 includes/template-tags.php:161
1183
  msgid "Something went wrong!"
1184
  msgstr ""
1185
 
1186
- #: includes/Ajax.php:350 includes/REST/StoreController.php:812
1187
  msgid "Email sent successfully!"
1188
  msgstr ""
1189
 
1190
- #: includes/Ajax.php:409 templates/orders/details.php:293
1191
  msgid "Delete note"
1192
  msgstr ""
1193
 
1194
- #: includes/Ajax.php:439
1195
  msgid "Shipping provider: "
1196
  msgstr ""
1197
 
1198
- #: includes/Ajax.php:439
1199
  msgid "Shipping number: "
1200
  msgstr ""
1201
 
1202
- #: includes/Ajax.php:439
1203
  msgid "Shipped date: "
1204
  msgstr ""
1205
 
1206
- #: includes/Ajax.php:481 includes/woo-views/html-product-download.php:14
1207
  msgid "Delete"
1208
  msgstr ""
1209
 
1210
- #: includes/Ajax.php:524 includes/Vendor/UserSwitch.php:122
1211
  msgid "Error: Nonce verification failed"
1212
  msgstr ""
1213
 
1214
- #: includes/Ajax.php:614
1215
  msgid "Image could not be processed. Please go back and try again."
1216
  msgstr ""
1217
 
1218
- #: includes/Ajax.php:771
1219
  #. translators: 1. Customer name, 2. Customer ID, 3: Customer email
1220
  msgid "%1$s (#%2$s &ndash; %3$s)"
1221
  msgstr ""
1222
 
1223
- #: includes/Ajax.php:919
1224
  msgid "Invalid username or password."
1225
  msgstr ""
1226
 
1227
- #: includes/Ajax.php:930
1228
  msgid "Wrong username or password."
1229
  msgstr ""
1230
 
1231
- #: includes/Ajax.php:959
1232
  msgid "User logged in successfully."
1233
  msgstr ""
1234
 
1235
- #: includes/Ajax.php:1009
1236
  msgid "id param is required"
1237
  msgstr ""
1238
 
@@ -1666,33 +1674,33 @@ msgstr ""
1666
  msgid "Delete Permanently"
1667
  msgstr ""
1668
 
1669
- #: includes/Dashboard/Templates/Products.php:235
1670
  msgid "Details of your product ..."
1671
  msgstr ""
1672
 
1673
- #: includes/Dashboard/Templates/Products.php:244
1674
- #: includes/Dashboard/Templates/Products.php:392
1675
  #: includes/Product/functions.php:31
1676
  msgid "Please enter product title"
1677
  msgstr ""
1678
 
1679
- #: includes/Dashboard/Templates/Products.php:251
1680
- #: includes/Dashboard/Templates/Products.php:399
1681
  #: includes/Product/functions.php:36
1682
  msgid "Please select a category"
1683
  msgstr ""
1684
 
1685
- #: includes/Dashboard/Templates/Products.php:256
1686
- #: includes/Dashboard/Templates/Products.php:404
1687
  #: includes/Product/functions.php:40
1688
  msgid "Please select AT LEAST ONE category"
1689
  msgstr ""
1690
 
1691
- #: includes/Dashboard/Templates/Products.php:411
1692
  msgid "No product found!"
1693
  msgstr ""
1694
 
1695
- #: includes/Dashboard/Templates/Products.php:415
1696
  #: includes/Product/functions.php:64
1697
  msgid "I swear this is not your product!"
1698
  msgstr ""
@@ -1708,50 +1716,50 @@ msgid ""
1708
  "payments seamlessly."
1709
  msgstr ""
1710
 
1711
- #: includes/Dashboard/Templates/Settings.php:223
1712
  msgid "Pemission denied social"
1713
  msgstr ""
1714
 
1715
- #: includes/Dashboard/Templates/Settings.php:235
1716
- #: includes/Dashboard/Templates/Settings.php:247
1717
  msgid "Pemission denied"
1718
  msgstr ""
1719
 
1720
- #: includes/Dashboard/Templates/Settings.php:265
1721
  msgid "Your information has been saved successfully"
1722
  msgstr ""
1723
 
1724
- #: includes/Dashboard/Templates/Settings.php:296
1725
- #: includes/Dashboard/Templates/Settings.php:403
1726
  msgid "Store name required"
1727
  msgstr ""
1728
 
1729
- #: includes/Dashboard/Templates/Settings.php:302
1730
- #: includes/Dashboard/Templates/Settings.php:362
1731
- #: includes/Dashboard/Templates/Settings.php:409
1732
  msgid "Store type required"
1733
  msgstr ""
1734
 
1735
- #: includes/Dashboard/Templates/Settings.php:310
1736
- #: includes/Dashboard/Templates/Settings.php:370
1737
- #: includes/Dashboard/Templates/Settings.php:417
1738
- #: includes/Dashboard/Templates/Settings.php:454
1739
  msgid "Invalid email"
1740
  msgstr ""
1741
 
1742
- #: includes/Dashboard/Templates/Settings.php:329
1743
  msgid "Address field for %s is required"
1744
  msgstr ""
1745
 
1746
- #: includes/Dashboard/Templates/Settings.php:611
1747
  msgid "Book"
1748
  msgstr ""
1749
 
1750
- #: includes/Dashboard/Templates/Settings.php:612
1751
  msgid "Dress"
1752
  msgstr ""
1753
 
1754
- #: includes/Dashboard/Templates/Settings.php:613
1755
  msgid "Electronic"
1756
  msgstr ""
1757
 
@@ -4019,15 +4027,15 @@ msgstr ""
4019
  msgid "Select an option&hellip;"
4020
  msgstr ""
4021
 
4022
- #: includes/Vendor/SetupWizard.php:374
4023
  msgid "Payment Setup"
4024
  msgstr ""
4025
 
4026
- #: includes/Vendor/SetupWizard.php:478
4027
  msgid "Your Store is Ready!"
4028
  msgstr ""
4029
 
4030
- #: includes/Vendor/SetupWizard.php:483
4031
  msgid "Go to your Store Dashboard!"
4032
  msgstr ""
4033
 
2
  # This file is distributed under the GPL2.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Dokan 3.2.1\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
+ "POT-Creation-Date: 2021-02-12 11:34:02+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
121
  msgstr ""
122
 
123
  #: includes/Admin/AdminBar.php:54 includes/Admin/Menu.php:43
124
+ #: includes/Admin/Settings.php:491 includes/Install/Installer.php:157
125
  #: includes/template-tags.php:378 src/admin/pages/Dashboard.vue:5
126
  msgid "Dashboard"
127
  msgstr ""
143
 
144
  #: includes/Admin/Hooks.php:64 includes/Admin/Hooks.php:70
145
  #: includes/Admin/Hooks.php:357 includes/Admin/Hooks.php:379
146
+ #: includes/Admin/Settings.php:402 includes/Admin/Settings.php:413
147
  #: includes/Admin/SetupWizard.php:345 includes/Install/Installer.php:93
148
  #: includes/wc-template.php:17 includes/wc-template.php:172
149
  #: includes/wc-template.php:321 src/admin/pages/Dashboard.vue:38
422
  msgid "Store Products Per Page"
423
  msgstr ""
424
 
425
+ #: includes/Admin/Settings.php:363
426
+ msgid ""
427
+ "Set how many products to display per page on the vendor store page. It will "
428
+ "affect only if the vendor isn't set this value on their vendor setting page."
429
+ msgstr ""
430
+
431
+ #: includes/Admin/Settings.php:374
432
  msgid "Commission"
433
  msgstr ""
434
 
435
+ #: includes/Admin/Settings.php:379
436
  msgid "Commission Type "
437
  msgstr ""
438
 
439
+ #: includes/Admin/Settings.php:380
440
  msgid "Select a commission type for Vendor"
441
  msgstr ""
442
 
443
+ #: includes/Admin/Settings.php:387 src/admin/pages/VendorPaymentFields.vue:69
444
  #: src/admin/pages/VendorPaymentFields.vue:78
445
  #: templates/admin-setup-wizard/step-selling.php:31
446
  msgid "Admin Commission"
447
  msgstr ""
448
 
449
+ #: includes/Admin/Settings.php:388
450
  msgid "Amount you get from each sale"
451
  msgstr ""
452
 
453
+ #: includes/Admin/Settings.php:398
454
  #: templates/admin-setup-wizard/step-store.php:14
455
  msgid "Shipping Fee Recipient"
456
  msgstr ""
457
 
458
+ #: includes/Admin/Settings.php:399
459
  msgid "Who will be receiving the Shipping fees"
460
  msgstr ""
461
 
462
+ #: includes/Admin/Settings.php:403 includes/Admin/Settings.php:414
463
  #: includes/Admin/SetupWizard.php:346
464
  msgid "Admin"
465
  msgstr ""
466
 
467
+ #: includes/Admin/Settings.php:409
468
  #: templates/admin-setup-wizard/step-store.php:28
469
  msgid "Tax Fee Recipient"
470
  msgstr ""
471
 
472
+ #: includes/Admin/Settings.php:410
473
  msgid "Who will be receiving the Tax fees"
474
  msgstr ""
475
 
476
+ #: includes/Admin/Settings.php:425
477
  msgid "Vendor Capability"
478
  msgstr ""
479
 
480
+ #: includes/Admin/Settings.php:430
481
  msgid "New Vendor Product Upload"
482
  msgstr ""
483
 
484
+ #: includes/Admin/Settings.php:431
485
  msgid "Allow newly registered vendors to add products"
486
  msgstr ""
487
 
488
+ #: includes/Admin/Settings.php:437
489
  msgid "Disable Product Popup"
490
  msgstr ""
491
 
492
+ #: includes/Admin/Settings.php:438
493
  msgid "Disable add new product in popup view"
494
  msgstr ""
495
 
496
+ #: includes/Admin/Settings.php:444 src/admin/pages/VendorCapabilities.vue:89
497
  #: templates/admin-setup-wizard/step-selling.php:39
498
  msgid "Order Status Change"
499
  msgstr ""
500
 
501
+ #: includes/Admin/Settings.php:445
502
  msgid "Allow vendor to update order status"
503
  msgstr ""
504
 
505
+ #: includes/Admin/Settings.php:464 includes/Admin/SetupWizard.php:465
506
  msgid "Withdraw Methods"
507
  msgstr ""
508
 
509
+ #: includes/Admin/Settings.php:465
510
  msgid "Select suitable Withdraw methods for Vendors"
511
  msgstr ""
512
 
513
+ #: includes/Admin/Settings.php:472 includes/Admin/SetupWizard.php:502
514
  msgid "Minimum Withdraw Limit"
515
  msgstr ""
516
 
517
+ #: includes/Admin/Settings.php:473
518
  msgid ""
519
  "Minimum balance required to make a withdraw request. Leave blank to set no "
520
  "minimum limits."
521
  msgstr ""
522
 
523
+ #: includes/Admin/Settings.php:482
524
  msgid "Exclude COD Payments"
525
  msgstr ""
526
 
527
+ #: includes/Admin/Settings.php:483
528
  msgid ""
529
  "If an order is paid with Cash on Delivery (COD), then exclude that payment "
530
  "from vendor balance."
531
  msgstr ""
532
 
533
+ #: includes/Admin/Settings.php:492
534
  msgid "Select a page to show Vendor Dashboard"
535
  msgstr ""
536
 
537
+ #: includes/Admin/Settings.php:494 includes/Admin/Settings.php:502
538
+ #: includes/Admin/Settings.php:510 includes/Admin/Settings.php:517
539
  #: includes/Admin/Settings.php:627
540
  msgid "Select page"
541
  msgstr ""
542
 
543
+ #: includes/Admin/Settings.php:499 includes/Install/Installer.php:169
544
  #: templates/global/header-menu.php:46
545
  msgid "My Orders"
546
  msgstr ""
547
 
548
+ #: includes/Admin/Settings.php:500
549
  msgid "Select a page to show My Orders"
550
  msgstr ""
551
 
552
+ #: includes/Admin/Settings.php:507
553
  msgid "Store Listing"
554
  msgstr ""
555
 
556
+ #: includes/Admin/Settings.php:508
557
  msgid "Select a page to show all Stores"
558
  msgstr ""
559
 
560
+ #: includes/Admin/Settings.php:515
561
  msgid "Terms and Conditions Page"
562
  msgstr ""
563
 
656
  msgid "Email Address"
657
  msgstr ""
658
 
659
+ #: includes/Admin/Settings.php:609 includes/Admin/UserProfile.php:212
660
  #: src/admin/pages/VendorAccountFields.vue:64
661
  #: templates/account/vendor-registration.php:33
662
  #: templates/global/seller-registration-form.php:36
707
  msgid "Store"
708
  msgstr ""
709
 
710
+ #: includes/Admin/SetupWizard.php:155 includes/Admin/UserProfile.php:295
711
  msgid "Selling"
712
  msgstr ""
713
 
797
 
798
  #: includes/Admin/SetupWizard.php:537 includes/Admin/SetupWizard.php:600
799
  #: includes/Admin/SetupWizardWCAdmin.php:232
800
+ #: includes/Vendor/SetupWizard.php:243 includes/Vendor/SetupWizard.php:390
801
  #: templates/admin-setup-wizard/step-selling.php:53
802
  #: templates/admin-setup-wizard/step-store.php:100
803
  msgid "Continue"
804
  msgstr ""
805
 
806
  #: includes/Admin/SetupWizard.php:538 includes/Vendor/SetupWizard.php:244
807
+ #: includes/Vendor/SetupWizard.php:391
808
  #: templates/admin-setup-wizard/step-selling.php:54
809
  #: templates/admin-setup-wizard/step-store.php:101
810
  msgid "Skip this step"
948
  msgid "We'll use %1$s for product weight and %2$s for product dimensions."
949
  msgstr ""
950
 
951
+ #: includes/Admin/UserProfile.php:38 includes/Ajax.php:143
952
  #: includes/Assets.php:413 src/admin/pages/VendorAccountFields.vue:279
953
  #: src/admin/pages/VendorAccountFields.vue:311
954
  #: src/admin/pages/VendorAccountFields.vue:343
992
  msgid "Upload banner"
993
  msgstr ""
994
 
995
+ #: includes/Admin/UserProfile.php:123
996
+ #. translators: %1$s: banner width, %2$s: banner height in integers
997
  msgid "Upload a banner for your store. Banner size is (%1$sx%2$s) pixels."
998
  msgstr ""
999
 
1000
+ #: includes/Admin/UserProfile.php:135
1001
  msgid "Store name"
1002
  msgstr ""
1003
 
1004
+ #: includes/Admin/UserProfile.php:142
1005
  #: src/admin/pages/VendorAccountFields.vue:53
1006
  msgid "Store URL"
1007
  msgstr ""
1008
 
1009
+ #: includes/Admin/UserProfile.php:150 includes/Privacy.php:223
1010
  msgid "Address 1"
1011
  msgstr ""
1012
 
1013
+ #: includes/Admin/UserProfile.php:157 includes/Privacy.php:224
1014
  msgid "Address 2"
1015
  msgstr ""
1016
 
1017
+ #: includes/Admin/UserProfile.php:164
1018
  msgid "Town/City"
1019
  msgstr ""
1020
 
1021
+ #: includes/Admin/UserProfile.php:171
1022
  msgid "Zip Code"
1023
  msgstr ""
1024
 
1025
+ #: includes/Admin/UserProfile.php:230
1026
  msgid "Payment Options : "
1027
  msgstr ""
1028
 
1029
+ #: includes/Admin/UserProfile.php:235
1030
  msgid "Paypal Email "
1031
  msgstr ""
1032
 
1033
+ #: includes/Admin/UserProfile.php:243
1034
  msgid "Skrill Email "
1035
  msgstr ""
1036
 
1037
+ #: includes/Admin/UserProfile.php:252
1038
  msgid "Bank name "
1039
  msgstr ""
1040
 
1041
+ #: includes/Admin/UserProfile.php:258
1042
  msgid "Account Name "
1043
  msgstr ""
1044
 
1045
+ #: includes/Admin/UserProfile.php:264
1046
  msgid "Account Number "
1047
  msgstr ""
1048
 
1049
+ #: includes/Admin/UserProfile.php:270
1050
  msgid "Bank Address "
1051
  msgstr ""
1052
 
1053
+ #: includes/Admin/UserProfile.php:276 includes/Privacy.php:279
1054
  #: src/admin/pages/VendorPaymentFields.vue:30
1055
  msgid "Routing Number"
1056
  msgstr ""
1057
 
1058
+ #: includes/Admin/UserProfile.php:282
1059
  msgid "Bank IBAN "
1060
  msgstr ""
1061
 
1062
+ #: includes/Admin/UserProfile.php:288
1063
  msgid "Bank Swift "
1064
  msgstr ""
1065
 
1066
+ #: includes/Admin/UserProfile.php:300
1067
  msgid "Enable Adding Products"
1068
  msgstr ""
1069
 
1070
+ #: includes/Admin/UserProfile.php:303
1071
  msgid "Enable or disable product adding capability"
1072
  msgstr ""
1073
 
1074
+ #: includes/Admin/UserProfile.php:308
1075
  msgid "Publishing"
1076
  msgstr ""
1077
 
1078
+ #: includes/Admin/UserProfile.php:313
1079
  msgid "Publish product directly"
1080
  msgstr ""
1081
 
1082
+ #: includes/Admin/UserProfile.php:316
1083
  msgid "Bypass pending, publish products directly"
1084
  msgstr ""
1085
 
1086
+ #: includes/Admin/UserProfile.php:321
1087
  msgid "Admin Commission Type "
1088
  msgstr ""
1089
 
1090
+ #: includes/Admin/UserProfile.php:328
1091
  msgid "Set the commmission type admin gets from this seller"
1092
  msgstr ""
1093
 
1094
+ #: includes/Admin/UserProfile.php:332
1095
  msgid "Admin Commission "
1096
  msgstr ""
1097
 
1098
+ #: includes/Admin/UserProfile.php:336
1099
  msgid "It will override the default commission admin gets from each sales"
1100
  msgstr ""
1101
 
1102
+ #: includes/Admin/UserProfile.php:341
1103
  msgid "Featured vendor"
1104
  msgstr ""
1105
 
1106
+ #: includes/Admin/UserProfile.php:346
1107
  msgid "Mark as featured vendor"
1108
  msgstr ""
1109
 
1110
+ #: includes/Admin/UserProfile.php:349
1111
  msgid "This vendor will be marked as a featured vendor."
1112
  msgstr ""
1113
 
1138
  msgid "Commision: "
1139
  msgstr ""
1140
 
1141
+ #: includes/Ajax.php:72 includes/Ajax.php:999 includes/Ajax.php:1029
1142
  #: includes/Dashboard/Templates/Withdraw.php:110
1143
  #: includes/Dashboard/Templates/Withdraw.php:175
1144
  msgid "You have no permission to do this action"
1148
  msgid "Something wrong, please try again later"
1149
  msgstr ""
1150
 
1151
+ #: includes/Ajax.php:108 includes/Dashboard/Templates/Settings.php:213
1152
+ #: includes/Dashboard/Templates/Settings.php:217
1153
+ #: includes/Dashboard/Templates/Settings.php:231
1154
+ #: includes/Dashboard/Templates/Settings.php:243
1155
+ #: includes/Dashboard/Templates/Settings.php:255
1156
+ #: includes/Dashboard/Templates/Settings.php:292
1157
+ #: includes/Dashboard/Templates/Settings.php:358
1158
+ #: includes/Dashboard/Templates/Settings.php:399
1159
+ #: includes/Dashboard/Templates/Settings.php:449
1160
  #: includes/Dashboard/Templates/Withdraw.php:106
1161
  #: includes/Dashboard/Templates/Withdraw.php:171
1162
  msgid "Are you cheating?"
1163
  msgstr ""
1164
 
1165
+ #: includes/Ajax.php:161 includes/Ajax.php:196
1166
  msgid "You do not have sufficient permissions to access this page."
1167
  msgstr ""
1168
 
1169
+ #: includes/Ajax.php:165 includes/Ajax.php:200
1170
  msgid "You have taken too long. Please go back and retry."
1171
  msgstr ""
1172
 
1173
+ #: includes/Ajax.php:175 includes/Ajax.php:210
1174
  msgid "You do not have permission to change this order"
1175
  msgstr ""
1176
 
1177
+ #: includes/Ajax.php:273
1178
  #. translators: numeric number of files
1179
  msgid "File %d"
1180
  msgstr ""
1181
 
1182
+ #: includes/Ajax.php:294
1183
  msgid "You have no permission to manage this order"
1184
  msgstr ""
1185
 
1186
+ #: includes/Ajax.php:330 includes/Ajax.php:335
1187
  msgid "Please provide your name."
1188
  msgstr ""
1189
 
1190
+ #: includes/Ajax.php:342 includes/template-tags.php:161
1191
  msgid "Something went wrong!"
1192
  msgstr ""
1193
 
1194
+ #: includes/Ajax.php:348 includes/REST/StoreController.php:812
1195
  msgid "Email sent successfully!"
1196
  msgstr ""
1197
 
1198
+ #: includes/Ajax.php:407 templates/orders/details.php:293
1199
  msgid "Delete note"
1200
  msgstr ""
1201
 
1202
+ #: includes/Ajax.php:437
1203
  msgid "Shipping provider: "
1204
  msgstr ""
1205
 
1206
+ #: includes/Ajax.php:437
1207
  msgid "Shipping number: "
1208
  msgstr ""
1209
 
1210
+ #: includes/Ajax.php:437
1211
  msgid "Shipped date: "
1212
  msgstr ""
1213
 
1214
+ #: includes/Ajax.php:479 includes/woo-views/html-product-download.php:14
1215
  msgid "Delete"
1216
  msgstr ""
1217
 
1218
+ #: includes/Ajax.php:520 includes/Vendor/UserSwitch.php:122
1219
  msgid "Error: Nonce verification failed"
1220
  msgstr ""
1221
 
1222
+ #: includes/Ajax.php:610
1223
  msgid "Image could not be processed. Please go back and try again."
1224
  msgstr ""
1225
 
1226
+ #: includes/Ajax.php:767
1227
  #. translators: 1. Customer name, 2. Customer ID, 3: Customer email
1228
  msgid "%1$s (#%2$s &ndash; %3$s)"
1229
  msgstr ""
1230
 
1231
+ #: includes/Ajax.php:915
1232
  msgid "Invalid username or password."
1233
  msgstr ""
1234
 
1235
+ #: includes/Ajax.php:926
1236
  msgid "Wrong username or password."
1237
  msgstr ""
1238
 
1239
+ #: includes/Ajax.php:955
1240
  msgid "User logged in successfully."
1241
  msgstr ""
1242
 
1243
+ #: includes/Ajax.php:1005
1244
  msgid "id param is required"
1245
  msgstr ""
1246
 
1674
  msgid "Delete Permanently"
1675
  msgstr ""
1676
 
1677
+ #: includes/Dashboard/Templates/Products.php:231
1678
  msgid "Details of your product ..."
1679
  msgstr ""
1680
 
1681
+ #: includes/Dashboard/Templates/Products.php:240
1682
+ #: includes/Dashboard/Templates/Products.php:388
1683
  #: includes/Product/functions.php:31
1684
  msgid "Please enter product title"
1685
  msgstr ""
1686
 
1687
+ #: includes/Dashboard/Templates/Products.php:247
1688
+ #: includes/Dashboard/Templates/Products.php:395
1689
  #: includes/Product/functions.php:36
1690
  msgid "Please select a category"
1691
  msgstr ""
1692
 
1693
+ #: includes/Dashboard/Templates/Products.php:252
1694
+ #: includes/Dashboard/Templates/Products.php:400
1695
  #: includes/Product/functions.php:40
1696
  msgid "Please select AT LEAST ONE category"
1697
  msgstr ""
1698
 
1699
+ #: includes/Dashboard/Templates/Products.php:407
1700
  msgid "No product found!"
1701
  msgstr ""
1702
 
1703
+ #: includes/Dashboard/Templates/Products.php:411
1704
  #: includes/Product/functions.php:64
1705
  msgid "I swear this is not your product!"
1706
  msgstr ""
1716
  "payments seamlessly."
1717
  msgstr ""
1718
 
1719
+ #: includes/Dashboard/Templates/Settings.php:227
1720
  msgid "Pemission denied social"
1721
  msgstr ""
1722
 
1723
+ #: includes/Dashboard/Templates/Settings.php:239
1724
+ #: includes/Dashboard/Templates/Settings.php:251
1725
  msgid "Pemission denied"
1726
  msgstr ""
1727
 
1728
+ #: includes/Dashboard/Templates/Settings.php:269
1729
  msgid "Your information has been saved successfully"
1730
  msgstr ""
1731
 
1732
+ #: includes/Dashboard/Templates/Settings.php:300
1733
+ #: includes/Dashboard/Templates/Settings.php:407
1734
  msgid "Store name required"
1735
  msgstr ""
1736
 
1737
+ #: includes/Dashboard/Templates/Settings.php:306
1738
+ #: includes/Dashboard/Templates/Settings.php:366
1739
+ #: includes/Dashboard/Templates/Settings.php:413
1740
  msgid "Store type required"
1741
  msgstr ""
1742
 
1743
+ #: includes/Dashboard/Templates/Settings.php:314
1744
+ #: includes/Dashboard/Templates/Settings.php:374
1745
+ #: includes/Dashboard/Templates/Settings.php:421
1746
+ #: includes/Dashboard/Templates/Settings.php:458
1747
  msgid "Invalid email"
1748
  msgstr ""
1749
 
1750
+ #: includes/Dashboard/Templates/Settings.php:333
1751
  msgid "Address field for %s is required"
1752
  msgstr ""
1753
 
1754
+ #: includes/Dashboard/Templates/Settings.php:619
1755
  msgid "Book"
1756
  msgstr ""
1757
 
1758
+ #: includes/Dashboard/Templates/Settings.php:620
1759
  msgid "Dress"
1760
  msgstr ""
1761
 
1762
+ #: includes/Dashboard/Templates/Settings.php:621
1763
  msgid "Electronic"
1764
  msgstr ""
1765
 
4027
  msgid "Select an option&hellip;"
4028
  msgstr ""
4029
 
4030
+ #: includes/Vendor/SetupWizard.php:368
4031
  msgid "Payment Setup"
4032
  msgstr ""
4033
 
4034
+ #: includes/Vendor/SetupWizard.php:466
4035
  msgid "Your Store is Ready!"
4036
  msgstr ""
4037
 
4038
+ #: includes/Vendor/SetupWizard.php:471
4039
  msgid "Go to your Store Dashboard!"
4040
  msgstr ""
4041
 
readme.txt CHANGED
@@ -3,11 +3,11 @@ Contributors: tareq1988, wedevs, nizamuddinbabu
3
  Donate Link: http://tareq.co/donate/
4
  Tags: WooCommerce multivendor marketplace, multi vendor marketplace, multi seller store, multi-vendor, multi seller, commissions, multivendor, marketplace, product vendors, woocommerce vendor, commission rate, e-commerce, woocommerce, ebay, ecommerce, yith, yithemes
5
  Requires at least: 4.4
6
- Tested up to: 5.6
7
  WC requires at least: 3.0
8
- WC tested up to: 4.9.2
9
  Requires PHP: 5.6
10
- Stable tag: 3.2.0
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -292,6 +292,12 @@ A. Just install and activate the PRO version without deleting the free plugin. A
292
 
293
  == Changelog ==
294
 
 
 
 
 
 
 
295
  = v3.2.0 ( January 29, 2021 ) =
296
 
297
  **new** Added blank product page new UI on vendor dashboard
3
  Donate Link: http://tareq.co/donate/
4
  Tags: WooCommerce multivendor marketplace, multi vendor marketplace, multi seller store, multi-vendor, multi seller, commissions, multivendor, marketplace, product vendors, woocommerce vendor, commission rate, e-commerce, woocommerce, ebay, ecommerce, yith, yithemes
5
  Requires at least: 4.4
6
+ Tested up to: 5.6.1
7
  WC requires at least: 3.0
8
+ WC tested up to: 5.0.0
9
  Requires PHP: 5.6
10
+ Stable tag: 3.2.1
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
292
 
293
  == Changelog ==
294
 
295
+ = v3.2.1 ( February 12, 2021 ) =
296
+
297
+ **fix:** Optimized code for better security
298
+ **update:** performance improvements on vendor dashboard end
299
+ **fix:** fixed conflict with user frontend menu position with Dokan
300
+
301
  = v3.2.0 ( January 29, 2021 ) =
302
 
303
  **new** Added blank product page new UI on vendor dashboard
templates/products/products-listing.php CHANGED
@@ -36,7 +36,7 @@
36
  <article class="dokan-product-listing-area">
37
 
38
  <?php
39
- $product_query = dokan()->product->all( [ 'author' => dokan_get_current_user_id() ] );
40
 
41
  if ( $product_query->have_posts() ) {
42
  ?>
36
  <article class="dokan-product-listing-area">
37
 
38
  <?php
39
+ $product_query = dokan()->product->all( [ 'author' => dokan_get_current_user_id(), 'posts_per_page' => 1 ] );
40
 
41
  if ( $product_query->have_posts() ) {
42
  ?>
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit97568c9d5918187a35e3e37e83adbac1::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit82f7e385b23360c9340decd913dd4d9d::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit97568c9d5918187a35e3e37e83adbac1
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit97568c9d5918187a35e3e37e83adbac1
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit97568c9d5918187a35e3e37e83adbac1', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit97568c9d5918187a35e3e37e83adbac1', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
- call_user_func(\Composer\Autoload\ComposerStaticInit97568c9d5918187a35e3e37e83adbac1::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit82f7e385b23360c9340decd913dd4d9d
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit82f7e385b23360c9340decd913dd4d9d', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit82f7e385b23360c9340decd913dd4d9d', 'loadClassLoader'));
28
 
29
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
30
  if ($useStaticLoader) {
31
  require_once __DIR__ . '/autoload_static.php';
32
 
33
+ call_user_func(\Composer\Autoload\ComposerStaticInit82f7e385b23360c9340decd913dd4d9d::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit97568c9d5918187a35e3e37e83adbac1
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
@@ -177,9 +177,9 @@ class ComposerStaticInit97568c9d5918187a35e3e37e83adbac1
177
  public static function getInitializer(ClassLoader $loader)
178
  {
179
  return \Closure::bind(function () use ($loader) {
180
- $loader->prefixLengthsPsr4 = ComposerStaticInit97568c9d5918187a35e3e37e83adbac1::$prefixLengthsPsr4;
181
- $loader->prefixDirsPsr4 = ComposerStaticInit97568c9d5918187a35e3e37e83adbac1::$prefixDirsPsr4;
182
- $loader->classMap = ComposerStaticInit97568c9d5918187a35e3e37e83adbac1::$classMap;
183
 
184
  }, null, ClassLoader::class);
185
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit82f7e385b23360c9340decd913dd4d9d
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'W' =>
177
  public static function getInitializer(ClassLoader $loader)
178
  {
179
  return \Closure::bind(function () use ($loader) {
180
+ $loader->prefixLengthsPsr4 = ComposerStaticInit82f7e385b23360c9340decd913dd4d9d::$prefixLengthsPsr4;
181
+ $loader->prefixDirsPsr4 = ComposerStaticInit82f7e385b23360c9340decd913dd4d9d::$prefixDirsPsr4;
182
+ $loader->classMap = ComposerStaticInit82f7e385b23360c9340decd913dd4d9d::$classMap;
183
 
184
  }, null, ClassLoader::class);
185
  }