脚本宝典收集整理的这篇文章主要介绍了php – 如何在Magento One Page Checkout中添加额外的字段“下拉列表”,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这是Customer的Dropdown-list属性.
应在结帐页面(客户作为客人/现有用户)显示客户帐户页面,客户帐户创建/注册页面,管理客户编辑页面.
我已经检查billing.phtML文件,因为其他属性是静态写的,但我不知道如何写在billing.phtml中的自定义属性作为其下拉列表.以及哪些其他文件需要更新才能查看此属性.
请让我知道我在做错什么,或者在我的代码中添加任何其他东西.
任何指导都不胜感激.
以下是我的代码 –
文件名 – /app/code/local/PS/PB/etc/config.XMl
<?xml version="1.0"?> <config> <modules> <PS_PB> <version>0.1.0</version> </PS_PB> </modules> <global> <helPErs> <pb> <class>PS_PB_Helper</class> </pb> </helpers> <models> <pb> <class>PS_PB_Model</class> <resourceModel>pb_MysqL4</resourceModel> </pb> </models> <resources> <customerattribute1462360584_SETUP> <setup> <module>PS_P</module> <class>Mage_Customer_Model_EntITy_Setup</class> </setup> <connection> <use>core_setup</use> </connection> </customerattribute1462360584_setup> <customerattribute1462360584_write> <connection> <use>core_write</use> </connection> </customerattribute1462360584_write> <customerattribute1462360584_read> <connection> <use>core_read</use> </connection> </customerattribute1462360584_read> </resources> </global> </config>
文件 – /app/code/local/PS/PB/Helper/Data.PHP
<?PHP class PS_PB_Helper_Data extends Mage_Core_Helper_Abstract { }
文件 – /app/code/local/PS/PB/Model/Eav/Entity/Attribute/Source/Customeroptions14623605840.PHP
<?PHP class PS_PB_Model_Eav_Entity_Attribute_Source_Customeroptions14623605840 extends Mage_Eav_Model_Entity_Attribute_Source_Abstract { /** * Retrieve all options array * * @return array */ public function getAllOptions() { if (is_null($this->_options)) { $this->_options = array( array( "label" => Mage::helper("eav")->__("End Consumer / DIY"),"value" => 1 ),array( "label" => Mage::helper("eav")->__("Service Technician"),"value" => 2 ),array( "label" => Mage::helper("eav")->__("Other PRofessional"),"value" => 3 ),); } return $this->_options; } /** * Retrieve option array * * @return array */ public function getOptionArray() { $_options = array(); foreach ($this->getAllOptions() as $option) { $_options[$option["value"]] = $option["label"]; } return $_options; } /** * Get a text for option value * * @param string|integer $value * @return string */ public function getOptionText($value) { $options = $this->getAllOptions(); foreach ($options as $option) { if ($option["value"] == $value) { return $option["label"]; } } return false; } /** * Retrieve Column(s) for Flat * * @return array */ public function getFlatColums() { $columns = array(); $columns[$this->getAttribute()->getAttributeCode()] = array( "type" => "tinyint(1)","unsigned" => false,"is_null" => true,"default" => null,"extra" => null ); return $columns; } /** * Retrieve Indexes(s) for Flat * * @return array */ public function getFlatIndexes() { $indexes = array(); $index = "IDX_" . strtoupper($this->getAttribute()->getAttributeCode()); $indexes[$index] = array( "type" => "index","fields" => array($this->getAttribute()->getAttributeCode()) ); return $indexes; } /** * Retrieve Select For Flat Attribute update * * @param int $Store * @return VARien_Db_Select|null */ public function getFlatUpdateSelect($store) { return Mage::getResourceModel("eav/entity_attribute") ->getFlatUpdateSelect($this->getAttribute(),$store); } }
文件 – / app / code / local / PS / PB / sql / customerattribute1462360584_setup
<?PHP $installer = $this; $installer->startSetup(); $installer->addAttribute("customer_address","cstpb",array( "type" => "int","backend" => "","label" => "Primary Business","input" => "select","source" => "pb/eav_entity_attribute_source_customeroptions14623605840","visible" => true,"required" => true,"default" => "","frontend" => "","unique" => false,"note" => "" )); $attribute = Mage::getSingleton("eav/config")->getAttribute("customer_address","cstpb"); $used_in_forms=array(); $used_in_forms[]="adminhtml_customer"; $used_in_forms[]="checkout_register"; $used_in_forms[]="customer_account_create"; $used_in_forms[]="customer_account_edit"; $used_in_forms[]="adminhtml_checkout"; $used_in_forms[]="adminhtml_customer_address"; $used_in_forms[]="customer_register_address"; $used_in_forms[]="customer_address_edit"; $attribute->setData("used_in_forms",$used_in_forms) ->setData("is_used_for_customer_segment",true) ->setData("is_system",0) ->setData("is_user_defined",1) ->setData("is_visible",1) ->setData("sort_order",100) ; $attribute->save(); $installer->endSetup();
XML文件 – /app/etc/modules/PS_PB.xml
<?xml version="1.0"?> <config> <modules> <PS_PB> <active>true</active> <codePool>local</codePool> <version>0.1.0</version> </PS_PB> </modules> </config>
更新
现在该属性显示结帐页面和管理客户页面和客户我的帐户部分,但在本节中.我无法更新.需要在config.xml中添加哪些字段fot customer_account标签.
<customer_account> <primary_business> <create>1</create> <update>1</update> </primary_business> </customer_account>
首先,确保您的安装脚本正在执行.
第二,
您可以通过导航到客户>通过管理员创建“客户属性”属性>管理属性
http://awesomescreenshot.com/0b35uq1542
Magento应该在配置的区域中显示您的属性,如果它的行为方式应该.我建议您先手动创建属性并查看是否显示.如果不是,您的主题或其他扩展可能会覆盖负责呈现这些属性的代码.
一旦你知道主题是渲染你想要的,你想要的,你可以创建一个沙盒脚本来加载属性并获取数据.查看“管理员”创建的属性数据通常会显示我错过的内容.
这样的事情
<?PHP require_once('app/Mage.PHP'); Mage::app()->setcurrentStore('0'); $attribute_id = 9999; // YOU ADMIN CREATED ATTRIBUTE ID $attributeModel = Mage::getModel('eav/attribute')->load($attribute_id); var_dump($attributeModel->getData());
以上是脚本宝典为你收集整理的php – 如何在Magento One Page Checkout中添加额外的字段“下拉列表”全部内容,希望文章能够帮你解决php – 如何在Magento One Page Checkout中添加额外的字段“下拉列表”所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。