테스트 사이트 - 개발 중인 베타 버전입니다

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

조자룡 4년 전 조회 2,620

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

 

$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 ' '.PHP_EOL;                     $checked = '';                     }                 }

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

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

 

</p>

<p>                <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++) {</p>

<p>            $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);</p>

<p>            if($find_item_re == "50"){

                $find_ca_id_50 = true; 

                break;

            }

        }</p>

<p>                $multi_settle = 0; 

                $checked = '';</p>

<p>                $escrow_title = "";

                if ($default['de_escrow_use']) {

                    $escrow_title = "에스크로
";

                }</p>

<p>                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>';

                }</p>

<p>                // 카카오페이

                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 = '';

                }</p>

<p>                // 무통장입금 사용

                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 = '';

                }</p>

<p>                // 가상계좌 사용

                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 = '';

                }</p>

<p>                // 계좌이체 사용

                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 = '';

                }</p>

<p>                // 휴대폰 사용

                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 = '';

                }</p>

<p>                // 신용카드 사용

                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개

Big1
4년 전

따로 쿼리하지 마시고

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

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

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']);</p>

<p> </p>

<p>            // 합계금액 계산

 

배열값 정리, 카테고리 찾기 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) {

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인