Untitled
unknown
plain_text
4 months ago
1.8 kB
8
Indexable
add_filter('marketking_final_vendor_commission', function($vendor_commission, $order_id, $vendor_id){ // Categories that require minimum $20 admin commission $min_commission_categories = array( 'cards', 'toys' ); $order = wc_get_order($order_id); $order_total = $order->get_total(); $admin_commission = $order_total - $vendor_commission; // Track which categories are present in the order $categories_found = array(); // Check each item in the order foreach ($order->get_items() as $item) { $product_id = $item->get_product_id(); $product_cats = get_the_terms($product_id, 'product_cat'); if ($product_cats && !is_wp_error($product_cats)) { foreach ($product_cats as $cat) { if (in_array($cat->slug, $min_commission_categories)) { $categories_found[$cat->slug] = true; } } } } // Calculate how many unique categories with minimum commission are in the order $num_min_commission_categories = count($categories_found); // Calculate minimum required admin commission based on categories $min_required_admin_commission = $num_min_commission_categories * 20; // If current admin commission is less than required minimum if ($admin_commission < $min_required_admin_commission) { // Adjust vendor commission to ensure minimum admin commission $vendor_commission = $order_total - $min_required_admin_commission; // Make sure vendor commission doesn't go negative if ($vendor_commission < 0) { $vendor_commission = 0; } } return $vendor_commission; }, 10, 3);
Editor is loading...
Leave a Comment