【EC-CUBE】送料無料商品がある場合に、かごの中ブロックにも表示させる
http://www.kxh-web.com/web/ec/484が参考になりました。
ver.2.11.5
まずは、data/class/SC_CartSession.phpの中に下記を挿入。
//送料無料商品の有無を判定して、ブロックに表示させるための一部
function getSouryouFree($productTypeId) {
$objDb = new SC_Helper_DB_Ex();
$sFree = false;
if (OPTION_PRODUCT_DELIV_FEE == 1) {
$cartItems = $this->getCartList($productTypeId);
foreach ($cartItems as $item) {
//送料無料商品があるとき
if ($item['productsClass']['deliv_fee'] == '0') {
$sFree = true;
}
}
}
return $sFree;
}
続いて、data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Cart.phpの
// 送料無料チェック
if (!$this->isMultiple && !$this->hasDownload) {
$is_deliv_free = $objCart->isDelivFree($cart_key);
}
の次の行に、
// 送料無料商品の有無--追加
$Muryou += $objCart->getSouryouFree($cart_key);
を追加(挿入)。
さらにその下にある、
$arrCartList[0]['ProductsTotal'] = $products_total;
$arrCartList[0]['TotalQuantity'] = $total_quantity;
を
$arrCartList[0]['ProductsTotal'] = $products_total;
$arrCartList[0]['TotalQuantity'] = $total_quantity;
//追加
$arrCartList[0]['sFree'] = $Muryou;
とします。
次に、data/class/pages/cart/LC_Page_Cart.phpの
// 送料無料までの金額を計算
$this->tpl_deliv_free[$key] = $this->arrInfo['free_rule'] - $this->tpl_total_inctax[$key];
の下の行に、
$this->arrData[$key]['muryou'] = $objCartSess->getSouryouFree($key);
を挿入します。もう一息です。
表示させたいテンプレート(かごの中ブロック)へ
<!--{if $arrCartList.0.sFree > 0}-->
送料無料商品があるときのメッセージ
<!--{else}-->
送料無料商品がないときのメッセージ
(ないときは表示させないならこの部分は削除OK)
<!--{/if}-->
を記述すればOKです。ちなみに、かごの中(ページ詳細)へ表示させたい場合は
<!--{if $arrData[$key].muryou > 0}-->
送料無料商品があるときのメッセージ
<!--{else}-->
送料無料商品がないときのメッセージ
(ないときは表示させないならこの部分は削除OK)
<!--{/if}-->
でOKです。モバイル・スマホのかごの中ページ詳細もこれでいけると思います。
【EC-CUBE】 送料無料商品がある場合に かごの中ブロックにも表示させる の関連記事
コメント
No comments yet
コメントする
次項 【EC-CUBE】トップページのみタイトルを変更する
前項 【EC-CUBE】テンプレート内でPHPを実行する方法
▲知識Z(ゼータ)トップへ