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 Default Sender Email by IT Pixelz
고맙습니다.