簡體   English   中英

如何在Prestashop中按國家名稱獲取國家ISO代碼

[英]How to get country iso code by country name in prestashop

我正在prestashop 1.7中創建自己的模塊,該模塊用於支付網關,並且在創建結帳按鈕並選擇了我的支付網關時可以正常工作。

在這些插件中,我需要一些字段以用於某些目的,因為我需要用戶名,電話,電子郵件和國家/地區代碼。

我在這些變量中獲取用戶名,電話和電子郵件:

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

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

我也要獲取國家名稱和國家/地區ID,但我需要的是國家/地區ISO代碼。 我看到prestashop在他們的數據庫中有它的表,並且它們也有ISO代碼,但是我找不到任何方法或推薦的方法來按國家名稱或國家ID獲取國家ISO代碼。

您可以使用Country Class方法public static function getIsoById($idCountry)

因此,您可以執行以下操作:

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

這應該可以完美地工作,只需將其添加到您的國家/地區代碼中或您代碼中的任何其他位置即可!

/**
* 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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM