mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2026-08-04 03:40:45 +08:00
190 lines
4.4 KiB
PHP
190 lines
4.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* The payer object.
|
|
*
|
|
* @package WooCommerce\PayPalCommerce\ApiClient\Entity
|
|
*/
|
|
declare (strict_types=1);
|
|
namespace WooCommerce\PayPalCommerce\ApiClient\Entity;
|
|
|
|
use DateTime;
|
|
/**
|
|
* Class Payer
|
|
* The customer who sends the money.
|
|
*/
|
|
class Payer
|
|
{
|
|
/**
|
|
* The name.
|
|
*
|
|
* @var PayerName|null
|
|
*/
|
|
private $name;
|
|
/**
|
|
* The email address.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $email_address;
|
|
/**
|
|
* The payer id.
|
|
*
|
|
* @var string
|
|
*/
|
|
private $payer_id;
|
|
/**
|
|
* The birth date.
|
|
*
|
|
* @var DateTime|null
|
|
*/
|
|
private $birthdate;
|
|
/**
|
|
* The address.
|
|
*
|
|
* @var Address|null
|
|
*/
|
|
private $address;
|
|
/**
|
|
* The phone.
|
|
*
|
|
* @var PhoneWithType|null
|
|
*/
|
|
private $phone;
|
|
/**
|
|
* The tax info.
|
|
*
|
|
* @var PayerTaxInfo|null
|
|
*/
|
|
private $tax_info;
|
|
/**
|
|
* Payer constructor.
|
|
*
|
|
* @param PayerName|null $name The name.
|
|
* @param string $email_address The email.
|
|
* @param string $payer_id The payer id.
|
|
* @param Address|null $address The address.
|
|
* @param DateTime|null $birthdate The birth date.
|
|
* @param PhoneWithType|null $phone The phone.
|
|
* @param PayerTaxInfo|null $tax_info The tax info.
|
|
*/
|
|
public function __construct(?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName $name, string $email_address, string $payer_id, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\Address $address = null, ?DateTime $birthdate = null, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PhoneWithType $phone = null, ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerTaxInfo $tax_info = null)
|
|
{
|
|
$this->name = $name;
|
|
$this->email_address = $email_address;
|
|
$this->payer_id = $payer_id;
|
|
$this->birthdate = $birthdate;
|
|
$this->address = $address;
|
|
$this->phone = $phone;
|
|
$this->tax_info = $tax_info;
|
|
}
|
|
/**
|
|
* Returns the name.
|
|
*
|
|
* @return PayerName|null
|
|
*/
|
|
public function name(): ?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName
|
|
{
|
|
return $this->name;
|
|
}
|
|
/**
|
|
* Sets the name.
|
|
*
|
|
* @param PayerName|null $name The value.
|
|
*/
|
|
public function set_name(?\WooCommerce\PayPalCommerce\ApiClient\Entity\PayerName $name): void
|
|
{
|
|
$this->name = $name;
|
|
}
|
|
/**
|
|
* Returns the email address.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function email_address(): string
|
|
{
|
|
return $this->email_address;
|
|
}
|
|
/**
|
|
* Returns the payer id.
|
|
*
|
|
* @return string
|
|
*/
|
|
public function payer_id(): string
|
|
{
|
|
return $this->payer_id;
|
|
}
|
|
/**
|
|
* Returns the birth date.
|
|
*
|
|
* @return DateTime|null
|
|
*/
|
|
public function birthdate()
|
|
{
|
|
return $this->birthdate;
|
|
}
|
|
/**
|
|
* Returns the address.
|
|
*
|
|
* @return Address|null
|
|
*/
|
|
public function address()
|
|
{
|
|
return $this->address;
|
|
}
|
|
/**
|
|
* Sets the address.
|
|
*
|
|
* @param Address|null $address The value.
|
|
*/
|
|
public function set_address(?\WooCommerce\PayPalCommerce\ApiClient\Entity\Address $address): void
|
|
{
|
|
$this->address = $address;
|
|
}
|
|
/**
|
|
* Returns the phone.
|
|
*
|
|
* @return PhoneWithType|null
|
|
*/
|
|
public function phone()
|
|
{
|
|
return $this->phone;
|
|
}
|
|
/**
|
|
* Returns the tax info.
|
|
*
|
|
* @return PayerTaxInfo|null
|
|
*/
|
|
public function tax_info()
|
|
{
|
|
return $this->tax_info;
|
|
}
|
|
/**
|
|
* Returns the object as array.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function to_array()
|
|
{
|
|
$payer = array('email_address' => $this->email_address());
|
|
if ($this->name) {
|
|
$payer['name'] = $this->name->to_array();
|
|
}
|
|
if ($this->address && 2 === strlen($this->address->country_code())) {
|
|
$payer['address'] = $this->address->to_array();
|
|
}
|
|
if ($this->payer_id) {
|
|
$payer['payer_id'] = $this->payer_id;
|
|
}
|
|
if ($this->phone) {
|
|
$payer['phone'] = $this->phone->to_array();
|
|
}
|
|
if ($this->tax_info) {
|
|
$payer['tax_info'] = $this->tax_info->to_array();
|
|
}
|
|
if ($this->birthdate) {
|
|
$payer['birth_date'] = $this->birthdate->format('Y-m-d');
|
|
}
|
|
return $payer;
|
|
}
|
|
}
|