![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/give/src/ValueObjects/ |
<?php namespace Give\ValueObjects; use Give\Framework\Exceptions\Primitives\InvalidArgumentException; class DonorInfo implements ValueObjects { /** * WP user id. * Donor can be connect to WP user. if connect and donating after login as WP user then it set to logged in user id. * * @var string */ public $wpUserId; /** * Primary email. * * @var string */ public $email; /** * Donor address. * * @var Address */ public $address; /** * First name. * * @var string */ public $firstName; /** * Last name. * * @var string */ public $lastName; /** * Donor honorific. * * @var string */ public $honorific; /** * Take array and return object. * * @since 2.19.6 - fix update key validation with new variable to prevent removing not required keys like lastName * * @param $array * * @return DonorInfo */ public static function fromArray($array) { $expectedKeys = ['wpUserId', 'firstName', 'email', 'honorific', 'address']; $requiredKeys = array_intersect_key($array, array_flip($expectedKeys)); if (empty($requiredKeys)) { throw new InvalidArgumentException( 'Invalid DonorInfo object, must have the exact following keys: ' . implode(', ', $expectedKeys) ); } $donorInfo = new self(); foreach ($array as $key => $value) { $donorInfo->{$key} = $value; } // Cast address to Give\ValueObjects\Address object. if ( ! empty($array['address'])) { $donorInfo->address = Address::fromArray($array['address']); } return $donorInfo; } }