HEX
Server: Apache
System: Linux vps-3158868-x.dattaweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: emerlux (1185)
PHP: 8.3.1
Disabled: system, shell, exec, system_exec, shell_exec, mysql_pconnect, passthru, popen, proc_open, proc_close, proc_nice, proc_terminate, proc_get_status, escapeshellarg, escapeshellcmd, eval
Upload Files
File: /home/emerlux/public_html/wp-content/plugins/woocommerce/src/Utilities/ShippingUtil.php
<?php
/**
 * ShippingUtil class file.
 */

declare( strict_types = 1 );
namespace Automattic\WooCommerce\Utilities;

/**
 * The ShippingUtil class provides utilities for working with shipping and shipping packages.
 */
class ShippingUtil {

	/**
	 * Get the selected shipping rates from the packages.
	 *
	 * @param array $packages The packages to get the selected shipping rates from.
	 * @return \WC_Shipping_Rate[] The selected shipping rates.
	 */
	public static function get_selected_shipping_rates_from_packages( $packages ) {
		return array_filter(
			array_map(
				function ( $package_id, $package ) {
					$selected_rate_id = wc_get_chosen_shipping_method_for_package( $package_id, $package );
					$selected_rate    = false !== $selected_rate_id && isset( $package['rates'][ $selected_rate_id ] ) ? $package['rates'][ $selected_rate_id ] : null;

					return $selected_rate instanceof \WC_Shipping_Rate ? $selected_rate : null;
				},
				array_keys( $packages ),
				array_values( $packages )
			)
		);
	}
}