我正在prestashop 1.7中创建自己的模块,该模块用于支付网关,并且在创建结帐按钮并选择了我的支付网关后可以正常工作。
在这些插件中,我需要一些字段以用于某些目的,因为我需要用户名,电话,电子邮件和国家/地区代码。
我在这些变量中得到了用户名,电话和电子邮件:
$customerDetails = $this->context->customer;
$address = new Address($this->context->cart->id_address_delivery);
我也要获取国家/地区名称和国家/地区ID,但我需要的是国家/地区ISO代码。我看到prestashop在他们的数据库中有它的表,并且它们也有ISO代码,但是我找不到任何方法或推荐的方法来按国家名称或国家ID获取国家ISO代码。
答案 0 :(得分:0)
您可以使用Country
类方法public static function getIsoById($idCountry)
。
因此您可以执行以下操作:
$country_iso = Country::getIsoById([THE_ID]);
答案 1 :(得分:0)
此代码应该可以完美运行,只需将其添加到您的国家/地区代码中或您代码中的其他任何地方!
/**
* 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;
}