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

65 lines
1.4 KiB
PHP

<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\Google;
use Automattic\WooCommerce\GoogleListingsAndAds\Vendor\Google\Service\ShoppingContent\Product as GoogleProduct;
use JsonSerializable;
defined( 'ABSPATH' ) || exit;
/**
* Class BatchProductEntry
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\Google
*/
class BatchProductEntry implements JsonSerializable {
/**
* @var int WooCommerce product ID.
*/
protected $wc_product_id;
/**
* @var GoogleProduct|null The inserted product. Only defined if the method is insert.
*/
protected $google_product;
/**
* BatchProductEntry constructor.
*
* @param int $wc_product_id
* @param GoogleProduct|null $google_product
*/
public function __construct( int $wc_product_id, ?GoogleProduct $google_product = null ) {
$this->wc_product_id = $wc_product_id;
$this->google_product = $google_product;
}
/**
* @return int
*/
public function get_wc_product_id(): int {
return $this->wc_product_id;
}
/**
* @return GoogleProduct|null
*/
public function get_google_product(): ?GoogleProduct {
return $this->google_product;
}
/**
* @return array
*/
public function jsonSerialize(): array {
$data = [ 'woocommerce_id' => $this->get_wc_product_id() ];
if ( null !== $this->get_google_product() ) {
$data['google_id'] = $this->get_google_product()->getId();
}
return $data;
}
}