상품옵션 금액표시 옥션처럼 변경 (상품옵션 (+0)원 없애기) 정보
상품옵션 금액표시 옥션처럼 변경 (상품옵션 (+0)원 없애기)본문
상품옵션에서 추가금액이 표시되는 데요^^
추가금액이 없는데도 +0 이 표시되서 헷갈리기도 하고, 구분도 않되어있어서 보기가 복잡합니다!!
그래서 옥션처럼 추가금액이 없는 옵션가격에는 아무표시 없이 나오고
추가금액 표시도니느것을 (+2000원) 처럼 괄호로 변경하였습니다
아래 파일에서 해당 소스만 변경해주면 됩니다^^
수정할 파일 안내
//#################################################################
//원본 lib/shop.lib.php 946번째줄 즈음~
//######################################################################
// 옵션선택목록 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$i];
$opt_count = count($opt);
$disabled = '';
if($opt_count) {
$seq = $i + 1;
if($i > 0)
$disabled = ' disabled="disabled"';
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;
$select .= '<option value="">선택</option>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if(strlen($opt_val)) {
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
}
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_1" class="it_option">'.PHP_EOL;
$select .= '<option value="">선택</option>'.PHP_EOL;
for($i=0; $row=sql_fetch_array($result); $i++) {
if($row['io_price'] >= 0)
$price = ' + '.number_format($row['io_price']).'원';
else
$price = ' '.number_format($row['io_price']).'원';
if($row['io_stock_qty'] < 1)
$soldout = ' [품절]';
else
$soldout = '';
$select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
return $str;
}
//#######################################################################
// 아래의 소스로 변경해주세요^^
//#########################################################################
// 옵션선택목록 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$i];
$opt_count = count($opt);
$disabled = '';
if($opt_count) {
$seq = $i + 1;
if($i > 0)
$disabled = ' disabled="disabled"';
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;
$select .= '<option value="">[필수] 선택하세요</option>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if(strlen($opt_val)) {
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
}
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_1" class="it_option">'.PHP_EOL;
$select .= '<option value="">[필수] 선택하세요</option>'.PHP_EOL;
for($i=0; $row=sql_fetch_array($result); $i++) {
//옵션상품 가격이 올라갈때
if($row['io_price'] > 0)
$price = ' (+'.number_format($row['io_price']).'원)';
//옵션상품 가격이 그대로일때
else if($row['io_price'] == 0)
$price = ' ';
//옵션상품 가격이 내려갈때
else
$price = ' ('.number_format($row['io_price']).'원)';
if($row['io_stock_qty'] < 1)
$soldout = ' [품절]';
else
$soldout = '';
$select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
return $str;
}
//################################################################################################
추가금액이 없는데도 +0 이 표시되서 헷갈리기도 하고, 구분도 않되어있어서 보기가 복잡합니다!!
그래서 옥션처럼 추가금액이 없는 옵션가격에는 아무표시 없이 나오고
추가금액 표시도니느것을 (+2000원) 처럼 괄호로 변경하였습니다
아래 파일에서 해당 소스만 변경해주면 됩니다^^
수정할 파일 안내
//#################################################################
//원본 lib/shop.lib.php 946번째줄 즈음~
//######################################################################
// 옵션선택목록 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$i];
$opt_count = count($opt);
$disabled = '';
if($opt_count) {
$seq = $i + 1;
if($i > 0)
$disabled = ' disabled="disabled"';
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;
$select .= '<option value="">선택</option>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if(strlen($opt_val)) {
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
}
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_1" class="it_option">'.PHP_EOL;
$select .= '<option value="">선택</option>'.PHP_EOL;
for($i=0; $row=sql_fetch_array($result); $i++) {
if($row['io_price'] >= 0)
$price = ' + '.number_format($row['io_price']).'원';
else
$price = ' '.number_format($row['io_price']).'원';
if($row['io_stock_qty'] < 1)
$soldout = ' [품절]';
else
$soldout = '';
$select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
return $str;
}
//#######################################################################
// 아래의 소스로 변경해주세요^^
//#########################################################################
// 옵션선택목록 만들기
for($i=0; $i<$subj_count; $i++) {
$opt = $options[$i];
$opt_count = count($opt);
$disabled = '';
if($opt_count) {
$seq = $i + 1;
if($i > 0)
$disabled = ' disabled="disabled"';
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_'.$seq.'">'.$subj[$i].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_'.$seq.'" class="it_option"'.$disabled.'>'.PHP_EOL;
$select .= '<option value="">[필수] 선택하세요</option>'.PHP_EOL;
for($k=0; $k<$opt_count; $k++) {
$opt_val = $opt[$k];
if(strlen($opt_val)) {
$select .= '<option value="'.$opt_val.'">'.$opt_val.'</option>'.PHP_EOL;
}
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
}
} else {
$str .= '<tr>'.PHP_EOL;
$str .= '<th><label for="it_option_1">'.$subj[0].'</label></th>'.PHP_EOL;
$select = '<select id="it_option_1" class="it_option">'.PHP_EOL;
$select .= '<option value="">[필수] 선택하세요</option>'.PHP_EOL;
for($i=0; $row=sql_fetch_array($result); $i++) {
//옵션상품 가격이 올라갈때
if($row['io_price'] > 0)
$price = ' (+'.number_format($row['io_price']).'원)';
//옵션상품 가격이 그대로일때
else if($row['io_price'] == 0)
$price = ' ';
//옵션상품 가격이 내려갈때
else
$price = ' ('.number_format($row['io_price']).'원)';
if($row['io_stock_qty'] < 1)
$soldout = ' [품절]';
else
$soldout = '';
$select .= '<option value="'.$row['io_id'].','.$row['io_price'].','.$row['io_stock_qty'].'">'.$row['io_id'].$price.$soldout.'</option>'.PHP_EOL;
}
$select .= '</select>'.PHP_EOL;
$str .= '<td>'.$select.'</td>'.PHP_EOL;
$str .= '</tr>'.PHP_EOL;
}
return $str;
}
//################################################################################################
추천
0
0
댓글 6개
잘 됩니다 ^^
헌데 상품 옵션이 2개 이상인경우에는 첫번째거만 +0원이 제거되고 나머지는 +0 이 뜨는데
제외할수 없나요??
헌데 상품 옵션이 2개 이상인경우에는 첫번째거만 +0원이 제거되고 나머지는 +0 이 뜨는데
제외할수 없나요??
/shop/itemoption.php 파일의 for 문안에
if($row['io_price'] >= 0) => 이 부분을 if($row['io_price'] > 0) 으로 수정
물론 이것만 하면 안되고, 본문 내용처럼 0원 초과일때, 0원일때, 그 외일때..
이렇게 처리하면 2번째 옵션에서도 "+0원"이 안나오게 될 것입니다.
(+0원)을 없애기 위해 실제 적용해 보니, 총 3개 파일을 작업하셔야 되네요.
01. /shop/itemoption.php 파일의 for() 문에서
02. /js/shop.js 파일의 add_sel_option() 함수
03. /lib/shop.lib.php 파일의 get_item_options() 함수, print_item_options() 함수도 추가 수정이 필요합니다.
이렇게 3개 파일을 수정하시면, 셀렉트박스에서 옵션 0원을 선택시 하단의 선택된 내용 출력에서도 0원 출력이 안나오게 됩니다.
또한 장바구니 페이지에서도 +0원 출력이 제외됩니다.
소스 수정은
if($row['io_price'] >= 0)
else
이렇게 0원이상일때, 그외로 구성된 2가지 분기를
if($row['io_price'] > 0)
else if($row['io_price'] == 0)
else
이렇게 0원 초과, 0원일때, 그외(마이너스?)일때로 3가지 분기가 되게끔 수정하시면 됩니다.
저의 경우 0원일때 공백으로 처리하였고,
/lib/shop.lib.php 파일의 print_item_options() 함수에서는
if ($price_plus == "0") { // 옵션가격이 0원이라면 (+0원) 표시 제거
$str .= '<li>'.$row['ct_option'].' '.$row['ct_qty'].'개</li>'.PHP_EOL;
}
else {
$str .= '<li>'.$row['ct_option'].' '.$row['ct_qty'].'개 ('.$price_plus.display_price($row['io_price']).')</li>'.PHP_EOL;
}
이렇게 수정하였습니다. 테스트 결과 게시판, 개인결제 추가시에도 에러 발생은 없네요.
if($row['io_price'] >= 0) => 이 부분을 if($row['io_price'] > 0) 으로 수정
물론 이것만 하면 안되고, 본문 내용처럼 0원 초과일때, 0원일때, 그 외일때..
이렇게 처리하면 2번째 옵션에서도 "+0원"이 안나오게 될 것입니다.
(+0원)을 없애기 위해 실제 적용해 보니, 총 3개 파일을 작업하셔야 되네요.
01. /shop/itemoption.php 파일의 for() 문에서
02. /js/shop.js 파일의 add_sel_option() 함수
03. /lib/shop.lib.php 파일의 get_item_options() 함수, print_item_options() 함수도 추가 수정이 필요합니다.
이렇게 3개 파일을 수정하시면, 셀렉트박스에서 옵션 0원을 선택시 하단의 선택된 내용 출력에서도 0원 출력이 안나오게 됩니다.
또한 장바구니 페이지에서도 +0원 출력이 제외됩니다.
소스 수정은
if($row['io_price'] >= 0)
else
이렇게 0원이상일때, 그외로 구성된 2가지 분기를
if($row['io_price'] > 0)
else if($row['io_price'] == 0)
else
이렇게 0원 초과, 0원일때, 그외(마이너스?)일때로 3가지 분기가 되게끔 수정하시면 됩니다.
저의 경우 0원일때 공백으로 처리하였고,
/lib/shop.lib.php 파일의 print_item_options() 함수에서는
if ($price_plus == "0") { // 옵션가격이 0원이라면 (+0원) 표시 제거
$str .= '<li>'.$row['ct_option'].' '.$row['ct_qty'].'개</li>'.PHP_EOL;
}
else {
$str .= '<li>'.$row['ct_option'].' '.$row['ct_qty'].'개 ('.$price_plus.display_price($row['io_price']).')</li>'.PHP_EOL;
}
이렇게 수정하였습니다. 테스트 결과 게시판, 개인결제 추가시에도 에러 발생은 없네요.
수정하면 게시판이나 개인결재 추가할때 토큰 에러 남니다.
좋은 자료 감사하니다. ^^
감사합니다.
감사합니다.