안녕하세요
프리랜서로 활동중인 비버팩토리입니다.
이번에 영카트 쓸일이 많다보니 고객님의 요청으로 배송 업체 여러개 설정 방법에 대해서 남겨봅니다.
/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);
이부분은 예를들어 가나다, 마바사 이렇게 콤마로 분리시켜 디비에 저장하는 쿼리 입니다.
이거 그대로 사용하시면 됩니다. 문제시 댓글로 남겨주세요. 그리고 맘에 드시면 좋아요 한번씩 눌러주세요^^
읽어주셔서 감사합니다. 끝!
게시글 목록
| 번호 | 제목 |
|---|---|
| 2169 | |
| 2168 | |
| 2167 | |
| 2158 | |
| 2146 | |
| 2140 | |
| 2130 | |
| 2114 | |
| 2102 | |
| 2095 | |
| 2084 | |
| 2075 | |
| 2072 | |
| 2070 | |
| 2069 | |
| 2065 | |
| 2058 | |
| 2056 | |
| 2055 | |
| 2054 | |
| 2049 | |
| 2038 | |
| 2036 | |
| 1989 | |
| 1956 | |
| 1923 | |
| 1918 | |
| 1904 | |
| 1892 | |
| 1891 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기