게시글 이동시 관리자에게 이메일 알림

안녕하세요, 제가 저번에 문의할때 설명이 부족했던거 같습니다.

<신청>버튼 누를시 게시글이 A게시판에서 B게시판으로 이동가능하게 하고싶다는거였는데 게시글단어를 빼고 문의를 드렸더라구요ㅠ

버튼은

<td button type="button" class="kboard-ask-one-button-small"><a href="<?php echo kboard_url()?>">B게시판 이동</a></button>   (kboard_url() 여기에 kboard id넣는거 맞나요?)

 

Fucntion은

 add_action('kboard_document_insert', 'kboard_send_email', 10, 2);

function my_kboard_document_insert($content_uid, $board_id)

   { global $wpdb;

if($board_id == '7'){

$new_board_id = '11';

$content = new KBContent();

$content->initWithUID($content_uid);

$parent = $content->getTopContent();

 if($content->uid != $parent->uid){

$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `board_id` = '{$new_board_id}' WHERE `uid` = '{$content->uid}'");

$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `board_id` = '{$new_board_id}' WHERE `uid` = '{$parent->uid}'"); }
              $notify_email = $Editer_info->user_email;
             else if($parent->option->email){
             $notify_email = $parent->option->email;
}
              else{
             $notify_email = '';
}

             if($notify_email){
            if(!class_exists('KBMail')){
             include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
}
            $url = new KBUrl();
            $mail = new KBMail();
            $mail->to = $notify_email;
            $mail->title = "신청 의뢰왔습니다.";
           $mail->content = $content->content;
          $mail->url = $url->getDocumentRedirect($content->uid);
              $mail->url_name = '페이지로 이동';
           $mail->send();
}
}
}

 

이렇게 하면 버튼 누를시 게시글이 옮겨지면서 관리자에게 이메일 알림이 오나요? 

답변부탁드립니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    kboard_url() 이라는 함수는 없는 것으로 생각되는데요.

    직접 만드셨는지요?

    그리고 게시판을 옮겨야만 하는지는 고려 해보세요.

    게시글의 카테고리만 바꿔도 충분할 수 있습니다.

    아래 링크가 도움이 될 듯합니다.

    KBoard(케이보드) 게시글 AJAX 업데이트 방법

     

    그리고 본문에 올린 코드는 조금 교정해드렸습니다. (이전 질의응답의 코드를 활용했습니다.)

    아래 코드는 게시글이 새로 등록됐을 때 실행되는 코드입니다.

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 2);
    function my_kboard_document_insert($content_uid, $board_id){
    	global $wpdb;
    	if($board_id == '7'){
    		$new_board_id = '11';
    		$content = new KBContent();
    		$content->initWithUID($content_uid);
    		$parent = $content->getTopContent();
    		if($content->uid != $parent->uid){
    			$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `board_id` = '{$new_board_id}' WHERE `uid` = '{$content->uid}'");
    			$wpdb->query("UPDATE `{$wpdb->prefix}kboard_board_content` SET `board_id` = '{$new_board_id}' WHERE `uid` = '{$parent->uid}'");
    			
    			if($parent->option->email){
    				$notify_email = $parent->option->email;
    			}
    			else{
    				$notify_email = '';
    			}
    			
    			if($notify_email){
    				if(!class_exists('KBMail')){
    					include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
    				}
    				$url = new KBUrl();
    				$mail = new KBMail();
    				$mail->to = $notify_email;
    				$mail->title = "신청 의뢰왔습니다.";
    				$mail->content = $content->content;
    				$mail->url = $url->getDocumentRedirect($content->uid);
    				$mail->url_name = '페이지로 이동';
    				$mail->send();
    			}
    		}
    	}
    }

    kboard_document_insert 액션의 설명은 아래 페이지를 참고해주세요.

    http://www.cosmosfarm.com/products/kboard/hooks

     

    그리고 반드시 코드를 올려주실 땐 에디터의 "코드 스니펫 삽입" 기능으로 삽입해주세요. 

    안 그럼 코드가 이상해져서 에러 나는 코드로 바뀌거나, 질의응답시 의사소통에 오해와 문제가 생길 수도 있기 때문입니다

     

    게시글을 다른 게시판으로 옮기는 기능은 관리자 페이지에 있는 기능을 사용해주시는게 좋습니다.

    워드프레스 관리자 -> KBoard -> 전체 게시글 페이지에서 게시판을 옮길 수 있습니다.

    고맙습니다.

  • 감사합니다. 제가 아직 코드쪽 지식이 없어서ㅜ 짜집기 할려고하니 많이 어려움이있어 많은 질문을 하는데 양해부탁드립니다.

    하나더 질문드리겠습니다.

    제가 list.php 파일에 버튼을 추가 하고싶어서 document like버튼을 가져와서 해놨습니다. 일단 구연되긴하는데 자바스크립은 건드리지 않았습니다. 혹시 자바스크립도 수정 해야되나요? 

    <td 
                        <div class="kboard-control">
                        <button type="button" class="kboard-button-action" onclick="kboard_document_approval(this)" data-uid="<?php echo $content->uid?>" title="<?php echo __('Test', 'kboard')?>" style="color:<?php if($content->like > 0):?>#f61b5d<?php else:?>#00a8e7<?php endif?>"><span class="kboard-document-approval"><?php if($content->like > 0): echo '신청 완료'; else: echo '신청'; endif?></span></button>
                
    <script>
    function kboard_document_approval(button, callback){
        if(confirm("정말 신청하시겠습니까?")) {
            if(!kboard_ajax_lock){
                kboard_ajax_lock = true;
                jQuery.post(kboard_settings.alax_url, {'action':'kboard_document_like', 'document_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
                    kboard_ajax_lock = false;
                    if(typeof callback === 'function'){
                        callback(res);
                    }
                    else{
                        if(res.result == 'error'){
                            alert('Already 신청완료');
                        }
                        else{
                            jQuery('.kboard-document-approval', button).text('신청 완료');
                            jQuery(button).css('color', '#f61b5d');
                        }
                    }
                });
            }
            else{
                alert(kboard_localize_strings.please_wait);
            }
        }
        return false;
        }
            if()    
    </script>
    </div>
                        </td>

     

    이렇게 만들었습니다. 여기에

    위에 알려주신 

    if($parent->option->email){ $notify_email = $parent->option->email; } else{ $notify_email = ''; } if($notify_email){ if(!class_exists('KBMail')){ include_once KBOARD_DIR_PATH . '/class/KBMail.class.php'; } $url = new KBUrl(); $mail = new KBMail(); $mail->to = $notify_email; $mail->title = "신청 의뢰왔습니다."; $mail->content = $content->content; $mail->url = $url->getDocumentRedirect($content->uid); $mail->url_name = '페이지로 이동'; $mail->send(); } } } }

    버튼 누를시(신청완료 시) 관리자에게 메일알림이 오는 function을 넣고 싶은데

    어떻게 넣어야되는지 감이 안와서 문의드립니다. 

    add_action('kboard_document_insert', 'my_admin_email_alert', 10, 2);

    function my_admin_email_alert($content_uid, $board_id){

        if($content->like parent_uid){
            $parent = new like();
            $parent->initWithUID($like->parent_uid);
            
          if($parent->option->email){
                    $notify_email = $parent->option->email;
                }
                else{
                    $notify_email = '';
                }
                
                if($notify_email){
                    if(!class_exists('KBMail')){
                        include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
                    }
                    $url = new KBUrl();
                    $mail = new KBMail();
                    $mail->to = $notify_email;
                    $mail->title = "신청 의뢰왔습니다.";
                    $mail->content = $content->content;
                    $mail->url = $url->getDocumentRedirect($content->uid);
                    $mail->url_name = '페이지로 이동';
                    $mail->send();
                }
            }
        }
        
    ?>

     

    이렇게 하는맞는가요?

  • 안녕하세요.

    kboard_document_insert 액션은 게시글이 등록될 때 동작합니다.

    document.php 파일에 있는 기존의 like 버튼보다는 직접 새로운 버튼을 추가하고

    버튼 클릭 시 카테고리를 변경하는 방법이 좋을 듯합니다.

    KBoard(케이보드) 게시글 AJAX 업데이트 방법을 참고해보시고

    버튼 누를 시(신청완료 시) 관리자에게 메일 알림이 오는 function은

    kboard_document_update 액션을 이용해보시겠어요?

    KBoard 액션과 필터는 아래의 링크를 참고해보세요.

    http://www.cosmosfarm.com/products/kboard/hooks

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요