퍼스트가든에서 사용하는 사용자 함수 및 관련파일 추가
This commit is contained in:
201
extend/firstgarden.php
Normal file
201
extend/firstgarden.php
Normal file
@ -0,0 +1,201 @@
|
||||
<?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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user