2012-01-31 3 views
1

Есть ли способ, чтобы метод оплаты кредитной карты всегда выбирался и открывался первоначально, когда существует несколько способов оплаты ? Это происходит в процессе проверки.Как установить способ оплаты кредитной карты по умолчанию (выбрано), когда в Magento существует несколько способов оплаты

+0

Непонятно, что означает «всегда выбранный и открытый изначально». –

+0

он означает, что что-то всегда выбирается на этапе оплаты, и он хотел бы выбрать наиболее используемый способ оплаты для этого, поэтому пользователям не нужно нажимать там –

+0

Да, это именно то, что я имею в виду Антон. – BeaverProj

ответ

1

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

  • Скопируйте C: \ Консалтинг \ SoftStarShoes \ сайта \ приложение \ дизайн \ \ внешнего интерфейса базы \ умолчанию \ шаблон \ \ Checkout \ OnePage платеж \ methods.phtml файл в эквивалентную директорию в моей теме.

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

    $ я = 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; ?> 
    

Условие еще одно и то же как прежде.

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

    $ я = $ я + 1;

EDIT:

На самом деле, единственным надежным способом кросс-браузер, чтобы держать его открытым было скопировать файл здесь: \ приложение \ дизайн \ оболочка \ базы \ умолчанию \ шаблон \ платеж \ формы \ ccsave.phtml к моей теме, а затем удалите стиль = "display: none;" от первой .

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

+0

Похоже, что форма не всегда показывалась автоматически. Мне пришлось добавить $ ('payment_form_authorizenet'). Show(); сразу после оплаты.init() – BeaverProj

+0

Собственно, это не всегда срабатывало. Поэтому я вошел и снял стиль = "display: none:" в cc.phtml. См. Правки выше. – BeaverProj

0

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

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

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

+0

Могу я просто установить его в javascript? – BeaverProj

+0

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

Смежные вопросы