비회원이 쓴 게시글에 답글 달면 메일 보내지는 기능

워드프레스 게시판 KBoard(케이보드) 사용중입니다.

비회원이 쓴 게시글에 답글 달면 메일 보내지는 기능이 되는지 문의드립니다.

게시판 입력필드에 email 란을 추가 하고,

테마의 functions.php 에

기존 글들 보고 소스를 넣어 보았는데, 메일이 보내지지 않아 문의드립니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    실제 테마 쪽 functions.php 파일에 추가하신 코드는 어떻게 되시는지요?

    에디터의 코드 스니펫 삽입 기능으로 올려주시겠어요?

    게시판 입력 필드 중 이메일 입력 필드의 메타키는 어떻게 설정하셨는지도 알려주시면

    코드 상 문제가 있는지 확인해보겠습니다.

    고맙습니다.

  • functions.php 에 삽입한 소스요.

    add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 2);
    function my_kboard_comments_insert($comment_uid, $content_uid){
    	$comment = new KBComment();
    	$comment->initWithUID($comment_uid);
    	
    	if($comment->parent_uid){
    		$parent = new KBComment();
    		$parent->initWithUID($comment->parent_uid);
    		
    		if($parent->user_uid){
    			$user = new WP_User($parent->user_uid);
    			
    			if($user->user_email) {
    				$title = '등록하신 댓글에 답변이 등록 되었습니다.';  // 알림 이메일 제목
    				$content = '등록하신 댓글에 대해 답변이 등록 되었습니다.'; // 메일 본문 내용
    				wp_mail($user->user_email, $title, $content);
    			}
    		}
    		else if($parent->option->email){
    			
    			$title = '등록하신 댓글에 답변이 등록 되었습니다.'; // 알림 이메일 제목
    			$content = '등록하신 댓글에 대해 답변이 등록 되었습니다.'; // 메일 본문 내용
    			wp_mail($parent->option->email, $title, $content);
    		}
    	}
    }

    그리고 입력 필드의 메타키는 email 로 했습니다.

  • 코드를 올려주실 땐 에디터의 코드 스니펫 삽입 기능을 이용 부탁드립니다.

    그렇지 않으면 코드가 이상해져서 에러 나는 코드로 바뀌거나,

    질의응답 시 의사소통에 오해와 문제가 생길 수도 있기 때문입니다.

     

    KBoard 댓글 입력 필드를 추가하는 방법은

    게시글에 입력 필드를 추가하는 방법과 다릅니다.

     

    댓글에 입력 필드를 추가하시려면

    워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
    function my_kboard_comments_field($field_html, $board, $content_uid, $commentBuilder){
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		?>
    		<div class="comments-field field-file1">
    			<label class="comments-field-label" for="comment_option_email">이메일</label>
    			<input type="text" id="comment_option_email" name="comment_option_email" value="">
    		</div>
    		<?php
    	}
    }

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.

    고맙습니다.

  • 코드 남겨주실 땐 에디터의 "코드 스니펫 삽입" 기능으로 남겨주셔야 제대로 된 답변을 받으실 확률이 높아집니다.

    참고 부탁드립니다.

  • 안녕하세요..

    게시판에 비회원이 남긴 글에 대한 답글을 메일로 보내고 싶은데, 회원에 대한 답글이 있어 소스 올립니다.

    add_action('kboard_document_insert', 'my_reply_email_notify', 10, 2);
    function my_reply_email_notify($content_uid, $board_id){
    	$content = new KBContent();
    	$content->initWithUID($content_uid);
    	$parent = $content->getTopContent();
    	if($content->uid != $parent->uid){
    		if($parent->member_uid){
    			$user_info = get_userdata($parent->member_uid);
    			$notify_email = $user_info->user_email;
    		}
    		else if($parent->option->email){
    			$notify_email = $parent->option->email;
    		}
    		else{
    			$notify_email = '';
    		}
    		
    		if($notify_email){
    			$url = new KBUrl();
    			$mail = kboard_mail();
    			$mail->to = $notify_email;
    			$mail->title = "답글이 등록 되었습니다.";
    			$mail->content = $content->content;
    			$mail->url = $url->getDocumentRedirect($content->uid);
    			$mail->url_name = '페이지로 이동';
    			$mail->send();
    		}
    	}
    }
    

    비회원에게 답글 메일을 보낼경우 수정해야 할 부분 부탁드려요^^

    감사합니다.^^

  • 안녕하세요.

    kboard_comments_insert 액션은 댓글 작성 시 코드를 추가하고 실행되게 하는 액션입니다.

    kboard_document_insert 액션은 게시글 작성 시 코드를 추가하고 실행되게 하는 액션입니다.

     

    비회원(원글작성자)이 작성한 게시글에 답글이 달렸을 때

    원글작성자에게 메일을 보내고 싶으신 건지요?

    별도로 코드를 수정하지 않으셔도 될 듯합니다.

     

    올려주신 코드를 적용하시면

    1. 로그인 사용자가 원글작성자일 때 답글이 달리면

    회원가입 시 입력한 이메일로 알림을 보냅니다.

    2. 비로그인 사용자가 원글작성자일 때 답글이 달리면

    KBoard 게시판 입력 필드 중 메타키가 email인 필드에 입력된 메일 주소로 알림을 보냅니다.

    3. 로그인 사용자가 아니거나

    비로그인 사용자가 이메일 필드에 메일 주소를 입력하지 않은 경우에는

    알림을 보내지 않습니다.

    고맙습니다.

  • 최신글 이메일 알림은 성공적으로 메일이 보내지는데, 

    답글에 대한 메일이 보내지지 않아요.

    위 소스에서 $mail->send();

    윗줄까지 실행되는건 확인 했는데,

    왜 메일이 보내지지 않는건지 모르겠어요. ㅠ.ㅠ.

    contact forms 플러그인도 사용하는데, 여기서도 메일이 제대로 보내져요..

    WP Mail SMTP 플러그인을 설치해 봤는데,

    그래도 현상은 똑같아요..

    메일이 안 보내지는 원인이 뭐가 있을까요?

  • 안녕하세요.

    최신글 이메일 알림 기능을 사용하지 않고도 확인해보시겠어요?

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 기본설정 탭에서

    최신글 이메일 알림 입력 필드를 임시로 비운 상태에서도 확인해보세요.

     

    만약, 최신글 이메일 알림 기능을 사용하지 않을 때

    정상적으로 동작한다면

    실제 메일을 보내는 기능은 서버 세팅에 의존하기 때문에

    서버 관리자 또는 웹호스팅 업체에도 문의를 해보셔야 할 듯합니다.

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기