バージョン選択

フォーラム

メニュー

オンライン状況

69 人のユーザが現在オンラインです。 (61 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 69
もっと...

サイト内検索

質問 > フロント機能 > ラジオボタンを未選択(空白)に

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tika
投稿日時: 2017/6/26 15:27
対応状況: −−−
半人前
登録日: 2016/12/6
居住地:
投稿: 12
ラジオボタンを未選択(空白)に
[EC-CUBE] 3.0.13

先日、同じ件でスレッドを建てたのですが、解決に至らなかったので再度投稿させて頂きます。

『Shopping/index.twig』
決済方法の選択で初期状態では何も選択されていない状態にしたいと考えております。

<h2 class="heading02">お支払方法</h2>
<div id="payment_list" class="column">
<div id="payment_list__body" class="form-group">
<ul id="payment_list__list" class="payment_list">
{% for key, child in form.payment %}
<li><a href="#">
{{ form_widget(child, {'attr': {'class': 'payment' }}) }}
{% if form.payment.vars.choices[key].data.payment_image is not null %}
<img src="{{ app.config.image_save_urlpath }}/{{ form.payment.vars.choices[key].data.payment_image }}">
{% endif %}
</a>
</li>
{% endfor %}
{{ form_errors(form.payment) }}
</ul>
</div>
</div>

この部分なのですが、ラジオボタンを未選択状態で表示し、選択してなかったら通常通りエラーを出すようにしたいと思っています。
現状では一番上のラジオボタンがデフォルトで選択されており、支払い方法を選択しなくても申し込みができる状態で困っております。

ご教授お願いします。
kanchi
投稿日時: 2017/7/27 17:30
対応状況: −−−
新米
登録日: 2017/7/27
居住地:
投稿: 1
Re: ラジオボタンを未選択(空白)に
当方も全く同じ作業内容で困っております。
デフォルトでチェックが入っていると購入者が選択を忘れた場合でも次画面(購入手続き)に進んでしまう為、トラブルの基となってしまいます。
分かる方、ご教授願います。
hata
投稿日時: 2017/7/27 18:11
対応状況: −−−
長老
登録日: 2015/8/3
居住地: 宮城県(2017/09末引退)
投稿: 156
Re: ラジオボタンを未選択(空白)に
支払方法の初期値は、src/Eccube/Service/ShoppingService.phpの以下の処理で設定されています。
    /**
     * 仮受注情報作成
     *
     * @param $Customer
     * @param $preOrderId
     * @return mixed
     * @throws \Doctrine\ORM\NoResultException
     * @throws \Doctrine\ORM\NonUniqueResultException
     */
    public function registerPreOrder(Customer $Customer, $preOrderId)
    {
:
        // 初期選択の支払い方法をセット
        $payments = $this->app['eccube.repository.payment']->findAllowedPayments($deliveries);
        $payments = $this->getPayments($payments, $subTotal);

        if (count($payments) > 0) {
            $payment = $payments[0];
            $Order->setPayment($payment);
            $Order->setPaymentMethod($payment->getMethod());
            $Order->setCharge($payment->getCharge());
        } else {
            $Order->setCharge(0);
        }

通常は条件式の上の方をとおって、支払方法の一番上がデフォルトとして設定されるようにみえますが、
else側に$Order->setCharge(0)だけのパスがあるので設定しないということ自体には問題がないように見えます。
なので、ここでは支払方法が1個以上あっても$Order->setCharge(0)だけやるようにしてやれば、デフォルト値は
設定されないと思います。

その後の処理への影響までは見切れていませんので検証してみてください。

#もし既に検証されたかたがいらっしゃったらコメント追加してくださいな。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,841名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.