orderform.sub.php 파일에서 특정 카테고리만 카드결제 아이콘 노출 안시키는 방법

orderform.sub.php 파일에서 특정 카테고리만 카드결제 아이콘 노출 안시키는 방법

QA

orderform.sub.php 파일에서 특정 카테고리만 카드결제 아이콘 노출 안시키는 방법

답변 1

본문

영카트 업데이트 후 특정 카테고리만 카드결제 선택 버튼 안나오게 하는 소스가 먹히지 않네요

 

$find_ca_id_50 = false;
        for ($c=0; $row=sql_fetch_array($cart_re,FALSE); $c++) {

            $item_sql = "select * from g5_shop_item where it_id = '{$row[it_id]}'";
            $item_re = sql_fetch($item_sql);
            $find_item_re = substr($item_re[ca_id], 0,2);

            if($find_item_re == "50"){
                $find_ca_id_50 = true;
                break;
            }
        }

 

첫머리 부분에 이부분 하고

 

신용카드 선택 아이콘 부분에 

 

                // 신용카드 사용
                if ($default['de_card_use']) {
                    if($find_ca_id_50 == false){
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_card" name="od_settle_case" value="신용카드" '.$checked.'> <label for="od_settle_card" class="lb_icon card_icon">신용카드</label>'.PHP_EOL;
                    $checked = '';
                    }
                }

을 이렇게 코딩하여서 사용하였는데...

이 업데이트 이후에 노출이 되네요.. 뭐가 잘못 되었는지 고수분의 지도 부탁 드립니다.

 


                <h3>결제수단</h3>
                <?php
                if (!$default['de_card_point'])
                    echo '<p id="sod_frm_pt_alert"><strong>무통장입금</strong> 이외의 결제 수단으로 결제하시는 경우 포인트를 적립해드리지 않습니다.</p>';
                    
                $find_ca_id_50 = false;
        for ($c=0; $row=sql_fetch_array($cart_re,FALSE); $c++) {
            $item_sql = "select * from g5_shop_item where it_id = '{$row[it_id]}'";
            $item_re = sql_fetch($item_sql);
            $find_item_re = substr($item_re[ca_id], 0,2);
            if($find_item_re == "50"){
                $find_ca_id_50 = true; 
                break;
            }
        }
                $multi_settle = 0; 
                $checked = '';
                $escrow_title = "";
                if ($default['de_escrow_use']) {
                    $escrow_title = "에스크로<br>";
                }
                if ($is_kakaopay_use || $default['de_bank_use'] || $default['de_vbank_use'] || $default['de_iche_use'] || $default['de_card_use'] || $default['de_hp_use'] || $default['de_easy_pay_use'] || $default['de_inicis_lpay_use'] || $default['de_inicis_kakaopay_use']) {
                    echo '<fieldset id="sod_frm_paysel">';
                    echo '<legend>결제방법 선택</legend>';
                }
                // 카카오페이
                if($is_kakaopay_use) {
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_kakaopay" name="od_settle_case" value="KAKAOPAY" '.$checked.'> <label for="od_settle_kakaopay" class="kakaopay_icon lb_icon">KAKAOPAY</label>'.PHP_EOL;
                    $checked = '';
                }
                // 무통장입금 사용
                if ($default['de_bank_use']) {
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_bank" name="od_settle_case" value="무통장" '.$checked.'> <label for="od_settle_bank" class="lb_icon bank_icon">무통장입금</label>'.PHP_EOL;
                    $checked = '';
                }
                // 가상계좌 사용
                if ($default['de_vbank_use']) {
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_vbank" name="od_settle_case" value="가상계좌" '.$checked.'> <label for="od_settle_vbank" class="lb_icon vbank_icon">'.$escrow_title.'가상계좌</label>'.PHP_EOL;
                    $checked = '';
                }
                // 계좌이체 사용
                if ($default['de_iche_use']) {
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_iche" name="od_settle_case" value="계좌이체" '.$checked.'> <label for="od_settle_iche" class="lb_icon iche_icon">'.$escrow_title.'계좌이체</label>'.PHP_EOL;
                    $checked = '';
                }
                // 휴대폰 사용
                if ($default['de_hp_use']) {
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_hp" name="od_settle_case" value="휴대폰" '.$checked.'> <label for="od_settle_hp" class="lb_icon hp_icon">휴대폰</label>'.PHP_EOL;
                    $checked = '';
                }
                // 신용카드 사용
                if ($default['de_card_use']) {
                    if($find_ca_id_50 == false){
                    $multi_settle++;
                    echo '<input type="radio" id="od_settle_card" name="od_settle_case" value="신용카드" '.$checked.'> <label for="od_settle_card" class="lb_icon card_icon">신용카드</label>'.PHP_EOL;
                    $checked = '';
                    }
                }
                
                $easypay_prints = array();

이 질문에 댓글 쓰기 :

답변 1

따로 쿼리하지 마시고

이미 장바구니를 쿼리하고 있으므로

배열 변수만 만들어서 수집하시는게 나을 것 같아요

https://github.com/gnuboard/youngcart5/blob/5.4.5.2/shop/orderform.sub.php#L83-L86


        $find_ca_id = array();
        for ($i=0; $row=sql_fetch_array($result); $i++)
        {
            // ca_id 수집
            array_push($find_ca_id, $row['ca_id'], $row['ca_id2'], $row['ca_id3']);
 
            // 합계금액 계산

 

배열값 정리, 카테고리 찾기
https://github.com/gnuboard/youngcart5/blob/5.4.5.2/shop/orderform.sub.php#L236


    <?php
    $find_ca_id = isset($find_ca_id) && is_array($find_ca_id) 
        ? array_values(array_unique(array_filter($find_ca_id))) 
        : array();
    print_r($find_ca_id);
    $find_ca_id_50 = false;
    foreach ($find_ca_id as $c) {
        if (substr($c, 0, 2) === '50') {
            $find_ca_id_50 = true;
            break;
        }
    }
    var_dump($find_ca_id_50);
    ?>

 

신용카드 출력 조건 추가

https://github.com/gnuboard/youngcart5/blob/5.4.5.2/shop/orderform.sub.php#L611


                if ($default['de_card_use'] && $find_ca_id_50 === false) {
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 125,873
© SIRSOFT
현재 페이지 제일 처음으로