توضیحات
نوک هویه 40 وات
add_filter('woocommerce_package_rates', 'asc_modify_shipping_costs_by_category', 100, 2); function asc_modify_shipping_costs_by_category($rates, $package) { $shipping_costs = get_option('asc_shipping_costs', []); $special_cats = get_option('asc_special_categories', []); if (!$shipping_costs || !is_array($shipping_costs)) return $rates; $cart_cats = []; foreach ($package['contents'] as $item) { $terms = get_the_terms($item['product_id'], 'product_cat'); if ($terms && !is_wp_error($terms)) { foreach ($terms as $term) { $cart_cats[] = $term->slug; } } } $cart_cats = array_unique($cart_cats); $special_in_cart = array_intersect($cart_cats, $special_cats); $normal_in_cart = array_diff($cart_cats, $special_cats); foreach ($rates as $rate_id => $rate) { $total_cost = 0; $method_slug = false; foreach ($shipping_costs as $cat => $cost_data) { foreach ($cost_data as $method => $price) { if (strpos($rate_id, $method) !== false) { $method_slug = $method; } } } if (!$method_slug) continue; // هزینه دسته خاص + بیشترین هزینه از سایر دستهها $special_total = 0; $normal_max = 0; foreach ($special_in_cart as $cat) { if (isset($shipping_costs[$cat][$method_slug])) { $special_total += floatval($shipping_costs[$cat][$method_slug]); } } foreach ($normal_in_cart as $cat) { if (isset($shipping_costs[$cat][$method_slug])) { $normal_max = max($normal_max, floatval($shipping_costs[$cat][$method_slug])); } } $total_cost = $special_total + $normal_max; if ($total_cost > 0) { $rates[$rate_id]->cost = $total_cost; $rates[$rate_id]->taxes = false; } } return $rates; }
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.