oont-contents/plugins/google-listings-and-ads/src/Shipping/LocationRate.php
2025-02-08 15:10:23 +01:00

66 lines
1.2 KiB
PHP

<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Shipping;
use JsonSerializable;
defined( 'ABSPATH' ) || exit;
/**
* Class LocationRate
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Shipping
*
* @since 2.1.0
*/
class LocationRate implements JsonSerializable {
/**
* @var ShippingLocation
*/
protected $location;
/**
* @var ShippingRate
*/
protected $shipping_rate;
/**
* LocationRate constructor.
*
* @param ShippingLocation $location
* @param ShippingRate $shipping_rate
*/
public function __construct( ShippingLocation $location, ShippingRate $shipping_rate ) {
$this->location = $location;
$this->shipping_rate = $shipping_rate;
}
/**
* @return ShippingLocation
*/
public function get_location(): ShippingLocation {
return $this->location;
}
/**
* @return ShippingRate
*/
public function get_shipping_rate(): ShippingRate {
return $this->shipping_rate;
}
/**
* Specify data which should be serialized to JSON
*/
public function jsonSerialize(): array {
$rate_serialized = $this->shipping_rate->jsonSerialize();
return array_merge(
$rate_serialized,
[
'country' => $this->location->get_country(),
]
);
}
}