모든 게시판의 모든 댓글을 관리자에게 알림 설정을 하려고 하는데 기존 코드들 때문인지 치명적인 오류가 뜹니다. 도와주세요 ㅜㅜ

안녕하세요~ 항상 수고 많으십니다.
 

모든 게시판의 모든 댓글을 관리자에게 알림 메일이 전송 되도록 설정하려고 하고 있습니다.
KBoard 커뮤니티 게시판을 검색해서 관리자에게 모든 댓글이 오도록 하는 코드를 찾아서 추가하면, 기존의 코드들 때문인지 '치명적인 오류'가 뜹니다.

아래에 제가 추가하려는 코드와 현재 차일드 테마의 'functions.php'에 이미 추가되어 있는 전체 코드를 함께 올려드립니다.
한번 검토해 주시고 귀한 자문을 좀 부탁드립니다.

고맙습니다.

----------------------

[추가하려는 코드]

// 모든 게시판의 모든 댓글 관리자에게 알림(관리자 댓글 제외)
add_action('kboard_comments_insert', 'my_admin_comment_email_alert', 10, 2);
function my_admin_comment_email_alert($comment_uid, $content_uid){
	$comment = new KBComment();
	$comment->initWithUID($comment_uid);
	$content = new KBContent();
	$content->initWithUID($content_uid);
	$board = $content->getBoard();
	
	if(!$board->isAdmin()){
		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 = $comment->content;
		$mail->url = $url->getDocumentRedirect($content->uid);
		$mail->url_name = '페이지로 이동';
		$mail->send();
	}
}

------------------------

[차일드 테마의 'functions.php'에 이미 추가되어 있는 전체 코드]

<?php
/**
 * Astra Child Theme functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Astra Child
 * @since 1.0.0
 */

/**
 * Define Constants
 */
define( 'CHILD_THEME_ASTRA_CHILD_VERSION', '1.0.0' );

/**
 * Enqueue styles
 */
function child_enqueue_styles() {

	wp_enqueue_style( 'astra-child-theme-css', get_stylesheet_directory_uri() . '/style.css', array('astra-theme-css'), CHILD_THEME_ASTRA_CHILD_VERSION, 'all' );

}

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles', 15 );


// 큰 이미지 파일 업로드 시 이미지 임계값(image threshold) 제한 해제하기
add_filter( 'big_image_size_threshold', '__return_false' );

// 게시판 작성자 이름 별표
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugins, $boardBuilder){
	$board = $boardBuilder->board;
	
	if(in_array($board->id, array('1', '9', '10', '11')) && !$board->isAdmin()){ // 실제 게시판 id로 적용해주세요.
		$strlen = mb_strlen($user_name, 'utf-8');
		
		if($strlen > 3){
			$showlen = 2;
		}
		else{
			$showlen = 1;
		}

		$user_display = mb_substr($user_name, 0, $showlen, 'utf-8') . str_repeat(' * ', $strlen-$showlen);
	}

	return $user_display;
}

// 관리자가 댓글 달면 작성자에게 이메일 알림
add_action('kboard_comments_insert', 'my_admin_comment_email_alert', 10, 2);
function my_admin_comment_email_alert($comment_uid, $content_uid){
	$comment = new KBComment();
	$comment->initWithUID($comment_uid);
	$content = new KBContent();
	$content->initWithUID($content_uid);
	$board = $content->getBoard();
	if($board->isAdmin()){
		if($content->option->email){
			if(!class_exists('KBMail')){
				include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
			}
			$url = new KBUrl();
			$mail = new KBMail();
			$mail->to = $content->option->email;
			$mail->title = "고객님의 글에 답변이 등록되었습니다.";
			$mail->content = $comment->content;
			$mail->url = $url->getDocumentRedirect($content->uid);
			$mail->url_name = '해당 글로 이동';
			$mail->send();
		}
	}
}

// 새글 등록 시 작성자에게 바로 안내메일 보내기
add_action('kboard_document_insert', 'my_kboard_document_insert_210804', 10, 2);
function my_kboard_document_insert_210804($content_uid, $board_id){
	$document = new KBContent();
	$document->initWithUID($content_uid);
	
	if($document->option->email){
		if(!class_exists('KBMail')){
			include_once KBOARD_DIR_PATH . '/class/KBMail.class.php';
		}
		
		$url = new KBUrl();
		$mail = new KBMail();
		$mail->to = $document->option->email; // 이메일 필드 메타키
		$mail->title = '고객님의 신청이 정상적으로 등록되었습니다.';
		$mail->content = $document->content;
		$mail->url = $url->getDocumentRedirect($document->uid);
		$mail->url_name = '해당 글로 이동';
		$mail->send();
    }
}

// 댓글 작성자에게 대댓글 알림 메일
add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
function my_kboard_comments_insert($insert_id, $content_uid, $board){
if(in_array($board->id, array('9', '10', '11'))){ // 실제 게시판 id로 적용해주세요.
		$comment = new KBComment();
		$comment->initWithUID($insert_id);
		
		$document = new KBContent();
		$document->initWithUID($content_uid);
		
		if($comment->parent_uid){
			$parent_comment = new KBComment();
			$parent_comment->initWithUID($comment->parent_uid);
			
			if($parent_comment->user_uid){
				$user = new WP_User($parent_comment->user_uid);
				if($user->user_email && $user->ID != get_current_user_id()){
					kboard_mail();
					
					$url = new KBUrl();
					$mail = new KBMail();
					$mail->to = $user->user_email;
					$mail->title = "[댓글알림] {$document->title}";
					$mail->content = $comment->content;
					$mail->url = $url->getDocumentRedirect($document->uid);
					$mail->url_name = '해당 글로 이동';
					$mail->send();
				}
			}
		}
	}
}

// 기술지원게시판 제목(업체명) 마스킹
add_filter('kboard_content_value', 'kboard_content_value_20210728', 10, 3);
function kboard_content_value_20210728($value, $name, $content){
	$board = $content->getBoard();
	if($name == 'title' && kboard_mod() != 'editor' && $board->id == '11'){ // 실제 게시판 id로 적용해주세요.
		$strlen = mb_strlen($value, 'utf-8');
		
		$value = mb_substr($value, 0, 2, 'utf-8') . str_repeat('*', $strlen-1);
	}
	
	return $value;
}


 

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