We need to select option for radio button shipping and billing address on checkout page. How to change this?
1 Answer
Step1: Copy the following file to local folder.
app/code/core/Mage/Checkout/Block/Onepage/Abstract.php
Open this file and goto line :135
Remove the following lines
$select = $this->getLayout()->createBlock('core/html_select')
->setName($type.'_address_id')
->setId($type.'-address-select')
->setClass('address-select')
->setExtraParams('onchange="'.$type.'.newAddress(!this.value)"')
->setValue($addressId)
->setOptions($options);
$select->addOption('', Mage::helper('checkout')->__('New Address'));
And Add the below line of code
$select = $this->getLayout()->createBlock('core/html_radio')->setOptions($options)
->setName($type.'_address_id')
->setClass('address-select input-rdo')
->setExtraParams('onclick="'.$type.'.newAddress(!this.value)"')
->setValue($addressId);
Step2: Create a new file in the following folder
app/code/core/Mage/Core/Block/Html/Radio.php
<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Open Software License (OSL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to [email protected] so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magento.com for more information.
*
* @category Mage
* @package Mage_Core
* @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* HTML select element block
*
* @category Mage
* @package Mage_Core
* @author Magento Core Team <[email protected]>
*/
class Mage_Core_Block_Html_Radio extends Mage_Core_Block_Abstract
{
protected $_options = array();
/**
* Get options of the element
*
* @return array
*/
public function getOptions()
{
return $this->_options;
}
/**
* Set options for the HTML select
*
* @param array $options
* @return Mage_Core_Block_Html_Select
*/
public function setOptions($options)
{
$this->_options = $options;
return $this;
}
/**
* Add an option to HTML select
*
* @param string $value HTML value
* @param string $label HTML label
* @param array $params HTML attributes
* @return Mage_Core_Block_Html_Select
*/
public function addOption($value, $label, $params=array())
{
$this->_options[] = array('value' => $value, 'label' => $label, 'params' => $params);
return $this;
}
/**
* Set element's HTML ID
*
* @param string $id ID
* @return Mage_Core_Block_Html_Select
*/
public function setId($id)
{
$this->setData('id', $id);
return $this;
}
/**
* Set element's CSS class
*
* @param string $class Class
* @return Mage_Core_Block_Html_Select
*/
public function setClass($class)
{
$this->setData('class', $class);
return $this;
}
/**
* Set element's HTML title
*
* @param string $title Title
* @return Mage_Core_Block_Html_Select
*/
public function setTitle($title)
{
$this->setData('title', $title);
return $this;
}
/**
* HTML ID of the element
*
* @return string
*/
public function getId()
{
return $this->getData('id');
}
/**
* CSS class of the element
*
* @return string
*/
public function getClass()
{
return $this->getData('class');
}
/**
* Returns HTML title of the element
*
* @return string
*/
public function getTitle()
{
return $this->getData('title');
}
/**
* Render HTML
*
* @return string
*/
protected function _toHtml()
{
if (!$this->_beforeToHtml()) {
return '';
}
foreach ($this->getOptions() as $key => $option) {
$select='';
if($this->getValue() == $option['value']){
$select ='Checked="checked"';
}
$html .="<div class='address_radio'><input type='radio' name='".$this->getName()."' value='".$option['value']."' class='".$this->getClass()."' " . $this->getExtraParams() . " ".$select."/><p>".$option['label']."</p></div>";
}
return $html;
}
/**
* Alias for toHtml()
*
* @return string
*/
public function getHtml()
{
return $this->toHtml();
}
}