情况:以访客身份结帐(数据库中没有客户帐单邮寄地址)。
问题:如何使用来自网址或会话的变量自动填写帐单邮寄地址表单?
对我来说完美的解决方案是:
尽可能少地改变,例如在这个文件
应用程序/设计/前端/默认/ my_theme_name /模板/持久性/结帐/ onepage / billing.phtml
以这种方式访问变量
$这 - >的getAddress() - >的getName();
我的临时解决方案:
/* array comes from url or session */
$myAddress = array (
'firstname' => 'John',
'lastname' => 'Smith',
'street' => array (
'0' => '1st Street',
'1' => '2056',
),
'city' => 'Maspeth',
'region_id' => '',
'region' => '',
'postcode' => 'NY11378',
'country_id' => 'US',
'telephone' => '0017183209872'
);
$customAddress = Mage::getModel('customer/address');
$customAddress->setData($myAddress);
/* $this = Mage_Checkout_Block_Onepage_Billing */
$this
->setBillingAddress(Mage::getSingleton('sales/quote_address')
->importCustomerAddress($customAddress));
/* insert value into input field */
echo $this->getBillingAddress()->getName();
答案 0 :(得分:1)
$this
->setBillingAddress(Mage::getSingleton('sales/quote_address')
->importCustomerAddress($customAddress));
这里不要使用"$this"
它必须是一个Quote对象(Mage_Sales_Model_Quote
)而不是一个Billing Block(Mage_Checkout_Block_Onepage_Billing
)。使用$this->getQuote()
。