Files
firstgarden-web-gnu/extend/firstgarden.php
2025-11-25 17:43:13 +09:00

216 lines
8.6 KiB
PHP

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 퍼스트가든 관련 경로 설정
define('FG_DIR', 'fg_data');
define('FG_DATA_URL', G5_URL.'/'.FG_DIR);
define('FG_DATA_PATH', G5_PATH.'/'.FG_DIR);
// 퍼스트가든 관리페이지용 경로 상수
define('FG_MANAGER_DIR', 'manager');
define('FG_MANAGER_URL', G5_URL.'/'.FG_MANAGER_DIR);
define('FG_MANAGER_PATH', G5_PATH.'/'.FG_MANAGER_DIR);
// define('FG_MANAGER_URL', G5_ADMIN_URL.'/'.FG_MANAGER_DIR);
// define('FG_MANAGER_PATH', G5_ADMIN_PATH.'/'.FG_MANAGER_DIR);
// 퍼스트가든 caf24 CDN 경로
include_once G5_PATH.'/fg_config.php';
// define('CDN_URL', G5_URL.'/image');
// define('CDN_URL', 'https://firstgarden.cdn3.cafe24.com');
// 연간회원권 상품 목록 (상품명 => 상품코드)
$annual_items = [
'빅5' => '1744799759',
'일반' => '1744817586',
];
// 퍼스트가든 관리페이지 adm 페이지로 전환
// /adm/admin.menuXXX.php 파일이 없는 경우, 새 메뉴 그룹이 없기 때문에, 강제로 메뉴파일 배열을 추가 hook (gnuwiz)
if(! function_exists('add_admin_amenu_update') ) {
add_replace('admin_amenu', 'add_admin_amenu_update', 1, 1);
function add_admin_amenu_update($amenu) {
$amenu['998'] = '';
return $amenu;
}
}
// 관리자메뉴에 커스텀 메뉴를 동적으로 추가 hook (gnuwiz)
if(! function_exists('add_admin_menu_update') ) {
add_replace('admin_menu', 'add_admin_menu_update', 1, 1);
function add_admin_menu_update($menu) {
$menu['menu998'] = array();
array_push($menu['menu998'],
array('998000', '퍼스트가든', G5_ADMIN_URL . '/fg_admin/bakery/bakery_stock.php', 'firstgarden'),
array('998010', '베이커리 재고관리', G5_ADMIN_URL . '/fg_admin/bakery/bakery_stock_adm.php', 'firstgarden'),
array('998020', '베이커리 목록관리', G5_ADMIN_URL . '/fg_admin/bakery/bakery_product_list.php', 'firstgarden'),
array('998210', 'VIP 명단관리', G5_ADMIN_URL . '/fg_admin/vip/vip_list.php', 'firstgarden'),
array('998220', 'VIP 구분관리', G5_ADMIN_URL . '/fg_admin/vip/vip_list_category.php', 'firstgarden'),
array('998310', '연간회원 명단관리', G5_ADMIN_URL . '/fg_admin/annual_member/annual_member_list.php', 'firstgarden'),
array('998320', '연간회원 구분관리', G5_ADMIN_URL . '/fg_admin/annual_member/annual_member_category.php', 'firstgarden'),
array('998411', '매표소주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_ticket.php', 'firstgarden'),
array('998421', '혜윰주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_hy.php', 'firstgarden'),
array('998431', 'B2B주문확인', G5_ADMIN_URL.'/fg_admin/orderlist_b2b.php', 'firstgarden'),
array('998412', '관리자주문확인', G5_ADMIN_URL . '/fg_admin/orderlist_admin.php', 'firstgarden'),
array('998413', '관지라월정산용', G5_ADMIN_URL . '/fg_admin/orderlist_admin_sum.php', 'firstgarden'),
);
return $menu;
}
}
// 새 글 작성 시 알림
// add_event('write_update_after', 'curl_tele_sent' G5_HOOK_DEFAULT_PRIORITY, 5);
// 텔레그램 메시지 보내기
// 사용법 curl_tele_sent(메세지);
if(! function_exists('curl_tele_sent')) {
function curl_tele_sent($text){
if(!$text){
exit("No Data!!");
} // end
$ch = curl_init();
$api_code = ""; // 900~
$chat_id = ""; // 822~~
$curl_url = "https://api.telegram.org/bot{$api_code}/sendMessage?chat_id={$chat_id}&text={$text}";
@curl_setopt($ch, CURLOPT_URL, $curl_url);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
@curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
@curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$exec = curl_exec($ch);
} // curl_tele_sent end
}
// 주문이 실행되는 경우 연간회원권 주문인지 확인하고, 연간회원권이라면 회원정보 입력 페이지로 이동시킴
if (!function_exists('add_annual_member')) {
function add_annual_member($od_id) {
global $g5, $annual_items;
// 상품코드 배열만 추출
$annu_item_code = array_values($annual_items);
$sql = "SELECT it_id, ct_qty FROM {$g5['g5_shop_cart_table']} WHERE od_id = '{$od_id}'";
$result = sql_query($sql);
$total_qty = 0;
while ($row = sql_fetch_array($result)) {
if (in_array($row['it_id'], $annu_item_code)) {
$total_qty += (int)$row['ct_qty'];
}
}
if ($total_qty > 0) {
send_annual_member_notice($od_id, $total_qty);
}
}
add_event('fg_orderformupdate_after', 'add_annual_member', G5_HOOK_DEFAULT_PRIORITY, 1);
}
// SMS 발송
function send_annual_member_notice($od_id, $qty) {
global $g5;
$od = sql_fetch("SELECT od_name, od_hp, od_email FROM {$g5['g5_shop_order_table']} WHERE od_id = '{$od_id}'");
$link = G5_URL . "/manager/annu_member_insert.php?od_id={$od_id}";
$message = "주문하신 연간회원권 {$qty}건에 대한 회원정보 입력이 필요합니다.\n"
. "아래 링크를 통해 회원 정보를 입력해주세요:\n{$link}";
// SMS 발송 (예시)
annu_send_sms(preg_replace('/[^0-9]/', '', $od['od_hp']), $message);
// 메일 발송 (예시)
/*
$subject = "연간회원권 회원정보 입력 안내";
$body = "안녕하세요, {$od['od_name']}님.\n\n"
. "주문하신 연간회원권 {$qty}건에 대한 회원정보 입력이 필요합니다.\n"
. "아래 링크를 클릭하여 입력해주세요.\n\n"
. "{$link}\n\n감사합니다.";
send_mail($od['od_email'], $subject, $body);
*/
}
function annu_send_sms($phone, $message) {
global $config, $default, $g5;
if (!$config['cf_sms_use'] || !$phone || !$message) {
return false;
}
$recv_number = preg_replace("/[^0-9]/", "", $phone);
$send_number = preg_replace("/[^0-9]/", "", $default['de_admin_company_tel']);
if (!$recv_number) {
return false;
}
$sms_messages = [
['recv' => $recv_number, 'send' => $send_number, 'cont' => $message]
];
$sms_count = 1;
if ($sms_count > 0) {
if ($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH . '/icode.lms.lib.php');
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
if ($port_setting !== false) {
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
foreach ($sms_messages as $sms) {
$strDest = [$sms['recv']];
$strCallBack = $sms['send'];
$strCaller = iconv_euckr(trim($default['de_admin_company_name']));
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms['cont']);
$strDate = '';
$nCount = count($strDest);
$SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
$SMS->Send();
$SMS->Init();
}
return true;
}
} else {
include_once(G5_LIB_PATH . '/icode.sms.lib.php');
$SMS = new SMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
foreach ($sms_messages as $sms) {
$recv_number = $sms['recv'];
$send_number = $sms['send'];
$sms_content = iconv_euckr($sms['cont']);
$SMS->Add($recv_number, $send_number, $config['cf_icode_id'], $sms_content, "");
}
$SMS->Send();
$SMS->Init();
return true;
}
}
return false;
}
// 전화번호에 하이픈 추가
function add_hyphen($tel){
$tel = preg_replace("/[^0-9]*/s","",$tel); //숫자이외 제거
if (substr($tel,0,2) =='02'){
return preg_replace("/([0-9]{2})([0-9]{3,4})([0-9]{4})$/","\\1-\\2-\\3", $tel);
} else if(substr($tel,0,2) =='8' && substr($tel,0,2) =='15' || substr($tel,0,2) =='16'|| substr($tel,0,2) =='18' ) {
return preg_replace("/([0-9]{4})([0-9]{4})$/","\\1-\\2",$tel); // 지능망 번호이면
} else {
return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/","\\1-\\2-\\3" ,$tel); //핸드폰번호만 이용한다면 이것만있어도됨
}
}