当前位置: 首页>>建站开发>>正文


如何从结帐页面中删除客户中间名/姓名?

webfans 建站开发 , , 去评论

问题描述

自升级到Magento的最新版本以来,我注意到在结帐页面上出现了一个新条目,要求客户使用中间名/初始名称。

如何从结帐页面中删除“中间名/初始”条目?

最佳解决办法

Magento 1.9.2.1更新如何影响中间名

首先,解决方案

从Magento CE 1.9.2.0更新到Magento CE 1.9.2.1时遇到了同样的问题。更新导致显示中间名,但当我检查管理员System > Configuration > Customers > Customer Configuration > Name and Address Options时,“显示中间名(初始)”设置已经显示”No” – 这就是我想要的。我将设置更改为”Yes”,然后在单击”Save Config”之前返回到”No”,并在刷新页面时立即从Checkout中删除了Middle Name /Initial。

数据库

就我而言,我正在努力将商店从Magento 1.8.x更新为Magento 1.9.x.在我的开发环境中,我从1.9.2.0更新到1.9.2.1。为了在我们从1.8.x升级到1.9.x时获取实时站点up-to-date,我们需要更新许多管理设置,我们计划直接在数据库中使用查询进行操作。在数据库中,您可以看到Magento如何更改“中间名”设置。

显示的管理员设置可能会产生误导

表“core_config_data”处理“显示中间名(初始)的管理设置”,其中记录为`core_config_data`.`path`='customer/address/middlename_show'

该记录保存`value`字段中的设置(0 = “No”,1 = “Yes”)。通过升级到Magento CE 1.9.2.1显示中间名时,不会更改此字段。如果在更新到1.9.2.1期间Magento进行更改后,在管理设置中保存对“显示中间名(初始)”的更改,则会在此处更改“core_config_data”值。

对1.9.2.1的更新没有更改“core_config_data”上的记录,因此更改了管理设置中显示的内容。但是,更新确实会更改不同表的不同记录。

实际的中间名称可见性在“customer_eav_attribute”中

在我的Magento的许多开发实例中,表’eav_attribute`有2个”middlename”`attribute_code`(s),`attribute_id`(s)是6和21.`customer_eav_attribute`表用字段设置属性的可见性` is_visible`。

  • 在我的live 1.8.x环境中,`attribute_id`(s)6和21有`is_visible` = 0

  • 在从Magento CE 1.9.2.0更新开发到Magento CE 1.9.2.1之后,它变成了`is_visible` = 1

  • 在我切换并将管理员“显示中间名(初始)”再次保存到”No”,`is_visible`=0后,中间名/初始字段从Checkout中消失。

总结

Magento CE 1.9.2.1更新翻转了“customer_eav_attribute”表中的“中间名”设置,而不影响“显示中间名(初始)”设置下Magento管理员显示的内容。您可以通过切换“显示中间名(初始)”设置,在管理员中正常调整设置的方式进行修复,而无需进行远程模板调整。

边注

如果由于某种原因,您需要将此管理设置转移到商店的多个副本或一批管理更新中,例如在升级商店以匹配开发环境时…您可以使用以下SQL语句进行此设置(如果您知道”middlename”在您的商店中是`attribute_id` 6和21.这是Magento的标准,但为了安全起见,double-check首先是你的’eav_attribute`表。)。

UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);

次佳解决办法

技术答案

系统配置选项有一个后端模型(Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer),其_afterSave方法在客户EAV属性中进行相同的更改(表:customer_eav_attribute)。

系统配置选项值和EAV属性is_visible值可能不一定是同步的(因为Magento升级,如果配置选项以编程方式更改,或任何其他原因)。

将交换机翻转几次会修复它,或者,如果您像我一样并使用安装/升级脚本来执行所有操作,则可以执行以下操作:

Mage::getModel('core/config')
    ->saveConfig('customer/address/middlename_show', 0);    

try {

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer', 'middlename')
        ->setIsVisible(0)
        ->save();

    $attribute = Mage::getSingleton('eav/config')
        ->getAttribute('customer_address', 'middlename')
        ->setIsVisible(0)
        ->save();

} catch (Exception $e) {
    Mage::logException($e);
    throw $e;
}

第三种解决办法

最简单的方法:

Magento ver。 1.9.2.1

System > Configuration > Customers > Customer configuration > Name and Address Options

Show Middle Name (initial) = No

checkout,customer,magento

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/3024.html,转载请务必附带本地址声明。