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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
orderform.sub.php 파일에서 특정 카테고리만 카드결제 아이콘 노출 안시키는 방법

QA

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

본문

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

 

$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) {
답변을 작성하시기 전에 로그인 해주세요.
전체 16,848
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT