【问题标题】:Magento - Adminhtml - Default website in new customer formMagento - Adminhtml - 新客户表单中的默认网站
【发布时间】:2015-01-27 00:08:43
【问题描述】:

我正在为我的客户开发一个在线商店,我们的 Magento 设置中只有一个网站。

当我转到添加客户屏幕时,在管理面板中,在“关联到网站”字段中,我看到默认选择“管理员”。我希望我的网站默认在那里。

我认为一种可能的方法是编写一些代码: Mage_Adminhtml_Block_Customer_Edit_Tab_Account::initForm

【问题讨论】:

    标签: magento e-commerce


    【解决方案1】:

    最简洁的方法是在数据库中设置默认值。这根本不需要更改代码。

    UPDATE eav_attribute
    SET default_value = 1
    WHERE attribute_code = 'website_id'
    

    上面的示例 MySQL 语句将您的默认 website_id 设置为 1。

    【讨论】:

    • 我发现这对于我的网站来说是一个非常简单和干净的解决方案。它不涉及任何代码更改并解决了 OP 问题。唯一潜在的缺点是您似乎无法在 Magento Admin 中查看/修改此值,因此本质上这是一个“隐藏”的配置更改,这可能会使其他团队成员难以看到。跨度>
    • 超级干净。谢谢!
    【解决方案2】:

    或者您可以简单地编辑数组:

    Mage_Customer_Model_Customer_Attribute_Source_Website::getAllOptions()
    

    【讨论】:

      【解决方案3】:

      我从Lrrr's 答案中得到了提示,并在下拉列表中填充了仅用户添加的网站,即“请选择”和“管理员”不再作为选项可用,方法是添加以下行:

      $form->getElement('website_id')->setValues(Mage::getSingleton('adminhtml/system_store')->getWebsiteValuesForForm());
      

      在这个函数的最后:

      Mage_Adminhtml_Block_Customer_Edit_Tab_Account::initForm
      

      理想的方法当然是在自己的模块中覆盖上述函数,但在我们的例子中,覆盖上述类会与我们安装的另一个扩展产生冲突,所以我采取了这种方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-18
        • 2015-09-24
        • 1970-01-01
        • 2014-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多