알림 메일 제목 구성 문의

add_filter('kboard_latest_alerts_subject', 'my_kboard_latest_alerts_subject', 10, 2);
function my_kboard_latest_alerts_subject($subject, $content){
	$board = $content->getBoard();
	$subject = '['.$board->board_name.']';
	return $subject;
}

알려주신 방법과 여기저기 자료를 모아서 해봤지만. 지식이 부족하여 

다시 문의 드립니다. 

[게시판제목] 까지는 제목에 붙였습니다. 

여기에 게시물의 제목까지 붙여넣고 

메일의 내용은 게시물 내용 들어가고

보낸 사람 메일에는 작성자의 이름 또는 메일이 추가가 됐으면 좋겠지만 그냥 다른 메일이 들어갔으면 좋겠습니다.

 

예시는 아래와 같습니다.

[게시판이름] 게시물의 제목 

 

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    KBoard 플러그인 최신글 이메일 알림 시 게시판 이름 옆에 게시글 제목을 표시하시려면

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

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

    add_filter('kboard_latest_alerts_subject', 'my_kboard_latest_alerts_subject', 10, 2);
    function my_kboard_latest_alerts_subject($subject, $content){
    	$board = $content->getBoard();
    	if($board->id == '1'){
    		$subject = '['.$board->board_name.']' . $content->title;
    	}
    	
    	return $subject;
    }

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

    메일 내용은 별도로 코드를 수정하지 않으셔도 게시글의 본문 내용으로 적용됩니다.

     

    보내는 메일 쪽을 수정하시려면

    테마 쪽 functions.php 파일 하단에

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

    add_filter('wp_mail_from', 'my_wp_mail_from', 10, 1);
    function my_wp_mail_from($mail_from){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	if($board_id == '1'){
    		$mail_from = 'my_eamil@cosmosfarm.com';
    	}
    	
    	return $mail_from;
    }
    
    add_filter('wp_mail_from_name', 'my_wp_mail_from_name');
    function my_wp_mail_from_name($mail_from_name){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	if($board_id == '1'){
    		$mail_from_name = 'Cosmosfarm';
    	}
    	
    	return $mail_from_name;
    }

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

    $mail_from은 실제 보내는 쪽 이메일로 설정해보시고

    $mail_from_name은 보내는 쪽 이름으로 설정해보시겠어요?

     

    만약, 로그인 사용자가 게시글 작성 시 해당 사용자 정보로

    메일 보내는 쪽을 설정하시려면

    아래의 코드로 교체해보시겠어요?

    add_filter('wp_mail_from', 'my_wp_mail_from', 10, 1);
    function my_wp_mail_from($mail_from){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	if($board_id == '1'){
    		if(is_user_logged_in()){
    			$user = wp_get_current_user();
    			$mail_from = $user->user_email;
    		}
    		else{
    			$mail_from = 'my_eamil@cosmosfarm.com';
    		}
    	}
    	
    	return $mail_from;
    }
    
    add_filter('wp_mail_from_name', 'my_wp_mail_from_name');
    function my_wp_mail_from_name($mail_from_name){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	$member_display = isset($_POST['member_display'])&&$_POST['member_display'] ? $_POST['member_display'] : '';
    	if($board_id == '1'){
    		$mail_from_name = $member_display;
    	}
    	
    	return $mail_from_name;
    }

    위의 코드를 적용하면 1번 게시판에 로그인 사용자가 게시글 작성 시

    메일 보내는 쪽을 사용자 이메일과 작성자명으로 설정해서 메일을 전송합니다.

     

    비회원으로 게시글 작성 시

    메일 보내는 쪽을 미리 설정해준 이메일로 설정하고 작성자명은 입력한 작성자명으로 설정해서 전송합니다.

    고맙습니다.

  • add_filter('kboard_latest_alerts_subject', 'my_kboard_latest_alerts_subject', 10, 2);
    function my_kboard_latest_alerts_subject($subject, $content){
    	$board = $content->getBoard();
    	
    		$subject = '['.$board->board_name.']' . $content->title;
    	return $subject;
    }
    
    
    add_filter('wp_mail_from', 'my_wp_mail_from', 10, 1);
    function my_wp_mail_from($mail_from){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	if($board_id == '25'){
    		if(is_user_logged_in()){
    			$user = wp_get_current_user();
    			$mail_from = $user->user_email;
    		}
    		else{
    			$mail_from = 'my_eamil@cosmosfarm.com';
    		}
    	}
    	
    	return $mail_from;
    }
    
    add_filter('wp_mail_from_name', 'my_wp_mail_from_name');
    function my_wp_mail_from_name($mail_from_name){
    	$board_id = isset($_POST['board_id'])&&$_POST['board_id'] ? $_POST['board_id'] : '';
    	$member_display = isset($_POST['member_display'])&&$_POST['member_display'] ? $_POST['member_display'] : '';
    	if($board_id == '25'){
    		$mail_from_name = $member_display;
    	}
    	
    	return $mail_from_name;
    }
    

    알려 주신대로 차일드 테마 function에 입력을 했습니다.

    제목 부분은 적용이 되는데 아래 2가지 작성자 정보로 알리 메일 보내는건 

    작동을 안하는듯 합니다. 

  • 해당 코드가 적용되지 않는다면

    올려주신 코드 중에서

    아래의 코드를 각각 찾아서

    add_filter('wp_mail_from', 'my_wp_mail_from', 10, 1);
    add_filter('wp_mail_from_name', 'my_wp_mail_from_name');

    아래의 코드로 교체해보시겠어요?

    add_filter('wp_mail_from', 'my_wp_mail_from', 999, 1);
    add_filter('wp_mail_from_name', 'my_wp_mail_from_name', 999, 1);

     

    관련 플러그인으로는 아래의 플러그인이 있습니다.

    WP Simple Mail Sender

    Wp Default Sender Email by IT Pixelz

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기