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

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.9
Comparing to
See all releases

Code changes from version 3.2.8 to 3.2.9

assets/js/dokan.js CHANGED
@@ -379,7 +379,7 @@ jQuery(function($) {
379
  line_item_totals: JSON.stringify( line_item_totals, null, '' ),
380
  line_item_tax_totals: JSON.stringify( line_item_tax_totals, null, '' ),
381
  api_refund: $( this ).is( '.do-api-refund' ),
382
- restock_refunded_items: $( '#restock_refunded_items:checked' ).size() ? 'true' : 'false',
383
  security: dokan_refund.order_item_nonce
384
  };
385
 
@@ -942,7 +942,7 @@ jQuery(function($) {
942
  $.magnificPopup.close();
943
  Dokan_Editor.openProductPopup();
944
  $( 'span.dokan-show-add-product-success' ).html( dokan.product_created_response );
945
-
946
  setTimeout(function() {
947
  $( 'span.dokan-show-add-product-success' ).html( '' );
948
  }, 3000);
@@ -1105,8 +1105,9 @@ jQuery(function($) {
1105
  attributeWrapper.append( $html );
1106
  $( 'select#product_type' ).trigger('change');
1107
  Dokan_Editor.loadSelect2();
 
1108
  Dokan_Editor.attribute.reArrangeAttribute();
1109
- };
1110
 
1111
  self.closest('.dokan-attribute-type').find('span.dokan-attribute-spinner').addClass('dokan-hide');
1112
 
@@ -1687,7 +1688,7 @@ jQuery(function($) {
1687
  if ( $('#dokan-edit-product-id').val() && $('#post_title').val() && $('#samplepermalinknonce').val() ) {
1688
  $.post(
1689
  ajaxurl,
1690
- {
1691
  action: 'sample-permalink',
1692
  post_id: $('#dokan-edit-product-id').val(),
1693
  new_slug: $('#edited-post-name-dokan').val(),
@@ -1712,8 +1713,12 @@ jQuery(function($) {
1712
  };
1713
  }
1714
 
 
 
 
 
 
1715
  });
1716
-
1717
  })(jQuery);
1718
 
1719
  jQuery(function($) {
379
  line_item_totals: JSON.stringify( line_item_totals, null, '' ),
380
  line_item_tax_totals: JSON.stringify( line_item_tax_totals, null, '' ),
381
  api_refund: $( this ).is( '.do-api-refund' ),
382
+ restock_refunded_items: $( '#restock_refunded_items:checked' ).length ? 'true' : 'false',
383
  security: dokan_refund.order_item_nonce
384
  };
385
 
942
  $.magnificPopup.close();
943
  Dokan_Editor.openProductPopup();
944
  $( 'span.dokan-show-add-product-success' ).html( dokan.product_created_response );
945
+
946
  setTimeout(function() {
947
  $( 'span.dokan-show-add-product-success' ).html( '' );
948
  }, 3000);
1105
  attributeWrapper.append( $html );
1106
  $( 'select#product_type' ).trigger('change');
1107
  Dokan_Editor.loadSelect2();
1108
+ Dokan_Editor.bindProductTagDropdown();
1109
  Dokan_Editor.attribute.reArrangeAttribute();
1110
+ }
1111
 
1112
  self.closest('.dokan-attribute-type').find('span.dokan-attribute-spinner').addClass('dokan-hide');
1113
 
1688
  if ( $('#dokan-edit-product-id').val() && $('#post_title').val() && $('#samplepermalinknonce').val() ) {
1689
  $.post(
1690
  ajaxurl,
1691
+ {
1692
  action: 'sample-permalink',
1693
  post_id: $('#dokan-edit-product-id').val(),
1694
  new_slug: $('#edited-post-name-dokan').val(),
1713
  };
1714
  }
1715
 
1716
+ $( window ).on( "load", function (){
1717
+ if ( $( 'input#_virtual:checked' ).length ) {
1718
+ show_and_hide_panels();
1719
+ }
1720
+ });
1721
  });
 
1722
  })(jQuery);
1723
 
1724
  jQuery(function($) {
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.8
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.4.1
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.8';
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.9
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.5.2
12
  * Domain Path: /languages/
13
  * License: GPL2
14
  */
56
  *
57
  * @var string
58
  */
59
+ public $version = '3.2.9';
60
 
61
  /**
62
  * Instance of self
includes/Commission.php CHANGED
@@ -259,10 +259,12 @@ class Commission {
259
  $product_id = $item->get_product()->get_id();
260
  $refund = $order->get_total_refunded_for_item( $item_id );
261
 
 
 
262
  if ( $refund ) {
263
- $earning += $this->get_earning_by_product( $product_id, $context, $item->get_total() - $refund );
264
  } else {
265
- $earning += $this->get_earning_by_product( $product_id, $context, $item->get_total() );
266
  }
267
  }
268
 
259
  $product_id = $item->get_product()->get_id();
260
  $refund = $order->get_total_refunded_for_item( $item_id );
261
 
262
+ $item_price = apply_filters( 'dokan_earning_by_order_item_price', $item->get_total(), $item );
263
+
264
  if ( $refund ) {
265
+ $earning += $this->get_earning_by_product( $product_id, $context, $item_price - $refund );
266
  } else {
267
+ $earning += $this->get_earning_by_product( $product_id, $context, $item_price );
268
  }
269
  }
270
 
includes/Customizer.php CHANGED
@@ -272,6 +272,39 @@ class Customizer {
272
  );
273
  }
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  $wp_customize->add_control(
276
  new Customizer\HeadingControl(
277
  $wp_customize,
272
  );
273
  }
274
 
275
+ $wp_customize->add_control(
276
+ new Customizer\HeadingControl(
277
+ $wp_customize,
278
+ 'store_products',
279
+ [
280
+ 'section' => 'dokan_store',
281
+ 'label' => __( 'Vendor Products', 'dokan-lite' ),
282
+ 'settings' => [],
283
+ ]
284
+ )
285
+ );
286
+
287
+ $wp_customize->add_setting(
288
+ 'dokan_appearance[store_products][hide_product_filter]',
289
+ [
290
+ 'default' => '',
291
+ 'type' => 'option',
292
+ 'capability' => $this->capability,
293
+ 'sanitize_callback' => [ $this, 'bool_to_string' ],
294
+ 'sanitize_js_callback' => [ $this, 'empty_to_bool' ],
295
+ ]
296
+ );
297
+
298
+ $wp_customize->add_control(
299
+ 'hide_product_filter',
300
+ [
301
+ 'label' => __( 'Hide product filter', 'dokan-lite' ),
302
+ 'section' => 'dokan_store',
303
+ 'settings' => 'dokan_appearance[store_products][hide_product_filter]',
304
+ 'type' => 'checkbox',
305
+ ]
306
+ );
307
+
308
  $wp_customize->add_control(
309
  new Customizer\HeadingControl(
310
  $wp_customize,
includes/Product/Hooks.php CHANGED
@@ -152,6 +152,12 @@ class Hooks {
152
  * @return void
153
  */
154
  public function store_products_orderby() {
 
 
 
 
 
 
155
  $orderby_options = dokan_store_product_catalog_orderby();
156
  $store_user = dokan()->vendor->get( get_query_var( 'author' ) );
157
  $store_id = $store_user->get_id();
152
  * @return void
153
  */
154
  public function store_products_orderby() {
155
+ $store_products = dokan_get_option( 'store_products', 'dokan_appearance' );
156
+
157
+ if ( ! empty( $store_products['hide_product_filter'] ) ) {
158
+ return;
159
+ }
160
+
161
  $orderby_options = dokan_store_product_catalog_orderby();
162
  $store_user = dokan()->vendor->get( get_query_var( 'author' ) );
163
  $store_id = $store_user->get_id();
includes/REST/ProductController.php CHANGED
@@ -784,8 +784,8 @@ class ProductController extends DokanRESTController {
784
  'images' => $this->get_images( $product ),
785
  'attributes' => $this->get_attributes( $product ),
786
  'default_attributes' => $this->get_default_attributes( $product ),
787
- 'variations' => [],
788
- 'grouped_products' => [],
789
  'menu_order' => $product->get_menu_order( $context ),
790
  'meta_data' => $product->get_meta_data(),
791
  'store' => [
784
  'images' => $this->get_images( $product ),
785
  'attributes' => $this->get_attributes( $product ),
786
  'default_attributes' => $this->get_default_attributes( $product ),
787
+ 'variations' => $product->is_type( 'variable' ) ? $product->get_children() : [],
788
+ 'grouped_products' => $product->is_type( 'grouped' ) ? $product->get_children() : [],
789
  'menu_order' => $product->get_menu_order( $context ),
790
  'meta_data' => $product->get_meta_data(),
791
  'store' => [
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.8\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
- "POT-Creation-Date: 2021-07-12 12:02:52+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -1635,18 +1635,26 @@ msgid "Hide store address"
1635
  msgstr ""
1636
 
1637
  #: includes/Customizer.php:281
 
 
 
 
 
 
 
 
1638
  msgid "Sidebar Widgets"
1639
  msgstr ""
1640
 
1641
- #: includes/Customizer.php:303
1642
  msgid "Show store map"
1643
  msgstr ""
1644
 
1645
- #: includes/Customizer.php:326
1646
  msgid "Show vendor contact form"
1647
  msgstr ""
1648
 
1649
- #: includes/Customizer.php:348
1650
  msgid "Show store opening/closing Time"
1651
  msgstr ""
1652
 
@@ -2673,16 +2681,16 @@ msgstr ""
2673
  msgid "SKU:"
2674
  msgstr ""
2675
 
2676
- #: includes/Product/Hooks.php:161
2677
  msgid "Enter product name"
2678
  msgstr ""
2679
 
2680
- #: includes/Product/Hooks.php:163 includes/Product/functions.php:335
2681
  #: templates/products/listing-filter.php:68
2682
  msgid "Search"
2683
  msgstr ""
2684
 
2685
- #: includes/Product/Hooks.php:166
2686
  msgid "Shop order"
2687
  msgstr ""
2688
 
2
  # This file is distributed under the GPL2.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Dokan 3.2.9\n"
6
  "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n"
7
+ "POT-Creation-Date: 2021-08-02 10:42:26+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
1635
  msgstr ""
1636
 
1637
  #: includes/Customizer.php:281
1638
+ msgid "Vendor Products"
1639
+ msgstr ""
1640
+
1641
+ #: includes/Customizer.php:301
1642
+ msgid "Hide product filter"
1643
+ msgstr ""
1644
+
1645
+ #: includes/Customizer.php:314
1646
  msgid "Sidebar Widgets"
1647
  msgstr ""
1648
 
1649
+ #: includes/Customizer.php:336
1650
  msgid "Show store map"
1651
  msgstr ""
1652
 
1653
+ #: includes/Customizer.php:359
1654
  msgid "Show vendor contact form"
1655
  msgstr ""
1656
 
1657
+ #: includes/Customizer.php:381
1658
  msgid "Show store opening/closing Time"
1659
  msgstr ""
1660
 
2681
  msgid "SKU:"
2682
  msgstr ""
2683
 
2684
+ #: includes/Product/Hooks.php:167
2685
  msgid "Enter product name"
2686
  msgstr ""
2687
 
2688
+ #: includes/Product/Hooks.php:169 includes/Product/functions.php:335
2689
  #: templates/products/listing-filter.php:68
2690
  msgid "Search"
2691
  msgstr ""
2692
 
2693
+ #: includes/Product/Hooks.php:172
2694
  msgid "Shop order"
2695
  msgstr ""
2696
 
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.7.2
7
  WC requires at least: 3.0
8
- WC tested up to: 5.4.1
9
  Requires PHP: 5.6
10
- Stable tag: 3.2.8
11
  License: GPLv2 or later
12
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
13
 
@@ -292,6 +292,15 @@ A. Just install and activate the PRO version without deleting the free plugin. A
292
 
293
  == Changelog ==
294
 
 
 
 
 
 
 
 
 
 
295
  = v3.2.8 ( Jul 12, 2021 ) =
296
 
297
  - **update:** Added Composer 2 support
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.8
7
  WC requires at least: 3.0
8
+ WC tested up to: 5.5.2
9
  Requires PHP: 5.6
10
+ Stable tag: 3.2.9
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.9 ( Aug 2, 2021 ) =
296
+
297
+ - **New:** Added customize settings for store product filter option to show/hide
298
+ - **Fix:** Product tag search not working in variable product after adding new attribute
299
+ - **New:** added a new hook dokan_earning_by_order_item_price
300
+ - **Fix:** display shipping widget though virtual checkbox selected
301
+ - **Fix:** Children IDs not showing on REST API
302
+ - **Fix:** fixed a js error while refunding from vendor dashboard: size() is not a function
303
+
304
  = v3.2.8 ( Jul 12, 2021 ) =
305
 
306
  - **update:** Added Composer 2 support
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit38f81e213638c6498fbab6eada71c7ee::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955
6
  {
7
  private static $loader;
8
 
@@ -22,15 +22,15 @@ class ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955
22
  return self::$loader;
23
  }
24
 
25
- spl_autoload_register(array('ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
- spl_autoload_unregister(array('ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955', '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\ComposerStaticInit389596c2c08da7b5970bd9cc22480955::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
@@ -51,19 +51,19 @@ class ComposerAutoloaderInit389596c2c08da7b5970bd9cc22480955
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
- $includeFiles = Composer\Autoload\ComposerStaticInit389596c2c08da7b5970bd9cc22480955::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
- composerRequire389596c2c08da7b5970bd9cc22480955($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
- function composerRequire389596c2c08da7b5970bd9cc22480955($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit38f81e213638c6498fbab6eada71c7ee
6
  {
7
  private static $loader;
8
 
22
  return self::$loader;
23
  }
24
 
25
+ spl_autoload_register(array('ComposerAutoloaderInit38f81e213638c6498fbab6eada71c7ee', 'loadClassLoader'), true, true);
26
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
27
+ spl_autoload_unregister(array('ComposerAutoloaderInit38f81e213638c6498fbab6eada71c7ee', '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\ComposerStaticInit38f81e213638c6498fbab6eada71c7ee::getInitializer($loader));
34
  } else {
35
  $map = require __DIR__ . '/autoload_namespaces.php';
36
  foreach ($map as $namespace => $path) {
51
  $loader->register(true);
52
 
53
  if ($useStaticLoader) {
54
+ $includeFiles = Composer\Autoload\ComposerStaticInit38f81e213638c6498fbab6eada71c7ee::$files;
55
  } else {
56
  $includeFiles = require __DIR__ . '/autoload_files.php';
57
  }
58
  foreach ($includeFiles as $fileIdentifier => $file) {
59
+ composerRequire38f81e213638c6498fbab6eada71c7ee($fileIdentifier, $file);
60
  }
61
 
62
  return $loader;
63
  }
64
  }
65
 
66
+ function composerRequire38f81e213638c6498fbab6eada71c7ee($fileIdentifier, $file)
67
  {
68
  if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
69
  require $file;
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit389596c2c08da7b5970bd9cc22480955
8
  {
9
  public static $files = array (
10
  'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
@@ -182,9 +182,9 @@ class ComposerStaticInit389596c2c08da7b5970bd9cc22480955
182
  public static function getInitializer(ClassLoader $loader)
183
  {
184
  return \Closure::bind(function () use ($loader) {
185
- $loader->prefixLengthsPsr4 = ComposerStaticInit389596c2c08da7b5970bd9cc22480955::$prefixLengthsPsr4;
186
- $loader->prefixDirsPsr4 = ComposerStaticInit389596c2c08da7b5970bd9cc22480955::$prefixDirsPsr4;
187
- $loader->classMap = ComposerStaticInit389596c2c08da7b5970bd9cc22480955::$classMap;
188
 
189
  }, null, ClassLoader::class);
190
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit38f81e213638c6498fbab6eada71c7ee
8
  {
9
  public static $files = array (
10
  'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
182
  public static function getInitializer(ClassLoader $loader)
183
  {
184
  return \Closure::bind(function () use ($loader) {
185
+ $loader->prefixLengthsPsr4 = ComposerStaticInit38f81e213638c6498fbab6eada71c7ee::$prefixLengthsPsr4;
186
+ $loader->prefixDirsPsr4 = ComposerStaticInit38f81e213638c6498fbab6eada71c7ee::$prefixDirsPsr4;
187
+ $loader->classMap = ComposerStaticInit38f81e213638c6498fbab6eada71c7ee::$classMap;
188
 
189
  }, null, ClassLoader::class);
190
  }