Как получить ISO-код страны по названию страны в prestashop - PullRequest
0 голосов
/ 11 января 2019

Я создаю свой собственный модуль в prestashop 1.7, который предназначен для платежного шлюза и работает, когда создается кнопка оформления заказа и выбран мой платежный шлюз.

В этих плагинах мне нужно было использовать некоторые поля для каких-то целей, для этого мне нужно имя пользователя, телефон, электронная почта и код страны.

Я получаю имя пользователя, телефон и адрес электронной почты в следующих переменных:

$customerDetails = $this->context->customer;

$address = new Address($this->context->cart->id_address_delivery);

Я также получаю название страны и идентификатор страны, но мне нужен ISO-код страны. Я видел, что у prestashop есть таблица для этого в их базе данных, и у них также есть коды ISO, но я не могу найти какой-либо метод или рекомендуемый способ получить код ISO страны по названию страны или идентификатору страны.

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Это должно отлично работать, просто добавьте его в свой класс страны или любое другое место под своим кодом!

/**
* Get a country iso with its Name
*
* @param string $country_name Country Name
* @return string Country iso
*/
static public function getIsoByName($country_name)
{
    $sql='
    SELECT `id_country`
    FROM `'._DB_PREFIX_.'country_lang`
    WHERE `name` = "'.$country_name.'"';
    $result = Db::getInstance()->getRow($sql);
    $iso=Country::getIsoById($result['id_country']);
    return $iso;
}
0 голосов
/ 11 января 2019

Вы можете использовать метод Country Class public static function getIsoById($idCountry).

Так что вы можете сделать что-то вроде:

$country_iso = Country::getIsoById([THE_ID]);

...