Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

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

Перенес способ оплаты на страницу доставки, но способы оплаты выводятся все не зависимо какой выбран способ доставки, данный вопрос поднимался много раз и так не решен, но 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))
возможно что то и упустил...   
Ссылка на сообщение
Поделиться на другие сайты

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

 

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

Изменено пользователем Artyomii
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

 

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

кароче отдохнувший несколько дней сел сегодня и еще раз все пересмотрел, ну так вот все вышенаписанные мои действия выполняем с учетом 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

 

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

    

    

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

P.S. Kors

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

 

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

 

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

 

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

Допустим:

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

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

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

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

 

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

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

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

 

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

 

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

Народ подскажите а что за файл ajax\cart_update.php и где его взять?

 

В корне сайта есть папка "ajax" а в нем файлик "cart_update.php"

Ссылка на сообщение
Поделиться на другие сайты

Доработка бесплатная делал Wizard, спросите у него файлик.

Но там нет способа оплаты от выбора способа доставки.

Ссылка на сообщение
Поделиться на другие сайты

Доработка бесплатная делал Wizard, спросите у него файлик.

Но там нет способа оплаты от выбора способа доставки.

Вы ведь мне сделаете это? )

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 1 год спустя...

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

 

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}

Ссылка на сообщение
Поделиться на другие сайты
  • 3 года спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...