# give/4.16.1/src/DonorDashboards/Helpers/LocationList.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.1. 47 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.1/code/src/DonorDashboards/Helpers/LocationList.php
- Raw: https://pluginprobe.com/plugins/give/4.16.1/raw/src/DonorDashboards/Helpers/LocationList.php
- Modified: 2026-02-11T19:13:30+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.1/code/src/DonorDashboards/Helpers/LocationList.php#L10-L20`.

```php
<?php

namespace Give\DonorDashboards\Helpers;

/**
 * Normalize format of location type lists.
 * 4.14.1 Replaces FormatObjectList with formatAsValueLabelPairs
 * @since 2.10.0
 */
class LocationList
{
    public static function getCountries(): array
    {
        $countries = give_get_country_list();
        unset($countries['']);

        return self::formatAsValueLabelPairs($countries);
    }

    public static function getStates($country): array
    {
        $states = give_get_states($country);
        $states[''] = sprintf('%s...', esc_html__('Select', 'give'));

        return self::formatAsValueLabelPairs($states);
    }

    /**
     * Formats an associative array as an array of value/label pairs for JS consumption.
     *
     * 4.14.1
     */
    private static function formatAsValueLabelPairs(array $data): array
    {
        return array_map(
            static function ($key, $value) {
                return [
                    'value' => $key,
                    'label' => $value,
                ];
            },
            array_keys($data),
            array_values($data)
        );
    }
}

```
