PHP code example of sendgo / wordpress
1. Go to this page and download the library: Download sendgo/wordpress library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
sendgo / wordpress example snippets
> $options = get_option('sendgo_options', []);
> $options['url'] = 'https://staging.sendgo.io';
> update_option('sendgo_options', $options);
>
$client = Sendgo_Plugin::instance()->client();
if ($client) {
// 알림톡 발송
$client->alimtalk->send([
'templateCode' => 'ORDER_CONFIRM_001',
'contacts' => [['contact' => '01012345678', 'var1' => 'ORD-001']],
]);
// SMS 발송
$client->sms->sendSms([
'content' => '인증번호: 123456',
'contacts' => [['contact' => '01012345678']],
]);
}
// 알림톡 템플릿을 플러그인에서 직접 등록하고 검수를 요청한다
$created = $client->noticeTemplates->create([
'kakaoSenderKey' => get_option('sendgo_kakao_sender_key'),
'templateName' => '주문 접수 안내',
'templateContent' => '#{name}님, 주문 #{orderNo}이 접수되었습니다.',
'templateMessageType' => 'BA',
'templateEmphasizeType' => 'NONE',
'categoryCode' => '001001',
'messagePurpose' => 'order_delivery',
'legalBasis' => 'transaction',
'benefitOrigin' => 'none',
'expiryType' => 'none',
'optInReviewConfirmed' => true,
'ctaClearConfirmed' => true,
'policyConfirmed' => true,
]);
$client->noticeTemplates->requestInspection($created['data']['template']['templateCode']);
add_action('user_register', function (int $user_id): void {
$client = Sendgo_Plugin::instance()->client();
if (!$client) {
return;
}
$user = get_userdata($user_id);
$phone = preg_replace('/[^0-9]/', '', (string) get_user_meta($user_id, 'billing_phone', true));
if ('' === $phone) {
return;
}
try {
$client->alimtalk->send([
'templateCode' => 'WELCOME_001',
'contacts' => [['contact' => $phone, 'var1' => $user->display_name]],
]);
} catch (\Throwable $e) {
// 발송 실패가 회원가입을 깨뜨리지 않게 한다.
error_log('Sendgo welcome message failed: ' . $e->getMessage());
}
}, 10, 1);
$client = Sendgo_Plugin::instance()->client();
// 단건 발송 — targeting 이 M/N/I 이면 contacts 가 필요합니다.
$client->brandMessage->send([
'targeting' => 'M',
'messageType' => 'FL',
'friendTemplateUuid' => '9cd5460b-6458-4edc-9b11-c26d3013c340',
'contacts' => [['contact' => '01012345678', 'var1' => '29,000원']],
]);
// 동보 발송 — 수신 동의한 전체 채널 친구 (수신자 목록 없음)
$result = $client->brandMessage->broadcast([
'messageType' => 'FW',
'friendTemplateUuid' => '9cd5460b-6458-4edc-9b11-c26d3013c340',
]);
// 동보 발송은 업스트림에서 비동기 처리되므로 진행 상황을 조회합니다.
$client->brandMessage->campaign($result['data']['campaignId']);
$client->brandMessage->campaigns(['count' => 10]);
$client = Sendgo_Plugin::instance()->client();
// 생성 — 같은 원본 URL 이면 기존 코드를 재사용합니다(forceNew 로 강제 신규 생성).
$link = $client->shortUrl->create([
'targetUrl' => 'https://shop.example.com/orders/1024',
'title' => '10월 주문 안내',
]);
$link['data']['shortUrl']; // https://sendgo.io/s/aB3xY7z
// 클릭 반응 — 일별 추이 · 디바이스 · 유입경로 · 국가
$client->shortUrl->stats($link['data']['uuid'], ['from' => '2026-08-01', 'to' => '2026-08-11']);
$client->shortUrl->list(['count' => 20]);
$client->shortUrl->show($link['data']['uuid']);
// 중지 — 리다이렉트만 멈추고(410 Gone) 통계는 남습니다.
$client->shortUrl->deactivate($link['data']['uuid']);
use Sendgo\Php\Exception\SendgoException;
try {
$client->alimtalk->send([...]);
} catch (SendgoException $e) {
// 발송 실패는 구매자에게 드러내지 않고 로그로 남긴다.
if (function_exists('wc_get_logger')) {
wc_get_logger()->error(
sprintf('Sendgo %d [%s]: %s', $e->getStatusCode(), $e->getErrorCode(), $e->getMessage()),
['source' => 'sendgo']
);
}
}