diff --git a/includes/rules_shipping_framework_woocommerce.php b/includes/rules_shipping_framework_woocommerce.php
index 0c6fd95de016f1df57f65df5196a81796d007c74..5696946fc81d49c92774a8bf8419344b167ecb83 100644
--- a/includes/rules_shipping_framework_woocommerce.php
+++ b/includes/rules_shipping_framework_woocommerce.php
@@ -23,6 +23,7 @@ class RulesShippingFrameworkWooCommerce extends RulesShippingFramework {
 			"products"      => 'products',
 			"skus"          => 'products',
 			"vendors"       => 'vendors',
+			"shippingclasses" => 'shippingclasses',
 		));
 	}
 	static function getHelper() {
@@ -473,6 +474,17 @@ class RulesShippingFrameworkWooCommerce extends RulesShippingFramework {
 			if (!empty($filter_conditions['subcategories']) && count(array_intersect($subcategories, $prodcategories))==0)
 				continue;
 			
+			if (!empty($filter_conditions['shippingclasses'])) {
+				$shipclass = $p['data']->get_shipping_class();
+				if ($shipclass) {
+					if (!in_array($shipclass, $filter_conditions['shippingclasses'] ))
+						continue;
+				} else {
+					// No shipping class set for product, but scoping has a valid shipping clase => filter out product
+					continue;
+				}
+			}
+			
 			if (!empty($filter_conditions['vendors'])) {
 				// Collect all vendors (ids and slug/login_name - PLUGIN-specific!)
 				// for the current product. If any of them is in the vendor conditions
@@ -480,8 +492,8 @@ class RulesShippingFrameworkWooCommerce extends RulesShippingFramework {
 				$vnd_props = array();
 				
 				// THIRD-PARTY SUPPORT
-				// "WC Vendors"  support (vendors stored as post author)
-				if (class_exists("WC_Vendors")) {
+				// "WC Vendors" and "Dokan Marketplace" support (vendors stored as post author)
+				if (class_exists("WC_Vendors") || class_exists("WeDevs_Dokan")) {
 					$vendor = $p['data']->post->post_author;
 					$vnd = get_user_by('id', $vendor);  // Get user name by user id
 					$vnd_props[] = $vendor;