Thursday, April 4, 2013

How do you allow the payment option to be preselected if products are free?

Go to the following file and edit it as appropriate
app\design\frontend\videocard\default\template\checkout\onepage\payment

<dl id="checkout-payment-method-load">
<?php
    $methods = $this->getMethods();
    $oneMethod = count($methods) <= 1;
?>
<?php 
    $nopay = false;
    foreach ($methods as $_method):
        $_code = $_method->getCode();      
        if($_code == 'free') {
            $nopay = true;
        }
    endforeach;  
?>
<?php 
  
    foreach ($methods as $_method):
        $_code = $_method->getCode();
?>
    <dt>
    <?php if ($nopay == false) : ?>
        <?php if(!$oneMethod): ?>
            <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')"<?php if($this->getSelectedMethodCode()==$_code): ?> checked="checked"<?php endif; ?> />
        <?php else: ?>
            <span><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" /></span>
            <?php $oneMethod = $_code; ?>
        <?php endif; ?>
            <label for="p_method_<?php echo $_code ?>"><?php echo $this->getMethodTitle($_method) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
        </dt>
        <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
        <dd>
            <?php echo $html; ?>
        </dd>
        <?php endif; ?>
    <?php else : ?>
        <?php if($_code == 'free') : ?>
            <span><input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" /></span>
            <?php $oneMethod = $_code; ?>
            <label for="p_method_<?php echo $_code ?>"><?php echo $this->getMethodTitle($_method) ?> <?php echo $this->getMethodLabelAfterHtml($_method) ?></label>
        </dt>
        <?php if ($html = $this->getPaymentMethodFormHtml($_method)): ?>
        <dd>
            <?php echo $html; ?>
        </dd>
            <?php endif; ?>
        <?php endif; ?>
    <?php endif; ?>
<?php endforeach; ?>
</dl>
<?php echo $this->getChildChildHtml('additional'); ?>
<script type="text/javascript">
//<![CDATA[
<?php echo $this->getChildChildHtml('scripts'); ?>
payment.init();
<?php if (is_string($oneMethod)): ?>
    payment.switchMethod('<?php echo $oneMethod ?>');
<?php endif; ?>
//]]>
</script>

No comments:

Post a Comment