Jump to content

Способы оплаты от выбора сбособа доставки


Recommended Posts

Доброго времени суток,

Перенес способ оплаты на страницу доставки, но способы оплаты выводятся все не зависимо какой выбран способ доставки, данный вопрос поднимался много раз и так не решен, но NOXTER  тут реализовал и не хочет помочь ни в какую, давайте общими усилиями сделаем, прошу помощи, что не так сделал, забыл или в чем ошибка!?

и так все мои действия:

 

в view\CartView.php

 после:

 $order->delivery_id = $this->request->post('delivery_id', 'integer');

 добавил: 

$order->payment_method_id = $this->request->post('payment_method_id', 'integer');

 после:

   // Способы доставки
        $deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
        $this->design->assign('deliveries', $deliveries); 
 добавил: 
        // Варианты оплаты
        $payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
        $this->design->assign('payment_methods', $payment_methods);
в design\your_theme\cart.tpl
 в начале в скрипты добавил:
$(document).ready(function(){
var deleivery = $("input[name=delivery_id]:checked").attr('id');
var checked = $("input[name=delivery_id]:checked").attr('value');
$.ajax({
url: "ajax/cart_update.php",
data: {'delivery_id':checked},
success: function(data){
if(data){
$('#payments').html(data.payment);
$("input[id="+deleivery+"]").attr('checked', true);
$("#payments").animate({'opacity':'1'}, 0);
}
}
});
});


function get_payment(delivery_id)
{
var deleivery = $("input[name=payment_method_id]:checked").attr('id');
$("#payments").append('<img src="design/{/literal}{$settings->theme}{literal}/images/loader.gif" title="Выполняю..." alt="Выполняю..." style="z-index: 99; position: absolute">');
$("#payments").animate({'opacity':'0.3'},600);
$.ajax({
url: "ajax/cart_update.php",
data: {'delivery_id':delivery_id},
success: function(data){
if(data){
$('#payments').html(data.payment);
$("input[id="+deleivery+"]").attr('checked', true);
$("#payments").animate({'opacity':'1'}, 0);
}
}
});
} 

 в доставке input-у добавил onclick="get_payment('{$delivery->id}',$(this).val());"

 
 после: 
{* Доставка *}
{if $deliveries}
...
{/if}
 добавил:
    {* Выбор способа оплаты *}
    {if $payment_methods && !$payment_method}
    <h2>Выберите способ оплаты</h2>
    <ul id="payments">
        {foreach $payment_methods as $payment_method}
            <li>
                <div class="checkbox">
                    <input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
                </div>            
                <h3><label for=payment_{$payment_method->id}>    {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
                <div class="description">
                {$payment_method->description}
                </div>
            </li>
        {/foreach}
    </ul>
    {/if}

 в design\your_theme\ создал cart_payment.tpl

 в него добавил:

{foreach $payment_methods as $payment_method}
            <li>
                <div class="checkbox">
                    <input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
                </div>            
                <h3><label for=payment_{$payment_method->id}>    {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
                <div class="description">
                {$payment_method->description}
                </div>
            </li>
        {/foreach}

в ajax\cart_update.php

 после:

  // Способы доставки
    $deliveries = $simpla->delivery->get_deliveries(array('enabled'=>1));
    $simpla->design->assign('deliveries', $deliveries);
    $delivery   = $simpla->design->fetch('cart_deliveries.tpl');
 добавил: 
   // Варианты оплаты
    $payment_methods = $simpla->payment->get_payment_methods(array('delivery_id'=>$cart->delivery_id, 'enabled'=>1));
    $simpla->design->assign('payment_methods', $payment_methods);
    $payment   = $simpla->design->fetch('cart_payment.tpl');
в
 $result = array('total' => $total, ... 'delivery' => $delivery,);
 после:
  'delivery' => $delivery,
 добавил: 
   'payment' => $payment,
вот вообщем то и все но не работает! кто поможет подскажет?
подозреваю ошибка в cart_update.php вот 
(array('delivery_id'=>$cart->delivery_id, 'enabled'=>1))
возможно что то и упустил...   
Link to post
Share on other sites

А почему Вы не хотите заплатить денежку за труд? и доверить дело проф.

Видимо потому что не хочет платить. В ЛС только и пишет дабы сделали за 0.

Link to post
Share on other sites

Видимо потому что не хочет платить. В ЛС только и пишет дабы сделали за 0.

Noxter не стыдно врать????

а это что по вашему уже третье сообщение в личку:

"Отправить 30.07.2013 - 20:08

вы же реализовали http://forum.simplac...plati-/?p=24848

может подскажите что и как или скока стоит ваша помощь?"

а в ответ тишина была до сих пор!!!

 

Noxter Вас просто жаба душит из-за того что тут реально все сделано, нехватает пару строк самой функции, не понимаю Вашу логику я Вам отправлял 4сообщения в личку и не получил ни одного вразумительного ответа кроме как съезжали с темы! а тут мы заговорили вдруг.

Edited by Artyomii
Link to post
Share on other sites

Noxter не стыдно врать????

а это что по вашему уже третье сообщение в личку:

"Отправить 30.07.2013 - 20:08

вы же реализовали http://forum.simplac...plati-/?p=24848

может подскажите что и как или скока стоит ваша помощь?"

а в ответ тишина была до сих пор!!!

 

Noxter Вас просто жаба душит из-за того что тут реально все сделано, нехватает пару строк самой функции, не понимаю Вашу логику я Вам отправлял 4сообщения в личку и не получил ни одного вразумительного ответа кроме как съезжали с темы! а тут мы заговорили вдруг.

Ах ну да, было такое сообщение после нескольких сообщений о бесплатной помощи реализовать сие.

Потому и не стал Вам больше отвечать.

Link to post
Share on other sites

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

 

кароче отдохнувший несколько дней сел сегодня и еще раз все пересмотрел, ну так вот все вышенаписанные мои действия выполняем с учетом 2-ух изменений:

в ajax\cart_update.php

    после строк в самом начале:

    $variant_id = $simpla->request->get('variant_id', 'integer');
    $amount     = $simpla->request->get('amount',     'integer');
    $remove_id  = $simpla->request->get('remove_id',  'integer');
    добавляем строку:
    $delivery_id = $simpla->request->get('delivery_id',  'integer');
    
    ну как и говорил в строке:

    $payment_methods = $simpla->payment->get_payment_methods(array('delivery_id'=>$cart->delivery_id, 'enabled'=>1));

    изменяем $cart->delivery_id на: $delivery_id

 

вот и всЁ!!! всем спасибо и удачи...

    

    

Link to post
Share on other sites

вообщем никто мне так и не помог!!!

Было бы круто, если Вы запятые расставляли, разделяли предложения. Вообщем, выражали свои мысли, как положено homo sapiens sapiens.

 

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

Link to post
Share on other sites

Собсно где Вы такую цену увидели?

Noxter тема уже решена давно и можно установить статус "Решено"

 

P.S. Kors

1. Со стороны сервера: решение довольно нерационально, так как при каждом выборе доставки делается HTTP-запрос к серверу, что необоснованно загружает ресурсы. Куда проще и рациональнее было бы использовать jquery, show(), hide().

 

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

 

 

 
2. Со стороны покупателя: если выбрана оплата, а потом перещелкнута доставка, то выбор оплаты пропадает, что довольно неудобно...

что за белеберду вы написали сами поняли? ничто ни куда не пропадает....

Link to post
Share on other sites

 

 

Если дадите ссылочку, где у Вас работает и не пропадает, можно будет обсудить по делу... 

способы оплаты зависят от выбранной доставки!!!если я выберу другую доставку то и способы оплаты будут другие.

Link to post
Share on other sites

Спасибо за разъяснение очевидных вещей.

 

Мне кажется, Вы слабо поняли поднятый мной вопрос.

 

Объясняю точнее:

Допустим:

1. есть два способа доставки Д1, Д2.

2. есть три способа оплаты О1, О2, О3.

3. для Д1 допустимы О1, О3.

4. для Д2 допустимы О2, О3.

 

При Вашем способе возможна ситуация

1. Покупатель выбрал Д1 и О3. Все хорошо.

2. Затем покупатель решил поменять Д1 на Д2. И Вы ему заново загрузите список О2, О3, в котором выбранный ранее метод О3 не будет отмечен...

 

Вот и выходит со стороны покупателя: если выбрана оплата, а потом перещелкнута доставка, то выбор оплаты пропадает, что довольно неудобно...

 

 

Однако, мой вопрос о ссылке остался без ответа. Как известно, лучше один раз увидеть...

да это я в курсе был, просто меня не беспокоит т.к. у меня такого нету, но я думал что если будет то вот тогда придется дописывать чтобы сохранялось ))))

Link to post
Share on other sites

глупости и замарачиваетесь больше, невозможно подстроится под всех, по вашей логике(варианту) такое может быть 3% из 100 т.к. при отправки заказа пользователь все равно проверит всЁ (вариантов оплаты не 150 и кликнуть нет сложности), а еще может быть и наоборот кроме его выбранного способа оплаты будет как раз тот вариант который он искал, и в конце концов это не последний момент где он может изменить способ оплаты!

ИМХО вашей логике, а может пользователь вообще вариант доставки в конце захочет сменить!? а вообще зачем он все купил...)))

KORS не занимайтесь казуистикой...

Link to post
Share on other sites
  • 3 months later...
  • 2 weeks later...
  • 1 year later...

У меня работает ТАК

 

1)Идем в ftp по пути: view/CartView.php. И после:

if(isset($_POST['checkout']))
{
 
    $order->delivery_id = $this->request->post('delivery_id', 'integer');

Примерно 46 строка, после нее добавляем:

$order->payment_method_id = $this->request->post('payment_method_id', 'integer');

В конце, после:

function fetch()
    {
        // Способы доставки
        $deliveries = $this->delivery->get_deliveries(array('enabled'=>1));
        $this->design->assign('deliveries', $deliveries);

Добавляем:

// Варианты оплаты
$payment_methods = $this->payment->get_payment_methods(array('enabled'=>1));
$this->design->assign('payment_methods', $payment_methods);

 

2) Теперь идем в админку, шаблон cart.tpl. В нужное место (я вставил после выбора варианта доставки) вставляем:

 

{* Выбор способа оплаты *}
{if $payment_methods && !$payment_method}
<h2>Выберите способ оплаты</h2>
<ul id="deliveries">
{foreach $payment_methods as $payment_method}
<li>
<div class="checkbox">
<input type=radio name=payment_method_id value='{$payment_method->id}' {if $payment_method@first}checked{/if} id=payment_{$payment_method->id}>
</div>
<h3><label for=payment_{$payment_method->id}> {$payment_method->name}{*, к оплате {$cart->total_price|convert:$payment_method->currency_id} {$all_currencies[$payment_method->currency_id]->sign}*}</label></h3>
<div class="description">
{$payment_method->description}
</div>
</li>
{/foreach}
</ul>
{/if}

Link to post
Share on other sites
  • 3 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...