gpt4 book ai didi

Magento:在管理运输模块中获取国家/地区的区域列表

转载 作者:行者123 更新时间:2023-12-01 23:25:38 25 4
gpt4 key购买 nike

目前在我的/etc/system.xml 文件中,我可以使用它来提取存储在 Magento 中的完整区域列表,并将它们显示为多选。这很好用,但是我更愿意只通过一个国家的地区,例如英国县或美国各州:

                    <counties translate="label">
<label>Counties</label>
<frontend_type>multiselect</frontend_type>
<sort_order>10</sort_order>
<source_model>adminhtml/system_config_source_allregion</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</counties>

原因是我在系统上添加了很多地区/州/县,现在不是一个非常用户友好的多选框。

更新:

在没有立即按照下面提供的解决方案采取行动后,我在一段时间后重新审视了这个问题,并根据所提供的答案提出了我自己的解决方案。

我将 app/code/core/Mage/Adminhtml/Model/System/Config/Source/Allregion.php 复制到 app/code/core/Mage/Adminhtml/Model/System/Config/Source/Ukregion.php

然后我将类定义更改为 Mage_Adminhtml_Model_System_Config_Source_Ukregion。

然后我改变了:

        $regionsCollection = Mage::getResourceModel('directory/region_collection')->load();

包括国家过滤器:

        $regionsCollection = Mage::getResourceModel('directory/region_collection')->addCountryFilter('GB')->load();

我现在得到了英国的县(我必须自己编辑,但这是一个不同的故事风格的 magento 问题)。

最后我更改了 system.xml:

                    <counties translate="label">
<label>Counties</label>
<frontend_type>multiselect</frontend_type>
<sort_order>10</sort_order>
<source_model>adminhtml/system_config_source_ukregion</source_model>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</counties>

使用“UK”而不是“GB”完全是故意的 - GB 不包括 NI 县,它只是出于“遗留原因”使用。 “英国”确实包括北爱尔兰,我的县名单也是如此。

最佳答案

查看页面系统 > 配置 > 运输设置,您可以重新创建它的区域如何调整以匹配所选国家/地区。

现在查看文件 app/code/core/Mage/Shipping/etc/system.xml。国家和地区字段如下所示:

<country_id translate="label">
<label>Country</label>
<frontend_type>select</frontend_type>
<frontend_class>countries</frontend_class>
<source_model>adminhtml/system_config_source_country</source_model>
<sort_order>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</country_id>
<region_id translate="label">
<label>Region/State</label>
<frontend_type>text</frontend_type>
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>0</show_in_store>
</region_id>

重要的部分是:

  • 该国家/地区有一个类 countries 和一个 ID 为 country_id
  • 该区域的 ID 为 region_id
  • 该区域不是选择区域,也没有源模型。

配置页面的 javascript 已经到位。它查找具有 countries 类的元素,并使用它的 ID 查找名称相似的元素(区域)。当第一个元素更改时,第二个元素由 AJAX 更新。

过去使用此功能时,当页面上有多个国家/地区对时,我有时会遇到麻烦,因此最好避免这种情况。

关于Magento:在管理运输模块中获取国家/地区的区域列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6355409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com