안녕하세요 Kboard 잘 사용하고 있습니다.
게시판 검색하여 프로그램을 수정중에 있는데 막히는 부분이 있어 여쭙습니다.
document 에 Ajax 카테고리 변경 버튼을 만들고 페이지 이동을 시키고 있는데 function에 카테고리 변경시 이메일 알림에서 Ajax 때문인지 관리자에게 이메일이 안옵니다.
(페이지 수정에서 수동으로 카테고리 선택 후 저장시는 잘 오고 있습니다.)
먼저 document 에 코드는
<button type="button" onclick="kboard_new_category_update('<?php echo $content->uid?>', 'Calculating Shipping Cost')">Go Naver</button>
function kboard_new_category_update(content_uid, new_category){
kboard_content_update(content_uid, {category2:new_category}, function(res){
if(res.result == 'success'){
alert('Requested successfully');
window.location.href= "https://naver.com";
}
else{
alert(res.message);
}
});
}
이고 게시판을 검색해보니 Ajax는 kboard_update_data 액션을 사용해야 하는거 같아
function에 다음과 같이 넣었으나 오류가 뜹니다.
add_action('kboard_update_data', 'my_admin_category_email_alert', 10, 2);
function my_admin_category_email_alert($data, $board_id){
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
$url = new KBUrl();
$mail = new KBMail();
$mail->to = get_option('admin_email');
$mail->title = "신청 의뢰왔습니다.";
$mail->content = $data['content'];
$mail->url = $url->getDocumentRedirect($document->uid);
$mail->url_name = '페이지로 이동';
$mail->send();
return $data;
}
function 코드만 수정하면 될듯한데 도움 부탁드립니다.
감사합니다.
안녕하세요~^^
kboard_update_data 액션은 게시글의 uid 정보를 제공하지 않습니다.
위 액션 대신 kboard_document_update 액션을 사용해보시겠어요?
사용 가이드는 아래 링크를 참고해주세요.
https://www.cosmosfarm.com/products/kboard/hooks
메일이 발송되지 않는 원인에는 여러가지가 있습니다.
wp mail SMTP 등의 메일 플러그인으로
테스트 메일이 발송 되는지 확인 해보시는 것을 권장드립니다.
고맙습니다.
다음과 같이 코드를 넣었으나 document 에서 ajax 버튼으로 카테고리 변경시
이메일이 오지 않습니다. 게시글을 edit 하여 수동으로 카테고리 변경시 이메일은 잘 오지만 ajax 때문인거 같은데
도와주세요. Ajax 버튼의 경우 카테고리 변경시 관리자에게 이메일이 안오나요?
add_action('kboard_document_update', 'my_admin_category_email_alert', 10, 2);
function my_admin_category_email_alert($content_uid, $board_id){
$document = new KBContent();
$document->initWithUID($content_uid);
if(!class_exists('KBMail')){
include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
$url = new KBUrl();
$mail = new KBMail();
$mail->to = get_option('admin_email');
$mail->title = "신청서가 수정되었습니다.";
$mail->content = $content->content;
$mail->url = $url->getDocumentRedirect($document->uid);
$mail->url_name = 'GO TO PAGE';
$mail->send();
}
단순히 Ajax가 원인이라고 판단하기는 어렵습니다.
wp mail SMTP 등의 메일 플러그인으로
메일이 동작하는지 우선 테스트 해보고
이후 Ajax 작업 시 콘솔로 출력해보거나
네트워크 작업을 보면서 Ajax 자체도 정상 동작하는지
확인해보셔야 할 듯 합니다.
고맙습니다.