HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/www/wp-content/plugins/give/src/DonorDashboards/Helpers/LocationList.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)
        );
    }
}