Как установить способ оплаты кредитной картой по умолчанию (выбран), когда в Magento существует более одного способа оплаты - PullRequest
1 голос
/ 31 января 2012

Есть ли способ сделать метод оплаты кредитной картой всегда выбранным и открываться изначально, когда существует более одного метода оплаты?Это в процессе оформления заказа.

Ответы [ 2 ]

1 голос
/ 31 января 2012

Вот что я в итоге сделал.

  • Скопируйте файл C: \ Consulting \ SoftStarShoes \ website \ app \ design \ frontend \ base \ default \ template \ checkout \ onepage \ payment \ method.phtml в эквивалентный каталог вмоя тема.

  • Добавьте новую переменную счетчика цикла, $ i, вверху после первого комментария:

    $ i = 1;

  • Внутри <?php if( sizeof($this->getMethods()) > 1 ): ?> сначала, если условная проверка, добавьте следующее условие (в основном, он проверяет, является ли это первым методом оплаты и устанавливает его для проверки)

    <?php if( $i == 1 ): ?>
        <input id="p_method_<?php echo $_code ?>" value="<?php echo $_code ?>" type="radio" name="payment[method]" checked="checked" title="<?php echo $this->htmlEscape($_method->getTitle()) ?>" onclick="payment.switchMethod('<?php echo $_code ?>')" class="radio" />
    <?php else: ?>
        <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; ?> class="radio" />
    <?php endif; ?>
    

Условие else такое же, как и раньше.

  • Непосредственно перед тем, как <?php endforeach; ?> Я добавил эту строку (с <?php вокруг нее):

    $ i= $ i + 1;

РЕДАКТИРОВАТЬ:

На самом деле, единственный надежный кросс-браузерный способ сохранить его открытым было скопировать файл здесь: \ app \ design \ frontend \ base \ default\ template \ payment \ form \ ccsave.phtml в мою тему, а затем удалите стиль = "display: none;"от первого.

Это исправило это так, что форма была всегда открыта, и вышеупомянутый код удостоверился, что это было выбрано по умолчанию.

0 голосов
/ 31 января 2012

вы можете попробовать это на предыдущих шагах с наблюдателем

try {
    $quote->getPayment()->setMethod('method_code')->getMethodInstance();
} catch ( Exception $e ) {
    Mage::logException($e);
}

, но имейте в виду, что этот способ оплаты должен быть активным и готовым к использованию, прежде чем вы сможете установить его, и вы должны проверить, не выбран ли ранее какой-либо способ оплаты, чтобы вы не изменили выбор пользователя или не принудили тот же платеж метод для каждого заказа, и вам, возможно, придется изменить некоторый код внешнего интерфейса, чтобы открыть форму метода оплаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...