是否有与Magento兼容的国家/地区代码列表?
正在查找国家代码列表,以呼叫或发送Magento core中指定的国家/地区。以下是短名称代码和相应国家/地区代码的完整列表。以PHP数组格式列出,因此您应该能够在循环中使用它,以便以任何其他方式进行格式化 也可内联(长):是否有与Magento兼容的国家/地区代码列表?,magento,sms,country-codes,Magento,Sms,Country Codes,正在查找国家代码列表,以呼叫或发送Magento core中指定的国家/地区。以下是短名称代码和相应国家/地区代码的完整列表。以PHP数组格式列出,因此您应该能够在循环中使用它,以便以任何其他方式进行格式化 也可内联(长): 您可以使用目录模块获取国家/地区列表 下面是代码 Mage::getResourceModel('directory/country_collection') ->load()->toOptionArray(); 我想与大家分享如何使用Ma
您可以使用目录模块获取国家/地区列表 下面是代码
Mage::getResourceModel('directory/country_collection')
->load()->toOptionArray();
我想与大家分享如何使用Magento内置功能获取国家/地区到电话的代码映射
$countryPhoneMapping = Mage::app()
->getLocale()->getTranslationList('territorytophone');
var_dump($countryPhoneMapping); //something like array( 'AC' => 247, 'AD' => '376', ... )
注意:数据取自lib/Zend/Locale/data/telephoneCodeData.xml文件。或许需要提及的是,该列表将不包含任何4位电话号码。但对我来说,这已经足够了
在我的例子中,我必须在Magento后端的系统->配置->常规->国家选项->允许的国家/地区下的下拉列表中仅显示选定国家/地区的电话代码
function country2phoneMapping() {
$options = array();
$allowedCountries = Mage::getModel('directory/country')
->getResourceCollection()
->loadByStore()
->toOptionArray();
$countryPhoneMapping = Mage::app()->getLocale()
->getTranslationList('territorytophone');
foreach( $allowedCountries as $value => $label ) { // e.g. DE => Germany
foreach( $countryPhoneMapping as $number => $territory ) { // e.g 49 => DE
if ( strpos( $territory, $value ) !== false ) {
$options[$value] = '+' . $number;
}
}
}
return $options;
}
问题是关于打电话或发短信的国家号码,也许我在这个问题上说得不够清楚。但我自己回答的事实应该给你一些线索,这是给谷歌的,不是给我的由于流浪谷歌的额外信息价值,将进行投票。:)好吧,那太糟糕了。至少对我来说。另外,我的数组似乎在那些有4位或更多数字的国家有问题,我现在记不清从哪里得到信息了。可能添加的数字代表移动运营商代码,因为这是我发送信息的主要用途。很好的发现,感谢分享完整的后端选项方法。:)另外
Mage::app()->getLocale()->getTranslationList('phonetoterritory')
返回基于[country\u code=>phone\u code]的数组。
function country2phoneMapping() {
$options = array();
$allowedCountries = Mage::getModel('directory/country')
->getResourceCollection()
->loadByStore()
->toOptionArray();
$countryPhoneMapping = Mage::app()->getLocale()
->getTranslationList('territorytophone');
foreach( $allowedCountries as $value => $label ) { // e.g. DE => Germany
foreach( $countryPhoneMapping as $number => $territory ) { // e.g 49 => DE
if ( strpos( $territory, $value ) !== false ) {
$options[$value] = '+' . $number;
}
}
}
return $options;
}