Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有与Magento兼容的国家/地区代码列表?_Magento_Sms_Country Codes - Fatal编程技术网

是否有与Magento兼容的国家/地区代码列表?

是否有与Magento兼容的国家/地区代码列表?,magento,sms,country-codes,Magento,Sms,Country Codes,正在查找国家代码列表,以呼叫或发送Magento core中指定的国家/地区。以下是短名称代码和相应国家/地区代码的完整列表。以PHP数组格式列出,因此您应该能够在循环中使用它,以便以任何其他方式进行格式化 也可内联(长): 您可以使用目录模块获取国家/地区列表 下面是代码 Mage::getResourceModel('directory/country_collection') ->load()->toOptionArray(); 我想与大家分享如何使用Ma

正在查找国家代码列表,以呼叫或发送Magento core中指定的国家/地区。

以下是短名称代码和相应国家/地区代码的完整列表。以PHP数组格式列出,因此您应该能够在循环中使用它,以便以任何其他方式进行格式化

也可内联(长):


您可以使用目录模块获取国家/地区列表 下面是代码

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