Домой Wp-Recall WP-Recall: Проблемы и решения Как отправить на почту админу при регистрации файл через $attach
3ответ(ов) в теме
Jbox
не в сети 2 недели
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
1
18:42
Версия WP-Recall: 16

Вообщем продолжение марлезонского балета. )

Ссылка на фото отправляется без проблем через переменную $textmail таким кодом.

function dd3_open_rcl_register(){
    $option = 1;
    return $option;
}
add_filter('rcl_users_can_register','dd3_open_rcl_register');


add_action('user_register', 'rcl_send_user_data_to_mail', 50);
function rcl_send_user_data_to_mail($user_id){
    
    
	$admin_email = 'email@example.com'; // укажите почту админа
	$subject = 'Данные нового пользователя'; // заголовок письма
	
	$attach_id_1 = get_user_meta($user_id, 'f_001_jb', 1);
	$image_url_1 = wp_get_attachment_url( $attach_id_1);

	
foreach($_REQUEST as $k => $val){


$user_email = $_POST['user_email'];
$user_login = $_POST['user_login'];

$textmail = '<p>На сайте зарегистрировался новый пользователь! Данные указанные при регистрации: </p>'; 
$textmail .= '<table><tr><td width="140px" valign="top"><b>Логин</b></td><td>'.$user_login.'<br></td></tr>';
$textmail .= '<tr><td width="140px" valign="top"><b>Почта</b></td><td>'.$user_email.'<br></td></tr>';
$textmail .= '<b>Фото</b><br><img style="height: 200px;padding-right: 20px" src="'.$image_url_1.'">';

}
	rcl_mail($admin_email, $subject, $textmail);

}

Но нужно чтобы отправлялась не ссылка, а файл фотографии, то есть через $attach. Первым делом пошел смотреть на функцию rcl_mail. Тут $attach я так понял false и не реализован.

function rcl_mail( $email, $title, $text, $from = false, $attach = false ) {

	$from_name	 = (isset( $from['name'] )) ? $from['name'] : get_bloginfo( 'name' );
	$from_mail	 = (isset( $from['email'] )) ? $from['email'] : 'noreply@' . $_SERVER['HTTP_HOST'];

	add_filter( 'wp_mail_content_type', function() {
		return "text/html";
	} );

	$headers = 'From: ' . $from_name . ' ' . "rn";

	$text .= '<p><small>-----------------------------------------------------<br />
    ' . __( 'This letter was created automatically, no need to answer it.', 'wp-recall' ) . '<br />
    "' . get_bloginfo( 'name' ) . '"</small></p>';

	return wp_mail( $email, $title, $text, $headers, $attach );
}

Решил попробовать переделать через wp_mail. Для начала в $attachments прописал готовое фото уже хранящееся на хостинге. Для теста.

function dd3_open_rcl_register(){
    $option = 1;
    return $option;
}
add_filter('rcl_users_can_register','dd3_open_rcl_register');


add_action('user_register', 'rcl_send_user_data_to_mail', 50);
function rcl_send_user_data_to_mail($user_id){
    
    
	$to = 'email@example.com'; // укажите почту админа
	$subject = 'Данные нового пользователя'; // заголовок письма
	
	$attachments = array(WP_CONTENT_DIR . '/uploads/foto.jpg');

	
foreach($_REQUEST as $k => $val){


$user_email = $_POST['user_email'];
$user_login = $_POST['user_login'];

$message = '<p>На сайте зарегистрировался новый пользователь! Данные указанные при регистрации: </p>'; 
$message .= '<table><tr><td width="140px" valign="top"><b>Логин</b></td><td>'.$user_login.'<br></td></tr>';
$message .= '<tr><td width="140px" valign="top"><b>Почта</b></td><td>'.$user_email.'<br></td></tr>';

}
	wp_mail($to, $subject, $message, $attachments);

}

Все равно вложением файл не отправляет. Как можно реализовать в данном случае отправку файла/фото через $attachments?

0
Preci
не в сети 1 час
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1577
2
19:03

rcl_mail это просто обертка над wp_mail и файлы можно в нее передавать

rcl_mail($to, $subject, $message, false, $attachments);

тут же:

wp_mail($to, $subject, $message, $attachments);

$attachments должен быть 5ым параметром, а 4ым идут заголовки

wp_mail( $to, $subject, $message, $headers, $attachments );

1
Jbox
не в сети 2 недели
На сайте с 09.02.2021
Участник
Тем 4
Сообщения 24
3
20:54

Огромнейшее спасибо. Я как всегда. )))

0
Вы не имеете права на публикацию сообщений в этой теме