배송업체 여러개 선택 하게 기능 수정방법
안녕하세요
프리랜서로 활동중인 비버팩토리입니다.
이번에 영카트 쓸일이 많다보니 고객님의 요청으로 배송 업체 여러개 설정 방법에 대해서 남겨봅니다.
/adm/shop_admin/configform.php
파일 접속합니다.
보면 배송업체라고 한 라인이 있습니다. 거기를 아래 소스코드로 변경해주세요.
<tr>
<th scope="row"><label for="de_delivery_company">배송업체</label></th>
<td>
<?php echo help("이용 중이거나 이용하실 배송업체를 선택하세요."); ?>
<?php echo get_delivery_company_checkbox($default['de_delivery_company']); ?>
</td>
</tr>
그리고나서 아래 함수를 옮겨주세요. (적절한곳에 옮겨주세요 혹은 따로 확장시켜서 옮겨주심됩니다. )
if(!function_exists('get_delivery_company_checkbox')) {
// 배송업체 리스트 얻기
function get_delivery_company_checkbox($company)
{
// 선택된 회사들을 배열로 처리 (콤마로 구분된 문자열이라면 분리)
$selected_companies = is_array($company) ? $company : explode(',', $company);
$checkbox = '';
// "없음" 체크박스
$checked = in_array('', $selected_companies) ? 'checked' : '';
$checkbox .= '<label><input type="checkbox" name="de_delivery_company[]" value="" ' . $checked . '> 없음</label><br>' . PHP_EOL;
// "자체배송" 체크박스
$checked = in_array('자체배송', $selected_companies) ? 'checked' : '';
$checkbox .= '<label><input type="checkbox" name="de_delivery_company[]" value="자체배송" ' . $checked . '> 자체배송</label><br>' . PHP_EOL;
// 설정된 배송 업체 목록 처리
$dlcomp = explode(")", str_replace("(", "", G5_DELIVERY_COMPANY));
for ($i = 0; $i < count($dlcomp); $i++) {
if (trim($dlcomp[$i]) == "") continue;
list($value, $url, $tel) = explode("^", $dlcomp[$i]);
$checked = in_array($value, $selected_companies) ? 'checked' : '';
$checkbox .= '<label><input type="checkbox" name="de_delivery_company[]" value="' . $value . '" ' . $checked . '> ' . $value . '</label><br>' . PHP_EOL;
}
return $checkbox;
}
}
이제는 백엔드로 넘어가도록 합니다.
/adm/shop_admin/configformupdate.php 파일 접근합니다.
$check_sanitize_keys = array( 여기 배열 변수로 이동합니다.
여기보면 //배송업체 라고 주석처리 된곳을 찾습니다.
거기부분을 주석처리 합니다. 혹은 이부분 삭제 하셔도됩니다.
//'de_delivery_company', //배송업체
이유는 필드에 콤마를 제거 되어서 에러가 납니다.
이러고 저장합니다. 나머진 훅을 사용하면됩니다.
run_event('shop_admin_configformupdate');
여기서 택배배송 필드를 저장하는 기능을 만들면됩니다. (이부분은 따로 입력 안하셔도 됩니다.)
add_event('shop_admin_configformupdate',function () {
global $g5;
if (isset($_POST['de_delivery_company']) && is_array($_POST['de_delivery_company'])) {
// 배열을 문자열로 변환
$delivery_company = implode(',', $_POST['de_delivery_company']);
} else {
// 아무 것도 선택 안 했을 경우
$delivery_company = '';
}
// DB에 업데이트
$sql = "UPDATE {$g5['g5_shop_default_table']}
SET de_delivery_company = '".sql_real_escape_string($delivery_company)."'
WHERE de_id = '1'";
sql_query($sql);
}, G5_HOOK_DEFAULT_PRIORITY, 0);
이부분은 예를들어 가나다, 마바사 이렇게 콤마로 분리시켜 디비에 저장하는 쿼리 입니다.
이거 그대로 사용하시면 됩니다. 문제시 댓글로 남겨주세요. 그리고 맘에 드시면 좋아요 한번씩 눌러주세요^^
읽어주셔서 감사합니다. 끝!
댓글 1개
비버팩토리
3개월 전
필요시 댓글 남겨주시면 플러그인으로 만들어드립니다.
게시판 목록
영카트5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 431 | 2개월 전 | 139 | ||
| 430 | 2개월 전 | 170 | ||
| 429 | 2개월 전 | 197 | ||
| 428 |
선택과집중
|
2개월 전 | 242 | |
| 427 |
선택과집중
|
3개월 전 | 391 | |
| 426 |
비버팩토리
|
3개월 전 | 363 | |
| 425 |
선택과집중
|
3개월 전 | 269 | |
| 424 |
선택과집중
|
3개월 전 | 402 | |
| 423 |
선택과집중
|
3개월 전 | 367 | |
| 422 |
선택과집중
|
3개월 전 | 335 | |
| 421 |
선택과집중
|
4개월 전 | 385 | |
| 420 | 4개월 전 | 425 | ||
| 419 |
선택과집중
|
4개월 전 | 366 | |
| 418 |
세르반데스
|
4개월 전 | 331 | |
| 417 |
선택과집중
|
4개월 전 | 421 | |
| 416 |
선택과집중
|
5개월 전 | 334 | |
| 415 |
선택과집중
|
5개월 전 | 366 | |
| 414 |
선택과집중
|
5개월 전 | 381 | |
| 413 |
선택과집중
|
5개월 전 | 465 | |
| 412 |
선택과집중
|
6개월 전 | 408 | |
| 411 |
선택과집중
|
6개월 전 | 318 | |
| 410 |
다케미카코
|
8개월 전 | 832 | |
| 409 |
다케미카코
|
8개월 전 | 585 | |
| 408 | 8개월 전 | 569 | ||
| 407 |
|
10개월 전 | 928 | |
| 406 | 11개월 전 | 1022 | ||
| 405 |
|
11개월 전 | 561 | |
| 404 | 1년 전 | 1276 | ||
| 403 | 1년 전 | 747 | ||
| 402 | 1년 전 | 782 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기