質問 > 管理機能 > 商品ごとに代引き支払不可を設定したい |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
shin_shin |
投稿日時: 2011/5/31 15:31
対応状況: −−−
|
常連 登録日: 2008/9/17 居住地: 投稿: 48 |
Re: 商品ごとに代引き支払不可を設定したい http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=3617&forum=10&post_id=14378
の「条件により支払方法を変更する」を参考にしていますが、上手くいきません。 今回の違いを考えると、私が作成した条件設定は 新規に「mtb_daibiki」をつくり、代引き表示=1 代引き非表示=2としました。 参考にさせて頂いているものを見ると、 dtb_productsの無制限チェックボックスを引用しています。 私が作成しているものは、フラグは dtb_products_classに格納されています。 それを元に、 以下の作業をしましたが、上手くいきません。 というか、何もかわりません。 まず、 1.data>class>helper>SC_Helper_DB.php の該当箇所に以下を追加しました。 // ポイント付与率の登録 $objCartSess->setProductValue($arrCart[$i]['id'], 'point_rate', $arrData['point_rate']); // //2011-05-31代引き表示フラグ追加 $objCartSess->setProductValue($arrCart[$i]['id'], 'daibiki', $arrData['daibiki']); // 商品ごとの合計金額 $objPage->arrProductsClass[$cnt]['total_pretax'] = $objCartSess->getProductTotal($arrInfo, $arrCart[$i]['id']); 2.data>class>SC_CartSession.php に 以下のクラスを追加しました。 // カートの中の無制限フラグチェック function chkdaibiki(){ $daibiki_chk_flg = 2; $max = $this->getMax(); for($i = 1; $i <= $max; $i++) { $daibiki = $_SESSION[$this->key][$i]['daibiki']; if($daibiki == "1"){ //非表示設定がONの時 $daibiki_chk_flg ++; } } return $daibiki_chk_flg; } 3.data>class>pages>shopping>LC_Page_Shopping_Payment.php の function lfGetPayment に以下を追加しました。 //カート内に代引き非表示の商品があるかチェック($daibiki_chk_flgの取得) $objCartSess = new SC_CartSession(); $daibiki_chk_flg = $objCartSess->chkdaibiki(); $objQuery = new SC_Query(); $objQuery->setorder("rank DESC"); //削除されていない支払方法を取得 //↓↓↓分岐処理追加 if($daibiki_chk_flg != "1"){ //代引表示商品がカートにあったとき $arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", "del_flg = 0 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 0) "); } else { //代引き表示商品がカートにないときは代引きを非表示にする $arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", "del_flg = 2 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 2) AND payment_id = 10 AND payment_id = 6 AND payment_id = 7 "); //AND payment_id には表示させたい支払い方法を入れる } 参考にさせて頂いているものは、 該当のフラグがあるときは、銀行振り込みだけにするというものですが、私の場合は、代引きのみを非表示にするということなので、 payment_idを10.6.7(銀行振込、クレジット、コンビニ、)という風に表示させたいのですが、記述がこれでよいのかわかりません。 また、 SC_Helper_DB.phpの追加表記方法ですが、 // //2011-05-31代引き表示フラグ追加 $objCartSess->setProductValue($arrCart[$i]['id'], 'daibiki', $arrData['daibiki']); これも違う気がします。 dtb_productsにはフラグデータがないので、 mtb_daibikiから取得しないといけないのですが、記述方法がわかりません。 参考にしているフラグの取得方法はチェックボックスですが、今回私が作ったのは、ラジオボタンになり、0or1ではなく、1or2なのでこの辺も記載ミスなのかと思います。 どなたかご教授いただけますでしょうか? 何卒宜しくお願いします |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
商品ごとに代引き支払不可を設定したい | shin_shin | 2011/5/26 10:05 |
Re: 商品ごとに代引き支払不可を設定したい | patapata | 2011/5/26 18:34 |
Re: 商品ごとに代引き支払不可を設定したい | shin_shin | 2011/5/30 15:34 |
Re: 商品ごとに代引き支払不可を設定したい | shin_shin | 2011/5/31 12:21 |
» Re: 商品ごとに代引き支払不可を設定したい | shin_shin | 2011/5/31 15:31 |
Re: 商品ごとに代引き支払不可を設定したい | shin_shin | 2011/6/1 4:38 |