输出街1和2 Magento街
如何获取街道地址1和街道地址2的值。我创建了一个扩展,我想获得Magento中的街道地址。在块中,我具有以下功能:输出街1和2 Magento街,magento,magento-1.7,magento-1.9,Magento,Magento 1.7,Magento 1.9,如何获取街道地址1和街道地址2的值。我创建了一个扩展,我想获得Magento中的街道地址。在块中,我具有以下功能: public function updateFormData() { $data = $this->getData('form_data'); if (is_null($data)) { /** @var array $formData */ $formData = Mage::getSingleton('customer/se
public function updateFormData() {
$data = $this->getData('form_data');
if (is_null($data)) {
/** @var array $formData */
$formData = Mage::getSingleton('customer/session')->getCustomerFormData(true);
$order = $this->getOrder();
$address = $order->getShippingAddress();
$customerData = [
'email' => $order->getCustomerEmail(),
'firstname' => $order->getCustomerFirstname(),
'lastname' => $order->getCustomerLastname(),
'city' => $order->getBillingAddress()->getCity(),
'country' => $order->getBillingAddress()->getCountry(),
'telephone' => $order->getBillingAddress()->getTelephone(),
'company' => $order->getBillingAddress()->getCompany(),
];
$data = new Varien_Object();
if ($formData) {
$data->addData($formData);
$data->setCustomerData(1);
}
$data->addData($customerData);
if (isset($data['region_id'])) {
$data['region_id'] = (int)$data['region_id'];
}
$this->setData('form_data', $data);
}
return $data;
}
在phtml文件中,我添加了以下内容:
<?php $_streetValidationClass = $this->helper('customer/address')->getAttributeValidationClass('street'); ?>
<li class="wide">
<label for="street_1" class="required"><em>*</em><?php echo $this->__('Street Address') ?></label>
<div class="input-box">
<input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet(1)) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Street Address')) ?>" id="street_1" class="input-text <?php echo $_streetValidationClass ?>" />
</div>
</li>
<?php $_streetValidationClass = trim(str_replace('required-entry', '', $_streetValidationClass)); ?>
<?php for ($_i = 2, $_n = $this->helper('customer/address')->getStreetLines(); $_i <= $_n; $_i++): ?>
<li class="wide">
<div class="input-box">
<input type="text" name="street[]" value="<?php echo $this->escapeHtml($this->getFormData()->getStreet($_i)) ?>" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Street Address %s', $_i)) ?>" id="street_<?php echo $_i ?>" class="input-text <?php echo $_streetValidationClass ?>" />
</div>
</li>
<?php endfor; ?>
$order->getBillingAddress()->getData('street')
将返回一个数组。因此,您可以通过以下方式访问数据:
$billingStreet = $order->getBillingAddress()->getData('street');
$billingStreet1 = $billingStreet[0];
$billingStreet2 = $billingStreet[1];
$billingStreet3 = $billingStreet[2];
编辑:上面的代码是获取订单的账单地址,我认为您现在想要的实际上是新地址,表单中的数据集。因此,只要您将它放在$data=new Varien_Object()之前,它就会为您提供所需的信息代码>行:
$streetArray = $data['street'];
$street1 = $streetArray[0];
$street2 = $streetArray[1];
因此,您的功能将是:
public function updateFormData() {
$data = $this->getData('form_data');
if (is_null($data)) {
/** @var array $formData */
$formData = Mage::getSingleton('customer/session')->getCustomerFormData(true);
$order = $this->getOrder();
$address = $order->getShippingAddress();
$streetArray = $data['street'];
$street1 = $streetArray[0];
$street2 = $streetArray[1];
$customerData = [
'email' => $order->getCustomerEmail(),
'firstname' => $order->getCustomerFirstname(),
'lastname' => $order->getCustomerLastname(),
'city' => $order->getBillingAddress()->getCity(),
'country' => $order->getBillingAddress()->getCountry(),
'telephone' => $order->getBillingAddress()->getTelephone(),
'company' => $order->getBillingAddress()->getCompany(),
'street_1' => $street1,
'street_2' => $street2
];
$data = new Varien_Object();
if ($formData) {
$data->addData($formData);
$data->setCustomerData(1);
}
$data->addData($customerData);
if (isset($data['region_id'])) {
$data['region_id'] = (int)$data['region_id'];
}
$this->setData('form_data', $data);
}
return $data;
}
$order->getBillingAddress()->getData('street')
将返回一个数组。
因此,您可以通过以下方式访问数据:
$billingStreet = $order->getBillingAddress()->getData('street');
$billingStreet1 = $billingStreet[0];
$billingStreet2 = $billingStreet[1];
$billingStreet3 = $billingStreet[2];
编辑:上面的代码是获取订单的账单地址,我认为您现在想要的实际上是新地址,表单中的数据集。因此,只要您将它放在$data=new Varien_Object()之前,它就会为您提供所需的信息代码>行:
$streetArray = $data['street'];
$street1 = $streetArray[0];
$street2 = $streetArray[1];
因此,您的功能将是:
public function updateFormData() {
$data = $this->getData('form_data');
if (is_null($data)) {
/** @var array $formData */
$formData = Mage::getSingleton('customer/session')->getCustomerFormData(true);
$order = $this->getOrder();
$address = $order->getShippingAddress();
$streetArray = $data['street'];
$street1 = $streetArray[0];
$street2 = $streetArray[1];
$customerData = [
'email' => $order->getCustomerEmail(),
'firstname' => $order->getCustomerFirstname(),
'lastname' => $order->getCustomerLastname(),
'city' => $order->getBillingAddress()->getCity(),
'country' => $order->getBillingAddress()->getCountry(),
'telephone' => $order->getBillingAddress()->getTelephone(),
'company' => $order->getBillingAddress()->getCompany(),
'street_1' => $street1,
'street_2' => $street2
];
$data = new Varien_Object();
if ($formData) {
$data->addData($formData);
$data->setCustomerData(1);
}
$data->addData($customerData);
if (isset($data['region_id'])) {
$data['region_id'] = (int)$data['region_id'];
}
$this->setData('form_data', $data);
}
return $data;
}
谢谢,value=”“,意思是blank之前的leike是相同的吗?请告诉我$customerData=[]中的公共函数的外观如何?我只是问你如何将你的条件放入我的代码中?我需要把你的代码放在哪里来解决street值?谢谢你OSdave的帮助,请看这里第二个地址行没有值,但在第一个地址行中都是address:street_1:value=“address1 address2”我更新了我的帖子并将我的输出放在那里,你可以看到street_2的值是空白street_2,对于street_2的值=“谢谢,是相同的leike before value=”“,意思是空白请告诉我$customerData=[]中的公共函数中的这个是什么样子?我只是问你如何在我的代码中输入你的条件?我需要把你的代码放在哪里来解决street值?谢谢你OSdave的帮助,请看这里第二个地址行没有值,但在第一个地址行中都是address:street_1:value=“address1 address2”我更新了我的帖子并将我的输出放在那里,您可以看到street_2的值为空street_2,street_2的值为=“”