چگونه از آمدن ایمیل در وردپرس مطلع شویم؟

 

سلام عزیزان؛

بعضی وقتا منتظر رسیدن ایمیلی هستیم و مجبور میشیم که مدام صفحه ی ایمیل ها رو رفرش کنیم تا زمانی که ایمیل مربوطه به دستمون برسه! برای اینکه این اتفاق نیفته سیستم های ارسال ایمیل قابلیتی با عنوان نوتیفیکیشن یا اعلانات دارند که به شما اطلاع میدن ایمیلی در حال حاضر برای شما ارسال شده است! برای اینکه بفهمیم چطوری باید این قابلیت رو داشته باشیم اول یه توضیح اجمالی درباره ی نحوه ی ارسال ایمیل توسط وردپرس میدیم و بعدش میگیم که قراره چطوری امکان نوتیفیکیشن رو فعال کنیم تا در پیشخوان وردپرس ما رو از رسیدن ایمیل ها باخبر کنه!

برنامه امروز اینه که درباره چگونگی استفاده از عملگر ()wp_mail برای ارسال ایمیل ها صحبت کنیم و به صورت تخصصی امکان ایجاد نوتیفیکیشن رو برای اون توضیح بدیم.

معرفی عملگر ()wp_mail

خیلی از گاربران وردپرسی نمیدونن که وردپرس دارای یک سیستم ساده برای ارسال ایمیل هستش که همراه با نوتیفیکیشن به شما اطلاع رسانی هم میکنه! عملگر ()wp_mail به شما اجازه میده تا به صورت کاملا منعطف به وسیله ی برخی پارامترهای مربوطه ایمیل خودتون رو ارسال کنید. بیایید با هم ببینیم:

<?php wp_mail( $to, $subject, $message, $headers, $attachments ); ?>

to$ : آدرس ایمیل گیرنده
subject$: عنوان ایمیل
message$ : متن پیام
headers$ : سربرگ ایمیل
attachments$ : فایل یا آرایه هایی که برای ضمیمه وجود دارند

میتونیم به وسیله یک متن ساده و مشخص کردن سه پارامتر اولیه در لیست بالا، ایمیل خودمون رو ارسال کنیم. به عنوان یک مثال ساده:

<?php 

$to = 'my@email.com';
$subject = 'به این آموزش کاربردی خوش آمدید';
$message = 'امیدوارم بتونید از این مقاله استفاده ی خوبی بکنید!';

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

?>

ارسال ایمیل های اچ تی ام ال

برای ارسال ایمیل به زبان اچ تی ام ال باید نوع محتوای ایمیل عوض بشه. این امر به وسیله ی عملگر wp_mail_content_type انجام میشه. مثالی رو که در زیر مشاهده می کنید دقیقا محتوای همون ایمیل بالاست فقط فرمتش کمی تغییر کرده! البته، برای ایجاد این مورد باید به بخش function.php مراجعه بشه:

function set_mail_html_content_type() {
	return 'text/html';
}

$to = 'my@email.com';
$subject = 'به این آموزش خوش آمدید';
$message = '<h1>Hello!</h1> <p>امیدوارم از خواندن این مقاله لذف کافی رو ببرید!</p>';

add_filter( 'wp_mail_content_type', 'set_mail_html_content_type' );
wp_mail( $to, $subject, $message );
remove_filter( 'wp_mail_content_type', 'set_mail_html_content_type' );

مسائل شایع

براساس تجربه ی شخصی دو مورد هستش که در مورد ()wp_mail افراد رو دچار مشکل میکنه!
اولین مورد، همه چیز پیرامون فیلتر شدن اچ تی ام ال است که از قبل اضافه شده. اگه شما این فیلترها رو در هر جایی از فایل function.php اضافه کنید، ایمیل همیشه از نوع محتوای اچ تی ام ال استفاده میکنه.
متاسفانه، این مورد در تمامی سیستم های وردپرسی به خوبی کار نمیکنه! یا قابلیت ریست دادن پسورد رو نداره. پس بهتره هر زمان که قراره ایمیل رو با فرمت اچ تی ام ال ارسال کنید قبل از آن فیلتر مورد نظر رو اضافه کنید و پس از انجام کار نیز به حالت اولیه بر گردونید یا به عبارتی فیلتر رو حذف کنید.
مورد دوم، عملکرد ایمیل با سرور شما تنظیم نمیشه. این اتفاقات در تعدادی از هاست ها وجود داره اما این مورد بیشتر در لوکال هاست ها مثل MAMP  و XAMPP مشاهده کرد. اما نگران نباشید چون این مشکل رو میشه با افزونه ی WP Mail SMTP حل کرد!
با کمک این افزونه میتونید ایمیل های خودتون رو بر روی سرور SMTP ارسال کنید.مثلا شبیه به جیمیل!

  راه‌اندازی فروشگاه اینترنتی: استفاده از کدهای کوتاه در ووکامرس

راه اندازی اعلانات

تا اینجا در مورد امکانی که وردپرس برای ارسال ایمیل داره صحبت کردیم، حالا وقتشه که بریم سراغ ایجاد نوتیفیکیشن برای این ایمیل ها!
خیلی ساده! عمل publish_post برای همینکار در نظر گرفته شده که قطعه کد زیر باید داخل اون قرار بگیرن:

function set_mail_html_content_type() {
	return 'text/html';
}

add_action( 'publish_post', 'author_publish_notice', 10 ,2 );

function author_publish_notice( $ID, $post ) {
	if( 'post' == $post->post_type ) {
		return;
	}
	$to = 'author@email.com';
	$subject = 'این پیام به صورت آنلاین منتشر شده است';
	$message = '<h1>!تبریک میگم</h1> <p>!مقاله ی شما به صورت آنلاین منتشر شده است و در حال حاضر قادر به پاسخگویی خواهید بود</p> <p><a href="' . get_permalink( $ID ) . '">' . $post->post_title . '</a></p>';

	add_filter( 'wp_mail_content_type', 'set_mail_html_content_type' );
	wp_mail( $to, $subject, $message );
	remove_filter( 'wp_mail_content_type', 'set_mail_html_content_type' );

}

امیدوارم این مطلب براتون مفید باشه 😉

آیا این مقاله برای شما مفید بود؟
تقریبا
خیر

دیدگاهتان را بنویسید

ارسال دیدگاه به معنی این است که شما ابتدا قوانین ارسال دیدگاه را مطالعه کرده‌اید و با آن موافق هستید.

دیدگاه‌های این نوشته جدید ترین ها شاخص

  1. 8 سال عضو همیار وردپرس

    سلام. من دقیقا متوجه نشدم کدوم کد رو کجا قرار بدم، لطفا راهنمایی میکنید؟

  2. 9 سال عضو همیار وردپرس

    درود
    اگه فایل ویدئویی داشت خیلی عالی میشد.

  3. سلام
    لطفا بفرماییدpublish_post را در کجا قرار دهیم؟

    • 10 سال عضو همیار وردپرس

      سلام
      publish_post در تابع ()wp_mail قرار داره

  4. سلام بهار خانوم . ممنون از آموزشهای خوبتون . سوالی داشتم . من سایت موزیک دارم . در ادامه مطلب سایتم وقتی کاربری روی لینک دانلود کلیک میکنه بجای اینکه برنامه IDM باز بشه موزیک پلیر مرورگر فایرفاکس اجرا میشه میخواستم بدونم چاره ای برای این مشکل وجود داره یا نه ؟ اگه راه حلی داره ممنون میشم راهنماییم کنید با تشکر ♥