DonorAddress.php
1 year ago
DonorMetaKeys.php
1 year ago
DonorNoteMetaKeys.php
1 year ago
DonorNoteType.php
1 year ago
DonorType.php
3 years ago
DonorMetaKeys.php
78 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Give\Donors\ValueObjects; |
| 4 | |
| 5 | use Give\Framework\Support\ValueObjects\Enum; |
| 6 | use Give\Framework\Support\ValueObjects\EnumInteractsWithQueryBuilder; |
| 7 | |
| 8 | /** |
| 9 | * @since 4.4.0 Add AVATAR_ID and COMPANY |
| 10 | * @since 2.19.6 |
| 11 | * |
| 12 | * @method static DonorMetaKeys FIRST_NAME() |
| 13 | * @method static DonorMetaKeys LAST_NAME() |
| 14 | * @method static DonorMetaKeys ADDITIONAL_EMAILS() |
| 15 | * @method static DonorMetaKeys ADDRESS_LINE1() |
| 16 | * @method static DonorMetaKeys ADDRESS_LINE2() |
| 17 | * @method static DonorMetaKeys ADDRESS_CITY() |
| 18 | * @method static DonorMetaKeys ADDRESS_STATE() |
| 19 | * @method static DonorMetaKeys ADDRESS_COUNTRY() |
| 20 | * @method static DonorMetaKeys ADDRESS_ZIP() |
| 21 | * @method static DonorMetaKeys PREFIX() |
| 22 | * @method static DonorMetaKeys AVATAR_ID() |
| 23 | * @method static DonorMetaKeys COMPANY() |
| 24 | */ |
| 25 | class DonorMetaKeys extends Enum |
| 26 | { |
| 27 | use EnumInteractsWithQueryBuilder; |
| 28 | |
| 29 | const FIRST_NAME = '_give_donor_first_name'; |
| 30 | const LAST_NAME = '_give_donor_last_name'; |
| 31 | const ADDITIONAL_EMAILS = 'additional_email'; |
| 32 | const ADDRESS_LINE1 = '_give_donor_address_billing_line1_'; |
| 33 | const ADDRESS_LINE2 = '_give_donor_address_billing_line2_'; |
| 34 | const ADDRESS_CITY = '_give_donor_address_billing_city_'; |
| 35 | const ADDRESS_STATE = '_give_donor_address_billing_state_'; |
| 36 | const ADDRESS_COUNTRY = '_give_donor_address_billing_country_'; |
| 37 | const ADDRESS_ZIP = '_give_donor_address_billing_zip_'; |
| 38 | const PREFIX = '_give_donor_title_prefix'; |
| 39 | const AVATAR_ID = '_give_donor_avatar_id'; |
| 40 | const COMPANY = '_give_donor_company'; |
| 41 | |
| 42 | /** |
| 43 | * @since 4.4.0 Remove address meta keys from columns |
| 44 | * @since 2.24.0 change function to remove ADDITIONAL_EMAILS from columns |
| 45 | * |
| 46 | * @return array |
| 47 | */ |
| 48 | public static function getColumnsForAttachMetaQueryWithoutExtraMetadata() |
| 49 | { |
| 50 | $columns = self::getColumnsForAttachMetaQuery(); |
| 51 | |
| 52 | $metaKeysToRemove = [ |
| 53 | self::ADDITIONAL_EMAILS, |
| 54 | self::ADDRESS_LINE1, |
| 55 | self::ADDRESS_LINE2, |
| 56 | self::ADDRESS_CITY, |
| 57 | self::ADDRESS_STATE, |
| 58 | self::ADDRESS_COUNTRY, |
| 59 | self::ADDRESS_ZIP, |
| 60 | ]; |
| 61 | |
| 62 | foreach ($metaKeysToRemove as $metaKey) { |
| 63 | $camelCaseKey = (new self($metaKey))->getKeyAsCamelCase(); |
| 64 | |
| 65 | foreach ($columns as $index => $column) { |
| 66 | if (is_array($column) && isset($column[1]) && $column[1] === $camelCaseKey) { |
| 67 | unset($columns[$index]); |
| 68 | break; |
| 69 | } |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | $columns = array_values($columns); |
| 74 | |
| 75 | return $columns; |
| 76 | } |
| 77 | } |
| 78 |